From 6cd23ac4dfbb774064cd88c2cf5da4c044c22b96 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 4 Oct 2022 12:19:26 -0400 Subject: [PATCH 001/638] Restructure project for multi-platform support --- .gitignore | 6 +-- .../commandapi-bukkit-core/pom.xml | 14 ++++++ .../commandapi-bukkit-1.13.1}/.gitignore | 0 .../commandapi-bukkit-1.13.1}/pom.xml | 6 +-- .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 0 .../commandapi-bukkit-1.13.2}/.gitignore | 0 .../commandapi-bukkit-1.13.2}/pom.xml | 6 +-- .../dev/jorel/commandapi/nms/NMS_1_13_2.java | 0 .../commandapi-bukkit-1.13}/.gitignore | 0 .../commandapi-bukkit-1.13}/pom.xml | 4 +- .../jorel/commandapi/nms/NMSWrapper_1_13.java | 0 .../dev/jorel/commandapi/nms/NMS_1_13.java | 0 .../commandapi-bukkit-1.14.3}/.gitignore | 0 .../commandapi-bukkit-1.14.3}/pom.xml | 6 +-- .../dev/jorel/commandapi/nms/NMS_1_14_3.java | 0 .../commandapi-bukkit-1.14.4}/pom.xml | 6 +-- .../dev/jorel/commandapi/nms/NMS_1_14_4.java | 0 .../commandapi-bukkit-1.14}/.gitignore | 0 .../commandapi-bukkit-1.14}/pom.xml | 4 +- .../jorel/commandapi/nms/NMSWrapper_1_14.java | 0 .../dev/jorel/commandapi/nms/NMS_1_14.java | 0 .../commandapi-bukkit-1.15}/pom.xml | 4 +- .../jorel/commandapi/nms/NMSWrapper_1_15.java | 0 .../dev/jorel/commandapi/nms/NMS_1_15.java | 0 .../commandapi-bukkit-1.16.1}/pom.xml | 4 +- .../commandapi/nms/NMSWrapper_1_16_R1.java | 0 .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 0 .../commandapi-bukkit-1.16.2}/pom.xml | 4 +- .../commandapi/nms/NMSWrapper_1_16_R2.java | 0 .../dev/jorel/commandapi/nms/NMS_1_16_R2.java | 0 .../commandapi-bukkit-1.16.4}/pom.xml | 4 +- .../commandapi/nms/NMSWrapper_1_16_4_R3.java | 0 .../jorel/commandapi/nms/NMS_1_16_4_R3.java | 0 .../commandapi-bukkit-1.16.5}/pom.xml | 6 +-- .../commandapi/nms/NMSWrapper_1_16_R3.java | 0 .../dev/jorel/commandapi/nms/NMS_1_16_R3.java | 0 .../commandapi-bukkit-1.17-common}/.gitignore | 0 .../commandapi-bukkit-1.17-common}/pom.xml | 6 +-- .../jorel/commandapi/nms/NMS_1_17_Common.java | 0 .../src/test/java/SafeReflect.java | 0 .../commandapi-bukkit-1.17.1}/.gitignore | 0 .../commandapi-bukkit-1.17.1}/pom.xml | 8 ++-- .../dev/jorel/commandapi/nms/NMS_1_17_R1.java | 0 .../commandapi-bukkit-1.17}/.gitignore | 0 .../commandapi-bukkit-1.17}/pom.xml | 8 ++-- .../dev/jorel/commandapi/nms/NMS_1_17.java | 0 .../commandapi-bukkit-1.18.2}/.gitignore | 0 .../commandapi-bukkit-1.18.2}/pom.xml | 6 +-- .../dev/jorel/commandapi/nms/NMS_1_18_R2.java | 0 .../src/test/java/SafeReflect.java | 0 .../commandapi-bukkit-1.18}/.gitignore | 0 .../commandapi-bukkit-1.18}/pom.xml | 6 +-- .../dev/jorel/commandapi/nms/NMS_1_18_R1.java | 0 .../src/test/java/SafeReflect.java | 0 .../commandapi-bukkit-1.19-common}/pom.xml | 6 +-- .../jorel/commandapi/nms/NMS_1_19_Common.java | 0 .../NMS_1_19_Common_ChatPreviewHandler.java | 0 .../src/test/java/SafeReflect.java | 0 .../commandapi-bukkit-1.19.1}/pom.xml | 8 ++-- .../jorel/commandapi/nms/NMS_1_19_1_R1.java | 0 .../nms/NMS_1_19_1_R1_ChatPreviewHandler.java | 0 .../src/test/java/SafeReflect.java | 0 .../commandapi-bukkit-1.19}/pom.xml | 8 ++-- .../dev/jorel/commandapi/nms/NMS_1_19_R1.java | 0 .../nms/NMS_1_19_R1_ChatPreviewHandler.java | 0 .../src/test/java/SafeReflect.java | 0 .../commandapi-bukkit-nms-common}/.gitignore | 0 .../commandapi-bukkit-nms-common}/pom.xml | 4 +- .../dev/jorel/commandapi/nms/NMS_Common.java | 0 .../commandapi-bukkit-nms-dependency}/pom.xml | 44 +++++++++--------- .../commandapi-bukkit-nms}/pom.xml | 46 +++++++++---------- .../commandapi-bukkit-plugin-test}/.gitignore | 3 ++ .../commandapi-bukkit-plugin-test}/LICENSE | 0 .../dependency-reduced-pom.xml | 0 .../commandapi-bukkit-plugin-test}/help.yml | 0 .../commandapi-bukkit-plugin-test}/pom.xml | 6 +-- .../jorel/commandapi/test/ArgumentNMS.java | 0 .../dev/jorel/commandapi/test/BlankNMS.java | 0 .../jorel/commandapi/test/DispatcherUtil.java | 0 .../java/dev/jorel/commandapi/test/Main.java | 0 .../dev/jorel/commandapi/test/MockNMS.java | 0 .../src/main/resources/config.yml | 0 .../src/main/resources/plugin.yml | 0 .../jorel/commandapi/test/ArgumentTests.java | 0 .../commandapi/test/ChatPreviewTests.java | 0 .../jorel/commandapi/test/CommandTests.java | 0 .../commandapi/test/CustomServerMock.java | 0 .../java/dev/jorel/commandapi/test/Mut.java | 0 .../commandapi/test/SuggestionsTests.java | 0 .../org.mockito.plugins.MockMaker | 0 .../src/test/resources/plugin.yml | 0 .../commandapi-bukkit-plugin}/.gitignore | 2 + .../commandapi-bukkit-plugin}/LICENSE | 0 .../commandapi-bukkit-plugin}/pom.xml | 8 ++-- .../jorel/commandapi/AdvancedConverter.java | 0 .../dev/jorel/commandapi/CommandAPIMain.java | 0 .../commandapi/ConfigPluginConverter.java | 0 .../exceptions/InvalidNumberException.java | 0 .../exceptions/UnknownArgumentException.java | 0 .../src/main/resources/config.yml | 0 .../src/main/resources/plugin.yml | 0 .../commandapi-bukkit-shade}/.gitignore | 2 + .../commandapi-bukkit-shade}/LICENSE | 0 .../javadoc/README.md | 0 .../commandapi-bukkit-shade}/pom.xml | 8 ++-- .../commandapi-bukkit-vh}/.gitignore | 0 .../commandapi-bukkit-vh}/pom.xml | 6 +-- .../commandapi/CommandAPIVersionHandler.java | 0 .../UnsupportedVersionException.java | 0 .../commandapi-bukkit/pom.xml | 31 +++++++++++++ commandapi-platforms/pom.xml | 19 ++++++++ pom.xml | 12 ++--- 112 files changed, 192 insertions(+), 129 deletions(-) create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml rename {commandapi-nms/commandapi-1.13.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1}/.gitignore (100%) rename {commandapi-nms/commandapi-1.13.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1}/pom.xml (94%) rename {commandapi-nms/commandapi-1.13.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1}/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java (100%) rename {commandapi-nms/commandapi-1.13.2 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2}/.gitignore (100%) rename {commandapi-nms/commandapi-1.13.2 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2}/pom.xml (94%) rename {commandapi-nms/commandapi-1.13.2 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2}/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java (100%) rename {commandapi-nms/commandapi-1.13 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13}/.gitignore (100%) rename {commandapi-nms/commandapi-1.13 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13}/pom.xml (95%) rename {commandapi-nms/commandapi-1.13 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13}/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java (100%) rename {commandapi-nms/commandapi-1.13 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13}/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java (100%) rename {commandapi-nms/commandapi-1.14.3 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3}/.gitignore (100%) rename {commandapi-nms/commandapi-1.14.3 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3}/pom.xml (94%) rename {commandapi-nms/commandapi-1.14.3 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3}/src/main/java/dev/jorel/commandapi/nms/NMS_1_14_3.java (100%) rename {commandapi-nms/commandapi-1.14.4 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4}/pom.xml (94%) rename {commandapi-nms/commandapi-1.14.4 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4}/src/main/java/dev/jorel/commandapi/nms/NMS_1_14_4.java (100%) rename {commandapi-nms/commandapi-1.14 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14}/.gitignore (100%) rename {commandapi-nms/commandapi-1.14 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14}/pom.xml (95%) rename {commandapi-nms/commandapi-1.14 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14}/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java (100%) rename {commandapi-nms/commandapi-1.14 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14}/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java (100%) rename {commandapi-nms/commandapi-1.15 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15}/pom.xml (95%) rename {commandapi-nms/commandapi-1.15 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15}/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java (100%) rename {commandapi-nms/commandapi-1.15 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15}/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java (100%) rename {commandapi-nms/commandapi-1.16.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1}/pom.xml (95%) rename {commandapi-nms/commandapi-1.16.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1}/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java (100%) rename {commandapi-nms/commandapi-1.16.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1}/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java (100%) rename {commandapi-nms/commandapi-1.16.2 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2}/pom.xml (95%) rename {commandapi-nms/commandapi-1.16.2 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2}/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java (100%) rename {commandapi-nms/commandapi-1.16.2 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2}/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java (100%) rename {commandapi-nms/commandapi-1.16.4 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4}/pom.xml (95%) rename {commandapi-nms/commandapi-1.16.4 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4}/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java (100%) rename {commandapi-nms/commandapi-1.16.4 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4}/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java (100%) rename {commandapi-nms/commandapi-1.16.5 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5}/pom.xml (94%) rename {commandapi-nms/commandapi-1.16.5 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5}/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R3.java (100%) rename {commandapi-nms/commandapi-1.16.5 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5}/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R3.java (100%) rename {commandapi-nms/commandapi-1.17-common => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common}/.gitignore (100%) rename {commandapi-nms/commandapi-1.17-common => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common}/pom.xml (96%) rename {commandapi-nms/commandapi-1.17-common => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common}/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java (100%) rename {commandapi-nms/commandapi-1.17-common => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common}/src/test/java/SafeReflect.java (100%) rename {commandapi-nms/commandapi-1.17.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1}/.gitignore (100%) rename {commandapi-nms/commandapi-1.17.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1}/pom.xml (95%) rename {commandapi-nms/commandapi-1.17.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1}/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java (100%) rename {commandapi-nms/commandapi-1.17 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17}/.gitignore (100%) rename {commandapi-nms/commandapi-1.17 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17}/pom.xml (95%) rename {commandapi-nms/commandapi-1.17 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17}/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java (100%) rename {commandapi-nms/commandapi-1.18.2 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2}/.gitignore (100%) rename {commandapi-nms/commandapi-1.18.2 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2}/pom.xml (96%) rename {commandapi-nms/commandapi-1.18.2 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2}/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java (100%) rename {commandapi-nms/commandapi-1.18.2 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2}/src/test/java/SafeReflect.java (100%) rename {commandapi-nms/commandapi-1.18 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18}/.gitignore (100%) rename {commandapi-nms/commandapi-1.18 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18}/pom.xml (96%) rename {commandapi-nms/commandapi-1.18 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18}/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java (100%) rename {commandapi-nms/commandapi-1.18 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18}/src/test/java/SafeReflect.java (100%) rename {commandapi-nms/commandapi-1.19-common => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common}/pom.xml (96%) rename {commandapi-nms/commandapi-1.19-common => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common}/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java (100%) rename {commandapi-nms/commandapi-1.19-common => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common}/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java (100%) rename {commandapi-nms/commandapi-1.19-common => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common}/src/test/java/SafeReflect.java (100%) rename {commandapi-nms/commandapi-1.19.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1}/pom.xml (95%) rename {commandapi-nms/commandapi-1.19.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1}/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1.java (100%) rename {commandapi-nms/commandapi-1.19.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1}/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java (100%) rename {commandapi-nms/commandapi-1.19.1 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1}/src/test/java/SafeReflect.java (100%) rename {commandapi-nms/commandapi-1.19 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19}/pom.xml (95%) rename {commandapi-nms/commandapi-1.19 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19}/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1.java (100%) rename {commandapi-nms/commandapi-1.19 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19}/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java (100%) rename {commandapi-nms/commandapi-1.19 => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19}/src/test/java/SafeReflect.java (100%) rename {commandapi-nms/commandapi-nms-common => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common}/.gitignore (100%) rename {commandapi-nms/commandapi-nms-common => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common}/pom.xml (98%) rename {commandapi-nms/commandapi-nms-common => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common}/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java (100%) rename {commandapi-nms/commandapi-nms-dependency => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-dependency}/pom.xml (76%) rename {commandapi-nms => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms}/pom.xml (66%) rename {commandapi-vh => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/.gitignore (51%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/LICENSE (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/dependency-reduced-pom.xml (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/help.yml (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/pom.xml (96%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/main/java/dev/jorel/commandapi/test/ArgumentNMS.java (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/main/java/dev/jorel/commandapi/test/BlankNMS.java (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/main/java/dev/jorel/commandapi/test/DispatcherUtil.java (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/main/java/dev/jorel/commandapi/test/Main.java (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/main/java/dev/jorel/commandapi/test/MockNMS.java (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/main/resources/config.yml (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/main/resources/plugin.yml (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/test/java/dev/jorel/commandapi/test/ChatPreviewTests.java (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/test/java/dev/jorel/commandapi/test/CommandTests.java (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/test/java/dev/jorel/commandapi/test/Mut.java (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/test/java/dev/jorel/commandapi/test/SuggestionsTests.java (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker (100%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test}/src/test/resources/plugin.yml (100%) rename {commandapi-plugin => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin}/.gitignore (57%) rename {commandapi-plugin => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin}/LICENSE (100%) rename {commandapi-plugin => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin}/pom.xml (94%) rename {commandapi-plugin => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin}/src/main/java/dev/jorel/commandapi/AdvancedConverter.java (100%) rename {commandapi-plugin => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin}/src/main/java/dev/jorel/commandapi/CommandAPIMain.java (100%) rename {commandapi-plugin => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin}/src/main/java/dev/jorel/commandapi/ConfigPluginConverter.java (100%) rename {commandapi-plugin => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin}/src/main/java/dev/jorel/commandapi/exceptions/InvalidNumberException.java (100%) rename {commandapi-plugin => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin}/src/main/java/dev/jorel/commandapi/exceptions/UnknownArgumentException.java (100%) rename {commandapi-plugin => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin}/src/main/resources/config.yml (100%) rename {commandapi-plugin => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin}/src/main/resources/plugin.yml (100%) rename {commandapi-shade => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade}/.gitignore (57%) rename {commandapi-shade => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade}/LICENSE (100%) rename {commandapi-shade => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade}/javadoc/README.md (100%) rename {commandapi-shade => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade}/pom.xml (93%) rename {commandapi-plugin-test => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh}/.gitignore (100%) rename {commandapi-vh => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh}/pom.xml (92%) rename {commandapi-vh => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh}/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java (100%) rename {commandapi-vh => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh}/src/main/java/dev/jorel/commandapi/exceptions/UnsupportedVersionException.java (100%) create mode 100644 commandapi-platforms/commandapi-bukkit/pom.xml create mode 100644 commandapi-platforms/pom.xml diff --git a/.gitignore b/.gitignore index df84a7bc72..bffd32a703 100644 --- a/.gitignore +++ b/.gitignore @@ -8,8 +8,4 @@ bin .settings target logs/latest.log -commandapi-plugin/dependency-reduced-pom.xml -commandapi-shade/dependency-reduced-pom.xml -.vscode -commandapi-plugin-test/command_registration.json -commandapi-plugin-test/logs/* \ No newline at end of file +.vscode \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml new file mode 100644 index 0000000000..04dbcf0bb6 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml @@ -0,0 +1,14 @@ + + + 4.0.0 + + + commandapi-bukkit + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-bukkit-core + \ No newline at end of file diff --git a/commandapi-nms/commandapi-1.13.1/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/.gitignore similarity index 100% rename from commandapi-nms/commandapi-1.13.1/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/.gitignore diff --git a/commandapi-nms/commandapi-1.13.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml similarity index 94% rename from commandapi-nms/commandapi-1.13.1/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml index 1659ff0407..62ed0fb043 100644 --- a/commandapi-nms/commandapi-1.13.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.13.1 + commandapi-bukkit-1.13.1 @@ -68,7 +68,7 @@ dev.jorel - commandapi-1.13 + commandapi-bukkit-1.13 ${project.version} compile diff --git a/commandapi-nms/commandapi-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java similarity index 100% rename from commandapi-nms/commandapi-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java diff --git a/commandapi-nms/commandapi-1.13.2/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/.gitignore similarity index 100% rename from commandapi-nms/commandapi-1.13.2/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/.gitignore diff --git a/commandapi-nms/commandapi-1.13.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml similarity index 94% rename from commandapi-nms/commandapi-1.13.2/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml index 13ab215bf1..2b72564de6 100644 --- a/commandapi-nms/commandapi-1.13.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.13.2 + commandapi-bukkit-1.13.2 @@ -69,7 +69,7 @@ dev.jorel - commandapi-1.13.1 + commandapi-bukkit-1.13.1 ${project.version} compile diff --git a/commandapi-nms/commandapi-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java similarity index 100% rename from commandapi-nms/commandapi-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java diff --git a/commandapi-nms/commandapi-1.13/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/.gitignore similarity index 100% rename from commandapi-nms/commandapi-1.13/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/.gitignore diff --git a/commandapi-nms/commandapi-1.13/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml similarity index 95% rename from commandapi-nms/commandapi-1.13/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml index 6724a95d30..19d5b7f403 100644 --- a/commandapi-nms/commandapi-1.13/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.13 + commandapi-bukkit-1.13 diff --git a/commandapi-nms/commandapi-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java similarity index 100% rename from commandapi-nms/commandapi-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java diff --git a/commandapi-nms/commandapi-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java similarity index 100% rename from commandapi-nms/commandapi-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java diff --git a/commandapi-nms/commandapi-1.14.3/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/.gitignore similarity index 100% rename from commandapi-nms/commandapi-1.14.3/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/.gitignore diff --git a/commandapi-nms/commandapi-1.14.3/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml similarity index 94% rename from commandapi-nms/commandapi-1.14.3/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml index e768758376..290ade54b3 100644 --- a/commandapi-nms/commandapi-1.14.3/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.14.3 + commandapi-bukkit-1.14.3 @@ -69,7 +69,7 @@ dev.jorel - commandapi-1.14 + commandapi-bukkit-1.14 ${project.version} compile diff --git a/commandapi-nms/commandapi-1.14.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_14_3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_14_3.java similarity index 100% rename from commandapi-nms/commandapi-1.14.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_14_3.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_14_3.java diff --git a/commandapi-nms/commandapi-1.14.4/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml similarity index 94% rename from commandapi-nms/commandapi-1.14.4/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml index 8b5f1d7592..e3493135e1 100644 --- a/commandapi-nms/commandapi-1.14.4/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.14.4 + commandapi-bukkit-1.14.4 @@ -68,7 +68,7 @@ dev.jorel - commandapi-1.14.3 + commandapi-bukkit-1.14.3 ${project.version} compile diff --git a/commandapi-nms/commandapi-1.14.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_14_4.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_14_4.java similarity index 100% rename from commandapi-nms/commandapi-1.14.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_14_4.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_14_4.java diff --git a/commandapi-nms/commandapi-1.14/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/.gitignore similarity index 100% rename from commandapi-nms/commandapi-1.14/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/.gitignore diff --git a/commandapi-nms/commandapi-1.14/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml similarity index 95% rename from commandapi-nms/commandapi-1.14/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml index e896beec19..a28c6ada94 100644 --- a/commandapi-nms/commandapi-1.14/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.14 + commandapi-bukkit-1.14 diff --git a/commandapi-nms/commandapi-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java similarity index 100% rename from commandapi-nms/commandapi-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java diff --git a/commandapi-nms/commandapi-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java similarity index 100% rename from commandapi-nms/commandapi-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java diff --git a/commandapi-nms/commandapi-1.15/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml similarity index 95% rename from commandapi-nms/commandapi-1.15/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml index d7a551c47b..f52c7dad6e 100644 --- a/commandapi-nms/commandapi-1.15/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.15 + commandapi-bukkit-1.15 diff --git a/commandapi-nms/commandapi-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java similarity index 100% rename from commandapi-nms/commandapi-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java diff --git a/commandapi-nms/commandapi-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java similarity index 100% rename from commandapi-nms/commandapi-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java diff --git a/commandapi-nms/commandapi-1.16.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml similarity index 95% rename from commandapi-nms/commandapi-1.16.1/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml index 5cd3592fd3..6abf77d562 100644 --- a/commandapi-nms/commandapi-1.16.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.16.1 + commandapi-bukkit-1.16.1 diff --git a/commandapi-nms/commandapi-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java similarity index 100% rename from commandapi-nms/commandapi-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java diff --git a/commandapi-nms/commandapi-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java similarity index 100% rename from commandapi-nms/commandapi-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java diff --git a/commandapi-nms/commandapi-1.16.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml similarity index 95% rename from commandapi-nms/commandapi-1.16.2/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml index 2173667135..1e0b866510 100644 --- a/commandapi-nms/commandapi-1.16.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.16.2 + commandapi-bukkit-1.16.2 diff --git a/commandapi-nms/commandapi-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java similarity index 100% rename from commandapi-nms/commandapi-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java diff --git a/commandapi-nms/commandapi-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java similarity index 100% rename from commandapi-nms/commandapi-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java diff --git a/commandapi-nms/commandapi-1.16.4/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml similarity index 95% rename from commandapi-nms/commandapi-1.16.4/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml index 8890097f86..c17fb1de62 100644 --- a/commandapi-nms/commandapi-1.16.4/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.16.4 + commandapi-bukkit-1.16.4 diff --git a/commandapi-nms/commandapi-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java similarity index 100% rename from commandapi-nms/commandapi-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java diff --git a/commandapi-nms/commandapi-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java similarity index 100% rename from commandapi-nms/commandapi-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java diff --git a/commandapi-nms/commandapi-1.16.5/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml similarity index 94% rename from commandapi-nms/commandapi-1.16.5/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml index e9676171d0..62a62903fd 100644 --- a/commandapi-nms/commandapi-1.16.5/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.16.5 + commandapi-bukkit-1.16.5 @@ -69,7 +69,7 @@ dev.jorel - commandapi-1.16.4 + commandapi-bukkit-1.16.4 ${project.version} compile diff --git a/commandapi-nms/commandapi-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R3.java similarity index 100% rename from commandapi-nms/commandapi-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R3.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R3.java diff --git a/commandapi-nms/commandapi-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R3.java similarity index 100% rename from commandapi-nms/commandapi-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R3.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R3.java diff --git a/commandapi-nms/commandapi-1.17-common/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/.gitignore similarity index 100% rename from commandapi-nms/commandapi-1.17-common/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/.gitignore diff --git a/commandapi-nms/commandapi-1.17-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml similarity index 96% rename from commandapi-nms/commandapi-1.17-common/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml index 736ce16b36..3bb4d2e639 100644 --- a/commandapi-nms/commandapi-1.17-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.17-common + commandapi-bukkit-1.17-common 1.17.1-R0.1-SNAPSHOT @@ -83,7 +83,7 @@ dev.jorel - commandapi-nms-common + commandapi-bukkit-nms-common ${project.version} mojang-mapped provided diff --git a/commandapi-nms/commandapi-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java similarity index 100% rename from commandapi-nms/commandapi-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java diff --git a/commandapi-nms/commandapi-1.17-common/src/test/java/SafeReflect.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/test/java/SafeReflect.java similarity index 100% rename from commandapi-nms/commandapi-1.17-common/src/test/java/SafeReflect.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/test/java/SafeReflect.java diff --git a/commandapi-nms/commandapi-1.17.1/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/.gitignore similarity index 100% rename from commandapi-nms/commandapi-1.17.1/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/.gitignore diff --git a/commandapi-nms/commandapi-1.17.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/pom.xml similarity index 95% rename from commandapi-nms/commandapi-1.17.1/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/pom.xml index c92573e12c..8c0bdf9642 100644 --- a/commandapi-nms/commandapi-1.17.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/pom.xml @@ -17,13 +17,13 @@ - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.17.1 + commandapi-bukkit-1.17.1 1.17.1-R0.1-SNAPSHOT @@ -45,7 +45,7 @@ dev.jorel - commandapi-1.17-common + commandapi-bukkit-1.17-common ${project.version} mojang-mapped provided @@ -54,7 +54,7 @@ dev.jorel - commandapi-nms-common + commandapi-bukkit-nms-common ${project.version} mojang-mapped provided diff --git a/commandapi-nms/commandapi-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java similarity index 100% rename from commandapi-nms/commandapi-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java diff --git a/commandapi-nms/commandapi-1.17/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/.gitignore similarity index 100% rename from commandapi-nms/commandapi-1.17/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/.gitignore diff --git a/commandapi-nms/commandapi-1.17/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/pom.xml similarity index 95% rename from commandapi-nms/commandapi-1.17/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/pom.xml index 09e05b77ab..8fd53f301a 100644 --- a/commandapi-nms/commandapi-1.17/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.17 + commandapi-bukkit-1.17 1.17-R0.1-SNAPSHOT @@ -47,7 +47,7 @@ dev.jorel - commandapi-1.17-common + commandapi-bukkit-1.17-common ${project.version} mojang-mapped provided @@ -56,7 +56,7 @@ dev.jorel - commandapi-nms-common + commandapi-bukkit-nms-common ${project.version} mojang-mapped provided diff --git a/commandapi-nms/commandapi-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java similarity index 100% rename from commandapi-nms/commandapi-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java diff --git a/commandapi-nms/commandapi-1.18.2/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/.gitignore similarity index 100% rename from commandapi-nms/commandapi-1.18.2/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/.gitignore diff --git a/commandapi-nms/commandapi-1.18.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml similarity index 96% rename from commandapi-nms/commandapi-1.18.2/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml index 94973c53cc..094ef154a6 100644 --- a/commandapi-nms/commandapi-1.18.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.18.2 + commandapi-bukkit-1.18.2 1.18.2-R0.1-SNAPSHOT @@ -82,7 +82,7 @@ dev.jorel - commandapi-nms-common + commandapi-bukkit-nms-common ${project.version} mojang-mapped provided diff --git a/commandapi-nms/commandapi-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java similarity index 100% rename from commandapi-nms/commandapi-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java diff --git a/commandapi-nms/commandapi-1.18.2/src/test/java/SafeReflect.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/test/java/SafeReflect.java similarity index 100% rename from commandapi-nms/commandapi-1.18.2/src/test/java/SafeReflect.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/test/java/SafeReflect.java diff --git a/commandapi-nms/commandapi-1.18/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/.gitignore similarity index 100% rename from commandapi-nms/commandapi-1.18/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/.gitignore diff --git a/commandapi-nms/commandapi-1.18/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml similarity index 96% rename from commandapi-nms/commandapi-1.18/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml index da84442a64..3ca12606b5 100644 --- a/commandapi-nms/commandapi-1.18/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.18 + commandapi-bukkit-1.18 1.18-R0.1-SNAPSHOT @@ -83,7 +83,7 @@ dev.jorel - commandapi-nms-common + commandapi-bukkit-nms-common ${project.version} mojang-mapped provided diff --git a/commandapi-nms/commandapi-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java similarity index 100% rename from commandapi-nms/commandapi-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java diff --git a/commandapi-nms/commandapi-1.18/src/test/java/SafeReflect.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/test/java/SafeReflect.java similarity index 100% rename from commandapi-nms/commandapi-1.18/src/test/java/SafeReflect.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/test/java/SafeReflect.java diff --git a/commandapi-nms/commandapi-1.19-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml similarity index 96% rename from commandapi-nms/commandapi-1.19-common/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml index ec554d1f1b..86e01a2b94 100644 --- a/commandapi-nms/commandapi-1.19-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.19-common + commandapi-bukkit-1.19-common 1.19-R0.1-SNAPSHOT @@ -83,7 +83,7 @@ dev.jorel - commandapi-nms-common + commandapi-bukkit-nms-common ${project.version} mojang-mapped provided diff --git a/commandapi-nms/commandapi-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java similarity index 100% rename from commandapi-nms/commandapi-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java diff --git a/commandapi-nms/commandapi-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java similarity index 100% rename from commandapi-nms/commandapi-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java diff --git a/commandapi-nms/commandapi-1.19-common/src/test/java/SafeReflect.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/test/java/SafeReflect.java similarity index 100% rename from commandapi-nms/commandapi-1.19-common/src/test/java/SafeReflect.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/test/java/SafeReflect.java diff --git a/commandapi-nms/commandapi-1.19.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml similarity index 95% rename from commandapi-nms/commandapi-1.19.1/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml index 2055efac2a..6db2867ff3 100644 --- a/commandapi-nms/commandapi-1.19.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.19.1 + commandapi-bukkit-1.19.1 1.19.2-R0.1-SNAPSHOT @@ -82,7 +82,7 @@ dev.jorel - commandapi-1.19-common + commandapi-bukkit-1.19-common ${project.version} mojang-mapped provided @@ -90,7 +90,7 @@ dev.jorel - commandapi-nms-common + commandapi-bukkit-nms-common ${project.version} mojang-mapped provided diff --git a/commandapi-nms/commandapi-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1.java similarity index 100% rename from commandapi-nms/commandapi-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1.java diff --git a/commandapi-nms/commandapi-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java similarity index 100% rename from commandapi-nms/commandapi-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java diff --git a/commandapi-nms/commandapi-1.19.1/src/test/java/SafeReflect.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/test/java/SafeReflect.java similarity index 100% rename from commandapi-nms/commandapi-1.19.1/src/test/java/SafeReflect.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/test/java/SafeReflect.java diff --git a/commandapi-nms/commandapi-1.19/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml similarity index 95% rename from commandapi-nms/commandapi-1.19/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml index e9c82ce3ab..91b19ec7b1 100644 --- a/commandapi-nms/commandapi-1.19/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-1.19 + commandapi-bukkit-1.19 1.19-R0.1-SNAPSHOT @@ -82,7 +82,7 @@ dev.jorel - commandapi-1.19-common + commandapi-bukkit-1.19-common ${project.version} mojang-mapped provided @@ -90,7 +90,7 @@ dev.jorel - commandapi-nms-common + commandapi-bukkit-nms-common ${project.version} mojang-mapped provided diff --git a/commandapi-nms/commandapi-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1.java similarity index 100% rename from commandapi-nms/commandapi-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1.java diff --git a/commandapi-nms/commandapi-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java similarity index 100% rename from commandapi-nms/commandapi-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java diff --git a/commandapi-nms/commandapi-1.19/src/test/java/SafeReflect.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/test/java/SafeReflect.java similarity index 100% rename from commandapi-nms/commandapi-1.19/src/test/java/SafeReflect.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/test/java/SafeReflect.java diff --git a/commandapi-nms/commandapi-nms-common/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/.gitignore similarity index 100% rename from commandapi-nms/commandapi-nms-common/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/.gitignore diff --git a/commandapi-nms/commandapi-nms-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml similarity index 98% rename from commandapi-nms/commandapi-nms-common/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml index 0d3d406763..41dcd4510e 100644 --- a/commandapi-nms/commandapi-nms-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml @@ -17,13 +17,13 @@ - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-nms-common + commandapi-bukkit-nms-common 1.19-R0.1-SNAPSHOT diff --git a/commandapi-nms/commandapi-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java similarity index 100% rename from commandapi-nms/commandapi-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java diff --git a/commandapi-nms/commandapi-nms-dependency/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-dependency/pom.xml similarity index 76% rename from commandapi-nms/commandapi-nms-dependency/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-dependency/pom.xml index 992e5c359c..de853f415f 100644 --- a/commandapi-nms/commandapi-nms-dependency/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-dependency/pom.xml @@ -17,13 +17,13 @@ - commandapi-nms + commandapi-bukkit-nms dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-nms-dependency + commandapi-bukkit-nms-dependency pom @@ -31,104 +31,104 @@ dev.jorel - commandapi-nms-common + commandapi-bukkit-nms-common ${project.version} dev.jorel - commandapi-1.19-common + commandapi-bukkit-1.19-common ${project.version} dev.jorel - commandapi-1.17-common + commandapi-bukkit-1.17-common ${project.version} dev.jorel - commandapi-1.19.1 + commandapi-bukkit-1.19.1 ${project.version} dev.jorel - commandapi-1.19 + commandapi-bukkit-1.19 ${project.version} dev.jorel - commandapi-1.18.2 + commandapi-bukkit-1.18.2 ${project.version} dev.jorel - commandapi-1.18 + commandapi-bukkit-1.18 ${project.version} dev.jorel - commandapi-1.17 + commandapi-bukkit-1.17 ${project.version} dev.jorel - commandapi-1.17.1 + commandapi-bukkit-1.17.1 ${project.version} dev.jorel - commandapi-1.16.5 + commandapi-bukkit-1.16.5 ${project.version} dev.jorel - commandapi-1.16.4 + commandapi-bukkit-1.16.4 ${project.version} dev.jorel - commandapi-1.16.2 + commandapi-bukkit-1.16.2 ${project.version} dev.jorel - commandapi-1.16.1 + commandapi-bukkit-1.16.1 ${project.version} dev.jorel - commandapi-1.15 + commandapi-bukkit-1.15 ${project.version} dev.jorel - commandapi-1.14.4 + commandapi-bukkit-1.14.4 ${project.version} dev.jorel - commandapi-1.14.3 + commandapi-bukkit-1.14.3 ${project.version} dev.jorel - commandapi-1.14 + commandapi-bukkit-1.14 ${project.version} dev.jorel - commandapi-1.13.2 + commandapi-bukkit-1.13.2 ${project.version} dev.jorel - commandapi-1.13.1 + commandapi-bukkit-1.13.1 ${project.version} dev.jorel - commandapi-1.13 + commandapi-bukkit-1.13 ${project.version} diff --git a/commandapi-nms/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/pom.xml similarity index 66% rename from commandapi-nms/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/pom.xml index faab4c3c10..73e618bf5b 100644 --- a/commandapi-nms/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/pom.xml @@ -24,39 +24,39 @@ 4.0.0 - commandapi + commandapi-bukkit dev.jorel 8.6.0-SNAPSHOT - commandapi-nms + commandapi-bukkit-nms pom - commandapi-nms-common - commandapi-1.19-common - commandapi-1.19.1 - commandapi-1.19 - commandapi-1.18.2 - commandapi-1.18 - commandapi-1.17-common - commandapi-1.17 - commandapi-1.17.1 - commandapi-1.16.5 - commandapi-1.16.4 - commandapi-1.16.2 - commandapi-1.16.1 - commandapi-1.15 - commandapi-1.14.4 - commandapi-1.14.3 - commandapi-1.14 - commandapi-1.13.2 - commandapi-1.13.1 - commandapi-1.13 + commandapi-bukkit-nms-common + commandapi-bukkit-1.19-common + commandapi-bukkit-1.19.1 + commandapi-bukkit-1.19 + commandapi-bukkit-1.18.2 + commandapi-bukkit-1.18 + commandapi-bukkit-1.17-common + commandapi-bukkit-1.17 + commandapi-bukkit-1.17.1 + commandapi-bukkit-1.16.5 + commandapi-bukkit-1.16.4 + commandapi-bukkit-1.16.2 + commandapi-bukkit-1.16.1 + commandapi-bukkit-1.15 + commandapi-bukkit-1.14.4 + commandapi-bukkit-1.14.3 + commandapi-bukkit-1.14 + commandapi-bukkit-1.13.2 + commandapi-bukkit-1.13.1 + commandapi-bukkit-1.13 - commandapi-nms-dependency + commandapi-bukkit-nms-dependency diff --git a/commandapi-vh/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/.gitignore similarity index 51% rename from commandapi-vh/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/.gitignore index 00d2ab71dd..0c7ab37b20 100644 --- a/commandapi-vh/.gitignore +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/.gitignore @@ -1,2 +1,5 @@ /.apt_generated/ /.apt_generated_tests/ + +./command_registration.json +./logs/* \ No newline at end of file diff --git a/commandapi-plugin-test/LICENSE b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/LICENSE similarity index 100% rename from commandapi-plugin-test/LICENSE rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/LICENSE diff --git a/commandapi-plugin-test/dependency-reduced-pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/dependency-reduced-pom.xml similarity index 100% rename from commandapi-plugin-test/dependency-reduced-pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/dependency-reduced-pom.xml diff --git a/commandapi-plugin-test/help.yml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/help.yml similarity index 100% rename from commandapi-plugin-test/help.yml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/help.yml diff --git a/commandapi-plugin-test/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/pom.xml similarity index 96% rename from commandapi-plugin-test/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/pom.xml index f744a62c0f..c646adc29a 100644 --- a/commandapi-plugin-test/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/pom.xml @@ -23,14 +23,14 @@ - commandapi + commandapi-bukkit dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-plugin-test + commandapi-bukkit-plugin-test 1.19.1-R0.1-SNAPSHOT @@ -104,7 +104,7 @@ dev.jorel - commandapi-shade + commandapi-bukkit-shade ${project.version} diff --git a/commandapi-plugin-test/src/main/java/dev/jorel/commandapi/test/ArgumentNMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/ArgumentNMS.java similarity index 100% rename from commandapi-plugin-test/src/main/java/dev/jorel/commandapi/test/ArgumentNMS.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/ArgumentNMS.java diff --git a/commandapi-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java similarity index 100% rename from commandapi-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java diff --git a/commandapi-plugin-test/src/main/java/dev/jorel/commandapi/test/DispatcherUtil.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/DispatcherUtil.java similarity index 100% rename from commandapi-plugin-test/src/main/java/dev/jorel/commandapi/test/DispatcherUtil.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/DispatcherUtil.java diff --git a/commandapi-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java similarity index 100% rename from commandapi-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java diff --git a/commandapi-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java similarity index 100% rename from commandapi-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java diff --git a/commandapi-plugin-test/src/main/resources/config.yml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/resources/config.yml similarity index 100% rename from commandapi-plugin-test/src/main/resources/config.yml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/resources/config.yml diff --git a/commandapi-plugin-test/src/main/resources/plugin.yml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/resources/plugin.yml similarity index 100% rename from commandapi-plugin-test/src/main/resources/plugin.yml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/resources/plugin.yml diff --git a/commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java similarity index 100% rename from commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java diff --git a/commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/ChatPreviewTests.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ChatPreviewTests.java similarity index 100% rename from commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/ChatPreviewTests.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ChatPreviewTests.java diff --git a/commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/CommandTests.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CommandTests.java similarity index 100% rename from commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/CommandTests.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CommandTests.java diff --git a/commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java similarity index 100% rename from commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java diff --git a/commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/Mut.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/Mut.java similarity index 100% rename from commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/Mut.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/Mut.java diff --git a/commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/SuggestionsTests.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/SuggestionsTests.java similarity index 100% rename from commandapi-plugin-test/src/test/java/dev/jorel/commandapi/test/SuggestionsTests.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/SuggestionsTests.java diff --git a/commandapi-plugin-test/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker similarity index 100% rename from commandapi-plugin-test/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker diff --git a/commandapi-plugin-test/src/test/resources/plugin.yml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/resources/plugin.yml similarity index 100% rename from commandapi-plugin-test/src/test/resources/plugin.yml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/resources/plugin.yml diff --git a/commandapi-plugin/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/.gitignore similarity index 57% rename from commandapi-plugin/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/.gitignore index 00d2ab71dd..aee8342837 100644 --- a/commandapi-plugin/.gitignore +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/.gitignore @@ -1,2 +1,4 @@ /.apt_generated/ /.apt_generated_tests/ + +./dependency-reduced-pom.xml diff --git a/commandapi-plugin/LICENSE b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/LICENSE similarity index 100% rename from commandapi-plugin/LICENSE rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/LICENSE diff --git a/commandapi-plugin/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml similarity index 94% rename from commandapi-plugin/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml index 89634406c4..1d036ea591 100644 --- a/commandapi-plugin/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml @@ -23,14 +23,14 @@ - commandapi + commandapi-bukkit dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-plugin + commandapi-bukkit-plugin @@ -56,12 +56,12 @@ dev.jorel - commandapi-vh + commandapi-bukkit-vh ${project.version} dev.jorel - commandapi-nms-dependency + commandapi-bukkit-nms-dependency ${project.version} pom diff --git a/commandapi-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java similarity index 100% rename from commandapi-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java diff --git a/commandapi-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java similarity index 100% rename from commandapi-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java diff --git a/commandapi-plugin/src/main/java/dev/jorel/commandapi/ConfigPluginConverter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/ConfigPluginConverter.java similarity index 100% rename from commandapi-plugin/src/main/java/dev/jorel/commandapi/ConfigPluginConverter.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/ConfigPluginConverter.java diff --git a/commandapi-plugin/src/main/java/dev/jorel/commandapi/exceptions/InvalidNumberException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/exceptions/InvalidNumberException.java similarity index 100% rename from commandapi-plugin/src/main/java/dev/jorel/commandapi/exceptions/InvalidNumberException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/exceptions/InvalidNumberException.java diff --git a/commandapi-plugin/src/main/java/dev/jorel/commandapi/exceptions/UnknownArgumentException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/exceptions/UnknownArgumentException.java similarity index 100% rename from commandapi-plugin/src/main/java/dev/jorel/commandapi/exceptions/UnknownArgumentException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/exceptions/UnknownArgumentException.java diff --git a/commandapi-plugin/src/main/resources/config.yml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/resources/config.yml similarity index 100% rename from commandapi-plugin/src/main/resources/config.yml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/resources/config.yml diff --git a/commandapi-plugin/src/main/resources/plugin.yml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/resources/plugin.yml similarity index 100% rename from commandapi-plugin/src/main/resources/plugin.yml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/resources/plugin.yml diff --git a/commandapi-shade/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/.gitignore similarity index 57% rename from commandapi-shade/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/.gitignore index 00d2ab71dd..aee8342837 100644 --- a/commandapi-shade/.gitignore +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/.gitignore @@ -1,2 +1,4 @@ /.apt_generated/ /.apt_generated_tests/ + +./dependency-reduced-pom.xml diff --git a/commandapi-shade/LICENSE b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/LICENSE similarity index 100% rename from commandapi-shade/LICENSE rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/LICENSE diff --git a/commandapi-shade/javadoc/README.md b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/javadoc/README.md similarity index 100% rename from commandapi-shade/javadoc/README.md rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/javadoc/README.md diff --git a/commandapi-shade/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml similarity index 93% rename from commandapi-shade/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml index cdcd69da6e..6f6bf5d359 100644 --- a/commandapi-shade/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml @@ -23,14 +23,14 @@ - commandapi + commandapi-bukkit dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-shade + commandapi-bukkit-shade @@ -40,12 +40,12 @@ dev.jorel - commandapi-vh + commandapi-bukkit-vh ${project.version} dev.jorel - commandapi-nms-dependency + commandapi-bukkit-nms-dependency ${project.version} pom diff --git a/commandapi-plugin-test/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/.gitignore similarity index 100% rename from commandapi-plugin-test/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/.gitignore diff --git a/commandapi-vh/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/pom.xml similarity index 92% rename from commandapi-vh/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/pom.xml index 11997f9353..ff8563dfca 100644 --- a/commandapi-vh/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/pom.xml @@ -22,18 +22,18 @@ - commandapi + commandapi-bukkit dev.jorel 8.6.0-SNAPSHOT 4.0.0 - commandapi-vh + commandapi-bukkit-vh dev.jorel - commandapi-nms-dependency + commandapi-bukkit-nms-dependency ${project.version} pom diff --git a/commandapi-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java similarity index 100% rename from commandapi-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java diff --git a/commandapi-vh/src/main/java/dev/jorel/commandapi/exceptions/UnsupportedVersionException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/exceptions/UnsupportedVersionException.java similarity index 100% rename from commandapi-vh/src/main/java/dev/jorel/commandapi/exceptions/UnsupportedVersionException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/exceptions/UnsupportedVersionException.java diff --git a/commandapi-platforms/commandapi-bukkit/pom.xml b/commandapi-platforms/commandapi-bukkit/pom.xml new file mode 100644 index 0000000000..e4aa9cf801 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/pom.xml @@ -0,0 +1,31 @@ + + + 4.0.0 + + + commandapi-platforms + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-bukkit + pom + + + + commandapi-bukkit-core + + + commandapi-bukkit-nms + + + commandapi-bukkit-vh + + + commandapi-bukkit-plugin + commandapi-bukkit-plugin-test + commandapi-bukkit-shade + + \ No newline at end of file diff --git a/commandapi-platforms/pom.xml b/commandapi-platforms/pom.xml new file mode 100644 index 0000000000..c600e75972 --- /dev/null +++ b/commandapi-platforms/pom.xml @@ -0,0 +1,19 @@ + + + 4.0.0 + + + commandapi + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-platforms + pom + + + commandapi-bukkit + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 76c9bdddd6..50661cfba5 100644 --- a/pom.xml +++ b/pom.xml @@ -58,17 +58,13 @@ commandapi-preprocessor - - commandapi-nms - - + commandapi-core - commandapi-vh + + + commandapi-platforms - commandapi-plugin - commandapi-plugin-test - commandapi-shade commandapi-annotations From 275fde242a44bb2a382531b55ec05c1ecd1dae64 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 4 Oct 2022 12:22:02 -0400 Subject: [PATCH 002/638] Fix .gitignores --- .../commandapi-bukkit-plugin-test/.gitignore | 4 ++-- .../commandapi-bukkit/commandapi-bukkit-plugin/.gitignore | 2 +- .../commandapi-bukkit/commandapi-bukkit-shade/.gitignore | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/.gitignore index 0c7ab37b20..3e0973a611 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/.gitignore +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/.gitignore @@ -1,5 +1,5 @@ /.apt_generated/ /.apt_generated_tests/ -./command_registration.json -./logs/* \ No newline at end of file +/command_registration.json +/logs/* \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/.gitignore index aee8342837..a87f02033f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/.gitignore +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/.gitignore @@ -1,4 +1,4 @@ /.apt_generated/ /.apt_generated_tests/ -./dependency-reduced-pom.xml +/dependency-reduced-pom.xml diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/.gitignore index aee8342837..a87f02033f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/.gitignore +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/.gitignore @@ -1,4 +1,4 @@ /.apt_generated/ /.apt_generated_tests/ -./dependency-reduced-pom.xml +/dependency-reduced-pom.xml From 297d0eb648d262cd317ce76c283de7706b45caeb Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 4 Oct 2022 12:30:45 -0400 Subject: [PATCH 003/638] Move bukkit dependencies from commandapi-core to commandapi-bukkit-core --- commandapi-core/pom.xml | 12 ------------ .../commandapi-bukkit-core/pom.xml | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/commandapi-core/pom.xml b/commandapi-core/pom.xml index e6ed5cfbf1..eab83a1301 100644 --- a/commandapi-core/pom.xml +++ b/commandapi-core/pom.xml @@ -42,18 +42,6 @@ - - net.kyori - adventure-platform-bukkit - 4.1.0 - test - - - io.papermc.paper - paper-api - ${paper.version} - provided - com.mojang brigadier diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml index 04dbcf0bb6..26f2200e0e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml @@ -11,4 +11,19 @@ commandapi-bukkit-core + + + + net.kyori + adventure-platform-bukkit + 4.1.0 + test + + + io.papermc.paper + paper-api + ${paper.version} + provided + + \ No newline at end of file From 42304998090a79e707ae902317043315ef6cb119 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 4 Oct 2022 12:44:02 -0400 Subject: [PATCH 004/638] Remove unnecessary repositories --- commandapi-core/pom.xml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/commandapi-core/pom.xml b/commandapi-core/pom.xml index eab83a1301..57bec6bcb0 100644 --- a/commandapi-core/pom.xml +++ b/commandapi-core/pom.xml @@ -26,18 +26,14 @@ commandapi-core - - minecraft-libraries - https://libraries.minecraft.net - codemc-repo https://repo.codemc.org/repository/maven-public/ default - papermc - https://papermc.io/repo/repository/maven-public/ + minecraft-libraries + https://libraries.minecraft.net From 386acde82df4031f894119b596565283304a4467 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 4 Oct 2022 12:44:23 -0400 Subject: [PATCH 005/638] Add repositories --- .../commandapi-bukkit-core/pom.xml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml index 26f2200e0e..fdcefb7865 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml @@ -12,7 +12,20 @@ commandapi-bukkit-core + + + codemc-repo + https://repo.codemc.org/repository/maven-public/ + default + + + papermc + https://papermc.io/repo/repository/maven-public/ + + + + net.kyori adventure-platform-bukkit @@ -25,5 +38,12 @@ ${paper.version} provided + + + + dev.jorel + commandapi-core + ${project.version} + \ No newline at end of file From e2f0c7578f38210987d41d37ceb02aed19446c0f Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 4 Oct 2022 12:46:14 -0400 Subject: [PATCH 006/638] Add commandapi-bukkit-core dependency everywhere commandapi-core is --- .../commandapi-bukkit-1.13.1/pom.xml | 8 ++++++++ .../commandapi-bukkit-1.13.2/pom.xml | 7 +++++++ .../commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml | 7 +++++++ .../commandapi-bukkit-1.14.3/pom.xml | 7 +++++++ .../commandapi-bukkit-1.14.4/pom.xml | 8 ++++++++ .../commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml | 7 +++++++ .../commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml | 7 +++++++ .../commandapi-bukkit-1.16.1/pom.xml | 7 +++++++ .../commandapi-bukkit-1.16.2/pom.xml | 7 +++++++ .../commandapi-bukkit-1.16.4/pom.xml | 7 +++++++ .../commandapi-bukkit-1.16.5/pom.xml | 7 +++++++ .../commandapi-bukkit-1.17-common/pom.xml | 7 +++++++ .../commandapi-bukkit-1.18.2/pom.xml | 7 +++++++ .../commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml | 7 +++++++ .../commandapi-bukkit-1.19-common/pom.xml | 7 +++++++ .../commandapi-bukkit-1.19.1/pom.xml | 7 +++++++ .../commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml | 7 +++++++ .../commandapi-bukkit-nms-common/pom.xml | 7 +++++++ .../commandapi-bukkit/commandapi-bukkit-plugin/pom.xml | 6 ++++++ .../commandapi-bukkit/commandapi-bukkit-shade/pom.xml | 6 ++++++ 20 files changed, 140 insertions(+) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml index 62ed0fb043..c919362e35 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml @@ -66,6 +66,14 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + + dev.jorel commandapi-bukkit-1.13 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml index 2b72564de6..02862e315d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml @@ -66,6 +66,13 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + dev.jorel diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml index 19d5b7f403..d66e91929f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml @@ -66,5 +66,12 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml index 290ade54b3..1ca76cb5da 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml @@ -66,6 +66,13 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + dev.jorel diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml index e3493135e1..69896e3b04 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml @@ -66,6 +66,14 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + + dev.jorel commandapi-bukkit-1.14.3 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml index a28c6ada94..0186bea139 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml @@ -66,5 +66,12 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml index f52c7dad6e..656238f484 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml @@ -66,5 +66,12 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml index 6abf77d562..926abcb72e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml @@ -66,5 +66,12 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml index 1e0b866510..59d72c533d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml @@ -66,5 +66,12 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml index c17fb1de62..6eefd0be91 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml @@ -66,5 +66,12 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml index 62a62903fd..edd4b25ee4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml @@ -66,6 +66,13 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + dev.jorel diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml index 3bb4d2e639..54aaf49089 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml @@ -80,6 +80,13 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + dev.jorel diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml index 094ef154a6..26a2bd3943 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml @@ -79,6 +79,13 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + dev.jorel diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml index 3ca12606b5..b06160fd6d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml @@ -80,6 +80,13 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + dev.jorel diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml index 86e01a2b94..3a760323aa 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml @@ -80,6 +80,13 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + dev.jorel diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml index 6db2867ff3..b03f4e87c2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml @@ -87,6 +87,13 @@ mojang-mapped provided + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + dev.jorel diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml index 91b19ec7b1..702079f7c7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml @@ -79,6 +79,13 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + dev.jorel diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml index 41dcd4510e..48b084d59c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml @@ -77,6 +77,13 @@ ${project.version} compile + + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml index 1d036ea591..944d4267e9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml @@ -54,6 +54,12 @@ commandapi-core ${project.version} + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + dev.jorel commandapi-bukkit-vh diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml index 6f6bf5d359..393673013a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml @@ -38,6 +38,12 @@ commandapi-core ${project.version} + + dev.jorel + commandapi-bukkit-core + ${project.version} + compile + dev.jorel commandapi-bukkit-vh From c52fedbb315ad83d54e5a13815ca830885c3bc2b Mon Sep 17 00:00:00 2001 From: willkroboth <46540330+willkroboth@users.noreply.github.com> Date: Wed, 5 Oct 2022 10:48:01 -0400 Subject: [PATCH 007/638] Fully move dependency and build configuration to commandapi-bukkit-core to prepare for moving all classes --- commandapi-annotations/pom.xml | 5 ++ commandapi-core/pom.xml | 45 +++-------- .../commandapi-bukkit-core/pom.xml | 81 ++++++++++++++++++- 3 files changed, 92 insertions(+), 39 deletions(-) diff --git a/commandapi-annotations/pom.xml b/commandapi-annotations/pom.xml index 39e21c2eef..f6273cac2e 100644 --- a/commandapi-annotations/pom.xml +++ b/commandapi-annotations/pom.xml @@ -36,6 +36,11 @@ commandapi-core ${project.version} + + dev.jorel + commandapi-bukkit-core + ${project.version} + com.google.auto.service auto-service diff --git a/commandapi-core/pom.xml b/commandapi-core/pom.xml index 57bec6bcb0..b2129acc80 100644 --- a/commandapi-core/pom.xml +++ b/commandapi-core/pom.xml @@ -26,18 +26,19 @@ commandapi-core + + minecraft-libraries + https://libraries.minecraft.net + codemc-repo https://repo.codemc.org/repository/maven-public/ default - - minecraft-libraries - https://libraries.minecraft.net - + com.mojang brigadier @@ -50,29 +51,19 @@ 3.3.39 provided + + dev.jorel commandapi-preprocessor ${project.version} - - - - de.tr7zw - item-nbt-api - 2.10.0 - test - - - org.jetbrains.kotlin - kotlin-stdlib - 1.7.10 - test - + + org.apache.maven.plugins maven-compiler-plugin @@ -85,24 +76,6 @@ - - org.jetbrains.kotlin - kotlin-maven-plugin - 1.7.10 - - - test-compile - - test-compile - - - - ${project.basedir}/src/test/kotlin - - - - - \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml index fdcefb7865..c00a75cf9b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml @@ -14,17 +14,35 @@ - codemc-repo - https://repo.codemc.org/repository/maven-public/ - default + minecraft-libraries + https://libraries.minecraft.net papermc https://papermc.io/repo/repository/maven-public/ + + codemc-repo + https://repo.codemc.org/repository/maven-public/ + default + + + + com.mojang + brigadier + 1.0.17 + provided + + + com.mojang + authlib + 3.3.39 + provided + + net.kyori @@ -45,5 +63,62 @@ commandapi-core ${project.version} + + + dev.jorel + commandapi-preprocessor + ${project.version} + + + + + de.tr7zw + item-nbt-api + 2.10.0 + test + + + org.jetbrains.kotlin + kotlin-stdlib + 1.7.10 + test + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + -Xlint + + + dev.jorel.commandapi.preprocessor.Preprocessor + + + + + + org.jetbrains.kotlin + kotlin-maven-plugin + 1.7.10 + + + test-compile + + test-compile + + + + ${project.basedir}/src/test/kotlin + + + + + + + \ No newline at end of file From 177fbc55cd8228affde644aec69020874c0a4447 Mon Sep 17 00:00:00 2001 From: willkroboth <46540330+willkroboth@users.noreply.github.com> Date: Wed, 5 Oct 2022 10:55:43 -0400 Subject: [PATCH 008/638] Move all classes from commandapi-core to commandapi-bukkit-core --- .../src/main/java/dev/jorel/commandapi/ArgumentTree.java | 0 .../src/main/java/dev/jorel/commandapi/Brigadier.java | 0 .../src/main/java/dev/jorel/commandapi/CommandAPI.java | 0 .../src/main/java/dev/jorel/commandapi/CommandAPICommand.java | 0 .../src/main/java/dev/jorel/commandapi/CommandAPIConfig.java | 0 .../src/main/java/dev/jorel/commandapi/CommandAPIHandler.java | 0 .../main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java | 0 .../src/main/java/dev/jorel/commandapi/CommandMetaData.java | 0 .../src/main/java/dev/jorel/commandapi/CommandPermission.java | 0 .../src/main/java/dev/jorel/commandapi/CommandTree.java | 0 .../src/main/java/dev/jorel/commandapi/Converter.java | 0 .../src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java | 0 .../src/main/java/dev/jorel/commandapi/Executable.java | 0 .../src/main/java/dev/jorel/commandapi/ExecutableCommand.java | 0 .../src/main/java/dev/jorel/commandapi/Execution.java | 0 .../src/main/java/dev/jorel/commandapi/IStringTooltip.java | 0 .../src/main/java/dev/jorel/commandapi/InternalConfig.java | 0 .../src/main/java/dev/jorel/commandapi/PaperImplementations.java | 0 .../src/main/java/dev/jorel/commandapi/RegisteredCommand.java | 0 .../src/main/java/dev/jorel/commandapi/StringTooltip.java | 0 .../src/main/java/dev/jorel/commandapi/SuggestionInfo.java | 0 .../src/main/java/dev/jorel/commandapi/Tooltip.java | 0 .../java/dev/jorel/commandapi/arguments/AdvancementArgument.java | 0 .../dev/jorel/commandapi/arguments/AdventureChatArgument.java | 0 .../commandapi/arguments/AdventureChatComponentArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/AngleArgument.java | 0 .../src/main/java/dev/jorel/commandapi/arguments/Argument.java | 0 .../java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java | 0 .../main/java/dev/jorel/commandapi/arguments/AxisArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/BiomeArgument.java | 0 .../dev/jorel/commandapi/arguments/BlockPredicateArgument.java | 0 .../java/dev/jorel/commandapi/arguments/BlockStateArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/BooleanArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/ChatArgument.java | 0 .../java/dev/jorel/commandapi/arguments/ChatColorArgument.java | 0 .../dev/jorel/commandapi/arguments/ChatComponentArgument.java | 0 .../dev/jorel/commandapi/arguments/CommandAPIArgumentType.java | 0 .../main/java/dev/jorel/commandapi/arguments/CustomArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/DoubleArgument.java | 0 .../java/dev/jorel/commandapi/arguments/EnchantmentArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/EntitySelector.java | 0 .../dev/jorel/commandapi/arguments/EntitySelectorArgument.java | 0 .../java/dev/jorel/commandapi/arguments/EntityTypeArgument.java | 0 .../java/dev/jorel/commandapi/arguments/EnvironmentArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/FloatArgument.java | 0 .../java/dev/jorel/commandapi/arguments/FloatRangeArgument.java | 0 .../java/dev/jorel/commandapi/arguments/FunctionArgument.java | 0 .../java/dev/jorel/commandapi/arguments/GreedyStringArgument.java | 0 .../dev/jorel/commandapi/arguments/ICustomProvidedArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/IGreedyArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/IPreviewable.java | 0 .../main/java/dev/jorel/commandapi/arguments/IntegerArgument.java | 0 .../java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java | 0 .../java/dev/jorel/commandapi/arguments/ItemStackArgument.java | 0 .../jorel/commandapi/arguments/ItemStackPredicateArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/ListArgument.java | 0 .../java/dev/jorel/commandapi/arguments/ListArgumentBuilder.java | 0 .../main/java/dev/jorel/commandapi/arguments/LiteralArgument.java | 0 .../java/dev/jorel/commandapi/arguments/Location2DArgument.java | 0 .../java/dev/jorel/commandapi/arguments/LocationArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/LocationType.java | 0 .../main/java/dev/jorel/commandapi/arguments/LongArgument.java | 0 .../java/dev/jorel/commandapi/arguments/LootTableArgument.java | 0 .../dev/jorel/commandapi/arguments/MathOperationArgument.java | 0 .../java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java | 0 .../java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java | 0 .../dev/jorel/commandapi/arguments/NamespacedKeyArgument.java | 0 .../java/dev/jorel/commandapi/arguments/ObjectiveArgument.java | 0 .../dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java | 0 .../dev/jorel/commandapi/arguments/OfflinePlayerArgument.java | 0 .../java/dev/jorel/commandapi/arguments/ParticleArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/PlayerArgument.java | 0 .../java/dev/jorel/commandapi/arguments/PotionEffectArgument.java | 0 .../src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java | 0 .../main/java/dev/jorel/commandapi/arguments/RecipeArgument.java | 0 .../java/dev/jorel/commandapi/arguments/RotationArgument.java | 0 .../dev/jorel/commandapi/arguments/SafeOverrideableArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java | 0 .../java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java | 0 .../dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/SoundArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/StringArgument.java | 0 .../java/dev/jorel/commandapi/arguments/SuggestionProviders.java | 0 .../main/java/dev/jorel/commandapi/arguments/TeamArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/TextArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/TimeArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/UUIDArgument.java | 0 .../main/java/dev/jorel/commandapi/arguments/package-info.java | 0 .../dev/jorel/commandapi/exceptions/AngleArgumentException.java | 0 .../java/dev/jorel/commandapi/exceptions/BadLiteralException.java | 0 .../dev/jorel/commandapi/exceptions/BiomeArgumentException.java | 0 .../commandapi/exceptions/ConflictingPermissionsException.java | 0 .../dev/jorel/commandapi/exceptions/EmptyExecutorException.java | 0 .../jorel/commandapi/exceptions/EnvironmentArgumentException.java | 0 .../dev/jorel/commandapi/exceptions/GreedyArgumentException.java | 0 .../jorel/commandapi/exceptions/InvalidCommandNameException.java | 0 .../dev/jorel/commandapi/exceptions/InvalidRangeException.java | 0 .../dev/jorel/commandapi/exceptions/NBTAPINotFoundException.java | 0 .../commandapi/exceptions/PaperAdventureNotFoundException.java | 0 .../dev/jorel/commandapi/exceptions/SpigotNotFoundException.java | 0 .../dev/jorel/commandapi/exceptions/TimeArgumentException.java | 0 .../dev/jorel/commandapi/exceptions/UUIDArgumentException.java | 0 .../commandapi/exceptions/WrapperCommandSyntaxException.java | 0 .../main/java/dev/jorel/commandapi/exceptions/package-info.java | 0 .../jorel/commandapi/executors/CommandBlockCommandExecutor.java | 0 .../executors/CommandBlockResultingCommandExecutor.java | 0 .../main/java/dev/jorel/commandapi/executors/CommandExecutor.java | 0 .../dev/jorel/commandapi/executors/ConsoleCommandExecutor.java | 0 .../commandapi/executors/ConsoleResultingCommandExecutor.java | 0 .../dev/jorel/commandapi/executors/EntityCommandExecutor.java | 0 .../commandapi/executors/EntityResultingCommandExecutor.java | 0 .../main/java/dev/jorel/commandapi/executors/ExecutorType.java | 0 .../main/java/dev/jorel/commandapi/executors/IExecutorNormal.java | 0 .../java/dev/jorel/commandapi/executors/IExecutorResulting.java | 0 .../main/java/dev/jorel/commandapi/executors/IExecutorTyped.java | 0 .../dev/jorel/commandapi/executors/NativeCommandExecutor.java | 0 .../commandapi/executors/NativeResultingCommandExecutor.java | 0 .../dev/jorel/commandapi/executors/PlayerCommandExecutor.java | 0 .../commandapi/executors/PlayerResultingCommandExecutor.java | 0 .../java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java | 0 .../jorel/commandapi/executors/ProxyResultingCommandExecutor.java | 0 .../dev/jorel/commandapi/executors/ResultingCommandExecutor.java | 0 .../main/java/dev/jorel/commandapi/executors/package-info.java | 0 .../src/main/java/dev/jorel/commandapi/nms/NMS.java | 0 .../src/main/java/dev/jorel/commandapi/nms/package-info.java | 0 .../java/dev/jorel/commandapi/wrappers/ComplexRecipeImpl.java | 0 .../src/main/java/dev/jorel/commandapi/wrappers/FloatRange.java | 0 .../main/java/dev/jorel/commandapi/wrappers/FunctionWrapper.java | 0 .../src/main/java/dev/jorel/commandapi/wrappers/IntegerRange.java | 0 .../src/main/java/dev/jorel/commandapi/wrappers/Location2D.java | 0 .../main/java/dev/jorel/commandapi/wrappers/MathOperation.java | 0 .../dev/jorel/commandapi/wrappers/NativeProxyCommandSender.java | 0 .../src/main/java/dev/jorel/commandapi/wrappers/ParticleData.java | 0 .../src/main/java/dev/jorel/commandapi/wrappers/Preview.java | 0 .../main/java/dev/jorel/commandapi/wrappers/PreviewLegacy.java | 0 .../java/dev/jorel/commandapi/wrappers/PreviewableFunction.java | 0 .../src/main/java/dev/jorel/commandapi/wrappers/Rotation.java | 0 .../main/java/dev/jorel/commandapi/wrappers/ScoreboardSlot.java | 0 .../java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java | 0 .../src/main/java/dev/jorel/commandapi/wrappers/Time.java | 0 .../src/main/java/dev/jorel/commandapi/wrappers/package-info.java | 0 .../commandapi-bukkit-core}/src/test/java/Examples.java | 0 .../commandapi-bukkit-core}/src/test/kotlin/Examples.kt | 0 143 files changed, 0 insertions(+), 0 deletions(-) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/ArgumentTree.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/Brigadier.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/CommandAPI.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/CommandAPICommand.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/CommandMetaData.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/CommandPermission.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/CommandTree.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/Converter.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/Executable.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/ExecutableCommand.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/Execution.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/IStringTooltip.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/InternalConfig.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/PaperImplementations.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/RegisteredCommand.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/StringTooltip.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/SuggestionInfo.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/Tooltip.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/Argument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/EntitySelector.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ICustomProvidedArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/IGreedyArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ListArgumentBuilder.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/LocationType.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/SuggestionProviders.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/package-info.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/BadLiteralException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/ConflictingPermissionsException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/EmptyExecutorException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/InvalidCommandNameException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/InvalidRangeException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/NBTAPINotFoundException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/PaperAdventureNotFoundException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/SpigotNotFoundException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/WrapperCommandSyntaxException.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/exceptions/package-info.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/ExecutorType.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/package-info.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/nms/NMS.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/nms/package-info.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/ComplexRecipeImpl.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/FloatRange.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/FunctionWrapper.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/IntegerRange.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/Location2D.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/MathOperation.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/NativeProxyCommandSender.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/ParticleData.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/Preview.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/PreviewLegacy.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/PreviewableFunction.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/Rotation.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/ScoreboardSlot.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/Time.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/package-info.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/test/java/Examples.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/test/kotlin/Examples.kt (100%) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Brigadier.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Brigadier.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandPermission.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandPermission.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/CommandPermission.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandPermission.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandTree.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/CommandTree.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Converter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/Converter.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Executable.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Executable.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Execution.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Execution.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/IStringTooltip.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/IStringTooltip.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/IStringTooltip.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/IStringTooltip.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/InternalConfig.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/InternalConfig.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/PaperImplementations.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/PaperImplementations.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/PaperImplementations.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/PaperImplementations.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/StringTooltip.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/StringTooltip.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Tooltip.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/Tooltip.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelector.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelector.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelector.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelector.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ICustomProvidedArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ICustomProvidedArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ICustomProvidedArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ICustomProvidedArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IGreedyArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IGreedyArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IGreedyArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IGreedyArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentBuilder.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentBuilder.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentBuilder.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentBuilder.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LocationType.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationType.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LocationType.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationType.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionProviders.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionProviders.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionProviders.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionProviders.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/package-info.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/package-info.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/package-info.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/package-info.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BadLiteralException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/BadLiteralException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BadLiteralException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/BadLiteralException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/ConflictingPermissionsException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/ConflictingPermissionsException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/ConflictingPermissionsException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/ConflictingPermissionsException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EmptyExecutorException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/EmptyExecutorException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EmptyExecutorException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/EmptyExecutorException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidCommandNameException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidCommandNameException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidCommandNameException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidCommandNameException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidRangeException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidRangeException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidRangeException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidRangeException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/NBTAPINotFoundException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/NBTAPINotFoundException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/NBTAPINotFoundException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/NBTAPINotFoundException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/PaperAdventureNotFoundException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/PaperAdventureNotFoundException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/PaperAdventureNotFoundException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/PaperAdventureNotFoundException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/SpigotNotFoundException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/SpigotNotFoundException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/SpigotNotFoundException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/SpigotNotFoundException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/WrapperCommandSyntaxException.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/WrapperCommandSyntaxException.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/WrapperCommandSyntaxException.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/WrapperCommandSyntaxException.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/package-info.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/package-info.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/package-info.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/package-info.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ExecutorType.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ExecutorType.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/ExecutorType.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ExecutorType.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/package-info.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/package-info.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/package-info.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/package-info.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/nms/NMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/nms/NMS.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/nms/package-info.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/package-info.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/nms/package-info.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/package-info.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/ComplexRecipeImpl.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/ComplexRecipeImpl.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/ComplexRecipeImpl.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/ComplexRecipeImpl.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/FloatRange.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/FloatRange.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/FloatRange.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/FloatRange.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/FunctionWrapper.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/FunctionWrapper.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/FunctionWrapper.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/FunctionWrapper.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/IntegerRange.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/IntegerRange.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/IntegerRange.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/IntegerRange.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/Location2D.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/Location2D.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/Location2D.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/Location2D.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/MathOperation.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/MathOperation.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/MathOperation.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/MathOperation.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/NativeProxyCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/NativeProxyCommandSender.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/NativeProxyCommandSender.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/NativeProxyCommandSender.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/ParticleData.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/ParticleData.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/ParticleData.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/ParticleData.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/Preview.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/Preview.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/Preview.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/Preview.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/PreviewLegacy.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/PreviewLegacy.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/PreviewLegacy.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/PreviewLegacy.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/PreviewableFunction.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/PreviewableFunction.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/PreviewableFunction.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/PreviewableFunction.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/Rotation.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/Rotation.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/Rotation.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/Rotation.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/ScoreboardSlot.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/ScoreboardSlot.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/ScoreboardSlot.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/ScoreboardSlot.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/Time.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/Time.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/Time.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/Time.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/package-info.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/package-info.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/package-info.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/package-info.java diff --git a/commandapi-core/src/test/java/Examples.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/test/java/Examples.java similarity index 100% rename from commandapi-core/src/test/java/Examples.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/test/java/Examples.java diff --git a/commandapi-core/src/test/kotlin/Examples.kt b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/test/kotlin/Examples.kt similarity index 100% rename from commandapi-core/src/test/kotlin/Examples.kt rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/test/kotlin/Examples.kt From 9be0b046de46989429f26f3f381bff6c509b92ea Mon Sep 17 00:00:00 2001 From: willkroboth <46540330+willkroboth@users.noreply.github.com> Date: Wed, 5 Oct 2022 11:57:41 -0400 Subject: [PATCH 009/638] Configure maven structure for a velocity platform implementation --- .../commandapi-velocity-core/pom.xml | 70 +++++++++++++++++++ .../.gitignore | 5 ++ .../commandapi-velocity-plugin-test/pom.xml | 35 ++++++++++ .../commandapi-velocity-plugin/.gitignore | 4 ++ .../commandapi-velocity-plugin/pom.xml | 45 ++++++++++++ .../commandapi-velocity-shade/.gitignore | 4 ++ .../commandapi-velocity-shade/pom.xml | 62 ++++++++++++++++ .../commandapi-velocity/pom.xml | 25 +++++++ commandapi-platforms/pom.xml | 3 +- 9 files changed, 252 insertions(+), 1 deletion(-) create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/.gitignore create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/pom.xml create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/.gitignore create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/.gitignore create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml create mode 100644 commandapi-platforms/commandapi-velocity/pom.xml diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml new file mode 100644 index 0000000000..2f937606c5 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml @@ -0,0 +1,70 @@ + + + 4.0.0 + + + commandapi-velocity + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-velocity-core + + + + minecraft-libraries + https://libraries.minecraft.net + + + + + + + com.mojang + brigadier + 1.0.17 + provided + + + com.mojang + authlib + 3.3.39 + provided + + + + + + + dev.jorel + commandapi-core + ${project.version} + + + + dev.jorel + commandapi-preprocessor + ${project.version} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + -Xlint + + + dev.jorel.commandapi.preprocessor.Preprocessor + + + + + + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/.gitignore b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/.gitignore new file mode 100644 index 0000000000..3e0973a611 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/.gitignore @@ -0,0 +1,5 @@ +/.apt_generated/ +/.apt_generated_tests/ + +/command_registration.json +/logs/* \ No newline at end of file diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/pom.xml new file mode 100644 index 0000000000..2675ae26df --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + + commandapi-velocity + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-velocity-plugin-test + + + + dev.jorel + commandapi-velocity-shade + ${project.version} + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.0 + + false + + + + + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/.gitignore b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/.gitignore new file mode 100644 index 0000000000..a87f02033f --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/.gitignore @@ -0,0 +1,4 @@ +/.apt_generated/ +/.apt_generated_tests/ + +/dependency-reduced-pom.xml diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml new file mode 100644 index 0000000000..9344ba862e --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml @@ -0,0 +1,45 @@ + + + 4.0.0 + + + commandapi-velocity + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-velocity-plugin + + + + dev.jorel + commandapi-core + ${project.version} + + + dev.jorel + commandapi-velocity-core + ${project.version} + compile + + + + + + + org.apache.maven.plugins + maven-shade-plugin + + + package + + shade + + + + + + + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/.gitignore b/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/.gitignore new file mode 100644 index 0000000000..a87f02033f --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/.gitignore @@ -0,0 +1,4 @@ +/.apt_generated/ +/.apt_generated_tests/ + +/dependency-reduced-pom.xml diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml new file mode 100644 index 0000000000..0b725e5a0d --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + + + commandapi-velocity + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-velocity-shade + + + + dev.jorel + commandapi-core + ${project.version} + + + dev.jorel + commandapi-velocity-core + ${project.version} + compile + + + + + + + org.apache.maven.plugins + maven-shade-plugin + + + package + + shade + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + empty-javadoc-jar + package + + jar + + + javadoc + ${basedir}/javadoc + + + + + + + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-velocity/pom.xml b/commandapi-platforms/commandapi-velocity/pom.xml new file mode 100644 index 0000000000..4ee32cf6c8 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/pom.xml @@ -0,0 +1,25 @@ + + + 4.0.0 + + + commandapi-platforms + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-velocity + pom + + + + commandapi-velocity-core + + + commandapi-velocity-plugin + commandapi-velocity-plugin-test + commandapi-velocity-shade + + \ No newline at end of file diff --git a/commandapi-platforms/pom.xml b/commandapi-platforms/pom.xml index c600e75972..ca747d9966 100644 --- a/commandapi-platforms/pom.xml +++ b/commandapi-platforms/pom.xml @@ -15,5 +15,6 @@ commandapi-bukkit - + commandapi-velocity + \ No newline at end of file From 687d8a14e558337f09936bdc93deb2b7efe9ae7d Mon Sep 17 00:00:00 2001 From: willkroboth <46540330+willkroboth@users.noreply.github.com> Date: Wed, 5 Oct 2022 15:39:58 -0400 Subject: [PATCH 010/638] Add velocity-api dependency to velocity core --- .../commandapi-velocity-core/pom.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml index 2f937606c5..7c961aafcb 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml @@ -17,6 +17,10 @@ minecraft-libraries https://libraries.minecraft.net + + papermc + https://repo.papermc.io/repository/maven-public/ + @@ -35,6 +39,12 @@ + + com.velocitypowered + velocity-api + 3.1.1 + provided + From e3759efdd66425159a420fe88a679f012936e39d Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 7 Oct 2022 08:16:27 -0400 Subject: [PATCH 011/638] Add velocity api dependency to velocity-plugin --- .../commandapi-velocity-plugin/pom.xml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml index 9344ba862e..e0c5a083ee 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml @@ -12,7 +12,23 @@ commandapi-velocity-plugin + + + papermc + https://repo.papermc.io/repository/maven-public/ + + + + + + com.velocitypowered + velocity-api + 3.1.1 + provided + + + dev.jorel commandapi-core From 87b74a56f20150ed9dcca9ce14896b4c3cec9f89 Mon Sep 17 00:00:00 2001 From: RedstoneWizard08 <94275204+RedstoneWizard08@users.noreply.github.com> Date: Thu, 6 Oct 2022 15:37:55 +0000 Subject: [PATCH 012/638] Begin with keyedobject --- .../jorel/commandapi/attributes/KeyedObject.java | 15 +++++++++++++++ .../commandapi/arguments/AdvancementArgument.java | 11 ++++++----- .../main/java/dev/jorel/commandapi/nms/NMS.java | 3 ++- 3 files changed, 23 insertions(+), 6 deletions(-) create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/attributes/KeyedObject.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/attributes/KeyedObject.java b/commandapi-core/src/main/java/dev/jorel/commandapi/attributes/KeyedObject.java new file mode 100644 index 0000000000..ff81ab55a7 --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/attributes/KeyedObject.java @@ -0,0 +1,15 @@ +package dev.jorel.commandapi.attributes; + +import org.bukkit.NamespacedKey; + +public class KeyedObject { + private NamespacedKey key; + + public KeyedObject(NamespacedKey key) { + this.key = key; + } + + public NamespacedKey getKey() { + return this.key; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java index a1fc91c688..8ae34588e3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java @@ -26,25 +26,26 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.attributes.KeyedObject; import dev.jorel.commandapi.nms.NMS; /** * An argument that represents the Bukkit Advancement object * @apiNote Returns an {@link Advancement} object */ -public class AdvancementArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class AdvancementArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * Constructs an AdvancementArgument with a given node name * @param nodeName the name of the node for argument */ public AdvancementArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentMinecraftKeyRegistered(), fromKey(Advancement::getKey)); + super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentMinecraftKeyRegistered(), fromKey(KeyedObject::getKey)); } @Override - public Class getPrimitiveType() { - return Advancement.class; + public Class getPrimitiveType() { + return KeyedObject.class; } @Override @@ -58,7 +59,7 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public Advancement parseArgument(NMS nms, + public KeyedObject parseArgument(NMS nms, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return nms.getAdvancement(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java index 3fb4253af0..3af2381846 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java @@ -65,6 +65,7 @@ import dev.jorel.commandapi.arguments.EntitySelector; import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.attributes.KeyedObject; import dev.jorel.commandapi.wrappers.FloatRange; import dev.jorel.commandapi.wrappers.FunctionWrapper; import dev.jorel.commandapi.wrappers.IntegerRange; @@ -186,7 +187,7 @@ public interface NMS { */ void createDispatcherFile(File file, CommandDispatcher dispatcher) throws IOException; - Advancement getAdvancement(CommandContext cmdCtx, String key) throws CommandSyntaxException; + KeyedObject getAdvancement(CommandContext cmdCtx, String key) throws CommandSyntaxException; Component getAdventureChat(CommandContext cmdCtx, String key) throws CommandSyntaxException; From 12ce31ffbdbe5602b2898a3f45f791c8d6883662 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 7 Oct 2022 17:35:32 -0400 Subject: [PATCH 013/638] Add bare-bones class hierarchy for an abstract platform-independent CommandSender --- .../commandapi/abstractions/AbstractBlockCommandSender.java | 4 ++++ .../jorel/commandapi/abstractions/AbstractCommandSender.java | 4 ++++ .../commandapi/abstractions/AbstractConsoleCommandSender.java | 4 ++++ .../dev/jorel/commandapi/abstractions/AbstractEntity.java | 4 ++++ .../abstractions/AbstractNativeProxyCommandSender.java | 4 ++++ .../dev/jorel/commandapi/abstractions/AbstractPlatform.java | 4 ++++ .../dev/jorel/commandapi/abstractions/AbstractPlayer.java | 4 ++++ .../commandapi/abstractions/AbstractProxiedCommandSender.java | 4 ++++ 8 files changed, 32 insertions(+) create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractConsoleCommandSender.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractEntity.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractNativeProxyCommandSender.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlayer.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractProxiedCommandSender.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java new file mode 100644 index 0000000000..63548b8ad7 --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java @@ -0,0 +1,4 @@ +package dev.jorel.commandapi.abstractions; + +public class AbstractBlockCommandSender implements AbstractCommandSender{ +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java new file mode 100644 index 0000000000..4ef3a3a376 --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java @@ -0,0 +1,4 @@ +package dev.jorel.commandapi.abstractions; + +public interface AbstractCommandSender { +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractConsoleCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractConsoleCommandSender.java new file mode 100644 index 0000000000..352cbfa691 --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractConsoleCommandSender.java @@ -0,0 +1,4 @@ +package dev.jorel.commandapi.abstractions; + +public class AbstractConsoleCommandSender implements AbstractCommandSender{ +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractEntity.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractEntity.java new file mode 100644 index 0000000000..a03215c771 --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractEntity.java @@ -0,0 +1,4 @@ +package dev.jorel.commandapi.abstractions; + +public class AbstractEntity implements AbstractCommandSender{ +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractNativeProxyCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractNativeProxyCommandSender.java new file mode 100644 index 0000000000..51e8278e7d --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractNativeProxyCommandSender.java @@ -0,0 +1,4 @@ +package dev.jorel.commandapi.abstractions; + +public class AbstractNativeProxyCommandSender implements AbstractCommandSender{ +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java new file mode 100644 index 0000000000..4fb59bee9a --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -0,0 +1,4 @@ +package dev.jorel.commandapi.abstractions; + +public class AbstractPlatform { +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlayer.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlayer.java new file mode 100644 index 0000000000..829f3bc92d --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlayer.java @@ -0,0 +1,4 @@ +package dev.jorel.commandapi.abstractions; + +public class AbstractPlayer implements AbstractCommandSender{ +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractProxiedCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractProxiedCommandSender.java new file mode 100644 index 0000000000..31debfdb4d --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractProxiedCommandSender.java @@ -0,0 +1,4 @@ +package dev.jorel.commandapi.abstractions; + +public class AbstractProxiedCommandSender implements AbstractCommandSender{ +} From 3d8aa22d210c364723f5c3cc6523b6b852daaffc Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 7 Oct 2022 17:37:04 -0400 Subject: [PATCH 014/638] Move some (mostly trivial) classes back to commandapi-core --- .../dev/jorel/commandapi/ArgumentTree.java | 0 .../java/dev/jorel/commandapi/Brigadier.java | 11 ++++---- .../jorel/commandapi/CommandAPICommand.java | 0 .../jorel/commandapi/CommandAPIConfig.java | 0 .../dev/jorel/commandapi/CommandMetaData.java | 6 ++--- .../jorel/commandapi/CommandPermission.java | 0 .../dev/jorel/commandapi/CommandTree.java | 0 .../commandapi/CustomCommandExecutor.java | 27 ++++++++----------- .../java/dev/jorel/commandapi/Executable.java | 11 ++++---- .../jorel/commandapi/ExecutableCommand.java | 8 +++--- .../java/dev/jorel/commandapi/Execution.java | 4 +-- .../dev/jorel/commandapi/IStringTooltip.java | 0 .../dev/jorel/commandapi/StringTooltip.java | 1 + .../dev/jorel/commandapi/SuggestionInfo.java | 4 +-- .../java/dev/jorel/commandapi/Tooltip.java | 1 + .../jorel/commandapi/arguments/Argument.java | 14 +++++----- .../arguments/ArgumentSuggestions.java | 0 .../commandapi/arguments/BooleanArgument.java | 4 +-- .../arguments/CommandAPIArgumentType.java | 0 .../commandapi/arguments/DoubleArgument.java | 4 +-- .../commandapi/arguments/FloatArgument.java | 4 +-- .../arguments/GreedyStringArgument.java | 4 +-- .../arguments/ICustomProvidedArgument.java | 0 .../commandapi/arguments/IGreedyArgument.java | 0 .../commandapi/arguments/IPreviewable.java | 0 .../commandapi/arguments/IntegerArgument.java | 4 +-- .../commandapi/arguments/LiteralArgument.java | 4 +-- .../commandapi/arguments/LocationType.java | 0 .../commandapi/arguments/LongArgument.java | 4 +-- .../arguments/MultiLiteralArgument.java | 4 +-- .../commandapi/arguments/PreviewInfo.java | 4 +-- .../arguments/SafeOverrideableArgument.java | 12 ++++----- .../commandapi/arguments/SafeSuggestions.java | 0 .../commandapi/arguments/StringArgument.java | 4 +-- .../arguments/SuggestionProviders.java | 0 .../commandapi/arguments/TextArgument.java | 4 +-- .../commandapi/arguments/package-info.java | 0 .../exceptions/AngleArgumentException.java | 0 .../exceptions/BadLiteralException.java | 0 .../exceptions/BiomeArgumentException.java | 0 .../ConflictingPermissionsException.java | 0 .../exceptions/EmptyExecutorException.java | 0 .../EnvironmentArgumentException.java | 0 .../exceptions/GreedyArgumentException.java | 0 .../InvalidCommandNameException.java | 0 .../exceptions/InvalidRangeException.java | 0 .../exceptions/NBTAPINotFoundException.java | 0 .../PaperAdventureNotFoundException.java | 0 .../exceptions/SpigotNotFoundException.java | 0 .../exceptions/TimeArgumentException.java | 0 .../exceptions/UUIDArgumentException.java | 0 .../WrapperCommandSyntaxException.java | 0 .../commandapi/exceptions/package-info.java | 0 .../CommandBlockCommandExecutor.java | 6 ++--- .../CommandBlockResultingCommandExecutor.java | 6 ++--- .../commandapi/executors/CommandExecutor.java | 6 ++--- .../executors/ConsoleCommandExecutor.java | 6 ++--- .../ConsoleResultingCommandExecutor.java | 7 +++-- .../executors/EntityCommandExecutor.java | 7 +++-- .../EntityResultingCommandExecutor.java | 7 +++-- .../commandapi/executors/ExecutorType.java | 0 .../commandapi/executors/IExecutorNormal.java | 6 ++--- .../executors/IExecutorResulting.java | 6 ++--- .../commandapi/executors/IExecutorTyped.java | 5 ++-- .../executors/NativeCommandExecutor.java | 6 ++--- .../NativeResultingCommandExecutor.java | 6 ++--- .../executors/PlayerCommandExecutor.java | 6 ++--- .../PlayerResultingCommandExecutor.java | 7 +++-- .../executors/ProxyCommandExecutor.java | 6 ++--- .../ProxyResultingCommandExecutor.java | 6 ++--- .../executors/ResultingCommandExecutor.java | 6 ++--- .../commandapi/executors/package-info.java | 0 .../jorel/commandapi/wrappers/FloatRange.java | 0 .../commandapi/wrappers/IntegerRange.java | 0 .../commandapi/wrappers/MathOperation.java | 0 .../wrappers/PreviewableFunction.java | 0 .../jorel/commandapi/wrappers/Rotation.java | 13 ++++++--- .../dev/jorel/commandapi/wrappers/Time.java | 0 .../commandapi/wrappers/package-info.java | 0 79 files changed, 127 insertions(+), 134 deletions(-) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/ArgumentTree.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/Brigadier.java (94%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/CommandAPICommand.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/CommandMetaData.java (88%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/CommandPermission.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/CommandTree.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java (84%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/Executable.java (95%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/ExecutableCommand.java (95%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/Execution.java (89%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/IStringTooltip.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/StringTooltip.java (99%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/SuggestionInfo.java (96%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/Tooltip.java (99%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/Argument.java (95%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java (94%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java (95%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java (95%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java (94%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/ICustomProvidedArgument.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/IGreedyArgument.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java (95%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java (95%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/LocationType.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java (95%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java (94%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java (86%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java (97%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java (94%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/SuggestionProviders.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java (94%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/arguments/package-info.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/BadLiteralException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/ConflictingPermissionsException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/EmptyExecutorException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/InvalidCommandNameException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/InvalidRangeException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/NBTAPINotFoundException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/PaperAdventureNotFoundException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/SpigotNotFoundException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/WrapperCommandSyntaxException.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/exceptions/package-info.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java (91%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java (91%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java (89%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java (91%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java (90%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java (90%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java (92%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/ExecutorType.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java (89%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java (89%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java (93%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java (88%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java (90%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java (90%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java (92%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java (88%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java (90%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java (92%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/executors/package-info.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/wrappers/FloatRange.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/wrappers/IntegerRange.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/wrappers/MathOperation.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/wrappers/PreviewableFunction.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/wrappers/Rotation.java (91%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/wrappers/Time.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/wrappers/package-info.java (100%) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java similarity index 94% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Brigadier.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index a677d00d46..07a55086bf 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -24,8 +24,6 @@ import java.util.List; import java.util.function.BiPredicate; -import org.bukkit.command.CommandSender; - import com.mojang.brigadier.Command; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.RedirectModifier; @@ -36,6 +34,7 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.tree.RootCommandNode; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.arguments.Argument; import dev.jorel.commandapi.arguments.LiteralArgument; @@ -103,9 +102,9 @@ public static LiteralArgumentBuilder fromLiteralArgument(LiteralArgument literal * @param args the arguments that the sender has filled in * @return a RedirectModifier that encapsulates the provided predicate */ - public static RedirectModifier fromPredicate(BiPredicate predicate, List args) { + public static RedirectModifier fromPredicate(BiPredicate predicate, List args) { return cmdCtx -> { - if (predicate.test(getBukkitCommandSenderFromContext(cmdCtx), parseArguments(cmdCtx, args))) { + if (predicate.test(getCommandSenderFromContext(cmdCtx), parseArguments(cmdCtx, args))) { return Collections.singleton(cmdCtx.getSource()); } else { return Collections.emptyList(); @@ -200,7 +199,7 @@ public static Object[] parseArguments(CommandContext cmdCtx, List args * @return a Brigadier source object representing the provided Bukkit * CommandSender */ - public static Object getBrigadierSourceFromCommandSender(CommandSender sender) { + public static Object getBrigadierSourceFromCommandSender(AbstractCommandSender sender) { return CommandAPIHandler.getInstance().getNMS().getCLWFromCommandSender(sender); } @@ -211,7 +210,7 @@ public static Object getBrigadierSourceFromCommandSender(CommandSender sender) { * @param cmdCtx the command context to get the CommandSender from * @return a Bukkit CommandSender from the provided Brigadier CommandContext */ - public static CommandSender getBukkitCommandSenderFromContext(CommandContext cmdCtx) { + public static AbstractCommandSender getCommandSenderFromContext(CommandContext cmdCtx) { return CommandAPIHandler.getInstance().getNMS().getSenderForCommand(cmdCtx, false); } } \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java similarity index 88% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java index 5c62d2e586..da393928c5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java @@ -1,7 +1,7 @@ package dev.jorel.commandapi; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.exceptions.InvalidCommandNameException; -import org.bukkit.command.CommandSender; import java.util.Arrays; import java.util.Optional; @@ -28,9 +28,9 @@ final class CommandMetaData { String[] aliases = new String[0]; /** - * A predicate that a {@link CommandSender} must pass in order to execute the command + * A predicate that a {@link AbstractCommandSender} must pass in order to execute the command */ - Predicate requirements = s -> true; + Predicate requirements = s -> true; /** * An optional short description for the command diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandPermission.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandPermission.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandPermission.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/CommandPermission.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandTree.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/CommandTree.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java similarity index 84% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java index 0de18cbb3f..bb1b6b9dec 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java @@ -24,17 +24,12 @@ import java.util.List; import java.util.NoSuchElementException; -import org.bukkit.command.BlockCommandSender; -import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; -import org.bukkit.command.ProxiedCommandSender; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; - import com.mojang.brigadier.LiteralMessage; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import dev.jorel.commandapi.abstractions.*; + import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.executors.ExecutorType; import dev.jorel.commandapi.executors.IExecutorNormal; @@ -49,7 +44,7 @@ * * @param a command sender */ -public class CustomCommandExecutor { +public class CustomCommandExecutor { private List> normalExecutors; private List> resultingExecutors; @@ -69,7 +64,7 @@ public > void addResultingExecutor(S executor) { this.resultingExecutors.add((IExecutorResulting) executor); } - public int execute(CommandSender sender, Object[] arguments) throws CommandSyntaxException { + public int execute(AbstractCommandSender sender, Object[] arguments) throws CommandSyntaxException { // Parse executor type if (!resultingExecutors.isEmpty()) { @@ -95,19 +90,19 @@ public int execute(CommandSender sender, Object[] arguments) throws CommandSynta } } - private int execute(List executors, CommandSender sender, Object[] args) + private int execute(List executors, AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { if (isForceNative()) { return execute(executors, sender, args, ExecutorType.NATIVE); - } else if (sender instanceof Player && matches(executors, ExecutorType.PLAYER)) { + } else if (sender instanceof AbstractPlayer && matches(executors, ExecutorType.PLAYER)) { return execute(executors, sender, args, ExecutorType.PLAYER); - } else if (sender instanceof Entity && matches(executors, ExecutorType.ENTITY)) { + } else if (sender instanceof AbstractEntity && matches(executors, ExecutorType.ENTITY)) { return execute(executors, sender, args, ExecutorType.ENTITY); - } else if (sender instanceof ConsoleCommandSender && matches(executors, ExecutorType.CONSOLE)) { + } else if (sender instanceof AbstractConsoleCommandSender && matches(executors, ExecutorType.CONSOLE)) { return execute(executors, sender, args, ExecutorType.CONSOLE); - } else if (sender instanceof BlockCommandSender && matches(executors, ExecutorType.BLOCK)) { + } else if (sender instanceof AbstractBlockCommandSender && matches(executors, ExecutorType.BLOCK)) { return execute(executors, sender, args, ExecutorType.BLOCK); - } else if (sender instanceof ProxiedCommandSender && matches(executors, ExecutorType.PROXY)) { + } else if (sender instanceof AbstractProxiedCommandSender && matches(executors, ExecutorType.PROXY)) { return execute(executors, sender, args, ExecutorType.PROXY); } else if (matches(executors, ExecutorType.ALL)) { return execute(executors, sender, args, ExecutorType.ALL); @@ -119,7 +114,7 @@ private int execute(List executors, CommandSender send } } - private int execute(List executors, CommandSender sender, Object[] args, + private int execute(List executors, AbstractCommandSender sender, Object[] args, ExecutorType type) throws WrapperCommandSyntaxException { for (IExecutorTyped executor : executors) { if (executor.getType() == type) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Executable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java similarity index 95% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Executable.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java index a4e276bf25..311a67e209 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Executable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java @@ -2,9 +2,8 @@ import java.util.ArrayList; -import org.bukkit.command.CommandSender; - import dev.jorel.commandapi.arguments.Argument; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.executors.CommandBlockCommandExecutor; import dev.jorel.commandapi.executors.CommandBlockResultingCommandExecutor; @@ -51,7 +50,7 @@ public T executes(CommandExecutor executor, ExecutorType... types) { this.executor.addNormalExecutor(new CommandExecutor() { @Override - public void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + public void run(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { executor.executeWith(sender, args); } @@ -80,7 +79,7 @@ public T executes(ResultingCommandExecutor executor, ExecutorType... types) { this.executor.addResultingExecutor(new ResultingCommandExecutor() { @Override - public int run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + public int run(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { return executor.executeWith(sender, args); } @@ -240,7 +239,7 @@ public T executesNative(NativeResultingCommandExecutor executor) { * Returns the executors that this command has * @return the executors that this command has */ - public CustomCommandExecutor getExecutor() { + public CustomCommandExecutor getExecutor() { return executor; } @@ -248,7 +247,7 @@ public CustomCommandExecutor getExecutor() { * Sets the executors for this command * @param executor the executors for this command */ - public void setExecutor(CustomCommandExecutor executor) { + public void setExecutor(CustomCommandExecutor executor) { this.executor = executor; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java similarity index 95% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java index 2704237ecb..3ae655d721 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi; -import org.bukkit.command.CommandSender; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import java.util.Optional; import java.util.function.Predicate; @@ -86,7 +86,7 @@ public T withoutPermission(String permission) { * @return this command builder */ @SuppressWarnings("unchecked") - public T withRequirement(Predicate requirement) { + public T withRequirement(Predicate requirement) { this.meta.requirements = this.meta.requirements.and(requirement); return (T) this; } @@ -140,7 +140,7 @@ public void setAliases(String[] aliases) { * Returns the requirements that must be satisfied to run this command * @return the requirements that must be satisfied to run this command */ - public Predicate getRequirements() { + public Predicate getRequirements() { return this.meta.requirements; } @@ -148,7 +148,7 @@ public Predicate getRequirements() { * Sets the requirements that must be satisfied to run this command * @param requirements the requirements that must be satisfied to run this command */ - public void setRequirements(Predicate requirements) { + public void setRequirements(Predicate requirements) { this.meta.requirements = requirements; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Execution.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java similarity index 89% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Execution.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java index 399d88e941..0fee2ac47d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Execution.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java @@ -1,7 +1,7 @@ package dev.jorel.commandapi; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.arguments.Argument; -import org.bukkit.command.CommandSender; import java.util.ArrayList; import java.util.List; @@ -9,7 +9,7 @@ /** * A list of arguments which results in an execution. This is used for building branches in a {@link CommandTree} */ -record Execution(List> arguments, CustomCommandExecutor executor) { +record Execution(List> arguments, CustomCommandExecutor executor) { /** * Register a command with the given arguments and executor to brigadier, by converting it into a {@link CommandAPICommand} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/IStringTooltip.java b/commandapi-core/src/main/java/dev/jorel/commandapi/IStringTooltip.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/IStringTooltip.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/IStringTooltip.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/StringTooltip.java b/commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java similarity index 99% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/StringTooltip.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java index 012d6363b7..f56317d996 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/StringTooltip.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java @@ -21,6 +21,7 @@ package dev.jorel.commandapi; import com.mojang.brigadier.Message; +// TODO: remove references to platform-specific message formatting classes (move to bukkit implementation?) import net.kyori.adventure.text.Component; import net.md_5.bungee.api.chat.BaseComponent; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java b/commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java similarity index 96% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java index 91e329aca3..a93827396c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java @@ -20,7 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi; -import org.bukkit.command.CommandSender; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; /** * A class that represents information which you can use to generate @@ -35,7 +35,7 @@ */ public record SuggestionInfo( /** @param sender - the CommandSender typing this command */ - CommandSender sender, + AbstractCommandSender sender, /** * @param previousArgs - the list of previously declared (and parsed) arguments diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Tooltip.java similarity index 99% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/Tooltip.java index 3cfb5e6a77..ca833a31e1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Tooltip.java @@ -22,6 +22,7 @@ import com.mojang.brigadier.LiteralMessage; import com.mojang.brigadier.Message; +// TODO: remove references to platform-specific message formatting classes (move to bukkit implementation?) import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.md_5.bungee.api.chat.BaseComponent; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java similarity index 95% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java index 6eacbda3e9..f0ea3f6d42 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -27,7 +27,7 @@ import java.util.function.Predicate; import dev.jorel.commandapi.ArgumentTree; -import org.bukkit.command.CommandSender; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; @@ -36,7 +36,7 @@ import dev.jorel.commandapi.CommandPermission; import dev.jorel.commandapi.IStringTooltip; import dev.jorel.commandapi.SuggestionInfo; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * The core abstract class for Command API arguments @@ -101,14 +101,14 @@ public final String getNodeName() { * isn't expected to be used outside the CommandAPI * * @param the command source type - * @param nms an instance of NMS + * @param platform a reference to the platform * @param cmdCtx the context which ran this command * @param key the name of the argument node * @param previousArgs an array of previously declared arguments * @return the parsed object represented by this argument * @throws CommandSyntaxException if parsing fails */ - public abstract T parseArgument(NMS nms, + public abstract T parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException; ///////////////// @@ -258,13 +258,13 @@ public final CommandPermission getArgumentPermission() { // Requirements // ////////////////// - private Predicate requirements = s -> true; + private Predicate requirements = s -> true; /** * Returns the requirements required to run this command * @return the requirements required to run this command */ - public final Predicate getRequirements() { + public final Predicate getRequirements() { return this.requirements; } @@ -276,7 +276,7 @@ public final Predicate getRequirements() { * @param requirement the predicate that must be satisfied to use this argument * @return this current argument */ - public final Argument withRequirement(Predicate requirement) { + public final Argument withRequirement(Predicate requirement) { this.requirements = this.requirements.and(requirement); return this; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java similarity index 94% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java index 5104e75e1e..146f800504 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents primitive Java booleans @@ -53,7 +53,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Boolean parseArgument(NMS nms, + public Boolean parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java similarity index 95% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java index 76ed775f91..e0f7d3bb0c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -25,7 +25,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.exceptions.InvalidRangeException; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents primitive Java doubles @@ -78,7 +78,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Double parseArgument(NMS nms, + public Double parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java similarity index 95% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java index 9664e1a9a1..32f2e18bd7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -25,7 +25,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.exceptions.InvalidRangeException; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents primitive Java floats @@ -73,7 +73,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(NMS nms, + public Float parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java similarity index 94% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java index 123e81f3e6..628cdc550a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents arbitrary strings @@ -50,7 +50,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(NMS nms, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ICustomProvidedArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ICustomProvidedArgument.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ICustomProvidedArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ICustomProvidedArgument.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IGreedyArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IGreedyArgument.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IGreedyArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IGreedyArgument.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java similarity index 95% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java index 430179833d..f3b491b6ea 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -25,7 +25,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.exceptions.InvalidRangeException; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents primitive Java ints @@ -73,7 +73,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(NMS nms, + public Integer parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java similarity index 95% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index ee3506626e..42802456c7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.exceptions.BadLiteralException; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * A pseudo-argument representing a single literal string @@ -76,7 +76,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(NMS nms, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return literal; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationType.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LocationType.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationType.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LocationType.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java similarity index 95% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java index fcdd6cc046..68a9a53a1e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -25,7 +25,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.exceptions.InvalidRangeException; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents primitive Java longs @@ -73,7 +73,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Long parseArgument(NMS nms, + public Long parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java similarity index 94% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index eb8320e7be..f12dbb8a67 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.exceptions.BadLiteralException; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents multiple LiteralArguments @@ -67,7 +67,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(NMS nms, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { throw new IllegalStateException("Cannot parse MultiLiteralArgument"); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java similarity index 86% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java index 2c4d0b8ee6..3f050b27ca 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java @@ -1,10 +1,10 @@ package dev.jorel.commandapi.arguments; -import org.bukkit.entity.Player; +import dev.jorel.commandapi.abstractions.AbstractPlayer; public record PreviewInfo ( /** @param player the Player typing this command */ - Player player, + AbstractPlayer player, /** * @param input the current partially typed argument. For example "/mycmd tes" diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java similarity index 97% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java index d029c3974c..895d82246e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java @@ -20,14 +20,12 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.function.Function; - -import org.bukkit.NamespacedKey; - import com.mojang.brigadier.arguments.ArgumentType; - import dev.jorel.commandapi.SuggestionInfo; import dev.jorel.commandapi.Tooltip; +import dev.jorel.commandapi.attributes.KeyedObject; + +import java.util.function.Function; /** * An interface declaring methods required to override argument suggestions @@ -149,8 +147,8 @@ public final Argument includeWithSafeSuggestionsT(FunctionS to * String */ - static Function fromKey(Function mapper) { - return mapper.andThen(NamespacedKey::toString); + static Function fromKey(Function mapper) { + return mapper.andThen(KeyedObject::toString); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java similarity index 94% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java index 31a954b42a..ecdd269858 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents a simple String @@ -50,7 +50,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(NMS nms, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionProviders.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionProviders.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionProviders.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionProviders.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java similarity index 94% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java index 75128c6e15..dbed43531c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents text, encased in quotes @@ -50,7 +50,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(NMS nms, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/package-info.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/package-info.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/package-info.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/package-info.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/BadLiteralException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BadLiteralException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/BadLiteralException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BadLiteralException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/ConflictingPermissionsException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/ConflictingPermissionsException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/ConflictingPermissionsException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/ConflictingPermissionsException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/EmptyExecutorException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EmptyExecutorException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/EmptyExecutorException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EmptyExecutorException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidCommandNameException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidCommandNameException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidCommandNameException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidCommandNameException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidRangeException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidRangeException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidRangeException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/InvalidRangeException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/NBTAPINotFoundException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/NBTAPINotFoundException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/NBTAPINotFoundException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/NBTAPINotFoundException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/PaperAdventureNotFoundException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/PaperAdventureNotFoundException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/PaperAdventureNotFoundException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/PaperAdventureNotFoundException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/SpigotNotFoundException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/SpigotNotFoundException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/SpigotNotFoundException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/SpigotNotFoundException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/WrapperCommandSyntaxException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/WrapperCommandSyntaxException.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/WrapperCommandSyntaxException.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/WrapperCommandSyntaxException.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/package-info.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/package-info.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/exceptions/package-info.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/package-info.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java similarity index 91% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java index aeb70abb5f..025570f07a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java @@ -20,7 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import org.bukkit.command.BlockCommandSender; +import dev.jorel.commandapi.abstractions.AbstractBlockCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; @@ -28,7 +28,7 @@ * A normal command executor for a BlockCommandSender */ @FunctionalInterface -public interface CommandBlockCommandExecutor extends IExecutorNormal { +public interface CommandBlockCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface CommandBlockCommandExecutor extends IExecutorNormal { +public interface CommandBlockResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -42,7 +42,7 @@ public interface CommandBlockResultingCommandExecutor extends IExecutorResulting * * @return the result of this command */ - int run(BlockCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; + int run(AbstractBlockCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java similarity index 89% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java index b9ca1a552d..75dcccda25 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java @@ -20,7 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import org.bukkit.command.CommandSender; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; @@ -28,7 +28,7 @@ * A normal command executor for a CommandSender */ @FunctionalInterface -public interface CommandExecutor extends IExecutorNormal { +public interface CommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface CommandExecutor extends IExecutorNormal { * determined by the hashmap of arguments IN THE ORDER of * insertion into the hashmap */ - void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException; + void run(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java similarity index 91% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java index 790a0ce45e..c193f30f39 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java @@ -20,7 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import org.bukkit.command.ConsoleCommandSender; +import dev.jorel.commandapi.abstractions.AbstractConsoleCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; @@ -28,7 +28,7 @@ * A normal command executor for a ConsoleCommandSender */ @FunctionalInterface -public interface ConsoleCommandExecutor extends IExecutorNormal { +public interface ConsoleCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface ConsoleCommandExecutor extends IExecutorNormal { +public interface ConsoleResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -41,7 +40,7 @@ public interface ConsoleResultingCommandExecutor extends IExecutorResulting { +public interface EntityCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -40,7 +39,7 @@ public interface EntityCommandExecutor extends IExecutorNormal { * determined by the hashmap of arguments IN THE ORDER of * insertion into the hashmap */ - void run(Entity sender, Object[] args) throws WrapperCommandSyntaxException; + void run(AbstractEntity sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java similarity index 92% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java index fc2c3c9d58..b0acd60eb1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java @@ -20,15 +20,14 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import org.bukkit.entity.Entity; - +import dev.jorel.commandapi.abstractions.AbstractEntity; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A resulting command executor for an Entity */ @FunctionalInterface -public interface EntityResultingCommandExecutor extends IExecutorResulting { +public interface EntityResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -41,7 +40,7 @@ public interface EntityResultingCommandExecutor extends IExecutorResulting the commandsender */ -public interface IExecutorNormal extends IExecutorTyped { +public interface IExecutorNormal extends IExecutorTyped { /** * Executes the command executor with the provided command sender and the provided arguments. @@ -39,7 +39,7 @@ public interface IExecutorNormal extends IExecutorTyped */ @SuppressWarnings("unchecked") @Override - default int executeWith(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { this.run((T) sender, args); return 1; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java similarity index 89% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java index c82803a156..2f2fc0c3e1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java @@ -20,7 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import org.bukkit.command.CommandSender; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; @@ -28,7 +28,7 @@ * The interface for resulting command executors * @param the commandsender */ -public interface IExecutorResulting extends IExecutorTyped { +public interface IExecutorResulting extends IExecutorTyped { /** * Executes the command executor with the provided command sender and the provided arguments. @@ -39,7 +39,7 @@ public interface IExecutorResulting extends IExecutorTy */ @SuppressWarnings("unchecked") @Override - default int executeWith(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { return this.run((T) sender, args); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java similarity index 93% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java index 288d0e7cd5..56ca836fbd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java @@ -20,8 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import org.bukkit.command.CommandSender; - +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** @@ -46,6 +45,6 @@ default ExecutorType getType() { * @return the value returned by this command if the command succeeds, 0 if the command fails * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - int executeWith(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException; + int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java similarity index 88% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java index a38016d80c..5b1d9904fa 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java @@ -20,14 +20,14 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; +import dev.jorel.commandapi.abstractions.AbstractNativeProxyCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; /** * A normal command executor for a NativeProxyCommandSender */ @FunctionalInterface -public interface NativeCommandExecutor extends IExecutorNormal { +public interface NativeCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -39,7 +39,7 @@ public interface NativeCommandExecutor extends IExecutorNormal { +public interface NativeResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface NativeResultingCommandExecutor extends IExecutorResulting { +public interface PlayerCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface PlayerCommandExecutor extends IExecutorNormal { * determined by the hashmap of arguments IN THE ORDER of * insertion into the hashmap */ - void run(Player sender, Object[] args) throws WrapperCommandSyntaxException; + void run(AbstractPlayer sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java similarity index 92% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java index 59df1a677e..461df1fd2e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java @@ -20,15 +20,14 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import org.bukkit.entity.Player; - +import dev.jorel.commandapi.abstractions.AbstractPlayer; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A resulting command executor for a Player */ @FunctionalInterface -public interface PlayerResultingCommandExecutor extends IExecutorResulting { +public interface PlayerResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -41,7 +40,7 @@ public interface PlayerResultingCommandExecutor extends IExecutorResulting { +public interface ProxyCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -39,7 +39,7 @@ public interface ProxyCommandExecutor extends IExecutorNormal { +public interface ProxyResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface ProxyResultingCommandExecutor extends IExecutorResulting { +public interface ResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -41,7 +41,7 @@ public interface ResultingCommandExecutor extends IExecutorResulting 90.0F ? 90.0F : Math.max(pitch, -90.F); } /** @@ -74,7 +72,14 @@ public float getNormalizedPitch() { * @return the normalized yaw in degrees */ public float getNormalizedYaw() { - return Location.normalizeYaw(this.yaw); + float normalizedYaw = yaw % 360.0F; + if (normalizedYaw >= 180.0F) { + normalizedYaw -= 360.0F; + } else if (normalizedYaw < -180.0F) { + normalizedYaw += 360.0F; + } + + return normalizedYaw; } /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/Time.java b/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/Time.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/Time.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/Time.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/package-info.java b/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/package-info.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/package-info.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/package-info.java From 6b21f2076e3a453dd7020d81d30a70477606bedb Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 7 Oct 2022 17:50:17 -0400 Subject: [PATCH 015/638] Move RegisteredCommand to commandapi-core (missed before) --- .../src/main/java/dev/jorel/commandapi/RegisteredCommand.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/RegisteredCommand.java (100%) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java From ce7c6907801df41f5276d81114f693ee8f3db335 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 7 Oct 2022 17:50:55 -0400 Subject: [PATCH 016/638] Add TODOs with some next steps to consider --- .../jorel/commandapi/abstractions/AbstractCommandSender.java | 1 + .../dev/jorel/commandapi/abstractions/AbstractPlatform.java | 2 ++ .../src/main/java/dev/jorel/commandapi/CommandAPI.java | 1 + .../src/main/java/dev/jorel/commandapi/CommandAPIHandler.java | 1 + 4 files changed, 5 insertions(+) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java index 4ef3a3a376..05b923e61d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java @@ -1,4 +1,5 @@ package dev.jorel.commandapi.abstractions; public interface AbstractCommandSender { + // TODO: figure out what features this and the subclasses of this class need } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 4fb59bee9a..648c0a90a4 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -1,4 +1,6 @@ package dev.jorel.commandapi.abstractions; public class AbstractPlatform { + // TODO: Add methods that need platform-specific implementations + // All methods in bukkit NMS will probably also need to be here } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index aa596e5fc4..cfd512eb5d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -48,6 +48,7 @@ * */ public final class CommandAPI { + // TODO: Figure out what here gets moved to the common implementation and what is platform-specific // Cannot be instantiated private CommandAPI() { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index 698c7b036e..bdd5407fa6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -86,6 +86,7 @@ @RequireField(in = CommandNode.class, name = "arguments", ofType = Map.class) @RequireField(in = CommandContext.class, name = "arguments", ofType = Map.class) public class CommandAPIHandler { + // TODO: Figure out what here gets moved to the common implementation and what is platform-specific private final static VarHandle COMMANDNODE_CHILDREN; private final static VarHandle COMMANDNODE_LITERALS; From 9bd3521e5b2634d512981708f7e9d7d00df45a49 Mon Sep 17 00:00:00 2001 From: JorelAli Date: Sat, 8 Oct 2022 17:05:45 +0100 Subject: [PATCH 017/638] Work on template for Velocity plugin. Strip down CommandAPIHandler into its most important compontents for all platforms --- commandapi-core/pom.xml | 11 + .../jorel/commandapi/CommandAPIHandler.java | 870 ++++++++++++++++++ .../abstractions/AbstractCommandSender.java | 16 + .../abstractions/AbstractPlatform.java | 30 +- .../dev/jorel/commandapi/CommandAPIMain.java | 61 ++ 5 files changed, 987 insertions(+), 1 deletion(-) create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java diff --git a/commandapi-core/pom.xml b/commandapi-core/pom.xml index b2129acc80..3055407544 100644 --- a/commandapi-core/pom.xml +++ b/commandapi-core/pom.xml @@ -35,6 +35,10 @@ https://repo.codemc.org/repository/maven-public/ default + + papermc + https://papermc.io/repo/repository/maven-public/ + @@ -51,6 +55,13 @@ 3.3.39 provided + + + io.papermc.paper + paper-api + ${paper.version} + provided + diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java new file mode 100644 index 0000000000..fcb9d478d5 --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -0,0 +1,870 @@ +package dev.jorel.commandapi; + +import java.io.IOException; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; +import java.util.TreeMap; +import java.util.concurrent.CompletableFuture; +import java.util.function.Predicate; + +import org.bukkit.Bukkit; +import org.bukkit.command.PluginCommand; + +import com.mojang.brigadier.Command; +import com.mojang.brigadier.builder.ArgumentBuilder; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.brigadier.builder.RequiredArgumentBuilder; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.context.ParsedArgument; +import com.mojang.brigadier.context.StringRange; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; +import com.mojang.brigadier.suggestion.SuggestionsBuilder; +import com.mojang.brigadier.tree.LiteralCommandNode; + +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.arguments.Argument; +import dev.jorel.commandapi.arguments.ArgumentSuggestions; +import dev.jorel.commandapi.arguments.ICustomProvidedArgument; +import dev.jorel.commandapi.arguments.IPreviewable; +import dev.jorel.commandapi.arguments.LiteralArgument; +import dev.jorel.commandapi.arguments.MultiLiteralArgument; +import dev.jorel.commandapi.arguments.PreviewInfo; +import dev.jorel.commandapi.wrappers.PreviewableFunction; + +// The "brains" behind the CommandAPI. +// Handles command registration + +// For all intents and purposes (all platforms), we can use all of +// Brigadier's API (definitely the case for Spigot/Paper and Velocity). +// +// TODO: We can use the Adventure API on Paper and Velocity (NOT SPIGOT) +// and I'm not sure if we can use the Adventure API on Fabric, so let's +// assume we can't until we figure that out. + +public abstract class CommandAPIHandler { + // TODO: Figure out what here gets moved to the common implementation and what + // is platform-specific + + private final static VarHandle COMMANDCONTEXT_ARGUMENTS; + + // Compute all var handles all in one go so we don't do this during main server + // runtime + static { + VarHandle commandContextArguments = null; + try { + commandContextArguments = MethodHandles.privateLookupIn(CommandContext.class, MethodHandles.lookup()) + .findVarHandle(CommandContext.class, "arguments", Map.class); + } catch (ReflectiveOperationException e) { + e.printStackTrace(); + } + COMMANDCONTEXT_ARGUMENTS = commandContextArguments; + } + + /** + * Returns the raw input for an argument for a given command context and its + * key. This effectively returns the string value that is currently typed for + * this argument + * + * @param the command source type + * @param cmdCtx the command context which is used to run this + * command + * @param key the node name for the argument + * @return the raw input string for this argument + */ + public static String getRawArgumentInput(CommandContext cmdCtx, + String key) { + StringRange range = ((Map>) COMMANDCONTEXT_ARGUMENTS.get(cmdCtx)) + .get(key).getRange(); + return cmdCtx.getInput().substring(range.getStart(), range.getEnd()); + } + + // For Bukkit, chat preview has to be unhooked + public abstract void onDisable(); + + final Map FIELDS = new HashMap<>(); + final TreeMap PERMISSIONS_TO_FIX = new TreeMap<>(); + final AbstractPlatform platform; + final List registeredCommands; // Keep track of what has been registered for type checking + final Map, IPreviewable, ?>> previewableArguments; // Arguments with previewable chat + + private CommandAPIHandler() { + this.platform = null; // TODO: Implement platform. + this.registeredCommands = new ArrayList<>(); + this.previewableArguments = new HashMap<>(); + } + + public AbstractPlatform getPlatform() { + return this.platform; + } + + /** + * Unregisters a command. For Bukkit, this is as complex as unregistering it from + * the CommandDispatcher. For Velocity, this is as simple as commandManager.unregister(commandName) + */ + public abstract void unregister(String commandName); + + /** + * Generates a command to be registered by the CommandAPI. + * + * @param args set of ordered argument pairs which contain the prompt text + * and their argument types + * @param actualArgs + * @param executor code to be ran when the command is executed + * @return a brigadier command which is registered internally + * @throws CommandSyntaxException if an error occurs when the command is ran + */ + Command generateCommand(Argument[] args, + CustomCommandExecutor executor, boolean converted) throws CommandSyntaxException { + + // Generate our command from executor + return (cmdCtx) -> { + AbstractCommandSender sender = platform.getSenderForCommand(cmdCtx, executor.isForceNative()); + if (converted) { + Object[] argObjs = argsToObjectArr(cmdCtx, args); + int resultValue = 0; + + // Return a String[] of arguments for converted commands + String[] argsAndCmd = cmdCtx.getRange().get(cmdCtx.getInput()).split(" "); + String[] result = new String[argsAndCmd.length - 1]; + System.arraycopy(argsAndCmd, 1, result, 0, argsAndCmd.length - 1); + + // As stupid as it sounds, it's more performant and safer to use + // a List[] instead of a List>, due to NPEs and AIOOBEs. + @SuppressWarnings("unchecked") + List[] entityNamesForArgs = new List[args.length]; + for (int i = 0; i < args.length; i++) { + entityNamesForArgs[i] = args[i].getEntityNames(argObjs[i]); + } + List> product = CartesianProduct.getDescartes(Arrays.asList(entityNamesForArgs)); + + // These objects in obj are List + for (List strings : product) { + // We assume result.length == strings.size + if (result.length == strings.size()) { + for (int i = 0; i < result.length; i++) { + if (strings.get(i) != null) { + result[i] = strings.get(i); + } + } + } + resultValue += executor.execute(sender, result); + } + + return resultValue; + } else { + return executor.execute(sender, argsToObjectArr(cmdCtx, args)); + } + }; + } + + /** + * Converts the List<Argument> into an Object[] for command execution + * + * @param cmdCtx the command context that will execute this command + * @param args the map of strings to arguments + * @return an Object[] which can be used in (sender, args) -> + * @throws CommandSyntaxException + */ + Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) + throws CommandSyntaxException { + // Array for arguments for executor + List argList = new ArrayList<>(); + + // Populate array + for (Argument argument : args) { + if (argument.isListed()) { + argList.add(parseArgument(cmdCtx, argument.getNodeName(), argument, argList.toArray())); + } + } + + return argList.toArray(); + } + + /** + * Parses an argument and converts it into its standard Bukkit type (as defined + * in platform.java) + * + * @param type the argument type + * @param cmdCtx the command context + * @param key the key (declared in arguments) + * @param value the value (the argument declared in arguments) + * @param sender the command sender + * @return the standard Bukkit type + * @throws CommandSyntaxException + */ + Object parseArgument(CommandContext cmdCtx, String key, Argument value, + Object[] previousArgs) throws CommandSyntaxException { + if (value.isListed()) { + // TODO: Specify platform + return value.parseArgument(null, cmdCtx, key, previousArgs); + } else { + return null; + } + } + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + // SECTION: Permissions // + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * This permission generation setup ONLY works iff: + *
    + *
  • You register the parent permission node FIRST.
  • + *
  • Example:
    + * /mycmd - permission node: my.perm
    + * /mycmd <arg> - permission node: my.perm.other
  • + *
+ * + * The my.perm.other permission node is revoked for the COMMAND + * REGISTRATION, however: + *
    + *
  • The permission node IS REGISTERED.
  • + *
  • The permission node, if used for an argument (as in this case), will be + * used for suggestions for said argument
  • + *
+ * + * @param requirements + */ + Predicate generatePermissions(String commandName, CommandPermission permission, + Predicate requirements) { + // If we've already registered a permission, set it to the "parent" permission. + if (PERMISSIONS_TO_FIX.containsKey(commandName.toLowerCase())) { + if (!PERMISSIONS_TO_FIX.get(commandName.toLowerCase()).equals(permission)) { + permission = PERMISSIONS_TO_FIX.get(commandName.toLowerCase()); + } + } else { + // Add permission to a list to fix conflicts with minecraft:permissions + PERMISSIONS_TO_FIX.put(commandName.toLowerCase(), permission); + } + + final CommandPermission finalPermission = permission; + + // Register it to the Bukkit permissions registry + if (finalPermission.getPermission().isPresent()) { + platform.registerPermission(finalPermission.getPermission().get()); + } + + return (CommandSource css) -> permissionCheck(platform.getCommandSenderFromCommandSource(css), finalPermission, + requirements); + } + + /** + * Checks if a sender has a given permission. + * + * @param sender the sender to check permissions of + * @param permission the CommandAPI CommandPermission permission to check + * @return true if the sender satisfies the provided permission + */ + boolean permissionCheck(AbstractCommandSender sender, CommandPermission permission, Predicate requirements) { + boolean satisfiesPermissions; + if (sender == null) { + satisfiesPermissions = true; + } else { + if (permission.equals(CommandPermission.NONE)) { + satisfiesPermissions = true; + } else if (permission.equals(CommandPermission.OP)) { + satisfiesPermissions = sender.isOp(); + } else { + satisfiesPermissions = sender.hasPermission(permission.getPermission().get()); + } + } + if (permission.isNegated()) { + satisfiesPermissions = !satisfiesPermissions; + } + return satisfiesPermissions && requirements.test(sender); + } + ////////////////////////////////////////////////////////////////////////////////////////////////////// + // SECTION: Registration // + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + /* + * Expands multiliteral arguments and registers all expansions of + * MultiLiteralArguments throughout the provided command. Returns true if + * multiliteral arguments were present (and expanded) and returns false if + * multiliteral arguments were not present. + */ + private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, + CustomCommandExecutor executor, boolean converted) + throws CommandSyntaxException, IOException { + + // "Expands" our MultiLiterals into Literals + for (int index = 0; index < args.length; index++) { + // Find the first multiLiteral in the for loop + if (args[index] instanceof MultiLiteralArgument superArg) { + + // Add all of its entries + for (int i = 0; i < superArg.getLiterals().length; i++) { + LiteralArgument litArg = (LiteralArgument) new LiteralArgument(superArg.getLiterals()[i]) + .setListed(superArg.isListed()).withPermission(superArg.getArgumentPermission()) + .withRequirement(superArg.getRequirements()); + + // Reconstruct the list of arguments and place in the new literals + Argument[] newArgs = Arrays.copyOf(args, args.length); + newArgs[index] = litArg; + register(meta, newArgs, executor, converted); + } + return true; + } + } + return false; + } + + // Prevent nodes of the same name but with different types: + // allow /race invite player + // disallow /race invite player + // Return true if conflict was present, otherwise return false + private boolean hasCommandConflict(String commandName, Argument[] args, String argumentsAsString) { + List regArgs = new ArrayList<>(); + for (RegisteredCommand rCommand : registeredCommands) { + if (rCommand.commandName().equals(commandName)) { + for (String str : rCommand.argsAsStr()) { + regArgs.add(str.split(":")); + } + // We just find the first entry that causes a conflict. If this + // were some industry-level code, we would probably generate a + // list of all commands first, then check for command conflicts + // all in one go so we can display EVERY command conflict for + // all commands, but this works perfectly and isn't important. + break; + } + } + for (int i = 0; i < args.length; i++) { + // Avoid IAOOBEs + if (regArgs.size() == i && regArgs.size() < args.length) { + break; + } + // We want to ensure all node names are the same + if (!regArgs.get(i)[0].equals(args[i].getNodeName())) { + break; + } + // This only applies to the last argument + if (i == args.length - 1) { + if (!regArgs.get(i)[1].equals(args[i].getClass().getSimpleName())) { + // Command it conflicts with + StringBuilder builder2 = new StringBuilder(); + for (String[] arg : regArgs) { + builder2.append(arg[0]).append("<").append(arg[1]).append("> "); + } + +// CommandAPI.logError(""" +// Failed to register command: +// +// %s %s +// +// Because it conflicts with this previously registered command: +// +// %s %s +// """.formatted(commandName, argumentsAsString, commandName, builder2.toString())); + return true; + } + } + } + return false; + } + + // Links arg -> Executor + private ArgumentBuilder generateInnerArgument(Command command, + Argument[] args) { + Argument innerArg = args[args.length - 1]; + + // Handle Literal arguments + if (innerArg instanceof LiteralArgument literalArgument) { + return getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), innerArg.getArgumentPermission(), + innerArg.getRequirements()).executes(command); + } + + // Handle arguments with built-in suggestion providers + else if (innerArg instanceof ICustomProvidedArgument customProvidedArg + && !innerArg.getOverriddenSuggestions().isPresent()) { + return getRequiredArgumentBuilderWithProvider(innerArg, args, + platform.getSuggestionProvider(customProvidedArg.getSuggestionProvider())).executes(command); + } + + // Handle every other type of argument + else { + return getRequiredArgumentBuilderDynamic(args, innerArg).executes(command); + } + } + + // Links arg1 -> arg2 -> ... argN -> innermostArgument + private ArgumentBuilder generateOuterArguments( + ArgumentBuilder innermostArgument, Argument[] args) { + ArgumentBuilder outer = innermostArgument; + for (int i = args.length - 2; i >= 0; i--) { + Argument outerArg = args[i]; + + // Handle Literal arguments + if (outerArg instanceof LiteralArgument literalArgument) { + outer = getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), + outerArg.getArgumentPermission(), outerArg.getRequirements()).then(outer); + } + + // Handle arguments with built-in suggestion providers + else if (outerArg instanceof ICustomProvidedArgument customProvidedArg + && !outerArg.getOverriddenSuggestions().isPresent()) { + outer = getRequiredArgumentBuilderWithProvider(outerArg, args, + platform.getSuggestionProvider(customProvidedArg.getSuggestionProvider())).then(outer); + } + + // Handle every other type of argument + else { + outer = getRequiredArgumentBuilderDynamic(args, outerArg).then(outer); + } + } + return outer; + } + + /** + * Handles previewable arguments. This stores the path to previewable arguments + * in {@link CommandAPIHandler#previewableArguments} for runtime resolving + * + * @param commandName the name of the command + * @param args the declared arguments + * @param aliases the command's aliases + */ + private void handlePreviewableArguments(String commandName, Argument[] args, String[] aliases) { + if (args.length > 0 && args[args.length - 1] instanceof IPreviewable previewable) { + List path = new ArrayList<>(); + + path.add(commandName); + for (Argument arg : args) { + path.add(arg.getNodeName()); + } + previewableArguments.put(List.copyOf(path), previewable); + + // And aliases + for (String alias : aliases) { + path.set(0, alias); + previewableArguments.put(List.copyOf(path), previewable); + } + } + } + + // Builds our platform command using the given arguments for this method, then + // registers it + void register(CommandMetaData meta, final Argument[] args, + CustomCommandExecutor executor, boolean converted) + throws CommandSyntaxException, IOException { + + // "Expands" our MultiLiterals into Literals + if (expandMultiLiterals(meta, args, executor, converted)) { + return; + } + + // Create the human-readable command syntax of arguments + final String humanReadableCommandArgSyntax; + { + StringBuilder builder = new StringBuilder(); + for (Argument arg : args) { + builder.append(arg.toString()).append(" "); + } + humanReadableCommandArgSyntax = builder.toString().trim(); + } + + // #312 Safeguard against duplicate node names. This only applies to + // required arguments (i.e. not literal arguments) + { + Set argumentNames = new HashSet<>(); + for (Argument arg : args) { + // We shouldn't find MultiLiteralArguments at this point, only + // LiteralArguments + if (!(arg instanceof LiteralArgument)) { + if (argumentNames.contains(arg.getNodeName())) { +// CommandAPI.logError(""" +// Failed to register command: +// +// %s %s +// +// Because the following argument shares the same node name as another argument: +// +// %s +// """.formatted(meta.commandName, humanReadableCommandArgSyntax, arg.toString())); + return; + } else { + argumentNames.add(arg.getNodeName()); + } + } + } + } + + // Expand metaData into named variables + String commandName = meta.commandName; + CommandPermission permission = meta.permission; + String[] aliases = meta.aliases; + Predicate requirements = meta.requirements; + Optional shortDescription = meta.shortDescription; + Optional fullDescription = meta.fullDescription; + + // Handle command conflicts + boolean hasRegisteredCommand = false; + for (RegisteredCommand rCommand : registeredCommands) { + hasRegisteredCommand |= rCommand.commandName().equals(commandName); + } + if (hasRegisteredCommand && hasCommandConflict(commandName, args, humanReadableCommandArgSyntax)) { + return; + } else { + List argumentsString = new ArrayList<>(); + for (Argument arg : args) { + argumentsString.add(arg.getNodeName() + ":" + arg.getClass().getSimpleName()); + } + registeredCommands.add(new RegisteredCommand(commandName, argumentsString, shortDescription, + fullDescription, aliases, permission)); + } + + // Handle previewable arguments + handlePreviewableArguments(commandName, args, aliases); + + // Warn if the command we're registering already exists in this plugin's + // plugin.yml file + { + final PluginCommand pluginCommand = Bukkit.getPluginCommand(commandName); + if (pluginCommand != null) { +// CommandAPI.logWarning( +// "Plugin command /%s is registered by Bukkit (%s). Did you forget to remove this from your plugin.yml file?" +// .formatted(commandName, pluginCommand.getPlugin().getName())); + } + } + +// CommandAPI.logInfo("Registering command /" + commandName + " " + humanReadableCommandArgSyntax); + + // Generate the actual command + Command command = generateCommand(args, executor, converted); + + /* + * The innermost argument needs to be connected to the executor. Then that + * argument needs to be connected to the previous argument etc. Then the first + * argument needs to be connected to the command name, so we get: CommandName -> + * Args1 -> Args2 -> ... -> ArgsN -> Executor + */ + LiteralCommandNode resultantNode; + List> aliasNodes = new ArrayList<>(); + if (args.length == 0) { + // Link command name to the executor + resultantNode = this.registerCommandNode(getLiteralArgumentBuilder(commandName) + .requires(generatePermissions(commandName, permission, requirements)).executes(command)); + + // Register aliases + for (String alias : aliases) { +// CommandAPI.logInfo("Registering alias /" + alias + " -> " + resultantNode.getName()); + aliasNodes.add(this.registerCommandNode(getLiteralArgumentBuilder(alias) + .requires(generatePermissions(alias, permission, requirements)).executes(command))); + } + } else { + + // Generate all of the arguments, following each other and finally linking to + // the executor + ArgumentBuilder commandArguments = generateOuterArguments( + generateInnerArgument(command, args), args); + + // Link command name to first argument and register + resultantNode = this.registerCommandNode(getLiteralArgumentBuilder(commandName) + .requires(generatePermissions(commandName, permission, requirements)).then(commandArguments)); + + // Register aliases + for (String alias : aliases) { +// if (CommandAPI.getConfiguration().hasVerboseOutput()) { +// CommandAPI.logInfo("Registering alias /" + alias + " -> " + resultantNode.getName()); +// } + + aliasNodes.add(this.registerCommandNode(getLiteralArgumentBuilder(alias) + .requires(generatePermissions(alias, permission, requirements)).then(commandArguments))); + } + } + + this.postCommandRegistration(resultantNode, aliasNodes); + } + + /** + * Stuff to run after a command has been generated. For Bukkit, this involves + * finding command ambiguities for logging and generating the command JSON + * dispatcher file. If we're being fancy, we could also create a "registered + * a command" event (which can't be cancelled) + * @param aliasNodes any alias nodes that were also registered as a part of this registration process + * @param resultantNode the node that was registered + */ + public abstract void postCommandRegistration(LiteralCommandNode resultantNode , List> aliasNodes); + + /** + * Registers a Brigadier command node. For Bukkit, this requires using reflection to + * access the CommandDispatcher (DISPATCHER), then registering it directly using + * DISPATCHER.register. For Velocity, this is as simple as commandManager.register(new BrigadierCommand( node )) + */ + public abstract LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node); + + ////////////////////////////////////////////////////////////////////////////////////////////////////// + // SECTION: Argument Builders // + ////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Creates a literal for a given name. + * + * @param commandName the name of the literal to create + * @return a brigadier LiteralArgumentBuilder representing a literal + */ + LiteralArgumentBuilder getLiteralArgumentBuilder(String commandName) { + return LiteralArgumentBuilder.literal(commandName); + } + + /** + * Creates a literal for a given name that requires a specified permission. + * + * @param commandName the name fo the literal to create + * @param permission the permission required to use this literal + * @return a brigadier LiteralArgumentBuilder representing a literal + */ + LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandName, + CommandPermission permission, Predicate requirements) { + LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal(commandName); + return builder.requires((CommandSource css) -> permissionCheck(platform.getCommandSenderFromCommandSource(css), + permission, requirements)); + } + + // Gets a RequiredArgumentBuilder for a DynamicSuggestedStringArgument + RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, + Argument argument) { + + final SuggestionProvider suggestions; + + if (argument.getOverriddenSuggestions().isPresent()) { + suggestions = toSuggestions(argument, args, true); + } else if (argument.getIncludedSuggestions().isPresent()) { + // TODO(#317): Merge the suggestions included here instead? + suggestions = (cmdCtx, builder) -> argument.getRawType().listSuggestions(cmdCtx, builder); + } else { + suggestions = null; + } + + return getRequiredArgumentBuilderWithProvider(argument, args, suggestions); + } + + // Gets a RequiredArgumentBuilder for an argument, given a SuggestionProvider + RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, + Argument[] args, SuggestionProvider provider) { + SuggestionProvider newSuggestionsProvider = provider; + + // If we have suggestions to add, combine provider with the suggestions + if (argument.getIncludedSuggestions().isPresent() && argument.getOverriddenSuggestions().isEmpty()) { + SuggestionProvider addedSuggestions = toSuggestions(argument, args, false); + + newSuggestionsProvider = (cmdCtx, builder) -> { + // Heavily inspired by CommandDispatcher#listSuggestions, with combining + // multiple CompletableFuture into one. + + CompletableFuture addedSuggestionsFuture = addedSuggestions.getSuggestions(cmdCtx, + builder); + CompletableFuture providerSuggestionsFuture = provider.getSuggestions(cmdCtx, builder); + CompletableFuture result = new CompletableFuture<>(); + CompletableFuture.allOf(addedSuggestionsFuture, providerSuggestionsFuture).thenRun(() -> { + List suggestions = new ArrayList<>(); + suggestions.add(addedSuggestionsFuture.join()); + suggestions.add(providerSuggestionsFuture.join()); + result.complete(Suggestions.merge(cmdCtx.getInput(), suggestions)); + }); + return result; + }; + } + + RequiredArgumentBuilder requiredArgumentBuilder = RequiredArgumentBuilder + .argument(argument.getNodeName(), argument.getRawType()); + + return requiredArgumentBuilder.requires(css -> permissionCheck(platform.getCommandSenderFromCommandSource(css), + argument.getArgumentPermission(), argument.getRequirements())).suggests(newSuggestionsProvider); + } + + Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) + throws CommandSyntaxException { + // Populate Object[], which is our previously filled arguments + List previousArguments = new ArrayList<>(); + + for (Argument arg : args) { + if (arg.getNodeName().equals(nodeName) && !(arg instanceof LiteralArgument)) { + break; + } + + Object result; + try { + result = parseArgument(context, arg.getNodeName(), arg, previousArguments.toArray()); + } catch (IllegalArgumentException e) { + /* + * Redirected commands don't parse previous arguments properly. Simplest way to + * determine what we should do is simply set it to null, since there's nothing + * else we can do. I thought about letting this simply be an empty array, but + * then it's even more annoying to deal with - I wouldn't expect an array of + * size n to suddenly, randomly be 0, but I would expect random NPEs because + * let's be honest, this is Java we're dealing with. + */ + result = null; + } + if (arg.isListed()) { + previousArguments.add(result); + } + } + return previousArguments.toArray(); + } + + SuggestionProvider toSuggestions(Argument theArgument, Argument[] args, + boolean overrideSuggestions) { + return (CommandContext context, SuggestionsBuilder builder) -> { + // Construct the suggestion info + SuggestionInfo suggestionInfo = new SuggestionInfo(platform.getCommandSenderFromCommandSource(context.getSource()), + generatePreviousArguments(context, args, theArgument.getNodeName()), builder.getInput(), + builder.getRemaining()); + + // Get the suggestions + Optional suggestionsToAddOrOverride = overrideSuggestions + ? theArgument.getOverriddenSuggestions() + : theArgument.getIncludedSuggestions(); + return suggestionsToAddOrOverride.orElse(ArgumentSuggestions.empty()).suggest(suggestionInfo, builder); + }; + } + + /** + * Looks up the function to generate a chat preview for a path of nodes in the + * command tree. This is a method internal to the CommandAPI and isn't expected + * to be used by plugin developers (but you're more than welcome to use it as + * you see fit). + * + * @param path a list of Strings representing the path (names of command nodes) + * to (and including) the previewable argument + * @return a function that takes in a {@link PreviewInfo} and returns a + * {@link Component}. If such a function is not available, this will + * return a function that always returns null. + */ + public Optional> lookupPreviewable(List path) { + final IPreviewable, ?> previewable = previewableArguments.get(path); + if (previewable != null && previewable.getPreview().isPresent()) { + // Yeah, don't even question this logic of getting the value of an + // optional and then wrapping it in an optional again. Java likes it + // and complains if you don't do this. Not sure why. + return Optional.of(previewable.getPreview().get()); + } else { + return Optional.empty(); + } + } + + /** + * + * @param path a list of Strings representing the path (names of command nodes) + * to (and including) the previewable argument + * @return Whether a previewable is legacy (non-Adventure) or not + */ + public boolean lookupPreviewableLegacyStatus(List path) { + final IPreviewable, ?> previewable = previewableArguments.get(path); + if (previewable != null && previewable.getPreview().isPresent()) { + return previewable.isLegacy(); + } else { + return true; + } + } + + ///////////////////////// + // SECTION: Reflection // + ///////////////////////// + + /** + * Caches a field using reflection if it is not already cached, then return the + * field of a given class. This will also make the field accessible. + * + * @param clazz the class where the field is declared + * @param name the name of the field + * @return a Field reference + */ + public final Field getField(Class clazz, String name) { + ClassCache key = new ClassCache(clazz, name); + if (FIELDS.containsKey(key)) { + return FIELDS.get(key); + } else { + Field result = null; + try { + result = clazz.getDeclaredField(name); + } catch (ReflectiveOperationException e) { + e.printStackTrace(); + } + result.setAccessible(true); + FIELDS.put(key, result); + return result; + } + } + + // We probabbbbbbbbly need to register some form of help for commands? I'm not + // sure if + public abstract void registerHelp(); + + ////////////////////////////// + // SECTION: Private classes // + ////////////////////////////// + + /** + * Class to store cached methods and fields + * + * This is required because each key is made up of a class and a field or method + * name + */ + private record ClassCache(Class clazz, String name) { + } + + /** + * A class to compute the Cartesian product of a number of lists. Source: + * https://www.programmersought.com/article/86195393650/ + */ + private final class CartesianProduct { + + // Shouldn't be instantiated + private CartesianProduct() { + } + + /** + * Returns the Cartesian product of a list of lists + * + * @param the underlying type of the list of lists + * @param list the list to calculate the Cartesian product of + * @return a List of lists which represents the Cartesian product of all + * elements of the input + */ + public static final List> getDescartes(List> list) { + List> returnList = new ArrayList<>(); + descartesRecursive(list, 0, returnList, new ArrayList()); + return returnList; + } + + /** + * Recursive implementation Principle: traverse sequentially from 0 of the + * original list to the end + * + * @param the underlying type of the list of lists + * @param originalList original list + * @param position The position of the current recursion in the original + * list + * @param returnList return result + * @param cacheList temporarily saved list + */ + private static final void descartesRecursive(List> originalList, int position, + List> returnList, List cacheList) { + List originalItemList = originalList.get(position); + for (int i = 0; i < originalItemList.size(); i++) { + // The last one reuses cacheList to save memory + List childCacheList = (i == originalItemList.size() - 1) ? cacheList : new ArrayList<>(cacheList); + childCacheList.add(originalItemList.get(i)); + if (position == originalList.size() - 1) {// Exit recursion to the end + returnList.add(childCacheList); + continue; + } + descartesRecursive(originalList, position + 1, returnList, childCacheList); + } + } + + } + +} \ No newline at end of file diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java index 05b923e61d..344f97b4ab 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java @@ -2,4 +2,20 @@ public interface AbstractCommandSender { // TODO: figure out what features this and the subclasses of this class need + + // We're assuming all command senders have some form of "permission" system + // in place to determine whether they are capable of actually running a command. + // In the case of Bukkit, there are two types of permissions: string-based + // permission and "op". Op permission, if set, always returns true. + + // If no permission system is present, we assume the command sender is always + // able to run the command + + public default boolean hasPermission(String permissionNode) { + return true; + } + + public default boolean isOp() { + return true; + } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 648c0a90a4..50d14429e9 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -1,6 +1,34 @@ package dev.jorel.commandapi.abstractions; -public class AbstractPlatform { +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.suggestion.SuggestionProvider; + +import dev.jorel.commandapi.arguments.SuggestionProviders; + +// TODO: Not entirely sure if this needs to be parameterized here or not +public abstract class AbstractPlatform { // TODO: Add methods that need platform-specific implementations // All methods in bukkit NMS will probably also need to be here + + // ^ I don't think all bukkit NMS methods will have to be in here. + // Almost all Bukkit NMS methods should be implemented in Bukkit's + // AbstractPlatform implementation. The only things in here are going + // to be supppppppppper low-level stuff + + public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); + + // Converts a command source into its source. For Bukkit, this + // is implemented in NMS. TODO: For Velocity, I have no idea what + // a command source is or consists of + public abstract AbstractCommandSender getCommandSenderFromCommandSource(CommandSource css); + + // Registers a permission. Bukkit's permission system requires permissions to be "registered" + // before they can be used. + public abstract void registerPermission(String string); + + // Some commands have existing suggestion providers. TODO: We can PROBABLY avoid this by + // implementing the relevant NMS SuggestionProviders implementation on the platform-specific + // argument, but I CBA to think about that now so I'll dump it here + public abstract SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider); } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java new file mode 100644 index 0000000000..89d78f2a51 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -0,0 +1,61 @@ +package dev.jorel.commandapi; + +import java.util.logging.Logger; + +import com.google.inject.Inject; +import com.mojang.brigadier.tree.LiteralCommandNode; +import com.velocitypowered.api.command.BrigadierCommand; +import com.velocitypowered.api.command.CommandManager; +import com.velocitypowered.api.command.CommandMeta; +import com.velocitypowered.api.event.Subscribe; +import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; +import com.velocitypowered.api.event.proxy.ProxyReloadEvent; +import com.velocitypowered.api.event.proxy.ProxyShutdownEvent; +import com.velocitypowered.api.plugin.Plugin; +import com.velocitypowered.api.proxy.ProxyServer; + +@Plugin( + id = "commandapi-velocity", + name = "CommandAPI", + version = "8.2.0", + url = "https://commandapi.jorel.dev", + description = "An API to use Minecraft 1.13s new command UI", + authors = {"Skepter"} +) +public class CommandAPIMain { + + private final ProxyServer server; + private final CommandManager commandManager; + private final Logger logger; + + @Inject + public CommandAPIMain(ProxyServer server, Logger logger) { + this.server = server; + this.commandManager = server.getCommandManager(); + this.logger = logger; + } + + @Subscribe + public void onProxyInitialization(ProxyInitializeEvent event) { + // Start up + + // Command can be registered using the following: + // + // commandManager.register(new BrigadierCommand( /* Node */ )); + // + // This is effectively what we'll need for our velocity implementation + // of CommandAPIHandler); + } + + @Subscribe + public void onProxyShutdown(ProxyShutdownEvent event) { + // Shut down + } + + // On /velocity reload + @Subscribe + public void onProxyReload(ProxyReloadEvent event) { + // Handle quirky stuff + } + +} From ce57328a885dafcd178bafed7664dba19a6cdaa8 Mon Sep 17 00:00:00 2001 From: JorelAli Date: Sat, 8 Oct 2022 18:09:30 +0100 Subject: [PATCH 018/638] Start implementing some basic Velocity command senders --- .../jorel/commandapi/CommandAPIHandler.java | 67 +++++---------- .../dev/jorel/commandapi/CommandMetaData.java | 2 +- .../AbstractBlockCommandSender.java | 2 +- .../abstractions/AbstractCommandSender.java | 13 ++- .../AbstractConsoleCommandSender.java | 2 +- .../abstractions/AbstractEntity.java | 2 +- .../AbstractNativeProxyCommandSender.java | 2 +- .../abstractions/AbstractPlatform.java | 50 +++++++++-- .../abstractions/AbstractPlayer.java | 2 +- .../AbstractProxiedCommandSender.java | 2 +- .../jorel/commandapi/arguments/Argument.java | 6 +- .../BukkitConsoleCommandSender.java | 24 ++++++ .../jorel/commandapi/VelocityPlatform.java | 82 +++++++++++++++++++ .../VelocityConsoleCommandSender.java | 29 +++++++ .../commandsenders/VelocityPlayer.java | 29 +++++++ .../dev/jorel/commandapi/CommandAPIMain.java | 10 +-- 16 files changed, 246 insertions(+), 78 deletions(-) create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index fcb9d478d5..91980c7fbb 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -53,7 +53,7 @@ // and I'm not sure if we can use the Adventure API on Fabric, so let's // assume we can't until we figure that out. -public abstract class CommandAPIHandler { +public class CommandAPIHandler { // TODO: Figure out what here gets moved to the common implementation and what // is platform-specific @@ -90,31 +90,23 @@ public static String getRawArgumentInput(CommandContext FIELDS = new HashMap<>(); final TreeMap PERMISSIONS_TO_FIX = new TreeMap<>(); - final AbstractPlatform platform; + final AbstractPlatform platform; final List registeredCommands; // Keep track of what has been registered for type checking final Map, IPreviewable, ?>> previewableArguments; // Arguments with previewable chat - private CommandAPIHandler() { - this.platform = null; // TODO: Implement platform. + // TODO: Wait, how do we instantiate this? + private CommandAPIHandler(AbstractPlatform platform) { + this.platform = platform; this.registeredCommands = new ArrayList<>(); this.previewableArguments = new HashMap<>(); } - public AbstractPlatform getPlatform() { + public AbstractPlatform getPlatform() { return this.platform; } - /** - * Unregisters a command. For Bukkit, this is as complex as unregistering it from - * the CommandDispatcher. For Velocity, this is as simple as commandManager.unregister(commandName) - */ - public abstract void unregister(String commandName); - /** * Generates a command to be registered by the CommandAPI. * @@ -126,11 +118,11 @@ public AbstractPlatform getPlatform() { * @throws CommandSyntaxException if an error occurs when the command is ran */ Command generateCommand(Argument[] args, - CustomCommandExecutor executor, boolean converted) throws CommandSyntaxException { + CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException { // Generate our command from executor return (cmdCtx) -> { - AbstractCommandSender sender = platform.getSenderForCommand(cmdCtx, executor.isForceNative()); + AbstractCommandSender sender = platform.getSenderForCommand(cmdCtx, executor.isForceNative()); if (converted) { Object[] argObjs = argsToObjectArr(cmdCtx, args); int resultValue = 0; @@ -238,7 +230,7 @@ Object parseArgument(CommandContext cmdCtx, String key, Argument< * @param requirements */ Predicate generatePermissions(String commandName, CommandPermission permission, - Predicate requirements) { + Predicate> requirements) { // If we've already registered a permission, set it to the "parent" permission. if (PERMISSIONS_TO_FIX.containsKey(commandName.toLowerCase())) { if (!PERMISSIONS_TO_FIX.get(commandName.toLowerCase()).equals(permission)) { @@ -267,7 +259,7 @@ Predicate generatePermissions(String commandName, CommandPermissi * @param permission the CommandAPI CommandPermission permission to check * @return true if the sender satisfies the provided permission */ - boolean permissionCheck(AbstractCommandSender sender, CommandPermission permission, Predicate requirements) { + static boolean permissionCheck(AbstractCommandSender sender, CommandPermission permission, Predicate> requirements) { boolean satisfiesPermissions; if (sender == null) { satisfiesPermissions = true; @@ -296,7 +288,7 @@ boolean permissionCheck(AbstractCommandSender sender, CommandPermission permissi * multiliteral arguments were not present. */ private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, - CustomCommandExecutor executor, boolean converted) + CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals @@ -455,7 +447,7 @@ private void handlePreviewableArguments(String commandName, Argument[] args, // Builds our platform command using the given arguments for this method, then // registers it void register(CommandMetaData meta, final Argument[] args, - CustomCommandExecutor executor, boolean converted) + CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals @@ -503,7 +495,7 @@ void register(CommandMetaData meta, final Argument[] args, String commandName = meta.commandName; CommandPermission permission = meta.permission; String[] aliases = meta.aliases; - Predicate requirements = meta.requirements; + Predicate> requirements = meta.requirements; Optional shortDescription = meta.shortDescription; Optional fullDescription = meta.fullDescription; @@ -552,13 +544,13 @@ void register(CommandMetaData meta, final Argument[] args, List> aliasNodes = new ArrayList<>(); if (args.length == 0) { // Link command name to the executor - resultantNode = this.registerCommandNode(getLiteralArgumentBuilder(commandName) + resultantNode = platform.registerCommandNode(getLiteralArgumentBuilder(commandName) .requires(generatePermissions(commandName, permission, requirements)).executes(command)); // Register aliases for (String alias : aliases) { // CommandAPI.logInfo("Registering alias /" + alias + " -> " + resultantNode.getName()); - aliasNodes.add(this.registerCommandNode(getLiteralArgumentBuilder(alias) + aliasNodes.add(platform.registerCommandNode(getLiteralArgumentBuilder(alias) .requires(generatePermissions(alias, permission, requirements)).executes(command))); } } else { @@ -569,7 +561,7 @@ void register(CommandMetaData meta, final Argument[] args, generateInnerArgument(command, args), args); // Link command name to first argument and register - resultantNode = this.registerCommandNode(getLiteralArgumentBuilder(commandName) + resultantNode = platform.registerCommandNode(getLiteralArgumentBuilder(commandName) .requires(generatePermissions(commandName, permission, requirements)).then(commandArguments)); // Register aliases @@ -578,30 +570,13 @@ void register(CommandMetaData meta, final Argument[] args, // CommandAPI.logInfo("Registering alias /" + alias + " -> " + resultantNode.getName()); // } - aliasNodes.add(this.registerCommandNode(getLiteralArgumentBuilder(alias) + aliasNodes.add(platform.registerCommandNode(getLiteralArgumentBuilder(alias) .requires(generatePermissions(alias, permission, requirements)).then(commandArguments))); } } - this.postCommandRegistration(resultantNode, aliasNodes); + platform.postCommandRegistration(resultantNode, aliasNodes); } - - /** - * Stuff to run after a command has been generated. For Bukkit, this involves - * finding command ambiguities for logging and generating the command JSON - * dispatcher file. If we're being fancy, we could also create a "registered - * a command" event (which can't be cancelled) - * @param aliasNodes any alias nodes that were also registered as a part of this registration process - * @param resultantNode the node that was registered - */ - public abstract void postCommandRegistration(LiteralCommandNode resultantNode , List> aliasNodes); - - /** - * Registers a Brigadier command node. For Bukkit, this requires using reflection to - * access the CommandDispatcher (DISPATCHER), then registering it directly using - * DISPATCHER.register. For Velocity, this is as simple as commandManager.register(new BrigadierCommand( node )) - */ - public abstract LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node); ////////////////////////////////////////////////////////////////////////////////////////////////////// // SECTION: Argument Builders // @@ -625,7 +600,7 @@ LiteralArgumentBuilder getLiteralArgumentBuilder(String commandNa * @return a brigadier LiteralArgumentBuilder representing a literal */ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandName, - CommandPermission permission, Predicate requirements) { + CommandPermission permission, Predicate> requirements) { LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal(commandName); return builder.requires((CommandSource css) -> permissionCheck(platform.getCommandSenderFromCommandSource(css), permission, requirements)); @@ -798,10 +773,6 @@ public final Field getField(Class clazz, String name) { } } - // We probabbbbbbbbly need to register some form of help for commands? I'm not - // sure if - public abstract void registerHelp(); - ////////////////////////////// // SECTION: Private classes // ////////////////////////////// diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java index da393928c5..da341896a5 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java @@ -30,7 +30,7 @@ final class CommandMetaData { /** * A predicate that a {@link AbstractCommandSender} must pass in order to execute the command */ - Predicate requirements = s -> true; + Predicate> requirements = s -> true; /** * An optional short description for the command diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java index 63548b8ad7..c8e20af6ea 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java @@ -1,4 +1,4 @@ package dev.jorel.commandapi.abstractions; -public class AbstractBlockCommandSender implements AbstractCommandSender{ +public abstract class AbstractBlockCommandSender implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java index 344f97b4ab..91f7af5cb3 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi.abstractions; -public interface AbstractCommandSender { +public interface AbstractCommandSender { // TODO: figure out what features this and the subclasses of this class need // We're assuming all command senders have some form of "permission" system @@ -11,11 +11,10 @@ public interface AbstractCommandSender { // If no permission system is present, we assume the command sender is always // able to run the command - public default boolean hasPermission(String permissionNode) { - return true; - } + public boolean hasPermission(String permissionNode); - public default boolean isOp() { - return true; - } + public boolean isOp(); + + // Need to be able to get the underlying command sender! + public Source getSource(); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractConsoleCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractConsoleCommandSender.java index 352cbfa691..99a487573e 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractConsoleCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractConsoleCommandSender.java @@ -1,4 +1,4 @@ package dev.jorel.commandapi.abstractions; -public class AbstractConsoleCommandSender implements AbstractCommandSender{ +public abstract class AbstractConsoleCommandSender implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractEntity.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractEntity.java index a03215c771..fac3cf1fbf 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractEntity.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractEntity.java @@ -1,4 +1,4 @@ package dev.jorel.commandapi.abstractions; -public class AbstractEntity implements AbstractCommandSender{ +public abstract class AbstractEntity implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractNativeProxyCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractNativeProxyCommandSender.java index 51e8278e7d..89935aa989 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractNativeProxyCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractNativeProxyCommandSender.java @@ -1,4 +1,4 @@ package dev.jorel.commandapi.abstractions; -public class AbstractNativeProxyCommandSender implements AbstractCommandSender{ +public abstract class AbstractNativeProxyCommandSender implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 50d14429e9..92bd022f52 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -1,13 +1,16 @@ package dev.jorel.commandapi.abstractions; -import com.mojang.brigadier.CommandDispatcher; +import java.util.List; + +import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.tree.LiteralCommandNode; import dev.jorel.commandapi.arguments.SuggestionProviders; // TODO: Not entirely sure if this needs to be parameterized here or not -public abstract class AbstractPlatform { +public abstract class AbstractPlatform { // TODO: Add methods that need platform-specific implementations // All methods in bukkit NMS will probably also need to be here @@ -16,12 +19,12 @@ public abstract class AbstractPlatform { // AbstractPlatform implementation. The only things in here are going // to be supppppppppper low-level stuff - public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); + public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); // Converts a command source into its source. For Bukkit, this // is implemented in NMS. TODO: For Velocity, I have no idea what // a command source is or consists of - public abstract AbstractCommandSender getCommandSenderFromCommandSource(CommandSource css); + public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); // Registers a permission. Bukkit's permission system requires permissions to be "registered" // before they can be used. @@ -30,5 +33,42 @@ public abstract class AbstractPlatform { // Some commands have existing suggestion providers. TODO: We can PROBABLY avoid this by // implementing the relevant NMS SuggestionProviders implementation on the platform-specific // argument, but I CBA to think about that now so I'll dump it here - public abstract SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider); + public abstract SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider); + + + + /** + * Stuff to run after a command has been generated. For Bukkit, this involves + * finding command ambiguities for logging and generating the command JSON + * dispatcher file. If we're being fancy, we could also create a "registered + * a command" event (which can't be cancelled) + * @param aliasNodes any alias nodes that were also registered as a part of this registration process + * @param resultantNode the node that was registered + */ + public abstract void postCommandRegistration(LiteralCommandNode resultantNode , List> aliasNodes); + + /** + * Registers a Brigadier command node. For Bukkit, this requires using reflection to + * access the CommandDispatcher (DISPATCHER), then registering it directly using + * DISPATCHER.register. For Velocity, this is as simple as commandManager.register(new BrigadierCommand( node )) + */ + public abstract LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node); + + // We probabbbbbbbbly need to register some form of help for commands? I'm not + // sure if + public abstract void registerHelp(); + + + + /** + * Unregisters a command. For Bukkit, this is as complex as unregistering it from + * the CommandDispatcher. For Velocity, this is as simple as commandManager.unregister(commandName) + */ + public abstract void unregister(String commandName); + + + + // For Bukkit, chat preview has to be unhooked + // Wait why does this appear here? This shouldn't! + // public abstract void onDisable(); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlayer.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlayer.java index 829f3bc92d..e8c9b7f086 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlayer.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlayer.java @@ -1,4 +1,4 @@ package dev.jorel.commandapi.abstractions; -public class AbstractPlayer implements AbstractCommandSender{ +public abstract class AbstractPlayer implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractProxiedCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractProxiedCommandSender.java index 31debfdb4d..15ac578fa4 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractProxiedCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractProxiedCommandSender.java @@ -1,4 +1,4 @@ package dev.jorel.commandapi.abstractions; -public class AbstractProxiedCommandSender implements AbstractCommandSender{ +public abstract class AbstractProxiedCommandSender implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java index f0ea3f6d42..b4e7b99f46 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -258,13 +258,13 @@ public final CommandPermission getArgumentPermission() { // Requirements // ////////////////// - private Predicate requirements = s -> true; + private Predicate> requirements = s -> true; /** * Returns the requirements required to run this command * @return the requirements required to run this command */ - public final Predicate getRequirements() { + public final Predicate> getRequirements() { return this.requirements; } @@ -276,7 +276,7 @@ public final Predicate getRequirements() { * @param requirement the predicate that must be satisfied to use this argument * @return this current argument */ - public final Argument withRequirement(Predicate requirement) { + public final Argument withRequirement(Predicate> requirement) { this.requirements = this.requirements.and(requirement); return this; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java new file mode 100644 index 0000000000..25f98e2e18 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java @@ -0,0 +1,24 @@ +package dev.jorel.commandapi.commandsenders; +import org.bukkit.command.ConsoleCommandSender; + +import dev.jorel.commandapi.abstractions.AbstractConsoleCommandSender; + +public class BukkitConsoleCommandSender extends AbstractConsoleCommandSender { + + ConsoleCommandSender sender; + + public BukkitConsoleCommandSender(ConsoleCommandSender sender) { + this.sender = sender; + } + + @Override + public boolean hasPermission(String permissionNode) { + return sender.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + return sender.isOp(); + } + +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java new file mode 100644 index 0000000000..ccc618844b --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -0,0 +1,82 @@ +package dev.jorel.commandapi; + +import java.util.List; + +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.tree.LiteralCommandNode; +import com.velocitypowered.api.command.BrigadierCommand; +import com.velocitypowered.api.command.CommandManager; +import com.velocitypowered.api.command.CommandSource; + +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.arguments.SuggestionProviders; + +public class VelocityPlatform extends AbstractPlatform { + + private final CommandManager commandManager; + + public VelocityPlatform(CommandManager commandManager) { + this.commandManager = commandManager; + } + + @Override + public void registerPermission(String string) { + return; // Unsurprisingly, Velocity doesn't have a dumb permission system! + } + + + @Override + public void registerHelp() { + return; // Nothing to do here - TODO: Velocity doesn't have help? + } + + @Override + public void unregister(String commandName) { + commandManager.unregister(commandName); + } + + @Override + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, + boolean forceNative) { + // TODO: This method MAY be completely identical to getCommandSenderFromCommandSource. + // In Bukkit, this is NOT the case - we have to apply certain changes based + // on the command context - for example, if we're proxying another entity or + // otherwise (e.g. native sender) + + // I'm fairly certain we don't have to do that in Velocity, so we'll just go straight + // for this: + return getCommandSenderFromCommandSource(cmdCtx.getSource()); + } + + @Override + public AbstractCommandSender getCommandSenderFromCommandSource(Source cs) { + // Given a Brigadier CommandContext source (result of CommandContext.getSource), + // we need to convert that to an AbstractCommandSender. + + // TODO Auto-generated method stub + return null; + } + + @Override + public SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void postCommandRegistration(LiteralCommandNode resultantNode, + List> aliasNodes) { + return; // Nothing left to do + } + + @SuppressWarnings("unchecked") + @Override + public LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node) { + commandManager.register(new BrigadierCommand((LiteralArgumentBuilder) node)); + return null; // TODO: Uhhhhhhhhhhhhhhhh how do we get this? + } + +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java new file mode 100644 index 0000000000..44e801eb82 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java @@ -0,0 +1,29 @@ +package dev.jorel.commandapi.commandsenders; +import com.velocitypowered.api.proxy.ConsoleCommandSource; + +import dev.jorel.commandapi.abstractions.AbstractConsoleCommandSender; + +public class VelocityConsoleCommandSender extends AbstractConsoleCommandSender { + + private final ConsoleCommandSource source; + + public VelocityConsoleCommandSender(ConsoleCommandSource source) { + this.source = source; + } + + @Override + public boolean hasPermission(String permissionNode) { + return this.source.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + return true; + } + + @Override + public ConsoleCommandSource getSource() { + return this.source; + } + +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java new file mode 100644 index 0000000000..c2d7b67f41 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java @@ -0,0 +1,29 @@ +package dev.jorel.commandapi.commandsenders; +import com.velocitypowered.api.proxy.Player; + +import dev.jorel.commandapi.abstractions.AbstractPlayer; + +public class VelocityPlayer extends AbstractPlayer { + + private final Player player; + + public VelocityPlayer(Player player) { + this.player = player; + } + + @Override + public boolean hasPermission(String permissionNode) { + return this.player.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + return false; + } + + @Override + public Player getSource() { + return this.player; + } + +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index 89d78f2a51..21f4eec19a 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -3,10 +3,6 @@ import java.util.logging.Logger; import com.google.inject.Inject; -import com.mojang.brigadier.tree.LiteralCommandNode; -import com.velocitypowered.api.command.BrigadierCommand; -import com.velocitypowered.api.command.CommandManager; -import com.velocitypowered.api.command.CommandMeta; import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.proxy.ProxyInitializeEvent; import com.velocitypowered.api.event.proxy.ProxyReloadEvent; @@ -17,7 +13,7 @@ @Plugin( id = "commandapi-velocity", name = "CommandAPI", - version = "8.2.0", + version = "${project.version}", // Hopefully Maven is smart enough to substitute this url = "https://commandapi.jorel.dev", description = "An API to use Minecraft 1.13s new command UI", authors = {"Skepter"} @@ -25,19 +21,17 @@ public class CommandAPIMain { private final ProxyServer server; - private final CommandManager commandManager; private final Logger logger; @Inject public CommandAPIMain(ProxyServer server, Logger logger) { this.server = server; - this.commandManager = server.getCommandManager(); this.logger = logger; } @Subscribe public void onProxyInitialization(ProxyInitializeEvent event) { - // Start up + new VelocityPlatform(server.getCommandManager()); // We probably want to do stuff with this... // Command can be registered using the following: // From 4a2ff5fe624f4ccc46ff0a83fcf0f980da1bf5c5 Mon Sep 17 00:00:00 2001 From: BuildTools <46540330+willkroboth@users.noreply.github.com> Date: Sun, 9 Oct 2022 11:34:51 -0400 Subject: [PATCH 019/638] Remove paper dependency from commandapi-core --- commandapi-core/pom.xml | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/commandapi-core/pom.xml b/commandapi-core/pom.xml index 3055407544..b2129acc80 100644 --- a/commandapi-core/pom.xml +++ b/commandapi-core/pom.xml @@ -35,10 +35,6 @@ https://repo.codemc.org/repository/maven-public/ default - - papermc - https://papermc.io/repo/repository/maven-public/ - @@ -55,13 +51,6 @@ 3.3.39 provided - - - io.papermc.paper - paper-api - ${paper.version} - provided - From 08c84075a3f8133500e230d9718a8b42be16820d Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 10 Oct 2022 12:26:37 -0400 Subject: [PATCH 020/638] Parameterize AbstractPlatform and fix VelocityPlatform#registerCommandNode to return the proper LiteralCommandNode --- .../abstractions/AbstractPlatform.java | 13 ++++++------- .../jorel/commandapi/VelocityPlatform.java | 19 ++++++++++--------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 92bd022f52..50e5fe4e78 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -9,8 +9,7 @@ import dev.jorel.commandapi.arguments.SuggestionProviders; -// TODO: Not entirely sure if this needs to be parameterized here or not -public abstract class AbstractPlatform { +public abstract class AbstractPlatform { // TODO: Add methods that need platform-specific implementations // All methods in bukkit NMS will probably also need to be here @@ -19,12 +18,12 @@ public abstract class AbstractPlatform { // AbstractPlatform implementation. The only things in here are going // to be supppppppppper low-level stuff - public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); + public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); // Converts a command source into its source. For Bukkit, this // is implemented in NMS. TODO: For Velocity, I have no idea what // a command source is or consists of - public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); + public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); // Registers a permission. Bukkit's permission system requires permissions to be "registered" // before they can be used. @@ -33,7 +32,7 @@ public abstract class AbstractPlatform { // Some commands have existing suggestion providers. TODO: We can PROBABLY avoid this by // implementing the relevant NMS SuggestionProviders implementation on the platform-specific // argument, but I CBA to think about that now so I'll dump it here - public abstract SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider); + public abstract SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider); @@ -45,14 +44,14 @@ public abstract class AbstractPlatform { * @param aliasNodes any alias nodes that were also registered as a part of this registration process * @param resultantNode the node that was registered */ - public abstract void postCommandRegistration(LiteralCommandNode resultantNode , List> aliasNodes); + public abstract void postCommandRegistration(LiteralCommandNode resultantNode , List> aliasNodes); /** * Registers a Brigadier command node. For Bukkit, this requires using reflection to * access the CommandDispatcher (DISPATCHER), then registering it directly using * DISPATCHER.register. For Velocity, this is as simple as commandManager.register(new BrigadierCommand( node )) */ - public abstract LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node); + public abstract LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node); // We probabbbbbbbbly need to register some form of help for commands? I'm not // sure if diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index ccc618844b..2f51c2f4b4 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -14,7 +14,7 @@ import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.arguments.SuggestionProviders; -public class VelocityPlatform extends AbstractPlatform { +public class VelocityPlatform extends AbstractPlatform { private final CommandManager commandManager; @@ -39,7 +39,7 @@ public void unregister(String commandName) { } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { // TODO: This method MAY be completely identical to getCommandSenderFromCommandSource. // In Bukkit, this is NOT the case - we have to apply certain changes based @@ -52,7 +52,7 @@ public AbstractCommandSender getSenderForCommand(CommandContext } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(Source cs) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandSource cs) { // Given a Brigadier CommandContext source (result of CommandContext.getSource), // we need to convert that to an AbstractCommandSender. @@ -61,22 +61,23 @@ public AbstractCommandSender getCommandSenderFromCommandSource( } @Override - public SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider) { + public SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider) { // TODO Auto-generated method stub return null; } @Override - public void postCommandRegistration(LiteralCommandNode resultantNode, - List> aliasNodes) { + public void postCommandRegistration(LiteralCommandNode resultantNode, + List> aliasNodes) { return; // Nothing left to do } @SuppressWarnings("unchecked") @Override - public LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node) { - commandManager.register(new BrigadierCommand((LiteralArgumentBuilder) node)); - return null; // TODO: Uhhhhhhhhhhhhhhhh how do we get this? + public LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node) { + BrigadierCommand command = new BrigadierCommand(node); + commandManager.register(command); + return command.getNode(); } } From b3d3cc9fbcd07594a0dad868c7d53578b4204faf Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 10 Oct 2022 12:45:37 -0400 Subject: [PATCH 021/638] Implement VelocityPlatform#getCommandSenderFromCommandSource --- .../abstractions/AbstractPlatform.java | 4 ++-- .../dev/jorel/commandapi/VelocityPlatform.java | 16 +++++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 50e5fe4e78..bf417eff9d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -18,12 +18,12 @@ public abstract class AbstractPlatform { // AbstractPlatform implementation. The only things in here are going // to be supppppppppper low-level stuff - public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); + public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); // Converts a command source into its source. For Bukkit, this // is implemented in NMS. TODO: For Velocity, I have no idea what // a command source is or consists of - public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); + public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); // Registers a permission. Bukkit's permission system requires permissions to be "registered" // before they can be used. diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index 2f51c2f4b4..5246309a64 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -10,9 +10,13 @@ import com.velocitypowered.api.command.CommandManager; import com.velocitypowered.api.command.CommandSource; +import com.velocitypowered.api.proxy.ConsoleCommandSource; +import com.velocitypowered.api.proxy.Player; import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.VelocityConsoleCommandSender; +import dev.jorel.commandapi.commandsenders.VelocityPlayer; public class VelocityPlatform extends AbstractPlatform { @@ -39,7 +43,7 @@ public void unregister(String commandName) { } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { // TODO: This method MAY be completely identical to getCommandSenderFromCommandSource. // In Bukkit, this is NOT the case - we have to apply certain changes based @@ -52,12 +56,14 @@ public AbstractCommandSender getSenderForCommand(CommandContext getCommandSenderFromCommandSource(CommandSource cs) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandSource cs) { // Given a Brigadier CommandContext source (result of CommandContext.getSource), // we need to convert that to an AbstractCommandSender. - - // TODO Auto-generated method stub - return null; + if(cs instanceof ConsoleCommandSource ccs) + return new VelocityConsoleCommandSender(ccs); + if(cs instanceof Player p) + return new VelocityPlayer(p); + throw new IllegalArgumentException("Unknown CommandSource: " + cs); } @Override From 5358398cb13b1dd7d2288edb0f1b0bd444812128 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Mon, 10 Oct 2022 18:09:24 +0100 Subject: [PATCH 022/638] Draft up implementation of BukkitPlatform Also included an example of its interactions with Bukkit-specific arguments by implementing BukkitPlatform via NMS --- .../jorel/commandapi/arguments/Argument.java | 2 +- .../dev/jorel/commandapi/BukkitPlatform.java | 68 +++++++++++++++++++ .../commandapi/arguments/AngleArgument.java | 10 +-- .../java/dev/jorel/commandapi/nms/NMS.java | 2 +- 4 files changed, 75 insertions(+), 7 deletions(-) create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java index b4e7b99f46..f1460c8f20 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -108,7 +108,7 @@ public final String getNodeName() { * @return the parsed object represented by this argument * @throws CommandSyntaxException if parsing fails */ - public abstract T parseArgument(AbstractPlatform platform, + public abstract T parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException; ///////////////// diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java new file mode 100644 index 0000000000..6d23fa81b4 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -0,0 +1,68 @@ +package dev.jorel.commandapi; + +import java.util.List; + +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.tree.LiteralCommandNode; + +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.nms.NMS; + +// BukkitPlatform is an AbstractPlatform, but also needs all of the methods from +// NMS, so it implements NMS. Our implementation of BukkitPlatform is now derived +// using the version handler (and thus, deferred to our NMS-specific implementations) +public abstract class BukkitPlatform extends AbstractPlatform implements NMS { + + @Override + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { + // TODO Auto-generated method stub + return null; + } + + @Override + public AbstractCommandSender getCommandSenderFromCommandSource(Source cs) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void registerPermission(String string) { + // TODO Auto-generated method stub + + } + + @Override + public SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes) { + // TODO Auto-generated method stub + + } + + @Override + public LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void registerHelp() { + // TODO Auto-generated method stub + + } + + @Override + public void unregister(String commandName) { + // TODO Auto-generated method stub + + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java index 53960b0f91..dad474329b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java @@ -23,8 +23,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents a yaw angle, measured in degrees with float @@ -57,9 +58,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) - throws CommandSyntaxException { - return nms.getAngle(cmdCtx, key); + public Float parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) + throws CommandSyntaxException { + return ((BukkitPlatform) platform).getAngle(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java index 3af2381846..5d0479321d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java @@ -318,7 +318,7 @@ String getScoreHolderSingle(CommandContext cmdCtx, Strin * @return A CommandSender instance (such as a ProxiedNativeCommandSender or * Player) */ - CommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); + // CommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); /** * Returns the Server's internal (OBC) CommandMap From c74ae814be97dee054ae42382afa12e7db5e34ee Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Mon, 10 Oct 2022 18:29:31 +0100 Subject: [PATCH 023/638] Implement every other Bukkit argument via AbstractPlatform --- .../dev/jorel/commandapi/BukkitPlatform.java | 7 +++++ .../jorel/commandapi/CommandAPIHandler.java | 1 + .../arguments/AdvancementArgument.java | 11 +++---- .../arguments/AdventureChatArgument.java | 16 +++++----- .../AdventureChatComponentArgument.java | 12 ++++---- .../commandapi/arguments/AngleArgument.java | 3 +- .../commandapi/arguments/AxisArgument.java | 16 +++++----- .../commandapi/arguments/BiomeArgument.java | 12 ++++---- .../arguments/BlockPredicateArgument.java | 12 ++++---- .../arguments/BlockStateArgument.java | 12 ++++---- .../commandapi/arguments/ChatArgument.java | 16 +++++----- .../arguments/ChatColorArgument.java | 12 ++++---- .../arguments/ChatComponentArgument.java | 12 ++++---- .../commandapi/arguments/CustomArgument.java | 15 +++++----- .../arguments/EnchantmentArgument.java | 11 +++---- .../arguments/EntitySelectorArgument.java | 12 ++++---- .../arguments/EntityTypeArgument.java | 11 +++---- .../arguments/EnvironmentArgument.java | 12 ++++---- .../arguments/FloatRangeArgument.java | 12 ++++---- .../arguments/FunctionArgument.java | 11 +++---- .../arguments/IntegerRangeArgument.java | 12 ++++---- .../arguments/ItemStackArgument.java | 12 ++++---- .../arguments/ItemStackPredicateArgument.java | 12 ++++---- .../commandapi/arguments/ListArgument.java | 11 +++---- .../arguments/Location2DArgument.java | 14 ++++----- .../arguments/LocationArgument.java | 14 ++++----- .../arguments/LootTableArgument.java | 11 +++---- .../arguments/MathOperationArgument.java | 12 ++++---- .../arguments/NBTCompoundArgument.java | 12 ++++---- .../arguments/NamespacedKeyArgument.java | 12 ++++---- .../arguments/ObjectiveArgument.java | 12 ++++---- .../arguments/ObjectiveCriteriaArgument.java | 12 ++++---- .../arguments/OfflinePlayerArgument.java | 12 ++++---- .../arguments/ParticleArgument.java | 12 ++++---- .../commandapi/arguments/PlayerArgument.java | 12 ++++---- .../arguments/PotionEffectArgument.java | 12 ++++---- .../commandapi/arguments/RecipeArgument.java | 11 +++---- .../arguments/RotationArgument.java | 12 ++++---- .../arguments/ScoreHolderArgument.java | 12 ++++---- .../arguments/ScoreboardSlotArgument.java | 12 ++++---- .../commandapi/arguments/SoundArgument.java | 12 ++++---- .../commandapi/arguments/TeamArgument.java | 12 ++++---- .../commandapi/arguments/TimeArgument.java | 12 ++++---- .../commandapi/arguments/UUIDArgument.java | 12 ++++---- .../commandsenders/BukkitPlayer.java | 29 +++++++++++++++++++ 45 files changed, 296 insertions(+), 248 deletions(-) create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 6d23fa81b4..ec663b3793 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -16,6 +16,13 @@ // NMS, so it implements NMS. Our implementation of BukkitPlatform is now derived // using the version handler (and thus, deferred to our NMS-specific implementations) public abstract class BukkitPlatform extends AbstractPlatform implements NMS { + + // Blah blah access instance directly and all of that stuff + private static BukkitPlatform instance; + + public static BukkitPlatform get() { + return instance; + } @Override public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index bdd5407fa6..4d0bb40414 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -143,6 +143,7 @@ public static String getRawArgumentInput(CommandContext getInstance() { if (instance == null) { instance = new CommandAPIHandler<>(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java index 8ae34588e3..5a5d4b7daf 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java @@ -27,7 +27,8 @@ import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.attributes.KeyedObject; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit Advancement object @@ -40,7 +41,7 @@ public class AdvancementArgument extends SafeOverrideableArgument KeyedObject parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getAdvancement(cmdCtx, key); + public KeyedObject parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getAdvancement(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java index b248e13aad..abf70b2096 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java @@ -28,10 +28,12 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.nms.NMS; import dev.jorel.commandapi.wrappers.PreviewableFunction; import net.kyori.adventure.text.Component; @@ -52,7 +54,7 @@ public class AdventureChatArgument extends Argument implements IGreed * @param nodeName the name of the node for argument */ public AdventureChatArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentChat()); + super(nodeName, BukkitPlatform.get()._ArgumentChat()); try { Class.forName("net.kyori.adventure.text.Component"); @@ -72,15 +74,15 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Component parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - final CommandSender sender = nms.getCommandSenderFromCSS(cmdCtx.getSource()); - Component component = nms.getAdventureChat(cmdCtx, key); + public Component parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCSS(cmdCtx.getSource()); + Component component = ((BukkitPlatform) platform).getAdventureChat(cmdCtx, key); if (this.usePreview && getPreview().isPresent() && sender instanceof Player player) { try { Component previewComponent = getPreview().get() - .generatePreview(new PreviewInfo(player, CommandAPIHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); + .generatePreview(new PreviewInfo(new BukkitPlayer(player), CommandAPIHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); component = previewComponent; } catch (WrapperCommandSyntaxException e) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java index ce62256979..08f6ef695e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java @@ -23,9 +23,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; -import dev.jorel.commandapi.nms.NMS; import net.kyori.adventure.text.Component; /** @@ -40,7 +40,7 @@ public class AdventureChatComponentArgument extends Argument { * @param nodeName the name of the node for argument */ public AdventureChatComponentArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentChatComponent()); + super(nodeName, BukkitPlatform.get()._ArgumentChatComponent()); try { Class.forName("net.kyori.adventure.text.Component"); @@ -60,8 +60,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Component parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getAdventureChatComponent(cmdCtx, key); + public Component parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getAdventureChatComponent(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java index dad474329b..b75848de22 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java @@ -24,7 +24,6 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.abstractions.AbstractPlatform; /** @@ -44,7 +43,7 @@ public class AngleArgument extends SafeOverrideableArgument { * @param nodeName the name of the node for argument */ public AngleArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentAngle(), String::valueOf); + super(nodeName, BukkitPlatform.get()._ArgumentAngle(), String::valueOf); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java index 40e43ba1f0..52c24c537f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java @@ -27,8 +27,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents x, y and z axes as an EnumSet of Axis @@ -45,8 +45,8 @@ public class AxisArgument extends SafeOverrideableArgument e.stream().map(Axis::name).map(String::toLowerCase).reduce(String::concat).get()); + super(nodeName, BukkitPlatform.get()._ArgumentAxis(), + e -> e.stream().map(Axis::name).map(String::toLowerCase).reduce(String::concat).get()); } @Override @@ -60,9 +60,9 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public EnumSet parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) - throws CommandSyntaxException { - return nms.getAxis(cmdCtx, key); + public EnumSet parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, + Object[] previousArgs) + throws CommandSyntaxException { + return ((BukkitPlatform) platform).getAxis(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java index 74219d0113..48aeea47cf 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java @@ -27,8 +27,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit Biome object @@ -43,7 +43,7 @@ public class BiomeArgument extends SafeOverrideableArgument implem * @param nodeName the name of the node for argument */ public BiomeArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentSyntheticBiome(), + super(nodeName, BukkitPlatform.get()._ArgumentSyntheticBiome(), ((Function) Biome::name).andThen(String::toLowerCase)); } @@ -63,9 +63,9 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public Biome parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) + public Biome parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getBiome(cmdCtx, key); + return ((BukkitPlatform) platform).getBiome(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java index d41d414260..c1f3f7678c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java @@ -27,8 +27,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents a Predicate<Block> @@ -45,7 +45,7 @@ public class BlockPredicateArgument extends Argument { * @param nodeName the name of the node for argument */ public BlockPredicateArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentBlockPredicate()); + super(nodeName, BukkitPlatform.get()._ArgumentBlockPredicate()); } @Override @@ -59,9 +59,9 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Predicate parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) + public Predicate parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getBlockPredicate(cmdCtx, key); + return ((BukkitPlatform) platform).getBlockPredicate(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java index ec70f23a9c..143949229b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit BlockData object @@ -42,7 +42,7 @@ public class BlockStateArgument extends Argument { * @param nodeName the name of the node for argument */ public BlockStateArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentBlockState()); + super(nodeName, BukkitPlatform.get()._ArgumentBlockState()); } @Override @@ -56,9 +56,9 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BlockData parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) + public BlockData parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getBlockState(cmdCtx, key); + return ((BukkitPlatform) platform).getBlockState(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java index 59b5b55ea5..aa388b1993 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java @@ -28,10 +28,12 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.nms.NMS; import dev.jorel.commandapi.wrappers.PreviewableFunction; import net.md_5.bungee.api.chat.BaseComponent; @@ -52,7 +54,7 @@ public class ChatArgument extends Argument implements IGreedyAr * @param nodeName the name of the node for argument */ public ChatArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentChat()); + super(nodeName, BukkitPlatform.get()._ArgumentChat()); try { Class.forName("org.spigotmc.SpigotConfig"); @@ -72,15 +74,15 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BaseComponent[] parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - final CommandSender sender = nms.getCommandSenderFromCSS(cmdCtx.getSource()); - BaseComponent[] component = nms.getChat(cmdCtx, key); + public BaseComponent[] parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCSS(cmdCtx.getSource()); + BaseComponent[] component = ((BukkitPlatform) platform).getChat(cmdCtx, key); if (getPreview().isPresent() && sender instanceof Player player) { try { BaseComponent[] previewComponent = getPreview().get() - .generatePreview(new PreviewInfo(player, CommandAPIHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); + .generatePreview(new PreviewInfo(new BukkitPlayer(player), CommandAPIHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); if (this.usePreview) { component = previewComponent; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java index ef23d81556..bda288dffc 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java @@ -27,8 +27,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit ChatColor object @@ -44,7 +44,7 @@ public class ChatColorArgument extends SafeOverrideableArgument) ChatColor::name).andThen(String::toLowerCase)); + super(nodeName, BukkitPlatform.get()._ArgumentChatFormat(), ((Function) ChatColor::name).andThen(String::toLowerCase)); } @Override @@ -58,8 +58,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ChatColor parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getChatColor(cmdCtx, key); + public ChatColor parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getChatColor(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java index 509378fdac..d1d2f463e7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java @@ -23,9 +23,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; -import dev.jorel.commandapi.nms.NMS; import net.md_5.bungee.api.chat.BaseComponent; /** @@ -44,7 +44,7 @@ public class ChatComponentArgument extends Argument { * @param nodeName the name of the node for argument */ public ChatComponentArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentChatComponent()); + super(nodeName, BukkitPlatform.get()._ArgumentChatComponent()); try { Class.forName("org.spigotmc.SpigotConfig"); @@ -64,9 +64,9 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BaseComponent[] parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) + public BaseComponent[] parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getChatComponent(cmdCtx, key); + return ((BukkitPlatform) platform).getChatComponent(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index b90614e87d..5e962904bc 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -30,7 +30,8 @@ import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents any custom object @@ -81,7 +82,7 @@ public CustomArgument(String nodeName, CustomArgumentInfoParser parse @Deprecated(forRemoval = true) public CustomArgument(String nodeName, CustomArgumentInfoParser parser, boolean keyed) { super(nodeName, keyed ? StringArgumentType.string() - : CommandAPIHandler.getInstance().getNMS()._ArgumentMinecraftKeyRegistered()); + : BukkitPlatform.get()._ArgumentMinecraftKeyRegistered()); this.base = (Argument) new DummyArgument(nodeName, keyed); this.infoParser = (CustomArgumentInfoParser) parser; CommandAPI.logWarning( @@ -129,15 +130,15 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public T parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) + public T parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the raw input and parsed input final String customresult = CommandAPIHandler.getRawArgumentInput(cmdCtx, key); final B parsedInput = base.parseArgument(nms, cmdCtx, key, previousArgs); try { - return infoParser.apply(new CustomArgumentInfo(nms.getCommandSenderFromCSS(cmdCtx.getSource()), + return infoParser.apply(new CustomArgumentInfo(((BukkitPlatform) platform).getCommandSenderFromCSS(cmdCtx.getSource()), previousArgs, customresult, parsedInput)); } catch (CustomArgumentException e) { throw e.toCommandSyntax(customresult, cmdCtx); @@ -365,7 +366,7 @@ private static class DummyArgument extends Argument { private DummyArgument(String nodeName, boolean keyed) { super(nodeName, keyed ? StringArgumentType.string() - : CommandAPIHandler.getInstance().getNMS()._ArgumentMinecraftKeyRegistered()); + : BukkitPlatform.get()._ArgumentMinecraftKeyRegistered()); this.keyed = keyed; } @@ -383,7 +384,7 @@ public CommandAPIArgumentType getArgumentType() { public String parseArgument(NMS nms, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return keyed ? nms.getMinecraftKey(cmdCtx, key).toString() : cmdCtx.getArgument(key, String.class); + return keyed ? ((BukkitPlatform) platform).getMinecraftKey(cmdCtx, key).toString() : cmdCtx.getArgument(key, String.class); } } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java index 320e369c43..fe805b535b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java @@ -26,7 +26,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit Enchantment object @@ -40,7 +41,7 @@ public class EnchantmentArgument extends SafeOverrideableArgument Enchantment parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getEnchantment(cmdCtx, key); + public Enchantment parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getEnchantment(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java index 5488fc8c1f..603ea06a0e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java @@ -30,8 +30,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents a selection of entities @@ -59,7 +59,7 @@ public EntitySelectorArgument(String nodeName) { * @param selector the entity selector for this argument */ public EntitySelectorArgument(String nodeName, EntitySelector selector) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentEntity(selector)); + super(nodeName, BukkitPlatform.get()._ArgumentEntity(selector)); this.selector = selector; } @@ -90,10 +90,10 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public T parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) + public T parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return (T) nms.getEntitySelector(cmdCtx, key, selector); + return (T) ((BukkitPlatform) platform).getEntitySelector(cmdCtx, key, selector); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java index 20c548575d..6a4edd8644 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java @@ -26,7 +26,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit EntityType object @@ -38,7 +39,7 @@ public class EntityTypeArgument extends SafeOverrideableArgument EntityType parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getEntityType(cmdCtx, key); + public EntityType parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getEntityType(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java index 62e1fa9c54..deb1930af8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java @@ -27,8 +27,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit Environment object @@ -40,7 +40,7 @@ public class EnvironmentArgument extends SafeOverrideableArgument) Environment::name).andThen(String::toLowerCase)); + super(nodeName, BukkitPlatform.get()._ArgumentDimension(), ((Function) Environment::name).andThen(String::toLowerCase)); } @Override @@ -54,8 +54,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Environment parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getDimension(cmdCtx, key); + public Environment parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getDimension(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java index c5302affe3..1b183ef5b6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java @@ -23,8 +23,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.FloatRange; /** @@ -37,7 +37,7 @@ public class FloatRangeArgument extends SafeOverrideableArgument FloatRange parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getFloatRange(cmdCtx, key); + public FloatRange parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getFloatRange(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java index 8750091a7a..9fade7d8cb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java @@ -26,7 +26,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.FunctionWrapper; /** @@ -41,7 +42,7 @@ public class FunctionArgument extends SafeOverrideableArgument n)); + super(nodeName, BukkitPlatform.get()._ArgumentTag(), fromKey(n -> n)); } @Override @@ -60,8 +61,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public FunctionWrapper[] parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getFunction(cmdCtx, key); + public FunctionWrapper[] parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getFunction(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java index 20a6b34445..177872e848 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java @@ -23,8 +23,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.IntegerRange; /** @@ -37,7 +37,7 @@ public class IntegerRangeArgument extends SafeOverrideableArgument IntegerRange parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getIntRange(cmdCtx, key); + public IntegerRange parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getIntRange(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java index 4ae218d59d..373a035f06 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit ItemStack object @@ -38,7 +38,7 @@ public class ItemStackArgument extends SafeOverrideableArgument ItemStack parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getItemStack(cmdCtx, key); + public ItemStack parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getItemStack(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java index d992206a44..c0db7d5da1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java @@ -27,8 +27,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents a Predicate<ItemStack> @@ -41,7 +41,7 @@ public class ItemStackPredicateArgument extends Argument { * @param nodeName the name of the node for this argument */ public ItemStackPredicateArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentItemPredicate()); + super(nodeName, BukkitPlatform.get()._ArgumentItemPredicate()); } @Override @@ -55,8 +55,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Predicate parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getItemStackPredicate(cmdCtx, key); + public Predicate parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getItemStackPredicate(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java index 7646f21675..b929ccf723 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java @@ -28,7 +28,8 @@ import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; import dev.jorel.commandapi.IStringTooltip; import dev.jorel.commandapi.StringTooltip; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; import java.util.*; @@ -65,7 +66,7 @@ private void applySuggestions() { // This need not be a sorted map because entries in suggestions are // automatically sorted anyway Set values = new HashSet<>(); - for (T object : supplier.apply(info.sender())) { + for (T object : supplier.apply((CommandSender) info.sender().getSource())) { values.add(mapper.apply(object)); } @@ -123,11 +124,11 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public List parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public List parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the list of values which this can take Map values = new HashMap<>(); - for (T object : supplier.apply(nms.getCommandSenderFromCSS(cmdCtx.getSource()))) { + for (T object : supplier.apply(((BukkitPlatform) platform).getCommandSenderFromCSS(cmdCtx.getSource()))) { values.put(mapper.apply(object), object); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java index 225d44685f..c1f052e53a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.Location2D; /** @@ -49,8 +49,8 @@ public Location2DArgument(String nodeName) { * @param type the location type of this location, either {@link LocationType#BLOCK_POSITION} or {@link LocationType#PRECISE_POSITION} */ public Location2DArgument(String nodeName, LocationType type) { - super(nodeName, type == LocationType.BLOCK_POSITION ? CommandAPIHandler.getInstance().getNMS()._ArgumentPosition2D() - : CommandAPIHandler.getInstance().getNMS()._ArgumentVec2(), + super(nodeName, type == LocationType.BLOCK_POSITION ? BukkitPlatform.get()._ArgumentPosition2D() + : BukkitPlatform.get()._ArgumentVec2(), type == LocationType.BLOCK_POSITION ? (Location2D l) -> l.getBlockX() + " " + l.getBlockZ() : (Location2D l) -> l.getX() + " " + l.getZ()); isPrecise = type == LocationType.PRECISE_POSITION; @@ -77,8 +77,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Location2D parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return isPrecise ? nms.getLocation2DPrecise(cmdCtx, key) : nms.getLocation2DBlock(cmdCtx, key); + public Location2D parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return isPrecise ? ((BukkitPlatform) platform).getLocation2DPrecise(cmdCtx, key) : ((BukkitPlatform) platform).getLocation2DBlock(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java index f5b568a390..5ed5d7dc79 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit {@link Location} object @@ -48,8 +48,8 @@ public LocationArgument(String nodeName) { * @param type the location type of this location, either {@link LocationType#BLOCK_POSITION} or {@link LocationType#PRECISE_POSITION} */ public LocationArgument(String nodeName, LocationType type) { - super(nodeName, type == LocationType.BLOCK_POSITION ? CommandAPIHandler.getInstance().getNMS()._ArgumentPosition() - : CommandAPIHandler.getInstance().getNMS()._ArgumentVec3(), + super(nodeName, type == LocationType.BLOCK_POSITION ? BukkitPlatform.get()._ArgumentPosition() + : BukkitPlatform.get()._ArgumentVec3(), type == LocationType.BLOCK_POSITION ? (Location l) -> l.getBlockX() + " " + l.getBlockY() + " " + l.getBlockZ() : (Location l) -> l.getX() + " " + l.getY() + " " + l.getZ()); @@ -77,8 +77,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Location parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return isPrecise ? nms.getLocationPrecise(cmdCtx, key) : nms.getLocationBlock(cmdCtx, key); + public Location parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return isPrecise ? ((BukkitPlatform) platform).getLocationPrecise(cmdCtx, key) : ((BukkitPlatform) platform).getLocationBlock(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java index 24dd69a16c..a0f9c68e0f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java @@ -27,7 +27,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit LootTable object @@ -39,7 +40,7 @@ public class LootTableArgument extends SafeOverrideableArgument LootTable parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getLootTable(cmdCtx, key); + public LootTable parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getLootTable(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java index feb178796a..e02fa77c66 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java @@ -23,8 +23,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.MathOperation; /** @@ -37,7 +37,7 @@ public class MathOperationArgument extends SafeOverrideableArgument MathOperation parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getMathOperation(cmdCtx, key); + public MathOperation parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getMathOperation(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java index f71d584190..8cd9bddfda 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java @@ -23,9 +23,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents an NBTContainer from the NBT API @@ -39,7 +39,7 @@ public class NBTCompoundArgument extends SafeOverrideableArgument< * @param nodeName the name of the node for this argument */ public NBTCompoundArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentNBTCompound(), NBTContainer::toString); + super(nodeName, BukkitPlatform.get()._ArgumentNBTCompound(), NBTContainer::toString); if (CommandAPI.getConfiguration().getNBTContainerClass() == null || CommandAPI.getConfiguration().getNBTContainerConstructor() == null) { throw new NullPointerException( "The NBTCompoundArgument hasn't been initialized properly! Use CommandAPIConfig.initializeNBTAPI() in your onLoad() method"); @@ -59,9 +59,9 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public NBTContainer parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) + public NBTContainer parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return (NBTContainer) nms.getNBTCompound(cmdCtx, key, CommandAPI.getConfiguration().getNBTContainerConstructor()); + return (NBTContainer) ((BukkitPlatform) platform).getNBTCompound(cmdCtx, key, CommandAPI.getConfiguration().getNBTContainerConstructor()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java index a32c177ce1..2a2d5c520f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents a Minecraft resource location (or namespaced key) @@ -43,7 +43,7 @@ public class NamespacedKeyArgument extends SafeOverrideableArgument NamespacedKey parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) + public NamespacedKey parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getMinecraftKey(cmdCtx, key); + return ((BukkitPlatform) platform).getMinecraftKey(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java index 5e09068f51..feaaf9e6c3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the name of a scoreboard objective @@ -38,7 +38,7 @@ public class ObjectiveArgument extends SafeOverrideableArgument String parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getObjective(cmdCtx, key); + public String parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getObjective(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java index 1814f56a44..885bf1ad8f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java @@ -23,8 +23,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the name of an objective criteria @@ -36,7 +36,7 @@ public class ObjectiveCriteriaArgument extends Argument { * @param nodeName the name of the node for this argument */ public ObjectiveCriteriaArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentScoreboardCriteria()); + super(nodeName, BukkitPlatform.get()._ArgumentScoreboardCriteria()); } @Override @@ -50,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getObjectiveCriteria(cmdCtx, key); + public String parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getObjectiveCriteria(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java index c1c3cab716..9b7592d39c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit Player object @@ -40,7 +40,7 @@ public class OfflinePlayerArgument extends SafeOverrideableArgument OfflinePlayer parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getOfflinePlayer(cmdCtx, key); + public OfflinePlayer parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getOfflinePlayer(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java index cb5a77298e..65f389e8d4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java @@ -23,8 +23,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.ParticleData; /** @@ -38,7 +38,7 @@ public class ParticleArgument extends SafeOverrideableArgument ParticleData parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getParticle(cmdCtx, key); + public ParticleData parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getParticle(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java index 46aebca556..115920cdd1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit Player object @@ -40,7 +40,7 @@ public class PlayerArgument extends SafeOverrideableArgument { * @param nodeName the name of the node for this argument */ public PlayerArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentProfile(), Player::getName); + super(nodeName, BukkitPlatform.get()._ArgumentProfile(), Player::getName); } @Override @@ -54,8 +54,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Player parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getPlayer(cmdCtx, key); + public Player parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getPlayer(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java index 56b3738b99..79700ed925 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit PotionEffectType object @@ -38,7 +38,7 @@ public class PotionEffectArgument extends SafeOverrideableArgument PotionEffectType parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getPotionEffect(cmdCtx, key); + public PotionEffectType parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getPotionEffect(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java index 21c8aab58d..84c55d27c4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java @@ -27,7 +27,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit Recipe object @@ -39,7 +40,7 @@ public class RecipeArgument extends SafeOverrideableArgument imp * @param nodeName the name of the node for this argument */ public RecipeArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentMinecraftKeyRegistered(), fromKey((Recipe r) -> ((Keyed) r).getKey())); + super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), fromKey((Recipe r) -> ((Keyed) r).getKey())); } @Override @@ -58,9 +59,9 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Recipe parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getRecipe(cmdCtx, key); + public Recipe parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getRecipe(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java index 5b70e082ab..9680f83b74 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java @@ -23,8 +23,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.Rotation; /** @@ -37,7 +37,7 @@ public class RotationArgument extends SafeOverrideableArgument Rotation parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getRotation(cmdCtx, key); + public Rotation parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getRotation(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java index 94757d378b..f8f2b32447 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents a scoreholder's name, or a collection of scoreholder names @@ -50,7 +50,7 @@ public ScoreHolderArgument(String nodeName) { * @param type whether this argument represents a single score holder or a collection of score holders */ public ScoreHolderArgument(String nodeName, ScoreHolderType type) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentScoreholder(type == ScoreHolderType.SINGLE)); + super(nodeName, BukkitPlatform.get()._ArgumentScoreholder(type == ScoreHolderType.SINGLE)); single = (type == ScoreHolderType.SINGLE); } @@ -75,9 +75,9 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public T parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return (T) (single ? nms.getScoreHolderSingle(cmdCtx, key) : nms.getScoreHolderMultiple(cmdCtx, key)); + public T parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return (T) (single ? ((BukkitPlatform) platform).getScoreHolderSingle(cmdCtx, key) : ((BukkitPlatform) platform).getScoreHolderMultiple(cmdCtx, key)); } /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java index ea0193b7fb..8ed4fd87b0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java @@ -23,8 +23,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.ScoreboardSlot; /** @@ -37,7 +37,7 @@ public class ScoreboardSlotArgument extends SafeOverrideableArgument ScoreboardSlot parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getScoreboardSlot(cmdCtx, key); + public ScoreboardSlot parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getScoreboardSlot(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java index 0e40fcc29c..10399ad8d4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the Bukkit Sound object @@ -38,7 +38,7 @@ public class SoundArgument extends SafeOverrideableArgument implem * @param nodeName the name of the node for this argument */ public SoundArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentMinecraftKeyRegistered(), CommandAPIHandler.getInstance().getNMS()::convert); + super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), BukkitPlatform.get()::convert); } @Override @@ -57,8 +57,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Sound parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getSound(cmdCtx, key); + public Sound parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getSound(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java index 1473ad2fd1..444f375469 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents the name of a scoreboard Team @@ -38,7 +38,7 @@ public class TeamArgument extends SafeOverrideableArgument { * @param nodeName the name of the node for this argument */ public TeamArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentScoreboardTeam(), Team::getName); + super(nodeName, BukkitPlatform.get()._ArgumentScoreboardTeam(), Team::getName); } @Override @@ -52,8 +52,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getTeam(cmdCtx, key); + public String parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getTeam(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java index a3e1e8da54..eaee1a7013 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java @@ -23,8 +23,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.Time; /** @@ -37,7 +37,7 @@ public class TimeArgument extends SafeOverrideableArgument { * @param nodeName the name of the node for this argument */ public TimeArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentTime(), Time::toString); + super(nodeName, BukkitPlatform.get()._ArgumentTime(), Time::toString); } @Override @@ -51,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getTime(cmdCtx, key); + public Integer parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getTime(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java index 964538fa92..d6d991fb6e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java @@ -25,8 +25,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlatform; /** * An argument that represents a UUID @@ -38,7 +38,7 @@ public class UUIDArgument extends SafeOverrideableArgument { * @param nodeName the name of the node for this argument */ public UUIDArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentUUID(), UUID::toString); + super(nodeName, BukkitPlatform.get()._ArgumentUUID(), UUID::toString); } @Override @@ -52,8 +52,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public UUID parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getUUID(cmdCtx, key); + public UUID parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((BukkitPlatform) platform).getUUID(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java new file mode 100644 index 0000000000..294b92fdaa --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java @@ -0,0 +1,29 @@ +package dev.jorel.commandapi.commandsenders; +import org.bukkit.entity.Player; + +import dev.jorel.commandapi.abstractions.AbstractPlayer; + +public class BukkitPlayer extends AbstractPlayer { + + private final Player player; + + public BukkitPlayer(Player player) { + this.player = player; + } + + @Override + public boolean hasPermission(String permissionNode) { + return this.player.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + return this.player.isOp(); + } + + @Override + public Player getSource() { + return this.player; + } + +} From abbc367ba9cb813ae54995bff902b384b9b8632e Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Mon, 10 Oct 2022 18:54:21 +0100 Subject: [PATCH 024/638] Adds Bukkit command sender implementations, abstracts tooltips and implement for Bukkit, make default arguments compile nicely --- .../java/dev/jorel/commandapi/Tooltip.java | 414 ------------------ .../abstractions/AbstractTooltip.java | 296 +++++++++++++ .../commandapi/arguments/BooleanArgument.java | 5 +- .../commandapi/arguments/DoubleArgument.java | 4 +- .../commandapi/arguments/FloatArgument.java | 4 +- .../arguments/GreedyStringArgument.java | 4 +- .../commandapi/arguments/IntegerArgument.java | 4 +- .../commandapi/arguments/LiteralArgument.java | 4 +- .../commandapi/arguments/LongArgument.java | 4 +- .../arguments/MultiLiteralArgument.java | 4 +- .../arguments/SafeOverrideableArgument.java | 5 +- .../commandapi/arguments/StringArgument.java | 4 +- .../commandapi/arguments/TextArgument.java | 4 +- .../java/dev/jorel/commandapi/Converter.java | 9 +- .../java/dev/jorel/commandapi/Tooltip.java | 165 +++++++ .../BukkitBlockCommandSender.java | 29 ++ .../BukkitConsoleCommandSender.java | 18 +- .../commandsenders/BukkitEntity.java | 29 ++ .../BukkitNativeProxyCommandSender.java | 28 ++ .../BukkitProxiedCommandSender.java | 29 ++ .../java/dev/jorel/commandapi/nms/NMS.java | 3 +- .../wrappers/SimpleFunctionWrapper.java | 12 +- 22 files changed, 623 insertions(+), 455 deletions(-) delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/Tooltip.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractTooltip.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Tooltip.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Tooltip.java deleted file mode 100644 index ca833a31e1..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Tooltip.java +++ /dev/null @@ -1,414 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi; - -import com.mojang.brigadier.LiteralMessage; -import com.mojang.brigadier.Message; -// TODO: remove references to platform-specific message formatting classes (move to bukkit implementation?) -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; - -import java.util.Arrays; -import java.util.Collection; -import java.util.function.BiFunction; -import java.util.function.Function; -import java.util.stream.Stream; - -/** - * This class represents a suggestion for an argument with a hover tooltip text - * for that suggestion. This class is parameterized over some object S that - * represents the safe cast type for argument suggestions. This class is to be - * used with safe suggestion overrides, via the - * SafeOverrideableArgument.safeOverrideSuggestionsT method. - * - * @param the object that the argument suggestions use - */ -public class Tooltip { - - private final S object; - private final Message tooltip; - - protected Tooltip(S object, Message tooltip) { - this.object = object; - this.tooltip = tooltip; - } - - /** - * Gets the suggestion for this object - * @return the suggestion for this object - */ - public S getSuggestion() { - return object; - } - - /** - * Gets the formatted tooltip for this object - * @return the formatted tooltip for this object - */ - public Message getTooltip() { - return tooltip; - } - - /** - * Constructs a Tooltip<S> with a suggestion and a tooltip - * - * @param the object that the argument suggestions use - * @param object the suggestion to provide to the user - * @param tooltip the tooltip to show to the user when they hover over the - * suggestion - * @return a Tooltip<S> representing this suggestion and tooltip - * - * @deprecated Please use {@link Tooltip#ofString(Object, String)} instead - */ - @Deprecated(forRemoval = true) - public static Tooltip of(S object, String tooltip) { - return ofString(object, tooltip); - } - - /** - * Constructs a Tooltip<S> with a suggestion and a tooltip - * - * @param the object that the argument suggestions use - * @param object the suggestion to provide to the user - * @param tooltip the tooltip to show to the user when they hover over the - * suggestion - * @return a Tooltip<S> representing this suggestion and tooltip - */ - public static Tooltip ofString(S object, String tooltip) { - return ofMessage(object, messageFromString(tooltip)); - } - - /** - * Constructs a Tooltip<S> with a suggestion and a tooltip - * - * @param the object that the argument suggestions use - * @param object the suggestion to provide to the user - * @param tooltip the tooltip to show to the user when they hover over the - * suggestion - * @return a Tooltip<S> representing this suggestion and tooltip - */ - public static Tooltip ofMessage(S object, Message tooltip) { - return new Tooltip(object, tooltip); - } - - /** - * Constructs a Tooltip<S> with a suggestion and a formatted tooltip - * - * @param the object that the argument suggestions use - * @param object the suggestion to provide to the user - * @param tooltip the formatted tooltip to show to the user when they hover over the - * suggestion - * @return a Tooltip<S> representing this suggestion and tooltip - */ - public static Tooltip ofBaseComponents(S object, BaseComponent... tooltip) { - return ofMessage(object, messageFromBaseComponents(tooltip)); - } - - /** - * Constructs a Tooltip<S> with a suggestion and a formatted tooltip - * - * @param the object that the argument suggestions use - * @param object the suggestion to provide to the user - * @param tooltip the formatted tooltip to show to the user when they hover over the - * suggestion - * @return a Tooltip<S> representing this suggestion and tooltip - */ - public static Tooltip ofAdventureComponent(S object, Component tooltip) { - return ofMessage(object, messageFromAdventureComponent(tooltip)); - } - - /** - * Constructs a Tooltip<S> with a suggestion and no tooltip - * - * @param the object that the argument suggestions use - * @param object the suggestion to provide to the user - * @return a Tooltip<S> representing this suggestion - */ - public static Tooltip none(S object) { - return new Tooltip<>(object, null); - } - - /** - * Constructs a collection of {@link Tooltip} objects from an array of suggestions, and no tooltips - * - * @param the object that the argument suggestions use - * @param suggestions array of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the suggestions, with no tooltips - */ - @SafeVarargs - public static Collection> none(S... suggestions) { - return generate(S::toString, (s, t) -> Tooltip.none(s), suggestions); - } - - /** - * Constructs a collection of {@link Tooltip} objects from a collection of suggestions, and no tooltips - * - * @param the object that the argument suggestions use - * @param suggestions collection of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the suggestions, with no tooltips - */ - public static Collection> none(Collection suggestions) { - return generate(S::toString, (s, t) -> Tooltip.none(s), suggestions); - - } - - /** - * Constructs a collection of {@link Tooltip} objects from an array of suggestions, and a function which generates a - * string tooltip for each suggestion - * - * @param the object that the argument suggestions use - * @param tooltipGenerator function which returns a string tooltip for the suggestion - * @param suggestions array of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the provided suggestions, with the generated string tooltips - */ - @SafeVarargs - public static Collection> generateStrings(Function tooltipGenerator, S... suggestions) { - return generate(tooltipGenerator, Tooltip::ofString, suggestions); - } - - /** - * Constructs a collection of {@link Tooltip} objects from a collection of suggestions, and a function which generates a - * string tooltip for each suggestion - * - * @param the object that the argument suggestions use - * @param tooltipGenerator function which returns a string tooltip for the suggestion - * @param suggestions collection of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the provided suggestions, with the generated string tooltips - */ - public static Collection> generateStrings(Function tooltipGenerator, Collection suggestions) { - return generate(tooltipGenerator, Tooltip::ofString, suggestions); - } - - /** - * Constructs a collection of {@link Tooltip} objects from an array of suggestions, and a function which generates a - * formatted tooltip for each suggestion - * - * @param the object that the argument suggestions use - * @param tooltipGenerator function which returns a formatted tooltip for the suggestion - * @param suggestions array of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the provided suggestions, with the generated formatted - * tooltips - */ - @SafeVarargs - public static Collection> generateMessages(Function tooltipGenerator, S... suggestions) { - return generate(tooltipGenerator, Tooltip::ofMessage, suggestions); - } - - /** - * Constructs a collection of {@link Tooltip} objects from an collection of suggestions, and a function which generates a - * formatted tooltip for each suggestion - * - * @param the object that the argument suggestions use - * @param tooltipGenerator function which returns a formatted tooltip for the suggestion - * @param suggestions collection of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the provided suggestions, with the generated formatted - * tooltips - */ - public static Collection> generateMessages(Function tooltipGenerator, Collection suggestions) { - return generate(tooltipGenerator, Tooltip::ofMessage, suggestions); - } - - /** - * Constructs a collection of {@link Tooltip} objects from an array of suggestions, and a function which generates a - * tooltip formatted as an array of {@link BaseComponent}s for each suggestion - * - * @param the object that the argument suggestions use - * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an array of {@link BaseComponent}s - * @param suggestions array of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the provided suggestions, with the generated formatted - * tooltips - */ - @SafeVarargs - public static Collection> generateBaseComponents(Function tooltipGenerator, S... suggestions) { - return generate(tooltipGenerator, Tooltip::ofBaseComponents, suggestions); - } - - /** - * Constructs a collection of {@link Tooltip} objects from a collection of suggestions, and a function which generates a - * tooltip formatted as an array of {@link BaseComponent}s for each suggestion - * - * @param the object that the argument suggestions use - * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an array of {@link BaseComponent}s - * @param suggestions collection of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the provided suggestions, with the generated formatted - * tooltips - */ - public static Collection> generateBaseComponents(Function tooltipGenerator, Collection suggestions) { - return generate(tooltipGenerator, Tooltip::ofBaseComponents, suggestions); - } - - /** - * Constructs a collection of {@link Tooltip} objects from an array of suggestions, and a function which generates a - * tooltip formatted as an adventure {@link Component} for each suggestion - * - * @param the object that the argument suggestions use - * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an adventure {@link Component} - * @param suggestions array of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the provided suggestions, with the generated formatted - * tooltips - */ - @SafeVarargs - public static Collection> generateAdvenureComponents(Function tooltipGenerator, S... suggestions) { - return generate(tooltipGenerator, Tooltip::ofAdventureComponent, suggestions); - } - - /** - * Constructs a collection of {@link Tooltip} objects from a collection of suggestions, and a function which generates a - * tooltip formatted as an adventure {@link Component} for each suggestion - * - * @param the object that the argument suggestions use - * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an adventure {@link Component} - * @param suggestions collection of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the provided suggestions, with the generated formatted - * tooltips - */ - public static Collection> generateAdvenureComponents(Function tooltipGenerator, Collection suggestions) { - return generate(tooltipGenerator, Tooltip::ofAdventureComponent, suggestions); - } - - /** - * Internal base method for the other generation types, for processing arrays - * - * @param the object that the argument suggestions use - * @param the type of the tooltip - * @param tooltipGenerator tooltip generation function - * @param tooltipWrapper function which wraps suggestion and tooltip into a {@link Tooltip} object - * @param suggestions array of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the provided suggestion, wrapped using the above functions - */ - @SafeVarargs - private static Collection> generate(Function tooltipGenerator, BiFunction> tooltipWrapper, S... suggestions) { - return generate(tooltipGenerator, tooltipWrapper, Arrays.stream(suggestions)); - } - - /** - * Internal base method for the other generation types, for processing collections - * - * @param the object that the argument suggestions use - * @param the type of the tooltip - * @param tooltipGenerator tooltip generation function - * @param tooltipWrapper function which wraps suggestion and tooltip into a {@link Tooltip} object - * @param suggestions collection of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the provided suggestion, wrapped using the above functions - */ - private static Collection> generate(Function tooltipGenerator, BiFunction> tooltipWrapper, Collection suggestions) { - return generate(tooltipGenerator, tooltipWrapper, suggestions.stream()); - } - - /** - * Internal base method for the other generation types, for processing streams - * - * @param the object that the argument suggestions use - * @param the type of the tooltip - * @param tooltipGenerator tooltip generation function - * @param tooltipWrapper function which wraps suggestion and tooltip into a {@link Tooltip} object - * @param suggestions stream of suggestions to provide to the user - * - * @return a collection of {@link Tooltip} objects from the provided suggestion, wrapped using the above functions - */ - private static Collection> generate(Function tooltipGenerator, BiFunction> tooltipWrapper, Stream suggestions) { - return suggestions.map(suggestion -> tooltipWrapper.apply(suggestion,tooltipGenerator.apply(suggestion))).toList(); - } - - /** - * Constructs a Tooltip<S>[] from an array of Tooltip<S> via varargs. This - * method takes advantage of Java's varargs to construct a generic array - * parameterised over S for the purpose of type safety for the - * safeOverrideSuggestionsT method, because Java doesn't allow you to create generic arrays. - * - * @param the object that the argument suggestions use - * @param tooltips an array of Tooltip<S> to be converted into Tooltip<S>[] - * @return a Tooltip<S>[] from the provided Tooltip<S> - */ - @SafeVarargs - public static Tooltip[] arrayOf(Tooltip... tooltips) { - return tooltips; - } - - /** - * Constructs a function that maps the current Tooltip<S> into a StringTooltip, - * using a standard mapping function which is defined for a given argument. This - * method is used internally by the CommandAPI. - * - * @param the object that the argument suggestions use - * @param mapper a mapping function that converts an S instance into a String - * @return the mapping function from this tooltip into a StringTooltip - */ - public static Function, StringTooltip> build(Function mapper) { - return t -> StringTooltip.ofMessage(mapper.apply(t.object), t.tooltip); - } - - /** - * Converts an unformatted string to an unformatted tooltip by wrapping as with a {@link LiteralMessage}. - * - * If formatting is required, please see {@link #messageFromBaseComponents(BaseComponent...)}, - * or consider using the more modern adventure text api. - * - * @param string unformatted string tooltip - * @return wrapped tooltip as a {@link LiteralMessage} - */ - public static Message messageFromString(String string) { - return new LiteralMessage(string); - } - - /** - * Converts a formatted bungee text component to a native minecraft text component which can be used natively by brigadier. - * - * This supports all forms of formatting including entity selectors, scores, - * click & hover events, translations, keybinds and more. - * - * Note: the bungee component api is deprecated, and the adventure text component api should be used instead - * - * @param components array of bungee text components - * @return native minecraft message object which can be used natively by brigadier. - */ - public static Message messageFromBaseComponents(BaseComponent... components) { - return CommandAPIHandler.getInstance().getNMS().generateMessageFromJson(ComponentSerializer.toString(components)); - } - - /** - * Converts a formatted adventure text component to a native minecraft text component which can be used natively by brigadier. - * - * This supports all forms of formatting including entity selectors, scores, - * click & hover events, translations, keybinds and more. - ** - * @param component adventure text component - * @return native minecraft message object which can be used natively by brigadier. - */ - public static Message messageFromAdventureComponent(Component component) { - return CommandAPIHandler.getInstance().getNMS().generateMessageFromJson(GsonComponentSerializer.gson().serialize(component)); - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractTooltip.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractTooltip.java new file mode 100644 index 0000000000..47172cf585 --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractTooltip.java @@ -0,0 +1,296 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.abstractions; + +import java.util.Arrays; +import java.util.Collection; +import java.util.function.BiFunction; +import java.util.function.Function; +import java.util.stream.Stream; + +import com.mojang.brigadier.LiteralMessage; +import com.mojang.brigadier.Message; + +import dev.jorel.commandapi.StringTooltip; + +/** + * This class represents a suggestion for an argument with a hover tooltip text + * for that suggestion. This class is parameterized over some object S that + * represents the safe cast type for argument suggestions. This class is to be + * used with safe suggestion overrides, via the + * SafeOverrideableArgument.safeOverrideSuggestionsT method. + * + * @param the object that the argument suggestions use + */ +public class AbstractTooltip { + + private final S object; + private final Message tooltip; + + protected AbstractTooltip(S object, Message tooltip) { + this.object = object; + this.tooltip = tooltip; + } + + /** + * Gets the suggestion for this object + * @return the suggestion for this object + */ + public S getSuggestion() { + return object; + } + + /** + * Gets the formatted tooltip for this object + * @return the formatted tooltip for this object + */ + public Message getTooltip() { + return tooltip; + } + + /** + * Constructs a Tooltip<S> with a suggestion and a tooltip + * + * @param the object that the argument suggestions use + * @param object the suggestion to provide to the user + * @param tooltip the tooltip to show to the user when they hover over the + * suggestion + * @return a Tooltip<S> representing this suggestion and tooltip + * + * @deprecated Please use {@link AbstractTooltip#ofString(Object, String)} instead + */ + @Deprecated(forRemoval = true) + public static AbstractTooltip of(S object, String tooltip) { + return ofString(object, tooltip); + } + + /** + * Constructs a Tooltip<S> with a suggestion and a tooltip + * + * @param the object that the argument suggestions use + * @param object the suggestion to provide to the user + * @param tooltip the tooltip to show to the user when they hover over the + * suggestion + * @return a Tooltip<S> representing this suggestion and tooltip + */ + public static AbstractTooltip ofString(S object, String tooltip) { + return ofMessage(object, messageFromString(tooltip)); + } + + /** + * Constructs a Tooltip<S> with a suggestion and a tooltip + * + * @param the object that the argument suggestions use + * @param object the suggestion to provide to the user + * @param tooltip the tooltip to show to the user when they hover over the + * suggestion + * @return a Tooltip<S> representing this suggestion and tooltip + */ + public static AbstractTooltip ofMessage(S object, Message tooltip) { + return new AbstractTooltip(object, tooltip); + } + + /** + * Constructs a Tooltip<S> with a suggestion and no tooltip + * + * @param the object that the argument suggestions use + * @param object the suggestion to provide to the user + * @return a Tooltip<S> representing this suggestion + */ + public static AbstractTooltip none(S object) { + return new AbstractTooltip<>(object, null); + } + + /** + * Constructs a collection of {@link AbstractTooltip} objects from an array of suggestions, and no tooltips + * + * @param the object that the argument suggestions use + * @param suggestions array of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the suggestions, with no tooltips + */ + @SafeVarargs + public static Collection> none(S... suggestions) { + return generate(S::toString, (s, t) -> AbstractTooltip.none(s), suggestions); + } + + /** + * Constructs a collection of {@link AbstractTooltip} objects from a collection of suggestions, and no tooltips + * + * @param the object that the argument suggestions use + * @param suggestions collection of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the suggestions, with no tooltips + */ + public static Collection> none(Collection suggestions) { + return generate(S::toString, (s, t) -> AbstractTooltip.none(s), suggestions); + + } + + /** + * Constructs a collection of {@link AbstractTooltip} objects from an array of suggestions, and a function which generates a + * string tooltip for each suggestion + * + * @param the object that the argument suggestions use + * @param tooltipGenerator function which returns a string tooltip for the suggestion + * @param suggestions array of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the provided suggestions, with the generated string tooltips + */ + @SafeVarargs + public static Collection> generateStrings(Function tooltipGenerator, S... suggestions) { + return generate(tooltipGenerator, AbstractTooltip::ofString, suggestions); + } + + /** + * Constructs a collection of {@link AbstractTooltip} objects from a collection of suggestions, and a function which generates a + * string tooltip for each suggestion + * + * @param the object that the argument suggestions use + * @param tooltipGenerator function which returns a string tooltip for the suggestion + * @param suggestions collection of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the provided suggestions, with the generated string tooltips + */ + public static Collection> generateStrings(Function tooltipGenerator, Collection suggestions) { + return generate(tooltipGenerator, AbstractTooltip::ofString, suggestions); + } + + /** + * Constructs a collection of {@link AbstractTooltip} objects from an array of suggestions, and a function which generates a + * formatted tooltip for each suggestion + * + * @param the object that the argument suggestions use + * @param tooltipGenerator function which returns a formatted tooltip for the suggestion + * @param suggestions array of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the provided suggestions, with the generated formatted + * tooltips + */ + @SafeVarargs + public static Collection> generateMessages(Function tooltipGenerator, S... suggestions) { + return generate(tooltipGenerator, AbstractTooltip::ofMessage, suggestions); + } + + /** + * Constructs a collection of {@link AbstractTooltip} objects from an collection of suggestions, and a function which generates a + * formatted tooltip for each suggestion + * + * @param the object that the argument suggestions use + * @param tooltipGenerator function which returns a formatted tooltip for the suggestion + * @param suggestions collection of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the provided suggestions, with the generated formatted + * tooltips + */ + public static Collection> generateMessages(Function tooltipGenerator, Collection suggestions) { + return generate(tooltipGenerator, AbstractTooltip::ofMessage, suggestions); + } + + /** + * Internal base method for the other generation types, for processing arrays + * + * @param the object that the argument suggestions use + * @param the type of the tooltip + * @param tooltipGenerator tooltip generation function + * @param tooltipWrapper function which wraps suggestion and tooltip into a {@link AbstractTooltip} object + * @param suggestions array of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the provided suggestion, wrapped using the above functions + */ + @SafeVarargs + protected + static Collection> generate(Function tooltipGenerator, BiFunction> tooltipWrapper, S... suggestions) { + return generate(tooltipGenerator, tooltipWrapper, Arrays.stream(suggestions)); + } + + /** + * Internal base method for the other generation types, for processing collections + * + * @param the object that the argument suggestions use + * @param the type of the tooltip + * @param tooltipGenerator tooltip generation function + * @param tooltipWrapper function which wraps suggestion and tooltip into a {@link AbstractTooltip} object + * @param suggestions collection of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the provided suggestion, wrapped using the above functions + */ + protected static Collection> generate(Function tooltipGenerator, BiFunction> tooltipWrapper, Collection suggestions) { + return generate(tooltipGenerator, tooltipWrapper, suggestions.stream()); + } + + /** + * Internal base method for the other generation types, for processing streams + * + * @param the object that the argument suggestions use + * @param the type of the tooltip + * @param tooltipGenerator tooltip generation function + * @param tooltipWrapper function which wraps suggestion and tooltip into a {@link AbstractTooltip} object + * @param suggestions stream of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the provided suggestion, wrapped using the above functions + */ + private static Collection> generate(Function tooltipGenerator, BiFunction> tooltipWrapper, Stream suggestions) { + return suggestions.map(suggestion -> tooltipWrapper.apply(suggestion,tooltipGenerator.apply(suggestion))).toList(); + } + + /** + * Constructs a Tooltip<S>[] from an array of Tooltip<S> via varargs. This + * method takes advantage of Java's varargs to construct a generic array + * parameterised over S for the purpose of type safety for the + * safeOverrideSuggestionsT method, because Java doesn't allow you to create generic arrays. + * + * @param the object that the argument suggestions use + * @param tooltips an array of Tooltip<S> to be converted into Tooltip<S>[] + * @return a Tooltip<S>[] from the provided Tooltip<S> + */ + @SafeVarargs + public static AbstractTooltip[] arrayOf(AbstractTooltip... tooltips) { + return tooltips; + } + + /** + * Constructs a function that maps the current Tooltip<S> into a StringTooltip, + * using a standard mapping function which is defined for a given argument. This + * method is used internally by the CommandAPI. + * + * @param the object that the argument suggestions use + * @param mapper a mapping function that converts an S instance into a String + * @return the mapping function from this tooltip into a StringTooltip + */ + public static Function, StringTooltip> build(Function mapper) { + return t -> StringTooltip.ofMessage(mapper.apply(t.object), t.tooltip); + } + + /** + * Converts an unformatted string to an unformatted tooltip by wrapping as with a {@link LiteralMessage}. + * + * If formatting is required, please see {@link #messageFromBaseComponents(BaseComponent...)}, + * or consider using the more modern adventure text api. + * + * @param string unformatted string tooltip + * @return wrapped tooltip as a {@link LiteralMessage} + */ + public static Message messageFromString(String string) { + return new LiteralMessage(string); + } + +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java index 146f800504..6157450c5a 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -53,9 +53,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Boolean parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) - throws CommandSyntaxException { + public Boolean parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) + throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java index e0f7d3bb0c..5a1b03ca00 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -78,8 +78,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Double parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public Double parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java index 32f2e18bd7..470150630f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -73,8 +73,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Float parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java index 628cdc550a..9fadfb2875 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -50,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java index f3b491b6ea..68f979ecc8 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -73,8 +73,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Integer parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index 42802456c7..70acc5f9fb 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -76,8 +76,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return literal; } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java index 68a9a53a1e..1491314f2f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -73,8 +73,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Long parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Long parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index f12dbb8a67..cd9bf1a9fe 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -67,8 +67,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { throw new IllegalStateException("Cannot parse MultiLiteralArgument"); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java index 895d82246e..162737b6f5 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java @@ -20,13 +20,14 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import java.util.function.Function; + import com.mojang.brigadier.arguments.ArgumentType; + import dev.jorel.commandapi.SuggestionInfo; import dev.jorel.commandapi.Tooltip; import dev.jorel.commandapi.attributes.KeyedObject; -import java.util.function.Function; - /** * An interface declaring methods required to override argument suggestions * diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java index ecdd269858..861fe77ef4 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -50,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java index dbed43531c..6f71d94966 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -50,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java index 429ee22a9f..7dee3488b3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java @@ -129,7 +129,7 @@ private static void convertCommand(String commandName, List> argumen // No arguments new CommandAPICommand(commandName).withPermission(CommandPermission.NONE).executesNative((sender, args) -> { - Bukkit.dispatchCommand(mergeProxySender(sender), commandName); + Bukkit.dispatchCommand(mergeProxySender((NativeProxyCommandSender) sender.getSource()), commandName); }).register(); // Multiple arguments @@ -137,7 +137,7 @@ private static void convertCommand(String commandName, List> argumen .withArguments(arguments).executesNative((sender, args) -> { // We know the args are a String[] because that's how converted things are // handled in generateCommand() - CommandSender proxiedSender = mergeProxySender(sender); + CommandSender proxiedSender = mergeProxySender((NativeProxyCommandSender) sender.getSource()); Bukkit.dispatchCommand(proxiedSender, commandName + " " + String.join(" ", (String[]) args)); }); @@ -189,11 +189,12 @@ private static void convertPluginCommand(JavaPlugin plugin, String commandName, permissionNode = CommandPermission.fromString(permission); } - NativeCommandExecutor executor = (sender, args) -> { + NativeCommandExecutor executor = (abstractSender, args) -> { + NativeProxyCommandSender sender = (NativeProxyCommandSender) abstractSender.getSource(); org.bukkit.command.Command command = plugin.getCommand(commandName); if (command == null) { - command = CommandAPIHandler.getInstance().getNMS().getSimpleCommandMap() + command = BukkitPlatform.get().getSimpleCommandMap() .getCommand(commandName); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java new file mode 100644 index 0000000000..91d5173142 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java @@ -0,0 +1,165 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi; + +import java.util.Collection; +import java.util.function.Function; + +import com.mojang.brigadier.Message; + +import dev.jorel.commandapi.abstractions.AbstractTooltip; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; + +/** + * This class represents a suggestion for an argument with a hover tooltip text + * for that suggestion. This class is parameterized over some object S that + * represents the safe cast type for argument suggestions. This class is to be + * used with safe suggestion overrides, via the + * SafeOverrideableArgument.safeOverrideSuggestionsT method. + * + * @param the object that the argument suggestions use + */ +public class Tooltip extends AbstractTooltip { + + protected Tooltip(S object, Message tooltip) { + super(object, tooltip); + } + + /** + * Constructs a collection of {@link AbstractTooltip} objects from an array of suggestions, and a function which generates a + * tooltip formatted as an array of {@link BaseComponent}s for each suggestion + * + * @param the object that the argument suggestions use + * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an array of {@link BaseComponent}s + * @param suggestions array of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the provided suggestions, with the generated formatted + * tooltips + */ + @SafeVarargs + public static Collection> generateBaseComponents(Function tooltipGenerator, S... suggestions) { + return generate(tooltipGenerator, Tooltip::ofBaseComponents, suggestions); + } + + /** + * Constructs a collection of {@link AbstractTooltip} objects from a collection of suggestions, and a function which generates a + * tooltip formatted as an array of {@link BaseComponent}s for each suggestion + * + * @param the object that the argument suggestions use + * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an array of {@link BaseComponent}s + * @param suggestions collection of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the provided suggestions, with the generated formatted + * tooltips + */ + public static Collection> generateBaseComponents(Function tooltipGenerator, Collection suggestions) { + return generate(tooltipGenerator, Tooltip::ofBaseComponents, suggestions); + } + + /** + * Constructs a collection of {@link AbstractTooltip} objects from an array of suggestions, and a function which generates a + * tooltip formatted as an adventure {@link Component} for each suggestion + * + * @param the object that the argument suggestions use + * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an adventure {@link Component} + * @param suggestions array of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the provided suggestions, with the generated formatted + * tooltips + */ + @SafeVarargs + public static Collection> generateAdvenureComponents(Function tooltipGenerator, S... suggestions) { + return generate(tooltipGenerator, Tooltip::ofAdventureComponent, suggestions); + } + + /** + * Constructs a collection of {@link AbstractTooltip} objects from a collection of suggestions, and a function which generates a + * tooltip formatted as an adventure {@link Component} for each suggestion + * + * @param the object that the argument suggestions use + * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an adventure {@link Component} + * @param suggestions collection of suggestions to provide to the user + * + * @return a collection of {@link AbstractTooltip} objects from the provided suggestions, with the generated formatted + * tooltips + */ + public static Collection> generateAdvenureComponents(Function tooltipGenerator, Collection suggestions) { + return generate(tooltipGenerator, Tooltip::ofAdventureComponent, suggestions); + } + + /** + * Constructs a Tooltip<S> with a suggestion and a formatted tooltip + * + * @param the object that the argument suggestions use + * @param object the suggestion to provide to the user + * @param tooltip the formatted tooltip to show to the user when they hover over the + * suggestion + * @return a Tooltip<S> representing this suggestion and tooltip + */ + public static AbstractTooltip ofBaseComponents(S object, BaseComponent... tooltip) { + return ofMessage(object, messageFromBaseComponents(tooltip)); + } + + /** + * Constructs a Tooltip<S> with a suggestion and a formatted tooltip + * + * @param the object that the argument suggestions use + * @param object the suggestion to provide to the user + * @param tooltip the formatted tooltip to show to the user when they hover over the + * suggestion + * @return a Tooltip<S> representing this suggestion and tooltip + */ + public static AbstractTooltip ofAdventureComponent(S object, Component tooltip) { + return ofMessage(object, messageFromAdventureComponent(tooltip)); + } + + /** + * Converts a formatted bungee text component to a native minecraft text component which can be used natively by brigadier. + * + * This supports all forms of formatting including entity selectors, scores, + * click & hover events, translations, keybinds and more. + * + * Note: the bungee component api is deprecated, and the adventure text component api should be used instead + * + * @param components array of bungee text components + * @return native minecraft message object which can be used natively by brigadier. + */ + public static Message messageFromBaseComponents(BaseComponent... components) { + return CommandAPIHandler.getInstance().getNMS().generateMessageFromJson(ComponentSerializer.toString(components)); + } + + /** + * Converts a formatted adventure text component to a native minecraft text component which can be used natively by brigadier. + * + * This supports all forms of formatting including entity selectors, scores, + * click & hover events, translations, keybinds and more. + ** + * @param component adventure text component + * @return native minecraft message object which can be used natively by brigadier. + */ + public static Message messageFromAdventureComponent(Component component) { + return CommandAPIHandler.getInstance().getNMS().generateMessageFromJson(GsonComponentSerializer.gson().serialize(component)); + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java new file mode 100644 index 0000000000..23051321f1 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java @@ -0,0 +1,29 @@ +package dev.jorel.commandapi.commandsenders; +import org.bukkit.command.BlockCommandSender; + +import dev.jorel.commandapi.abstractions.AbstractPlayer; + +public class BukkitBlockCommandSender extends AbstractPlayer { + + private final BlockCommandSender commandBlock; + + public BukkitBlockCommandSender(BlockCommandSender commandBlock) { + this.commandBlock = commandBlock; + } + + @Override + public boolean hasPermission(String permissionNode) { + return this.commandBlock.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + return this.commandBlock.isOp(); + } + + @Override + public BlockCommandSender getSource() { + return this.commandBlock; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java index 25f98e2e18..5a6b62fead 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java @@ -1,24 +1,30 @@ package dev.jorel.commandapi.commandsenders; + import org.bukkit.command.ConsoleCommandSender; import dev.jorel.commandapi.abstractions.AbstractConsoleCommandSender; -public class BukkitConsoleCommandSender extends AbstractConsoleCommandSender { +public class BukkitConsoleCommandSender extends AbstractConsoleCommandSender { + + private final ConsoleCommandSender sender; - ConsoleCommandSender sender; - public BukkitConsoleCommandSender(ConsoleCommandSender sender) { this.sender = sender; } - + @Override public boolean hasPermission(String permissionNode) { return sender.hasPermission(permissionNode); } - + @Override public boolean isOp() { return sender.isOp(); } - + + @Override + public ConsoleCommandSender getSource() { + return sender; + } + } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java new file mode 100644 index 0000000000..2a3badc534 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java @@ -0,0 +1,29 @@ +package dev.jorel.commandapi.commandsenders; +import org.bukkit.entity.Entity; + +import dev.jorel.commandapi.abstractions.AbstractEntity; + +public class BukkitEntity extends AbstractEntity { + + private final Entity entity; + + public BukkitEntity(Entity entity) { + this.entity = entity; + } + + @Override + public boolean hasPermission(String permissionNode) { + return this.entity.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + return this.entity.isOp(); + } + + @Override + public Entity getSource() { + return this.entity; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java new file mode 100644 index 0000000000..4f552976d5 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java @@ -0,0 +1,28 @@ +package dev.jorel.commandapi.commandsenders; +import dev.jorel.commandapi.abstractions.AbstractPlayer; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; + +public class BukkitNativeProxyCommandSender extends AbstractPlayer { + + private final NativeProxyCommandSender proxySender; + + public BukkitNativeProxyCommandSender(NativeProxyCommandSender player) { + this.proxySender = player; + } + + @Override + public boolean hasPermission(String permissionNode) { + return this.proxySender.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + return this.proxySender.isOp(); + } + + @Override + public NativeProxyCommandSender getSource() { + return this.proxySender; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java new file mode 100644 index 0000000000..d55f8c9e5f --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java @@ -0,0 +1,29 @@ +package dev.jorel.commandapi.commandsenders; +import org.bukkit.command.ProxiedCommandSender; + +import dev.jorel.commandapi.abstractions.AbstractPlayer; + +public class BukkitProxiedCommandSender extends AbstractPlayer { + + private final ProxiedCommandSender proxySender; + + public BukkitProxiedCommandSender(ProxiedCommandSender player) { + this.proxySender = player; + } + + @Override + public boolean hasPermission(String permissionNode) { + return this.proxySender.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + return this.proxySender.isOp(); + } + + @Override + public ProxiedCommandSender getSource() { + return this.proxySender; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java index 5d0479321d..09612a548a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java @@ -30,7 +30,6 @@ import java.util.function.Function; import java.util.function.Predicate; -import com.mojang.brigadier.Message; import org.bukkit.Axis; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -40,7 +39,6 @@ import org.bukkit.Sound; import org.bukkit.World; import org.bukkit.World.Environment; -import org.bukkit.advancement.Advancement; import org.bukkit.block.Biome; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; @@ -58,6 +56,7 @@ import org.bukkit.potion.PotionEffectType; import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.Message; import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java index 22e27b1882..170579d8f3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java @@ -27,7 +27,7 @@ import org.bukkit.NamespacedKey; import org.bukkit.command.CommandSender; -import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.BukkitPlatform; /** * A wrapper class for Minecraft 1.12's functions @@ -63,7 +63,7 @@ public SimpleFunctionWrapper(NamespacedKey minecraftKey, @SuppressWarnings("rawt * @return a SimpleFunctionWrapper[], which is an array of all of the functions that this tag contains */ public static SimpleFunctionWrapper[] getTag(NamespacedKey key) { - return CommandAPIHandler.getInstance().getNMS().getTag(key); + return BukkitPlatform.get().getTag(key); } /** @@ -72,7 +72,7 @@ public static SimpleFunctionWrapper[] getTag(NamespacedKey key) { * @return a SimpleFunctionWrapper representation of the Minecraft function for the provided NamespacedKey */ public static SimpleFunctionWrapper getFunction(NamespacedKey key) { - return CommandAPIHandler.getInstance().getNMS().getFunction(key); + return BukkitPlatform.get().getFunction(key); } /** @@ -80,7 +80,7 @@ public static SimpleFunctionWrapper getFunction(NamespacedKey key) { * @return a set of all functions that the server has registered */ public static Set getFunctions() { - return CommandAPIHandler.getInstance().getNMS().getFunctions(); + return BukkitPlatform.get().getFunctions(); } /** @@ -88,7 +88,7 @@ public static Set getFunctions() { * @return a set of all tags that the server has registered */ public static Set getTags() { - return CommandAPIHandler.getInstance().getNMS().getTags(); + return BukkitPlatform.get().getTags(); } /** @@ -97,7 +97,7 @@ public static Set getTags() { * @return the result of running this command */ public int run(CommandSender sender) { - return runInternal(CommandAPIHandler.getInstance().getNMS().getCLWFromCommandSender(sender)); + return runInternal(BukkitPlatform.get().getCLWFromCommandSender(sender)); } /** From e90028ed346f31edd247ffd90557c5d00401c7e6 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 10 Oct 2022 15:23:09 -0400 Subject: [PATCH 025/638] Fix AbstractBlockCommandSender by parameterizing it Fix BukkitBlockCommandSender by making it extend AbstractBlockCommandSender (not AbstractPlayer) --- .../commandapi/abstractions/AbstractBlockCommandSender.java | 2 +- .../commandapi/commandsenders/BukkitBlockCommandSender.java | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java index c8e20af6ea..f4c9e6e05d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java @@ -1,4 +1,4 @@ package dev.jorel.commandapi.abstractions; -public abstract class AbstractBlockCommandSender implements AbstractCommandSender { +public abstract class AbstractBlockCommandSender implements AbstractCommandSender { } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java index 23051321f1..1fda841d5e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java @@ -1,9 +1,9 @@ package dev.jorel.commandapi.commandsenders; -import org.bukkit.command.BlockCommandSender; -import dev.jorel.commandapi.abstractions.AbstractPlayer; +import dev.jorel.commandapi.abstractions.AbstractBlockCommandSender; +import org.bukkit.command.BlockCommandSender; -public class BukkitBlockCommandSender extends AbstractPlayer { +public class BukkitBlockCommandSender extends AbstractBlockCommandSender { private final BlockCommandSender commandBlock; From b252b8dacd06dfb2f0ddaca8d8bfe9a47fd18a49 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Mon, 10 Oct 2022 22:30:58 +0100 Subject: [PATCH 026/638] Remove KeyedObject (revert 87b74a5) and moved SafeOverrideableArgument.fromKey to BukkitPlatform (for now?) --- .../arguments/SafeOverrideableArgument.java | 20 ++----------- .../commandapi/arguments/SafeSuggestions.java | 28 +++++++++---------- .../commandapi/attributes/KeyedObject.java | 15 ---------- .../dev/jorel/commandapi/BukkitPlatform.java | 21 ++++++++++++++ .../arguments/AdvancementArgument.java | 12 ++++---- .../commandapi/arguments/CustomArgument.java | 8 +++--- .../arguments/EnchantmentArgument.java | 3 +- .../arguments/EntityTypeArgument.java | 3 +- .../arguments/FunctionArgument.java | 3 +- .../arguments/LootTableArgument.java | 3 +- .../commandapi/arguments/RecipeArgument.java | 3 +- .../java/dev/jorel/commandapi/nms/NMS.java | 4 +-- 12 files changed, 54 insertions(+), 69 deletions(-) delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/attributes/KeyedObject.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java index 162737b6f5..ccb8844136 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java @@ -25,8 +25,7 @@ import com.mojang.brigadier.arguments.ArgumentType; import dev.jorel.commandapi.SuggestionInfo; -import dev.jorel.commandapi.Tooltip; -import dev.jorel.commandapi.attributes.KeyedObject; +import dev.jorel.commandapi.abstractions.AbstractTooltip; /** * An interface declaring methods required to override argument suggestions @@ -89,7 +88,7 @@ public final Argument replaceWithSafeSuggestions(Function replaceWithSafeSuggestionsT(Function[]> suggestions) { + public final Argument replaceWithSafeSuggestionsT(Function[]> suggestions) { return replaceSafeSuggestions(SafeSuggestions.tooltips(suggestions)); } @@ -135,21 +134,8 @@ public final Argument includeWithSafeSuggestions(Function includeWithSafeSuggestionsT(Function[]> suggestions) { + public final Argument includeWithSafeSuggestionsT(Function[]> suggestions) { return includeSafeSuggestions(SafeSuggestions.tooltips(suggestions)); } - /** - * Composes a S to a NamespacedKey mapping function to - * convert S to a String - * - * @param mapper the mapping function from S to - * NamespacedKey - * @return a composed function that converts S to - * String - */ - static Function fromKey(Function mapper) { - return mapper.andThen(KeyedObject::toString); - } - } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java index 4625428a1a..3e1ae1e01c 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java @@ -1,15 +1,15 @@ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.IStringTooltip; -import dev.jorel.commandapi.SuggestionInfo; -import dev.jorel.commandapi.Tooltip; - import java.util.Arrays; import java.util.Collection; import java.util.concurrent.CompletableFuture; import java.util.function.Function; import java.util.stream.Stream; +import dev.jorel.commandapi.IStringTooltip; +import dev.jorel.commandapi.SuggestionInfo; +import dev.jorel.commandapi.abstractions.AbstractTooltip; + /** * This class represents safe suggestions. These are parameterized suggestions which can be converted * into a string under a mapping function. @@ -126,7 +126,7 @@ static SafeSuggestions suggestCollectionAsync(Function SafeSuggestions tooltips(Tooltip... suggestions) { + static SafeSuggestions tooltips(AbstractTooltip... suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltips(toStringsWithTooltips(mapper, suggestions)); } @@ -138,7 +138,7 @@ static SafeSuggestions tooltips(Tooltip... suggestions) { * * @return a SafeSuggestion object suggesting the hardcoded values */ - static SafeSuggestions tooltips(Collection> suggestions) { + static SafeSuggestions tooltips(Collection> suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltips(toStringsWithTooltips(mapper, suggestions)); } @@ -150,7 +150,7 @@ static SafeSuggestions tooltips(Collection> suggestions) { * * @return a SafeSuggestion object suggesting the result of the function */ - static SafeSuggestions tooltips(Function[]> suggestions) { + static SafeSuggestions tooltips(Function[]> suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltipsCollection(info -> toStringsWithTooltips(mapper, suggestions.apply(info) )); @@ -164,7 +164,7 @@ static SafeSuggestions tooltips(Function[]> su * * @return a SafeSuggestion object suggesting the result of the function */ - static SafeSuggestions tooltipCollection(Function>> suggestions) { + static SafeSuggestions tooltipCollection(Function>> suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltipsCollection(info -> toStringsWithTooltips(mapper, suggestions.apply(info) )); @@ -178,7 +178,7 @@ static SafeSuggestions tooltipCollection(Function SafeSuggestions tooltipsAsync(Function[]>> suggestions) { + static SafeSuggestions tooltipsAsync(Function[]>> suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltipsCollectionAsync(info -> suggestions .apply(info) .thenApply(items -> toStringsWithTooltips(mapper, items))); @@ -192,7 +192,7 @@ static SafeSuggestions tooltipsAsync(Function SafeSuggestions tooltipCollectionAsync(Function>>> suggestions) { + static SafeSuggestions tooltipCollectionAsync(Function>>> suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltipsCollectionAsync(info -> suggestions .apply(info) .thenApply(items -> toStringsWithTooltips(mapper, items))); @@ -236,7 +236,7 @@ private static Collection toStrings(Function mapper, Coll * @return array of strings with tooltips representing the array of values with tooltips under the mapping function */ @SafeVarargs - private static Collection toStringsWithTooltips(Function mapper, Tooltip... suggestions) { + private static Collection toStringsWithTooltips(Function mapper, AbstractTooltip... suggestions) { return toStringsWithTooltips(mapper, Arrays.stream(suggestions)); } @@ -250,7 +250,7 @@ private static Collection toStringsWithTooltips(Function Collection toStringsWithTooltips(Function mapper, Collection> suggestions) { + private static Collection toStringsWithTooltips(Function mapper, Collection> suggestions) { return toStringsWithTooltips(mapper, suggestions.stream()); } @@ -264,9 +264,9 @@ private static Collection toStringsWithTooltips(Function Collection toStringsWithTooltips(Function mapper, Stream> suggestions) { + private static Collection toStringsWithTooltips(Function mapper, Stream> suggestions) { //Note the ::apply is required to allow the return type to be IStringTooltip instead of StringTooltip - Function, IStringTooltip> builder = Tooltip.build(mapper)::apply; + Function, IStringTooltip> builder = AbstractTooltip.build(mapper)::apply; return suggestions.map(builder).toList(); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/attributes/KeyedObject.java b/commandapi-core/src/main/java/dev/jorel/commandapi/attributes/KeyedObject.java deleted file mode 100644 index ff81ab55a7..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/attributes/KeyedObject.java +++ /dev/null @@ -1,15 +0,0 @@ -package dev.jorel.commandapi.attributes; - -import org.bukkit.NamespacedKey; - -public class KeyedObject { - private NamespacedKey key; - - public KeyedObject(NamespacedKey key) { - this.key = key; - } - - public NamespacedKey getKey() { - return this.key; - } -} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index ec663b3793..fe17f81f92 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -1,6 +1,9 @@ package dev.jorel.commandapi; import java.util.List; +import java.util.function.Function; + +import org.bukkit.NamespacedKey; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; @@ -71,5 +74,23 @@ public void unregister(String commandName) { // TODO Auto-generated method stub } + + /** + * TODO: There's probably a much better place to put this, but I don't + * really fancy subclassing SafeOverrideableArgument for Bukkit specifically, + * so I'll dump it here and hope nobody cares because the CommandAPI doesn't + * really have a centralized "utils" class or anything + * + * Composes a S to a NamespacedKey mapping function to + * convert S to a String + * + * @param mapper the mapping function from S to + * NamespacedKey + * @return a composed function that converts S to + * String + */ + public static Function fromKey(Function mapper) { + return mapper.andThen(NamespacedKey::toString); + } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java index 5a5d4b7daf..1b66a90c0a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java @@ -25,8 +25,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.attributes.KeyedObject; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; @@ -34,19 +32,19 @@ * An argument that represents the Bukkit Advancement object * @apiNote Returns an {@link Advancement} object */ -public class AdvancementArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class AdvancementArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * Constructs an AdvancementArgument with a given node name * @param nodeName the name of the node for argument */ public AdvancementArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), fromKey(KeyedObject::getKey)); + super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), BukkitPlatform.fromKey(Advancement::getKey)); } @Override - public Class getPrimitiveType() { - return KeyedObject.class; + public Class getPrimitiveType() { + return Advancement.class; } @Override @@ -60,7 +58,7 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public KeyedObject parseArgument(AbstractPlatform platform, + public Advancement parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getAdvancement(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index 5e962904bc..5f590f6d71 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -135,7 +135,7 @@ public T parseArgument(AbstractPlatform throws CommandSyntaxException { // Get the raw input and parsed input final String customresult = CommandAPIHandler.getRawArgumentInput(cmdCtx, key); - final B parsedInput = base.parseArgument(nms, cmdCtx, key, previousArgs); + final B parsedInput = base.parseArgument(platform, cmdCtx, key, previousArgs); try { return infoParser.apply(new CustomArgumentInfo(((BukkitPlatform) platform).getCommandSenderFromCSS(cmdCtx.getSource()), @@ -381,10 +381,10 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) + public String parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return keyed ? ((BukkitPlatform) platform).getMinecraftKey(cmdCtx, key).toString() : cmdCtx.getArgument(key, String.class); + return keyed ? ((BukkitPlatform) platform).getMinecraftKey(cmdCtx, key).toString() : cmdCtx.getArgument(key, String.class); } } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java index fe805b535b..2838041625 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java @@ -25,7 +25,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; @@ -41,7 +40,7 @@ public class EnchantmentArgument extends SafeOverrideableArgument n)); + super(nodeName, BukkitPlatform.get()._ArgumentTag(), BukkitPlatform.fromKey(n -> n)); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java index a0f9c68e0f..71bd18974e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java @@ -26,7 +26,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; @@ -40,7 +39,7 @@ public class LootTableArgument extends SafeOverrideableArgument imp * @param nodeName the name of the node for this argument */ public RecipeArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), fromKey((Recipe r) -> ((Keyed) r).getKey())); + super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), BukkitPlatform.fromKey((Recipe r) -> ((Keyed) r).getKey())); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java index 09612a548a..c67972c207 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java @@ -39,6 +39,7 @@ import org.bukkit.Sound; import org.bukkit.World; import org.bukkit.World.Environment; +import org.bukkit.advancement.Advancement; import org.bukkit.block.Biome; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; @@ -64,7 +65,6 @@ import dev.jorel.commandapi.arguments.EntitySelector; import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.attributes.KeyedObject; import dev.jorel.commandapi.wrappers.FloatRange; import dev.jorel.commandapi.wrappers.FunctionWrapper; import dev.jorel.commandapi.wrappers.IntegerRange; @@ -186,7 +186,7 @@ public interface NMS { */ void createDispatcherFile(File file, CommandDispatcher dispatcher) throws IOException; - KeyedObject getAdvancement(CommandContext cmdCtx, String key) throws CommandSyntaxException; + Advancement getAdvancement(CommandContext cmdCtx, String key) throws CommandSyntaxException; Component getAdventureChat(CommandContext cmdCtx, String key) throws CommandSyntaxException; From 6d302b1a280f615e4023a21d1ffccd7ec77a4023 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Mon, 10 Oct 2022 23:08:52 +0100 Subject: [PATCH 027/638] Rename CommandAPIHandler in core to BaseHandler. Fix generic issue with getSenderForCommand. Implement NMS 1.19 and 1.18 (as a proof of concept) --- ...ommandAPIHandler.java => BaseHandler.java} | 101 ++++++++--------- .../java/dev/jorel/commandapi/Brigadier.java | 18 +-- .../jorel/commandapi/CommandAPICommand.java | 2 +- .../abstractions/AbstractCommandSender.java | 5 +- .../abstractions/AbstractPlatform.java | 8 +- .../dev/jorel/commandapi/BukkitPlatform.java | 2 +- .../java/dev/jorel/commandapi/CommandAPI.java | 30 ++--- .../jorel/commandapi/CommandAPIHandler.java | 103 ++++++++++-------- .../java/dev/jorel/commandapi/Tooltip.java | 4 +- .../arguments/AdventureChatArgument.java | 4 +- .../commandapi/arguments/ChatArgument.java | 4 +- .../commandapi/arguments/CustomArgument.java | 4 +- .../commandsenders/BukkitCommandSender.java | 31 ++++++ .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 8 +- .../dev/jorel/commandapi/nms/NMS_1_13.java | 8 +- .../dev/jorel/commandapi/nms/NMS_1_14.java | 8 +- .../dev/jorel/commandapi/nms/NMS_1_15.java | 8 +- .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 10 +- .../dev/jorel/commandapi/nms/NMS_1_16_R2.java | 10 +- .../jorel/commandapi/nms/NMS_1_16_4_R3.java | 8 +- .../jorel/commandapi/nms/NMS_1_17_Common.java | 4 +- .../dev/jorel/commandapi/nms/NMS_1_17_R1.java | 4 +- .../dev/jorel/commandapi/nms/NMS_1_17.java | 4 +- .../dev/jorel/commandapi/nms/NMS_1_18_R2.java | 21 ++-- .../dev/jorel/commandapi/nms/NMS_1_18_R1.java | 6 +- .../jorel/commandapi/nms/NMS_1_19_Common.java | 15 ++- .../NMS_1_19_Common_ChatPreviewHandler.java | 9 +- .../dev/jorel/commandapi/nms/NMS_Common.java | 10 +- .../dev/jorel/commandapi/CommandAPIMain.java | 2 +- 29 files changed, 256 insertions(+), 195 deletions(-) rename commandapi-core/src/main/java/dev/jorel/commandapi/{CommandAPIHandler.java => BaseHandler.java} (88%) create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java similarity index 88% rename from commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 91980c7fbb..66102ec319 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi; +import java.awt.Component; import java.io.IOException; import java.lang.invoke.MethodHandles; import java.lang.invoke.VarHandle; @@ -16,9 +17,6 @@ import java.util.concurrent.CompletableFuture; import java.util.function.Predicate; -import org.bukkit.Bukkit; -import org.bukkit.command.PluginCommand; - import com.mojang.brigadier.Command; import com.mojang.brigadier.builder.ArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder; @@ -53,7 +51,7 @@ // and I'm not sure if we can use the Adventure API on Fabric, so let's // assume we can't until we figure that out. -public class CommandAPIHandler { +public class BaseHandler { // TODO: Figure out what here gets moved to the common implementation and what // is platform-specific @@ -90,20 +88,24 @@ public static String getRawArgumentInput(CommandContext FIELDS = new HashMap<>(); + // TODO: Need to ensure this can be safely "disposed of" when we're done (e.g. on reloads). + // I hiiiiiiighly doubt we're storing class caches of classes that can be unloaded at runtime, + // but this IS a generic class caching system and we don't want derpy memory leaks + private static final Map FIELDS = new HashMap<>(); + final TreeMap PERMISSIONS_TO_FIX = new TreeMap<>(); - final AbstractPlatform platform; + final AbstractPlatform platform; // Access strictly via getPlatform() method which can be overridden final List registeredCommands; // Keep track of what has been registered for type checking final Map, IPreviewable, ?>> previewableArguments; // Arguments with previewable chat // TODO: Wait, how do we instantiate this? - private CommandAPIHandler(AbstractPlatform platform) { + protected BaseHandler(AbstractPlatform platform) { this.platform = platform; this.registeredCommands = new ArrayList<>(); this.previewableArguments = new HashMap<>(); } - public AbstractPlatform getPlatform() { + public AbstractPlatform getPlatform() { return this.platform; } @@ -117,12 +119,12 @@ public AbstractPlatform getPlatform() { * @return a brigadier command which is registered internally * @throws CommandSyntaxException if an error occurs when the command is ran */ - Command generateCommand(Argument[] args, - CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException { + Command generateCommand(Argument[] args, + CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException { // Generate our command from executor return (cmdCtx) -> { - AbstractCommandSender sender = platform.getSenderForCommand(cmdCtx, executor.isForceNative()); + AbstractCommandSender sender = platform.getSenderForCommand(cmdCtx, executor.isForceNative()); if (converted) { Object[] argObjs = argsToObjectArr(cmdCtx, args); int resultValue = 0; @@ -169,7 +171,7 @@ Command generateCommand(Argument[] args, * @return an Object[] which can be used in (sender, args) -> * @throws CommandSyntaxException */ - Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) + Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) throws CommandSyntaxException { // Array for arguments for executor List argList = new ArrayList<>(); @@ -196,7 +198,7 @@ Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] arg * @return the standard Bukkit type * @throws CommandSyntaxException */ - Object parseArgument(CommandContext cmdCtx, String key, Argument value, + Object parseArgument(CommandContext cmdCtx, String key, Argument value, Object[] previousArgs) throws CommandSyntaxException { if (value.isListed()) { // TODO: Specify platform @@ -229,7 +231,7 @@ Object parseArgument(CommandContext cmdCtx, String key, Argument< * * @param requirements */ - Predicate generatePermissions(String commandName, CommandPermission permission, + Predicate generatePermissions(String commandName, CommandPermission permission, Predicate> requirements) { // If we've already registered a permission, set it to the "parent" permission. if (PERMISSIONS_TO_FIX.containsKey(commandName.toLowerCase())) { @@ -248,7 +250,7 @@ Predicate generatePermissions(String commandName, CommandPermissi platform.registerPermission(finalPermission.getPermission().get()); } - return (CommandSource css) -> permissionCheck(platform.getCommandSenderFromCommandSource(css), finalPermission, + return (Source css) -> permissionCheck(platform.getCommandSenderFromCommandSource(css), finalPermission, requirements); } @@ -288,7 +290,7 @@ static boolean permissionCheck(AbstractCommandSender sender, CommandPermissio * multiliteral arguments were not present. */ private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, - CustomCommandExecutor> executor, boolean converted) + CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals @@ -367,7 +369,7 @@ private boolean hasCommandConflict(String commandName, Argument[] args, Strin } // Links arg -> Executor - private ArgumentBuilder generateInnerArgument(Command command, + private ArgumentBuilder generateInnerArgument(Command command, Argument[] args) { Argument innerArg = args[args.length - 1]; @@ -391,9 +393,9 @@ else if (innerArg instanceof ICustomProvidedArgument customProvidedArg } // Links arg1 -> arg2 -> ... argN -> innermostArgument - private ArgumentBuilder generateOuterArguments( - ArgumentBuilder innermostArgument, Argument[] args) { - ArgumentBuilder outer = innermostArgument; + private ArgumentBuilder generateOuterArguments( + ArgumentBuilder innermostArgument, Argument[] args) { + ArgumentBuilder outer = innermostArgument; for (int i = args.length - 2; i >= 0; i--) { Argument outerArg = args[i]; @@ -420,7 +422,7 @@ else if (outerArg instanceof ICustomProvidedArgument customProvidedArg /** * Handles previewable arguments. This stores the path to previewable arguments - * in {@link CommandAPIHandler#previewableArguments} for runtime resolving + * in {@link BaseHandler#previewableArguments} for runtime resolving * * @param commandName the name of the command * @param args the declared arguments @@ -447,7 +449,7 @@ private void handlePreviewableArguments(String commandName, Argument[] args, // Builds our platform command using the given arguments for this method, then // registers it void register(CommandMetaData meta, final Argument[] args, - CustomCommandExecutor> executor, boolean converted) + CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals @@ -520,19 +522,20 @@ void register(CommandMetaData meta, final Argument[] args, // Warn if the command we're registering already exists in this plugin's // plugin.yml file - { - final PluginCommand pluginCommand = Bukkit.getPluginCommand(commandName); - if (pluginCommand != null) { -// CommandAPI.logWarning( -// "Plugin command /%s is registered by Bukkit (%s). Did you forget to remove this from your plugin.yml file?" -// .formatted(commandName, pluginCommand.getPlugin().getName())); - } - } + // TODO: We might need a "pre-register" method call for something like this? +// { +// final PluginCommand pluginCommand = Bukkit.getPluginCommand(commandName); +// if (pluginCommand != null) { +//// CommandAPI.logWarning( +//// "Plugin command /%s is registered by Bukkit (%s). Did you forget to remove this from your plugin.yml file?" +//// .formatted(commandName, pluginCommand.getPlugin().getName())); +// } +// } // CommandAPI.logInfo("Registering command /" + commandName + " " + humanReadableCommandArgSyntax); // Generate the actual command - Command command = generateCommand(args, executor, converted); + Command command = generateCommand(args, executor, converted); /* * The innermost argument needs to be connected to the executor. Then that @@ -540,8 +543,8 @@ void register(CommandMetaData meta, final Argument[] args, * argument needs to be connected to the command name, so we get: CommandName -> * Args1 -> Args2 -> ... -> ArgsN -> Executor */ - LiteralCommandNode resultantNode; - List> aliasNodes = new ArrayList<>(); + LiteralCommandNode resultantNode; + List> aliasNodes = new ArrayList<>(); if (args.length == 0) { // Link command name to the executor resultantNode = platform.registerCommandNode(getLiteralArgumentBuilder(commandName) @@ -557,7 +560,7 @@ void register(CommandMetaData meta, final Argument[] args, // Generate all of the arguments, following each other and finally linking to // the executor - ArgumentBuilder commandArguments = generateOuterArguments( + ArgumentBuilder commandArguments = generateOuterArguments( generateInnerArgument(command, args), args); // Link command name to first argument and register @@ -588,7 +591,7 @@ void register(CommandMetaData meta, final Argument[] args, * @param commandName the name of the literal to create * @return a brigadier LiteralArgumentBuilder representing a literal */ - LiteralArgumentBuilder getLiteralArgumentBuilder(String commandName) { + LiteralArgumentBuilder getLiteralArgumentBuilder(String commandName) { return LiteralArgumentBuilder.literal(commandName); } @@ -599,18 +602,18 @@ LiteralArgumentBuilder getLiteralArgumentBuilder(String commandNa * @param permission the permission required to use this literal * @return a brigadier LiteralArgumentBuilder representing a literal */ - LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandName, + LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandName, CommandPermission permission, Predicate> requirements) { - LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal(commandName); - return builder.requires((CommandSource css) -> permissionCheck(platform.getCommandSenderFromCommandSource(css), + LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal(commandName); + return builder.requires((Source css) -> permissionCheck(platform.getCommandSenderFromCommandSource(css), permission, requirements)); } // Gets a RequiredArgumentBuilder for a DynamicSuggestedStringArgument - RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, + RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, Argument argument) { - final SuggestionProvider suggestions; + final SuggestionProvider suggestions; if (argument.getOverriddenSuggestions().isPresent()) { suggestions = toSuggestions(argument, args, true); @@ -625,13 +628,13 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String c } // Gets a RequiredArgumentBuilder for an argument, given a SuggestionProvider - RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, - Argument[] args, SuggestionProvider provider) { - SuggestionProvider newSuggestionsProvider = provider; + RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, + Argument[] args, SuggestionProvider provider) { + SuggestionProvider newSuggestionsProvider = provider; // If we have suggestions to add, combine provider with the suggestions if (argument.getIncludedSuggestions().isPresent() && argument.getOverriddenSuggestions().isEmpty()) { - SuggestionProvider addedSuggestions = toSuggestions(argument, args, false); + SuggestionProvider addedSuggestions = toSuggestions(argument, args, false); newSuggestionsProvider = (cmdCtx, builder) -> { // Heavily inspired by CommandDispatcher#listSuggestions, with combining @@ -651,14 +654,14 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String c }; } - RequiredArgumentBuilder requiredArgumentBuilder = RequiredArgumentBuilder + RequiredArgumentBuilder requiredArgumentBuilder = RequiredArgumentBuilder .argument(argument.getNodeName(), argument.getRawType()); return requiredArgumentBuilder.requires(css -> permissionCheck(platform.getCommandSenderFromCommandSource(css), argument.getArgumentPermission(), argument.getRequirements())).suggests(newSuggestionsProvider); } - Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) + Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) throws CommandSyntaxException { // Populate Object[], which is our previously filled arguments List previousArguments = new ArrayList<>(); @@ -689,9 +692,9 @@ Object[] generatePreviousArguments(CommandContext context, Argume return previousArguments.toArray(); } - SuggestionProvider toSuggestions(Argument theArgument, Argument[] args, + SuggestionProvider toSuggestions(Argument theArgument, Argument[] args, boolean overrideSuggestions) { - return (CommandContext context, SuggestionsBuilder builder) -> { + return (CommandContext context, SuggestionsBuilder builder) -> { // Construct the suggestion info SuggestionInfo suggestionInfo = new SuggestionInfo(platform.getCommandSenderFromCommandSource(context.getSource()), generatePreviousArguments(context, args, theArgument.getNodeName()), builder.getInput(), @@ -756,7 +759,7 @@ public boolean lookupPreviewableLegacyStatus(List path) { * @param name the name of the field * @return a Field reference */ - public final Field getField(Class clazz, String name) { + public static final Field getField(Class clazz, String name) { ClassCache key = new ClassCache(clazz, name); if (FIELDS.containsKey(key)) { return FIELDS.get(key); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index 07a55086bf..c251809fd4 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -58,7 +58,7 @@ private Brigadier() { * @return The CommandAPI's internal CommandDispatcher instance */ public static CommandDispatcher getCommandDispatcher() { - return CommandAPIHandler.getInstance().DISPATCHER; + return BaseHandler.getInstance().DISPATCHER; } /** @@ -82,7 +82,7 @@ public static RootCommandNode getRootNode() { * @return a LiteralArgumentBuilder that represents the literal */ public static LiteralArgumentBuilder fromLiteralArgument(LiteralArgument literalArgument) { - return CommandAPIHandler.getInstance().getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), + return BaseHandler.getInstance().getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), literalArgument.getArgumentPermission(), literalArgument.getRequirements()); } @@ -120,7 +120,7 @@ public static RedirectModifier fromPredicate(BiPredicate args, Argument argument) { - return CommandAPIHandler.getInstance().getRequiredArgumentBuilderDynamic(args.toArray(new Argument[0]), argument); + return BaseHandler.getInstance().getRequiredArgumentBuilderDynamic(args.toArray(new Argument[0]), argument); } /** @@ -157,7 +157,7 @@ public static RequiredArgumentBuilder fromArgument(List args, Argument * @return a RequiredArgumentBuilder that represents the provided argument */ public static RequiredArgumentBuilder fromArgument(Argument argument) { - return CommandAPIHandler.getInstance().getRequiredArgumentBuilderDynamic(new Argument[] { argument }, argument); + return BaseHandler.getInstance().getRequiredArgumentBuilderDynamic(new Argument[] { argument }, argument); } /** @@ -170,7 +170,7 @@ public static RequiredArgumentBuilder fromArgument(Argument argument) { * specified argument */ public static SuggestionProvider toSuggestions(Argument argument, List args) { - return CommandAPIHandler.getInstance().toSuggestions(argument, args.toArray(new Argument[0]), true); + return BaseHandler.getInstance().toSuggestions(argument, args.toArray(new Argument[0]), true); } /** @@ -186,7 +186,7 @@ public static SuggestionProvider toSuggestions(Argument argument, List args) throws CommandSyntaxException { - return CommandAPIHandler.getInstance().argsToObjectArr(cmdCtx, args.toArray(new Argument[0])); + return BaseHandler.getInstance().argsToObjectArr(cmdCtx, args.toArray(new Argument[0])); } /** @@ -200,7 +200,7 @@ public static Object[] parseArguments(CommandContext cmdCtx, List args * CommandSender */ public static Object getBrigadierSourceFromCommandSender(AbstractCommandSender sender) { - return CommandAPIHandler.getInstance().getNMS().getCLWFromCommandSender(sender); + return BaseHandler.getInstance().getNMS().getCLWFromCommandSender(sender); } @@ -211,6 +211,6 @@ public static Object getBrigadierSourceFromCommandSender(AbstractCommandSender s * @return a Bukkit CommandSender from the provided Brigadier CommandContext */ public static AbstractCommandSender getCommandSenderFromContext(CommandContext cmdCtx) { - return CommandAPIHandler.getInstance().getNMS().getSenderForCommand(cmdCtx, false); + return BaseHandler.getInstance().getNMS().getSenderForCommand(cmdCtx, false); } } \ No newline at end of file diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index 48e0f7a818..44d19c4828 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -228,7 +228,7 @@ public void register() { } if (executor.hasAnyExecutors()) { - CommandAPIHandler.getInstance().register(meta, argumentsArr, executor, isConverted); + BaseHandler.getInstance().register(meta, argumentsArr, executor, isConverted); } // Convert subcommands into multiliteral arguments diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java index 91f7af5cb3..7b8f09a218 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java @@ -15,6 +15,9 @@ public interface AbstractCommandSender { public boolean isOp(); - // Need to be able to get the underlying command sender! + // Need to be able to get the underlying command sender, NOT the underlying + // NMS command source (CLW/CSS). If we want to access that, we can do so by + // adding a second parameter if we so desire, but I don't think we need to + // go that far public Source getSource(); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index bf417eff9d..77c501b686 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -18,7 +18,13 @@ public abstract class AbstractPlatform { // AbstractPlatform implementation. The only things in here are going // to be supppppppppper low-level stuff - public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); + // "Source" in this case (for CommandContext) is something like a + // CommandListenerWrapper (Spigot mappings) or CommandSourceStack (Mojang mappings). + // + // This method returns AbstractCommandSender, except what we actually want to return + // is just a plain ol' AbstractCommandSender - we don't care what the abstract command sender is parameterized + // over + public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); // Converts a command source into its source. For Bukkit, this // is implemented in NMS. TODO: For Velocity, I have no idea what diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index fe17f81f92..4619c129f6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -28,7 +28,7 @@ public static BukkitPlatform get() { } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { // TODO Auto-generated method stub return null; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index cfd512eb5d..ed06d7b2bd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -108,7 +108,7 @@ public static void onDisable() { CommandAPI.logger = null; CommandAPI.loaded = false; - CommandAPIHandler.onDisable(); + BaseHandler.onDisable(); } /** @@ -178,7 +178,7 @@ public static void logError(String message) { public static void onLoad(CommandAPIConfig config) { if (!loaded) { CommandAPI.config = new InternalConfig(config); - CommandAPIHandler.getInstance().checkDependencies(); + BaseHandler.getInstance().checkDependencies(); loaded = true; } else { getLogger().severe("You've tried to call the CommandAPI's onLoad() method more than once!"); @@ -197,9 +197,9 @@ public static void onEnable(Plugin plugin) { canRegister = false; // Sort out permissions after the server has finished registering them all - CommandAPIHandler.getInstance().fixPermissions(); - CommandAPIHandler.getInstance().getNMS().reloadDataPacks(); - CommandAPIHandler.getInstance().updateHelpForCommands(); + BaseHandler.getInstance().fixPermissions(); + BaseHandler.getInstance().getNMS().reloadDataPacks(); + BaseHandler.getInstance().updateHelpForCommands(); }, 0L); // (Re)send command graph packet to players when they join @@ -208,26 +208,26 @@ public static void onEnable(Plugin plugin) { // For some reason, any other priority doesn't work @EventHandler(priority = EventPriority.MONITOR) public void onPlayerJoin(PlayerJoinEvent e) { - CommandAPIHandler.getInstance().getNMS().resendPackets(e.getPlayer()); + BaseHandler.getInstance().getNMS().resendPackets(e.getPlayer()); } }, plugin); // On 1.19+, enable chat preview if the server allows it - if(CommandAPIHandler.getInstance().getNMS().canUseChatPreview()) { + if(BaseHandler.getInstance().getNMS().canUseChatPreview()) { Bukkit.getServer().getPluginManager().registerEvents(new Listener() { @EventHandler public void onPlayerJoin(PlayerJoinEvent e) { if(Bukkit.shouldSendChatPreviews()) { - CommandAPIHandler.getInstance().getNMS().hookChatPreview(plugin, e.getPlayer()); + BaseHandler.getInstance().getNMS().hookChatPreview(plugin, e.getPlayer()); } } @EventHandler public void onPlayerQuit(PlayerQuitEvent e) { if(Bukkit.shouldSendChatPreviews()) { - CommandAPIHandler.getInstance().getNMS().unhookChatPreview(e.getPlayer()); + BaseHandler.getInstance().getNMS().unhookChatPreview(e.getPlayer()); } } @@ -237,7 +237,7 @@ public void onPlayerQuit(PlayerQuitEvent e) { logNormal("Chat preview is not available"); } - CommandAPIHandler.getInstance().getPaper().registerReloadHandler(plugin); + BaseHandler.getInstance().getPaper().registerReloadHandler(plugin); } /** @@ -246,7 +246,7 @@ public void onPlayerQuit(PlayerQuitEvent e) { * @param player the player whos requirements to update */ public static void updateRequirements(Player player) { - CommandAPIHandler.getInstance().getNMS().resendPackets(player); + BaseHandler.getInstance().getNMS().resendPackets(player); } /** @@ -255,7 +255,7 @@ public static void updateRequirements(Player player) { * running /minecraft:reload, NOT before. */ public static void reloadDatapacks() { - CommandAPIHandler.getInstance().getNMS().reloadDataPacks(); + BaseHandler.getInstance().getNMS().reloadDataPacks(); } /** @@ -331,7 +331,7 @@ public static boolean canRegister() { * @param command the name of the command to unregister */ public static void unregister(String command) { - CommandAPIHandler.getInstance().unregister(command, false); + BaseHandler.getInstance().unregister(command, false); } /** @@ -346,7 +346,7 @@ public static void unregister(String command, boolean force) { getLogger().warning("Unexpected unregistering of /" + command + ", as server is loaded! Unregistering anyway, but this can lead to unstable results!"); } - CommandAPIHandler.getInstance().unregister(command, force); + BaseHandler.getInstance().unregister(command, force); } /** @@ -367,6 +367,6 @@ public static void registerCommand(Class commandClass) { * registered by the CommandAPI so far. The returned list is immutable. */ public static List getRegisteredCommands() { - return Collections.unmodifiableList(CommandAPIHandler.getInstance().registeredCommands); + return Collections.unmodifiableList(BaseHandler.getInstance().registeredCommands); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index 4d0bb40414..681b32fcfb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -63,6 +63,7 @@ import com.mojang.brigadier.tree.CommandNode; import com.mojang.brigadier.tree.LiteralCommandNode; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.arguments.Argument; import dev.jorel.commandapi.arguments.ArgumentSuggestions; import dev.jorel.commandapi.arguments.ICustomProvidedArgument; @@ -85,7 +86,7 @@ @RequireField(in = CommandNode.class, name = "literals", ofType = Map.class) @RequireField(in = CommandNode.class, name = "arguments", ofType = Map.class) @RequireField(in = CommandContext.class, name = "arguments", ofType = Map.class) -public class CommandAPIHandler { +public class CommandAPIHandler extends BaseHandler { // TODO: Figure out what here gets moved to the common implementation and what is platform-specific private final static VarHandle COMMANDNODE_CHILDREN; @@ -136,7 +137,7 @@ public static String getRawArgumentInput(CommandContext instance; + private static BaseHandler instance; /** * Returns the Singleton instance of the CommandAPI's internal handler @@ -144,9 +145,9 @@ public static String getRawArgumentInput(CommandContext getInstance() { + public static BaseHandler getInstance() { if (instance == null) { - instance = new CommandAPIHandler<>(); + instance = new BaseHandler<>(); } return instance; } @@ -163,25 +164,35 @@ public static void onDisable() { final Map FIELDS = new HashMap<>(); final TreeMap PERMISSIONS_TO_FIX = new TreeMap<>(); - final NMS NMS; - final CommandDispatcher DISPATCHER; + final CommandDispatcher DISPATCHER; final List registeredCommands; // Keep track of what has been registered for type checking final Map, IPreviewable, ?>> previewableArguments; // Arguments with previewable chat private PaperImplementations paper; + + private static BukkitPlatform initializeBukkitPlatform() { + // TODO: Get bukkit platform from CommandAPIVersionHandler, or otherwise (e.g. custom NMS) +// final String bukkit = Bukkit.getServer().toString(); +// if(CommandAPI.getConfiguration().getCustomNMS() != null) { +// NMS = (NMS) CommandAPI.getConfiguration().getCustomNMS(); +// } else { +// NMS = CommandAPIVersionHandler +// .getNMS(bukkit.substring(bukkit.indexOf("minecraftVersion") + 17, bukkit.length() - 1)); +// } + return null; + } + + @Override + public BukkitPlatform getPlatform() { + return (BukkitPlatform) super.getPlatform(); + } @SuppressWarnings("unchecked") private CommandAPIHandler() { - final String bukkit = Bukkit.getServer().toString(); - if(CommandAPI.getConfiguration().getCustomNMS() != null) { - NMS = (NMS) CommandAPI.getConfiguration().getCustomNMS(); - } else { - NMS = CommandAPIVersionHandler - .getNMS(bukkit.substring(bukkit.indexOf("minecraftVersion") + 17, bukkit.length() - 1)); - } - DISPATCHER = NMS.getBrigadierDispatcher(); + super(initializeBukkitPlatform()); + DISPATCHER = getPlatform().getBrigadierDispatcher(); registeredCommands = new ArrayList<>(); previewableArguments = new HashMap<>(); - this.paper = new PaperImplementations(false, NMS); + this.paper = new PaperImplementations(false, getPlatform()); } void checkDependencies() { @@ -253,7 +264,7 @@ void checkDependencies() { * * @return an instance of NMS */ - public NMS getNMS() { + public NMS getNMS() { return this.NMS; } @@ -309,7 +320,7 @@ void unregister(String commandName, boolean force) { * @return a brigadier command which is registered internally * @throws CommandSyntaxException if an error occurs when the command is ran */ - Command generateCommand(Argument[] args, + Command generateCommand(Argument[] args, CustomCommandExecutor executor, boolean converted) throws CommandSyntaxException { // Generate our command from executor @@ -361,7 +372,7 @@ Command generateCommand(Argument[] args, * @return an Object[] which can be used in (sender, args) -> * @throws CommandSyntaxException */ - Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) + Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) throws CommandSyntaxException { // Array for arguments for executor List argList = new ArrayList<>(); @@ -388,7 +399,7 @@ Object[] argsToObjectArr(CommandContext cmdCtx, Argument[ * @return the standard Bukkit type * @throws CommandSyntaxException */ - Object parseArgument(CommandContext cmdCtx, String key, Argument value, Object[] previousArgs) + Object parseArgument(CommandContext cmdCtx, String key, Argument value, Object[] previousArgs) throws CommandSyntaxException { if (value.isListed()) { return value.parseArgument(NMS, cmdCtx, key, previousArgs); @@ -420,7 +431,7 @@ Object parseArgument(CommandContext cmdCtx, String key, Argu * * @param requirements */ - Predicate generatePermissions(String commandName, CommandPermission permission, + Predicate generatePermissions(String commandName, CommandPermission permission, Predicate requirements) { // If we've already registered a permission, set it to the "parent" permission. if (PERMISSIONS_TO_FIX.containsKey(commandName.toLowerCase())) { @@ -443,7 +454,7 @@ Predicate generatePermissions(String commandName, CommandPer } } - return (CommandSourceStack css) -> permissionCheck(NMS.getCommandSenderFromCSS(css), finalPermission, + return (Source css) -> permissionCheck(NMS.getCommandSenderFromCSS(css), finalPermission, requirements); } @@ -608,7 +619,7 @@ private boolean hasCommandConflict(String commandName, Argument[] args, Strin } // Links arg -> Executor - private ArgumentBuilder generateInnerArgument(Command command, + private ArgumentBuilder generateInnerArgument(Command command, Argument[] args) { Argument innerArg = args[args.length - 1]; @@ -632,9 +643,9 @@ else if (innerArg instanceof ICustomProvidedArgument customProvidedArg } // Links arg1 -> arg2 -> ... argN -> innermostArgument - private ArgumentBuilder generateOuterArguments( - ArgumentBuilder innermostArgument, Argument[] args) { - ArgumentBuilder outer = innermostArgument; + private ArgumentBuilder generateOuterArguments( + ArgumentBuilder innermostArgument, Argument[] args) { + ArgumentBuilder outer = innermostArgument; for (int i = args.length - 2; i >= 0; i--) { Argument outerArg = args[i]; @@ -661,7 +672,7 @@ else if (outerArg instanceof ICustomProvidedArgument customProvidedArg /** * Handles previewable arguments. This stores the path to previewable arguments - * in {@link CommandAPIHandler#previewableArguments} for runtime resolving + * in {@link BaseHandler#previewableArguments} for runtime resolving * @param commandName the name of the command * @param args the declared arguments * @param aliases the command's aliases @@ -769,7 +780,7 @@ void register(CommandMetaData meta, final Argument[] args, CommandAPI.logInfo("Registering command /" + commandName + " " + humanReadableCommandArgSyntax); // Generate the actual command - Command command = generateCommand(args, executor, converted); + Command command = generateCommand(args, executor, converted); /* * The innermost argument needs to be connected to the executor. Then that @@ -777,7 +788,7 @@ void register(CommandMetaData meta, final Argument[] args, * argument needs to be connected to the command name, so we get: CommandName -> * Args1 -> Args2 -> ... -> ArgsN -> Executor */ - LiteralCommandNode resultantNode; + LiteralCommandNode resultantNode; if (args.length == 0) { // Link command name to the executor resultantNode = DISPATCHER.register(getLiteralArgumentBuilder(commandName) @@ -793,7 +804,7 @@ void register(CommandMetaData meta, final Argument[] args, // Generate all of the arguments, following each other and finally linking to // the executor - ArgumentBuilder commandArguments = generateOuterArguments( + ArgumentBuilder commandArguments = generateOuterArguments( generateInnerArgument(command, args), args); // Link command name to first argument and register @@ -812,9 +823,9 @@ void register(CommandMetaData meta, final Argument[] args, } DISPATCHER.findAmbiguities( - (CommandNode parent, - CommandNode child, - CommandNode sibling, + (CommandNode parent, + CommandNode child, + CommandNode sibling, Collection inputs) -> { if(resultantNode.equals(parent)) { // Byeeeeeeeeeeeeeeeeeeeee~ @@ -851,7 +862,7 @@ private void generateDispatcherFile() throws IOException { * @param commandName the name of the literal to create * @return a brigadier LiteralArgumentBuilder representing a literal */ - LiteralArgumentBuilder getLiteralArgumentBuilder(String commandName) { + LiteralArgumentBuilder getLiteralArgumentBuilder(String commandName) { return LiteralArgumentBuilder.literal(commandName); } @@ -862,18 +873,18 @@ LiteralArgumentBuilder getLiteralArgumentBuilder(String comm * @param permission the permission required to use this literal * @return a brigadier LiteralArgumentBuilder representing a literal */ - LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandName, + LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandName, CommandPermission permission, Predicate requirements) { - LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal(commandName); - return builder.requires((CommandSourceStack css) -> permissionCheck(NMS.getCommandSenderFromCSS(css), + LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal(commandName); + return builder.requires((Source css) -> permissionCheck(NMS.getCommandSenderFromCSS(css), permission, requirements)); } // Gets a RequiredArgumentBuilder for a DynamicSuggestedStringArgument - RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, + RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, Argument argument) { - final SuggestionProvider suggestions; + final SuggestionProvider suggestions; if (argument.getOverriddenSuggestions().isPresent()) { suggestions = toSuggestions(argument, args, true); @@ -888,13 +899,13 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(Str } // Gets a RequiredArgumentBuilder for an argument, given a SuggestionProvider - RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, - Argument[] args, SuggestionProvider provider) { - SuggestionProvider newSuggestionsProvider = provider; + RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, + Argument[] args, SuggestionProvider provider) { + SuggestionProvider newSuggestionsProvider = provider; // If we have suggestions to add, combine provider with the suggestions if (argument.getIncludedSuggestions().isPresent() && argument.getOverriddenSuggestions().isEmpty()) { - SuggestionProvider addedSuggestions = toSuggestions(argument, args, + SuggestionProvider addedSuggestions = toSuggestions(argument, args, false); newSuggestionsProvider = (cmdCtx, builder) -> { @@ -915,14 +926,14 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(Str }; } - RequiredArgumentBuilder requiredArgumentBuilder = RequiredArgumentBuilder + RequiredArgumentBuilder requiredArgumentBuilder = RequiredArgumentBuilder .argument(argument.getNodeName(), argument.getRawType()); return requiredArgumentBuilder.requires(css -> permissionCheck(NMS.getCommandSenderFromCSS(css), argument.getArgumentPermission(), argument.getRequirements())).suggests(newSuggestionsProvider); } - Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) + Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) throws CommandSyntaxException { // Populate Object[], which is our previously filled arguments List previousArguments = new ArrayList<>(); @@ -953,9 +964,9 @@ Object[] generatePreviousArguments(CommandContext context, A return previousArguments.toArray(); } - SuggestionProvider toSuggestions(Argument theArgument, Argument[] args, + SuggestionProvider toSuggestions(Argument theArgument, Argument[] args, boolean overrideSuggestions) { - return (CommandContext context, SuggestionsBuilder builder) -> { + return (CommandContext context, SuggestionsBuilder builder) -> { // Construct the suggestion info SuggestionInfo suggestionInfo = new SuggestionInfo(NMS.getCommandSenderFromCSS(context.getSource()), generatePreviousArguments(context, args, theArgument.getNodeName()), builder.getInput(), builder.getRemaining()); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java index 91d5173142..a95d9e672e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java @@ -146,7 +146,7 @@ public static AbstractTooltip ofAdventureComponent(S object, Component to * @return native minecraft message object which can be used natively by brigadier. */ public static Message messageFromBaseComponents(BaseComponent... components) { - return CommandAPIHandler.getInstance().getNMS().generateMessageFromJson(ComponentSerializer.toString(components)); + return BaseHandler.getInstance().getNMS().generateMessageFromJson(ComponentSerializer.toString(components)); } /** @@ -159,7 +159,7 @@ public static Message messageFromBaseComponents(BaseComponent... components) { * @return native minecraft message object which can be used natively by brigadier. */ public static Message messageFromAdventureComponent(Component component) { - return CommandAPIHandler.getInstance().getNMS().generateMessageFromJson(GsonComponentSerializer.gson().serialize(component)); + return BaseHandler.getInstance().getNMS().generateMessageFromJson(GsonComponentSerializer.gson().serialize(component)); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java index abf70b2096..494bd25b6e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java @@ -28,8 +28,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; @@ -82,7 +82,7 @@ public Component parseArgument(AbstractPlatform(new BukkitPlayer(player), CommandAPIHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); + .generatePreview(new PreviewInfo(new BukkitPlayer(player), BaseHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); component = previewComponent; } catch (WrapperCommandSyntaxException e) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java index aa388b1993..63a04cfbdd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java @@ -28,8 +28,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; @@ -82,7 +82,7 @@ public BaseComponent[] parseArgument(AbstractPlatform(new BukkitPlayer(player), CommandAPIHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); + .generatePreview(new PreviewInfo(new BukkitPlayer(player), BaseHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); if (this.usePreview) { component = previewComponent; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index 5f590f6d71..79e47fa8f8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -29,7 +29,7 @@ import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; @@ -134,7 +134,7 @@ public T parseArgument(AbstractPlatform CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the raw input and parsed input - final String customresult = CommandAPIHandler.getRawArgumentInput(cmdCtx, key); + final String customresult = BaseHandler.getRawArgumentInput(cmdCtx, key); final B parsedInput = base.parseArgument(platform, cmdCtx, key, previousArgs); try { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java new file mode 100644 index 0000000000..5528b8d4c4 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java @@ -0,0 +1,31 @@ +package dev.jorel.commandapi.commandsenders; + +import org.bukkit.command.CommandSender; + +import dev.jorel.commandapi.abstractions.AbstractCommandSender; + +public class BukkitCommandSender implements AbstractCommandSender { + + private final CommandSender sender; + + public BukkitCommandSender(CommandSender sender) { + // TODO: We prooooooobably want to create the other Bukkit wrappers instead of using this + this.sender = sender; + } + + @Override + public boolean hasPermission(String permissionNode) { + return sender.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + return sender.isOp(); + } + + @Override + public CommandSender getSource() { + return sender; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index 441132de40..9b06fccc83 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -68,8 +68,8 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.exceptions.AngleArgumentException; import dev.jorel.commandapi.exceptions.BiomeArgumentException; @@ -581,7 +581,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "m").set(argument, false); + BaseHandler.getInstance().getField(EntitySelector.class, "m").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -728,7 +728,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); } @SuppressWarnings("deprecation") @@ -868,7 +868,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.c(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (CommandAPIHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index 2368becc1d..2b8d758d2f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -68,8 +68,8 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.exceptions.AngleArgumentException; import dev.jorel.commandapi.exceptions.BiomeArgumentException; @@ -567,7 +567,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "m").set(argument, false); + BaseHandler.getInstance().getField(EntitySelector.class, "m").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -711,7 +711,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); } @SuppressWarnings("deprecation") @@ -851,7 +851,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.c(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (CommandAPIHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index 3be46b057c..a778454f28 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -67,8 +67,8 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.exceptions.AngleArgumentException; import dev.jorel.commandapi.exceptions.BiomeArgumentException; @@ -558,7 +558,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); + BaseHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -705,7 +705,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); } @SuppressWarnings("deprecation") @@ -846,7 +846,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.c(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (CommandAPIHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index f0357f7c84..df7622416d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -67,8 +67,8 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.exceptions.AngleArgumentException; import dev.jorel.commandapi.exceptions.BiomeArgumentException; @@ -556,7 +556,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); + BaseHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -702,7 +702,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); } @Differs(from = "1.14.4", by = "ArgumentMinecraftKeyRegistered.c() -> ArgumentMinecraftKeyRegistered.d()") @@ -847,7 +847,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.d(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (CommandAPIHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index 7bb67e37ef..f5d87244c4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -74,8 +74,8 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.exceptions.AngleArgumentException; import dev.jorel.commandapi.preprocessor.Differs; @@ -572,7 +572,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); + BaseHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -719,7 +719,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); } @Differs(from = "1.15", by = "ArgumentMinecraftKeyRegistered.d() -> ArgumentMinecraftKeyRegistered.e()") @@ -862,7 +862,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.e(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (CommandAPIHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } @@ -966,7 +966,7 @@ public void reloadDataPacks() { // Update the CustomFunctionManager for the datapackResources which now has the // new commandDispatcher try { - CommandAPIHandler.getInstance().getField(CustomFunctionManager.class, "g").set(datapackResources.a(), + BaseHandler.getInstance().getField(CustomFunctionManager.class, "g").set(datapackResources.a(), getBrigadierDispatcher()); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index 494f57857a..e7cbc3cfd7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -73,8 +73,8 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.NMSMeta; @@ -570,7 +570,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); + BaseHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -717,7 +717,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); } @SuppressWarnings("deprecation") @@ -859,7 +859,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.e(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (CommandAPIHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } @@ -953,7 +953,7 @@ public void reloadDataPacks() { // Update the CustomFunctionManager for the datapackResources which now has the // new commandDispatcher try { - CommandAPIHandler.getInstance().getField(CustomFunctionManager.class, "h").set(datapackResources.a(), + BaseHandler.getInstance().getField(CustomFunctionManager.class, "h").set(datapackResources.a(), getBrigadierDispatcher()); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index 5bbd23504d..db48d6ffe3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -93,8 +93,8 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.NMSMeta; @@ -593,7 +593,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); + BaseHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -738,7 +738,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); } @SuppressWarnings("deprecation") @@ -966,7 +966,7 @@ public void reloadDataPacks() { // Update the CustomFunctionManager for the datapackResources which now has the // new commandDispatcher try { - CommandAPIHandler.getInstance().getField(CustomFunctionManager.class, "h").set(datapackResources.a(), + BaseHandler.getInstance().getField(CustomFunctionManager.class, "h").set(datapackResources.a(), getBrigadierDispatcher()); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java index a8400e5d46..80b657de8d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java @@ -74,8 +74,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.preprocessor.RequireField; import dev.jorel.commandapi.wrappers.FunctionWrapper; import dev.jorel.commandapi.wrappers.Location2D; @@ -302,7 +302,7 @@ public Object getEntitySelector(CommandContext cmdCtx, Strin // to be used by anyone that registers a command via the CommandAPI. EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "o").set(argument, false); + BaseHandler.getInstance().getField(EntitySelector.class, "o").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java index 3f6b78f7cc..e0783e5aa3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java @@ -20,8 +20,8 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.preprocessor.NMSMeta; import net.minecraft.Util; import net.minecraft.server.ServerFunctionLibrary; @@ -60,7 +60,7 @@ public void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - CommandAPIHandler.getInstance().getField(ServerFunctionLibrary.class, "i") + BaseHandler.getInstance().getField(ServerFunctionLibrary.class, "i") .set(serverResources.getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java index c03e982f50..19e149f470 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java @@ -29,8 +29,8 @@ import org.bukkit.Keyed; import org.bukkit.inventory.Recipe; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.preprocessor.NMSMeta; import net.minecraft.Util; import net.minecraft.server.ServerFunctionLibrary; @@ -61,7 +61,7 @@ public void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - CommandAPIHandler.getInstance().getField(ServerFunctionLibrary.class, "i") + BaseHandler.getInstance().getField(ServerFunctionLibrary.class, "i") .set(serverResources.getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java index 55dd476b6d..cd108c14ac 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java @@ -38,9 +38,6 @@ import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.mojang.brigadier.Message; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.Keyed; @@ -51,10 +48,10 @@ import org.bukkit.Particle.DustTransition; import org.bukkit.Sound; import org.bukkit.Vibration; -import org.bukkit.World; import org.bukkit.Vibration.Destination; import org.bukkit.Vibration.Destination.BlockDestination; import org.bukkit.Vibration.Destination.EntityDestination; +import org.bukkit.World; import org.bukkit.block.Biome; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; @@ -81,14 +78,18 @@ import com.google.common.io.Files; import com.google.gson.GsonBuilder; import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.Message; import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; import com.mojang.logging.LogUtils; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.NMSMeta; import dev.jorel.commandapi.preprocessor.RequireField; @@ -364,7 +365,7 @@ public Object getEntitySelector(CommandContext cmdCtx, Strin // to be used by anyone that registers a command via the CommandAPI. EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "o").set(argument, false); + BaseHandler.getField(EntitySelector.class, "o").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -519,7 +520,7 @@ public ParticleData getParticle(CommandContext cmdCtx, St } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); @@ -531,9 +532,9 @@ public CommandSender getSenderForCommand(CommandContext cmdC Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return new BukkitCommandSender(sender); } } @@ -582,7 +583,7 @@ public void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - CommandAPIHandler.getInstance().getField(ServerFunctionLibrary.class, "i") + BaseHandler.getField(ServerFunctionLibrary.class, "i") .set(serverResources.managers().getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java index a11f4ef3f2..9490ca5f55 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java @@ -82,8 +82,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.NMSMeta; import dev.jorel.commandapi.preprocessor.RequireField; @@ -314,7 +314,7 @@ public Object getEntitySelector(CommandContext cmdCtx, Strin // to be used by anyone that registers a command via the CommandAPI. EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "o").set(argument, false); + BaseHandler.getInstance().getField(EntitySelector.class, "o").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -531,7 +531,7 @@ public void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - CommandAPIHandler.getInstance().getField(ServerFunctionLibrary.class, "i") + BaseHandler.getInstance().getField(ServerFunctionLibrary.class, "i") .set(serverResources.getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java index d230b7744d..4008c7fd11 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java @@ -87,8 +87,11 @@ import com.mojang.datafixers.util.Either; import com.mojang.logging.LogUtils; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.RequireField; import dev.jorel.commandapi.wrappers.FunctionWrapper; @@ -392,7 +395,7 @@ public final Object getEntitySelector(CommandContext cmdCtx, // to be used by anyone that registers a command via the CommandAPI. EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "o").set(argument, false); + BaseHandler.getField(EntitySelector.class, "o").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -576,7 +579,7 @@ public final ParticleData getParticle(CommandContext cmdC } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); @@ -588,9 +591,9 @@ public CommandSender getSenderForCommand(CommandContext cmdC Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return new BukkitCommandSender(sender); } } @@ -638,7 +641,7 @@ public final void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - CommandAPIHandler.getInstance().getField(ServerFunctionLibrary.class, "i") + BaseHandler.getField(ServerFunctionLibrary.class, "i") .set(serverResources.managers().getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java index 8b705b45b4..1b785d301a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java @@ -3,8 +3,9 @@ import com.mojang.brigadier.ParseResults; import com.mojang.brigadier.context.ParsedCommandNode; import com.mojang.brigadier.exceptions.CommandSyntaxException; + +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.PreviewInfo; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.wrappers.PreviewableFunction; @@ -81,7 +82,7 @@ public MutableComponent parseChatPreviewQuery(String chatPreviewQuery) { Object component; try { @SuppressWarnings("rawtypes") final PreviewInfo previewInfo; - if (CommandAPIHandler.getInstance().lookupPreviewableLegacyStatus(path)) { + if (BaseHandler.getInstance().lookupPreviewableLegacyStatus(path)) { BaseComponent[] parsedInput; try { parsedInput = nms.getChat(results.getContext().build(fullInput), path.get(path.size() - 1)); @@ -107,7 +108,7 @@ public MutableComponent parseChatPreviewQuery(String chatPreviewQuery) { if (component != null) { if (component instanceof BaseComponent[] baseComponent) { jsonToSend = ComponentSerializer.toString(baseComponent); - } else if (CommandAPIHandler.getInstance().getPaper().isPresent()) { + } else if (BaseHandler.getInstance().getPaper().isPresent()) { if (component instanceof Component adventureComponent) { jsonToSend = GsonComponentSerializer.gson().serialize(adventureComponent); } else { @@ -138,7 +139,7 @@ public static InitialParse processChatPreviewQuery(String chatPreviewQuery, NMS< for (ParsedCommandNode commandNode : results.getContext().getNodes()) { path.add(commandNode.getNode().getName()); } - Optional> preview = CommandAPIHandler.getInstance().lookupPreviewable(path); + Optional> preview = BaseHandler.getInstance().lookupPreviewable(path); cachedResult = new InitialParse(fullInput, results, path, preview); return cachedResult; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java index 2f33bfa3a6..b239f4325b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java @@ -69,7 +69,9 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.arguments.EntitySelector; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.preprocessor.Differs; @@ -142,7 +144,7 @@ * Any of these that do not work should be removed or implemented otherwise * (introducing another NMS_Common module perhaps? */ -public abstract class NMS_Common implements NMS { +public abstract class NMS_Common extends BukkitPlatform { private static NamespacedKey fromResourceLocation(ResourceLocation key) { return NamespacedKey.fromString(key.getNamespace() + ":" + key.getPath()); @@ -537,7 +539,7 @@ public Location2D getLocation2DPrecise(CommandContext cmdCtx public final MathOperation getMathOperation(CommandContext cmdCtx, String key) throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly OperationArgument.getOperation(cmdCtx, key); - return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); } @Override @@ -634,7 +636,7 @@ public final String getScoreHolderSingle(CommandContext cmdC @Unimplemented(because = NAME_CHANGED, info = "i (1.17) -> getRotation (1.18) -> l (1.19)") @Unimplemented(because = NAME_CHANGED, info = "getEntity (1.17) -> getEntity (1.18) -> g (1.19)") @Unimplemented(because = NAME_CHANGED, info = "getWorld (1.17) -> getLevel (1.18) -> f (1.19)") - public abstract CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative); + public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative); @Override @Unimplemented(because = REQUIRES_CRAFTBUKKIT, classNamed = "CraftServer") diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index f016e31d39..e25b9d08fa 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -45,7 +45,7 @@ public void onLoad() { CommandAPI.config = new InternalConfig(getConfig(), NBTContainer.class, NBTContainer::new, new File(getDataFolder(), "command_registration.json")); // Check dependencies for CommandAPI - CommandAPIHandler.getInstance().checkDependencies(); + BaseHandler.getInstance().checkDependencies(); // Convert all plugins to be converted for (Entry pluginToConvert : CommandAPI.config.getPluginsToConvert()) { From a77757d648b3304a729ca7c266af669757fa3e9e Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 11 Oct 2022 07:20:29 -0400 Subject: [PATCH 028/638] Update getSenderForCommand and getCommandSenderFromCommandSource for 1.13 NMS --- .../abstractions/AbstractPlatform.java | 2 +- .../dev/jorel/commandapi/BukkitPlatform.java | 14 +++---- .../java/dev/jorel/commandapi/nms/NMS.java | 40 ++++++++++--------- .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 37 +++++++++++------ .../dev/jorel/commandapi/nms/NMS_1_13_2.java | 8 ++-- .../jorel/commandapi/nms/NMSWrapper_1_13.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_13.java | 34 ++++++++++------ .../jorel/commandapi/VelocityPlatform.java | 4 +- 8 files changed, 83 insertions(+), 59 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 77c501b686..4fa3a5e9b4 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -29,7 +29,7 @@ public abstract class AbstractPlatform { // Converts a command source into its source. For Bukkit, this // is implemented in NMS. TODO: For Velocity, I have no idea what // a command source is or consists of - public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); + public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); // Registers a permission. Bukkit's permission system requires permissions to be "registered" // before they can be used. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 4619c129f6..f236662c76 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -3,6 +3,7 @@ import java.util.List; import java.util.function.Function; +import dev.jorel.commandapi.preprocessor.Unimplemented; import org.bukkit.NamespacedKey; import com.mojang.brigadier.builder.LiteralArgumentBuilder; @@ -14,6 +15,7 @@ import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.nms.NMS; +import org.bukkit.command.CommandSender; // BukkitPlatform is an AbstractPlatform, but also needs all of the methods from // NMS, so it implements NMS. Our implementation of BukkitPlatform is now derived @@ -28,16 +30,12 @@ public static BukkitPlatform get() { } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { - // TODO Auto-generated method stub - return null; - } + @Unimplemented(because = Unimplemented.REASON.REQUIRES_CSS) + public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); @Override - public AbstractCommandSender getCommandSenderFromCommandSource(Source cs) { - // TODO Auto-generated method stub - return null; - } + @Unimplemented(because = Unimplemented.REASON.REQUIRES_CSS) + public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); @Override public void registerPermission(String string) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java index c67972c207..bd6d6580b9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java @@ -224,13 +224,14 @@ Predicate getBlockPredicate(CommandContext cmdCtx */ CommandListenerWrapper getCLWFromCommandSender(CommandSender sender); - /** - * Returns a CommandSender of a given CommandListenerWrapper object - * - * @param clw The CommandListenerWrapper object - * @return A CommandSender (not proxied) from the command listener wrapper - */ - CommandSender getCommandSenderFromCSS(CommandListenerWrapper clw); +// Replaced by AbstractPlatform#getCommandSenderFromCommandSource +// /** +// * Returns a CommandSender of a given CommandListenerWrapper object +// * +// * @param clw The CommandListenerWrapper object +// * @return A CommandSender (not proxied) from the command listener wrapper +// */ +// CommandSender getCommandSenderFromCSS(CommandListenerWrapper clw); Environment getDimension(CommandContext cmdCtx, String key) throws CommandSyntaxException; @@ -305,18 +306,19 @@ Collection getScoreHolderMultiple(CommandContext String getScoreHolderSingle(CommandContext cmdCtx, String key) throws CommandSyntaxException; - /** - * Retrieves a CommandSender, given some CommandContext. This method should - * handle Proxied CommandSenders for entities if a Proxy is being used. - * - * @param cmdCtx The - * CommandContext<CommandListenerWrapper> - * for a given command - * @param forceNative whether or not the CommandSender should be a - * NativeProxyCommandSender or not - * @return A CommandSender instance (such as a ProxiedNativeCommandSender or - * Player) - */ +// Replaced by AbstractPlatform#getSenderForCommand +// /** +// * Retrieves a CommandSender, given some CommandContext. This method should +// * handle Proxied CommandSenders for entities if a Proxy is being used. +// * +// * @param cmdCtx The +// * CommandContext<CommandListenerWrapper> +// * for a given command +// * @param forceNative whether or not the CommandSender should be a +// * NativeProxyCommandSender or not +// * @return A CommandSender instance (such as a ProxiedNativeCommandSender or +// * Player) +// */ // CommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index 9b06fccc83..f7a7210ec3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -17,6 +17,9 @@ import java.util.function.ToIntFunction; import com.mojang.brigadier.Message; +import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.*; import org.bukkit.Axis; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -32,11 +35,7 @@ import org.bukkit.block.Biome; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; -import org.bukkit.command.RemoteConsoleCommandSender; -import org.bukkit.command.SimpleCommandMap; +import org.bukkit.command.*; import org.bukkit.craftbukkit.v1_13_R2.CraftLootTable; import org.bukkit.craftbukkit.v1_13_R2.CraftParticle; import org.bukkit.craftbukkit.v1_13_R2.CraftServer; @@ -153,7 +152,7 @@ import net.minecraft.server.v1_13_R2.Vec2F; import net.minecraft.server.v1_13_R2.Vec3D; -abstract class NMSWrapper_1_13_1 implements NMS {} +abstract class NMSWrapper_1_13_1 extends BukkitPlatform {} /** * NMS implementation for Minecraft 1.13.1 @@ -550,12 +549,24 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public CommandSender getCommandSenderFromCSS(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { - return clw.getBukkitSender(); - } catch (UnsupportedOperationException e) { - return null; + CommandSender sender = clw.getBukkitSender(); + if (sender instanceof BlockCommandSender block) + return new BukkitBlockCommandSender(block); + if (sender instanceof ConsoleCommandSender console) + return new BukkitConsoleCommandSender(console); + if (sender instanceof Player player) + return new BukkitPlayer(player); + if (sender instanceof org.bukkit.entity.Entity entity) + return new BukkitEntity(entity); + if (sender instanceof NativeProxyCommandSender nativeProxy) + return new BukkitNativeProxyCommandSender(nativeProxy); + if (sender instanceof ProxiedCommandSender proxy) + return new BukkitProxiedCommandSender(proxy); + } catch (UnsupportedOperationException ignored) { } + return null; } @Differs(from = "1.13", by = "Implements getDimension for EnvironmentArgument") @@ -840,7 +851,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); @@ -852,9 +863,9 @@ public CommandSender getSenderForCommand(CommandContext Entity proxyEntity = clw.f(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return getCommandSenderFromCommandSource(clw); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java index 9d6c866d9c..4846f841a0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java @@ -2,6 +2,8 @@ import java.util.Map; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.command.CommandSender; @@ -76,7 +78,7 @@ public IntegerRange getIntRange(CommandContext cmdCtx, S @Differs(from = "1.13.1", by = "clw.f() -> clw.getEntity()") @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); @@ -88,9 +90,9 @@ public CommandSender getSenderForCommand(CommandContext Entity proxyEntity = clw.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return getCommandSenderFromCommandSource(clw); } } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java index 021d059eb7..5829ca6b73 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi.nms; +import dev.jorel.commandapi.BukkitPlatform; import net.minecraft.server.v1_13_R1.CommandListenerWrapper; -abstract class NMSWrapper_1_13 implements NMS {} \ No newline at end of file +abstract class NMSWrapper_1_13 extends BukkitPlatform {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index 2b8d758d2f..acedd62360 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -17,6 +17,8 @@ import java.util.function.ToIntFunction; import com.mojang.brigadier.Message; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.*; import org.bukkit.Axis; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -32,11 +34,7 @@ import org.bukkit.block.Biome; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; -import org.bukkit.command.RemoteConsoleCommandSender; -import org.bukkit.command.SimpleCommandMap; +import org.bukkit.command.*; import org.bukkit.craftbukkit.v1_13_R1.CraftLootTable; import org.bukkit.craftbukkit.v1_13_R1.CraftParticle; import org.bukkit.craftbukkit.v1_13_R1.CraftServer; @@ -543,12 +541,24 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public CommandSender getCommandSenderFromCSS(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { - return clw.getBukkitSender(); - } catch (UnsupportedOperationException e) { - return null; + CommandSender sender = clw.getBukkitSender(); + if (sender instanceof BlockCommandSender block) + return new BukkitBlockCommandSender(block); + if (sender instanceof ConsoleCommandSender console) + return new BukkitConsoleCommandSender(console); + if (sender instanceof Player player) + return new BukkitPlayer(player); + if (sender instanceof org.bukkit.entity.Entity entity) + return new BukkitEntity(entity); + if (sender instanceof NativeProxyCommandSender nativeProxy) + return new BukkitNativeProxyCommandSender(nativeProxy); + if (sender instanceof ProxiedCommandSender proxy) + return new BukkitProxiedCommandSender(proxy); + } catch (UnsupportedOperationException ignored) { } + return null; } @Override @@ -823,7 +833,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); @@ -835,9 +845,9 @@ public CommandSender getSenderForCommand(CommandContext Entity proxyEntity = clw.f(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return getCommandSenderFromCommandSource(clw); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index 5246309a64..b6c8b86c3d 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -43,7 +43,7 @@ public void unregister(String commandName) { } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { // TODO: This method MAY be completely identical to getCommandSenderFromCommandSource. // In Bukkit, this is NOT the case - we have to apply certain changes based @@ -56,7 +56,7 @@ public AbstractCommandSender getSenderForCommand(Comman } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandSource cs) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandSource cs) { // Given a Brigadier CommandContext source (result of CommandContext.getSource), // we need to convert that to an AbstractCommandSender. if(cs instanceof ConsoleCommandSource ccs) From 6494647348b27e8e4aee758129e36f3e639cc7eb Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 11 Oct 2022 08:08:08 -0400 Subject: [PATCH 029/638] Reduce repetitive code in 1.13 NMS with BukkitPlatform#wrapCommandSender --- .../dev/jorel/commandapi/BukkitPlatform.java | 22 +++++++++++++++++++ .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 18 +++------------ .../dev/jorel/commandapi/nms/NMS_1_13_2.java | 2 +- .../dev/jorel/commandapi/nms/NMS_1_13.java | 20 ++++------------- 4 files changed, 30 insertions(+), 32 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index f236662c76..f04eeb436f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -3,7 +3,9 @@ import java.util.List; import java.util.function.Function; +import dev.jorel.commandapi.commandsenders.*; import dev.jorel.commandapi.preprocessor.Unimplemented; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; import org.bukkit.NamespacedKey; import com.mojang.brigadier.builder.LiteralArgumentBuilder; @@ -15,7 +17,11 @@ import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.nms.NMS; +import org.bukkit.command.BlockCommandSender; import org.bukkit.command.CommandSender; +import org.bukkit.command.ConsoleCommandSender; +import org.bukkit.command.ProxiedCommandSender; +import org.bukkit.entity.Player; // BukkitPlatform is an AbstractPlatform, but also needs all of the methods from // NMS, so it implements NMS. Our implementation of BukkitPlatform is now derived @@ -37,6 +43,22 @@ public static BukkitPlatform get() { @Unimplemented(because = Unimplemented.REASON.REQUIRES_CSS) public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); + public AbstractCommandSender wrapCommandSender(CommandSender sender) { + if (sender instanceof BlockCommandSender block) + return new BukkitBlockCommandSender(block); + if (sender instanceof ConsoleCommandSender console) + return new BukkitConsoleCommandSender(console); + if (sender instanceof Player player) + return new BukkitPlayer(player); + if (sender instanceof org.bukkit.entity.Entity entity) + return new BukkitEntity(entity); + if (sender instanceof NativeProxyCommandSender nativeProxy) + return new BukkitNativeProxyCommandSender(nativeProxy); + if (sender instanceof ProxiedCommandSender proxy) + return new BukkitProxiedCommandSender(proxy); + return null; + } + @Override public void registerPermission(String string) { // TODO Auto-generated method stub diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index f7a7210ec3..7b7bf30e95 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -551,22 +551,10 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { @Override public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { - CommandSender sender = clw.getBukkitSender(); - if (sender instanceof BlockCommandSender block) - return new BukkitBlockCommandSender(block); - if (sender instanceof ConsoleCommandSender console) - return new BukkitConsoleCommandSender(console); - if (sender instanceof Player player) - return new BukkitPlayer(player); - if (sender instanceof org.bukkit.entity.Entity entity) - return new BukkitEntity(entity); - if (sender instanceof NativeProxyCommandSender nativeProxy) - return new BukkitNativeProxyCommandSender(nativeProxy); - if (sender instanceof ProxiedCommandSender proxy) - return new BukkitProxiedCommandSender(proxy); + return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException ignored) { + return null; } - return null; } @Differs(from = "1.13", by = "Implements getDimension for EnvironmentArgument") @@ -865,7 +853,7 @@ public AbstractCommandSender getSenderForCommand(CommandContext getSenderForCommand(CommandContext getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { - CommandSender sender = clw.getBukkitSender(); - if (sender instanceof BlockCommandSender block) - return new BukkitBlockCommandSender(block); - if (sender instanceof ConsoleCommandSender console) - return new BukkitConsoleCommandSender(console); - if (sender instanceof Player player) - return new BukkitPlayer(player); - if (sender instanceof org.bukkit.entity.Entity entity) - return new BukkitEntity(entity); - if (sender instanceof NativeProxyCommandSender nativeProxy) - return new BukkitNativeProxyCommandSender(nativeProxy); - if (sender instanceof ProxiedCommandSender proxy) - return new BukkitProxiedCommandSender(proxy); - } catch (UnsupportedOperationException ignored) { + return wrapCommandSender(clw.getBukkitSender()); + } catch (UnsupportedOperationException e) { + return null; } - return null; } @Override @@ -847,7 +835,7 @@ public AbstractCommandSender getSenderForCommand(CommandContext Date: Tue, 11 Oct 2022 09:24:15 -0400 Subject: [PATCH 030/638] Update getSenderForCommand and getCommandSenderFromCommandSource for the rest of bukkit NMS --- .../commandsenders/BukkitCommandSender.java | 31 ------------------- .../jorel/commandapi/nms/NMSWrapper_1_14.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_14.java | 12 ++++--- .../jorel/commandapi/nms/NMSWrapper_1_15.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_15.java | 12 ++++--- .../commandapi/nms/NMSWrapper_1_16_R1.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 12 ++++--- .../commandapi/nms/NMSWrapper_1_16_R2.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_16_R2.java | 12 ++++--- .../commandapi/nms/NMSWrapper_1_16_4_R3.java | 3 +- .../jorel/commandapi/nms/NMS_1_16_4_R3.java | 12 ++++--- .../commandapi/nms/NMSWrapper_1_16_R3.java | 6 ---- .../jorel/commandapi/nms/NMS_1_17_Common.java | 8 +++-- .../dev/jorel/commandapi/nms/NMS_1_18_R2.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_18_R1.java | 8 +++-- .../jorel/commandapi/nms/NMS_1_19_Common.java | 3 +- .../dev/jorel/commandapi/nms/NMS_Common.java | 4 +-- 17 files changed, 59 insertions(+), 79 deletions(-) delete mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java delete mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R3.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java deleted file mode 100644 index 5528b8d4c4..0000000000 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java +++ /dev/null @@ -1,31 +0,0 @@ -package dev.jorel.commandapi.commandsenders; - -import org.bukkit.command.CommandSender; - -import dev.jorel.commandapi.abstractions.AbstractCommandSender; - -public class BukkitCommandSender implements AbstractCommandSender { - - private final CommandSender sender; - - public BukkitCommandSender(CommandSender sender) { - // TODO: We prooooooobably want to create the other Bukkit wrappers instead of using this - this.sender = sender; - } - - @Override - public boolean hasPermission(String permissionNode) { - return sender.hasPermission(permissionNode); - } - - @Override - public boolean isOp() { - return sender.isOp(); - } - - @Override - public CommandSender getSource() { - return sender; - } - -} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java index 789b5c114a..55cbfced4a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi.nms; +import dev.jorel.commandapi.BukkitPlatform; import net.minecraft.server.v1_14_R1.CommandListenerWrapper; -abstract class NMSWrapper_1_14 implements NMS {} \ No newline at end of file +abstract class NMSWrapper_1_14 extends BukkitPlatform {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index a778454f28..ae9535b001 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -19,6 +19,8 @@ import java.util.function.ToIntFunction; import com.mojang.brigadier.Message; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Axis; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -527,9 +529,9 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public CommandSender getCommandSenderFromCSS(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { - return clw.getBukkitSender(); + return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { return null; } @@ -818,7 +820,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx @Differs(from = "1.13.2", by = "Vec3D accessor methods for x -> getX(), y -> getY(), z -> getZ()") @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); @@ -830,9 +832,9 @@ public CommandSender getSenderForCommand(CommandContext Entity proxyEntity = clw.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return wrapCommandSender(sender); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java index 2427b2eef8..613a4f9713 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi.nms; +import dev.jorel.commandapi.BukkitPlatform; import net.minecraft.server.v1_15_R1.CommandListenerWrapper; -abstract class NMSWrapper_1_15 implements NMS {} \ No newline at end of file +abstract class NMSWrapper_1_15 extends BukkitPlatform {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index df7622416d..dd06350a17 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -19,6 +19,8 @@ import java.util.function.ToIntFunction; import com.mojang.brigadier.Message; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Axis; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -526,9 +528,9 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public CommandSender getCommandSenderFromCSS(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { - return clw.getBukkitSender(); + return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { return null; } @@ -818,7 +820,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); @@ -830,9 +832,9 @@ public CommandSender getSenderForCommand(CommandContext Entity proxyEntity = clw.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return wrapCommandSender(sender); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java index 182a67ced1..f9109c2c59 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi.nms; +import dev.jorel.commandapi.BukkitPlatform; import net.minecraft.server.v1_16_R1.CommandListenerWrapper; -abstract class NMSWrapper_1_16_R1 implements NMS {} \ No newline at end of file +abstract class NMSWrapper_1_16_R1 extends BukkitPlatform {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index f5d87244c4..8550c10878 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -23,6 +23,8 @@ import java.util.function.ToIntFunction; import com.mojang.brigadier.Message; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Axis; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -546,9 +548,9 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public CommandSender getCommandSenderFromCSS(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { - return clw.getBukkitSender(); + return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { return null; } @@ -834,7 +836,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); @@ -846,9 +848,9 @@ public CommandSender getSenderForCommand(CommandContext Entity proxyEntity = clw.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return wrapCommandSender(sender); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java index 9087363728..52bb1b6756 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi.nms; +import dev.jorel.commandapi.BukkitPlatform; import net.minecraft.server.v1_16_R2.CommandListenerWrapper; -abstract class NMSWrapper_1_16_R2 implements NMS {} \ No newline at end of file +abstract class NMSWrapper_1_16_R2 extends BukkitPlatform {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index e7cbc3cfd7..52db6c5916 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -23,6 +23,8 @@ import java.util.function.ToIntFunction; import com.mojang.brigadier.Message; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Axis; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -545,9 +547,9 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public CommandSender getCommandSenderFromCSS(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { - return clw.getBukkitSender(); + return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { return null; } @@ -831,7 +833,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); @@ -843,9 +845,9 @@ public CommandSender getSenderForCommand(CommandContext Entity proxyEntity = clw.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return wrapCommandSender(sender); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java index aa5a35d94c..f4fd7e4a59 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi.nms; +import dev.jorel.commandapi.BukkitPlatform; import net.minecraft.server.v1_16_R3.CommandListenerWrapper; -abstract class NMSWrapper_1_16_4_R3 implements NMS {} \ No newline at end of file +abstract class NMSWrapper_1_16_4_R3 extends BukkitPlatform {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index db48d6ffe3..1522a988da 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -43,6 +43,8 @@ import java.util.function.ToIntFunction; import com.mojang.brigadier.Message; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Axis; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -568,9 +570,9 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public CommandSender getCommandSenderFromCSS(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { - return clw.getBukkitSender(); + return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { return null; } @@ -853,7 +855,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); @@ -865,9 +867,9 @@ public CommandSender getSenderForCommand(CommandContext Entity proxyEntity = clw.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return wrapCommandSender(sender); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R3.java deleted file mode 100644 index 5073c3ca82..0000000000 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R3.java +++ /dev/null @@ -1,6 +0,0 @@ -package dev.jorel.commandapi.nms; - -import net.minecraft.server.v1_16_R3.CommandListenerWrapper; - -abstract class NMSWrapper_1_16_R3 implements NMS { -} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java index 80b657de8d..728bae9212 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java @@ -32,6 +32,8 @@ import java.util.function.Predicate; import java.util.function.ToIntFunction; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.Location; @@ -462,7 +464,7 @@ public ParticleData getParticle(CommandContext cmdCtx, St } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); @@ -474,9 +476,9 @@ public CommandSender getSenderForCommand(CommandContext cmdC Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return wrapCommandSender(sender); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java index cd108c14ac..bf7a3aa3d1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java @@ -88,7 +88,6 @@ import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.NMSMeta; @@ -534,7 +533,7 @@ public AbstractCommandSender getSenderForCommand(CommandContext getParticle(CommandContext cmdCtx, St } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); @@ -481,9 +483,9 @@ public CommandSender getSenderForCommand(CommandContext cmdC Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return wrapCommandSender(sender); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java index 4008c7fd11..0100039756 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java @@ -90,7 +90,6 @@ import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.RequireField; @@ -593,7 +592,7 @@ public AbstractCommandSender getSenderForCommand(CommandContext public abstract CommandSourceStack getCLWFromCommandSender(CommandSender sender); @Override - public final CommandSender getCommandSenderFromCSS(CommandSourceStack css) { + public final AbstractCommandSender getCommandSenderFromCommandSource(CommandSourceStack css) { try { - return css.getBukkitSender(); + return wrapCommandSender(css.getBukkitSender()); } catch (UnsupportedOperationException e) { return null; } From 00a340eb240ee35aa346f15b6d3f844ef4fc75a8 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 11 Oct 2022 09:45:23 -0400 Subject: [PATCH 031/638] Fix error in NMS where BaseHandler#getField was being accessed as an instance method when it actually is a static method --- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java | 6 +++--- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java | 6 +++--- .../main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java | 4 ++-- .../main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java | 2 +- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java | 2 +- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java | 2 +- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java | 4 ++-- 11 files changed, 21 insertions(+), 21 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index 7b7bf30e95..6ff06bf8b5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -580,7 +580,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getInstance().getField(EntitySelector.class, "m").set(argument, false); + BaseHandler.getField(EntitySelector.class, "m").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -867,7 +867,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.c(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index e39be084ee..ce00c4b542 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -565,7 +565,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getInstance().getField(EntitySelector.class, "m").set(argument, false); + BaseHandler.getField(EntitySelector.class, "m").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -849,7 +849,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.c(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index ae9535b001..df0c9babd8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -560,7 +560,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); + BaseHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -848,7 +848,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.c(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index dd06350a17..fd8c2d3c56 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -558,7 +558,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); + BaseHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -849,7 +849,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.d(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index 8550c10878..cd8c55d55e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -574,7 +574,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); + BaseHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -864,7 +864,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.e(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } @@ -968,7 +968,7 @@ public void reloadDataPacks() { // Update the CustomFunctionManager for the datapackResources which now has the // new commandDispatcher try { - BaseHandler.getInstance().getField(CustomFunctionManager.class, "g").set(datapackResources.a(), + BaseHandler.getField(CustomFunctionManager.class, "g").set(datapackResources.a(), getBrigadierDispatcher()); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index 52db6c5916..4a6d07e039 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -572,7 +572,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); + BaseHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -861,7 +861,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.e(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getInstance().getField(CraftSound.class, "minecraftKey").get(sound) + if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } @@ -955,7 +955,7 @@ public void reloadDataPacks() { // Update the CustomFunctionManager for the datapackResources which now has the // new commandDispatcher try { - BaseHandler.getInstance().getField(CustomFunctionManager.class, "h").set(datapackResources.a(), + BaseHandler.getField(CustomFunctionManager.class, "h").set(datapackResources.a(), getBrigadierDispatcher()); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index 1522a988da..d97e92671d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -595,7 +595,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getInstance().getField(EntitySelector.class, "checkPermissions").set(argument, false); + BaseHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -968,7 +968,7 @@ public void reloadDataPacks() { // Update the CustomFunctionManager for the datapackResources which now has the // new commandDispatcher try { - BaseHandler.getInstance().getField(CustomFunctionManager.class, "h").set(datapackResources.a(), + BaseHandler.getField(CustomFunctionManager.class, "h").set(datapackResources.a(), getBrigadierDispatcher()); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java index 728bae9212..c02ba592f8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java @@ -304,7 +304,7 @@ public Object getEntitySelector(CommandContext cmdCtx, Strin // to be used by anyone that registers a command via the CommandAPI. EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getInstance().getField(EntitySelector.class, "o").set(argument, false); + BaseHandler.getField(EntitySelector.class, "o").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java index e0783e5aa3..e74fd53d51 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java @@ -60,7 +60,7 @@ public void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - BaseHandler.getInstance().getField(ServerFunctionLibrary.class, "i") + BaseHandler.getField(ServerFunctionLibrary.class, "i") .set(serverResources.getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java index 19e149f470..f6d2d62191 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java @@ -61,7 +61,7 @@ public void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - BaseHandler.getInstance().getField(ServerFunctionLibrary.class, "i") + BaseHandler.getField(ServerFunctionLibrary.class, "i") .set(serverResources.getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java index 8036fb86c6..5a865b2eec 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java @@ -316,7 +316,7 @@ public Object getEntitySelector(CommandContext cmdCtx, Strin // to be used by anyone that registers a command via the CommandAPI. EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getInstance().getField(EntitySelector.class, "o").set(argument, false); + BaseHandler.getField(EntitySelector.class, "o").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -533,7 +533,7 @@ public void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - BaseHandler.getInstance().getField(ServerFunctionLibrary.class, "i") + BaseHandler.getField(ServerFunctionLibrary.class, "i") .set(serverResources.getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); From aced42409b0f4ef78afbaa6a4c6f94295f05b752 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 11 Oct 2022 10:13:55 -0400 Subject: [PATCH 032/638] Parameterize AbstractCommandSender on the platform level so AbstractCommandSender#getSource returns something useful within the platform --- .../src/main/java/dev/jorel/commandapi/BukkitPlatform.java | 6 +++--- .../jorel/commandapi/arguments/AdventureChatArgument.java | 2 +- .../java/dev/jorel/commandapi/arguments/ChatArgument.java | 2 +- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java | 2 +- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java | 4 ++-- .../main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java | 4 ++-- .../main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java | 2 +- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java | 2 +- .../src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java | 2 +- .../main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java | 2 +- .../src/main/java/dev/jorel/commandapi/nms/NMS_Common.java | 4 ++-- .../main/java/dev/jorel/commandapi/VelocityPlatform.java | 4 ++-- 17 files changed, 28 insertions(+), 28 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index f04eeb436f..01c561df50 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -37,13 +37,13 @@ public static BukkitPlatform get() { @Override @Unimplemented(because = Unimplemented.REASON.REQUIRES_CSS) - public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); + public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); @Override @Unimplemented(because = Unimplemented.REASON.REQUIRES_CSS) - public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); + public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); - public AbstractCommandSender wrapCommandSender(CommandSender sender) { + public AbstractCommandSender wrapCommandSender(CommandSender sender) { if (sender instanceof BlockCommandSender block) return new BukkitBlockCommandSender(block); if (sender instanceof ConsoleCommandSender console) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java index 494bd25b6e..44fc468ee8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java @@ -76,7 +76,7 @@ public CommandAPIArgumentType getArgumentType() { @Override public Component parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCSS(cmdCtx.getSource()); + final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); Component component = ((BukkitPlatform) platform).getAdventureChat(cmdCtx, key); if (this.usePreview && getPreview().isPresent() && sender instanceof Player player) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java index 63a04cfbdd..901e1dd555 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java @@ -76,7 +76,7 @@ public CommandAPIArgumentType getArgumentType() { @Override public BaseComponent[] parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCSS(cmdCtx.getSource()); + final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); BaseComponent[] component = ((BukkitPlatform) platform).getChat(cmdCtx, key); if (getPreview().isPresent() && sender instanceof Player player) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index 6ff06bf8b5..f99d4116f3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -549,7 +549,7 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException ignored) { @@ -839,7 +839,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java index 77abeab78e..6c910d0302 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java @@ -78,7 +78,7 @@ public IntegerRange getIntRange(CommandContext cmdCtx, S @Differs(from = "1.13.1", by = "clw.f() -> clw.getEntity()") @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index ce00c4b542..fe0d181eab 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -541,7 +541,7 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -821,7 +821,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index df0c9babd8..fcf7734505 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -529,7 +529,7 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -820,7 +820,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx @Differs(from = "1.13.2", by = "Vec3D accessor methods for x -> getX(), y -> getY(), z -> getZ()") @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index fd8c2d3c56..6e8ad8919b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -528,7 +528,7 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -820,7 +820,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index cd8c55d55e..840db4bf2e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -548,7 +548,7 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -836,7 +836,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index 4a6d07e039..8c4926d400 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -547,7 +547,7 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -833,7 +833,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index d97e92671d..7224cb5eaf 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -570,7 +570,7 @@ public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -855,7 +855,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java index c02ba592f8..fc4496deda 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java @@ -464,7 +464,7 @@ public ParticleData getParticle(CommandContext cmdCtx, St } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java index bf7a3aa3d1..dd210e9f3d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java @@ -519,7 +519,7 @@ public ParticleData getParticle(CommandContext cmdCtx, St } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java index 5a865b2eec..f66d6a5355 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java @@ -471,7 +471,7 @@ public ParticleData getParticle(CommandContext cmdCtx, St } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java index 0100039756..a1b87cfa9a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java @@ -578,7 +578,7 @@ public final ParticleData getParticle(CommandContext cmdC } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java index 78f013c8be..09c960baaa 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java @@ -442,7 +442,7 @@ public final BaseComponent[] getChatComponent(CommandContext public abstract CommandSourceStack getCLWFromCommandSender(CommandSender sender); @Override - public final AbstractCommandSender getCommandSenderFromCommandSource(CommandSourceStack css) { + public final AbstractCommandSender getCommandSenderFromCommandSource(CommandSourceStack css) { try { return wrapCommandSender(css.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -636,7 +636,7 @@ public final String getScoreHolderSingle(CommandContext cmdC @Unimplemented(because = NAME_CHANGED, info = "i (1.17) -> getRotation (1.18) -> l (1.19)") @Unimplemented(because = NAME_CHANGED, info = "getEntity (1.17) -> getEntity (1.18) -> g (1.19)") @Unimplemented(because = NAME_CHANGED, info = "getWorld (1.17) -> getLevel (1.18) -> f (1.19)") - public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative); + public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative); @Override @Unimplemented(because = REQUIRES_CRAFTBUKKIT, classNamed = "CraftServer") diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index b6c8b86c3d..5246309a64 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -43,7 +43,7 @@ public void unregister(String commandName) { } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { // TODO: This method MAY be completely identical to getCommandSenderFromCommandSource. // In Bukkit, this is NOT the case - we have to apply certain changes based @@ -56,7 +56,7 @@ public AbstractCommandSender getSenderForCommand(CommandContext getCommandSenderFromCommandSource(CommandSource cs) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandSource cs) { // Given a Brigadier CommandContext source (result of CommandContext.getSource), // we need to convert that to an AbstractCommandSender. if(cs instanceof ConsoleCommandSource ccs) From f685470a57c12af62ad9ac86ad91c68442d3149b Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 11 Oct 2022 12:49:55 -0400 Subject: [PATCH 033/638] Clean up some errors in BaseHandler --- .../dev/jorel/commandapi/BaseHandler.java | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 66102ec319..51560ceaca 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -114,8 +114,8 @@ public AbstractPlatform getPlatform() { * * @param args set of ordered argument pairs which contain the prompt text * and their argument types - * @param actualArgs * @param executor code to be ran when the command is executed + * @param converted True if this command is being converted from another plugin, and false otherwise * @return a brigadier command which is registered internally * @throws CommandSyntaxException if an error occurs when the command is ran */ @@ -124,7 +124,7 @@ Command generateCommand(Argument[] args, // Generate our command from executor return (cmdCtx) -> { - AbstractCommandSender sender = platform.getSenderForCommand(cmdCtx, executor.isForceNative()); + AbstractCommandSender sender = platform.getSenderForCommand(cmdCtx, executor.isForceNative()); if (converted) { Object[] argObjs = argsToObjectArr(cmdCtx, args); int resultValue = 0; @@ -169,7 +169,7 @@ Command generateCommand(Argument[] args, * @param cmdCtx the command context that will execute this command * @param args the map of strings to arguments * @return an Object[] which can be used in (sender, args) -> - * @throws CommandSyntaxException + * @throws CommandSyntaxException when an argument isn't formatted correctly */ Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) throws CommandSyntaxException { @@ -187,22 +187,18 @@ Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) } /** - * Parses an argument and converts it into its standard Bukkit type (as defined - * in platform.java) - * - * @param type the argument type + * Parses an argument and converts it into its object (as defined in platform.java) + * * @param cmdCtx the command context * @param key the key (declared in arguments) * @param value the value (the argument declared in arguments) - * @param sender the command sender * @return the standard Bukkit type - * @throws CommandSyntaxException + * @throws CommandSyntaxException when an argument isn't formatted correctly */ Object parseArgument(CommandContext cmdCtx, String key, Argument value, Object[] previousArgs) throws CommandSyntaxException { if (value.isListed()) { - // TODO: Specify platform - return value.parseArgument(null, cmdCtx, key, previousArgs); + return value.parseArgument(platform, cmdCtx, key, previousArgs); } else { return null; } @@ -229,7 +225,8 @@ Object parseArgument(CommandContext cmdCtx, String key, Argument valu * used for suggestions for said argument * * - * @param requirements + * @param requirements An arbitrary additional check to perform on the CommandSender + * after the permissions check */ Predicate generatePermissions(String commandName, CommandPermission permission, Predicate> requirements) { @@ -271,7 +268,7 @@ static boolean permissionCheck(AbstractCommandSender sender, CommandPermissio } else if (permission.equals(CommandPermission.OP)) { satisfiesPermissions = sender.isOp(); } else { - satisfiesPermissions = sender.hasPermission(permission.getPermission().get()); + satisfiesPermissions = permission.getPermission().isEmpty() || sender.hasPermission(permission.getPermission().get()); } } if (permission.isNegated()) { @@ -381,7 +378,7 @@ private boolean hasCommandConflict(String commandName, Argument[] args, Strin // Handle arguments with built-in suggestion providers else if (innerArg instanceof ICustomProvidedArgument customProvidedArg - && !innerArg.getOverriddenSuggestions().isPresent()) { + && innerArg.getOverriddenSuggestions().isEmpty()) { return getRequiredArgumentBuilderWithProvider(innerArg, args, platform.getSuggestionProvider(customProvidedArg.getSuggestionProvider())).executes(command); } @@ -407,7 +404,7 @@ else if (innerArg instanceof ICustomProvidedArgument customProvidedArg // Handle arguments with built-in suggestion providers else if (outerArg instanceof ICustomProvidedArgument customProvidedArg - && !outerArg.getOverriddenSuggestions().isPresent()) { + && outerArg.getOverriddenSuggestions().isEmpty()) { outer = getRequiredArgumentBuilderWithProvider(outerArg, args, platform.getSuggestionProvider(customProvidedArg.getSuggestionProvider())).then(outer); } @@ -759,16 +756,17 @@ public boolean lookupPreviewableLegacyStatus(List path) { * @param name the name of the field * @return a Field reference */ - public static final Field getField(Class clazz, String name) { + public static Field getField(Class clazz, String name) { ClassCache key = new ClassCache(clazz, name); if (FIELDS.containsKey(key)) { return FIELDS.get(key); } else { - Field result = null; + Field result; try { result = clazz.getDeclaredField(name); } catch (ReflectiveOperationException e) { e.printStackTrace(); + return null; } result.setAccessible(true); FIELDS.put(key, result); @@ -793,7 +791,7 @@ private record ClassCache(Class clazz, String name) { * A class to compute the Cartesian product of a number of lists. Source: * https://www.programmersought.com/article/86195393650/ */ - private final class CartesianProduct { + private static final class CartesianProduct { // Shouldn't be instantiated private CartesianProduct() { @@ -807,7 +805,7 @@ private CartesianProduct() { * @return a List of lists which represents the Cartesian product of all * elements of the input */ - public static final List> getDescartes(List> list) { + public static List> getDescartes(List> list) { List> returnList = new ArrayList<>(); descartesRecursive(list, 0, returnList, new ArrayList()); return returnList; @@ -824,7 +822,7 @@ public static final List> getDescartes(List> list) { * @param returnList return result * @param cacheList temporarily saved list */ - private static final void descartesRecursive(List> originalList, int position, + private static void descartesRecursive(List> originalList, int position, List> returnList, List cacheList) { List originalItemList = originalList.get(position); for (int i = 0; i < originalItemList.size(); i++) { From 35c5a634a5751d753d100920d24aaeefb461ffa7 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 13 Oct 2022 14:55:00 -0400 Subject: [PATCH 034/638] Move CommandAPI class to commandapi-core, implement plugins as if they were shading --- .../dev/jorel/commandapi/BaseHandler.java | 95 ++++-- .../java/dev/jorel/commandapi/CommandAPI.java | 292 +++++++++++++++++ .../jorel/commandapi/CommandAPIConfig.java | 13 - .../jorel/commandapi/CommandAPILogger.java | 9 + .../commandapi/CommandAPIVersionHandler.java | 20 ++ .../dev/jorel/commandapi/InternalConfig.java | 83 +---- .../abstractions/AbstractPlatform.java | 7 + .../dev/jorel/commandapi/BukkitLogger.java | 26 ++ .../dev/jorel/commandapi/BukkitPlatform.java | 152 ++++++++- .../java/dev/jorel/commandapi/CommandAPI.java | 307 +----------------- .../jorel/commandapi/CommandAPIHandler.java | 62 ---- .../commandapi/CommandAPIVersionHandler.java | 43 --- .../java/dev/jorel/commandapi/Tooltip.java | 4 +- .../commandapi/CommandAPIVersionHandler.java | 16 + .../dev/jorel/commandapi/test/BlankNMS.java | 3 +- .../java/dev/jorel/commandapi/test/Main.java | 1 - .../dev/jorel/commandapi/test/MockNMS.java | 10 +- .../dev/jorel/commandapi/CommandAPIMain.java | 27 +- .../commandapi/CommandAPIVersionHandler.java | 12 +- .../commandapi/CommandAPIVersionHandler.java | 9 + .../dev/jorel/commandapi/VelocityLogger.java | 28 ++ .../jorel/commandapi/VelocityPlatform.java | 21 +- .../dev/jorel/commandapi/CommandAPIMain.java | 18 +- 23 files changed, 690 insertions(+), 568 deletions(-) create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPILogger.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core => commandapi-core}/src/main/java/dev/jorel/commandapi/InternalConfig.java (66%) create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitLogger.java delete mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityLogger.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 51560ceaca..3254ef244f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -48,12 +48,12 @@ // Brigadier's API (definitely the case for Spigot/Paper and Velocity). // // TODO: We can use the Adventure API on Paper and Velocity (NOT SPIGOT) -// and I'm not sure if we can use the Adventure API on Fabric, so let's -// assume we can't until we figure that out. +// and I'm not sure if we can use the Adventure API on Fabric, so let's +// assume we can't until we figure that out. public class BaseHandler { // TODO: Figure out what here gets moved to the common implementation and what - // is platform-specific + // is platform-specific private final static VarHandle COMMANDCONTEXT_ARGUMENTS; @@ -94,15 +94,56 @@ public static String getRawArgumentInput(CommandContext FIELDS = new HashMap<>(); final TreeMap PERMISSIONS_TO_FIX = new TreeMap<>(); - final AbstractPlatform platform; // Access strictly via getPlatform() method which can be overridden + protected final AbstractPlatform platform; // Access strictly via getPlatform() method which can be overridden final List registeredCommands; // Keep track of what has been registered for type checking final Map, IPreviewable, ?>> previewableArguments; // Arguments with previewable chat + private static BaseHandler instance; + // TODO: Wait, how do we instantiate this? protected BaseHandler(AbstractPlatform platform) { this.platform = platform; this.registeredCommands = new ArrayList<>(); this.previewableArguments = new HashMap<>(); + + instance = this; + } + + public void onLoad() { + checkDependencies(); + platform.onLoad(); + } + + private void checkDependencies() { + // Check for common dependencies + try { + Class.forName("com.mojang.brigadier.CommandDispatcher"); + } catch (ClassNotFoundException e) { + new ClassNotFoundException("Could not hook into Brigadier (Are you running Minecraft 1.13 or above?)") + .printStackTrace(); + } + + Class nbtContainerClass = CommandAPI.getConfiguration().getNBTContainerClass(); + if (nbtContainerClass != null && CommandAPI.getConfiguration().getNBTContainerConstructor() != null) { + CommandAPI.logNormal("Hooked into an NBT API with class " + nbtContainerClass.getName()); + } else { + if (CommandAPI.getConfiguration().hasVerboseOutput()) { + CommandAPI.logWarning( + "Could not hook into the NBT API for NBT support. Download it from https://www.spigotmc.org/resources/nbt-api.7939/"); + } + } + } + + public void onEnable(Object plugin) { + platform.onEnable(plugin); + } + + public void onDisable() { + platform.onDisable(); + } + + public static BaseHandler getInstance() { + return instance; } public AbstractPlatform getPlatform() { @@ -349,15 +390,15 @@ private boolean hasCommandConflict(String commandName, Argument[] args, Strin builder2.append(arg[0]).append("<").append(arg[1]).append("> "); } -// CommandAPI.logError(""" -// Failed to register command: -// -// %s %s -// -// Because it conflicts with this previously registered command: -// -// %s %s -// """.formatted(commandName, argumentsAsString, commandName, builder2.toString())); + CommandAPI.logError(""" + Failed to register command: + + %s %s + + Because it conflicts with this previously registered command: + + %s %s + """.formatted(commandName, argumentsAsString, commandName, builder2.toString())); return true; } } @@ -473,15 +514,15 @@ void register(CommandMetaData meta, final Argument[] args, // LiteralArguments if (!(arg instanceof LiteralArgument)) { if (argumentNames.contains(arg.getNodeName())) { -// CommandAPI.logError(""" -// Failed to register command: -// -// %s %s -// -// Because the following argument shares the same node name as another argument: -// -// %s -// """.formatted(meta.commandName, humanReadableCommandArgSyntax, arg.toString())); + CommandAPI.logError(""" + Failed to register command: + + %s %s + + Because the following argument shares the same node name as another argument: + + %s + """.formatted(meta.commandName, humanReadableCommandArgSyntax, arg.toString())); return; } else { argumentNames.add(arg.getNodeName()); @@ -529,7 +570,7 @@ void register(CommandMetaData meta, final Argument[] args, // } // } -// CommandAPI.logInfo("Registering command /" + commandName + " " + humanReadableCommandArgSyntax); + CommandAPI.logInfo("Registering command /" + commandName + " " + humanReadableCommandArgSyntax); // Generate the actual command Command command = generateCommand(args, executor, converted); @@ -549,7 +590,7 @@ void register(CommandMetaData meta, final Argument[] args, // Register aliases for (String alias : aliases) { -// CommandAPI.logInfo("Registering alias /" + alias + " -> " + resultantNode.getName()); + CommandAPI.logInfo("Registering alias /" + alias + " -> " + resultantNode.getName()); aliasNodes.add(platform.registerCommandNode(getLiteralArgumentBuilder(alias) .requires(generatePermissions(alias, permission, requirements)).executes(command))); } @@ -566,9 +607,9 @@ void register(CommandMetaData meta, final Argument[] args, // Register aliases for (String alias : aliases) { -// if (CommandAPI.getConfiguration().hasVerboseOutput()) { -// CommandAPI.logInfo("Registering alias /" + alias + " -> " + resultantNode.getName()); -// } + if (CommandAPI.getConfiguration().hasVerboseOutput()) { + CommandAPI.logInfo("Registering alias /" + alias + " -> " + resultantNode.getName()); + } aliasNodes.add(platform.registerCommandNode(getLiteralArgumentBuilder(alias) .requires(generatePermissions(alias, permission, requirements)).then(commandArguments))); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java new file mode 100644 index 0000000000..628b845fda --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -0,0 +1,292 @@ +package dev.jorel.commandapi; + +import com.mojang.brigadier.Message; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.abstractions.AbstractTooltip; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; + +import java.util.Collections; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Class to register commands with the 1.13 command UI + * + */ +public class CommandAPI { + // Cannot be instantiated + private CommandAPI() { + } + + static { + onDisable(); + } + + private static boolean canRegister; + private static boolean loaded; + private static InternalConfig config; + private static CommandAPILogger logger; + + // Accessing static variables + + /** + * Returns whether the CommandAPI is currently loaded. This should be true when + * {@link CommandAPI#onLoad(CommandAPIConfig, CommandAPILogger)} is called. If the CommandAPI is + * loaded, commands are available to register. + * + * @return whether the CommandAPI has been loaded properly + */ + public static boolean isLoaded() { + return loaded; + } + + /** + * Flag that commands should no longer be registered. After running this, + * {@link CommandAPI#canRegister()} will return false. + */ + public static void stopCommandRegistration() { + CommandAPI.canRegister = false; + } + + /** + * Determines whether command registration is permitted via the CommandAPI + * + * @return true if commands can still be registered + */ + public static boolean canRegister() { + return canRegister; + } + + /** + * Returns the internal configuration used to manage the CommandAPI + * + * @return the internal configuration used to manage the CommandAPI + */ + public static InternalConfig getConfiguration() { + if (config == null) { + CommandAPI.config = new InternalConfig(new CommandAPIConfig()); + logWarning("Could not find any configuration for the CommandAPI. Loading basic built-in configuration. Did you forget to call CommandAPI.onLoad(config, logger)?"); + } + return config; + } + + /** + * Returns the CommandAPI's logger + * + * @return the CommandAPI's logger + */ + public static CommandAPILogger getLogger() { + if (logger == null) { + logger = new DefaultLogger(); + logWarning("Could not find a logger for the CommandAPI. Using built-in logger. Did you forget to call CommandAPI.onLoad(config, logger)?"); + } + return logger; + } + + private static class DefaultLogger extends Logger implements CommandAPILogger { + protected DefaultLogger() { + super("CommandAPI", null); + // TODO: Do we need to set the parent? +// setParent(Bukkit.getServer().getLogger()); + setLevel(Level.ALL); + } + + } + + // Loading, enabling, and disabling + + /** + * Initializes the CommandAPI for loading. This should be placed at the start of + * your onLoad() method. + * + * @param config the configuration to use for the CommandAPI + * @deprecated Please use {@link CommandAPI#onLoad(CommandAPIConfig, CommandAPILogger)} instead + */ + public static void onLoad(CommandAPIConfig config) { + onLoad(config, null); + } + + /** + * Initializes the CommandAPI for loading. This should be placed at the start of + * your onLoad() method. + * + * @param config the configuration to use for the CommandAPI + * @param logger the object to use to send messages + */ + public static void onLoad(CommandAPIConfig config, CommandAPILogger logger) { + if (!loaded) { + // Setup variables + CommandAPI.config = new InternalConfig(config); + CommandAPI.logger = logger; + + // Initialize handlers + AbstractPlatform platform = CommandAPIVersionHandler.getPlatform(); + new BaseHandler<>(platform); + BaseHandler.getInstance().onLoad(); + + + loaded = true; + } else { + getLogger().severe("You've tried to call the CommandAPI's onLoad() method more than once!"); + } + } + + /** + * Enables the CommandAPI. This should be placed at the start of your + * onEnable() method. + * + * @param plugin the plugin that this onEnable method is called from + */ + // TODO: Is an Object the best way to reference a generic plugin? + public static void onEnable(Object plugin) { + BaseHandler.getInstance().onEnable(plugin); + } + + /** + * Unloads the CommandAPI. + */ + public static void onDisable() { + CommandAPI.canRegister = true; + CommandAPI.config = null; + CommandAPI.logger = null; + CommandAPI.loaded = false; + + BaseHandler.getInstance().onDisable(); + } + + // Logging + + /** + * Logs a message to the console using Logger.info() if the configuration has + * verbose logging enabled + * + * @param message the message to log to the console + */ + public static void logInfo(String message) { + if (config.hasVerboseOutput() && !config.hasSilentLogs()) { + getLogger().info(message); + } + } + + /** + * Logs a message from the CommandAPI. If silent logs are enabled, this message + * is not logged. + * + * @param message the message to log + */ + public static void logNormal(String message) { + if (!config.hasSilentLogs()) { + getLogger().info(message); + } + } + + /** + * Logs a warning from the CommandAPI. If silent logs are enabled, this warning + * is not logged. + * + * @param message the message to log as a warning + */ + public static void logWarning(String message) { + if (!config.hasSilentLogs()) { + getLogger().warning(message); + } + } + + /** + * Logs an error from the CommandAPI. This always gets logged, even if silent + * logs are enabled. + * + * @param message the message to log as an error + */ + public static void logError(String message) { + getLogger().severe(message); + } + + // Produce WrapperCommandSyntaxException + + /** + * Forces a command to return a success value of 0 + * + * @param message Description of the error message + * @return a {@link WrapperCommandSyntaxException} that wraps Brigadier's + * {@link CommandSyntaxException} + * @deprecated Please use {@link CommandAPI#failWithString(String)} instead + */ + @Deprecated + public static WrapperCommandSyntaxException fail(String message) { + return failWithString(message); + } + + /** + * Forces a command to return a success value of 0 + * + * @param message Description of the error message + * @return a {@link WrapperCommandSyntaxException} that wraps Brigadier's + * {@link CommandSyntaxException} + */ + public static WrapperCommandSyntaxException failWithString(String message) { + return failWithMessage(AbstractTooltip.messageFromString(message)); + } + + /** + * Forces a command to return a success value of 0 + * + * @param message Description of the error message, formatted as a brigadier message + * @return a {@link WrapperCommandSyntaxException} that wraps Brigadier's + * {@link CommandSyntaxException} + */ + public static WrapperCommandSyntaxException failWithMessage(Message message) { + return new WrapperCommandSyntaxException(new SimpleCommandExceptionType(message).create()); + } + + // Command registration and unregistration + + /** + * Unregisters a command + * + * @param command the name of the command to unregister + */ + public static void unregister(String command) { + // TODO: Uhhh, the platform unregister doesn't have force? + BaseHandler.getInstance().getPlatform().unregister(command, false); + } + + /** + * Unregisters a command, by force (removes all instances of that command) + * + * @param command the name of the command to unregister + * @param force if true, attempt to unregister all instances of the command + * across all plugins as well as minecraft, bukkit and spigot + */ + public static void unregister(String command, boolean force) { + if (!canRegister) { + getLogger().warning("Unexpected unregistering of /" + command + + ", as server is loaded! Unregistering anyway, but this can lead to unstable results!"); + } + BaseHandler.getInstance().getPlatform().unregister(command, force); + } + + /** + * Registers a command. Used with the CommandAPI's Annotation API. + * + * @param commandClass the class to register + */ + public static void registerCommand(Class commandClass) { + try { + Class.forName(commandClass.getName() + "$Command").getDeclaredMethod("register").invoke(null); + } catch (ReflectiveOperationException e) { + e.printStackTrace(); + } + } + + /** + * @return A list of all {@link RegisteredCommand}{@code s} that have been + * registered by the CommandAPI so far. The returned list is immutable. + */ + public static List getRegisteredCommands() { + return Collections.unmodifiableList(BaseHandler.getInstance().registeredCommands); + } +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java index 71284a02bd..30025f867c 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java @@ -23,8 +23,6 @@ import java.io.File; import java.util.function.Function; -import dev.jorel.commandapi.nms.NMS; - /** * A class to contain information about how to configure the CommandAPI during * its loading step. @@ -43,7 +41,6 @@ public class CommandAPIConfig { Function nbtContainerConstructor = null; File dispatcherFile = null; - NMS customNMS; /** * Sets verbose output logging for the CommandAPI if true. @@ -135,15 +132,5 @@ public CommandAPIConfig dispatcherFile(File file) { this.dispatcherFile = file; return this; } - - /** - * Internal. Do not use. - * @param customNMS the NMS implementation to use instead of any existing implementations - * @return this CommandAPIConfig - */ - public CommandAPIConfig setCustomNMS(NMS customNMS) { - this.customNMS = customNMS; - return this; - } } \ No newline at end of file diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPILogger.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPILogger.java new file mode 100644 index 0000000000..c33674e4e6 --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPILogger.java @@ -0,0 +1,9 @@ +package dev.jorel.commandapi; + +public interface CommandAPILogger { + void info(String message); + + void warning(String message); + + void severe(String message); +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java new file mode 100644 index 0000000000..c9357cc131 --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -0,0 +1,20 @@ +package dev.jorel.commandapi; + +import dev.jorel.commandapi.abstractions.AbstractPlatform; + +/** + * This file handles loadeding the correct platform implementation. The CommandAPIVersionHandler + * file within the commandapi-core module is NOT used at run time. Instead, the platform modules + * replace this class with their own version that handles loads the correct class for thier version + */ +public interface CommandAPIVersionHandler { + + /** + * Returns an instance of the version's implementation of AbstractPlatform. + * @param the command source type + * @return an instance of AbstractPlatform which can run on the specified server version + */ + static AbstractPlatform getPlatform() { + throw new RuntimeException("You have the wrong copy of the CommandAPI! If you're shading, did you use commandapi-core instead of commandapi-{platform}-shade?"); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/InternalConfig.java b/commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java similarity index 66% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/InternalConfig.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java index 6f6f300f1d..6a4b679d6e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/InternalConfig.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java @@ -20,22 +20,13 @@ *******************************************************************************/ package dev.jorel.commandapi; -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.function.Function; - -import org.bukkit.Bukkit; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.plugin.InvalidPluginException; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; -import dev.jorel.commandapi.nms.NMS; +import java.io.File; +import java.util.*; +import java.util.Map.Entry; +import java.util.function.Function; /** * Configuration wrapper class. The config.yml file used by the CommandAPI is @@ -60,6 +51,7 @@ public class InternalConfig { private final File dispatcherFile; // List of plugins to convert + // TODO: Can we support command conversion on multiple platforms, or should this be removed from the general config? private final Map pluginsToConvert; // List of plugins which should ignore proxied senders @@ -71,66 +63,6 @@ public class InternalConfig { private final Class nbtContainerClass; private final Function nbtContainerConstructor; - private final NMS customNMS; - - InternalConfig(FileConfiguration fileConfig, Class nbtContainerClass, - Function nbtContainerConstructor, File dispatcherFile) { - this.verboseOutput = fileConfig.getBoolean("verbose-outputs"); - this.silentLogs = fileConfig.getBoolean("silent-logs"); - this.useLatestNMSVersion = fileConfig.getBoolean("use-latest-nms-version"); - this.message_missingExecutorImplementation = fileConfig.getString("messages.missing-executor-implementation"); - this.dispatcherFile = fileConfig.getBoolean("create-dispatcher-json") ? dispatcherFile : null; - this.pluginsToConvert = new HashMap<>(); - this.skipSenderProxy = new ArrayList<>(); - this.commandsToConvert = new ArrayList<>(); - this.nbtContainerClass = nbtContainerClass; - this.nbtContainerConstructor = nbtContainerConstructor; - this.customNMS = null; - - if (!fileConfig.getList("plugins-to-convert").isEmpty() - && fileConfig.getMapList("plugins-to-convert").isEmpty()) { - CommandAPI.getLogger() - .severe("plugins-to-convert has an invalid type. Did you miss a colon (:) after a plugin name?"); - } - - for (Map map : fileConfig.getMapList("plugins-to-convert")) { - String[] pluginCommands; - if (map.values() == null || (map.values().size() == 1 && map.values().iterator().next() == null)) { - pluginCommands = new String[0]; - } else { - @SuppressWarnings("unchecked") - List commands = (List) map.values().iterator().next(); - pluginCommands = commands.toArray(new String[0]); - } - - String pluginName = (String) map.keySet().iterator().next(); - Plugin plugin = Bukkit.getPluginManager().getPlugin(pluginName); - if (plugin != null) { - if (plugin instanceof JavaPlugin javaPlugin) { - pluginsToConvert.put(javaPlugin, pluginCommands); - } else { - new InvalidPluginException("Plugin " + pluginName + " is not a JavaPlugin!").printStackTrace(); - } - } else { - new InvalidPluginException("Could not find a plugin " + pluginName + "! Has it been loaded properly?") - .printStackTrace(); - } - } - - for (String pluginName : fileConfig.getStringList("skip-sender-proxy")) { - if (Bukkit.getPluginManager().getPlugin(pluginName) != null) { - this.skipSenderProxy.add(pluginName); - } else { - new InvalidPluginException("Could not find a plugin " + pluginName + "! Has it been loaded properly?") - .printStackTrace(); - } - } - - for (String commandName : fileConfig.getStringList("other-commands-to-convert")) { - this.commandsToConvert.add(commandName); - } - } - /** * Creates an {@link InternalConfig} * @@ -157,7 +89,6 @@ public InternalConfig(CommandAPIConfig config) { this.commandsToConvert = new ArrayList<>(); this.nbtContainerClass = config.nbtContainerClass; this.nbtContainerConstructor = config.nbtContainerConstructor; - this.customNMS = config.customNMS; } /** @@ -242,8 +173,4 @@ public Class getNBTContainerClass() { return this.nbtContainerConstructor; } - public NMS getCustomNMS() { - return this.customNMS; - } - } \ No newline at end of file diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 4fa3a5e9b4..6694045ba6 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -18,6 +18,13 @@ public abstract class AbstractPlatform { // AbstractPlatform implementation. The only things in here are going // to be supppppppppper low-level stuff + public abstract void onLoad(); + + public abstract void onEnable(Object plugin); + + public abstract void onDisable(); + + // "Source" in this case (for CommandContext) is something like a // CommandListenerWrapper (Spigot mappings) or CommandSourceStack (Mojang mappings). // diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitLogger.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitLogger.java new file mode 100644 index 0000000000..a6bb3c2a66 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitLogger.java @@ -0,0 +1,26 @@ +package dev.jorel.commandapi; + +import java.util.logging.Logger; + +public class BukkitLogger implements CommandAPILogger{ + private final Logger parent; + + public BukkitLogger(Logger parent) { + this.parent = parent; + } + + @Override + public void info(String message) { + parent.info(message); + } + + @Override + public void warning(String message) { + parent.warning(message); + } + + @Override + public void severe(String message) { + parent.severe(message); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 01c561df50..302c861a41 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -1,11 +1,13 @@ package dev.jorel.commandapi; +import java.util.ArrayList; import java.util.List; import java.util.function.Function; import dev.jorel.commandapi.commandsenders.*; import dev.jorel.commandapi.preprocessor.Unimplemented; import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; import com.mojang.brigadier.builder.LiteralArgumentBuilder; @@ -22,6 +24,12 @@ import org.bukkit.command.ConsoleCommandSender; import org.bukkit.command.ProxiedCommandSender; import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; +import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.plugin.java.JavaPlugin; // BukkitPlatform is an AbstractPlatform, but also needs all of the methods from // NMS, so it implements NMS. Our implementation of BukkitPlatform is now derived @@ -30,11 +38,130 @@ public abstract class BukkitPlatform extends AbstractPlatform im // Blah blah access instance directly and all of that stuff private static BukkitPlatform instance; - + + public BukkitPlatform() { + instance = this; + } + + private PaperImplementations paper; + public static BukkitPlatform get() { return instance; } + public PaperImplementations getPaper() { + return paper; + } + + @Override + public void onLoad() { + checkDependencies(); + } + + private void checkDependencies() { + // Log successful hooks + final String nmsClassHierarchy; + { + List nmsClassHierarchyList = new ArrayList<>(); + Class nmsClass = getClass(); + while (nmsClass != BukkitPlatform.class) { + nmsClassHierarchyList.add(nmsClass.getSimpleName()); + nmsClass = nmsClass.getSuperclass(); + } + nmsClassHierarchyList.add("NMS"); + nmsClassHierarchy = String.join(" > ", nmsClassHierarchyList); + } + + CommandAPI.logInfo("Hooked into NMS " + nmsClassHierarchy + " (compatible with " + + String.join(", ", compatibleVersions()) + ")"); + + try { + Class.forName("org.spigotmc.SpigotConfig"); + CommandAPI.logNormal("Hooked into Spigot successfully for Chat/ChatComponents"); + } catch (ClassNotFoundException e) { + if (CommandAPI.getConfiguration().hasVerboseOutput()) { + CommandAPI.logWarning("Could not hook into Spigot for Chat/ChatComponents"); + } + } + + try { + Class.forName("net.kyori.adventure.text.Component"); + CommandAPI.logNormal("Hooked into Adventure for AdventureChat/AdventureChatComponents"); + } catch (ClassNotFoundException e) { + if (CommandAPI.getConfiguration().hasVerboseOutput()) { + CommandAPI.logWarning("Could not hook into Adventure for AdventureChat/AdventureChatComponents"); + } + } + + try { + Class.forName("io.papermc.paper.event.server.ServerResourcesReloadedEvent"); + paper = new PaperImplementations(true, this); + CommandAPI.logNormal("Hooked into Paper for paper-specific API implementations"); + } catch (ClassNotFoundException e) { + if (CommandAPI.getConfiguration().hasVerboseOutput()) { + CommandAPI.logWarning("Could not hook into Paper for /minecraft:reload. Consider upgrading to Paper: https://papermc.io/"); + } + } + } + + @Override + public void onEnable(Object pluginObject) { + JavaPlugin plugin = (JavaPlugin) pluginObject; + + // Prevent command registration after server has loaded + Bukkit.getScheduler().runTaskLater(plugin, () -> { + CommandAPI.stopCommandRegistration(); + + // Sort out permissions after the server has finished registering them all + // TODO: Where are the permissions fixed and help updated? + BaseHandler.fixPermissions(); + reloadDataPacks(); + BaseHandler.updateHelpForCommands(); + }, 0L); + + // (Re)send command graph packet to players when they join + Bukkit.getServer().getPluginManager().registerEvents(new Listener() { + + // For some reason, any other priority doesn't work + @EventHandler(priority = EventPriority.MONITOR) + public void onPlayerJoin(PlayerJoinEvent e) { + resendPackets(e.getPlayer()); + } + + }, plugin); + + // On 1.19+, enable chat preview if the server allows it + if(canUseChatPreview()) { + Bukkit.getServer().getPluginManager().registerEvents(new Listener() { + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent e) { + if(Bukkit.shouldSendChatPreviews()) { + hookChatPreview(plugin, e.getPlayer()); + } + } + + @EventHandler + public void onPlayerQuit(PlayerQuitEvent e) { + if(Bukkit.shouldSendChatPreviews()) { + unhookChatPreview(e.getPlayer()); + } + } + + }, plugin); + CommandAPI.logNormal("Chat preview enabled"); + } else { + CommandAPI.logNormal("Chat preview is not available"); + } + + paper.registerReloadHandler(plugin); + } + + @Override + public void onDisable() { + + } + @Override @Unimplemented(because = Unimplemented.REASON.REQUIRES_CSS) public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); @@ -62,7 +189,7 @@ public AbstractCommandSender wrapCommandSender(CommandS @Override public void registerPermission(String string) { // TODO Auto-generated method stub - + } @Override @@ -74,7 +201,7 @@ public SuggestionProvider getSuggestionProvider(SuggestionProviders sugg @Override public void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes) { // TODO Auto-generated method stub - + } @Override @@ -86,31 +213,30 @@ public LiteralCommandNode registerCommandNode(LiteralArgumentBuilder * Composes a S to a NamespacedKey mapping function to * convert S to a String - * + * * @param mapper the mapping function from S to * NamespacedKey * @return a composed function that converts S to - * String + * String */ public static Function fromKey(Function mapper) { return mapper.andThen(NamespacedKey::toString); } - } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index ed06d7b2bd..ecac5a5048 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -20,225 +20,20 @@ *******************************************************************************/ package dev.jorel.commandapi; -import java.util.Collections; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -import com.mojang.brigadier.Message; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import net.kyori.adventure.text.Component; import net.md_5.bungee.api.chat.BaseComponent; -import org.bukkit.Bukkit; import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; -import org.bukkit.event.player.PlayerJoinEvent; -import org.bukkit.event.player.PlayerQuitEvent; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.java.JavaPlugin; - -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; - -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * Class to register commands with the 1.13 command UI * */ -public final class CommandAPI { - // TODO: Figure out what here gets moved to the common implementation and what is platform-specific - - // Cannot be instantiated - private CommandAPI() { - } - - static { - onDisable(); - } - - private static boolean canRegister; - static InternalConfig config; - static Logger logger; - private static boolean loaded; - - /** - * Returns whether the CommandAPI is currently loaded. This should be true when - * {@link CommandAPI#onLoad(CommandAPIConfig)} is called. If the CommandAPI is - * loaded, commands are available to register. - * - * @return whether the CommandAPI has been loaded properly - */ - public static boolean isLoaded() { - return loaded; - } - - /** - * Returns the internal configuration used to manage the CommandAPI - * - * @return the internal configuration used to manage the CommandAPI - */ - public static InternalConfig getConfiguration() { - if (config == null) { - CommandAPI.onLoad(new CommandAPIConfig()); - logWarning( - "Could not find any configuration for the CommandAPI. Loading basic built-in configuration. Did you forget to call CommandAPI.onLoad(config)?"); - } - return config; - } - - private static class CommandAPILogger extends Logger { - - protected CommandAPILogger() { - super("CommandAPI", null); - setParent(Bukkit.getServer().getLogger()); - setLevel(Level.ALL); - } - - } - - /** - * Unloads the CommandAPI. This should go in your plugin's - * {@link JavaPlugin#onDisable} method. - */ - public static void onDisable() { - CommandAPI.canRegister = true; - CommandAPI.config = null; - CommandAPI.logger = null; - CommandAPI.loaded = false; - - BaseHandler.onDisable(); - } - - /** - * Returns the CommandAPI's logger - * - * @return the CommandAPI's logger - */ - public static Logger getLogger() { - if (logger == null) { - logger = new CommandAPILogger(); - } - return logger; - } - - /** - * Logs a message to the console using Logger.info() if the configuration has - * verbose logging enabled - * - * @param message the message to log to the console - */ - public static void logInfo(String message) { - if (config.hasVerboseOutput() && !config.hasSilentLogs()) { - getLogger().info(message); - } - } - - /** - * Logs a message from the CommandAPI. If silent logs are enabled, this message - * is not logged. - * - * @param message the message to log - */ - public static void logNormal(String message) { - if (!config.hasSilentLogs()) { - getLogger().info(message); - } - } - - /** - * Logs a warning from the CommandAPI. If silent logs are enabled, this warning - * is not logged. - * - * @param message the message to log as a warning - */ - public static void logWarning(String message) { - if (!config.hasSilentLogs()) { - getLogger().warning(message); - } - } - - /** - * Logs an error from the CommandAPI. This always gets logged, even if silent - * logs are enabled. - * - * @param message the message to log as an error - */ - public static void logError(String message) { - getLogger().severe(message); - } - - /** - * Initializes the CommandAPI for loading. This should be placed at the start of - * your onLoad() method. - * - * @param config the configuration to use for the CommandAPI - */ - public static void onLoad(CommandAPIConfig config) { - if (!loaded) { - CommandAPI.config = new InternalConfig(config); - BaseHandler.getInstance().checkDependencies(); - loaded = true; - } else { - getLogger().severe("You've tried to call the CommandAPI's onLoad() method more than once!"); - } - } - - /** - * Enables the CommandAPI. This should be placed at the start of your - * onEnable() method. - * - * @param plugin the plugin that this onEnable method is called from - */ - public static void onEnable(Plugin plugin) { - // Prevent command registration after server has loaded - Bukkit.getScheduler().runTaskLater(plugin, () -> { - canRegister = false; - - // Sort out permissions after the server has finished registering them all - BaseHandler.getInstance().fixPermissions(); - BaseHandler.getInstance().getNMS().reloadDataPacks(); - BaseHandler.getInstance().updateHelpForCommands(); - }, 0L); - - // (Re)send command graph packet to players when they join - Bukkit.getServer().getPluginManager().registerEvents(new Listener() { - - // For some reason, any other priority doesn't work - @EventHandler(priority = EventPriority.MONITOR) - public void onPlayerJoin(PlayerJoinEvent e) { - BaseHandler.getInstance().getNMS().resendPackets(e.getPlayer()); - } - - }, plugin); - - // On 1.19+, enable chat preview if the server allows it - if(BaseHandler.getInstance().getNMS().canUseChatPreview()) { - Bukkit.getServer().getPluginManager().registerEvents(new Listener() { - - @EventHandler - public void onPlayerJoin(PlayerJoinEvent e) { - if(Bukkit.shouldSendChatPreviews()) { - BaseHandler.getInstance().getNMS().hookChatPreview(plugin, e.getPlayer()); - } - } - - @EventHandler - public void onPlayerQuit(PlayerQuitEvent e) { - if(Bukkit.shouldSendChatPreviews()) { - BaseHandler.getInstance().getNMS().unhookChatPreview(e.getPlayer()); - } - } - - }, plugin); - logNormal("Chat preview enabled"); - } else { - logNormal("Chat preview is not available"); - } - - BaseHandler.getInstance().getPaper().registerReloadHandler(plugin); - } +// Renamed Old to avoid conflicts while moving the methods over +public final class OldCommandAPI { + // TODO: Finish moving all the methods in here to the CommandAPI class in commandapi-core + // or BukkitPlatform if they're too Bukkit specific /** * Updates the requirements required for a given player to execute a command. @@ -258,42 +53,6 @@ public static void reloadDatapacks() { BaseHandler.getInstance().getNMS().reloadDataPacks(); } - /** - * Forces a command to return a success value of 0 - * - * @param message Description of the error message - * @return a {@link WrapperCommandSyntaxException} that wraps Brigadier's - * {@link CommandSyntaxException} - * - * @deprecated Please use {@link CommandAPI#failWithString(String)} instead - */ - @Deprecated - public static WrapperCommandSyntaxException fail(String message) { - return failWithString(message); - } - - /** - * Forces a command to return a success value of 0 - * - * @param message Description of the error message - * @return a {@link WrapperCommandSyntaxException} that wraps Brigadier's - * {@link CommandSyntaxException} - */ - public static WrapperCommandSyntaxException failWithString(String message) { - return failWithMessage(Tooltip.messageFromString(message)); - } - - /** - * Forces a command to return a success value of 0 - * - * @param message Description of the error message, formatted as a brigadier message - * @return a {@link WrapperCommandSyntaxException} that wraps Brigadier's - * {@link CommandSyntaxException} - */ - public static WrapperCommandSyntaxException failWithMessage(Message message) { - return new WrapperCommandSyntaxException(new SimpleCommandExceptionType(message).create()); - } - /** * Forces a command to return a success value of 0 * @@ -315,58 +74,4 @@ public static WrapperCommandSyntaxException failWithBaseComponents(BaseComponent public static WrapperCommandSyntaxException failWithAdventureComponent(Component message) { return failWithMessage(Tooltip.messageFromAdventureComponent(message)); } - - /** - * Determines whether command registration is permitted via the CommandAPI - * - * @return true if commands can still be registered - */ - public static boolean canRegister() { - return canRegister; - } - - /** - * Unregisters a command - * - * @param command the name of the command to unregister - */ - public static void unregister(String command) { - BaseHandler.getInstance().unregister(command, false); - } - - /** - * Unregisters a command, by force (removes all instances of that command) - * - * @param command the name of the command to unregister - * @param force if true, attempt to unregister all instances of the command - * across all plugins as well as minecraft, bukkit and spigot - */ - public static void unregister(String command, boolean force) { - if (!canRegister()) { - getLogger().warning("Unexpected unregistering of /" + command - + ", as server is loaded! Unregistering anyway, but this can lead to unstable results!"); - } - BaseHandler.getInstance().unregister(command, force); - } - - /** - * Registers a command. Used with the CommandAPI's Annotation API. - * - * @param commandClass the class to register - */ - public static void registerCommand(Class commandClass) { - try { - Class.forName(commandClass.getName() + "$Command").getDeclaredMethod("register").invoke(null); - } catch (ReflectiveOperationException e) { - e.printStackTrace(); - } - } - - /** - * @return A list of all {@link RegisteredCommand}{@code s} that have been - * registered by the CommandAPI so far. The returned list is immutable. - */ - public static List getRegisteredCommands() { - return Collections.unmodifiableList(BaseHandler.getInstance().registeredCommands); - } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index 681b32fcfb..7d6391a4a1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -195,69 +195,7 @@ private CommandAPIHandler() { this.paper = new PaperImplementations(false, getPlatform()); } - void checkDependencies() { - try { - Class.forName("com.mojang.brigadier.CommandDispatcher"); - } catch (ClassNotFoundException e) { - new ClassNotFoundException("Could not hook into Brigadier (Are you running Minecraft 1.13 or above?)") - .printStackTrace(); - } - - // Log successful hooks - final String nmsClassHierarchy; - { - List nmsClassHierarchyList = new ArrayList<>(); - Class nmsClass = NMS.getClass(); - while(nmsClass.getSuperclass() != null) { - nmsClassHierarchyList.add(nmsClass.getSimpleName()); - nmsClass = nmsClass.getSuperclass(); - } - nmsClassHierarchy = String.join(" > ", nmsClassHierarchyList); - } - - CommandAPI.logInfo("Hooked into NMS " + nmsClassHierarchy + " (compatible with " - + String.join(", ", NMS.compatibleVersions()) + ")"); - - // Checks other dependencies - Class nbtContainerClass = CommandAPI.getConfiguration().getNBTContainerClass(); - if (nbtContainerClass != null && CommandAPI.getConfiguration().getNBTContainerConstructor() != null) { - CommandAPI.logNormal("Hooked into an NBT API with class " + nbtContainerClass.getName()); - } else { - if (CommandAPI.getConfiguration().hasVerboseOutput()) { - CommandAPI.logWarning( - "Could not hook into the NBT API for NBT support. Download it from https://www.spigotmc.org/resources/nbt-api.7939/"); - } - } - try { - Class.forName("org.spigotmc.SpigotConfig"); - CommandAPI.logNormal("Hooked into Spigot successfully for Chat/ChatComponents"); - } catch (ClassNotFoundException e) { - if (CommandAPI.getConfiguration().hasVerboseOutput()) { - CommandAPI.logWarning("Could not hook into Spigot for Chat/ChatComponents"); - } - } - - try { - Class.forName("net.kyori.adventure.text.Component"); - CommandAPI.logNormal("Hooked into Adventure for AdventureChat/AdventureChatComponents"); - } catch (ClassNotFoundException e) { - if (CommandAPI.getConfiguration().hasVerboseOutput()) { - CommandAPI.logWarning("Could not hook into Adventure for AdventureChat/AdventureChatComponents"); - } - } - - try { - Class.forName("io.papermc.paper.event.server.ServerResourcesReloadedEvent"); - paper = new PaperImplementations(true, NMS); - CommandAPI.logNormal("Hooked into Paper for paper-specific API implementations"); - } catch (ClassNotFoundException e) { - if (CommandAPI.getConfiguration().hasVerboseOutput()) { - CommandAPI.logWarning( - "Could not hook into Paper for /minecraft:reload. Consider upgrading to Paper: https://papermc.io/"); - } - } - } /** * Returns an instance of NMS diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java deleted file mode 100644 index 353e92f7d6..0000000000 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi; - -import dev.jorel.commandapi.nms.NMS; - -/** - * This file handles the NMS version to be loaded. The CommandAPIVersionHandler - * file within the commandapi-core module is NOT used at run time. Instead, - * the commandapi-vh module is loaded instead, which doesn't use reflection to - * load NMS instances. - */ -public interface CommandAPIVersionHandler { - - /** - * Returns an instance of the version's implementation of NMS. - * @param the command source type - * @param version the string of the Minecraft version (e.g. 1.16.5 or 1.17) - * @return an instance of NMS which can run on the specified Minecraft version - */ - public static NMS getNMS(String version) { - throw new RuntimeException("You have the wrong copy of the CommandAPI! If you're shading, did you use commandapi-core instead of commandapi-shade?"); - } - -} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java index a95d9e672e..bb034580ec 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java @@ -146,7 +146,7 @@ public static AbstractTooltip ofAdventureComponent(S object, Component to * @return native minecraft message object which can be used natively by brigadier. */ public static Message messageFromBaseComponents(BaseComponent... components) { - return BaseHandler.getInstance().getNMS().generateMessageFromJson(ComponentSerializer.toString(components)); + return BukkitPlatform.get().generateMessageFromJson(ComponentSerializer.toString(components)); } /** @@ -159,7 +159,7 @@ public static Message messageFromBaseComponents(BaseComponent... components) { * @return native minecraft message object which can be used natively by brigadier. */ public static Message messageFromAdventureComponent(Component component) { - return BaseHandler.getInstance().getNMS().generateMessageFromJson(GsonComponentSerializer.gson().serialize(component)); + return BukkitPlatform.get().generateMessageFromJson(GsonComponentSerializer.gson().serialize(component)); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java new file mode 100644 index 0000000000..b6e1dd2bed --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -0,0 +1,16 @@ +package dev.jorel.commandapi; + +import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.nms.NMS_1_19_1_R1; +import dev.jorel.commandapi.test.MockNMS; + +/** + * This file handles loadeding the correct platform implementation. The CommandAPIVersionHandler + * file within the commandapi-core module is NOT used at run time. Instead, the platform modules + * replace this class with their own version that handles loads the correct class for thier version + */ +public interface CommandAPIVersionHandler { + static AbstractPlatform getPlatform() { + return new MockNMS(new NMS_1_19_1_R1()); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java index a2903f7f31..2d47b0c2dc 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java @@ -5,6 +5,7 @@ import java.util.Set; import java.util.UUID; +import dev.jorel.commandapi.BukkitPlatform; import org.bukkit.Axis; import org.bukkit.NamespacedKey; import org.bukkit.OfflinePlayer; @@ -35,7 +36,7 @@ import net.minecraft.commands.arguments.ArgumentChatComponent; import net.minecraft.network.chat.IChatBaseComponent; -public abstract class BlankNMS implements NMS { +public abstract class BlankNMS extends BukkitPlatform { public final NMS BASE_NMS; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java index 40782eb76d..300a8d1e49 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java @@ -19,7 +19,6 @@ public void onLoad() { .silentLogs(true) .dispatcherFile(new File("command_registration.json")) .initializeNBTAPI(NBTContainer.class, NBTContainer::new) - .setCustomNMS(new MockNMS(new NMS_1_19_1_R1())) ); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java index 6f7b0aef0c..7a291aa37f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java @@ -15,6 +15,7 @@ import java.util.function.Function; import java.util.function.Supplier; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.Location; @@ -339,18 +340,17 @@ public static Object getField(Class className, String fieldName, Object insta } @Override - public CommandSender getCommandSenderFromCSS(CommandListenerWrapper clw) { + public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { - return clw.getBukkitSender(); + return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { return null; } } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { - CommandListenerWrapper css = cmdCtx.getSource(); - return css.getBukkitSender(); + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { + return getCommandSenderFromCommandSource(cmdCtx.getSource()); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index e25b9d08fa..eceb4ef699 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -23,6 +23,7 @@ import java.io.File; import java.util.Map.Entry; +import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.plugin.java.JavaPlugin; import de.tr7zw.changeme.nbtapi.NBTContainer; @@ -32,6 +33,20 @@ public class CommandAPIMain extends JavaPlugin { @Override public void onLoad() { + // Read config file + saveDefaultConfig(); + FileConfiguration fileConfig = getConfig(); + CommandAPIConfig config = new CommandAPIConfig() + .verboseOutput(fileConfig.getBoolean("verbose-outputs")) + .silentLogs(fileConfig.getBoolean("silent-logs")) + .useLatestNMSVersion(fileConfig.getBoolean("use-latest-nms-version")) + .missingExecutorImplementationMessage(fileConfig.getString("messages.missing-executor-implementation")) + .dispatcherFile(fileConfig.getBoolean("create-dispatcher-json") ? new File(getDataFolder(), "command_registration.json") : null) + .initializeNBTAPI(NBTContainer.class, NBTContainer::new); + + // Main CommandAPI loading + CommandAPI.onLoad(config, new BukkitLogger(getLogger())); + // Configure the NBT API - we're not allowing tracking at all, according // to the CommandAPI's design principles. The CommandAPI isn't used very // much, so this tiny proportion of servers makes very little impact to @@ -39,16 +54,8 @@ public void onLoad() { MinecraftVersion.disableBStats(); MinecraftVersion.disableUpdateCheck(); - // Config loading - CommandAPI.logger = getLogger(); - saveDefaultConfig(); - CommandAPI.config = new InternalConfig(getConfig(), NBTContainer.class, NBTContainer::new, new File(getDataFolder(), "command_registration.json")); - - // Check dependencies for CommandAPI - BaseHandler.getInstance().checkDependencies(); - // Convert all plugins to be converted - for (Entry pluginToConvert : CommandAPI.config.getPluginsToConvert()) { + for (Entry pluginToConvert : CommandAPI.getConfiguration().getPluginsToConvert()) { if (pluginToConvert.getValue().length == 0) { Converter.convert(pluginToConvert.getKey()); } else { @@ -59,7 +66,7 @@ public void onLoad() { } // Convert all arbitrary commands - for (String commandName : CommandAPI.config.getCommandsToConvert()) { + for (String commandName : CommandAPI.getConfiguration().getCommandsToConvert()) { new AdvancedConverter(commandName).convertCommand(); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index 946f34f55e..fa23f75d1a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -20,8 +20,8 @@ *******************************************************************************/ package dev.jorel.commandapi; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.exceptions.UnsupportedVersionException; -import dev.jorel.commandapi.nms.NMS; import dev.jorel.commandapi.nms.NMS_1_13; import dev.jorel.commandapi.nms.NMS_1_13_1; import dev.jorel.commandapi.nms.NMS_1_13_2; @@ -39,6 +39,7 @@ import dev.jorel.commandapi.nms.NMS_1_18_R2; import dev.jorel.commandapi.nms.NMS_1_19_1_R1; import dev.jorel.commandapi.nms.NMS_1_19_R1; +import org.bukkit.Bukkit; /** * This file handles the NMS version to be loaded. The CommandAPIVersionHandler @@ -60,15 +61,16 @@ public interface CommandAPIVersionHandler { /** - * Returns an instance of the version's implementation of NMS. - * - * @param version the string of the Minecraft version (e.g. 1.16.5 or 1.17) + * Returns an instance of the current running version's implementation of the Bukkit NMS. + * * @return an instance of NMS which can run on the specified Minecraft version */ - public static NMS getNMS(String version) { + static AbstractPlatform getPlatform() { if (CommandAPI.getConfiguration().shouldUseLatestNMSVersion()) { return new NMS_1_19_1_R1(); } else { + String bukkit = Bukkit.getServer().toString(); + String version = bukkit.substring(bukkit.indexOf("minecraftVersion") + 17, bukkit.length() - 1); return switch (version) { case "1.13" -> new NMS_1_13(); case "1.13.1" -> new NMS_1_13_1(); diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java new file mode 100644 index 0000000000..bd10788528 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -0,0 +1,9 @@ +package dev.jorel.commandapi; + +import dev.jorel.commandapi.abstractions.AbstractPlatform; + +public interface CommandAPIVersionHandler { + static AbstractPlatform getPlatform() { + return new VelocityPlatform(); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityLogger.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityLogger.java new file mode 100644 index 0000000000..923f40a510 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityLogger.java @@ -0,0 +1,28 @@ +package dev.jorel.commandapi; + +import java.util.logging.Logger; + +// TODO: Since Bukkit and Velocity use Java's builtin logger, this and BukkitLogger are essentially the same +// Should these classes be combined to reduce code repetition? +public class VelocityLogger implements CommandAPILogger{ + private final Logger parent; + + public VelocityLogger(Logger parent) { + this.parent = parent; + } + + @Override + public void info(String message) { + parent.info(message); + } + + @Override + public void warning(String message) { + parent.warning(message); + } + + @Override + public void severe(String message) { + parent.severe(message); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index 5246309a64..256ce1365b 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -19,11 +19,22 @@ import dev.jorel.commandapi.commandsenders.VelocityPlayer; public class VelocityPlatform extends AbstractPlatform { - - private final CommandManager commandManager; - - public VelocityPlatform(CommandManager commandManager) { - this.commandManager = commandManager; + private CommandManager commandManager; + + @Override + public void onLoad() { + + } + + @Override + public void onEnable(Object plugin) { + // TODO: Velocity doesn't have a class for plugins? + // How should we send needed information like the commandManager over from the plugin? + } + + @Override + public void onDisable() { + } @Override diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index 21f4eec19a..260b98c791 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi; +import java.nio.file.Path; import java.util.logging.Logger; import com.google.inject.Inject; @@ -8,6 +9,7 @@ import com.velocitypowered.api.event.proxy.ProxyReloadEvent; import com.velocitypowered.api.event.proxy.ProxyShutdownEvent; import com.velocitypowered.api.plugin.Plugin; +import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.proxy.ProxyServer; @Plugin( @@ -24,14 +26,25 @@ public class CommandAPIMain { private final Logger logger; @Inject - public CommandAPIMain(ProxyServer server, Logger logger) { + public CommandAPIMain(ProxyServer server, Logger logger, @DataDirectory Path dataDirectory) { this.server = server; this.logger = logger; + + // TODO: Save default and load config file from dataDirectory + // does Velocity have an API for this? + CommandAPIConfig config = new CommandAPIConfig() + .verboseOutput() + .silentLogs() + .missingExecutorImplementationMessage() + .dispatcherFile() + .initializeNBTAPI(); + + CommandAPI.onLoad(config, new VelocityLogger(logger)); } @Subscribe public void onProxyInitialization(ProxyInitializeEvent event) { - new VelocityPlatform(server.getCommandManager()); // We probably want to do stuff with this... + CommandAPI.onEnable(this); // Command can be registered using the following: // @@ -44,6 +57,7 @@ public void onProxyInitialization(ProxyInitializeEvent event) { @Subscribe public void onProxyShutdown(ProxyShutdownEvent event) { // Shut down + CommandAPI.onDisable(); } // On /velocity reload From 7b85d1284365f4baf0dcc0aa3c8b546d95843ab9 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 14 Oct 2022 07:02:34 -0400 Subject: [PATCH 035/638] Move onDisable behavior from CommandAPIHandler to BukkitPlatform --- .../main/java/dev/jorel/commandapi/BukkitPlatform.java | 4 +++- .../java/dev/jorel/commandapi/CommandAPIHandler.java | 10 ---------- 2 files changed, 3 insertions(+), 11 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 302c861a41..70fb6faf41 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -159,7 +159,9 @@ public void onPlayerQuit(PlayerQuitEvent e) { @Override public void onDisable() { - + for(Player player : Bukkit.getOnlinePlayers()) { + unhookChatPreview(player); + } } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index 7d6391a4a1..8341b246dd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -151,16 +151,6 @@ public static BaseHandler getInstance() { } return instance; } - - public static void onDisable() { - if(instance != null) { - for(Player player : Bukkit.getOnlinePlayers()) { - instance.NMS.unhookChatPreview(player); - } - } - - instance = null; - } final Map FIELDS = new HashMap<>(); final TreeMap PERMISSIONS_TO_FIX = new TreeMap<>(); From f169cbbb8b2bb6d71ac99b5d82093845f75a845b Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 14 Oct 2022 07:10:16 -0400 Subject: [PATCH 036/638] Add interface CommandAPIVelocityPluginWrapper to transfer values from a velocity plugin to VelocityPlatform --- .../commandapi/CommandAPIVelocityPluginWrapper.java | 10 ++++++++++ .../java/dev/jorel/commandapi/VelocityPlatform.java | 7 ++++--- .../main/java/dev/jorel/commandapi/CommandAPIMain.java | 10 +++++++--- 3 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVelocityPluginWrapper.java diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVelocityPluginWrapper.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVelocityPluginWrapper.java new file mode 100644 index 0000000000..b5338414d1 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVelocityPluginWrapper.java @@ -0,0 +1,10 @@ +package dev.jorel.commandapi; + +import com.velocitypowered.api.proxy.ProxyServer; + +/** + * A class for wrapping the values provided by a Velocity plugin into a known object + */ +public interface CommandAPIVelocityPluginWrapper { + ProxyServer getServer(); +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index 256ce1365b..181679b8dd 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -27,9 +27,10 @@ public void onLoad() { } @Override - public void onEnable(Object plugin) { - // TODO: Velocity doesn't have a class for plugins? - // How should we send needed information like the commandManager over from the plugin? + public void onEnable(Object pluginObject) { + CommandAPIVelocityPluginWrapper plugin = (CommandAPIVelocityPluginWrapper) pluginObject; + + commandManager = plugin.getServer().getCommandManager(); } @Override diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index 260b98c791..d97d788f98 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -20,7 +20,7 @@ description = "An API to use Minecraft 1.13s new command UI", authors = {"Skepter"} ) -public class CommandAPIMain { +public class CommandAPIMain implements CommandAPIVelocityPluginWrapper { private final ProxyServer server; private final Logger logger; @@ -39,7 +39,12 @@ public CommandAPIMain(ProxyServer server, Logger logger, @DataDirectory Path dat .dispatcherFile() .initializeNBTAPI(); - CommandAPI.onLoad(config, new VelocityLogger(logger)); + CommandAPI.onLoad(config, new VelocityLogger(this.logger)); + } + + @Override + public ProxyServer getServer() { + return server; } @Subscribe @@ -65,5 +70,4 @@ public void onProxyShutdown(ProxyShutdownEvent event) { public void onProxyReload(ProxyReloadEvent event) { // Handle quirky stuff } - } From 4fed94b533f28872e12eba4887202ba51e174b6e Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 14 Oct 2022 07:29:24 -0400 Subject: [PATCH 037/638] Replace references to the old getCommandSenderFromCSS with getCommandSenderFromCommandSource --- .../java/dev/jorel/commandapi/arguments/CustomArgument.java | 2 +- .../main/java/dev/jorel/commandapi/arguments/ListArgument.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index 79e47fa8f8..30390c195a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -138,7 +138,7 @@ public T parseArgument(AbstractPlatform final B parsedInput = base.parseArgument(platform, cmdCtx, key, previousArgs); try { - return infoParser.apply(new CustomArgumentInfo(((BukkitPlatform) platform).getCommandSenderFromCSS(cmdCtx.getSource()), + return infoParser.apply(new CustomArgumentInfo(((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(), previousArgs, customresult, parsedInput)); } catch (CustomArgumentException e) { throw e.toCommandSyntax(customresult, cmdCtx); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java index b929ccf723..ca6f62c852 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java @@ -128,7 +128,7 @@ public List parseArgument(AbstractPlatform cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the list of values which this can take Map values = new HashMap<>(); - for (T object : supplier.apply(((BukkitPlatform) platform).getCommandSenderFromCSS(cmdCtx.getSource()))) { + for (T object : supplier.apply(((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource())) { values.put(mapper.apply(object), object); } From a8b9deb49e4d29abe8127d21e7cef066b49dcb30 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 14 Oct 2022 11:57:51 -0400 Subject: [PATCH 038/638] Comment out config variables and methods for command conversion --- .../dev/jorel/commandapi/InternalConfig.java | 39 +++++++++---------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java b/commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java index 6a4b679d6e..5845477b04 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java @@ -20,12 +20,9 @@ *******************************************************************************/ package dev.jorel.commandapi; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.java.JavaPlugin; - import java.io.File; -import java.util.*; -import java.util.Map.Entry; +import java.util.ArrayList; +import java.util.List; import java.util.function.Function; /** @@ -52,7 +49,7 @@ public class InternalConfig { // List of plugins to convert // TODO: Can we support command conversion on multiple platforms, or should this be removed from the general config? - private final Map pluginsToConvert; +// private final Map pluginsToConvert; // List of plugins which should ignore proxied senders private final List skipSenderProxy; @@ -84,7 +81,7 @@ public InternalConfig(CommandAPIConfig config) { this.useLatestNMSVersion = config.useLatestNMSVersion; this.message_missingExecutorImplementation = config.missingExecutorImplementationMessage; this.dispatcherFile = config.dispatcherFile; - this.pluginsToConvert = new HashMap<>(); +// this.pluginsToConvert = new HashMap<>(); this.skipSenderProxy = new ArrayList<>(); this.commandsToConvert = new ArrayList<>(); this.nbtContainerClass = config.nbtContainerClass; @@ -128,20 +125,20 @@ public File getDispatcherFile() { return this.dispatcherFile; } - /** - * @return A set of plugins and a list of commands to convert - */ - public Set> getPluginsToConvert() { - return this.pluginsToConvert.entrySet(); - } - - /** - * @param plugin A plugin where sender proxying should be skipped - * @return Whether sender proxying should be skipped for a given plugin - */ - public boolean shouldSkipSenderProxy(Plugin plugin) { - return this.skipSenderProxy.contains(plugin.getName()); - } +// /** +// * @return A set of plugins and a list of commands to convert +// */ +// public Set> getPluginsToConvert() { +// return this.pluginsToConvert.entrySet(); +// } + +// /** +// * @param plugin A plugin where sender proxying should be skipped +// * @return Whether sender proxying should be skipped for a given plugin +// */ +// public boolean shouldSkipSenderProxy(Plugin plugin) { +// return this.skipSenderProxy.contains(plugin.getName()); +// } /** * @param commandName A command where sender proxying should be skipped From 8cfcb4f0f2c2fb4dbb547a0cfd5b495246d047d6 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 14 Oct 2022 12:09:26 -0400 Subject: [PATCH 039/638] Clean up final errors in commandapi-core (the module compiles!) --- .../dev/jorel/commandapi/BaseHandler.java | 9 +- .../java/dev/jorel/commandapi/Brigadier.java | 6 +- .../java/dev/jorel/commandapi/CommandAPI.java | 1 - .../jorel/commandapi/ExecutableCommand.java | 4 +- .../dev/jorel/commandapi/StringTooltip.java | 94 ++----------------- .../abstractions/AbstractPlatform.java | 9 +- .../dev/jorel/commandapi/BukkitPlatform.java | 2 +- .../jorel/commandapi/BukkitStringTooltip.java | 94 +++++++++++++++++++ .../jorel/commandapi/VelocityPlatform.java | 2 +- 9 files changed, 117 insertions(+), 104 deletions(-) create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitStringTooltip.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 3254ef244f..9b472aa2e5 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -160,8 +160,7 @@ public AbstractPlatform getPlatform() { * @return a brigadier command which is registered internally * @throws CommandSyntaxException if an error occurs when the command is ran */ - Command generateCommand(Argument[] args, - CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException { + Command generateCommand(Argument[] args, CustomCommandExecutor executor, boolean converted) throws CommandSyntaxException { // Generate our command from executor return (cmdCtx) -> { @@ -327,8 +326,7 @@ static boolean permissionCheck(AbstractCommandSender sender, CommandPermissio * multiliteral arguments were present (and expanded) and returns false if * multiliteral arguments were not present. */ - private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, - CustomCommandExecutor> executor, boolean converted) + private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, CustomCommandExecutor executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals @@ -486,8 +484,7 @@ private void handlePreviewableArguments(String commandName, Argument[] args, // Builds our platform command using the given arguments for this method, then // registers it - void register(CommandMetaData meta, final Argument[] args, - CustomCommandExecutor> executor, boolean converted) + void register(CommandMetaData meta, final Argument[] args, CustomCommandExecutor executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index c251809fd4..0198fa5446 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -58,7 +58,7 @@ private Brigadier() { * @return The CommandAPI's internal CommandDispatcher instance */ public static CommandDispatcher getCommandDispatcher() { - return BaseHandler.getInstance().DISPATCHER; + return BaseHandler.getInstance().getPlatform().getCommandDispatcher(); } /** @@ -200,7 +200,7 @@ public static Object[] parseArguments(CommandContext cmdCtx, List args * CommandSender */ public static Object getBrigadierSourceFromCommandSender(AbstractCommandSender sender) { - return BaseHandler.getInstance().getNMS().getCLWFromCommandSender(sender); + return BaseHandler.getInstance().getPlatform().getBrigadierSourceFromCommandSender(sender); } @@ -211,6 +211,6 @@ public static Object getBrigadierSourceFromCommandSender(AbstractCommandSender s * @return a Bukkit CommandSender from the provided Brigadier CommandContext */ public static AbstractCommandSender getCommandSenderFromContext(CommandContext cmdCtx) { - return BaseHandler.getInstance().getNMS().getSenderForCommand(cmdCtx, false); + return BaseHandler.getInstance().getPlatform().getSenderForCommand(cmdCtx, false); } } \ No newline at end of file diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 628b845fda..02a0d665be 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -250,7 +250,6 @@ public static WrapperCommandSyntaxException failWithMessage(Message message) { * @param command the name of the command to unregister */ public static void unregister(String command) { - // TODO: Uhhh, the platform unregister doesn't have force? BaseHandler.getInstance().getPlatform().unregister(command, false); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java index 3ae655d721..df1fb078d7 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java @@ -140,7 +140,7 @@ public void setAliases(String[] aliases) { * Returns the requirements that must be satisfied to run this command * @return the requirements that must be satisfied to run this command */ - public Predicate getRequirements() { + public Predicate> getRequirements() { return this.meta.requirements; } @@ -148,7 +148,7 @@ public Predicate getRequirements() { * Sets the requirements that must be satisfied to run this command * @param requirements the requirements that must be satisfied to run this command */ - public void setRequirements(Predicate requirements) { + public void setRequirements(Predicate> requirements) { this.meta.requirements = requirements; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java b/commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java index f56317d996..e797eb807a 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java @@ -21,9 +21,7 @@ package dev.jorel.commandapi; import com.mojang.brigadier.Message; -// TODO: remove references to platform-specific message formatting classes (move to bukkit implementation?) -import net.kyori.adventure.text.Component; -import net.md_5.bungee.api.chat.BaseComponent; +import dev.jorel.commandapi.abstractions.AbstractTooltip; import java.util.Arrays; import java.util.Collection; @@ -67,7 +65,7 @@ public static StringTooltip of(String suggestion, String tooltip) { * @return a StringTooltip representing this suggestion and tooltip */ public static StringTooltip ofString(String suggestion, String tooltip) { - return ofMessage(suggestion, Tooltip.messageFromString(tooltip)); + return ofMessage(suggestion, AbstractTooltip.messageFromString(tooltip)); } /** @@ -82,30 +80,6 @@ public static StringTooltip ofMessage(String suggestion, Message tooltip) { return tooltip == null ? none(suggestion) : new StringTooltip(suggestion, tooltip); } - /** - * Constructs a StringTooltip with a suggestion and a formatted bungee text component tooltip - * - * @param suggestion the suggestion to provide to the user - * @param tooltip the formatted tooltip to show to the user when they hover over the - * suggestion - * @return a StringTooltip representing this suggestion and tooltip - */ - public static StringTooltip ofBaseComponents(String suggestion, BaseComponent... tooltip) { - return ofMessage(suggestion, Tooltip.messageFromBaseComponents(tooltip)); - } - - /** - * Constructs a StringTooltip with a suggestion and a formatted adventure text component tooltip - * - * @param suggestion the suggestion to provide to the user - * @param tooltip the formatted tooltip to show to the user when they hover over the - * suggestion - * @return a StringTooltip representing this suggestion and tooltip - */ - public static StringTooltip ofAdventureComponent(String suggestion, Component tooltip) { - return ofMessage(suggestion, Tooltip.messageFromAdventureComponent(tooltip)); - } - /** * Constructs a StringTooltip with a suggestion and no tooltip * @@ -194,62 +168,6 @@ public static Collection generateMessages(Function generateBaseComponents(Function tooltipGenerator, String... suggestions) { - return generate(tooltipGenerator, StringTooltip::ofBaseComponents, suggestions); - } - - /** - * Constructs a collection of {@link StringTooltip} objects from a collection of suggestions, and a function which generates - * a formatted tooltip for each suggestion - * - * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an array of {@link BaseComponent}s - * @param suggestions collection of suggestions to provide to the user - * - * @return a collection of {@link StringTooltip} objects from the provided suggestions, with the generated formatted - * tooltips - */ - public static Collection generateBaseComponents(Function tooltipGenerator, Collection suggestions) { - return generate(tooltipGenerator, StringTooltip::ofBaseComponents, suggestions); - } - - /** - * Constructs a collection of {@link StringTooltip} objects from an array of suggestions, and a function which generates - * a tooltip formatted as an adventure {@link Component} for each suggestion - * - * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an adventure {@link Component} - * @param suggestions array of suggestions to provide to the user - * - * @return a collection of {@link StringTooltip} objects from the provided suggestions, with the generated formatted - * tooltips - */ - public static Collection generateAdventureComponents(Function tooltipGenerator, String... suggestions) { - return generate(tooltipGenerator, StringTooltip::ofAdventureComponent, suggestions); - } - - /** - * Constructs a collection of {@link StringTooltip} objects from a collection of suggestions, and a function which generates - * a tooltip formatted as an adventure {@link Component} for each suggestion - * - * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an adventure {@link Component} - * @param suggestions collection of suggestions to provide to the user - * - * @return a collection of {@link StringTooltip} objects from the provided suggestions, with the generated formatted - * tooltips - */ - public static Collection generateAdventureComponents(Function tooltipGenerator, Collection suggestions) { - return generate(tooltipGenerator, StringTooltip::ofAdventureComponent, suggestions); - } - /** * Internal base method for the other generation types * @@ -259,7 +177,7 @@ public static Collection generateAdventureComponents(Function Collection generate(Function tooltipGenerator, BiFunction tooltipWrapper, String... suggestions) { + protected static Collection generate(Function tooltipGenerator, BiFunction tooltipWrapper, String... suggestions) { return generate(tooltipGenerator, tooltipWrapper, Arrays.stream(suggestions)); } @@ -272,7 +190,7 @@ private static Collection generate(Function toolti * @param suggestions collection of suggestions to provide to the user * @return a collection of {@link StringTooltip} objects from the provided suggestion, wrapped using the above functions */ - private static Collection generate(Function tooltipGenerator, BiFunction tooltipWrapper, Collection suggestions) { + protected static Collection generate(Function tooltipGenerator, BiFunction tooltipWrapper, Collection suggestions) { return generate(tooltipGenerator, tooltipWrapper, suggestions.stream()); } @@ -285,12 +203,12 @@ private static Collection generate(Function toolti * @param suggestions stream of suggestions to provide to the user * @return a collection of {@link StringTooltip} objects from the provided suggestion, wrapped using the above functions */ - private static Collection generate(Function tooltipGenerator, BiFunction tooltipWrapper, Stream suggestions) { + protected static Collection generate(Function tooltipGenerator, BiFunction tooltipWrapper, Stream suggestions) { Function builder = suggestion -> tooltipWrapper.apply(suggestion, tooltipGenerator.apply(suggestion)); return suggestions.map(builder).toList(); } - private StringTooltip(String suggestion, Message tooltip) { + protected StringTooltip(String suggestion, Message tooltip) { this.suggestion = suggestion; this.tooltip = tooltip; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 6694045ba6..c1d9df2827 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -2,6 +2,7 @@ import java.util.List; +import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.suggestion.SuggestionProvider; @@ -38,6 +39,9 @@ public abstract class AbstractPlatform { // a command source is or consists of public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); + // Converts a CommandSender to a Brigadier Source + public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); + // Registers a permission. Bukkit's permission system requires permissions to be "registered" // before they can be used. public abstract void registerPermission(String string); @@ -76,8 +80,9 @@ public abstract class AbstractPlatform { * Unregisters a command. For Bukkit, this is as complex as unregistering it from * the CommandDispatcher. For Velocity, this is as simple as commandManager.unregister(commandName) */ - public abstract void unregister(String commandName); - + public abstract void unregister(String commandName, boolean force); + + public abstract CommandDispatcher getCommandDispatcher(); // For Bukkit, chat preview has to be unhooked diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 70fb6faf41..358265633f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -219,7 +219,7 @@ public void registerHelp() { } @Override - public void unregister(String commandName) { + public void unregister(String commandName, boolean force) { // TODO Auto-generated method stub } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitStringTooltip.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitStringTooltip.java new file mode 100644 index 0000000000..168eb7e16a --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitStringTooltip.java @@ -0,0 +1,94 @@ +package dev.jorel.commandapi; + +import com.mojang.brigadier.Message; +import net.kyori.adventure.text.Component; +import net.md_5.bungee.api.chat.BaseComponent; + +import java.util.Collection; +import java.util.function.Function; + +public class BukkitStringTooltip extends StringTooltip { + protected BukkitStringTooltip(String suggestion, Message tooltip) { + super(suggestion, tooltip); + } + + /** + * Constructs a StringTooltip with a suggestion and a formatted bungee text component tooltip + * + * @param suggestion the suggestion to provide to the user + * @param tooltip the formatted tooltip to show to the user when they hover over the + * suggestion + * @return a StringTooltip representing this suggestion and tooltip + */ + public static StringTooltip ofBaseComponents(String suggestion, BaseComponent... tooltip) { + return ofMessage(suggestion, Tooltip.messageFromBaseComponents(tooltip)); + } + + /** + * Constructs a StringTooltip with a suggestion and a formatted adventure text component tooltip + * + * @param suggestion the suggestion to provide to the user + * @param tooltip the formatted tooltip to show to the user when they hover over the + * suggestion + * @return a StringTooltip representing this suggestion and tooltip + */ + + public static StringTooltip ofAdventureComponent(String suggestion, Component tooltip) { + return ofMessage(suggestion, Tooltip.messageFromAdventureComponent(tooltip)); + } + /** + * Constructs a collection of {@link StringTooltip} objects from an array of suggestions, and a function which generates + * a formatted tooltip for each suggestion + * + * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an array of {@link BaseComponent}s + * @param suggestions array of suggestions to provide to the user + * + * @return a collection of {@link StringTooltip} objects from the provided suggestions, with the generated formatted + * tooltips + */ + public static Collection generateBaseComponents(Function tooltipGenerator, String... suggestions) { + return generate(tooltipGenerator, BukkitStringTooltip::ofBaseComponents, suggestions); + } + + /** + * Constructs a collection of {@link StringTooltip} objects from a collection of suggestions, and a function which generates + * a formatted tooltip for each suggestion + * + * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an array of {@link BaseComponent}s + * @param suggestions collection of suggestions to provide to the user + * + * @return a collection of {@link StringTooltip} objects from the provided suggestions, with the generated formatted + * tooltips + */ + public static Collection generateBaseComponents(Function tooltipGenerator, Collection suggestions) { + return generate(tooltipGenerator, BukkitStringTooltip::ofBaseComponents, suggestions); + } + + /** + * Constructs a collection of {@link StringTooltip} objects from an array of suggestions, and a function which generates + * a tooltip formatted as an adventure {@link Component} for each suggestion + * + * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an adventure {@link Component} + * @param suggestions array of suggestions to provide to the user + * + * @return a collection of {@link StringTooltip} objects from the provided suggestions, with the generated formatted + * tooltips + */ + public static Collection generateAdventureComponents(Function tooltipGenerator, String... suggestions) { + return generate(tooltipGenerator, BukkitStringTooltip::ofAdventureComponent, suggestions); + } + + /** + * Constructs a collection of {@link StringTooltip} objects from a collection of suggestions, and a function which generates + * a tooltip formatted as an adventure {@link Component} for each suggestion + * + * @param tooltipGenerator function which returns a formatted tooltip for the suggestion, an adventure {@link Component} + * @param suggestions collection of suggestions to provide to the user + * + * @return a collection of {@link StringTooltip} objects from the provided suggestions, with the generated formatted + * tooltips + */ + public static Collection generateAdventureComponents(Function tooltipGenerator, Collection suggestions) { + return generate(tooltipGenerator, BukkitStringTooltip::ofAdventureComponent, suggestions); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index 181679b8dd..49d10a8fd0 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -50,7 +50,7 @@ public void registerHelp() { } @Override - public void unregister(String commandName) { + public void unregister(String commandName, boolean force) { commandManager.unregister(commandName); } From bf043f3addb9620de0e0ef4aa691f47f6ed43600 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 15 Oct 2022 08:10:14 -0400 Subject: [PATCH 040/638] Implement getBrigadierDispatcher and getBrigadierSourceFromCommandSender --- .../java/dev/jorel/commandapi/Brigadier.java | 2 +- .../abstractions/AbstractPlatform.java | 31 +++++++------------ .../dev/jorel/commandapi/BukkitPlatform.java | 9 ++++++ .../java/dev/jorel/commandapi/nms/NMS.java | 16 +++++----- .../wrappers/SimpleFunctionWrapper.java | 4 ++- .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_13_2.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_13.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_14.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_15.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_16_R2.java | 3 +- .../jorel/commandapi/nms/NMS_1_16_4_R3.java | 3 +- .../jorel/commandapi/nms/NMS_1_17_Common.java | 5 ++- .../dev/jorel/commandapi/nms/NMS_1_18_R2.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_18_R1.java | 5 ++- .../jorel/commandapi/nms/NMS_1_19_Common.java | 3 +- .../NMS_1_19_Common_ChatPreviewHandler.java | 3 +- .../dev/jorel/commandapi/nms/NMS_Common.java | 2 +- .../dev/jorel/commandapi/test/MockNMS.java | 3 +- .../jorel/commandapi/VelocityPlatform.java | 12 +++++++ 21 files changed, 72 insertions(+), 50 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index 0198fa5446..0be25387a7 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -58,7 +58,7 @@ private Brigadier() { * @return The CommandAPI's internal CommandDispatcher instance */ public static CommandDispatcher getCommandDispatcher() { - return BaseHandler.getInstance().getPlatform().getCommandDispatcher(); + return BaseHandler.getInstance().getPlatform().getBrigadierDispatcher(); } /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index c1d9df2827..a3479c4dfa 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -13,12 +13,14 @@ public abstract class AbstractPlatform { // TODO: Add methods that need platform-specific implementations // All methods in bukkit NMS will probably also need to be here - + // ^ I don't think all bukkit NMS methods will have to be in here. // Almost all Bukkit NMS methods should be implemented in Bukkit's // AbstractPlatform implementation. The only things in here are going // to be supppppppppper low-level stuff + + // Platform-specific loading, enabling, and disabling tasks public abstract void onLoad(); public abstract void onEnable(Object plugin); @@ -28,19 +30,14 @@ public abstract class AbstractPlatform { // "Source" in this case (for CommandContext) is something like a // CommandListenerWrapper (Spigot mappings) or CommandSourceStack (Mojang mappings). - // - // This method returns AbstractCommandSender, except what we actually want to return - // is just a plain ol' AbstractCommandSender - we don't care what the abstract command sender is parameterized // over public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); - // Converts a command source into its source. For Bukkit, this - // is implemented in NMS. TODO: For Velocity, I have no idea what - // a command source is or consists of + // Converts a command source into its source. public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); // Converts a CommandSender to a Brigadier Source - public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); + public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); // Registers a permission. Bukkit's permission system requires permissions to be "registered" // before they can be used. @@ -50,30 +47,29 @@ public abstract class AbstractPlatform { // implementing the relevant NMS SuggestionProviders implementation on the platform-specific // argument, but I CBA to think about that now so I'll dump it here public abstract SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider); - - + /** * Stuff to run after a command has been generated. For Bukkit, this involves * finding command ambiguities for logging and generating the command JSON * dispatcher file. If we're being fancy, we could also create a "registered * a command" event (which can't be cancelled) - * @param aliasNodes any alias nodes that were also registered as a part of this registration process + * + * @param aliasNodes any alias nodes that were also registered as a part of this registration process * @param resultantNode the node that was registered */ - public abstract void postCommandRegistration(LiteralCommandNode resultantNode , List> aliasNodes); + public abstract void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes); /** * Registers a Brigadier command node. For Bukkit, this requires using reflection to * access the CommandDispatcher (DISPATCHER), then registering it directly using * DISPATCHER.register. For Velocity, this is as simple as commandManager.register(new BrigadierCommand( node )) */ - public abstract LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node); + public abstract LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node); // We probabbbbbbbbly need to register some form of help for commands? I'm not // sure if public abstract void registerHelp(); - /** @@ -82,10 +78,5 @@ public abstract class AbstractPlatform { */ public abstract void unregister(String commandName, boolean force); - public abstract CommandDispatcher getCommandDispatcher(); - - - // For Bukkit, chat preview has to be unhooked - // Wait why does this appear here? This shouldn't! - // public abstract void onDisable(); + public abstract CommandDispatcher getBrigadierDispatcher(); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 358265633f..c638d65216 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -4,6 +4,7 @@ import java.util.List; import java.util.function.Function; +import com.mojang.brigadier.CommandDispatcher; import dev.jorel.commandapi.commandsenders.*; import dev.jorel.commandapi.preprocessor.Unimplemented; import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; @@ -172,6 +173,10 @@ public void onDisable() { @Unimplemented(because = Unimplemented.REASON.REQUIRES_CSS) public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); + @Override + @Unimplemented(because = Unimplemented.REASON.REQUIRES_CRAFTBUKKIT) + public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); + public AbstractCommandSender wrapCommandSender(CommandSender sender) { if (sender instanceof BlockCommandSender block) return new BukkitBlockCommandSender(block); @@ -188,6 +193,10 @@ public AbstractCommandSender wrapCommandSender(CommandS return null; } + @Override + @Unimplemented(because = Unimplemented.REASON.REQUIRES_MINECRAFT_SERVER) + public abstract CommandDispatcher getBrigadierDispatcher(); + @Override public void registerPermission(String string) { // TODO Auto-generated method stub diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java index bd6d6580b9..17b2faf313 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java @@ -44,7 +44,6 @@ import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; import org.bukkit.command.SimpleCommandMap; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.EntityType; @@ -216,13 +215,14 @@ Predicate getBlockPredicate(CommandContext cmdCtx BaseComponent[] getChatComponent(CommandContext cmdCtx, String key); - /** - * Converts a CommandSender into a CLW - * - * @param sender the command sender to convert - * @return a CLW. - */ - CommandListenerWrapper getCLWFromCommandSender(CommandSender sender); +// Replaced by AbstractPlatform#getBrigadierSourceFromCommandSender +// /** +// * Converts a CommandSender into a CLW +// * +// * @param sender the command sender to convert +// * @return a CLW. +// */ +// CommandListenerWrapper getCLWFromCommandSender(CommandSender sender); // Replaced by AbstractPlatform#getCommandSenderFromCommandSource // /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java index 170579d8f3..6815d51806 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java @@ -97,7 +97,9 @@ public static Set getTags() { * @return the result of running this command */ public int run(CommandSender sender) { - return runInternal(BukkitPlatform.get().getCLWFromCommandSender(sender)); + // TODO: Is is better to wrap a CommandSender or input an AbstractCommandSender? + BukkitPlatform platform = BukkitPlatform.get(); + return runInternal(platform.getBrigadierSourceFromCommandSender(platform.wrapCommandSender(sender))); } /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index f99d4116f3..3d0ccbd527 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -530,7 +530,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); if (sender instanceof CraftPlayer player) { return player.getHandle().getCommandListener(); } else if (sender instanceof CraftBlockCommandSender blockCommandSender) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java index 6c910d0302..6ac65bf5d6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java @@ -53,7 +53,8 @@ public String[] compatibleVersions() { @Differs(from = "1.13.1", by = "using VanillaCommandWrapper.getListener") @Override - public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); return VanillaCommandWrapper.getListener(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index fe0d181eab..032fb76654 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -522,7 +522,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); if (sender instanceof CraftPlayer player) { return player.getHandle().getCommandListener(); } else if (sender instanceof CraftBlockCommandSender blockCommandSender) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index fcf7734505..a79a4c7ba8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -524,7 +524,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); return VanillaCommandWrapper.getListener(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index 6e8ad8919b..3292752bf3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -523,7 +523,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); return VanillaCommandWrapper.getListener(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index 840db4bf2e..518b5257a5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -543,7 +543,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); return VanillaCommandWrapper.getListener(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index 8c4926d400..cd00387d95 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -542,7 +542,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); return VanillaCommandWrapper.getListener(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index 7224cb5eaf..5d4acf3443 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -565,7 +565,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); return VanillaCommandWrapper.getListener(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java index fc4496deda..f62957d700 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java @@ -86,8 +86,6 @@ import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; import io.papermc.paper.text.PaperComponents; import net.kyori.adventure.text.Component; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; import net.minecraft.commands.CommandFunction; import net.minecraft.commands.CommandFunction.Entry; import net.minecraft.commands.CommandSourceStack; @@ -288,7 +286,8 @@ public com.mojang.brigadier.CommandDispatcher getBrigadierDi } @Override - public CommandSourceStack getCLWFromCommandSender(CommandSender sender) { + public CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); return VanillaCommandWrapper.getListener(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java index dd210e9f3d..1050a993c7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java @@ -348,7 +348,8 @@ public com.mojang.brigadier.CommandDispatcher getBrigadierDi } @Override - public CommandSourceStack getCLWFromCommandSender(CommandSender sender) { + public CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); return VanillaCommandWrapper.getListener(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java index f66d6a5355..5037b6e370 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java @@ -39,8 +39,6 @@ import com.mojang.brigadier.Message; import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.Keyed; @@ -300,7 +298,8 @@ public com.mojang.brigadier.CommandDispatcher getBrigadierDi } @Override - public CommandSourceStack getCLWFromCommandSender(CommandSender sender) { + public CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); return VanillaCommandWrapper.getListener(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java index a1b87cfa9a..075d05adaf 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java @@ -378,7 +378,8 @@ public final com.mojang.brigadier.CommandDispatcher getBriga } @Override - public final CommandSourceStack getCLWFromCommandSender(CommandSender sender) { + public final CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); return VanillaCommandWrapper.getListener(sender); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java index 1b785d301a..b90882f63c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java @@ -5,7 +5,6 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.BaseHandler; -import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.arguments.PreviewInfo; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.wrappers.PreviewableFunction; @@ -132,7 +131,7 @@ public static InitialParse processChatPreviewQuery(String chatPreviewQuery, NMS< if(cachedResult != null && cachedResult.fullInput.equals(fullInput)) return cachedResult; - ParseResults results = nms.getBrigadierDispatcher().parse(fullInput, nms.getCLWFromCommandSender(player)); + ParseResults results = nms.getBrigadierDispatcher().parse(fullInput, nms.getBrigadierSourceFromCommandSender(player)); // Generate the path for lookup List path = new ArrayList<>(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java index 09c960baaa..894b694a38 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java @@ -439,7 +439,7 @@ public final BaseComponent[] getChatComponent(CommandContext } @Override - public abstract CommandSourceStack getCLWFromCommandSender(CommandSender sender); + public abstract CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender sender); @Override public final AbstractCommandSender getCommandSenderFromCommandSource(CommandSourceStack css) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java index 7a291aa37f..db426e0185 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java @@ -259,7 +259,8 @@ public CommandDispatcher getBrigadierDispatcher() { @SuppressWarnings("deprecation") @Override - public CommandListenerWrapper getCLWFromCommandSender(CommandSender sender) { + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = (CommandSender) senderWrapper.getSource(); CommandListenerWrapper clw = Mockito.mock(CommandListenerWrapper.class); Mockito.when(clw.getBukkitSender()).thenReturn(sender); diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index 49d10a8fd0..70099e11a1 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -2,6 +2,7 @@ import java.util.List; +import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.suggestion.SuggestionProvider; @@ -54,6 +55,12 @@ public void unregister(String commandName, boolean force) { commandManager.unregister(commandName); } + @Override + public CommandDispatcher getBrigadierDispatcher() { + // TODO: How do we get this? Do we need access to velocity internals? + return null; + } + @Override public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { @@ -78,6 +85,11 @@ public AbstractCommandSender getCommandSenderFromComman throw new IllegalArgumentException("Unknown CommandSource: " + cs); } + @Override + public CommandSource getBrigadierSourceFromCommandSender(AbstractCommandSender sender) { + return (CommandSource) sender.getSource(); + } + @Override public SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider) { // TODO Auto-generated method stub From e904afdb164641ae00ad623ae2d9417ecf20fac4 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 15 Oct 2022 18:28:39 -0400 Subject: [PATCH 041/638] Update 1.19+ ChatPreviewHandlers --- .../NMS_1_19_Common_ChatPreviewHandler.java | 27 ++++++++++--------- .../nms/NMS_1_19_1_R1_ChatPreviewHandler.java | 5 ++-- .../nms/NMS_1_19_R1_ChatPreviewHandler.java | 5 ++-- 3 files changed, 21 insertions(+), 16 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java index b90882f63c..e8c63c86f8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java @@ -5,7 +5,9 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.arguments.PreviewInfo; +import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.wrappers.PreviewableFunction; import io.netty.channel.ChannelDuplexHandler; @@ -30,13 +32,13 @@ public abstract class NMS_1_19_Common_ChatPreviewHandler extends ChannelDuplexHandler { - protected final NMS nms; + protected final BukkitPlatform platform; protected final Plugin plugin; protected final Player player; protected final Connection connection; - public NMS_1_19_Common_ChatPreviewHandler(NMS nms, Plugin plugin, Player player) { - this.nms = nms; + public NMS_1_19_Common_ChatPreviewHandler(BukkitPlatform platform, Plugin plugin, Player player) { + this.platform = platform; this.plugin = plugin; this.player = player; this.connection = ((CraftPlayer) player).getHandle().connection.connection; @@ -49,7 +51,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception // Is command if (!chatPreview.query().isEmpty() && chatPreview.query().charAt(0) == '/') { // Is previewable argument - if(InitialParse.processChatPreviewQuery(chatPreview.query(), nms, player).preview.isPresent()){ + if(InitialParse.processChatPreviewQuery(chatPreview.query(), platform, player).preview.isPresent()){ handleChatPreviewPacket(chatPreview); return; } @@ -63,7 +65,7 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception protected abstract void handleChatPreviewPacket(ServerboundChatPreviewPacket chatPreview); public MutableComponent parseChatPreviewQuery(String chatPreviewQuery) { - final InitialParse ip = InitialParse.processChatPreviewQuery(chatPreviewQuery, nms, player); + final InitialParse ip = InitialParse.processChatPreviewQuery(chatPreviewQuery, platform, player); final Optional> preview = ip.preview; if (preview.isEmpty()) { return null; @@ -84,19 +86,19 @@ public MutableComponent parseChatPreviewQuery(String chatPreviewQuery) { if (BaseHandler.getInstance().lookupPreviewableLegacyStatus(path)) { BaseComponent[] parsedInput; try { - parsedInput = nms.getChat(results.getContext().build(fullInput), path.get(path.size() - 1)); + parsedInput = platform.getChat(results.getContext().build(fullInput), path.get(path.size() - 1)); } catch (CommandSyntaxException e) { throw new WrapperCommandSyntaxException(e); } - previewInfo = new PreviewInfo<>(this.player, input, chatPreviewQuery, parsedInput); + previewInfo = new PreviewInfo<>(new BukkitPlayer(player), input, chatPreviewQuery, parsedInput); } else { Component parsedInput; try { - parsedInput = nms.getAdventureChat(results.getContext().build(fullInput), path.get(path.size() - 1)); + parsedInput = platform.getAdventureChat(results.getContext().build(fullInput), path.get(path.size() - 1)); } catch (CommandSyntaxException e) { throw new WrapperCommandSyntaxException(e); } - previewInfo = new PreviewInfo<>(this.player, input, chatPreviewQuery, parsedInput); + previewInfo = new PreviewInfo<>(new BukkitPlayer(player), input, chatPreviewQuery, parsedInput); } component = preview.get().generatePreview(previewInfo); @@ -107,7 +109,7 @@ public MutableComponent parseChatPreviewQuery(String chatPreviewQuery) { if (component != null) { if (component instanceof BaseComponent[] baseComponent) { jsonToSend = ComponentSerializer.toString(baseComponent); - } else if (BaseHandler.getInstance().getPaper().isPresent()) { + } else if (platform.getPaper().isPresent()) { if (component instanceof Component adventureComponent) { jsonToSend = GsonComponentSerializer.gson().serialize(adventureComponent); } else { @@ -125,13 +127,14 @@ public MutableComponent parseChatPreviewQuery(String chatPreviewQuery) { private record InitialParse(String fullInput, ParseResults results, List path, Optional> preview){ private static InitialParse cachedResult = null; - public static InitialParse processChatPreviewQuery(String chatPreviewQuery, NMS nms, Player player){ + public static InitialParse processChatPreviewQuery(String chatPreviewQuery, BukkitPlatform platform, Player player){ // Substring 1 to get rid of the leading / final String fullInput = chatPreviewQuery.substring(1); if(cachedResult != null && cachedResult.fullInput.equals(fullInput)) return cachedResult; - ParseResults results = nms.getBrigadierDispatcher().parse(fullInput, nms.getBrigadierSourceFromCommandSender(player)); + ParseResults results = platform.getBrigadierDispatcher() + .parse(fullInput, platform.getBrigadierSourceFromCommandSender(new BukkitPlayer(player))); // Generate the path for lookup List path = new ArrayList<>(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java index d02908786a..9812129a99 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi.nms; +import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.preprocessor.RequireField; import net.minecraft.commands.CommandSourceStack; import net.minecraft.network.PacketSendListener; @@ -21,8 +22,8 @@ public class NMS_1_19_1_R1_ChatPreviewHandler extends NMS_1_19_Common_ChatPreviewHandler { ChatPreviewThrottler throttler; - public NMS_1_19_1_R1_ChatPreviewHandler(NMS nms, Plugin plugin, Player player) { - super(nms, plugin, player); + public NMS_1_19_1_R1_ChatPreviewHandler(BukkitPlatform platform, Plugin plugin, Player player) { + super(platform, plugin, player); try { Field f = ServerGamePacketListenerImpl.class.getDeclaredField("M"); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java index b0e6c13b73..e2fee1d9d2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi.nms; +import dev.jorel.commandapi.BukkitPlatform; import net.minecraft.commands.CommandSourceStack; import net.minecraft.network.protocol.game.ClientboundChatPreviewPacket; import net.minecraft.network.protocol.game.ServerboundChatPreviewPacket; @@ -9,8 +10,8 @@ public class NMS_1_19_R1_ChatPreviewHandler extends NMS_1_19_Common_ChatPreviewHandler { - public NMS_1_19_R1_ChatPreviewHandler(NMS nms, Plugin plugin, Player player) { - super(nms, plugin, player); + public NMS_1_19_R1_ChatPreviewHandler(BukkitPlatform platform, Plugin plugin, Player player) { + super(platform, plugin, player); } @Override From fe64ea95025593353fb2210063440eeeb21d4751 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 16 Oct 2022 08:43:37 -0400 Subject: [PATCH 042/638] Fully split up CommandAPIHandler.java among BaseHandler and BukkitPlatform --- .../dev/jorel/commandapi/BaseHandler.java | 13 +- .../abstractions/AbstractPlatform.java | 26 +- .../dev/jorel/commandapi/BukkitPlatform.java | 279 +++- .../jorel/commandapi/CommandAPIHandler.java | 1135 ----------------- 4 files changed, 275 insertions(+), 1178 deletions(-) delete mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 9b472aa2e5..7294e653b9 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -39,6 +39,7 @@ import dev.jorel.commandapi.arguments.LiteralArgument; import dev.jorel.commandapi.arguments.MultiLiteralArgument; import dev.jorel.commandapi.arguments.PreviewInfo; +import dev.jorel.commandapi.preprocessor.RequireField; import dev.jorel.commandapi.wrappers.PreviewableFunction; // The "brains" behind the CommandAPI. @@ -51,6 +52,7 @@ // and I'm not sure if we can use the Adventure API on Fabric, so let's // assume we can't until we figure that out. +@RequireField(in = CommandContext.class, name = "arguments", ofType = Map.class) public class BaseHandler { // TODO: Figure out what here gets moved to the common implementation and what // is platform-specific @@ -283,9 +285,8 @@ Predicate generatePermissions(String commandName, CommandPermission perm final CommandPermission finalPermission = permission; // Register it to the Bukkit permissions registry - if (finalPermission.getPermission().isPresent()) { - platform.registerPermission(finalPermission.getPermission().get()); - } + Optional permissionString = finalPermission.getPermission(); + permissionString.ifPresent(platform::registerPermission); return (Source css) -> permissionCheck(platform.getCommandSenderFromCommandSource(css), finalPermission, requirements); @@ -316,6 +317,7 @@ static boolean permissionCheck(AbstractCommandSender sender, CommandPermissio } return satisfiesPermissions && requirements.test(sender); } + ////////////////////////////////////////////////////////////////////////////////////////////////////// // SECTION: Registration // ////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -818,7 +820,7 @@ public static Field getField(Class clazz, String name) { /** * Class to store cached methods and fields - * + *

* This is required because each key is made up of a class and a field or method * name */ @@ -876,5 +878,4 @@ private static void descartesRecursive(List> originalList, int posit } } - -} \ No newline at end of file +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index a3479c4dfa..9ef69fba3f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi.abstractions; +import java.io.IOException; import java.util.List; import com.mojang.brigadier.CommandDispatcher; @@ -43,9 +44,10 @@ public abstract class AbstractPlatform { // before they can be used. public abstract void registerPermission(String string); - // Some commands have existing suggestion providers. TODO: We can PROBABLY avoid this by - // implementing the relevant NMS SuggestionProviders implementation on the platform-specific - // argument, but I CBA to think about that now so I'll dump it here + // Some commands have existing suggestion providers. + // TODO: We can PROBABLY avoid this by + // implementing the relevant NMS SuggestionProviders implementation on the platform-specific + // argument, but I CBA to think about that now so I'll dump it here public abstract SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider); @@ -58,23 +60,29 @@ public abstract class AbstractPlatform { * @param aliasNodes any alias nodes that were also registered as a part of this registration process * @param resultantNode the node that was registered */ - public abstract void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes); + public abstract void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes) throws IOException; /** - * Registers a Brigadier command node. For Bukkit, this requires using reflection to - * access the CommandDispatcher (DISPATCHER), then registering it directly using - * DISPATCHER.register. For Velocity, this is as simple as commandManager.register(new BrigadierCommand( node )) + * Registers a Brigadier command node and returns the built node. */ public abstract LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node); + // TODO: I'm not sure what this is supposed to do. Currently, Bukkit help is handled in onEnable + // and private methods, so is this method obsolete now? Other platforms could conceivably do the same, + // or do nothing if they don't have help (like Velocity might?). Maybe there's something that can be done + // with this registerHelp method that makes more sense? // We probabbbbbbbbly need to register some form of help for commands? I'm not // sure if public abstract void registerHelp(); /** - * Unregisters a command. For Bukkit, this is as complex as unregistering it from - * the CommandDispatcher. For Velocity, this is as simple as commandManager.unregister(commandName) + * Unregisters a command from the CommandGraph so it can't be run anymore. + * + * @param commandName the name of the command to unregister + * @param force whether the unregistration system should attempt to remove + * all instances of the command, regardless of whether they + * have been registered by Minecraft, Bukkit or Spigot etc. */ public abstract void unregister(String commandName, boolean force); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index c638d65216..266a6674ed 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -1,14 +1,20 @@ package dev.jorel.commandapi; -import java.util.ArrayList; -import java.util.List; +import java.io.File; +import java.io.IOException; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.util.*; import java.util.function.Function; import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.tree.CommandNode; import dev.jorel.commandapi.commandsenders.*; +import dev.jorel.commandapi.preprocessor.RequireField; import dev.jorel.commandapi.preprocessor.Unimplemented; import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.NamespacedKey; import com.mojang.brigadier.builder.LiteralArgumentBuilder; @@ -20,32 +26,60 @@ import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.nms.NMS; -import org.bukkit.command.BlockCommandSender; -import org.bukkit.command.CommandSender; -import org.bukkit.command.ConsoleCommandSender; -import org.bukkit.command.ProxiedCommandSender; +import org.bukkit.command.*; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.help.HelpTopic; +import org.bukkit.permissions.Permission; import org.bukkit.plugin.java.JavaPlugin; +import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.*; + // BukkitPlatform is an AbstractPlatform, but also needs all of the methods from // NMS, so it implements NMS. Our implementation of BukkitPlatform is now derived // using the version handler (and thus, deferred to our NMS-specific implementations) + +@RequireField(in = CommandNode.class, name = "children", ofType = Map.class) +@RequireField(in = CommandNode.class, name = "literals", ofType = Map.class) +@RequireField(in = CommandNode.class, name = "arguments", ofType = Map.class) public abstract class BukkitPlatform extends AbstractPlatform implements NMS { - - // Blah blah access instance directly and all of that stuff + // References to utility classes private static BukkitPlatform instance; + private PaperImplementations paper; + + // Static VarHandles + private final static VarHandle COMMANDNODE_CHILDREN; + private final static VarHandle COMMANDNODE_LITERALS; + private final static VarHandle COMMANDNODE_ARGUMENTS; + + // Compute all var handles all in one go so we don't do this during main server runtime + static { + VarHandle commandNodeChildren = null; + VarHandle commandNodeLiterals = null; + VarHandle commandNodeArguments = null; + try { + commandNodeChildren = MethodHandles.privateLookupIn(CommandNode.class, MethodHandles.lookup()) + .findVarHandle(CommandNode.class, "children", Map.class); + commandNodeLiterals = MethodHandles.privateLookupIn(CommandNode.class, MethodHandles.lookup()) + .findVarHandle(CommandNode.class, "literals", Map.class); + commandNodeArguments = MethodHandles.privateLookupIn(CommandNode.class, MethodHandles.lookup()) + .findVarHandle(CommandNode.class, "arguments", Map.class); + } catch (ReflectiveOperationException e) { + e.printStackTrace(); + } + COMMANDNODE_CHILDREN = commandNodeChildren; + COMMANDNODE_LITERALS = commandNodeLiterals; + COMMANDNODE_ARGUMENTS = commandNodeArguments; + } public BukkitPlatform() { instance = this; } - private PaperImplementations paper; - public static BukkitPlatform get() { return instance; } @@ -114,10 +148,9 @@ public void onEnable(Object pluginObject) { CommandAPI.stopCommandRegistration(); // Sort out permissions after the server has finished registering them all - // TODO: Where are the permissions fixed and help updated? - BaseHandler.fixPermissions(); + fixPermissions(); reloadDataPacks(); - BaseHandler.updateHelpForCommands(); + updateHelpForCommands(); }, 0L); // (Re)send command graph packet to players when they join @@ -158,6 +191,151 @@ public void onPlayerQuit(PlayerQuitEvent e) { paper.registerReloadHandler(plugin); } + /* + * Makes permission checks more "Bukkit" like and less "Vanilla Minecraft" like + */ + private void fixPermissions() { + // Get the command map to find registered commands + CommandMap map = paper.getCommandMap(); + // TODO: Does this make sense? Currently, BaseHandler is filling up PERMISSIONS_TO_FIX, but fixing permissions + // seems to be a platform-specific operation, at least given that isVanillaCommandWrapper is used here. Should + // the PERMISSIONS_TO_FIX stuff be moved entirely to platforms, or can this method be mostly abstracted back + // up to BaseHandler? + final Map PERMISSIONS_TO_FIX = BaseHandler.getInstance().PERMISSIONS_TO_FIX; + + if (!PERMISSIONS_TO_FIX.isEmpty()) { + CommandAPI.logInfo("Linking permissions to commands:"); + } + + for (Map.Entry entry : PERMISSIONS_TO_FIX.entrySet()) { + String cmdName = entry.getKey(); + CommandPermission perm = entry.getValue(); + CommandAPI.logInfo(perm.toString() + " -> /" + cmdName); + + final String permNode; + if (perm.isNegated() || perm.equals(CommandPermission.NONE) || perm.equals(CommandPermission.OP)) { + permNode = ""; + } else if (perm.getPermission().isPresent()) { + permNode = perm.getPermission().get(); + } else { + // This case should never occur. Worth testing this with some assertion + permNode = null; + } + + /* + * Sets the permission. If you have to be OP to run this command, we set the + * permission to null. Doing so means that Bukkit's "testPermission" will always + * return true, however since the command's permission check occurs internally + * via the CommandAPI, this isn't a problem. + * + * If anyone dares tries to use testPermission() on this command, seriously, + * what are you doing and why? + */ + Command command = map.getCommand(cmdName); + if (command != null && isVanillaCommandWrapper(command)) { + command.setPermission(permNode); + } + command = map.getCommand("minecraft:" + cmdName); + if (command != null && isVanillaCommandWrapper(command)) { + command.setPermission(permNode); + } + } + CommandAPI.logNormal("Linked " + PERMISSIONS_TO_FIX.size() + " Bukkit permissions to commands"); + } + + /* + * Generate and register help topics + */ + private String generateCommandHelpPrefix(String command) { + return (Bukkit.getPluginCommand(command) == null ? "/" : "/minecraft:") + command; + } + + private void generateHelpUsage(StringBuilder sb, RegisteredCommand command) { + sb.append(ChatColor.GOLD).append("Usage: ").append(ChatColor.WHITE); + + // Generate usages + List usages = new ArrayList<>(); + for (RegisteredCommand rCommand : BaseHandler.getInstance().registeredCommands) { + if (rCommand.commandName().equals(command.commandName())) { + StringBuilder usageString = new StringBuilder(); + usageString.append("/").append(command.commandName()).append(" "); + for (String arg : rCommand.argsAsStr()) { + usageString.append("<").append(arg.split(":")[0]).append("> "); + } + usages.add(usageString.toString()); + } + } + + // If 1 usage, put it on the same line, otherwise format like a list + if (usages.size() == 1) { + sb.append(usages.get(0)); + } else if (usages.size() > 1) { + for (String usage : usages) { + sb.append("\n- ").append(usage); + } + } + } + + void updateHelpForCommands() { + Map helpTopicsToAdd = new HashMap<>(); + + for (RegisteredCommand command : BaseHandler.getInstance().registeredCommands) { + // Generate short description + final String shortDescription; + if (command.shortDescription().isPresent()) { + shortDescription = command.shortDescription().get(); + } else if (command.fullDescription().isPresent()) { + shortDescription = command.fullDescription().get(); + } else { + shortDescription = "A Mojang provided command."; + } + + // Generate full description + StringBuilder sb = new StringBuilder(); + if (command.fullDescription().isPresent()) { + sb.append(ChatColor.GOLD).append("Description: ").append(ChatColor.WHITE).append(command.fullDescription().get()).append("\n"); + } + + generateHelpUsage(sb, command); + sb.append("\n"); + + // Generate aliases. We make a copy of the StringBuilder because we + // want to change the output when we register aliases + StringBuilder aliasSb = new StringBuilder(sb.toString()); + if (command.aliases().length > 0) { + sb.append(ChatColor.GOLD).append("Aliases: ").append(ChatColor.WHITE).append(String.join(", ", command.aliases())); + } + + // Must be empty string, not null as defined by OBC::CustomHelpTopic + String permission = command.permission().getPermission().orElse(""); + + // Don't override the plugin help topic + String commandPrefix = generateCommandHelpPrefix(command.commandName()); + helpTopicsToAdd.put(commandPrefix, generateHelpTopic(commandPrefix, shortDescription, sb.toString().trim(), permission)); + + for (String alias : command.aliases()) { + StringBuilder currentAliasSb = new StringBuilder(aliasSb.toString()); + if (command.aliases().length > 0) { + currentAliasSb.append(ChatColor.GOLD).append("Aliases: ").append(ChatColor.WHITE); + + // We want to get all aliases (including the original command name), + // except for the current alias + List aliases = new ArrayList<>(Arrays.asList(command.aliases())); + aliases.add(command.commandName()); + aliases.remove(alias); + + currentAliasSb.append(ChatColor.WHITE).append(String.join(", ", aliases)); + } + + // Don't override the plugin help topic + commandPrefix = generateCommandHelpPrefix(alias); + helpTopicsToAdd.put(commandPrefix, generateHelpTopic(commandPrefix, shortDescription, currentAliasSb.toString().trim(), permission)); + } + } + + addToHelpMap(helpTopicsToAdd); + } + @Override public void onDisable() { for(Player player : Bukkit.getOnlinePlayers()) { @@ -166,15 +344,15 @@ public void onDisable() { } @Override - @Unimplemented(because = Unimplemented.REASON.REQUIRES_CSS) + @Unimplemented(because = REQUIRES_CSS) public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); @Override - @Unimplemented(because = Unimplemented.REASON.REQUIRES_CSS) + @Unimplemented(because = REQUIRES_CSS) public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); @Override - @Unimplemented(because = Unimplemented.REASON.REQUIRES_CRAFTBUKKIT) + @Unimplemented(because = REQUIRES_CRAFTBUKKIT) public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); public AbstractCommandSender wrapCommandSender(CommandSender sender) { @@ -194,31 +372,57 @@ public AbstractCommandSender wrapCommandSender(CommandS } @Override - @Unimplemented(because = Unimplemented.REASON.REQUIRES_MINECRAFT_SERVER) + @Unimplemented(because = REQUIRES_MINECRAFT_SERVER) public abstract CommandDispatcher getBrigadierDispatcher(); @Override public void registerPermission(String string) { - // TODO Auto-generated method stub - + try { + Bukkit.getPluginManager().addPermission(new Permission(string)); + } catch (IllegalArgumentException e) { + assert true; // nop, not an error. + } } @Override - public SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider) { - // TODO Auto-generated method stub - return null; - } + @Unimplemented(because = REQUIRES_MINECRAFT_SERVER) + public abstract SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider); @Override - public void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes) { - // TODO Auto-generated method stub + public void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes) throws IOException { + getBrigadierDispatcher().findAmbiguities( + (CommandNode parent, + CommandNode child, + CommandNode sibling, + Collection inputs) -> { + if(resultantNode.equals(parent)) { + // Byeeeeeeeeeeeeeeeeeeeee~ + } + }); + // We never know if this is "the last command" and we want dynamic (even if + // partial) + // command registration. Generate the dispatcher file! + generateDispatcherFile(); + } + + // Produce the commandDispatch.json file for debug purposes + private void generateDispatcherFile() throws IOException { + File file = CommandAPI.getConfiguration().getDispatcherFile(); + if (file != null) { + try { + file.createNewFile(); + } catch (IOException e) { + e.printStackTrace(System.out); + } + + createDispatcherFile(file, getBrigadierDispatcher()); + } } @Override public LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node) { - // TODO Auto-generated method stub - return null; + return getBrigadierDispatcher().register(node); } @Override @@ -229,8 +433,27 @@ public void registerHelp() { @Override public void unregister(String commandName, boolean force) { - // TODO Auto-generated method stub + if (CommandAPI.getConfiguration().hasVerboseOutput()) { + CommandAPI.logInfo("Unregistering command /" + commandName); + } + + // Get the child nodes from the loaded dispatcher class + Map> commandNodeChildren = (Map>) COMMANDNODE_CHILDREN + .get(getBrigadierDispatcher().getRoot()); + + if (force) { + // Remove them by force + for (String key : new HashSet<>(commandNodeChildren.keySet())) { + if (key.contains(":") && key.split(":")[1].equalsIgnoreCase(commandName)) { + commandNodeChildren.remove(key); + } + } + } + // Otherwise, just remove them normally + commandNodeChildren.remove(commandName); + ((Map>) COMMANDNODE_LITERALS.get(getBrigadierDispatcher().getRoot())).remove(commandName); + ((Map>) COMMANDNODE_ARGUMENTS.get(getBrigadierDispatcher().getRoot())).remove(commandName); } /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java deleted file mode 100644 index 8341b246dd..0000000000 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ /dev/null @@ -1,1135 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2021 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi; - -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Optional; -import java.util.Set; -import java.util.TreeMap; -import java.util.concurrent.CompletableFuture; -import java.util.function.Predicate; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandMap; -import org.bukkit.command.CommandSender; -import org.bukkit.command.PluginCommand; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.permissions.Permission; - -import com.mojang.brigadier.Command; -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.builder.ArgumentBuilder; -import com.mojang.brigadier.builder.LiteralArgumentBuilder; -import com.mojang.brigadier.builder.RequiredArgumentBuilder; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.context.ParsedArgument; -import com.mojang.brigadier.context.StringRange; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; -import com.mojang.brigadier.suggestion.SuggestionsBuilder; -import com.mojang.brigadier.tree.CommandNode; -import com.mojang.brigadier.tree.LiteralCommandNode; - -import dev.jorel.commandapi.abstractions.AbstractPlatform; -import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.ArgumentSuggestions; -import dev.jorel.commandapi.arguments.ICustomProvidedArgument; -import dev.jorel.commandapi.arguments.IPreviewable; -import dev.jorel.commandapi.arguments.LiteralArgument; -import dev.jorel.commandapi.arguments.MultiLiteralArgument; -import dev.jorel.commandapi.arguments.PreviewInfo; -import dev.jorel.commandapi.nms.NMS; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.PreviewableFunction; -import net.kyori.adventure.text.Component; - -/** - * Handles the main backend of the CommandAPI. This constructs brigadier Command - * objects, applies and generates arguments and handles suggestions. This also - * handles permission registration for Bukkit, interactions for NMS and the - * registration and unregistration of commands. - */ -@RequireField(in = CommandNode.class, name = "children", ofType = Map.class) -@RequireField(in = CommandNode.class, name = "literals", ofType = Map.class) -@RequireField(in = CommandNode.class, name = "arguments", ofType = Map.class) -@RequireField(in = CommandContext.class, name = "arguments", ofType = Map.class) -public class CommandAPIHandler extends BaseHandler { - // TODO: Figure out what here gets moved to the common implementation and what is platform-specific - - private final static VarHandle COMMANDNODE_CHILDREN; - private final static VarHandle COMMANDNODE_LITERALS; - private final static VarHandle COMMANDNODE_ARGUMENTS; - private final static VarHandle COMMANDCONTEXT_ARGUMENTS; - - // Compute all var handles all in one go so we don't do this during main server - // runtime - static { - VarHandle commandNodeChildren = null; - VarHandle commandNodeLiterals = null; - VarHandle commandNodeArguments = null; - VarHandle commandContextArguments = null; - try { - commandNodeChildren = MethodHandles.privateLookupIn(CommandNode.class, MethodHandles.lookup()) - .findVarHandle(CommandNode.class, "children", Map.class); - commandNodeLiterals = MethodHandles.privateLookupIn(CommandNode.class, MethodHandles.lookup()) - .findVarHandle(CommandNode.class, "literals", Map.class); - commandNodeArguments = MethodHandles.privateLookupIn(CommandNode.class, MethodHandles.lookup()) - .findVarHandle(CommandNode.class, "arguments", Map.class); - commandContextArguments = MethodHandles.privateLookupIn(CommandContext.class, MethodHandles.lookup()) - .findVarHandle(CommandContext.class, "arguments", Map.class); - } catch (ReflectiveOperationException e) { - e.printStackTrace(); - } - COMMANDNODE_CHILDREN = commandNodeChildren; - COMMANDNODE_LITERALS = commandNodeLiterals; - COMMANDNODE_ARGUMENTS = commandNodeArguments; - COMMANDCONTEXT_ARGUMENTS = commandContextArguments; - } - - /** - * Returns the raw input for an argument for a given command context and its - * key. This effectively returns the string value that is currently typed for - * this argument - * - * @param the command source type - * @param cmdCtx the command context which is used to run this - * command - * @param key the node name for the argument - * @return the raw input string for this argument - */ - public static String getRawArgumentInput(CommandContext cmdCtx, - String key) { - StringRange range = ((Map>) COMMANDCONTEXT_ARGUMENTS.get(cmdCtx)) - .get(key).getRange(); - return cmdCtx.getInput().substring(range.getStart(), range.getEnd()); - } - - private static BaseHandler instance; - - /** - * Returns the Singleton instance of the CommandAPI's internal handler - * - * @return the Singleton instance of the CommandAPI's internal handler - */ - @Deprecated - public static BaseHandler getInstance() { - if (instance == null) { - instance = new BaseHandler<>(); - } - return instance; - } - - final Map FIELDS = new HashMap<>(); - final TreeMap PERMISSIONS_TO_FIX = new TreeMap<>(); - final CommandDispatcher DISPATCHER; - final List registeredCommands; // Keep track of what has been registered for type checking - final Map, IPreviewable, ?>> previewableArguments; // Arguments with previewable chat - private PaperImplementations paper; - - private static BukkitPlatform initializeBukkitPlatform() { - // TODO: Get bukkit platform from CommandAPIVersionHandler, or otherwise (e.g. custom NMS) -// final String bukkit = Bukkit.getServer().toString(); -// if(CommandAPI.getConfiguration().getCustomNMS() != null) { -// NMS = (NMS) CommandAPI.getConfiguration().getCustomNMS(); -// } else { -// NMS = CommandAPIVersionHandler -// .getNMS(bukkit.substring(bukkit.indexOf("minecraftVersion") + 17, bukkit.length() - 1)); -// } - return null; - } - - @Override - public BukkitPlatform getPlatform() { - return (BukkitPlatform) super.getPlatform(); - } - - @SuppressWarnings("unchecked") - private CommandAPIHandler() { - super(initializeBukkitPlatform()); - DISPATCHER = getPlatform().getBrigadierDispatcher(); - registeredCommands = new ArrayList<>(); - previewableArguments = new HashMap<>(); - this.paper = new PaperImplementations(false, getPlatform()); - } - - - - /** - * Returns an instance of NMS - * - * @return an instance of NMS - */ - public NMS getNMS() { - return this.NMS; - } - - /** - * Returns an instance of PaperImplementations - * - * @return an instance of PaperImplementations - */ - public PaperImplementations getPaper() { - return this.paper; - } - - /** - * Unregisters a command from the NMS command graph. - * - * - * @param commandName the name of the command to unregister - * @param force whether the unregistration system should attempt to remove - * all instances of the command, regardless of whether they - * have been registered by Minecraft, Bukkit or Spigot etc. - */ - void unregister(String commandName, boolean force) { - if (CommandAPI.getConfiguration().hasVerboseOutput()) { - CommandAPI.logInfo("Unregistering command /" + commandName); - } - - // Get the child nodes from the loaded dispatcher class - Map> commandNodeChildren = (Map>) COMMANDNODE_CHILDREN - .get(DISPATCHER.getRoot()); - - if (force) { - // Remove them by force - for (String key : new HashSet<>(commandNodeChildren.keySet())) { - if (key.contains(":") && key.split(":")[1].equalsIgnoreCase(commandName)) { - commandNodeChildren.remove(key); - } - } - } - - // Otherwise, just remove them normally - commandNodeChildren.remove(commandName); - ((Map>) COMMANDNODE_LITERALS.get(DISPATCHER.getRoot())).remove(commandName); - ((Map>) COMMANDNODE_ARGUMENTS.get(DISPATCHER.getRoot())).remove(commandName); - } - - /** - * Generates a command to be registered by the CommandAPI. - * - * @param args set of ordered argument pairs which contain the prompt text - * and their argument types - * @param actualArgs - * @param executor code to be ran when the command is executed - * @return a brigadier command which is registered internally - * @throws CommandSyntaxException if an error occurs when the command is ran - */ - Command generateCommand(Argument[] args, - CustomCommandExecutor executor, boolean converted) throws CommandSyntaxException { - - // Generate our command from executor - return (cmdCtx) -> { - CommandSender sender = NMS.getSenderForCommand(cmdCtx, executor.isForceNative()); - if (converted) { - Object[] argObjs = argsToObjectArr(cmdCtx, args); - int resultValue = 0; - - // Return a String[] of arguments for converted commands - String[] argsAndCmd = cmdCtx.getRange().get(cmdCtx.getInput()).split(" "); - String[] result = new String[argsAndCmd.length - 1]; - System.arraycopy(argsAndCmd, 1, result, 0, argsAndCmd.length - 1); - - // As stupid as it sounds, it's more performant and safer to use - // a List[] instead of a List>, due to NPEs and AIOOBEs. - @SuppressWarnings("unchecked") - List[] entityNamesForArgs = new List[args.length]; - for (int i = 0; i < args.length; i++) { - entityNamesForArgs[i] = args[i].getEntityNames(argObjs[i]); - } - List> product = CartesianProduct.getDescartes(Arrays.asList(entityNamesForArgs)); - - // These objects in obj are List - for (List strings : product) { - // We assume result.length == strings.size - if (result.length == strings.size()) { - for (int i = 0; i < result.length; i++) { - if (strings.get(i) != null) { - result[i] = strings.get(i); - } - } - } - resultValue += executor.execute(sender, result); - } - - return resultValue; - } else { - return executor.execute(sender, argsToObjectArr(cmdCtx, args)); - } - }; - } - - /** - * Converts the List<Argument> into an Object[] for command execution - * - * @param cmdCtx the command context that will execute this command - * @param args the map of strings to arguments - * @return an Object[] which can be used in (sender, args) -> - * @throws CommandSyntaxException - */ - Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) - throws CommandSyntaxException { - // Array for arguments for executor - List argList = new ArrayList<>(); - - // Populate array - for (Argument argument : args) { - if (argument.isListed()) { - argList.add(parseArgument(cmdCtx, argument.getNodeName(), argument, argList.toArray())); - } - } - - return argList.toArray(); - } - - /** - * Parses an argument and converts it into its standard Bukkit type (as defined - * in NMS.java) - * - * @param type the argument type - * @param cmdCtx the command context - * @param key the key (declared in arguments) - * @param value the value (the argument declared in arguments) - * @param sender the command sender - * @return the standard Bukkit type - * @throws CommandSyntaxException - */ - Object parseArgument(CommandContext cmdCtx, String key, Argument value, Object[] previousArgs) - throws CommandSyntaxException { - if (value.isListed()) { - return value.parseArgument(NMS, cmdCtx, key, previousArgs); - } else { - return null; - } - } - - ////////////////////////////////////////////////////////////////////////////////////////////////////// - // SECTION: Permissions // - ////////////////////////////////////////////////////////////////////////////////////////////////////// - - /** - * This permission generation setup ONLY works iff: - *
    - *
  • You register the parent permission node FIRST.
  • - *
  • Example:
    - * /mycmd - permission node: my.perm
    - * /mycmd <arg> - permission node: my.perm.other
  • - *
- * - * The my.perm.other permission node is revoked for the COMMAND - * REGISTRATION, however: - *
    - *
  • The permission node IS REGISTERED.
  • - *
  • The permission node, if used for an argument (as in this case), will be - * used for suggestions for said argument
  • - *
- * - * @param requirements - */ - Predicate generatePermissions(String commandName, CommandPermission permission, - Predicate requirements) { - // If we've already registered a permission, set it to the "parent" permission. - if (PERMISSIONS_TO_FIX.containsKey(commandName.toLowerCase())) { - if (!PERMISSIONS_TO_FIX.get(commandName.toLowerCase()).equals(permission)) { - permission = PERMISSIONS_TO_FIX.get(commandName.toLowerCase()); - } - } else { - // Add permission to a list to fix conflicts with minecraft:permissions - PERMISSIONS_TO_FIX.put(commandName.toLowerCase(), permission); - } - - final CommandPermission finalPermission = permission; - - // Register it to the Bukkit permissions registry - if (finalPermission.getPermission().isPresent()) { - try { - Bukkit.getPluginManager().addPermission(new Permission(finalPermission.getPermission().get())); - } catch (IllegalArgumentException e) { - assert true; // nop, not an error. - } - } - - return (Source css) -> permissionCheck(NMS.getCommandSenderFromCSS(css), finalPermission, - requirements); - } - - /** - * Checks if a sender has a given permission. - * - * @param sender the sender to check permissions of - * @param permission the CommandAPI CommandPermission permission to check - * @return true if the sender satisfies the provided permission - */ - boolean permissionCheck(CommandSender sender, CommandPermission permission, Predicate requirements) { - boolean satisfiesPermissions; - if (sender == null) { - satisfiesPermissions = true; - } else { - if (permission.equals(CommandPermission.NONE)) { - satisfiesPermissions = true; - } else if (permission.equals(CommandPermission.OP)) { - satisfiesPermissions = sender.isOp(); - } else { - satisfiesPermissions = sender.hasPermission(permission.getPermission().get()); - } - } - if (permission.isNegated()) { - satisfiesPermissions = !satisfiesPermissions; - } - return satisfiesPermissions && requirements.test(sender); - } - - /* - * Makes permission checks more "Bukkit" like and less "Vanilla Minecraft" like - */ - void fixPermissions() { - // Get the command map to find registered commands - CommandMap map = paper.getCommandMap(); - - if (!PERMISSIONS_TO_FIX.isEmpty()) { - CommandAPI.logInfo("Linking permissions to commands:"); - } - - for (Entry entry : PERMISSIONS_TO_FIX.entrySet()) { - String cmdName = entry.getKey(); - CommandPermission perm = entry.getValue(); - CommandAPI.logInfo(perm.toString() + " -> /" + cmdName); - - final String permNode; - if (perm.isNegated() || perm.equals(CommandPermission.NONE) || perm.equals(CommandPermission.OP)) { - permNode = ""; - } else if (perm.getPermission().isPresent()) { - permNode = perm.getPermission().get(); - } else { - // This case should never occur. Worth testing this with some assertion - permNode = null; - } - - /* - * Sets the permission. If you have to be OP to run this command, we set the - * permission to null. Doing so means that Bukkit's "testPermission" will always - * return true, however since the command's permission check occurs internally - * via the CommandAPI, this isn't a problem. - * - * If anyone dares tries to use testPermission() on this command, seriously, - * what are you doing and why? - */ - if (NMS.isVanillaCommandWrapper(map.getCommand(cmdName))) { - map.getCommand(cmdName).setPermission(permNode); - } - if (NMS.isVanillaCommandWrapper(map.getCommand("minecraft:" + cmdName))) { - map.getCommand(cmdName).setPermission(permNode); - } - } - CommandAPI.logNormal("Linked " + PERMISSIONS_TO_FIX.size() + " Bukkit permissions to commands"); - } - - ////////////////////////////////////////////////////////////////////////////////////////////////////// - // SECTION: Registration // - ////////////////////////////////////////////////////////////////////////////////////////////////////// - - /* - * Expands multiliteral arguments and registers all expansions of - * MultiLiteralArguments throughout the provided command. Returns true if - * multiliteral arguments were present (and expanded) and returns false if - * multiliteral arguments were not present. - */ - private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, - CustomCommandExecutor executor, boolean converted) - throws CommandSyntaxException, IOException { - - // "Expands" our MultiLiterals into Literals - for (int index = 0; index < args.length; index++) { - // Find the first multiLiteral in the for loop - if (args[index] instanceof MultiLiteralArgument superArg) { - - // Add all of its entries - for (int i = 0; i < superArg.getLiterals().length; i++) { - LiteralArgument litArg = (LiteralArgument) new LiteralArgument(superArg.getLiterals()[i]) - .setListed(superArg.isListed()).withPermission(superArg.getArgumentPermission()) - .withRequirement(superArg.getRequirements()); - - // Reconstruct the list of arguments and place in the new literals - Argument[] newArgs = Arrays.copyOf(args, args.length); - newArgs[index] = litArg; - register(meta, newArgs, executor, converted); - } - return true; - } - } - return false; - } - - // Prevent nodes of the same name but with different types: - // allow /race invite player - // disallow /race invite player - // Return true if conflict was present, otherwise return false - private boolean hasCommandConflict(String commandName, Argument[] args, String argumentsAsString) { - List regArgs = new ArrayList<>(); - for (RegisteredCommand rCommand : registeredCommands) { - if (rCommand.commandName().equals(commandName)) { - for (String str : rCommand.argsAsStr()) { - regArgs.add(str.split(":")); - } - // We just find the first entry that causes a conflict. If this - // were some industry-level code, we would probably generate a - // list of all commands first, then check for command conflicts - // all in one go so we can display EVERY command conflict for - // all commands, but this works perfectly and isn't important. - break; - } - } - for (int i = 0; i < args.length; i++) { - // Avoid IAOOBEs - if (regArgs.size() == i && regArgs.size() < args.length) { - break; - } - // We want to ensure all node names are the same - if (!regArgs.get(i)[0].equals(args[i].getNodeName())) { - break; - } - // This only applies to the last argument - if (i == args.length - 1) { - if (!regArgs.get(i)[1].equals(args[i].getClass().getSimpleName())) { - // Command it conflicts with - StringBuilder builder2 = new StringBuilder(); - for (String[] arg : regArgs) { - builder2.append(arg[0]).append("<").append(arg[1]).append("> "); - } - - CommandAPI.logError(""" - Failed to register command: - - %s %s - - Because it conflicts with this previously registered command: - - %s %s - """.formatted(commandName, argumentsAsString, commandName, builder2.toString())); - return true; - } - } - } - return false; - } - - // Links arg -> Executor - private ArgumentBuilder generateInnerArgument(Command command, - Argument[] args) { - Argument innerArg = args[args.length - 1]; - - // Handle Literal arguments - if (innerArg instanceof LiteralArgument literalArgument) { - return getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), innerArg.getArgumentPermission(), - innerArg.getRequirements()).executes(command); - } - - // Handle arguments with built-in suggestion providers - else if (innerArg instanceof ICustomProvidedArgument customProvidedArg - && !innerArg.getOverriddenSuggestions().isPresent()) { - return getRequiredArgumentBuilderWithProvider(innerArg, args, - NMS.getSuggestionProvider(customProvidedArg.getSuggestionProvider())).executes(command); - } - - // Handle every other type of argument - else { - return getRequiredArgumentBuilderDynamic(args, innerArg).executes(command); - } - } - - // Links arg1 -> arg2 -> ... argN -> innermostArgument - private ArgumentBuilder generateOuterArguments( - ArgumentBuilder innermostArgument, Argument[] args) { - ArgumentBuilder outer = innermostArgument; - for (int i = args.length - 2; i >= 0; i--) { - Argument outerArg = args[i]; - - // Handle Literal arguments - if (outerArg instanceof LiteralArgument literalArgument) { - outer = getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), - outerArg.getArgumentPermission(), outerArg.getRequirements()).then(outer); - } - - // Handle arguments with built-in suggestion providers - else if (outerArg instanceof ICustomProvidedArgument customProvidedArg - && !outerArg.getOverriddenSuggestions().isPresent()) { - outer = getRequiredArgumentBuilderWithProvider(outerArg, args, - NMS.getSuggestionProvider(customProvidedArg.getSuggestionProvider())).then(outer); - } - - // Handle every other type of argument - else { - outer = getRequiredArgumentBuilderDynamic(args, outerArg).then(outer); - } - } - return outer; - } - - /** - * Handles previewable arguments. This stores the path to previewable arguments - * in {@link BaseHandler#previewableArguments} for runtime resolving - * @param commandName the name of the command - * @param args the declared arguments - * @param aliases the command's aliases - */ - private void handlePreviewableArguments(String commandName, Argument[] args, String[] aliases) { - if(args.length > 0 && args[args.length - 1] instanceof IPreviewable previewable) { - List path = new ArrayList<>(); - - path.add(commandName); - for(Argument arg : args) { - path.add(arg.getNodeName()); - } - previewableArguments.put(List.copyOf(path), previewable); - - // And aliases - for(String alias : aliases) { - path.set(0, alias); - previewableArguments.put(List.copyOf(path), previewable); - } - } - } - - // Builds our NMS command using the given arguments for this method, then - // registers it - void register(CommandMetaData meta, final Argument[] args, - CustomCommandExecutor executor, boolean converted) - throws CommandSyntaxException, IOException { - - // "Expands" our MultiLiterals into Literals - if (expandMultiLiterals(meta, args, executor, converted)) { - return; - } - - // Create the human-readable command syntax of arguments - final String humanReadableCommandArgSyntax; { - StringBuilder builder = new StringBuilder(); - for (Argument arg : args) { - builder.append(arg.toString()).append(" "); - } - humanReadableCommandArgSyntax = builder.toString().trim(); - } - - // #312 Safeguard against duplicate node names. This only applies to - // required arguments (i.e. not literal arguments) - { - Set argumentNames = new HashSet<>(); - for(Argument arg : args) { - // We shouldn't find MultiLiteralArguments at this point, only - // LiteralArguments - if(!(arg instanceof LiteralArgument)) { - if(argumentNames.contains(arg.getNodeName())) { - CommandAPI.logError(""" - Failed to register command: - - %s %s - - Because the following argument shares the same node name as another argument: - - %s - """.formatted(meta.commandName, humanReadableCommandArgSyntax, arg.toString())); - return; - } else { - argumentNames.add(arg.getNodeName()); - } - } - } - } - - // Expand metaData into named variables - String commandName = meta.commandName; - CommandPermission permission = meta.permission; - String[] aliases = meta.aliases; - Predicate requirements = meta.requirements; - Optional shortDescription = meta.shortDescription; - Optional fullDescription = meta.fullDescription; - - // Handle command conflicts - boolean hasRegisteredCommand = false; - for (RegisteredCommand rCommand : registeredCommands) { - hasRegisteredCommand |= rCommand.commandName().equals(commandName); - } - if (hasRegisteredCommand && hasCommandConflict(commandName, args, humanReadableCommandArgSyntax)) { - return; - } else { - List argumentsString = new ArrayList<>(); - for (Argument arg : args) { - argumentsString.add(arg.getNodeName() + ":" + arg.getClass().getSimpleName()); - } - registeredCommands.add(new RegisteredCommand(commandName, argumentsString, shortDescription, fullDescription, aliases, permission)); - } - - // Handle previewable arguments - handlePreviewableArguments(commandName, args, aliases); - - // Warn if the command we're registering already exists in this plugin's - // plugin.yml file - { - final PluginCommand pluginCommand = Bukkit.getPluginCommand(commandName); - if (pluginCommand != null) { - CommandAPI.logWarning("Plugin command /%s is registered by Bukkit (%s). Did you forget to remove this from your plugin.yml file?".formatted(commandName, - pluginCommand.getPlugin().getName())); - } - } - - CommandAPI.logInfo("Registering command /" + commandName + " " + humanReadableCommandArgSyntax); - - // Generate the actual command - Command command = generateCommand(args, executor, converted); - - /* - * The innermost argument needs to be connected to the executor. Then that - * argument needs to be connected to the previous argument etc. Then the first - * argument needs to be connected to the command name, so we get: CommandName -> - * Args1 -> Args2 -> ... -> ArgsN -> Executor - */ - LiteralCommandNode resultantNode; - if (args.length == 0) { - // Link command name to the executor - resultantNode = DISPATCHER.register(getLiteralArgumentBuilder(commandName) - .requires(generatePermissions(commandName, permission, requirements)).executes(command)); - - // Register aliases - for (String alias : aliases) { - CommandAPI.logInfo("Registering alias /" + alias + " -> " + resultantNode.getName()); - DISPATCHER.register(getLiteralArgumentBuilder(alias) - .requires(generatePermissions(alias, permission, requirements)).executes(command)); - } - } else { - - // Generate all of the arguments, following each other and finally linking to - // the executor - ArgumentBuilder commandArguments = generateOuterArguments( - generateInnerArgument(command, args), args); - - // Link command name to first argument and register - resultantNode = DISPATCHER.register(getLiteralArgumentBuilder(commandName) - .requires(generatePermissions(commandName, permission, requirements)).then(commandArguments)); - - // Register aliases - for (String alias : aliases) { - if (CommandAPI.getConfiguration().hasVerboseOutput()) { - CommandAPI.logInfo("Registering alias /" + alias + " -> " + resultantNode.getName()); - } - - DISPATCHER.register(getLiteralArgumentBuilder(alias) - .requires(generatePermissions(alias, permission, requirements)).then(commandArguments)); - } - } - - DISPATCHER.findAmbiguities( - (CommandNode parent, - CommandNode child, - CommandNode sibling, - Collection inputs) -> { - if(resultantNode.equals(parent)) { - // Byeeeeeeeeeeeeeeeeeeeee~ - } - }); - - // We never know if this is "the last command" and we want dynamic (even if - // partial) - // command registration. Generate the dispatcher file! - generateDispatcherFile(); - } - - // Produce the commandDispatch.json file for debug purposes - private void generateDispatcherFile() throws IOException { - if (CommandAPI.getConfiguration().getDispatcherFile() != null) { - File file = CommandAPI.getConfiguration().getDispatcherFile(); - try { - file.createNewFile(); - } catch (IOException e) { - e.printStackTrace(System.out); - } - - NMS.createDispatcherFile(file, DISPATCHER); - } - } - - ////////////////////////////////////////////////////////////////////////////////////////////////////// - // SECTION: Argument Builders // - ////////////////////////////////////////////////////////////////////////////////////////////////////// - - /** - * Creates a literal for a given name. - * - * @param commandName the name of the literal to create - * @return a brigadier LiteralArgumentBuilder representing a literal - */ - LiteralArgumentBuilder getLiteralArgumentBuilder(String commandName) { - return LiteralArgumentBuilder.literal(commandName); - } - - /** - * Creates a literal for a given name that requires a specified permission. - * - * @param commandName the name fo the literal to create - * @param permission the permission required to use this literal - * @return a brigadier LiteralArgumentBuilder representing a literal - */ - LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandName, - CommandPermission permission, Predicate requirements) { - LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal(commandName); - return builder.requires((Source css) -> permissionCheck(NMS.getCommandSenderFromCSS(css), - permission, requirements)); - } - - // Gets a RequiredArgumentBuilder for a DynamicSuggestedStringArgument - RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, - Argument argument) { - - final SuggestionProvider suggestions; - - if (argument.getOverriddenSuggestions().isPresent()) { - suggestions = toSuggestions(argument, args, true); - } else if (argument.getIncludedSuggestions().isPresent()) { - // TODO(#317): Merge the suggestions included here instead? - suggestions = (cmdCtx, builder) -> argument.getRawType().listSuggestions(cmdCtx, builder); - } else { - suggestions = null; - } - - return getRequiredArgumentBuilderWithProvider(argument, args, suggestions); - } - - // Gets a RequiredArgumentBuilder for an argument, given a SuggestionProvider - RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, - Argument[] args, SuggestionProvider provider) { - SuggestionProvider newSuggestionsProvider = provider; - - // If we have suggestions to add, combine provider with the suggestions - if (argument.getIncludedSuggestions().isPresent() && argument.getOverriddenSuggestions().isEmpty()) { - SuggestionProvider addedSuggestions = toSuggestions(argument, args, - false); - - newSuggestionsProvider = (cmdCtx, builder) -> { - // Heavily inspired by CommandDispatcher#listSuggestions, with combining - // multiple CompletableFuture into one. - - CompletableFuture addedSuggestionsFuture = addedSuggestions.getSuggestions(cmdCtx, - builder); - CompletableFuture providerSuggestionsFuture = provider.getSuggestions(cmdCtx, builder); - CompletableFuture result = new CompletableFuture<>(); - CompletableFuture.allOf(addedSuggestionsFuture, providerSuggestionsFuture).thenRun(() -> { - List suggestions = new ArrayList<>(); - suggestions.add(addedSuggestionsFuture.join()); - suggestions.add(providerSuggestionsFuture.join()); - result.complete(Suggestions.merge(cmdCtx.getInput(), suggestions)); - }); - return result; - }; - } - - RequiredArgumentBuilder requiredArgumentBuilder = RequiredArgumentBuilder - .argument(argument.getNodeName(), argument.getRawType()); - - return requiredArgumentBuilder.requires(css -> permissionCheck(NMS.getCommandSenderFromCSS(css), - argument.getArgumentPermission(), argument.getRequirements())).suggests(newSuggestionsProvider); - } - - Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) - throws CommandSyntaxException { - // Populate Object[], which is our previously filled arguments - List previousArguments = new ArrayList<>(); - - for (Argument arg : args) { - if (arg.getNodeName().equals(nodeName) && !(arg instanceof LiteralArgument)) { - break; - } - - Object result; - try { - result = parseArgument(context, arg.getNodeName(), arg, previousArguments.toArray()); - } catch (IllegalArgumentException e) { - /* - * Redirected commands don't parse previous arguments properly. Simplest way to - * determine what we should do is simply set it to null, since there's nothing - * else we can do. I thought about letting this simply be an empty array, but - * then it's even more annoying to deal with - I wouldn't expect an array of - * size n to suddenly, randomly be 0, but I would expect random NPEs because - * let's be honest, this is Java we're dealing with. - */ - result = null; - } - if (arg.isListed()) { - previousArguments.add(result); - } - } - return previousArguments.toArray(); - } - - SuggestionProvider toSuggestions(Argument theArgument, Argument[] args, - boolean overrideSuggestions) { - return (CommandContext context, SuggestionsBuilder builder) -> { - // Construct the suggestion info - SuggestionInfo suggestionInfo = new SuggestionInfo(NMS.getCommandSenderFromCSS(context.getSource()), - generatePreviousArguments(context, args, theArgument.getNodeName()), builder.getInput(), builder.getRemaining()); - - // Get the suggestions - Optional suggestionsToAddOrOverride = overrideSuggestions - ? theArgument.getOverriddenSuggestions() - : theArgument.getIncludedSuggestions(); - return suggestionsToAddOrOverride.orElse(ArgumentSuggestions.empty()).suggest(suggestionInfo, builder); - }; - } - - /** - * Looks up the function to generate a chat preview for a path of nodes in the - * command tree. This is a method internal to the CommandAPI and isn't expected - * to be used by plugin developers (but you're more than welcome to use it as - * you see fit). - * - * @param path a list of Strings representing the path (names of command nodes) - * to (and including) the previewable argument - * @return a function that takes in a {@link PreviewInfo} and returns a - * {@link Component}. If such a function is not available, this will - * return a function that always returns null. - */ - public Optional> lookupPreviewable(List path) { - final IPreviewable, ?> previewable = previewableArguments.get(path); - if(previewable != null && previewable.getPreview().isPresent()) { - // Yeah, don't even question this logic of getting the value of an - // optional and then wrapping it in an optional again. Java likes it - // and complains if you don't do this. Not sure why. - return Optional.of(previewable.getPreview().get()); - } else { - return Optional.empty(); - } - } - - /** - * - * @param path a list of Strings representing the path (names of command nodes) - * to (and including) the previewable argument - * @return Whether a previewable is legacy (non-Adventure) or not - */ - public boolean lookupPreviewableLegacyStatus(List path) { - final IPreviewable, ?> previewable = previewableArguments.get(path); - if(previewable != null && previewable.getPreview().isPresent()) { - return previewable.isLegacy(); - } else { - return true; - } - } - - ///////////////////////// - // SECTION: Reflection // - ///////////////////////// - - /** - * Caches a field using reflection if it is not already cached, then return the - * field of a given class. This will also make the field accessible. - * - * @param clazz the class where the field is declared - * @param name the name of the field - * @return a Field reference - */ - public Field getField(Class clazz, String name) { - ClassCache key = new ClassCache(clazz, name); - if (FIELDS.containsKey(key)) { - return FIELDS.get(key); - } else { - Field result = null; - try { - result = clazz.getDeclaredField(name); - } catch (ReflectiveOperationException e) { - e.printStackTrace(); - } - result.setAccessible(true); - FIELDS.put(key, result); - return result; - } - } - - private String generateCommandHelpPrefix(String command) { - return (Bukkit.getPluginCommand(command) == null ? "/" : "/minecraft:") + command; - } - - private void generateHelpUsage(StringBuilder sb, RegisteredCommand command) { - sb.append(ChatColor.GOLD + "Usage: " + ChatColor.WHITE); - - // Generate usages - List usages = new ArrayList<>(); - for (RegisteredCommand rCommand : registeredCommands) { - if (rCommand.commandName().equals(command.commandName())) { - StringBuilder usageString = new StringBuilder(); - usageString.append("/" + command.commandName() + " "); - for (String arg : rCommand.argsAsStr()) { - usageString.append("<" + arg.split(":")[0] + "> "); - } - usages.add(usageString.toString()); - } - } - - // If 1 usage, put it on the same line, otherwise format like a list - if (usages.size() == 1) { - sb.append(usages.get(0)); - } else if (usages.size() > 1) { - for (String usage : usages) { - sb.append("\n- " + usage); - } - } - } - - void updateHelpForCommands() { - Map helpTopicsToAdd = new HashMap<>(); - - for (RegisteredCommand command : this.registeredCommands) { - // Generate short description - final String shortDescription; - if (command.shortDescription().isPresent()) { - shortDescription = command.shortDescription().get(); - } else if (command.fullDescription().isPresent()) { - shortDescription = command.fullDescription().get(); - } else { - shortDescription = "A Mojang provided command."; - } - - // Generate full description - StringBuilder sb = new StringBuilder(); - if (command.fullDescription().isPresent()) { - sb.append(ChatColor.GOLD + "Description: " + ChatColor.WHITE + command.fullDescription().get() + "\n"); - } - - generateHelpUsage(sb, command); - sb.append("\n"); - - // Generate aliases. We make a copy of the StringBuilder because we - // want to change the output when we register aliases - StringBuilder aliasSb = new StringBuilder(sb.toString()); - if (command.aliases().length > 0) { - sb.append(ChatColor.GOLD + "Aliases: " + ChatColor.WHITE + String.join(", ", command.aliases())); - } - - // Must be empty string, not null as defined by OBC::CustomHelpTopic - String permission = command.permission().getPermission().orElseGet(() -> ""); - - // Don't override the plugin help topic - String commandPrefix = generateCommandHelpPrefix(command.commandName()); - helpTopicsToAdd.put(commandPrefix, - NMS.generateHelpTopic(commandPrefix, shortDescription, sb.toString().trim(), permission)); - - for (String alias : command.aliases()) { - StringBuilder currentAliasSb = new StringBuilder(aliasSb.toString()); - if (command.aliases().length > 0) { - currentAliasSb.append(ChatColor.GOLD + "Aliases: " + ChatColor.WHITE); - - // We want to get all aliases (including the original command name), - // except for the current alias - List aliases = new ArrayList<>(Arrays.asList(command.aliases())); - aliases.add(command.commandName()); - aliases.remove(alias); - - currentAliasSb.append(ChatColor.WHITE + String.join(", ", aliases)); - } - - // Don't override the plugin help topic - commandPrefix = generateCommandHelpPrefix(alias); - helpTopicsToAdd.put(commandPrefix, NMS.generateHelpTopic(commandPrefix, shortDescription, - currentAliasSb.toString().trim(), permission)); - } - } - - NMS.addToHelpMap(helpTopicsToAdd); - } - - ////////////////////////////// - // SECTION: Private classes // - ////////////////////////////// - - /** - * Class to store cached methods and fields - * - * This is required because each key is made up of a class and a field or method - * name - */ - private record ClassCache(Class clazz, String name) { - } - - /** - * A class to compute the Cartesian product of a number of lists. Source: - * https://www.programmersought.com/article/86195393650/ - */ - private final class CartesianProduct { - - // Shouldn't be instantiated - private CartesianProduct() { - } - - /** - * Returns the Cartesian product of a list of lists - * - * @param the underlying type of the list of lists - * @param list the list to calculate the Cartesian product of - * @return a List of lists which represents the Cartesian product of all - * elements of the input - */ - public static final List> getDescartes(List> list) { - List> returnList = new ArrayList<>(); - descartesRecursive(list, 0, returnList, new ArrayList()); - return returnList; - } - - /** - * Recursive implementation Principle: traverse sequentially from 0 of the - * original list to the end - * - * @param the underlying type of the list of lists - * @param originalList original list - * @param position The position of the current recursion in the original - * list - * @param returnList return result - * @param cacheList temporarily saved list - */ - private static final void descartesRecursive(List> originalList, int position, - List> returnList, List cacheList) { - List originalItemList = originalList.get(position); - for (int i = 0; i < originalItemList.size(); i++) { - // The last one reuses cacheList to save memory - List childCacheList = (i == originalItemList.size() - 1) ? cacheList : new ArrayList<>(cacheList); - childCacheList.add(originalItemList.get(i)); - if (position == originalList.size() - 1) {// Exit recursion to the end - returnList.add(childCacheList); - continue; - } - descartesRecursive(originalList, position + 1, returnList, childCacheList); - } - } - - } - -} From 95d2ab121abc29e5ccd1a0c35377cb05a4c63681 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 16 Oct 2022 09:14:06 -0400 Subject: [PATCH 043/638] Finish splitting up CommandAPI between BukkitPlatform and commandapi-core --- .../java/dev/jorel/commandapi/CommandAPI.java | 28 +++++++ .../abstractions/AbstractPlatform.java | 4 + .../dev/jorel/commandapi/BukkitPlatform.java | 47 ++++++++++- .../java/dev/jorel/commandapi/CommandAPI.java | 77 ------------------- 4 files changed, 75 insertions(+), 81 deletions(-) delete mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 02a0d665be..17fa82096e 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -4,6 +4,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlayer; import dev.jorel.commandapi.abstractions.AbstractTooltip; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; @@ -205,6 +206,33 @@ public static void logError(String message) { getLogger().severe(message); } + + // TODO: For backwards compatibility, I put this method here and added reloadDataPacks to AbstractPlatform + // (https://commandapi.jorel.dev/8.5.1/internal.html?highlight=reload#reloading-datapacks). How should this be + // handled? I guess datapack reloading might be something that can be done on all platforms, and if not just make + // that platform's implementation do nothing like in pre 1.16 Bukkit NMS? - WillKroboth + /** + * Reloads all of the datapacks that are on the server. This should be used if + * you change a datapack and want to reload a server. Execute this method after + * running /minecraft:reload, NOT before. + */ + public static void reloadDatapacks() { + BaseHandler.getInstance().getPlatform().reloadDataPacks(); + } + + // TODO: Same as above: (https://commandapi.jorel.dev/8.5.1/requirements.html?highlight=par#updating-requirements). + // I think this one makes more sense, though I don't really understand what this requirement update is achieving + // exactly, since I thought it was just a special permissions check? I just need a sanity check that it makes + // sense to put this here, and if not, how should we handle that backwards-compatibility issue? - WillKroboth + /** + * Updates the requirements required for a given player to execute a command. + * + * @param player the player whos requirements to update + */ + public static void updateRequirements(AbstractPlayer player) { + BaseHandler.getInstance().getPlatform().updateRequirements(player); + } + // Produce WrapperCommandSyntaxException /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 9ef69fba3f..12053c0440 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -87,4 +87,8 @@ public abstract class AbstractPlatform { public abstract void unregister(String commandName, boolean force); public abstract CommandDispatcher getBrigadierDispatcher(); + + public abstract void reloadDataPacks(); + + public abstract void updateRequirements(AbstractPlayer player); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 266a6674ed..f5460f851d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -8,11 +8,16 @@ import java.util.function.Function; import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.tree.CommandNode; +import dev.jorel.commandapi.abstractions.AbstractPlayer; import dev.jorel.commandapi.commandsenders.*; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.preprocessor.RequireField; import dev.jorel.commandapi.preprocessor.Unimplemented; import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.kyori.adventure.text.Component; +import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.NamespacedKey; @@ -456,11 +461,20 @@ public void unregister(String commandName, boolean force) { ((Map>) COMMANDNODE_ARGUMENTS.get(getBrigadierDispatcher().getRoot())).remove(commandName); } + @Override + @Unimplemented(because = VERSION_SPECIFIC_IMPLEMENTATION) + public abstract void reloadDataPacks(); + + @Override + public void updateRequirements(AbstractPlayer player) { + resendPackets((Player) player.getSource()); + } + + // TODO: There's probably a much better place to put this, but I don't + // really fancy subclassing SafeOverrideableArgument for Bukkit specifically, + // so I'll dump it here and hope nobody cares because the CommandAPI doesn't + // really have a centralized "utils" class or anything /** - * TODO: There's probably a much better place to put this, but I don't - * really fancy subclassing SafeOverrideableArgument for Bukkit specifically, - * so I'll dump it here and hope nobody cares because the CommandAPI doesn't - * really have a centralized "utils" class or anything *

* Composes a S to a NamespacedKey mapping function to * convert S to a String @@ -473,4 +487,29 @@ public void unregister(String commandName, boolean force) { public static Function fromKey(Function mapper) { return mapper.andThen(NamespacedKey::toString); } + + // TODO: Same as above, not really sure where else these Bukkit-specific methods could go. Also, it sounds like + // everything supports Adventure Components, so that isn't truly Bukkit-specific. Also, backwards compatibility: + // these methods are expected to be called as CommandAPI.failWith... + /** + * Forces a command to return a success value of 0 + * + * @param message Description of the error message, formatted as an array of base components + * @return a {@link WrapperCommandSyntaxException} that wraps Brigadier's + * {@link CommandSyntaxException} + */ + public static WrapperCommandSyntaxException failWithBaseComponents(BaseComponent... message) { + return CommandAPI.failWithMessage(Tooltip.messageFromBaseComponents(message)); + } + + /** + * Forces a command to return a success value of 0 + * + * @param message Description of the error message, formatted as an adventure chat component + * @return a {@link WrapperCommandSyntaxException} that wraps Brigadier's + * {@link CommandSyntaxException} + */ + public static WrapperCommandSyntaxException failWithAdventureComponent(Component message) { + return CommandAPI.failWithMessage(Tooltip.messageFromAdventureComponent(message)); + } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java deleted file mode 100644 index ecac5a5048..0000000000 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ /dev/null @@ -1,77 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2021 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi; - -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import net.kyori.adventure.text.Component; -import net.md_5.bungee.api.chat.BaseComponent; -import org.bukkit.entity.Player; - -/** - * Class to register commands with the 1.13 command UI - * - */ -// Renamed Old to avoid conflicts while moving the methods over -public final class OldCommandAPI { - // TODO: Finish moving all the methods in here to the CommandAPI class in commandapi-core - // or BukkitPlatform if they're too Bukkit specific - - /** - * Updates the requirements required for a given player to execute a command. - * - * @param player the player whos requirements to update - */ - public static void updateRequirements(Player player) { - BaseHandler.getInstance().getNMS().resendPackets(player); - } - - /** - * Reloads all of the datapacks that are on the server. This should be used if - * you change a datapack and want to reload a server. Execute this method after - * running /minecraft:reload, NOT before. - */ - public static void reloadDatapacks() { - BaseHandler.getInstance().getNMS().reloadDataPacks(); - } - - /** - * Forces a command to return a success value of 0 - * - * @param message Description of the error message, formatted as an array of base components - * @return a {@link WrapperCommandSyntaxException} that wraps Brigadier's - * {@link CommandSyntaxException} - */ - public static WrapperCommandSyntaxException failWithBaseComponents(BaseComponent... message) { - return failWithMessage(Tooltip.messageFromBaseComponents(message)); - } - - /** - * Forces a command to return a success value of 0 - * - * @param message Description of the error message, formatted as an adventure chat component - * @return a {@link WrapperCommandSyntaxException} that wraps Brigadier's - * {@link CommandSyntaxException} - */ - public static WrapperCommandSyntaxException failWithAdventureComponent(Component message) { - return failWithMessage(Tooltip.messageFromAdventureComponent(message)); - } -} From ead09b771fc8a826b7cae45fc6d94467641b6171 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 16 Oct 2022 09:28:41 -0400 Subject: [PATCH 044/638] Fix final error in bukkit-core (it compiles!) (not test-compile) --- .../src/main/java/dev/jorel/commandapi/Converter.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java index 7dee3488b3..435852a0fb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java @@ -197,8 +197,12 @@ private static void convertPluginCommand(JavaPlugin plugin, String commandName, command = BukkitPlatform.get().getSimpleCommandMap() .getCommand(commandName); } - - CommandSender proxiedSender = CommandAPI.getConfiguration().shouldSkipSenderProxy(plugin) + + // TODO: The shouldSkipSenderProxy(Plugin) was removed since Plugin can't be accessed in InternalConfig, + // but just passing in plugin.getName() here is equivalent. However, this is related to figuring out + // how to configure command conversion with the new system, so I figured I should mark this for review + // once that gets figured out. + CommandSender proxiedSender = CommandAPI.getConfiguration().shouldSkipSenderProxy(plugin.getName()) ? sender.getCallee() : mergeProxySender(sender); From 10f1886ce0f658206cfed7141a9398d6d1a4f0be Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 16 Oct 2022 16:56:15 -0400 Subject: [PATCH 045/638] Move Examples to commandapi-examples to deal with later --- commandapi-examples/pom.xml | 111 ++++++++++++++++++ .../src/main}/test/java/Examples.java | 0 .../src/main}/test/kotlin/Examples.kt | 0 .../commandapi-bukkit-core/pom.xml | 33 ------ pom.xml | 5 +- 5 files changed, 115 insertions(+), 34 deletions(-) create mode 100644 commandapi-examples/pom.xml rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src => commandapi-examples/src/main}/test/java/Examples.java (100%) rename {commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src => commandapi-examples/src/main}/test/kotlin/Examples.kt (100%) diff --git a/commandapi-examples/pom.xml b/commandapi-examples/pom.xml new file mode 100644 index 0000000000..d1b8d5db06 --- /dev/null +++ b/commandapi-examples/pom.xml @@ -0,0 +1,111 @@ + + + 4.0.0 + + + commandapi + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-examples + + + + minecraft-libraries + https://libraries.minecraft.net + + + papermc + https://papermc.io/repo/repository/maven-public/ + + + codemc-repo + https://repo.codemc.org/repository/maven-public/ + default + + + + + + + com.mojang + brigadier + 1.0.17 + provided + + + com.mojang + authlib + 3.3.39 + provided + + + + + net.kyori + adventure-platform-bukkit + 4.1.0 + test + + + io.papermc.paper + paper-api + ${paper.version} + provided + + + + + dev.jorel + commandapi-core + ${project.version} + + + + dev.jorel + commandapi-bukkit-core + ${project.version} + + + + + de.tr7zw + item-nbt-api + 2.10.0 + test + + + org.jetbrains.kotlin + kotlin-stdlib + 1.7.10 + test + + + + + + + + org.jetbrains.kotlin + kotlin-maven-plugin + 1.7.10 + + + test-compile + + test-compile + + + + ${project.basedir}/src/test/kotlin + + + + + + + + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/test/java/Examples.java b/commandapi-examples/src/main/test/java/Examples.java similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/test/java/Examples.java rename to commandapi-examples/src/main/test/java/Examples.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/test/kotlin/Examples.kt b/commandapi-examples/src/main/test/kotlin/Examples.kt similarity index 100% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/test/kotlin/Examples.kt rename to commandapi-examples/src/main/test/kotlin/Examples.kt diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml index c00a75cf9b..65d13edbaf 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml @@ -69,20 +69,6 @@ commandapi-preprocessor ${project.version} - - - - de.tr7zw - item-nbt-api - 2.10.0 - test - - - org.jetbrains.kotlin - kotlin-stdlib - 1.7.10 - test - @@ -100,25 +86,6 @@ - - - org.jetbrains.kotlin - kotlin-maven-plugin - 1.7.10 - - - test-compile - - test-compile - - - - ${project.basedir}/src/test/kotlin - - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 50661cfba5..f299124328 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,10 @@ commandapi-annotations - + + + commandapi-examples + UTF-8 From 6b23d86cf42b79b1951393761eee409dce711cce Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 16 Oct 2022 16:59:20 -0400 Subject: [PATCH 046/638] Disable command conversion (bukkit-plugin compiles!) --- .../dev/jorel/commandapi/CommandAPIMain.java | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index eceb4ef699..7a0e07df95 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -54,21 +54,22 @@ public void onLoad() { MinecraftVersion.disableBStats(); MinecraftVersion.disableUpdateCheck(); - // Convert all plugins to be converted - for (Entry pluginToConvert : CommandAPI.getConfiguration().getPluginsToConvert()) { - if (pluginToConvert.getValue().length == 0) { - Converter.convert(pluginToConvert.getKey()); - } else { - for (String command : pluginToConvert.getValue()) { - new AdvancedConverter(pluginToConvert.getKey(), command).convert(); - } - } - } - - // Convert all arbitrary commands - for (String commandName : CommandAPI.getConfiguration().getCommandsToConvert()) { - new AdvancedConverter(commandName).convertCommand(); - } + // TODO: Figure out how command conversion is configured +// // Convert all plugins to be converted +// for (Entry pluginToConvert : CommandAPI.getConfiguration().getPluginsToConvert()) { +// if (pluginToConvert.getValue().length == 0) { +// Converter.convert(pluginToConvert.getKey()); +// } else { +// for (String command : pluginToConvert.getValue()) { +// new AdvancedConverter(pluginToConvert.getKey(), command).convert(); +// } +// } +// } +// +// // Convert all arbitrary commands +// for (String commandName : CommandAPI.getConfiguration().getCommandsToConvert()) { +// new AdvancedConverter(commandName).convertCommand(); +// } } @Override From 0d920ab7d3666c9921cc3628179fc9e0894b0f7c Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Mon, 17 Oct 2022 11:30:06 +0100 Subject: [PATCH 047/638] Hotfix JavaDoc compilation errors in commandapi-core --- .../jorel/commandapi/abstractions/AbstractTooltip.java | 3 +-- .../java/dev/jorel/commandapi/arguments/Argument.java | 4 ++-- .../commandapi/arguments/CommandAPIArgumentType.java | 2 +- .../commandapi/arguments/SafeOverrideableArgument.java | 8 ++++---- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractTooltip.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractTooltip.java index 47172cf585..6ed4197486 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractTooltip.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractTooltip.java @@ -283,8 +283,7 @@ public static Function, StringTooltip> build(Function setListed(boolean listed) { /** * Gets a list of entity names for the current provided argument. This is - * expected to be implemented by EntitySelectorArgument, see - * {@link EntitySelectorArgument#getEntityNames(Object)} + * expected to be implemented by {@code EntitySelectorArgument} in Bukkit, see + * {@code EntitySelectorArgument#getEntityNames(Object)} * * @param argument a parsed (Bukkit) object representing the entity selector * type. This is either a List, an Entity or a Player diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java index 465aa87857..418aed34af 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandAPIArgumentType.java @@ -169,7 +169,7 @@ public enum CommandAPIArgumentType { MULTI_LITERAL, /** - * The {@link NamespacedKeyArgument} + * The NamespacedKeyArgument */ NAMESPACED_KEY("minecraft:resource_location"), diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java index ccb8844136..04e88bd9a7 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java @@ -32,8 +32,8 @@ * * @param The type of the underlying object that this argument casts to * @param A custom type which is represented by this argument. For example, - * a {@link LocationArgument} will have a custom type - * Location + * a {@link StringArgument} will have a custom type + * String */ public abstract class SafeOverrideableArgument extends Argument { @@ -82,7 +82,7 @@ public final Argument replaceWithSafeSuggestions(Function includeWithSafeSuggestions(Function Date: Mon, 17 Oct 2022 11:54:20 +0100 Subject: [PATCH 048/638] Remove commandapi-preprocessor from commandapi-bukkit-plugin --- .../commandapi-bukkit-plugin/pom.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml index 944d4267e9..c3eac64832 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml @@ -53,12 +53,24 @@ dev.jorel commandapi-core ${project.version} + + + dev.jorel + commandapi-preprocessor + + dev.jorel commandapi-bukkit-core ${project.version} compile + + + dev.jorel + commandapi-preprocessor + + dev.jorel From 7033d679b80224c3d5bece57c861d9a581096c06 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 17 Oct 2022 15:27:38 -0400 Subject: [PATCH 049/638] Handle case where CommandAPI#onDisable is called before BaseHandler is initialized --- .../src/main/java/dev/jorel/commandapi/BaseHandler.java | 1 + .../src/main/java/dev/jorel/commandapi/CommandAPI.java | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 7294e653b9..08b7ea9e7b 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -142,6 +142,7 @@ public void onEnable(Object plugin) { public void onDisable() { platform.onDisable(); + instance = null; } public static BaseHandler getInstance() { diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 17fa82096e..ed5703204a 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -155,7 +155,10 @@ public static void onDisable() { CommandAPI.logger = null; CommandAPI.loaded = false; - BaseHandler.getInstance().onDisable(); + // This method is called automatically when the class loads to set up variables, in which case + // BaseHandler will not have been initialized + BaseHandler handler = BaseHandler.getInstance(); + if(handler != null) handler.onDisable(); } // Logging From 86f8df7375f27da9c9221282b2b88112e9a1471f Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 17 Oct 2022 15:38:37 -0400 Subject: [PATCH 050/638] Show class hierarchy for platform load --- .../java/dev/jorel/commandapi/CommandAPI.java | 14 ++++++++++++++ .../java/dev/jorel/commandapi/BukkitPlatform.java | 15 --------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index ed5703204a..7dba22aede 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -8,6 +8,7 @@ import dev.jorel.commandapi.abstractions.AbstractTooltip; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.logging.Level; @@ -125,6 +126,19 @@ public static void onLoad(CommandAPIConfig config, CommandAPILogger logger) { // Initialize handlers AbstractPlatform platform = CommandAPIVersionHandler.getPlatform(); + + final String platformClassHierarchy; + { + List platformClassHierarchyList = new ArrayList<>(); + Class platformClass = platform.getClass(); + while (platformClass != AbstractPlatform.class) { + platformClassHierarchyList.add(platformClass.getSimpleName()); + platformClass = platformClass.getSuperclass(); + } + platformClassHierarchy = String.join(" > ", platformClassHierarchyList); + } + logNormal("Loaded platform " + platformClassHierarchy); + new BaseHandler<>(platform); BaseHandler.getInstance().onLoad(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index f5460f851d..b8202518ae 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -100,21 +100,6 @@ public void onLoad() { private void checkDependencies() { // Log successful hooks - final String nmsClassHierarchy; - { - List nmsClassHierarchyList = new ArrayList<>(); - Class nmsClass = getClass(); - while (nmsClass != BukkitPlatform.class) { - nmsClassHierarchyList.add(nmsClass.getSimpleName()); - nmsClass = nmsClass.getSuperclass(); - } - nmsClassHierarchyList.add("NMS"); - nmsClassHierarchy = String.join(" > ", nmsClassHierarchyList); - } - - CommandAPI.logInfo("Hooked into NMS " + nmsClassHierarchy + " (compatible with " - + String.join(", ", compatibleVersions()) + ")"); - try { Class.forName("org.spigotmc.SpigotConfig"); CommandAPI.logNormal("Hooked into Spigot successfully for Chat/ChatComponents"); From f6a571b8d65fa00be11f944092eeaf1b8ed935c0 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 17 Oct 2022 15:41:52 -0400 Subject: [PATCH 051/638] Always initialize a PaperImplementations object in BukkitPlatform#checkDependencies --- .../src/main/java/dev/jorel/commandapi/BukkitPlatform.java | 1 + 1 file changed, 1 insertion(+) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index b8202518ae..c980d3e8c0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -123,6 +123,7 @@ private void checkDependencies() { paper = new PaperImplementations(true, this); CommandAPI.logNormal("Hooked into Paper for paper-specific API implementations"); } catch (ClassNotFoundException e) { + paper = new PaperImplementations(false, this); if (CommandAPI.getConfiguration().hasVerboseOutput()) { CommandAPI.logWarning("Could not hook into Paper for /minecraft:reload. Consider upgrading to Paper: https://papermc.io/"); } From a1bdea6adf56ebf84bf7def503a3f59b31b741af Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 18 Oct 2022 09:44:52 -0400 Subject: [PATCH 052/638] Re-enable command conversion - handle everything in CommandAPIMain --- .../jorel/commandapi/CommandAPIConfig.java | 49 +++++++----- .../dev/jorel/commandapi/InternalConfig.java | 34 +------- .../dev/jorel/commandapi/CommandAPIMain.java | 77 +++++++++++++++---- 3 files changed, 93 insertions(+), 67 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java index 30025f867c..4347aec449 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java @@ -21,6 +21,8 @@ package dev.jorel.commandapi; import java.io.File; +import java.util.ArrayList; +import java.util.List; import java.util.function.Function; /** @@ -36,12 +38,14 @@ public class CommandAPIConfig { boolean useLatestNMSVersion = false; String missingExecutorImplementationMessage = "This command has no implementations for %s"; + File dispatcherFile = null; + + List skipSenderProxy = new ArrayList<>(); + // NBT API Class nbtContainerClass = null; Function nbtContainerConstructor = null; - File dispatcherFile = null; - /** * Sets verbose output logging for the CommandAPI if true. * @@ -97,6 +101,31 @@ public CommandAPIConfig missingExecutorImplementationMessage(String value) { return this; } + /** + * Specifies the location for the CommandAPI to store the internal + * representation of Brigadier's command tree. + * + * @param file a file pointing to where to store Brigadier's JSON command + * dispatcher, for example + * {@code new File(getDataFolder(), "command_registration.json")}. + * If this argument is {@code null}, this file will not be created. + * @return this CommandAPIConfig + */ + public CommandAPIConfig dispatcherFile(File file) { + this.dispatcherFile = file; + return this; + } + + public CommandAPIConfig addSkipSenderProxy(String... names) { + this.skipSenderProxy.addAll(List.of(names)); + return this; + } + + public CommandAPIConfig addSkipSenderProxy(List names) { + this.skipSenderProxy.addAll(names); + return this; + } + /** * Initializes the CommandAPI's implementation of an NBT API. * @@ -117,20 +146,4 @@ public CommandAPIConfig initializeNBTAPI(Class nbtContainerClass, this.nbtContainerConstructor = nbtContainerConstructor; return this; } - - /** - * Specifies the location for the CommandAPI to store the internal - * representation of Brigadier's command tree. - * - * @param file a file pointing to where to store Brigadier's JSON command - * dispatcher, for example - * {@code new File(getDataFolder(), "command_registration.json")}. - * If this argument is {@code null}, this file will not be created. - * @return this CommandAPIConfig - */ - public CommandAPIConfig dispatcherFile(File file) { - this.dispatcherFile = file; - return this; - } - } \ No newline at end of file diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java b/commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java index 5845477b04..0aacd72fcf 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/InternalConfig.java @@ -21,7 +21,6 @@ package dev.jorel.commandapi; import java.io.File; -import java.util.ArrayList; import java.util.List; import java.util.function.Function; @@ -47,16 +46,9 @@ public class InternalConfig { // Create a command_registration.json file private final File dispatcherFile; - // List of plugins to convert - // TODO: Can we support command conversion on multiple platforms, or should this be removed from the general config? -// private final Map pluginsToConvert; - // List of plugins which should ignore proxied senders private final List skipSenderProxy; - // List of arbitrary commands to convert - private final List commandsToConvert; - private final Class nbtContainerClass; private final Function nbtContainerConstructor; @@ -81,9 +73,7 @@ public InternalConfig(CommandAPIConfig config) { this.useLatestNMSVersion = config.useLatestNMSVersion; this.message_missingExecutorImplementation = config.missingExecutorImplementationMessage; this.dispatcherFile = config.dispatcherFile; -// this.pluginsToConvert = new HashMap<>(); - this.skipSenderProxy = new ArrayList<>(); - this.commandsToConvert = new ArrayList<>(); + this.skipSenderProxy = config.skipSenderProxy; this.nbtContainerClass = config.nbtContainerClass; this.nbtContainerConstructor = config.nbtContainerConstructor; } @@ -125,21 +115,6 @@ public File getDispatcherFile() { return this.dispatcherFile; } -// /** -// * @return A set of plugins and a list of commands to convert -// */ -// public Set> getPluginsToConvert() { -// return this.pluginsToConvert.entrySet(); -// } - -// /** -// * @param plugin A plugin where sender proxying should be skipped -// * @return Whether sender proxying should be skipped for a given plugin -// */ -// public boolean shouldSkipSenderProxy(Plugin plugin) { -// return this.skipSenderProxy.contains(plugin.getName()); -// } - /** * @param commandName A command where sender proxying should be skipped * @return Whether sender proxying should be skipped for a given command @@ -148,13 +123,6 @@ public boolean shouldSkipSenderProxy(String commandName) { return this.skipSenderProxy.contains(commandName); } - /** - * @return A list of commands to convert to Vanilla-compatible commands - */ - public List getCommandsToConvert() { - return this.commandsToConvert; - } - /** * @return The NBT Tag Compound implementation class */ diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index 7a0e07df95..54dd774274 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -21,9 +21,15 @@ package dev.jorel.commandapi; import java.io.File; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import java.util.Map.Entry; +import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.plugin.InvalidPluginException; +import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import de.tr7zw.changeme.nbtapi.NBTContainer; @@ -44,6 +50,15 @@ public void onLoad() { .dispatcherFile(fileConfig.getBoolean("create-dispatcher-json") ? new File(getDataFolder(), "command_registration.json") : null) .initializeNBTAPI(NBTContainer.class, NBTContainer::new); + for (String pluginName : fileConfig.getStringList("skip-sender-proxy")) { + if (Bukkit.getPluginManager().getPlugin(pluginName) != null) { + config.addSkipSenderProxy(pluginName); + } else { + new InvalidPluginException("Could not find a plugin " + pluginName + "! Has it been loaded properly?") + .printStackTrace(); + } + } + // Main CommandAPI loading CommandAPI.onLoad(config, new BukkitLogger(getLogger())); @@ -54,22 +69,52 @@ public void onLoad() { MinecraftVersion.disableBStats(); MinecraftVersion.disableUpdateCheck(); - // TODO: Figure out how command conversion is configured -// // Convert all plugins to be converted -// for (Entry pluginToConvert : CommandAPI.getConfiguration().getPluginsToConvert()) { -// if (pluginToConvert.getValue().length == 0) { -// Converter.convert(pluginToConvert.getKey()); -// } else { -// for (String command : pluginToConvert.getValue()) { -// new AdvancedConverter(pluginToConvert.getKey(), command).convert(); -// } -// } -// } -// -// // Convert all arbitrary commands -// for (String commandName : CommandAPI.getConfiguration().getCommandsToConvert()) { -// new AdvancedConverter(commandName).convertCommand(); -// } + // Convert all plugins to be converted + if (!fileConfig.getList("plugins-to-convert").isEmpty() + && fileConfig.getMapList("plugins-to-convert").isEmpty()) { + CommandAPI.logError("plugins-to-convert has an invalid type. Did you miss a colon (:) after a plugin name?"); + } + + // Load all plugins at the same time + Map pluginsToConvert = new HashMap<>(); + for (Map map : fileConfig.getMapList("plugins-to-convert")) { + String[] pluginCommands; + if (map.values().size() == 1 && map.values().iterator().next() == null) { + pluginCommands = new String[0]; + } else { + @SuppressWarnings("unchecked") + List commands = (List) map.values().iterator().next(); + pluginCommands = commands.toArray(new String[0]); + } + + String pluginName = (String) map.keySet().iterator().next(); + Plugin plugin = Bukkit.getPluginManager().getPlugin(pluginName); + if (plugin != null) { + if (plugin instanceof JavaPlugin javaPlugin) { + pluginsToConvert.put(javaPlugin, pluginCommands); + } else { + new InvalidPluginException("Plugin " + pluginName + " is not a JavaPlugin!").printStackTrace(); + } + } else { + new InvalidPluginException("Could not find a plugin " + pluginName + "! Has it been loaded properly?") + .printStackTrace(); + } + } + // Convert plugin commands + for (Entry pluginToConvert : pluginsToConvert.entrySet()) { + if (pluginToConvert.getValue().length == 0) { + Converter.convert(pluginToConvert.getKey()); + } else { + for (String command : pluginToConvert.getValue()) { + new AdvancedConverter(pluginToConvert.getKey(), command).convert(); + } + } + } + + // Convert all arbitrary commands + for (String commandName : fileConfig.getStringList("other-commands-to-convert")) { + new AdvancedConverter(commandName).convertCommand(); + } } @Override From e6045d24e965b2be594e96ca864f1cdf5c4d7c6d Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 19 Oct 2022 09:02:40 -0400 Subject: [PATCH 053/638] Link CommandSenders together more closely with BukkitCommandSender and VelocityCommandSender --- .../commandsenders/BukkitBlockCommandSender.java | 2 +- .../commandapi/commandsenders/BukkitCommandSender.java | 7 +++++++ .../commandsenders/BukkitConsoleCommandSender.java | 2 +- .../dev/jorel/commandapi/commandsenders/BukkitEntity.java | 4 ++-- .../commandsenders/BukkitNativeProxyCommandSender.java | 2 +- .../dev/jorel/commandapi/commandsenders/BukkitPlayer.java | 2 +- .../commandsenders/BukkitProxiedCommandSender.java | 2 +- .../commandapi/commandsenders/VelocityCommandSender.java | 7 +++++++ .../commandsenders/VelocityConsoleCommandSender.java | 2 +- .../jorel/commandapi/commandsenders/VelocityPlayer.java | 2 +- 10 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityCommandSender.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java index 1fda841d5e..8d7c7432d2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java @@ -3,7 +3,7 @@ import dev.jorel.commandapi.abstractions.AbstractBlockCommandSender; import org.bukkit.command.BlockCommandSender; -public class BukkitBlockCommandSender extends AbstractBlockCommandSender { +public class BukkitBlockCommandSender extends AbstractBlockCommandSender implements BukkitCommandSender { private final BlockCommandSender commandBlock; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java new file mode 100644 index 0000000000..aa4a3552c6 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java @@ -0,0 +1,7 @@ +package dev.jorel.commandapi.commandsenders; + +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import org.bukkit.command.CommandSender; + +public interface BukkitCommandSender extends AbstractCommandSender { +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java index 5a6b62fead..7819ff3ab8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java @@ -4,7 +4,7 @@ import dev.jorel.commandapi.abstractions.AbstractConsoleCommandSender; -public class BukkitConsoleCommandSender extends AbstractConsoleCommandSender { +public class BukkitConsoleCommandSender extends AbstractConsoleCommandSender implements BukkitCommandSender { private final ConsoleCommandSender sender; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java index 2a3badc534..b42c74c06c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java @@ -1,9 +1,9 @@ package dev.jorel.commandapi.commandsenders; -import org.bukkit.entity.Entity; import dev.jorel.commandapi.abstractions.AbstractEntity; +import org.bukkit.entity.Entity; -public class BukkitEntity extends AbstractEntity { +public class BukkitEntity extends AbstractEntity implements BukkitCommandSender { private final Entity entity; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java index 4f552976d5..ac33522f2c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java @@ -2,7 +2,7 @@ import dev.jorel.commandapi.abstractions.AbstractPlayer; import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -public class BukkitNativeProxyCommandSender extends AbstractPlayer { +public class BukkitNativeProxyCommandSender extends AbstractPlayer implements BukkitCommandSender { private final NativeProxyCommandSender proxySender; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java index 294b92fdaa..23e9949470 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java @@ -3,7 +3,7 @@ import dev.jorel.commandapi.abstractions.AbstractPlayer; -public class BukkitPlayer extends AbstractPlayer { +public class BukkitPlayer extends AbstractPlayer implements BukkitCommandSender { private final Player player; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java index d55f8c9e5f..3655ca8ebb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java @@ -3,7 +3,7 @@ import dev.jorel.commandapi.abstractions.AbstractPlayer; -public class BukkitProxiedCommandSender extends AbstractPlayer { +public class BukkitProxiedCommandSender extends AbstractPlayer implements BukkitCommandSender { private final ProxiedCommandSender proxySender; diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityCommandSender.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityCommandSender.java new file mode 100644 index 0000000000..2dfc137097 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityCommandSender.java @@ -0,0 +1,7 @@ +package dev.jorel.commandapi.commandsenders; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; + +public interface VelocityCommandSender extends AbstractCommandSender { +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java index 44e801eb82..d4a795f191 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java @@ -3,7 +3,7 @@ import dev.jorel.commandapi.abstractions.AbstractConsoleCommandSender; -public class VelocityConsoleCommandSender extends AbstractConsoleCommandSender { +public class VelocityConsoleCommandSender extends AbstractConsoleCommandSender implements VelocityCommandSender { private final ConsoleCommandSource source; diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java index c2d7b67f41..fbe85ede85 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java @@ -3,7 +3,7 @@ import dev.jorel.commandapi.abstractions.AbstractPlayer; -public class VelocityPlayer extends AbstractPlayer { +public class VelocityPlayer extends AbstractPlayer implements VelocityCommandSender { private final Player player; From a88ccca2beb5e1342a73bcadf3009c7646473b10 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 19 Oct 2022 10:19:32 -0400 Subject: [PATCH 054/638] Add wildcards for AbstractCommandSenders --- .../java/dev/jorel/commandapi/CustomCommandExecutor.java | 8 ++++---- .../src/main/java/dev/jorel/commandapi/Executable.java | 2 +- .../main/java/dev/jorel/commandapi/ExecutableCommand.java | 6 +++--- .../commandapi/executors/CommandBlockCommandExecutor.java | 4 ++-- .../executors/CommandBlockResultingCommandExecutor.java | 4 ++-- .../dev/jorel/commandapi/executors/CommandExecutor.java | 4 ++-- .../commandapi/executors/ConsoleCommandExecutor.java | 4 ++-- .../executors/ConsoleResultingCommandExecutor.java | 4 ++-- .../jorel/commandapi/executors/EntityCommandExecutor.java | 4 ++-- .../executors/EntityResultingCommandExecutor.java | 4 ++-- .../dev/jorel/commandapi/executors/IExecutorNormal.java | 4 ++-- .../jorel/commandapi/executors/IExecutorResulting.java | 4 ++-- .../dev/jorel/commandapi/executors/IExecutorTyped.java | 2 +- .../jorel/commandapi/executors/NativeCommandExecutor.java | 4 ++-- .../executors/NativeResultingCommandExecutor.java | 4 ++-- .../jorel/commandapi/executors/PlayerCommandExecutor.java | 4 ++-- .../executors/PlayerResultingCommandExecutor.java | 4 ++-- .../jorel/commandapi/executors/ProxyCommandExecutor.java | 4 ++-- .../executors/ProxyResultingCommandExecutor.java | 4 ++-- .../commandapi/executors/ResultingCommandExecutor.java | 4 ++-- 20 files changed, 41 insertions(+), 41 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java index bb1b6b9dec..7d1e8bb11a 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java @@ -44,7 +44,7 @@ * * @param a command sender */ -public class CustomCommandExecutor { +public class CustomCommandExecutor> { private List> normalExecutors; private List> resultingExecutors; @@ -64,7 +64,7 @@ public > void addResultingExecutor(S executor) { this.resultingExecutors.add((IExecutorResulting) executor); } - public int execute(AbstractCommandSender sender, Object[] arguments) throws CommandSyntaxException { + public int execute(AbstractCommandSender sender, Object[] arguments) throws CommandSyntaxException { // Parse executor type if (!resultingExecutors.isEmpty()) { @@ -90,7 +90,7 @@ public int execute(AbstractCommandSender sender, Object[] arguments) throws Comm } } - private int execute(List executors, AbstractCommandSender sender, Object[] args) + private int execute(List executors, AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { if (isForceNative()) { return execute(executors, sender, args, ExecutorType.NATIVE); @@ -114,7 +114,7 @@ private int execute(List executors, AbstractCommandSen } } - private int execute(List executors, AbstractCommandSender sender, Object[] args, + private int execute(List executors, AbstractCommandSender sender, Object[] args, ExecutorType type) throws WrapperCommandSyntaxException { for (IExecutorTyped executor : executors) { if (executor.getType() == type) { diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java index 311a67e209..acb7d6a1c0 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java @@ -50,7 +50,7 @@ public T executes(CommandExecutor executor, ExecutorType... types) { this.executor.addNormalExecutor(new CommandExecutor() { @Override - public void run(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + public void run(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { executor.executeWith(sender, args); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java index df1fb078d7..236eb5fd69 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java @@ -86,7 +86,7 @@ public T withoutPermission(String permission) { * @return this command builder */ @SuppressWarnings("unchecked") - public T withRequirement(Predicate requirement) { + public T withRequirement(Predicate> requirement) { this.meta.requirements = this.meta.requirements.and(requirement); return (T) this; } @@ -157,7 +157,7 @@ public void setRequirements(Predicate> requirements) { * @return the short description for this command */ public String getShortDescription() { - return this.meta.shortDescription.isPresent() ? this.meta.shortDescription.get() : null; + return this.meta.shortDescription.orElse(null); } /** @@ -177,7 +177,7 @@ public T withShortDescription(String description) { * @return the full description for this command */ public String getFullDescription() { - return this.meta.fullDescription.isPresent() ? this.meta.fullDescription.get() : null; + return this.meta.fullDescription.orElse(null); } /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java index 025570f07a..56c6b80395 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java @@ -28,7 +28,7 @@ * A normal command executor for a BlockCommandSender */ @FunctionalInterface -public interface CommandBlockCommandExecutor extends IExecutorNormal { +public interface CommandBlockCommandExecutor extends IExecutorNormal> { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface CommandBlockCommandExecutor extends IExecutorNormal sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java index d4224dc36c..d9674ba7f8 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java @@ -28,7 +28,7 @@ * A resulting command executor for a BlockCommandSender */ @FunctionalInterface -public interface CommandBlockResultingCommandExecutor extends IExecutorResulting { +public interface CommandBlockResultingCommandExecutor extends IExecutorResulting> { /** * The code to run when this command is performed @@ -42,7 +42,7 @@ public interface CommandBlockResultingCommandExecutor extends IExecutorResulting * * @return the result of this command */ - int run(AbstractBlockCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; + int run(AbstractBlockCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java index 75dcccda25..a737870ded 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java @@ -28,7 +28,7 @@ * A normal command executor for a CommandSender */ @FunctionalInterface -public interface CommandExecutor extends IExecutorNormal { +public interface CommandExecutor extends IExecutorNormal> { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface CommandExecutor extends IExecutorNormal * determined by the hashmap of arguments IN THE ORDER of * insertion into the hashmap */ - void run(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; + void run(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java index c193f30f39..df8e914d14 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java @@ -28,7 +28,7 @@ * A normal command executor for a ConsoleCommandSender */ @FunctionalInterface -public interface ConsoleCommandExecutor extends IExecutorNormal { +public interface ConsoleCommandExecutor extends IExecutorNormal> { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface ConsoleCommandExecutor extends IExecutorNormal sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java index 6db20c9acd..124f9dcfec 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java @@ -27,7 +27,7 @@ * A resulting command executor for a ConsoleCommandSender */ @FunctionalInterface -public interface ConsoleResultingCommandExecutor extends IExecutorResulting { +public interface ConsoleResultingCommandExecutor extends IExecutorResulting> { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface ConsoleResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java index 4c33e61d58..270f146c59 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java @@ -27,7 +27,7 @@ * A normal command executor for an Entity */ @FunctionalInterface -public interface EntityCommandExecutor extends IExecutorNormal { +public interface EntityCommandExecutor extends IExecutorNormal> { /** * The code to run when this command is performed @@ -39,7 +39,7 @@ public interface EntityCommandExecutor extends IExecutorNormal { * determined by the hashmap of arguments IN THE ORDER of * insertion into the hashmap */ - void run(AbstractEntity sender, Object[] args) throws WrapperCommandSyntaxException; + void run(AbstractEntity sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java index b0acd60eb1..0c8c47e1ce 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java @@ -27,7 +27,7 @@ * A resulting command executor for an Entity */ @FunctionalInterface -public interface EntityResultingCommandExecutor extends IExecutorResulting { +public interface EntityResultingCommandExecutor extends IExecutorResulting> { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface EntityResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java index 49637ecc15..03945782b3 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java @@ -28,7 +28,7 @@ * The interface for normal command executors * @param the commandsender */ -public interface IExecutorNormal extends IExecutorTyped { +public interface IExecutorNormal> extends IExecutorTyped { /** * Executes the command executor with the provided command sender and the provided arguments. @@ -39,7 +39,7 @@ public interface IExecutorNormal extends IExecu */ @SuppressWarnings("unchecked") @Override - default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { this.run((T) sender, args); return 1; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java index 2f2fc0c3e1..80a51edbe5 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java @@ -28,7 +28,7 @@ * The interface for resulting command executors * @param the commandsender */ -public interface IExecutorResulting extends IExecutorTyped { +public interface IExecutorResulting> extends IExecutorTyped { /** * Executes the command executor with the provided command sender and the provided arguments. @@ -39,7 +39,7 @@ public interface IExecutorResulting extends IEx */ @SuppressWarnings("unchecked") @Override - default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { return this.run((T) sender, args); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java index 56ca836fbd..9646540b3d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java @@ -45,6 +45,6 @@ default ExecutorType getType() { * @return the value returned by this command if the command succeeds, 0 if the command fails * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; + int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java index 5b1d9904fa..48d79b8efa 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java @@ -27,7 +27,7 @@ * A normal command executor for a NativeProxyCommandSender */ @FunctionalInterface -public interface NativeCommandExecutor extends IExecutorNormal { +public interface NativeCommandExecutor extends IExecutorNormal> { /** * The code to run when this command is performed @@ -39,7 +39,7 @@ public interface NativeCommandExecutor extends IExecutorNormal sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java index 3879fae523..70fbc7a408 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java @@ -27,7 +27,7 @@ * A resulting command executor for a NativeProxyCommandSender */ @FunctionalInterface -public interface NativeResultingCommandExecutor extends IExecutorResulting { +public interface NativeResultingCommandExecutor extends IExecutorResulting> { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface NativeResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java index ff0f20dcb0..b991fcde4a 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java @@ -28,7 +28,7 @@ * A normal command executor for a Player */ @FunctionalInterface -public interface PlayerCommandExecutor extends IExecutorNormal { +public interface PlayerCommandExecutor extends IExecutorNormal> { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface PlayerCommandExecutor extends IExecutorNormal { * determined by the hashmap of arguments IN THE ORDER of * insertion into the hashmap */ - void run(AbstractPlayer sender, Object[] args) throws WrapperCommandSyntaxException; + void run(AbstractPlayer sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java index 461df1fd2e..f122620e77 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java @@ -27,7 +27,7 @@ * A resulting command executor for a Player */ @FunctionalInterface -public interface PlayerResultingCommandExecutor extends IExecutorResulting { +public interface PlayerResultingCommandExecutor extends IExecutorResulting> { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface PlayerResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java index 63dc3555a3..973921442f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java @@ -27,7 +27,7 @@ * A normal command executor for a NativeProxyCommandSender */ @FunctionalInterface -public interface ProxyCommandExecutor extends IExecutorNormal { +public interface ProxyCommandExecutor extends IExecutorNormal> { /** * The code to run when this command is performed @@ -39,7 +39,7 @@ public interface ProxyCommandExecutor extends IExecutorNormal sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java index ce787f6089..6e1f848e01 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java @@ -27,7 +27,7 @@ * A resulting command executor for a NativeProxyCommandSender */ @FunctionalInterface -public interface ProxyResultingCommandExecutor extends IExecutorResulting { +public interface ProxyResultingCommandExecutor extends IExecutorResulting> { /** * The code to run when this command is performed @@ -40,7 +40,7 @@ public interface ProxyResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java index 6f0928a581..4d2e012def 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java @@ -28,7 +28,7 @@ * A resulting command executor for a CommandSender */ @FunctionalInterface -public interface ResultingCommandExecutor extends IExecutorResulting { +public interface ResultingCommandExecutor extends IExecutorResulting> { /** * The code to run when this command is performed @@ -41,7 +41,7 @@ public interface ResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. From ec08888ae59171813df43877b41d8cb5b7277bc9 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Wed, 19 Oct 2022 17:56:46 +0100 Subject: [PATCH 055/638] Adds a template for Sponge --- .../commandapi-sponge-core/pom.xml | 82 +++++++++++++ .../CommandAPISpongePluginWrapper.java | 11 ++ .../commandapi/CommandAPIVersionHandler.java | 9 ++ .../dev/jorel/commandapi/SpongeLogger.java | 26 +++++ .../dev/jorel/commandapi/SpongePlatform.java | 110 ++++++++++++++++++ .../commandsenders/SpongeCommandSender.java | 6 + .../commandsenders/SpongePlayer.java | 31 +++++ .../commandapi-sponge-plugin-test/.gitignore | 5 + .../commandapi-sponge-plugin-test/pom.xml | 35 ++++++ .../commandapi-sponge-plugin/.gitignore | 4 + .../commandapi-sponge-plugin/pom.xml | 62 ++++++++++ .../dev/jorel/commandapi/CommandAPIMain.java | 28 +++++ .../commandapi-sponge-shade/.gitignore | 4 + .../commandapi-sponge-shade/pom.xml | 62 ++++++++++ .../commandapi-sponge/pom.xml | 25 ++++ commandapi-platforms/pom.xml | 1 + 16 files changed, 501 insertions(+) create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPISpongePluginWrapper.java create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeLogger.java create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongeCommandSender.java create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongePlayer.java create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/.gitignore create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/pom.xml create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/.gitignore create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/.gitignore create mode 100644 commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml create mode 100644 commandapi-platforms/commandapi-sponge/pom.xml diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml new file mode 100644 index 0000000000..24dea3dde5 --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml @@ -0,0 +1,82 @@ + + + 4.0.0 + + + commandapi-sponge + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-sponge-core + + + + minecraft-libraries + https://libraries.minecraft.net + + + sponge-repo + Sponge Maven Repository + https://repo.spongepowered.org/repository/maven-public/ + + + + + + + com.mojang + brigadier + 1.0.17 + provided + + + com.mojang + authlib + 3.3.39 + provided + + + + + org.spongepowered + spongeapi + 8.0.0 + jar + provided + + + + + dev.jorel + commandapi-core + ${project.version} + + + + dev.jorel + commandapi-preprocessor + ${project.version} + + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + -Xlint + + + dev.jorel.commandapi.preprocessor.Preprocessor + + + + + + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPISpongePluginWrapper.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPISpongePluginWrapper.java new file mode 100644 index 0000000000..463c7042fe --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPISpongePluginWrapper.java @@ -0,0 +1,11 @@ +package dev.jorel.commandapi; + +import org.spongepowered.api.Server; + +/** + * A class for wrapping the values provided by a Sponge plugin into a known + * object + */ +public interface CommandAPISpongePluginWrapper { + Server getServer(); +} diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java new file mode 100644 index 0000000000..9b5d5f08ae --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -0,0 +1,9 @@ +package dev.jorel.commandapi; + +import dev.jorel.commandapi.abstractions.AbstractPlatform; + +public interface CommandAPIVersionHandler { + static AbstractPlatform getPlatform() { + return new SpongePlatform(); + } +} diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeLogger.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeLogger.java new file mode 100644 index 0000000000..569e274b2a --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeLogger.java @@ -0,0 +1,26 @@ +package dev.jorel.commandapi; + +import org.apache.logging.log4j.Logger; + +public class SpongeLogger implements CommandAPILogger { + private final Logger parent; + + public SpongeLogger(Logger parent) { + this.parent = parent; + } + + @Override + public void info(String message) { + parent.info(message); + } + + @Override + public void warning(String message) { + parent.warn(message); + } + + @Override + public void severe(String message) { + parent.error(message); + } +} diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java new file mode 100644 index 0000000000..67994ef0e9 --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java @@ -0,0 +1,110 @@ +package dev.jorel.commandapi; + +import java.util.List; + +import org.spongepowered.api.command.manager.CommandManager; +import org.spongepowered.api.entity.living.player.server.ServerPlayer; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.tree.LiteralCommandNode; + +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.abstractions.AbstractPlayer; +import dev.jorel.commandapi.arguments.SuggestionProviders; + +// See https://docs.spongepowered.org/stable/en/plugin/migrating-from-7-to-8.html#command-creation-and-registration + +public class SpongePlatform extends AbstractPlatform { + private CommandManager commandManager; + + @Override + public void onLoad() { + + } + + @Override + public void onEnable(Object pluginObject) { + CommandAPISpongePluginWrapper plugin = (CommandAPISpongePluginWrapper) pluginObject; + + commandManager = plugin.getServer().commandManager(); + } + + @Override + public void onDisable() { + + } + + @Override + public void registerPermission(String string) { + return; // Unsurprisingly, Sponge doesn't have a dumb permission system! + } + + + @Override + public void registerHelp() { + return; // Nothing to do here - TODO: Sponge doesn't have help? + } + + @Override + public void unregister(String commandName, boolean force) { +// commandManager.unregister(commandName); + } + + @Override + public CommandDispatcher getBrigadierDispatcher() { + // TODO: How do we get this? Do we need access to sponge internals? + return null; + } + + @Override + public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, + boolean forceNative) { + // TODO: Do something with this? + cmdCtx.getSource(); + return null; + } + + @Override + public Object getBrigadierSourceFromCommandSender(AbstractCommandSender sender) { + return (Object) sender.getSource(); + } + + @Override + public SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void postCommandRegistration(LiteralCommandNode resultantNode, + List> aliasNodes) { + return; // Say hi, do checks etc. + } + + @Override + public LiteralCommandNode registerCommandNode(LiteralArgumentBuilder node) { + return null; + } + + @Override + public AbstractCommandSender getCommandSenderFromCommandSource(Object cs) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void reloadDataPacks() { + // TODO Auto-generated method stub + + } + + @Override + public void updateRequirements(AbstractPlayer player) { + commandManager.updateCommandTreeForPlayer((ServerPlayer) player.getSource()); + } + +} diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongeCommandSender.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongeCommandSender.java new file mode 100644 index 0000000000..f6f3199019 --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongeCommandSender.java @@ -0,0 +1,6 @@ +package dev.jorel.commandapi.commandsenders; + +import dev.jorel.commandapi.abstractions.AbstractCommandSender; + +public interface SpongeCommandSender extends AbstractCommandSender { +} diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongePlayer.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongePlayer.java new file mode 100644 index 0000000000..f9a4e7139d --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongePlayer.java @@ -0,0 +1,31 @@ +package dev.jorel.commandapi.commandsenders; +import org.spongepowered.api.entity.living.player.server.ServerPlayer; + +import dev.jorel.commandapi.abstractions.AbstractPlayer; + +public class SpongePlayer extends AbstractPlayer implements SpongeCommandSender { + + private final ServerPlayer player; + + public SpongePlayer(ServerPlayer player) { + this.player = player; + } + + @Override + public boolean hasPermission(String permissionNode) { + return this.player.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + // Sponge doesn't have the concept of "being op". There is only + // permissions + return false; + } + + @Override + public ServerPlayer getSource() { + return this.player; + } + +} diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/.gitignore b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/.gitignore new file mode 100644 index 0000000000..3e0973a611 --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/.gitignore @@ -0,0 +1,5 @@ +/.apt_generated/ +/.apt_generated_tests/ + +/command_registration.json +/logs/* \ No newline at end of file diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/pom.xml new file mode 100644 index 0000000000..d052bbe420 --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + + + commandapi-sponge + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-sponge-plugin-test + + + + dev.jorel + commandapi-sponge-shade + ${project.version} + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.0 + + false + + + + + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/.gitignore b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/.gitignore new file mode 100644 index 0000000000..a87f02033f --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/.gitignore @@ -0,0 +1,4 @@ +/.apt_generated/ +/.apt_generated_tests/ + +/dependency-reduced-pom.xml diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml new file mode 100644 index 0000000000..5c0ac13a50 --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + + + commandapi-sponge + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-sponge-plugin + + + + papermc + https://repo.papermc.io/repository/maven-public/ + + + + + + + org.spongepowered + spongeapi + 8.0.0 + jar + provided + + + + + dev.jorel + commandapi-core + ${project.version} + + + dev.jorel + commandapi-sponge-core + ${project.version} + compile + + + + + + + org.apache.maven.plugins + maven-shade-plugin + + + package + + shade + + + + + + + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java new file mode 100644 index 0000000000..9e9274521d --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -0,0 +1,28 @@ +package dev.jorel.commandapi; + +import org.apache.logging.log4j.Logger; +import org.spongepowered.api.Server; +import org.spongepowered.api.event.Listener; +import org.spongepowered.api.event.lifecycle.StartedEngineEvent; +import org.spongepowered.plugin.builtin.jvm.Plugin; + +import com.google.inject.Inject; +import dev.jorel.commandapi.CommandAPISpongePluginWrapper; + +@Plugin("CommandAPI") +public class CommandAPIMain implements CommandAPISpongePluginWrapper { + + @Inject + private Logger logger; + + @Listener + public void onServerStart(final StartedEngineEvent event) { + CommandAPI.onEnable(this); + } + + @Override + public Server getServer() { + // TODO Auto-generated method stub + return null; + } +} diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/.gitignore b/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/.gitignore new file mode 100644 index 0000000000..a87f02033f --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/.gitignore @@ -0,0 +1,4 @@ +/.apt_generated/ +/.apt_generated_tests/ + +/dependency-reduced-pom.xml diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml new file mode 100644 index 0000000000..7188db8862 --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml @@ -0,0 +1,62 @@ + + + 4.0.0 + + + commandapi-sponge + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-sponge-shade + + + + dev.jorel + commandapi-core + ${project.version} + + + dev.jorel + commandapi-sponge-core + ${project.version} + compile + + + + + + + org.apache.maven.plugins + maven-shade-plugin + + + package + + shade + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + empty-javadoc-jar + package + + jar + + + javadoc + ${basedir}/javadoc + + + + + + + \ No newline at end of file diff --git a/commandapi-platforms/commandapi-sponge/pom.xml b/commandapi-platforms/commandapi-sponge/pom.xml new file mode 100644 index 0000000000..71cbc605dd --- /dev/null +++ b/commandapi-platforms/commandapi-sponge/pom.xml @@ -0,0 +1,25 @@ + + + 4.0.0 + + + commandapi-platforms + dev.jorel + 8.6.0-SNAPSHOT + + + commandapi-sponge + pom + + + + commandapi-sponge-core + + + commandapi-sponge-plugin + commandapi-sponge-plugin-test + commandapi-sponge-shade + + \ No newline at end of file diff --git a/commandapi-platforms/pom.xml b/commandapi-platforms/pom.xml index ca747d9966..f1256446e8 100644 --- a/commandapi-platforms/pom.xml +++ b/commandapi-platforms/pom.xml @@ -16,5 +16,6 @@ commandapi-bukkit commandapi-velocity + commandapi-sponge \ No newline at end of file From 7886db9ea4c89f32d0004982cdeea96be0446cb0 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Wed, 19 Oct 2022 18:10:42 +0100 Subject: [PATCH 056/638] Implementation of Bukkit Player objects as executors --- ...nd.java => AbstractCommandAPICommand.java} | 32 ++-- .../java/dev/jorel/commandapi/Executable.java | 142 ---------------- .../java/dev/jorel/commandapi/Execution.java | 2 +- .../commandapi/executors/IExecutorNormal.java | 9 +- .../commandapi/executors/IExecutorTyped.java | 4 +- .../jorel/commandapi/CommandAPICommand.java | 160 ++++++++++++++++++ .../executors/PlayerCommandExecutor.java | 7 +- .../PlayerResultingCommandExecutor.java | 0 8 files changed, 187 insertions(+), 169 deletions(-) rename commandapi-core/src/main/java/dev/jorel/commandapi/{CommandAPICommand.java => AbstractCommandAPICommand.java} (85%) create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java (88%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java (100%) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java similarity index 85% rename from commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index 44d19c4828..a00571b371 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -35,10 +35,10 @@ /** * A builder used to create commands to be registered by the CommandAPI. */ -public class CommandAPICommand extends ExecutableCommand { +public class AbstractCommandAPICommand extends ExecutableCommand { private List> args = new ArrayList<>(); - private List subcommands = new ArrayList<>(); + private List subcommands = new ArrayList<>(); private boolean isConverted; /** @@ -46,7 +46,7 @@ public class CommandAPICommand extends ExecutableCommand { * * @param commandName The name of the command to create */ - public CommandAPICommand(String commandName) { + public AbstractCommandAPICommand(String commandName) { super(commandName); this.isConverted = false; } @@ -56,7 +56,7 @@ public CommandAPICommand(String commandName) { * * @param metaData The metadata of the command to create */ - protected CommandAPICommand(CommandMetaData metaData) { + protected AbstractCommandAPICommand(CommandMetaData metaData) { super(metaData); this.isConverted = false; } @@ -68,7 +68,7 @@ protected CommandAPICommand(CommandMetaData metaData) { * command can accept * @return this command builder */ - public CommandAPICommand withArguments(List> args) { + public AbstractCommandAPICommand withArguments(List> args) { this.args.addAll(args); return this; } @@ -79,7 +79,7 @@ public CommandAPICommand withArguments(List> args) { * @param args Arguments that this command can accept * @return this command builder */ - public CommandAPICommand withArguments(Argument... args) { + public AbstractCommandAPICommand withArguments(Argument... args) { this.args.addAll(Arrays.asList(args)); return this; } @@ -90,7 +90,7 @@ public CommandAPICommand withArguments(Argument... args) { * @param subcommand the subcommand to add as a child of this command * @return this command builder */ - public CommandAPICommand withSubcommand(CommandAPICommand subcommand) { + public AbstractCommandAPICommand withSubcommand(AbstractCommandAPICommand subcommand) { this.subcommands.add(subcommand); return this; } @@ -101,7 +101,7 @@ public CommandAPICommand withSubcommand(CommandAPICommand subcommand) { * @param subcommands the subcommands to add as children of this command * @return this command builder */ - public CommandAPICommand withSubcommands(CommandAPICommand... subcommands) { + public AbstractCommandAPICommand withSubcommands(AbstractCommandAPICommand... subcommands) { this.subcommands.addAll(Arrays.asList(subcommands)); return this; } @@ -129,7 +129,7 @@ public void setArguments(List> args) { * * @return the list of subcommands that this command has */ - public List getSubcommands() { + public List getSubcommands() { return subcommands; } @@ -138,7 +138,7 @@ public List getSubcommands() { * * @param subcommands the list of subcommands that this command has */ - public void setSubcommands(List subcommands) { + public void setSubcommands(List subcommands) { this.subcommands = subcommands; } @@ -159,7 +159,7 @@ public boolean isConverted() { * @param isConverted whether this command is converted or not * @return this command builder */ - CommandAPICommand setConverted(boolean isConverted) { + AbstractCommandAPICommand setConverted(boolean isConverted) { this.isConverted = isConverted; return this; } @@ -167,7 +167,7 @@ CommandAPICommand setConverted(boolean isConverted) { // Expands subcommands into arguments. This method should be static (it // shouldn't // be accessing/depending on any of the contents of the current class instance) - private static void flatten(CommandAPICommand rootCommand, List> prevArguments, CommandAPICommand subcommand) { + private static void flatten(AbstractCommandAPICommand rootCommand, List> prevArguments, AbstractCommandAPICommand subcommand) { // Get the list of literals represented by the current subcommand. This // includes the subcommand's name and any aliases for this subcommand String[] literals = new String[subcommand.meta.aliases.length + 1]; @@ -197,7 +197,7 @@ private static void flatten(CommandAPICommand rootCommand, List> pre rootCommand.register(); } - for (CommandAPICommand subsubcommand : new ArrayList<>(subcommand.subcommands)) { + for (AbstractCommandAPICommand subsubcommand : new ArrayList<>(subcommand.subcommands)) { flatten(rootCommand, new ArrayList<>(prevArguments), subsubcommand); } } @@ -232,15 +232,15 @@ public void register() { } // Convert subcommands into multiliteral arguments - for (CommandAPICommand subcommand : new ArrayList<>(this.subcommands)) { - flatten(new CommandAPICommand(this), new ArrayList<>(), subcommand); + for (AbstractCommandAPICommand subcommand : new ArrayList<>(this.subcommands)) { + flatten(new AbstractCommandAPICommand(this), new ArrayList<>(), subcommand); } } catch (CommandSyntaxException | IOException e) { e.printStackTrace(); } } - public CommandAPICommand(CommandAPICommand original) { + public AbstractCommandAPICommand(AbstractCommandAPICommand original) { this(new CommandMetaData(original.meta)); this.args = new ArrayList<>(original.args); this.subcommands = new ArrayList<>(original.subcommands); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java index acb7d6a1c0..1b80bf5e97 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java @@ -93,148 +93,6 @@ public ExecutorType getType() { return (T) this; } - // Player command executor - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Player, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesPlayer(PlayerCommandExecutor executor) { - this.executor.addNormalExecutor(executor); - return (T) this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Player, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesPlayer(PlayerResultingCommandExecutor executor) { - this.executor.addResultingExecutor(executor); - return (T) this; - } - - // Entity command executor - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Entity, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesEntity(EntityCommandExecutor executor) { - this.executor.addNormalExecutor(executor); - return (T) this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Entity, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesEntity(EntityResultingCommandExecutor executor) { - this.executor.addResultingExecutor(executor); - return (T) this; - } - - // Proxy command executor - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Entity, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesProxy(ProxyCommandExecutor executor) { - this.executor.addNormalExecutor(executor); - return (T) this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Entity, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesProxy(ProxyResultingCommandExecutor executor) { - this.executor.addResultingExecutor(executor); - return (T) this; - } - - // Command block command sender - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (BlockCommandSender, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesCommandBlock(CommandBlockCommandExecutor executor) { - this.executor.addNormalExecutor(executor); - return (T) this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (BlockCommandSender, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesCommandBlock(CommandBlockResultingCommandExecutor executor) { - this.executor.addResultingExecutor(executor); - return (T) this; - } - - // Console command sender - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (BlockCommandSender, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesConsole(ConsoleCommandExecutor executor) { - this.executor.addNormalExecutor(executor); - return (T) this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (BlockCommandSender, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesConsole(ConsoleResultingCommandExecutor executor) { - this.executor.addResultingExecutor(executor); - return (T) this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (NativeCommandExecutor, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesNative(NativeCommandExecutor executor) { - this.executor.addNormalExecutor(executor); - return (T) this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (NativeCommandExecutor, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executesNative(NativeResultingCommandExecutor executor) { - this.executor.addResultingExecutor(executor); - return (T) this; - } - /** * Returns the executors that this command has * @return the executors that this command has diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java index 0fee2ac47d..3e012e672f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java @@ -16,7 +16,7 @@ record Execution(List> arguments, CustomCommandExecutor the commandsender */ -public interface IExecutorNormal> extends IExecutorTyped { +public interface IExecutorNormal> extends IExecutorTyped { /** * Executes the command executor with the provided command sender and the provided arguments. @@ -37,10 +37,9 @@ public interface IExecutorNormal> extends IEx * @return 1 if the command succeeds, 0 if the command fails * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - @SuppressWarnings("unchecked") @Override - default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - this.run((T) sender, args); + default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + this.run(sender.getSource(), args); return 1; } @@ -50,6 +49,6 @@ default int executeWith(AbstractCommandSender sender, Object[] args) throws W * @param args the arguments provided to this command * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - void run(T sender, Object[] args) throws WrapperCommandSyntaxException; + void run(K sender, Object[] args) throws WrapperCommandSyntaxException; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java index 9646540b3d..01535c081d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java @@ -28,7 +28,7 @@ * can execute) and has a method that executes an executor with a given command * sender and arguments */ -public interface IExecutorTyped { +public interface IExecutorTyped { /** * Returns the type of the sender of the current executor. @@ -45,6 +45,6 @@ default ExecutorType getType() { * @return the value returned by this command if the command succeeds, 0 if the command fails * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; + int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java new file mode 100644 index 0000000000..76704bc1d5 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -0,0 +1,160 @@ +package dev.jorel.commandapi; + +import dev.jorel.commandapi.executors.CommandBlockCommandExecutor; +import dev.jorel.commandapi.executors.CommandBlockResultingCommandExecutor; +import dev.jorel.commandapi.executors.ConsoleCommandExecutor; +import dev.jorel.commandapi.executors.ConsoleResultingCommandExecutor; +import dev.jorel.commandapi.executors.EntityCommandExecutor; +import dev.jorel.commandapi.executors.EntityResultingCommandExecutor; +import dev.jorel.commandapi.executors.NativeCommandExecutor; +import dev.jorel.commandapi.executors.NativeResultingCommandExecutor; +import dev.jorel.commandapi.executors.PlayerCommandExecutor; +import dev.jorel.commandapi.executors.PlayerResultingCommandExecutor; +import dev.jorel.commandapi.executors.ProxyCommandExecutor; +import dev.jorel.commandapi.executors.ProxyResultingCommandExecutor; + +public class CommandAPICommand extends AbstractCommandAPICommand { + + public CommandAPICommand(CommandAPICommand original) { + super(original); + } + + public CommandAPICommand(CommandMetaData meta) { + super(meta); + } + + public CommandAPICommand(String commandName) { + super(commandName); + } + + // Player command executor + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Player, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesPlayer(PlayerCommandExecutor executor) { + this.executor.addNormalExecutor(executor); + return this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Player, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesPlayer(PlayerResultingCommandExecutor executor) { + this.executor.addResultingExecutor(executor); + return this; + } + + // Entity command executor + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Entity, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesEntity(EntityCommandExecutor executor) { + this.executor.addNormalExecutor(executor); + return this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Entity, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesEntity(EntityResultingCommandExecutor executor) { + this.executor.addResultingExecutor(executor); + return this; + } + + // Proxy command executor + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Entity, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesProxy(ProxyCommandExecutor executor) { + this.executor.addNormalExecutor(executor); + return this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Entity, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesProxy(ProxyResultingCommandExecutor executor) { + this.executor.addResultingExecutor(executor); + return this; + } + + // Command block command sender + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (BlockCommandSender, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesCommandBlock(CommandBlockCommandExecutor executor) { + this.executor.addNormalExecutor(executor); + return this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (BlockCommandSender, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesCommandBlock(CommandBlockResultingCommandExecutor executor) { + this.executor.addResultingExecutor(executor); + return this; + } + + // Console command sender + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (BlockCommandSender, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesConsole(ConsoleCommandExecutor executor) { + this.executor.addNormalExecutor(executor); + return this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (BlockCommandSender, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesConsole(ConsoleResultingCommandExecutor executor) { + this.executor.addResultingExecutor(executor); + return this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (NativeCommandExecutor, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesNative(NativeCommandExecutor executor) { + this.executor.addNormalExecutor(executor); + return this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (NativeCommandExecutor, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + public CommandAPICommand executesNative(NativeResultingCommandExecutor executor) { + this.executor.addResultingExecutor(executor); + return this; + } + +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java similarity index 88% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java index b991fcde4a..0e4138fd41 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java @@ -20,15 +20,16 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractPlayer; +import org.bukkit.entity.Player; +import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A normal command executor for a Player */ @FunctionalInterface -public interface PlayerCommandExecutor extends IExecutorNormal> { +public interface PlayerCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -40,7 +41,7 @@ public interface PlayerCommandExecutor extends IExecutorNormal * determined by the hashmap of arguments IN THE ORDER of * insertion into the hashmap */ - void run(AbstractPlayer sender, Object[] args) throws WrapperCommandSyntaxException; + void run(Player sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java From bc764e2bd5ad554112cb7a81349324bef4f742eb Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Wed, 19 Oct 2022 18:28:27 +0100 Subject: [PATCH 057/638] Implement executors for all other Bukkit command senders --- .../commandapi/AbstractCommandAPICommand.java | 31 +++++---- .../java/dev/jorel/commandapi/Executable.java | 60 ---------------- .../executors/IExecutorResulting.java | 9 ++- .../jorel/commandapi/CommandAPICommand.java | 68 +++++++++++++++++++ .../CommandBlockCommandExecutor.java | 7 +- .../CommandBlockResultingCommandExecutor.java | 7 +- .../commandapi/executors/CommandExecutor.java | 7 +- .../executors/ConsoleCommandExecutor.java | 7 +- .../ConsoleResultingCommandExecutor.java | 8 ++- .../executors/EntityCommandExecutor.java | 8 ++- .../EntityResultingCommandExecutor.java | 8 ++- .../executors/NativeCommandExecutor.java | 7 +- .../NativeResultingCommandExecutor.java | 7 +- .../PlayerResultingCommandExecutor.java | 8 ++- .../executors/ProxyCommandExecutor.java | 7 +- .../ProxyResultingCommandExecutor.java | 7 +- .../executors/ResultingCommandExecutor.java | 7 +- 17 files changed, 144 insertions(+), 119 deletions(-) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java (89%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java (89%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java (87%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java (89%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java (88%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java (88%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java (91%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java (85%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java (88%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java (85%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java (88%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java (89%) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index a00571b371..aebfbb454e 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -35,10 +35,10 @@ /** * A builder used to create commands to be registered by the CommandAPI. */ -public class AbstractCommandAPICommand extends ExecutableCommand { +public class AbstractCommandAPICommand> extends ExecutableCommand> { private List> args = new ArrayList<>(); - private List subcommands = new ArrayList<>(); + private List> subcommands = new ArrayList<>(); private boolean isConverted; /** @@ -68,9 +68,9 @@ protected AbstractCommandAPICommand(CommandMetaData metaData) { * command can accept * @return this command builder */ - public AbstractCommandAPICommand withArguments(List> args) { + public Impl withArguments(List> args) { this.args.addAll(args); - return this; + return (Impl) this; } /** @@ -79,9 +79,9 @@ public AbstractCommandAPICommand withArguments(List> args) { * @param args Arguments that this command can accept * @return this command builder */ - public AbstractCommandAPICommand withArguments(Argument... args) { + public Impl withArguments(Argument... args) { this.args.addAll(Arrays.asList(args)); - return this; + return (Impl) this; } /** @@ -90,9 +90,9 @@ public AbstractCommandAPICommand withArguments(Argument... args) { * @param subcommand the subcommand to add as a child of this command * @return this command builder */ - public AbstractCommandAPICommand withSubcommand(AbstractCommandAPICommand subcommand) { + public Impl withSubcommand(AbstractCommandAPICommand subcommand) { this.subcommands.add(subcommand); - return this; + return (Impl) this; } /** @@ -101,9 +101,9 @@ public AbstractCommandAPICommand withSubcommand(AbstractCommandAPICommand subcom * @param subcommands the subcommands to add as children of this command * @return this command builder */ - public AbstractCommandAPICommand withSubcommands(AbstractCommandAPICommand... subcommands) { + public Impl withSubcommands(AbstractCommandAPICommand... subcommands) { this.subcommands.addAll(Arrays.asList(subcommands)); - return this; + return (Impl) this; } /** @@ -129,7 +129,7 @@ public void setArguments(List> args) { * * @return the list of subcommands that this command has */ - public List getSubcommands() { + public List> getSubcommands() { return subcommands; } @@ -138,7 +138,7 @@ public List getSubcommands() { * * @param subcommands the list of subcommands that this command has */ - public void setSubcommands(List subcommands) { + public void setSubcommands(List> subcommands) { this.subcommands = subcommands; } @@ -167,7 +167,7 @@ AbstractCommandAPICommand setConverted(boolean isConverted) { // Expands subcommands into arguments. This method should be static (it // shouldn't // be accessing/depending on any of the contents of the current class instance) - private static void flatten(AbstractCommandAPICommand rootCommand, List> prevArguments, AbstractCommandAPICommand subcommand) { + private static > void flatten(AbstractCommandAPICommand rootCommand, List> prevArguments, AbstractCommandAPICommand subcommand) { // Get the list of literals represented by the current subcommand. This // includes the subcommand's name and any aliases for this subcommand String[] literals = new String[subcommand.meta.aliases.length + 1]; @@ -197,8 +197,9 @@ private static void flatten(AbstractCommandAPICommand rootCommand, List(subcommand.subcommands)) { - flatten(rootCommand, new ArrayList<>(prevArguments), subsubcommand); + // TODO: Sneaky cast. Might need checking + for (Object subsubcommand : new ArrayList<>(subcommand.getSubcommands())) { + flatten(rootCommand, new ArrayList<>(prevArguments), (AbstractCommandAPICommand) subsubcommand); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java index 1b80bf5e97..0e6c4c279b 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java @@ -33,66 +33,6 @@ abstract class Executable> { */ protected CustomCommandExecutor executor = new CustomCommandExecutor<>(); - // Regular command executor - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (CommandSender, Object[]) -> () that will be executed when the command is run - * @param types A list of executor types to use this executes method for. - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executes(CommandExecutor executor, ExecutorType... types) { - if(types == null || types.length == 0) { - this.executor.addNormalExecutor(executor); - } else { - for(ExecutorType type : types) { - this.executor.addNormalExecutor(new CommandExecutor() { - - @Override - public void run(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - executor.executeWith(sender, args); - } - - @Override - public ExecutorType getType() { - return type; - } - }); - } - } - return (T) this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (CommandSender, Object[]) -> int that will be executed when the command is run - * @param types A list of executor types to use this executes method for. - * @return this command builder - */ - @SuppressWarnings("unchecked") - public T executes(ResultingCommandExecutor executor, ExecutorType... types) { - if(types == null || types.length == 0) { - this.executor.addResultingExecutor(executor); - } else { - for(ExecutorType type : types) { - this.executor.addResultingExecutor(new ResultingCommandExecutor() { - - @Override - public int run(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - return executor.executeWith(sender, args); - } - - @Override - public ExecutorType getType() { - return type; - } - }); - } - } - return (T) this; - } - /** * Returns the executors that this command has * @return the executors that this command has diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java index 80a51edbe5..ff69c79aa2 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java @@ -28,7 +28,7 @@ * The interface for resulting command executors * @param the commandsender */ -public interface IExecutorResulting> extends IExecutorTyped { +public interface IExecutorResulting> extends IExecutorTyped { /** * Executes the command executor with the provided command sender and the provided arguments. @@ -37,10 +37,9 @@ public interface IExecutorResulting> extends * @return the value returned by this command if the command succeeds, 0 if the command fails * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - @SuppressWarnings("unchecked") @Override - default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - return this.run((T) sender, args); + default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + return this.run(sender.getSource(), args); } /** @@ -50,6 +49,6 @@ default int executeWith(AbstractCommandSender sender, Object[] args) throws W * @return the value returned by this command * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - int run(T sender, Object[] args) throws WrapperCommandSyntaxException; + int run(K sender, Object[] args) throws WrapperCommandSyntaxException; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index 76704bc1d5..f2b9284957 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -1,17 +1,23 @@ package dev.jorel.commandapi; +import org.bukkit.command.CommandSender; + +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.executors.CommandBlockCommandExecutor; import dev.jorel.commandapi.executors.CommandBlockResultingCommandExecutor; +import dev.jorel.commandapi.executors.CommandExecutor; import dev.jorel.commandapi.executors.ConsoleCommandExecutor; import dev.jorel.commandapi.executors.ConsoleResultingCommandExecutor; import dev.jorel.commandapi.executors.EntityCommandExecutor; import dev.jorel.commandapi.executors.EntityResultingCommandExecutor; +import dev.jorel.commandapi.executors.ExecutorType; import dev.jorel.commandapi.executors.NativeCommandExecutor; import dev.jorel.commandapi.executors.NativeResultingCommandExecutor; import dev.jorel.commandapi.executors.PlayerCommandExecutor; import dev.jorel.commandapi.executors.PlayerResultingCommandExecutor; import dev.jorel.commandapi.executors.ProxyCommandExecutor; import dev.jorel.commandapi.executors.ProxyResultingCommandExecutor; +import dev.jorel.commandapi.executors.ResultingCommandExecutor; public class CommandAPICommand extends AbstractCommandAPICommand { @@ -26,6 +32,68 @@ public CommandAPICommand(CommandMetaData meta) { public CommandAPICommand(String commandName) { super(commandName); } + + + + // Regular command executor + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (CommandSender, Object[]) -> () that will be executed when the command is run + * @param types A list of executor types to use this executes method for. + * @return this command builder + */ + @SuppressWarnings("unchecked") + public CommandAPICommand executes(CommandExecutor executor, ExecutorType... types) { + if(types == null || types.length == 0) { + this.executor.addNormalExecutor(executor); + } else { + for(ExecutorType type : types) { + this.executor.addNormalExecutor(new CommandExecutor() { + + @Override + public void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + executor.executeWith(sender, args); + } + + @Override + public ExecutorType getType() { + return type; + } + }); + } + } + return this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (CommandSender, Object[]) -> int that will be executed when the command is run + * @param types A list of executor types to use this executes method for. + * @return this command builder + */ + @SuppressWarnings("unchecked") + public CommandAPICommand executes(ResultingCommandExecutor executor, ExecutorType... types) { + if(types == null || types.length == 0) { + this.executor.addResultingExecutor(executor); + } else { + for(ExecutorType type : types) { + this.executor.addResultingExecutor(new ResultingCommandExecutor() { + + @Override + public int run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + return executor.executeWith(sender, args); + } + + @Override + public ExecutorType getType() { + return type; + } + }); + } + } + return this; + } // Player command executor diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java similarity index 89% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java index 56c6b80395..5e888c52be 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java @@ -20,15 +20,16 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractBlockCommandSender; +import org.bukkit.command.BlockCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitBlockCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A normal command executor for a BlockCommandSender */ @FunctionalInterface -public interface CommandBlockCommandExecutor extends IExecutorNormal> { +public interface CommandBlockCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -40,7 +41,7 @@ public interface CommandBlockCommandExecutor extends IExecutorNormal sender, Object[] args) throws WrapperCommandSyntaxException; + void run(BlockCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java similarity index 89% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java index d9674ba7f8..033fb55abe 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java @@ -20,15 +20,16 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractBlockCommandSender; +import org.bukkit.command.BlockCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitBlockCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A resulting command executor for a BlockCommandSender */ @FunctionalInterface -public interface CommandBlockResultingCommandExecutor extends IExecutorResulting> { +public interface CommandBlockResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -42,7 +43,7 @@ public interface CommandBlockResultingCommandExecutor extends IExecutorResulting * * @return the result of this command */ - int run(AbstractBlockCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; + int run(BlockCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java similarity index 87% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java index a737870ded..a507de00ec 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java @@ -20,15 +20,16 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import org.bukkit.command.CommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A normal command executor for a CommandSender */ @FunctionalInterface -public interface CommandExecutor extends IExecutorNormal> { +public interface CommandExecutor extends IExecutorNormal> { /** * The code to run when this command is performed @@ -40,7 +41,7 @@ public interface CommandExecutor extends IExecutorNormal sender, Object[] args) throws WrapperCommandSyntaxException; + void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java similarity index 89% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java index df8e914d14..1461620885 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java @@ -20,15 +20,16 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractConsoleCommandSender; +import org.bukkit.command.ConsoleCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitConsoleCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A normal command executor for a ConsoleCommandSender */ @FunctionalInterface -public interface ConsoleCommandExecutor extends IExecutorNormal> { +public interface ConsoleCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -40,7 +41,7 @@ public interface ConsoleCommandExecutor extends IExecutorNormal sender, Object[] args) throws WrapperCommandSyntaxException; + void run(ConsoleCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java similarity index 88% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java index 124f9dcfec..e5e5e939ce 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java @@ -20,14 +20,16 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractConsoleCommandSender; +import org.bukkit.command.ConsoleCommandSender; + +import dev.jorel.commandapi.commandsenders.BukkitConsoleCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A resulting command executor for a ConsoleCommandSender */ @FunctionalInterface -public interface ConsoleResultingCommandExecutor extends IExecutorResulting> { +public interface ConsoleResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -40,7 +42,7 @@ public interface ConsoleResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; + int run(ConsoleCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java similarity index 88% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java index 270f146c59..9ea6fa96f3 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java @@ -20,14 +20,16 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractEntity; +import org.bukkit.entity.Entity; + +import dev.jorel.commandapi.commandsenders.BukkitEntity; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A normal command executor for an Entity */ @FunctionalInterface -public interface EntityCommandExecutor extends IExecutorNormal> { +public interface EntityCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -39,7 +41,7 @@ public interface EntityCommandExecutor extends IExecutorNormal * determined by the hashmap of arguments IN THE ORDER of * insertion into the hashmap */ - void run(AbstractEntity sender, Object[] args) throws WrapperCommandSyntaxException; + void run(Entity sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java similarity index 91% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java index 0c8c47e1ce..1fc2bd2bbc 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java @@ -20,14 +20,16 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractEntity; +import org.bukkit.entity.Entity; + +import dev.jorel.commandapi.commandsenders.BukkitEntity; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A resulting command executor for an Entity */ @FunctionalInterface -public interface EntityResultingCommandExecutor extends IExecutorResulting> { +public interface EntityResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -40,7 +42,7 @@ public interface EntityResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; + int run(Entity sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java similarity index 85% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java index 48d79b8efa..80ca9c896b 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java @@ -20,14 +20,15 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractNativeProxyCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; /** * A normal command executor for a NativeProxyCommandSender */ @FunctionalInterface -public interface NativeCommandExecutor extends IExecutorNormal> { +public interface NativeCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -39,7 +40,7 @@ public interface NativeCommandExecutor extends IExecutorNormal sender, Object[] args) throws WrapperCommandSyntaxException; + void run(NativeProxyCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java similarity index 88% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java index 70fbc7a408..ab1e426525 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java @@ -20,14 +20,15 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractNativeProxyCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; /** * A resulting command executor for a NativeProxyCommandSender */ @FunctionalInterface -public interface NativeResultingCommandExecutor extends IExecutorResulting> { +public interface NativeResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -40,7 +41,7 @@ public interface NativeResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; + int run(NativeProxyCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java index f122620e77..880ace2830 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java @@ -20,14 +20,16 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractPlayer; +import org.bukkit.entity.Player; + +import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A resulting command executor for a Player */ @FunctionalInterface -public interface PlayerResultingCommandExecutor extends IExecutorResulting> { +public interface PlayerResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -40,7 +42,7 @@ public interface PlayerResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; + int run(Player sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java similarity index 85% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java index 973921442f..7a1ec9208c 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java @@ -20,14 +20,15 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractNativeProxyCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; /** * A normal command executor for a NativeProxyCommandSender */ @FunctionalInterface -public interface ProxyCommandExecutor extends IExecutorNormal> { +public interface ProxyCommandExecutor extends IExecutorNormal { /** * The code to run when this command is performed @@ -39,7 +40,7 @@ public interface ProxyCommandExecutor extends IExecutorNormal sender, Object[] args) throws WrapperCommandSyntaxException; + void run(NativeProxyCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java similarity index 88% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java index 6e1f848e01..1f80f9d96c 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java @@ -20,14 +20,15 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractNativeProxyCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; /** * A resulting command executor for a NativeProxyCommandSender */ @FunctionalInterface -public interface ProxyResultingCommandExecutor extends IExecutorResulting> { +public interface ProxyResultingCommandExecutor extends IExecutorResulting { /** * The code to run when this command is performed @@ -40,7 +41,7 @@ public interface ProxyResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; + int run(NativeProxyCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java similarity index 89% rename from commandapi-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java index 4d2e012def..6b8d6e2f21 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java @@ -20,15 +20,16 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import org.bukkit.command.CommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** * A resulting command executor for a CommandSender */ @FunctionalInterface -public interface ResultingCommandExecutor extends IExecutorResulting> { +public interface ResultingCommandExecutor extends IExecutorResulting> { /** * The code to run when this command is performed @@ -41,7 +42,7 @@ public interface ResultingCommandExecutor extends IExecutorResulting sender, Object[] args) throws WrapperCommandSyntaxException; + int run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException; /** * Returns the type of the sender of the current executor. From c66ce410923f86a201844b8d50893deac6b290c6 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 21 Oct 2022 08:50:02 -0400 Subject: [PATCH 058/638] Fix generics --- .../commandapi/AbstractCommandAPICommand.java | 42 ++++++++--------- .../commandapi/CustomCommandExecutor.java | 41 ++++++++--------- .../java/dev/jorel/commandapi/Executable.java | 39 +++++----------- .../jorel/commandapi/ExecutableCommand.java | 45 ++++++++++--------- .../java/dev/jorel/commandapi/Execution.java | 25 ++++++++--- .../commandapi/executors/IExecutorNormal.java | 9 ++-- .../executors/IExecutorResulting.java | 9 ++-- .../commandapi/executors/IExecutorTyped.java | 5 ++- .../dev/jorel/commandapi/BukkitPlatform.java | 2 +- .../jorel/commandapi/CommandAPICommand.java | 21 +++++---- .../commandapi/executors/CommandExecutor.java | 2 +- .../executors/ResultingCommandExecutor.java | 2 +- 12 files changed, 122 insertions(+), 120 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index aebfbb454e..1974be028b 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -34,12 +34,14 @@ /** * A builder used to create commands to be registered by the CommandAPI. + * @param The class extending this class, used as the return type for chain calls + * @param The CommandSender class used by the class extending this class */ -public class AbstractCommandAPICommand> extends ExecutableCommand> { +public abstract class AbstractCommandAPICommand, CommandSender> extends ExecutableCommand { - private List> args = new ArrayList<>(); - private List> subcommands = new ArrayList<>(); - private boolean isConverted; + protected List> args = new ArrayList<>(); + protected List subcommands = new ArrayList<>(); + protected boolean isConverted; /** * Creates a new command builder @@ -90,7 +92,7 @@ public Impl withArguments(Argument... args) { * @param subcommand the subcommand to add as a child of this command * @return this command builder */ - public Impl withSubcommand(AbstractCommandAPICommand subcommand) { + public Impl withSubcommand(Impl subcommand) { this.subcommands.add(subcommand); return (Impl) this; } @@ -101,7 +103,7 @@ public Impl withSubcommand(AbstractCommandAPICommand subcommand) { * @param subcommands the subcommands to add as children of this command * @return this command builder */ - public Impl withSubcommands(AbstractCommandAPICommand... subcommands) { + public Impl withSubcommands(Impl... subcommands) { this.subcommands.addAll(Arrays.asList(subcommands)); return (Impl) this; } @@ -129,7 +131,7 @@ public void setArguments(List> args) { * * @return the list of subcommands that this command has */ - public List> getSubcommands() { + public List getSubcommands() { return subcommands; } @@ -138,7 +140,7 @@ public List> getSubcommands() { * * @param subcommands the list of subcommands that this command has */ - public void setSubcommands(List> subcommands) { + public void setSubcommands(List subcommands) { this.subcommands = subcommands; } @@ -159,15 +161,16 @@ public boolean isConverted() { * @param isConverted whether this command is converted or not * @return this command builder */ - AbstractCommandAPICommand setConverted(boolean isConverted) { + Impl setConverted(boolean isConverted) { this.isConverted = isConverted; - return this; + return (Impl) this; } // Expands subcommands into arguments. This method should be static (it // shouldn't // be accessing/depending on any of the contents of the current class instance) - private static > void flatten(AbstractCommandAPICommand rootCommand, List> prevArguments, AbstractCommandAPICommand subcommand) { + private static , CommandSender> + void flatten(Impl rootCommand, List> prevArguments, Impl subcommand) { // Get the list of literals represented by the current subcommand. This // includes the subcommand's name and any aliases for this subcommand String[] literals = new String[subcommand.meta.aliases.length + 1]; @@ -197,9 +200,8 @@ private static > void flatten(Abstr rootCommand.register(); } - // TODO: Sneaky cast. Might need checking - for (Object subsubcommand : new ArrayList<>(subcommand.getSubcommands())) { - flatten(rootCommand, new ArrayList<>(prevArguments), (AbstractCommandAPICommand) subsubcommand); + for (Impl subsubcommand : subcommand.getSubcommands()) { + flatten(rootCommand, new ArrayList<>(prevArguments), subsubcommand); } } @@ -233,19 +235,13 @@ public void register() { } // Convert subcommands into multiliteral arguments - for (AbstractCommandAPICommand subcommand : new ArrayList<>(this.subcommands)) { - flatten(new AbstractCommandAPICommand(this), new ArrayList<>(), subcommand); + for (Impl subcommand : this.subcommands) { + flatten(this.copy(), new ArrayList<>(), subcommand); } } catch (CommandSyntaxException | IOException e) { e.printStackTrace(); } } - public AbstractCommandAPICommand(AbstractCommandAPICommand original) { - this(new CommandMetaData(original.meta)); - this.args = new ArrayList<>(original.args); - this.subcommands = new ArrayList<>(original.subcommands); - this.isConverted = original.isConverted; - } - + public abstract Impl copy(); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java index 7d1e8bb11a..24f4d30a2b 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java @@ -42,12 +42,13 @@ * executors) and switches its execution implementation based on the provided * command executor types. * - * @param a command sender + * @param The CommandSender for this executor + * @param The AbstractCommandSender that wraps the CommandSender */ -public class CustomCommandExecutor> { +public class CustomCommandExecutor> { - private List> normalExecutors; - private List> resultingExecutors; + private List> normalExecutors; + private List> resultingExecutors; public CustomCommandExecutor() { normalExecutors = new ArrayList<>(); @@ -55,16 +56,16 @@ public CustomCommandExecutor() { } @SuppressWarnings("unchecked") - public > void addNormalExecutor(S executor) { - this.normalExecutors.add((IExecutorNormal) executor); + public void addNormalExecutor(IExecutorNormal executor) { + this.normalExecutors.add((IExecutorNormal) executor); } @SuppressWarnings("unchecked") - public > void addResultingExecutor(S executor) { - this.resultingExecutors.add((IExecutorResulting) executor); + public void addResultingExecutor(IExecutorResulting executor) { + this.resultingExecutors.add((IExecutorResulting) executor); } - public int execute(AbstractCommandSender sender, Object[] arguments) throws CommandSyntaxException { + public int execute(WrapperType sender, Object[] arguments) throws CommandSyntaxException { // Parse executor type if (!resultingExecutors.isEmpty()) { @@ -90,7 +91,7 @@ public int execute(AbstractCommandSender sender, Object[] arguments) throws C } } - private int execute(List executors, AbstractCommandSender sender, Object[] args) + private int execute(List> executors, WrapperType sender, Object[] args) throws WrapperCommandSyntaxException { if (isForceNative()) { return execute(executors, sender, args, ExecutorType.NATIVE); @@ -114,9 +115,9 @@ private int execute(List executors, AbstractCommandSen } } - private int execute(List executors, AbstractCommandSender sender, Object[] args, + private int execute(List> executors, WrapperType sender, Object[] args, ExecutorType type) throws WrapperCommandSyntaxException { - for (IExecutorTyped executor : executors) { + for (IExecutorTyped executor : executors) { if (executor.getType() == type) { return executor.executeWith(sender, args); } @@ -124,11 +125,11 @@ private int execute(List executors, AbstractCommandSen throw new NoSuchElementException("Executor had no valid executors for type " + type.toString()); } - public List> getNormalExecutors() { + public List> getNormalExecutors() { return normalExecutors; } - public List> getResultingExecutors() { + public List> getResultingExecutors() { return resultingExecutors; } @@ -140,8 +141,8 @@ public boolean isForceNative() { return matches(normalExecutors, ExecutorType.NATIVE) || matches(resultingExecutors, ExecutorType.NATIVE); } - private boolean matches(List executors, ExecutorType type) { - for (IExecutorTyped executor : executors) { + private boolean matches(List> executors, ExecutorType type) { + for (IExecutorTyped executor : executors) { if (executor.getType() == type) { return true; } @@ -149,8 +150,8 @@ private boolean matches(List executors, ExecutorType t return false; } - CustomCommandExecutor mergeExecutor(CustomCommandExecutor executor) { - CustomCommandExecutor result = new CustomCommandExecutor<>(); + CustomCommandExecutor mergeExecutor(CustomCommandExecutor executor) { + CustomCommandExecutor result = new CustomCommandExecutor<>(); result.normalExecutors = new ArrayList<>(normalExecutors); result.resultingExecutors = new ArrayList<>(resultingExecutors); result.normalExecutors.addAll(executor.normalExecutors); @@ -158,11 +159,11 @@ CustomCommandExecutor mergeExecutor(CustomCommandExecutor executor) { return result; } - public void setNormalExecutors(List> normalExecutors) { + public void setNormalExecutors(List> normalExecutors) { this.normalExecutors = normalExecutors; } - public void setResultingExecutors(List> resultingExecutors) { + public void setResultingExecutors(List> resultingExecutors) { this.resultingExecutors = resultingExecutors; } } \ No newline at end of file diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java index 0e6c4c279b..c3a5bfba97 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java @@ -1,43 +1,28 @@ package dev.jorel.commandapi; -import java.util.ArrayList; - -import dev.jorel.commandapi.arguments.Argument; import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.executors.CommandBlockCommandExecutor; -import dev.jorel.commandapi.executors.CommandBlockResultingCommandExecutor; -import dev.jorel.commandapi.executors.CommandExecutor; -import dev.jorel.commandapi.executors.ConsoleCommandExecutor; -import dev.jorel.commandapi.executors.ConsoleResultingCommandExecutor; -import dev.jorel.commandapi.executors.EntityCommandExecutor; -import dev.jorel.commandapi.executors.EntityResultingCommandExecutor; -import dev.jorel.commandapi.executors.ExecutorType; -import dev.jorel.commandapi.executors.NativeCommandExecutor; -import dev.jorel.commandapi.executors.NativeResultingCommandExecutor; -import dev.jorel.commandapi.executors.PlayerCommandExecutor; -import dev.jorel.commandapi.executors.PlayerResultingCommandExecutor; -import dev.jorel.commandapi.executors.ProxyCommandExecutor; -import dev.jorel.commandapi.executors.ProxyResultingCommandExecutor; -import dev.jorel.commandapi.executors.ResultingCommandExecutor; +import dev.jorel.commandapi.arguments.Argument; + +import java.util.ArrayList; /** - * This class represents something that is executable. This is mostly, {@link CommandAPICommand} instances, or can also be {@link CommandTree} nodes and even {@link Argument} nodes in a tree + * This class represents something that is executable. This is mostly, {@link AbstractCommandAPICommand} instances, or can also be {@link CommandTree} nodes and even {@link Argument} nodes in a tree * - * @param return type for chain calls + * @param The class extending this class, used as the return type for chain calls + * @param The CommandSender class used by the class extending this class */ -abstract class Executable> { +abstract class Executable, CommandSender> { /** * The CustomCommandExecutor for this executable implementation */ - protected CustomCommandExecutor executor = new CustomCommandExecutor<>(); + protected CustomCommandExecutor> executor = new CustomCommandExecutor<>(); /** * Returns the executors that this command has * @return the executors that this command has */ - public CustomCommandExecutor getExecutor() { + public CustomCommandExecutor> getExecutor() { return executor; } @@ -45,7 +30,7 @@ public CustomCommandExecutor getExecutor() { * Sets the executors for this command * @param executor the executors for this command */ - public void setExecutor(CustomCommandExecutor executor) { + public void setExecutor(CustomCommandExecutor> executor) { this.executor = executor; } @@ -54,10 +39,10 @@ public void setExecutor(CustomCommandExecutor e * @return this command builder */ @SuppressWarnings("unchecked") - public T clearExecutors() { + public Impl clearExecutors() { this.executor.setNormalExecutors(new ArrayList<>()); this.executor.setResultingExecutors(new ArrayList<>()); - return (T) this; + return (Impl) this; } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java index 236eb5fd69..be20c553a0 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java @@ -6,14 +6,15 @@ import java.util.function.Predicate; /** - * This is a base class for {@link CommandAPICommand} and {@link CommandTree} command definitions + * This is a base class for {@link AbstractCommandAPICommand} and {@link CommandTree} command definitions * - * @param return type for chain calls + * @param The class extending this class, used as the return type for chain calls + * @param The CommandSender class used by the class extending this class */ -abstract class ExecutableCommand> extends Executable { +abstract class ExecutableCommand, CommandSender> extends Executable { /** - * The Command's meta data for this executable command + * The Command's meta-data for this executable command */ protected final CommandMetaData meta; @@ -39,9 +40,9 @@ public String getName() { * @return this command builder */ @SuppressWarnings("unchecked") - public T withPermission(CommandPermission permission) { + public Impl withPermission(CommandPermission permission) { this.meta.permission = permission; - return (T) this; + return (Impl) this; } /** @@ -50,9 +51,9 @@ public T withPermission(CommandPermission permission) { * @return this command builder */ @SuppressWarnings("unchecked") - public T withPermission(String permission) { + public Impl withPermission(String permission) { this.meta.permission = CommandPermission.fromString(permission); - return (T) this; + return (Impl) this; } /** @@ -61,9 +62,9 @@ public T withPermission(String permission) { * @return this command builder */ @SuppressWarnings("unchecked") - public T withoutPermission(CommandPermission permission) { + public Impl withoutPermission(CommandPermission permission) { this.meta.permission = permission.negate(); - return (T) this; + return (Impl) this; } /** @@ -72,9 +73,9 @@ public T withoutPermission(CommandPermission permission) { * @return this command builder */ @SuppressWarnings("unchecked") - public T withoutPermission(String permission) { + public Impl withoutPermission(String permission) { this.meta.permission = CommandPermission.fromString(permission).negate(); - return (T) this; + return (Impl) this; } /** @@ -86,9 +87,9 @@ public T withoutPermission(String permission) { * @return this command builder */ @SuppressWarnings("unchecked") - public T withRequirement(Predicate> requirement) { + public Impl withRequirement(Predicate> requirement) { this.meta.requirements = this.meta.requirements.and(requirement); - return (T) this; + return (Impl) this; } /** @@ -97,9 +98,9 @@ public T withRequirement(Predicate> requirement) { * @return this command builder */ @SuppressWarnings("unchecked") - public T withAliases(String... aliases) { + public Impl withAliases(String... aliases) { this.meta.aliases = aliases; - return (T) this; + return (Impl) this; } @@ -167,9 +168,9 @@ public String getShortDescription() { * @return this command builder */ @SuppressWarnings("unchecked") - public T withShortDescription(String description) { + public Impl withShortDescription(String description) { this.meta.shortDescription = Optional.ofNullable(description); - return (T) this; + return (Impl) this; } /** @@ -187,9 +188,9 @@ public String getFullDescription() { * @return this command builder */ @SuppressWarnings("unchecked") - public T withFullDescription(String description) { + public Impl withFullDescription(String description) { this.meta.fullDescription = Optional.ofNullable(description); - return (T) this; + return (Impl) this; } /** @@ -201,10 +202,10 @@ public T withFullDescription(String description) { * @return this command builder */ @SuppressWarnings("unchecked") - public T withHelp(String shortDescription, String fullDescription) { + public Impl withHelp(String shortDescription, String fullDescription) { this.meta.shortDescription = Optional.ofNullable(shortDescription); this.meta.fullDescription = Optional.ofNullable(fullDescription); - return (T) this; + return (Impl) this; } /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java index 3e012e672f..8c3de54beb 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java @@ -9,23 +9,36 @@ /** * A list of arguments which results in an execution. This is used for building branches in a {@link CommandTree} */ -record Execution(List> arguments, CustomCommandExecutor executor) { +public abstract class Execution { + + private final List> arguments; + private final CustomCommandExecutor> executor; + + public Execution(List> arguments, CustomCommandExecutor> executor) { + this.arguments = arguments; + this.executor = executor; + } /** - * Register a command with the given arguments and executor to brigadier, by converting it into a {@link CommandAPICommand} + * Register a command with the given arguments and executor to brigadier, by converting it into a {@link AbstractCommandAPICommand} + * * @param meta The metadata to register the command with */ public void register(CommandMetaData meta) { - AbstractCommandAPICommand command = new AbstractCommandAPICommand(meta).withArguments(arguments); + AbstractCommandAPICommand command = newConcreteCommandAPICommand(meta); + command.withArguments(arguments); command.setExecutor(executor); command.register(); } - public Execution prependedBy(Argument argument) { + protected abstract AbstractCommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta); + + public Execution prependedBy(Argument argument) { List> arguments = new ArrayList<>(); arguments.add(argument); - arguments.addAll(arguments()); - return new Execution(arguments, executor); + arguments.addAll(this.arguments); + return newConcreteExecution(arguments, executor); } + protected abstract Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java index 6418f42ae4..05534e61b3 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java @@ -26,9 +26,10 @@ /** * The interface for normal command executors - * @param the commandsender + * @param The CommandSender for this executor + * @param The AbstractCommandSender that wraps the CommandSender */ -public interface IExecutorNormal> extends IExecutorTyped { +public interface IExecutorNormal> extends IExecutorTyped { /** * Executes the command executor with the provided command sender and the provided arguments. @@ -38,7 +39,7 @@ public interface IExecutorNormal> extends * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ @Override - default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + default int executeWith(WrapperType sender, Object[] args) throws WrapperCommandSyntaxException { this.run(sender.getSource(), args); return 1; } @@ -49,6 +50,6 @@ default int executeWith(AbstractCommandSender sender, Object[] args) throws W * @param args the arguments provided to this command * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - void run(K sender, Object[] args) throws WrapperCommandSyntaxException; + void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java index ff69c79aa2..4a3a504fbd 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java @@ -26,9 +26,10 @@ /** * The interface for resulting command executors - * @param the commandsender + * @param The CommandSender for this executor + * @param The AbstractCommandSender that wraps the CommandSender */ -public interface IExecutorResulting> extends IExecutorTyped { +public interface IExecutorResulting> extends IExecutorTyped { /** * Executes the command executor with the provided command sender and the provided arguments. @@ -38,7 +39,7 @@ public interface IExecutorResulting> exten * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ @Override - default int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + default int executeWith(WrapperType sender, Object[] args) throws WrapperCommandSyntaxException { return this.run(sender.getSource(), args); } @@ -49,6 +50,6 @@ default int executeWith(AbstractCommandSender sender, Object[] args) throws W * @return the value returned by this command * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - int run(K sender, Object[] args) throws WrapperCommandSyntaxException; + int run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java index 01535c081d..8be5590311 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java @@ -27,8 +27,9 @@ * An interface that includes the type of an executor (what command senders it * can execute) and has a method that executes an executor with a given command * sender and arguments + * @param The AbstractCommandSenderClass for this executor */ -public interface IExecutorTyped { +public interface IExecutorTyped> { /** * Returns the type of the sender of the current executor. @@ -45,6 +46,6 @@ default ExecutorType getType() { * @return the value returned by this command if the command succeeds, 0 if the command fails * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - int executeWith(AbstractCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; + int executeWith(WrapperType sender, Object[] args) throws WrapperCommandSyntaxException; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index c980d3e8c0..fd9780cdff 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -346,7 +346,7 @@ public void onDisable() { @Unimplemented(because = REQUIRES_CRAFTBUKKIT) public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); - public AbstractCommandSender wrapCommandSender(CommandSender sender) { + public BukkitCommandSender wrapCommandSender(CommandSender sender) { if (sender instanceof BlockCommandSender block) return new BukkitBlockCommandSender(block); if (sender instanceof ConsoleCommandSender console) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index f2b9284957..7aedf327c7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -19,11 +19,9 @@ import dev.jorel.commandapi.executors.ProxyResultingCommandExecutor; import dev.jorel.commandapi.executors.ResultingCommandExecutor; -public class CommandAPICommand extends AbstractCommandAPICommand { +import java.util.ArrayList; - public CommandAPICommand(CommandAPICommand original) { - super(original); - } +public class CommandAPICommand extends AbstractCommandAPICommand { public CommandAPICommand(CommandMetaData meta) { super(meta); @@ -32,8 +30,15 @@ public CommandAPICommand(CommandMetaData meta) { public CommandAPICommand(String commandName) { super(commandName); } - + @Override + public CommandAPICommand copy() { + CommandAPICommand command = new CommandAPICommand(new CommandMetaData(this.meta)); + command.args = new ArrayList<>(this.args); + command.subcommands = new ArrayList<>(this.subcommands); + command.isConverted = this.isConverted; + return command; + } // Regular command executor @@ -43,7 +48,6 @@ public CommandAPICommand(String commandName) { * @param types A list of executor types to use this executes method for. * @return this command builder */ - @SuppressWarnings("unchecked") public CommandAPICommand executes(CommandExecutor executor, ExecutorType... types) { if(types == null || types.length == 0) { this.executor.addNormalExecutor(executor); @@ -53,7 +57,7 @@ public CommandAPICommand executes(CommandExecutor executor, ExecutorType... type @Override public void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - executor.executeWith(sender, args); + executor.executeWith(BukkitPlatform.get().wrapCommandSender(sender), args); } @Override @@ -72,7 +76,6 @@ public ExecutorType getType() { * @param types A list of executor types to use this executes method for. * @return this command builder */ - @SuppressWarnings("unchecked") public CommandAPICommand executes(ResultingCommandExecutor executor, ExecutorType... types) { if(types == null || types.length == 0) { this.executor.addResultingExecutor(executor); @@ -82,7 +85,7 @@ public CommandAPICommand executes(ResultingCommandExecutor executor, ExecutorTyp @Override public int run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - return executor.executeWith(sender, args); + return executor.executeWith(BukkitPlatform.get().wrapCommandSender(sender), args); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java index a507de00ec..bf8643e601 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java @@ -29,7 +29,7 @@ * A normal command executor for a CommandSender */ @FunctionalInterface -public interface CommandExecutor extends IExecutorNormal> { +public interface CommandExecutor extends IExecutorNormal> { /** * The code to run when this command is performed diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java index 6b8d6e2f21..c4d5dbdb4b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java @@ -29,7 +29,7 @@ * A resulting command executor for a CommandSender */ @FunctionalInterface -public interface ResultingCommandExecutor extends IExecutorResulting> { +public interface ResultingCommandExecutor extends IExecutorResulting> { /** * The code to run when this command is performed From bb69e915482dff951522a92254c7c61407fd3fd1 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 21 Oct 2022 17:25:41 -0400 Subject: [PATCH 059/638] Fix CommandTree, fix command registration --- .../commandapi/AbstractArgumentTree.java | 71 ++++++ .../commandapi/AbstractCommandAPICommand.java | 29 +-- .../jorel/commandapi/AbstractCommandTree.java | 54 +++++ .../dev/jorel/commandapi/ArgumentTree.java | 68 ------ .../dev/jorel/commandapi/BaseHandler.java | 110 +++++----- .../java/dev/jorel/commandapi/Brigadier.java | 15 +- .../java/dev/jorel/commandapi/CommandAPI.java | 4 +- .../commandapi/CommandAPIVersionHandler.java | 2 +- .../dev/jorel/commandapi/CommandTree.java | 49 ----- .../java/dev/jorel/commandapi/Executable.java | 8 +- .../jorel/commandapi/ExecutableCommand.java | 2 +- .../java/dev/jorel/commandapi/Execution.java | 14 +- .../jorel/commandapi/RegisteredCommand.java | 2 - .../abstractions/AbstractPlatform.java | 23 +- ...ment.java => AbstractBooleanArgument.java} | 6 +- ...ument.java => AbstractDoubleArgument.java} | 12 +- ...gument.java => AbstractFloatArgument.java} | 10 +- ...java => AbstractGreedyStringArgument.java} | 6 +- ...ment.java => AbstractIntegerArgument.java} | 10 +- ...ment.java => AbstractLiteralArgument.java} | 6 +- ...rgument.java => AbstractLongArgument.java} | 10 +- ...java => AbstractMultiLiteralArgument.java} | 6 +- ...ument.java => AbstractStringArgument.java} | 6 +- ...rgument.java => AbstractTextArgument.java} | 6 +- .../jorel/commandapi/arguments/Argument.java | 30 +-- .../commandapi/arguments/IPreviewable.java | 2 +- .../commandapi/arguments/PreviewInfo.java | 2 +- .../arguments/SafeOverrideableArgument.java | 14 +- .../exceptions/GreedyArgumentException.java | 8 +- .../dev/jorel/commandapi/BukkitExecution.java | 23 ++ .../dev/jorel/commandapi/BukkitExecutor.java | 201 +++++++++++++++++ .../dev/jorel/commandapi/BukkitPlatform.java | 21 +- .../jorel/commandapi/CommandAPICommand.java | 206 +----------------- .../dev/jorel/commandapi/CommandTree.java | 27 +++ .../java/dev/jorel/commandapi/Converter.java | 22 +- .../arguments/AdvancementArgument.java | 10 +- .../arguments/AdventureChatArgument.java | 15 +- .../AdventureChatComponentArgument.java | 6 +- .../commandapi/arguments/AngleArgument.java | 5 +- .../commandapi/arguments/AxisArgument.java | 5 +- .../commandapi/arguments/BiomeArgument.java | 5 +- .../arguments/BlockPredicateArgument.java | 5 +- .../arguments/BlockStateArgument.java | 5 +- .../commandapi/arguments/BooleanArgument.java | 39 ++++ .../commandapi/arguments/ChatArgument.java | 4 +- .../arguments/ChatColorArgument.java | 5 +- .../arguments/ChatComponentArgument.java | 5 +- .../commandapi/arguments/CustomArgument.java | 20 +- .../commandapi/arguments/DoubleArgument.java | 61 ++++++ .../arguments/EnchantmentArgument.java | 5 +- .../arguments/EntitySelectorArgument.java | 5 +- .../arguments/EntityTypeArgument.java | 5 +- .../arguments/EnvironmentArgument.java | 5 +- .../commandapi/arguments/FloatArgument.java | 63 ++++++ .../arguments/FloatRangeArgument.java | 5 +- .../arguments/FunctionArgument.java | 5 +- .../arguments/GreedyStringArgument.java | 37 ++++ .../commandapi/arguments/IntegerArgument.java | 59 +++++ .../arguments/IntegerRangeArgument.java | 5 +- .../arguments/ItemStackArgument.java | 5 +- .../arguments/ItemStackPredicateArgument.java | 5 +- .../commandapi/arguments/ListArgument.java | 6 +- .../commandapi/arguments/LiteralArgument.java | 37 ++++ .../arguments/Location2DArgument.java | 5 +- .../arguments/LocationArgument.java | 5 +- .../commandapi/arguments/LongArgument.java | 58 +++++ .../arguments/LootTableArgument.java | 5 +- .../arguments/MathOperationArgument.java | 5 +- .../arguments/MultiLiteralArgument.java | 32 +++ .../arguments/NBTCompoundArgument.java | 5 +- .../arguments/NamespacedKeyArgument.java | 5 +- .../arguments/ObjectiveArgument.java | 5 +- .../arguments/ObjectiveCriteriaArgument.java | 5 +- .../arguments/OfflinePlayerArgument.java | 5 +- .../arguments/ParticleArgument.java | 5 +- .../commandapi/arguments/PlayerArgument.java | 5 +- .../arguments/PotionEffectArgument.java | 5 +- .../commandapi/arguments/RecipeArgument.java | 5 +- .../arguments/RotationArgument.java | 5 +- .../arguments/ScoreHolderArgument.java | 5 +- .../arguments/ScoreboardSlotArgument.java | 5 +- .../commandapi/arguments/SoundArgument.java | 5 +- .../commandapi/arguments/StringArgument.java | 37 ++++ .../commandapi/arguments/TeamArgument.java | 5 +- .../commandapi/arguments/TextArgument.java | 37 ++++ .../commandapi/arguments/TimeArgument.java | 5 +- .../commandapi/arguments/UUIDArgument.java | 5 +- .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 4 +- .../dev/jorel/commandapi/nms/NMS_1_13_2.java | 5 +- .../dev/jorel/commandapi/nms/NMS_1_13.java | 4 +- .../dev/jorel/commandapi/nms/NMS_1_14.java | 5 +- .../dev/jorel/commandapi/nms/NMS_1_15.java | 5 +- .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 5 +- .../dev/jorel/commandapi/nms/NMS_1_16_R2.java | 5 +- .../jorel/commandapi/nms/NMS_1_16_4_R3.java | 5 +- .../jorel/commandapi/nms/NMS_1_17_Common.java | 5 +- .../dev/jorel/commandapi/nms/NMS_1_18_R2.java | 5 +- .../dev/jorel/commandapi/nms/NMS_1_18_R1.java | 5 +- .../jorel/commandapi/nms/NMS_1_19_Common.java | 5 +- .../dev/jorel/commandapi/nms/NMS_Common.java | 2 +- .../commandapi/CommandAPIVersionHandler.java | 2 +- .../dev/jorel/commandapi/test/MockNMS.java | 4 +- .../commandapi/test/CustomServerMock.java | 5 +- .../commandapi/CommandAPIVersionHandler.java | 2 +- 104 files changed, 1218 insertions(+), 641 deletions(-) create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/CommandTree.java rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/{BooleanArgument.java => AbstractBooleanArgument.java} (86%) rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/{DoubleArgument.java => AbstractDoubleArgument.java} (85%) rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/{FloatArgument.java => AbstractFloatArgument.java} (88%) rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/{GreedyStringArgument.java => AbstractGreedyStringArgument.java} (87%) rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/{IntegerArgument.java => AbstractIntegerArgument.java} (87%) rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/{LiteralArgument.java => AbstractLiteralArgument.java} (91%) rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/{LongArgument.java => AbstractLongArgument.java} (88%) rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/{MultiLiteralArgument.java => AbstractMultiLiteralArgument.java} (90%) rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/{StringArgument.java => AbstractStringArgument.java} (89%) rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/{TextArgument.java => AbstractTextArgument.java} (90%) create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutor.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java new file mode 100644 index 0000000000..22221dc7ae --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java @@ -0,0 +1,71 @@ +package dev.jorel.commandapi; + +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.arguments.Argument; + +import java.util.ArrayList; +import java.util.List; + +/** + * This is a base class for arguments, allowing them to behave as tree nodes in + * a {@link AbstractCommandTree} + * @param The CommandSender class used by the class extending this class + */ +public abstract class AbstractArgumentTree extends Executable, CommandSender> { + + final List> arguments = new ArrayList<>(); + final Argument argument; + + /** + * Instantiates an {@link AbstractArgumentTree}. This can only be called if the class + * that extends this is an {@link Argument} + */ + protected AbstractArgumentTree() { + if (!(this instanceof Argument argument)) { + throw new IllegalArgumentException("Implicit inherited constructor must be from Argument"); + } + this.argument = argument; + } + + /** + * Instantiates an {@link AbstractArgumentTree} with an underlying argument. + * + * @param argument the argument to use as the underlying argument for this + * argument tree + */ + public AbstractArgumentTree(final Argument argument) { + this.argument = argument; + // Copy the executor in case any executions were defined on the argument + this.executor = argument.executor; + } + + /** + * Create a child branch on this node + * + * @param tree The child branch + * @return this tree node + */ + public AbstractArgumentTree then(final AbstractArgumentTree tree) { + this.arguments.add(tree); + return this; + } + + List> getExecutions() { + List> executions = new ArrayList<>(); + // If this is executable, add its execution + if (this.executor.hasAnyExecutors()) { + // Cast platform to make it realize we're using the same CommandSender + AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + executions.add(platform.newConcreteExecution(List.of(this.argument), this.executor)); + } + // Add all executions from all arguments + for (AbstractArgumentTree tree : arguments) { + for (Execution execution : tree.getExecutions()) { + // Prepend this argument to the arguments of the executions + executions.add(execution.prependedBy(this.argument)); + } + } + return executions; + } +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index 1974be028b..3b70a2eefd 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -27,9 +27,9 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.arguments.AbstractMultiLiteralArgument; import dev.jorel.commandapi.arguments.Argument; import dev.jorel.commandapi.arguments.IGreedyArgument; -import dev.jorel.commandapi.arguments.MultiLiteralArgument; import dev.jorel.commandapi.exceptions.GreedyArgumentException; /** @@ -39,7 +39,7 @@ */ public abstract class AbstractCommandAPICommand, CommandSender> extends ExecutableCommand { - protected List> args = new ArrayList<>(); + protected List> args = new ArrayList<>(); protected List subcommands = new ArrayList<>(); protected boolean isConverted; @@ -70,7 +70,7 @@ protected AbstractCommandAPICommand(CommandMetaData metaData) { * command can accept * @return this command builder */ - public Impl withArguments(List> args) { + public Impl withArguments(List> args) { this.args.addAll(args); return (Impl) this; } @@ -81,7 +81,7 @@ public Impl withArguments(List> args) { * @param args Arguments that this command can accept * @return this command builder */ - public Impl withArguments(Argument... args) { + public Impl withArguments(Argument... args) { this.args.addAll(Arrays.asList(args)); return (Impl) this; } @@ -113,7 +113,7 @@ public Impl withSubcommands(Impl... subcommands) { * * @return the list of arguments that this command has */ - public List> getArguments() { + public List> getArguments() { return args; } @@ -122,7 +122,7 @@ public List> getArguments() { * * @param args the arguments that this command has */ - public void setArguments(List> args) { + public void setArguments(List> args) { this.args = args; } @@ -170,7 +170,7 @@ Impl setConverted(boolean isConverted) { // shouldn't // be accessing/depending on any of the contents of the current class instance) private static , CommandSender> - void flatten(Impl rootCommand, List> prevArguments, Impl subcommand) { + void flatten(Impl rootCommand, List> prevArguments, Impl subcommand) { // Get the list of literals represented by the current subcommand. This // includes the subcommand's name and any aliases for this subcommand String[] literals = new String[subcommand.meta.aliases.length + 1]; @@ -178,12 +178,13 @@ void flatten(Impl rootCommand, List> prevArguments, Impl subcommand) System.arraycopy(subcommand.meta.aliases, 0, literals, 1, subcommand.meta.aliases.length); // Create a MultiLiteralArgument using the subcommand information - MultiLiteralArgument literal = (MultiLiteralArgument) new MultiLiteralArgument(literals) - .withPermission(subcommand.meta.permission) + AbstractMultiLiteralArgument literal = BaseHandler.getInstance().getPlatform().newConcreteMultiLiteralArgument(literals); + + literal.withPermission(subcommand.meta.permission) .withRequirement(subcommand.meta.requirements) .setListed(false); - prevArguments.add(literal); + prevArguments.add((Argument) literal); if (subcommand.executor.hasAnyExecutors()) { // Create the new command. The new command: @@ -211,7 +212,7 @@ public void register() { CommandAPI.logWarning("Command /" + meta.commandName + " is being registered after the server had loaded. Undefined behavior ahead!"); } try { - Argument[] argumentsArr = args == null ? new Argument[0] : args.toArray(new Argument[0]); + Argument[] argumentsArr = args == null ? new Argument[0] : args.toArray(Argument[]::new); // Check IGreedyArgument constraints for (int i = 0, numGreedyArgs = 0; i < argumentsArr.length; i++) { @@ -224,14 +225,16 @@ public void register() { // Assign the command's permissions to arguments if the arguments don't already // have one - for (Argument argument : argumentsArr) { + for (Argument argument : argumentsArr) { if (argument.getArgumentPermission() == null) { argument.withPermission(meta.permission); } } if (executor.hasAnyExecutors()) { - BaseHandler.getInstance().register(meta, argumentsArr, executor, isConverted); + // Need to cast handler to the right CommandSender type so that argumentsArr and executor are accepted + BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + handler.register(meta, argumentsArr, executor, isConverted); } // Convert subcommands into multiliteral arguments diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java new file mode 100644 index 0000000000..5963bd533f --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java @@ -0,0 +1,54 @@ +package dev.jorel.commandapi; + +import dev.jorel.commandapi.abstractions.AbstractPlatform; + +import java.util.ArrayList; +import java.util.List; + +/** + * This is the root node for creating a command as a tree + * @param The class extending this class, used as the return type for chain calls + * @param The CommandSender class used by the class extending this class + */ +public abstract class AbstractCommandTree, CommandSender> extends ExecutableCommand { + + private final List> arguments = new ArrayList<>(); + + /** + * Creates a main root node for a command tree with a given command name + * + * @param commandName The name of the command to create + */ + public AbstractCommandTree(final String commandName) { + super(commandName); + } + + /** + * Create a child branch on the tree + * + * @param tree the child node + * @return this root node + */ + public Impl then(final AbstractArgumentTree tree) { + this.arguments.add(tree); + return (Impl) this; + } + + /** + * Registers the command + */ + public void register() { + List> executions = new ArrayList<>(); + if (this.executor.hasAnyExecutors()) { + // Cast platform so that it realizes we're using the same CommandSender and executor is accepted + AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + executions.add(platform.newConcreteExecution(new ArrayList<>(), this.executor)); + } + for (AbstractArgumentTree tree : arguments) { + executions.addAll(tree.getExecutions()); + } + for (Execution execution : executions) { + execution.register(this.meta); + } + } +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java deleted file mode 100644 index ef7c84f318..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/ArgumentTree.java +++ /dev/null @@ -1,68 +0,0 @@ -package dev.jorel.commandapi; - -import dev.jorel.commandapi.arguments.Argument; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -/** - * This is a base class for arguments, allowing them to behave as tree nodes in - * a {@link CommandTree} - */ -public class ArgumentTree extends Executable { - - final List arguments = new ArrayList<>(); - final Argument argument; - - /** - * Instantiates an {@link ArgumentTree}. This can only be called if the class - * that extends this is an {@link Argument} - */ - protected ArgumentTree() { - if (!(this instanceof Argument argument)) { - throw new IllegalArgumentException("Implicit inherited constructor must be from Argument"); - } - this.argument = argument; - } - - /** - * Instantiates an {@link ArgumentTree} with an underlying argument. - * - * @param argument the argument to use as the underlying argument for this - * argument tree - */ - public ArgumentTree(final Argument argument) { - this.argument = argument; - // Copy the executor in case any executions were defined on the argument - this.executor = argument.executor; - } - - /** - * Create a child branch on this node - * - * @param tree The child branch - * @return this tree node - */ - public ArgumentTree then(final ArgumentTree tree) { - this.arguments.add(tree); - return this; - } - - List getExecutions() { - List executions = new ArrayList<>(); - // If this is executable, add its execution - if (this.executor.hasAnyExecutors()) { - executions.add(new Execution(Arrays.asList(this.argument), this.executor)); - } - // Add all executions from all arguments - for (ArgumentTree tree : arguments) { - for (Execution execution : tree.getExecutions()) { - // Prepend this argument to the arguments of the executions - executions.add(execution.prependedBy(this.argument)); - } - } - return executions; - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 08b7ea9e7b..72af11ece9 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -32,18 +32,11 @@ import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.abstractions.AbstractPlatform; -import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.ArgumentSuggestions; -import dev.jorel.commandapi.arguments.ICustomProvidedArgument; -import dev.jorel.commandapi.arguments.IPreviewable; -import dev.jorel.commandapi.arguments.LiteralArgument; -import dev.jorel.commandapi.arguments.MultiLiteralArgument; -import dev.jorel.commandapi.arguments.PreviewInfo; +import dev.jorel.commandapi.arguments.*; import dev.jorel.commandapi.preprocessor.RequireField; import dev.jorel.commandapi.wrappers.PreviewableFunction; -// The "brains" behind the CommandAPI. -// Handles command registration + // For all intents and purposes (all platforms), we can use all of // Brigadier's API (definitely the case for Spigot/Paper and Velocity). @@ -52,8 +45,15 @@ // and I'm not sure if we can use the Adventure API on Fabric, so let's // assume we can't until we figure that out. +/** + * The "brains" behind the CommandAPI. + * Handles command registration + * + * @param The class for running platform commands + * @param The class for running Brigadier commands + */ @RequireField(in = CommandContext.class, name = "arguments", ofType = Map.class) -public class BaseHandler { +public class BaseHandler { // TODO: Figure out what here gets moved to the common implementation and what // is platform-specific @@ -96,14 +96,13 @@ public static String getRawArgumentInput(CommandContext FIELDS = new HashMap<>(); final TreeMap PERMISSIONS_TO_FIX = new TreeMap<>(); - protected final AbstractPlatform platform; // Access strictly via getPlatform() method which can be overridden + protected final AbstractPlatform platform; // Access strictly via getPlatform() method which can be overridden final List registeredCommands; // Keep track of what has been registered for type checking - final Map, IPreviewable, ?>> previewableArguments; // Arguments with previewable chat + final Map, IPreviewable> previewableArguments; // Arguments with previewable chat - private static BaseHandler instance; + private static BaseHandler instance; - // TODO: Wait, how do we instantiate this? - protected BaseHandler(AbstractPlatform platform) { + protected BaseHandler(AbstractPlatform platform) { this.platform = platform; this.registeredCommands = new ArrayList<>(); this.previewableArguments = new HashMap<>(); @@ -145,11 +144,11 @@ public void onDisable() { instance = null; } - public static BaseHandler getInstance() { + public static BaseHandler getInstance() { return instance; } - public AbstractPlatform getPlatform() { + public AbstractPlatform getPlatform() { return this.platform; } @@ -163,11 +162,11 @@ public AbstractPlatform getPlatform() { * @return a brigadier command which is registered internally * @throws CommandSyntaxException if an error occurs when the command is ran */ - Command generateCommand(Argument[] args, CustomCommandExecutor executor, boolean converted) throws CommandSyntaxException { + Command generateCommand(Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException { // Generate our command from executor return (cmdCtx) -> { - AbstractCommandSender sender = platform.getSenderForCommand(cmdCtx, executor.isForceNative()); + AbstractCommandSender sender = platform.getSenderForCommand(cmdCtx, executor.isForceNative()); if (converted) { Object[] argObjs = argsToObjectArr(cmdCtx, args); int resultValue = 0; @@ -214,13 +213,13 @@ Command generateCommand(Argument[] args, CustomCommandExecutor exe * @return an Object[] which can be used in (sender, args) -> * @throws CommandSyntaxException when an argument isn't formatted correctly */ - Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) + Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) throws CommandSyntaxException { // Array for arguments for executor List argList = new ArrayList<>(); // Populate array - for (Argument argument : args) { + for (Argument argument : args) { if (argument.isListed()) { argList.add(parseArgument(cmdCtx, argument.getNodeName(), argument, argList.toArray())); } @@ -238,7 +237,7 @@ Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) * @return the standard Bukkit type * @throws CommandSyntaxException when an argument isn't formatted correctly */ - Object parseArgument(CommandContext cmdCtx, String key, Argument value, + Object parseArgument(CommandContext cmdCtx, String key, Argument value, Object[] previousArgs) throws CommandSyntaxException { if (value.isListed()) { return value.parseArgument(platform, cmdCtx, key, previousArgs); @@ -329,23 +328,24 @@ static boolean permissionCheck(AbstractCommandSender sender, CommandPermissio * multiliteral arguments were present (and expanded) and returns false if * multiliteral arguments were not present. */ - private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, CustomCommandExecutor executor, boolean converted) + private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals for (int index = 0; index < args.length; index++) { // Find the first multiLiteral in the for loop - if (args[index] instanceof MultiLiteralArgument superArg) { + if (args[index] instanceof AbstractMultiLiteralArgument superArg) { // Add all of its entries for (int i = 0; i < superArg.getLiterals().length; i++) { - LiteralArgument litArg = (LiteralArgument) new LiteralArgument(superArg.getLiterals()[i]) - .setListed(superArg.isListed()).withPermission(superArg.getArgumentPermission()) - .withRequirement(superArg.getRequirements()); + AbstractLiteralArgument litArg = BaseHandler.getInstance().getPlatform().newConcreteLiteralArgument(superArg.getLiterals()[i]); + litArg.setListed(superArg.isListed()) + .withPermission(superArg.getArgumentPermission()) + .withRequirement(superArg.getRequirements()); // Reconstruct the list of arguments and place in the new literals - Argument[] newArgs = Arrays.copyOf(args, args.length); - newArgs[index] = litArg; + Argument[] newArgs = Arrays.copyOf(args, args.length); + newArgs[index] = (Argument) litArg; register(meta, newArgs, executor, converted); } return true; @@ -358,7 +358,7 @@ private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] ar // allow /race invite player // disallow /race invite player // Return true if conflict was present, otherwise return false - private boolean hasCommandConflict(String commandName, Argument[] args, String argumentsAsString) { + private boolean hasCommandConflict(String commandName, Argument[] args, String argumentsAsString) { List regArgs = new ArrayList<>(); for (RegisteredCommand rCommand : registeredCommands) { if (rCommand.commandName().equals(commandName)) { @@ -409,11 +409,11 @@ private boolean hasCommandConflict(String commandName, Argument[] args, Strin // Links arg -> Executor private ArgumentBuilder generateInnerArgument(Command command, - Argument[] args) { - Argument innerArg = args[args.length - 1]; + Argument[] args) { + Argument innerArg = args[args.length - 1]; // Handle Literal arguments - if (innerArg instanceof LiteralArgument literalArgument) { + if (innerArg instanceof AbstractLiteralArgument literalArgument) { return getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), innerArg.getArgumentPermission(), innerArg.getRequirements()).executes(command); } @@ -432,14 +432,13 @@ else if (innerArg instanceof ICustomProvidedArgument customProvidedArg } // Links arg1 -> arg2 -> ... argN -> innermostArgument - private ArgumentBuilder generateOuterArguments( - ArgumentBuilder innermostArgument, Argument[] args) { + private ArgumentBuilder generateOuterArguments(ArgumentBuilder innermostArgument, Argument[] args) { ArgumentBuilder outer = innermostArgument; for (int i = args.length - 2; i >= 0; i--) { - Argument outerArg = args[i]; + Argument outerArg = args[i]; // Handle Literal arguments - if (outerArg instanceof LiteralArgument literalArgument) { + if (outerArg instanceof AbstractLiteralArgument literalArgument) { outer = getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), outerArg.getArgumentPermission(), outerArg.getRequirements()).then(outer); } @@ -467,12 +466,12 @@ else if (outerArg instanceof ICustomProvidedArgument customProvidedArg * @param args the declared arguments * @param aliases the command's aliases */ - private void handlePreviewableArguments(String commandName, Argument[] args, String[] aliases) { + private void handlePreviewableArguments(String commandName, Argument[] args, String[] aliases) { if (args.length > 0 && args[args.length - 1] instanceof IPreviewable previewable) { List path = new ArrayList<>(); path.add(commandName); - for (Argument arg : args) { + for (Argument arg : args) { path.add(arg.getNodeName()); } previewableArguments.put(List.copyOf(path), previewable); @@ -487,7 +486,7 @@ private void handlePreviewableArguments(String commandName, Argument[] args, // Builds our platform command using the given arguments for this method, then // registers it - void register(CommandMetaData meta, final Argument[] args, CustomCommandExecutor executor, boolean converted) + void register(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals @@ -499,7 +498,7 @@ void register(CommandMetaData meta, final Argument[] args, CustomCommandExecu final String humanReadableCommandArgSyntax; { StringBuilder builder = new StringBuilder(); - for (Argument arg : args) { + for (Argument arg : args) { builder.append(arg.toString()).append(" "); } humanReadableCommandArgSyntax = builder.toString().trim(); @@ -509,10 +508,9 @@ void register(CommandMetaData meta, final Argument[] args, CustomCommandExecu // required arguments (i.e. not literal arguments) { Set argumentNames = new HashSet<>(); - for (Argument arg : args) { - // We shouldn't find MultiLiteralArguments at this point, only - // LiteralArguments - if (!(arg instanceof LiteralArgument)) { + for (Argument arg : args) { + // We shouldn't find MultiLiteralArguments at this point, only LiteralArguments + if (!(arg instanceof AbstractLiteralArgument)) { if (argumentNames.contains(arg.getNodeName())) { CommandAPI.logError(""" Failed to register command: @@ -548,7 +546,7 @@ void register(CommandMetaData meta, final Argument[] args, CustomCommandExecu return; } else { List argumentsString = new ArrayList<>(); - for (Argument arg : args) { + for (Argument arg : args) { argumentsString.add(arg.getNodeName() + ":" + arg.getClass().getSimpleName()); } registeredCommands.add(new RegisteredCommand(commandName, argumentsString, shortDescription, @@ -648,8 +646,8 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandN } // Gets a RequiredArgumentBuilder for a DynamicSuggestedStringArgument - RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, - Argument argument) { + RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, + Argument argument) { final SuggestionProvider suggestions; @@ -666,8 +664,8 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandN } // Gets a RequiredArgumentBuilder for an argument, given a SuggestionProvider - RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, - Argument[] args, SuggestionProvider provider) { + RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, + Argument[] args, SuggestionProvider provider) { SuggestionProvider newSuggestionsProvider = provider; // If we have suggestions to add, combine provider with the suggestions @@ -699,13 +697,13 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandN argument.getArgumentPermission(), argument.getRequirements())).suggests(newSuggestionsProvider); } - Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) + Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) throws CommandSyntaxException { // Populate Object[], which is our previously filled arguments List previousArguments = new ArrayList<>(); - for (Argument arg : args) { - if (arg.getNodeName().equals(nodeName) && !(arg instanceof LiteralArgument)) { + for (Argument arg : args) { + if (arg.getNodeName().equals(nodeName) && !(arg instanceof AbstractLiteralArgument)) { break; } @@ -730,7 +728,7 @@ Object[] generatePreviousArguments(CommandContext context, Argument[] return previousArguments.toArray(); } - SuggestionProvider toSuggestions(Argument theArgument, Argument[] args, + SuggestionProvider toSuggestions(Argument theArgument, Argument[] args, boolean overrideSuggestions) { return (CommandContext context, SuggestionsBuilder builder) -> { // Construct the suggestion info @@ -759,7 +757,7 @@ SuggestionProvider toSuggestions(Argument theArgument, Argument[] * return a function that always returns null. */ public Optional> lookupPreviewable(List path) { - final IPreviewable, ?> previewable = previewableArguments.get(path); + final IPreviewable previewable = previewableArguments.get(path); if (previewable != null && previewable.getPreview().isPresent()) { // Yeah, don't even question this logic of getting the value of an // optional and then wrapping it in an optional again. Java likes it @@ -777,7 +775,7 @@ public Optional> lookupPreviewable(List path) { * @return Whether a previewable is legacy (non-Adventure) or not */ public boolean lookupPreviewableLegacyStatus(List path) { - final IPreviewable, ?> previewable = previewableArguments.get(path); + final IPreviewable previewable = previewableArguments.get(path); if (previewable != null && previewable.getPreview().isPresent()) { return previewable.isLegacy(); } else { diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index 0be25387a7..ba4ce0fdf9 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -35,8 +35,8 @@ import com.mojang.brigadier.tree.RootCommandNode; import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.arguments.AbstractLiteralArgument; import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.LiteralArgument; /** * The Brigadier class is used to access some of the internals of the CommandAPI @@ -81,7 +81,7 @@ public static RootCommandNode getRootNode() { * @param literalArgument the LiteralArgument to convert from * @return a LiteralArgumentBuilder that represents the literal */ - public static LiteralArgumentBuilder fromLiteralArgument(LiteralArgument literalArgument) { + public static LiteralArgumentBuilder fromLiteralArgument(AbstractLiteralArgument literalArgument) { return BaseHandler.getInstance().getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), literalArgument.getArgumentPermission(), literalArgument.getRequirements()); } @@ -118,10 +118,11 @@ public static RedirectModifier fromPredicate(BiPredicate Command fromCommand(AbstractCommandAPICommand command) { try { - return BaseHandler.getInstance().generateCommand(command.getArguments().toArray(new Argument[0]), - command.getExecutor(), command.isConverted()); + // Need to cast base handler to make it realize we're using the same CommandSender class + BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + return handler.generateCommand(command.getArguments().toArray(new Argument[0]), command.getExecutor(), command.isConverted()); } catch (CommandSyntaxException e) { e.printStackTrace(); } @@ -146,7 +147,7 @@ public static Command fromCommand(CommandAPICommand command) { * @param argument the argument you want to specify * @return a RequiredArgumentBuilder that represents the provided argument */ - public static RequiredArgumentBuilder fromArgument(List args, Argument argument) { + public static RequiredArgumentBuilder fromArgument(List args, Argument argument) { return BaseHandler.getInstance().getRequiredArgumentBuilderDynamic(args.toArray(new Argument[0]), argument); } @@ -169,7 +170,7 @@ public static RequiredArgumentBuilder fromArgument(Argument argument) { * @return a SuggestionProvider that suggests the overridden suggestions for the * specified argument */ - public static SuggestionProvider toSuggestions(Argument argument, List args) { + public static SuggestionProvider toSuggestions(Argument argument, List args) { return BaseHandler.getInstance().toSuggestions(argument, args.toArray(new Argument[0]), true); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 7dba22aede..54bf884a2b 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -125,7 +125,7 @@ public static void onLoad(CommandAPIConfig config, CommandAPILogger logger) { CommandAPI.logger = logger; // Initialize handlers - AbstractPlatform platform = CommandAPIVersionHandler.getPlatform(); + AbstractPlatform platform = CommandAPIVersionHandler.getPlatform(); final String platformClassHierarchy; { @@ -171,7 +171,7 @@ public static void onDisable() { // This method is called automatically when the class loads to set up variables, in which case // BaseHandler will not have been initialized - BaseHandler handler = BaseHandler.getInstance(); + BaseHandler handler = BaseHandler.getInstance(); if(handler != null) handler.onDisable(); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index c9357cc131..ab99424fbc 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -14,7 +14,7 @@ public interface CommandAPIVersionHandler { * @param the command source type * @return an instance of AbstractPlatform which can run on the specified server version */ - static AbstractPlatform getPlatform() { + static AbstractPlatform getPlatform() { throw new RuntimeException("You have the wrong copy of the CommandAPI! If you're shading, did you use commandapi-core instead of commandapi-{platform}-shade?"); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandTree.java deleted file mode 100644 index 4214069a31..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandTree.java +++ /dev/null @@ -1,49 +0,0 @@ -package dev.jorel.commandapi; - -import java.util.ArrayList; -import java.util.List; - -/** - * This is the root node for creating a command as a tree - */ -public class CommandTree extends ExecutableCommand { - - private final List arguments = new ArrayList<>(); - - /** - * Creates a main root node for a command tree with a given command name - * - * @param commandName The name of the command to create - */ - public CommandTree(final String commandName) { - super(commandName); - } - - /** - * Create a child branch on the tree - * - * @param tree the child node - * @return this root node - */ - public CommandTree then(final ArgumentTree tree) { - this.arguments.add(tree); - return this; - } - - /** - * Registers the command - */ - public void register() { - List executions = new ArrayList<>(); - if (this.executor.hasAnyExecutors()) { - executions.add(new Execution(new ArrayList<>(), this.executor)); - } - for (ArgumentTree tree : arguments) { - executions.addAll(tree.getExecutions()); - } - for (Execution execution : executions) { - execution.register(this.meta); - } - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java index c3a5bfba97..8616e5833b 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java @@ -6,7 +6,7 @@ import java.util.ArrayList; /** - * This class represents something that is executable. This is mostly, {@link AbstractCommandAPICommand} instances, or can also be {@link CommandTree} nodes and even {@link Argument} nodes in a tree + * This class represents something that is executable. This is mostly, {@link AbstractCommandAPICommand} instances, or can also be {@link AbstractCommandTree} nodes and even {@link Argument} nodes in a tree * * @param The class extending this class, used as the return type for chain calls * @param The CommandSender class used by the class extending this class @@ -16,13 +16,13 @@ abstract class Executable, CommandS /** * The CustomCommandExecutor for this executable implementation */ - protected CustomCommandExecutor> executor = new CustomCommandExecutor<>(); + protected CustomCommandExecutor> executor = new CustomCommandExecutor<>(); /** * Returns the executors that this command has * @return the executors that this command has */ - public CustomCommandExecutor> getExecutor() { + public CustomCommandExecutor> getExecutor() { return executor; } @@ -30,7 +30,7 @@ abstract class Executable, CommandS * Sets the executors for this command * @param executor the executors for this command */ - public void setExecutor(CustomCommandExecutor> executor) { + public void setExecutor(CustomCommandExecutor> executor) { this.executor = executor; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java index be20c553a0..9e96ff2be3 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java @@ -6,7 +6,7 @@ import java.util.function.Predicate; /** - * This is a base class for {@link AbstractCommandAPICommand} and {@link CommandTree} command definitions + * This is a base class for {@link AbstractCommandAPICommand} and {@link AbstractCommandTree} command definitions * * @param The class extending this class, used as the return type for chain calls * @param The CommandSender class used by the class extending this class diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java index 8c3de54beb..c1b524ac28 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java @@ -7,14 +7,14 @@ import java.util.List; /** - * A list of arguments which results in an execution. This is used for building branches in a {@link CommandTree} + * A list of arguments which results in an execution. This is used for building branches in a {@link AbstractCommandTree} */ public abstract class Execution { - private final List> arguments; - private final CustomCommandExecutor> executor; + private final List> arguments; + private final CustomCommandExecutor> executor; - public Execution(List> arguments, CustomCommandExecutor> executor) { + public Execution(List> arguments, CustomCommandExecutor> executor) { this.arguments = arguments; this.executor = executor; } @@ -33,12 +33,12 @@ public void register(CommandMetaData meta) { protected abstract AbstractCommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta); - public Execution prependedBy(Argument argument) { - List> arguments = new ArrayList<>(); + public Execution prependedBy(Argument argument) { + List> arguments = new ArrayList<>(); arguments.add(argument); arguments.addAll(this.arguments); return newConcreteExecution(arguments, executor); } - protected abstract Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor); + protected abstract Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java index 32fae97446..4f76c22698 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java @@ -3,8 +3,6 @@ import java.util.List; import java.util.Optional; -import dev.jorel.commandapi.arguments.IntegerArgument; - /** * Class to store a registered command which has its command name and a list of * arguments as a string. The arguments are expected to be of the form diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 12053c0440..8699e9a1b5 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -9,9 +9,18 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.tree.LiteralCommandNode; +import dev.jorel.commandapi.CustomCommandExecutor; +import dev.jorel.commandapi.Execution; +import dev.jorel.commandapi.arguments.AbstractLiteralArgument; +import dev.jorel.commandapi.arguments.AbstractMultiLiteralArgument; +import dev.jorel.commandapi.arguments.Argument; import dev.jorel.commandapi.arguments.SuggestionProviders; -public abstract class AbstractPlatform { +/** + * @param The class for running platforms commands + * @param The class for running Brigadier commands + */ +public abstract class AbstractPlatform { // TODO: Add methods that need platform-specific implementations // All methods in bukkit NMS will probably also need to be here @@ -32,13 +41,13 @@ public abstract class AbstractPlatform { // "Source" in this case (for CommandContext) is something like a // CommandListenerWrapper (Spigot mappings) or CommandSourceStack (Mojang mappings). // over - public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); + public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); // Converts a command source into its source. - public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); + public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); // Converts a CommandSender to a Brigadier Source - public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); + public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); // Registers a permission. Bukkit's permission system requires permissions to be "registered" // before they can be used. @@ -91,4 +100,10 @@ public abstract class AbstractPlatform { public abstract void reloadDataPacks(); public abstract void updateRequirements(AbstractPlayer player); + + public abstract Execution newConcreteExecution(List> argument, CustomCommandExecutor> executor); + + public abstract AbstractMultiLiteralArgument newConcreteMultiLiteralArgument(String[] literals); + + public abstract AbstractLiteralArgument newConcreteLiteralArgument(String literal); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractBooleanArgument.java similarity index 86% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractBooleanArgument.java index 6157450c5a..aedd2987ae 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractBooleanArgument.java @@ -31,14 +31,14 @@ * * @apiNote Returns a {@link boolean} */ -public class BooleanArgument extends SafeOverrideableArgument { +public abstract class AbstractBooleanArgument extends SafeOverrideableArgument { /** * Constructs a Boolean argument with a given node name * * @param nodeName the name of the node for argument */ - public BooleanArgument(String nodeName) { + public AbstractBooleanArgument(String nodeName) { super(nodeName, BoolArgumentType.bool(), String::valueOf); } @@ -53,7 +53,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Boolean parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) + public Boolean parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractDoubleArgument.java similarity index 85% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractDoubleArgument.java index 5a1b03ca00..b88e23b784 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractDoubleArgument.java @@ -32,14 +32,14 @@ * * @apiNote Returns a {@link double} */ -public class DoubleArgument extends SafeOverrideableArgument { +public abstract class AbstractDoubleArgument extends SafeOverrideableArgument { /** * A double argument * * @param nodeName the name of the node for this argument */ - public DoubleArgument(String nodeName) { + public AbstractDoubleArgument(String nodeName) { super(nodeName, DoubleArgumentType.doubleArg(), String::valueOf); } @@ -49,7 +49,7 @@ public DoubleArgument(String nodeName) { * @param nodeName the name of the node for this argument * @param min The minimum value this argument can take (inclusive) */ - public DoubleArgument(String nodeName, double min) { + public AbstractDoubleArgument(String nodeName, double min) { super(nodeName, DoubleArgumentType.doubleArg(min), String::valueOf); } @@ -60,7 +60,7 @@ public DoubleArgument(String nodeName, double min) { * @param min The minimum value this argument can take (inclusive) * @param max The maximum value this argument can take (inclusive) */ - public DoubleArgument(String nodeName, double min, double max) { + public AbstractDoubleArgument(String nodeName, double min, double max) { super(nodeName, DoubleArgumentType.doubleArg(min, max), String::valueOf); if (max < min) { throw new InvalidRangeException(); @@ -78,9 +78,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Double parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) - throws CommandSyntaxException { + public Double parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractFloatArgument.java similarity index 88% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractFloatArgument.java index 470150630f..0c3b18f488 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractFloatArgument.java @@ -30,13 +30,13 @@ /** * An argument that represents primitive Java floats */ -public class FloatArgument extends SafeOverrideableArgument { +public abstract class AbstractFloatArgument extends SafeOverrideableArgument { /** * A float argument * @param nodeName the name of the node for this argument */ - public FloatArgument(String nodeName) { + public AbstractFloatArgument(String nodeName) { super(nodeName, FloatArgumentType.floatArg(), String::valueOf); } @@ -45,7 +45,7 @@ public FloatArgument(String nodeName) { * @param nodeName the name of the node for this argument * @param min The minimum value this argument can take (inclusive) */ - public FloatArgument(String nodeName, float min) { + public AbstractFloatArgument(String nodeName, float min) { super(nodeName, FloatArgumentType.floatArg(min), String::valueOf); } @@ -55,7 +55,7 @@ public FloatArgument(String nodeName, float min) { * @param min The minimum value this argument can take (inclusive) * @param max The maximum value this argument can take (inclusive) */ - public FloatArgument(String nodeName, float min, float max) { + public AbstractFloatArgument(String nodeName, float min, float max) { super(nodeName, FloatArgumentType.floatArg(min, max), String::valueOf); if(max < min) { throw new InvalidRangeException(); @@ -73,7 +73,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(AbstractPlatform platform, + public Float parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractGreedyStringArgument.java similarity index 87% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractGreedyStringArgument.java index 9fadfb2875..eb76054dab 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractGreedyStringArgument.java @@ -29,13 +29,13 @@ /** * An argument that represents arbitrary strings */ -public class GreedyStringArgument extends SafeOverrideableArgument implements IGreedyArgument { +public abstract class AbstractGreedyStringArgument extends SafeOverrideableArgument implements IGreedyArgument { /** * A string argument for a string of any length * @param nodeName the name of the node for this argument */ - public GreedyStringArgument(String nodeName) { + public AbstractGreedyStringArgument(String nodeName) { super(nodeName, StringArgumentType.greedyString(), s -> s); } @@ -50,7 +50,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractIntegerArgument.java similarity index 87% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractIntegerArgument.java index 68f979ecc8..fe1735f60c 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractIntegerArgument.java @@ -30,13 +30,13 @@ /** * An argument that represents primitive Java ints */ -public class IntegerArgument extends SafeOverrideableArgument { +public abstract class AbstractIntegerArgument extends SafeOverrideableArgument { /** * An integer argument * @param nodeName the name of the node for this argument */ - public IntegerArgument(String nodeName) { + public AbstractIntegerArgument(String nodeName) { super(nodeName, IntegerArgumentType.integer(), String::valueOf); } @@ -45,7 +45,7 @@ public IntegerArgument(String nodeName) { * @param nodeName the name of the node for this argument * @param min The minimum value this argument can take (inclusive) */ - public IntegerArgument(String nodeName, int min) { + public AbstractIntegerArgument(String nodeName, int min) { super(nodeName, IntegerArgumentType.integer(min), String::valueOf); } @@ -55,7 +55,7 @@ public IntegerArgument(String nodeName, int min) { * @param min The minimum value this argument can take (inclusive) * @param max The maximum value this argument can take (inclusive) */ - public IntegerArgument(String nodeName, int min, int max) { + public AbstractIntegerArgument(String nodeName, int min, int max) { super(nodeName, IntegerArgumentType.integer(min, max), String::valueOf); if(max < min) { throw new InvalidRangeException(); @@ -73,7 +73,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(AbstractPlatform platform, + public Integer parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLiteralArgument.java similarity index 91% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLiteralArgument.java index 70acc5f9fb..d57a9309e6 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLiteralArgument.java @@ -29,7 +29,7 @@ /** * A pseudo-argument representing a single literal string */ -public class LiteralArgument extends Argument { +public abstract class AbstractLiteralArgument extends Argument { private String literal; @@ -37,7 +37,7 @@ public class LiteralArgument extends Argument { * A literal argument. Only takes one string value which cannot be modified * @param literal the string literal that this argument will represent */ - public LiteralArgument(final String literal) { + public AbstractLiteralArgument(final String literal) { /* * The literal argument builder is NOT technically an argument. * Therefore, it doesn't have an ArgumentType. @@ -76,7 +76,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return literal; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLongArgument.java similarity index 88% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLongArgument.java index 1491314f2f..1db147deaf 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLongArgument.java @@ -30,13 +30,13 @@ /** * An argument that represents primitive Java longs */ -public class LongArgument extends SafeOverrideableArgument { +public abstract class AbstractLongArgument extends SafeOverrideableArgument { /** * A long argument * @param nodeName the name of the node for this argument */ - public LongArgument(String nodeName) { + public AbstractLongArgument(String nodeName) { super(nodeName, LongArgumentType.longArg(), String::valueOf); } @@ -45,7 +45,7 @@ public LongArgument(String nodeName) { * @param nodeName the name of the node for this argument * @param value The minimum value this argument can take (inclusive) */ - public LongArgument(String nodeName, long value) { + public AbstractLongArgument(String nodeName, long value) { super(nodeName, LongArgumentType.longArg(value), String::valueOf); } @@ -55,7 +55,7 @@ public LongArgument(String nodeName, long value) { * @param min The minimum value this argument can take (inclusive) * @param max The maximum value this argument can take (inclusive) */ - public LongArgument(String nodeName, long min, long max) { + public AbstractLongArgument(String nodeName, long min, long max) { super(nodeName, LongArgumentType.longArg(min, max), String::valueOf); if(max < min) { throw new InvalidRangeException(); @@ -73,7 +73,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Long parseArgument(AbstractPlatform platform, + public Long parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractMultiLiteralArgument.java similarity index 90% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractMultiLiteralArgument.java index cd9bf1a9fe..727fc1a10f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractMultiLiteralArgument.java @@ -29,7 +29,7 @@ /** * An argument that represents multiple LiteralArguments */ -public class MultiLiteralArgument extends Argument { +public abstract class AbstractMultiLiteralArgument extends Argument { private String[] literals; @@ -37,7 +37,7 @@ public class MultiLiteralArgument extends Argument { * A multiliteral argument. Takes in string literals which cannot be modified * @param literals the literals that this argument represents */ - public MultiLiteralArgument(final String... literals) { + public AbstractMultiLiteralArgument(final String... literals) { super(null, null); if(literals == null) { throw new BadLiteralException(true); @@ -67,7 +67,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { throw new IllegalStateException("Cannot parse MultiLiteralArgument"); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractStringArgument.java similarity index 89% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractStringArgument.java index 861fe77ef4..c35574d62e 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractStringArgument.java @@ -29,13 +29,13 @@ /** * An argument that represents a simple String */ -public class StringArgument extends Argument { +public abstract class AbstractStringArgument extends Argument { /** * A string argument for one word * @param nodeName the name of the node for this argument */ - public StringArgument(String nodeName) { + public AbstractStringArgument(String nodeName) { super(nodeName, StringArgumentType.word()); } @@ -50,7 +50,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java similarity index 90% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java index 6f71d94966..5330655f36 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java @@ -29,13 +29,13 @@ /** * An argument that represents text, encased in quotes */ -public class TextArgument extends Argument { +public abstract class AbstractTextArgument extends Argument { /** * A string argument for one word, or multiple words encased in quotes * @param nodeName the name of the node for this argument */ - public TextArgument(String nodeName) { + public AbstractTextArgument(String nodeName) { super(nodeName, StringArgumentType.string()); } @@ -50,7 +50,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java index 897acb3c0f..90c417cc61 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -26,7 +26,7 @@ import java.util.function.Function; import java.util.function.Predicate; -import dev.jorel.commandapi.ArgumentTree; +import dev.jorel.commandapi.AbstractArgumentTree; import dev.jorel.commandapi.abstractions.AbstractCommandSender; import com.mojang.brigadier.arguments.ArgumentType; @@ -43,7 +43,7 @@ * * @param The type of the underlying object that this argument casts to */ -public abstract class Argument extends ArgumentTree { +public abstract class Argument extends AbstractArgumentTree { /** * Returns the primitive type of the current Argument. After executing a @@ -100,7 +100,7 @@ public final String getNodeName() { * represents. This is intended for use by the internals of the CommandAPI and * isn't expected to be used outside the CommandAPI * - * @param the command source type + * @param the command source type * @param platform a reference to the platform * @param cmdCtx the context which ran this command * @param key the name of the argument node @@ -108,8 +108,8 @@ public final String getNodeName() { * @return the parsed object represented by this argument * @throws CommandSyntaxException if parsing fails */ - public abstract T parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException; + public abstract T parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException; ///////////////// // Suggestions // @@ -126,7 +126,7 @@ public abstract T parseArgument(AbstractPlatform includeSuggestions(ArgumentSuggestions suggestions) { + public Argument includeSuggestions(ArgumentSuggestions suggestions) { this.addedSuggestions = Optional.of(suggestions); return this; } @@ -143,7 +143,7 @@ public Argument includeSuggestions(ArgumentSuggestions suggestions) { * @deprecated use {@link #includeSuggestions(ArgumentSuggestions)} instead */ @Deprecated(forRemoval = true) - public Argument includeSuggestions(Function suggestions) { + public Argument includeSuggestions(Function suggestions) { return includeSuggestions(ArgumentSuggestions.strings(suggestions)); } @@ -159,7 +159,7 @@ public Argument includeSuggestions(Function suggest * @deprecated use {@link #includeSuggestions(ArgumentSuggestions)} instead */ @Deprecated(forRemoval = true) - public Argument includeSuggestionsT(Function suggestions) { + public Argument includeSuggestionsT(Function suggestions) { return includeSuggestions(ArgumentSuggestions.stringsWithTooltips(suggestions)); } @@ -180,7 +180,7 @@ public Optional getIncludedSuggestions() { * @return the current argument */ - public Argument replaceSuggestions(ArgumentSuggestions suggestions) { + public Argument replaceSuggestions(ArgumentSuggestions suggestions) { this.suggestions = Optional.of(suggestions); return this; } @@ -192,7 +192,7 @@ public Argument replaceSuggestions(ArgumentSuggestions suggestions) { * @deprecated use {@link #replaceSuggestions(ArgumentSuggestions)} instead */ @Deprecated(forRemoval = true) - public Argument replaceSuggestions(Function suggestions) { + public Argument replaceSuggestions(Function suggestions) { return replaceSuggestions(ArgumentSuggestions.strings(suggestions)); } @@ -203,7 +203,7 @@ public Argument replaceSuggestions(Function suggest * @deprecated use {@link #replaceSuggestions(ArgumentSuggestions)} instead */ @Deprecated(forRemoval = true) - public Argument replaceSuggestionsT(Function suggestions) { + public Argument replaceSuggestionsT(Function suggestions) { return replaceSuggestions(ArgumentSuggestions.stringsWithTooltips(suggestions)); } @@ -230,7 +230,7 @@ public final Optional getOverriddenSuggestions() { * @param permission the permission required to execute this command * @return this current argument */ - public final Argument withPermission(CommandPermission permission) { + public final Argument withPermission(CommandPermission permission) { this.permission = permission; return this; } @@ -241,7 +241,7 @@ public final Argument withPermission(CommandPermission permission) { * @param permission the permission required to execute this command * @return this current argument */ - public final Argument withPermission(String permission) { + public final Argument withPermission(String permission) { this.permission = CommandPermission.fromString(permission); return this; } @@ -276,7 +276,7 @@ public final Predicate> getRequirements() { * @param requirement the predicate that must be satisfied to use this argument * @return this current argument */ - public final Argument withRequirement(Predicate> requirement) { + public final Argument withRequirement(Predicate> requirement) { this.requirements = this.requirements.and(requirement); return this; } @@ -300,7 +300,7 @@ public boolean isListed() { * @param listed if true, this argument will be included in the Object args[] of the command executor * @return this current argument */ - public Argument setListed(boolean listed) { + public Argument setListed(boolean listed) { this.isListed = listed; return this; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java index 2b43a3f0b4..1a80dc448d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java @@ -9,7 +9,7 @@ * Minecraft's chat preview feature. To use this, the server must have * {@code previews-chat=true} set in its {@code server.properties} file */ -public interface IPreviewable, A> { +public interface IPreviewable, A> { /** * Sets the {@link PreviewableFunction} for this argument. This function will diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java index 3f050b27ca..244d58b15f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java @@ -4,7 +4,7 @@ public record PreviewInfo ( /** @param player the Player typing this command */ - AbstractPlayer player, + AbstractPlayer player, /** * @param input the current partially typed argument. For example "/mycmd tes" diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java index 04e88bd9a7..09c2e6fd87 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java @@ -35,7 +35,7 @@ * a {@link StringArgument} will have a custom type * String */ -public abstract class SafeOverrideableArgument extends Argument { +public abstract class SafeOverrideableArgument extends Argument { private final Function mapper; @@ -59,7 +59,7 @@ protected SafeOverrideableArgument(String nodeName, ArgumentType rawType, Fun * @param suggestions The safe suggestions to use * @return the current argument */ - public final Argument replaceSafeSuggestions(SafeSuggestions suggestions) { + public final Argument replaceSafeSuggestions(SafeSuggestions suggestions) { replaceSuggestions(suggestions.toSuggestions(mapper)); return this; } @@ -74,7 +74,7 @@ public final Argument replaceSafeSuggestions(SafeSuggestions suggestions) * @deprecated use {@link #replaceSafeSuggestions(SafeSuggestions)} */ @Deprecated(forRemoval = true) - public final Argument replaceWithSafeSuggestions(Function suggestions) { + public final Argument replaceWithSafeSuggestions(Function suggestions) { return replaceSafeSuggestions(SafeSuggestions.suggest(suggestions)); } @@ -88,7 +88,7 @@ public final Argument replaceWithSafeSuggestions(Function replaceWithSafeSuggestionsT(Function[]> suggestions) { + public final Argument replaceWithSafeSuggestionsT(Function[]> suggestions) { return replaceSafeSuggestions(SafeSuggestions.tooltips(suggestions)); } @@ -100,7 +100,7 @@ public final Argument replaceWithSafeSuggestionsT(Function includeSafeSuggestions(SafeSuggestions suggestions) { + public final Argument includeSafeSuggestions(SafeSuggestions suggestions) { return this.includeSuggestions(suggestions.toSuggestions(mapper)); } @@ -116,7 +116,7 @@ public final Argument includeSafeSuggestions(SafeSuggestions suggestions) * @deprecated use {@link #includeSafeSuggestions(SafeSuggestions)} */ @Deprecated(forRemoval = true) - public final Argument includeWithSafeSuggestions(Function suggestions) { + public final Argument includeWithSafeSuggestions(Function suggestions) { return includeSafeSuggestions(SafeSuggestions.suggest(suggestions)); } @@ -134,7 +134,7 @@ public final Argument includeWithSafeSuggestions(Function includeWithSafeSuggestionsT(Function[]> suggestions) { + public final Argument includeWithSafeSuggestionsT(Function[]> suggestions) { return includeSafeSuggestions(SafeSuggestions.tooltips(suggestions)); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java index 53b07d8524..83dc61f69c 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java @@ -22,6 +22,8 @@ import dev.jorel.commandapi.arguments.Argument; +import java.util.List; + /** * An exception caused when a greedy argument is not declared at the end of a * List @@ -35,14 +37,14 @@ public class GreedyArgumentException extends RuntimeException { * @param arguments the list of arguments that have been used for this command * (including the greedy string argument) */ - public GreedyArgumentException(Argument[] arguments) { + public GreedyArgumentException(Argument[] arguments) { super("Only one GreedyStringArgument or ChatArgument can be declared, at the end of a List. Found arguments: " + buildArgsStr(arguments)); } - private static String buildArgsStr(Argument[] arguments) { + private static String buildArgsStr(Argument[] arguments) { StringBuilder builder = new StringBuilder(); - for (Argument arg : arguments) { + for (Argument arg : arguments) { builder.append(arg.getNodeName()).append("<").append(arg.getClass().getSimpleName()).append("> "); } return builder.toString(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java new file mode 100644 index 0000000000..243e76a91b --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java @@ -0,0 +1,23 @@ +package dev.jorel.commandapi; + +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.arguments.Argument; +import org.bukkit.command.CommandSender; + +import java.util.List; + +public class BukkitExecution extends Execution { + public BukkitExecution(List> arguments, CustomCommandExecutor> executor) { + super(arguments, executor); + } + + @Override + protected AbstractCommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta) { + return new CommandAPICommand(meta); + } + + @Override + protected Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor) { + return new BukkitExecution(arguments, executor); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutor.java new file mode 100644 index 0000000000..3b535097ef --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutor.java @@ -0,0 +1,201 @@ +package dev.jorel.commandapi; + +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.executors.*; +import org.bukkit.command.CommandSender; + +public interface BukkitExecutor> { + void addNormalExecutor(IExecutorNormal> executor); + + void addResultingExecutor(IExecutorResulting> executor); + + // Regular command executor + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (CommandSender, Object[]) -> () that will be executed when the command is run + * @param types A list of executor types to use this executes method for. + * @return this command builder + */ + default Impl executes(CommandExecutor executor, ExecutorType... types) { + if(types == null || types.length == 0) { + addNormalExecutor(executor); + } else { + for(ExecutorType type : types) { + addNormalExecutor(new CommandExecutor() { + + @Override + public void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + executor.executeWith(BukkitPlatform.get().wrapCommandSender(sender), args); + } + + @Override + public ExecutorType getType() { + return type; + } + }); + } + } + return (Impl) this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (CommandSender, Object[]) -> int that will be executed when the command is run + * @param types A list of executor types to use this executes method for. + * @return this command builder + */ + default Impl executes(ResultingCommandExecutor executor, ExecutorType... types) { + if(types == null || types.length == 0) { + addResultingExecutor(executor); + } else { + for(ExecutorType type : types) { + addResultingExecutor(new ResultingCommandExecutor() { + + @Override + public int run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { + return executor.executeWith(BukkitPlatform.get().wrapCommandSender(sender), args); + } + + @Override + public ExecutorType getType() { + return type; + } + }); + } + } + return (Impl) this; + } + + // Player command executor + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Player, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesPlayer(PlayerCommandExecutor executor) { + addNormalExecutor(executor); + return (Impl) this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Player, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesPlayer(PlayerResultingCommandExecutor executor) { + addResultingExecutor(executor); + return (Impl) this; + } + + // Entity command executor + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Entity, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesEntity(EntityCommandExecutor executor) { + addNormalExecutor(executor); + return (Impl) this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Entity, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesEntity(EntityResultingCommandExecutor executor) { + addResultingExecutor(executor); + return (Impl) this; + } + + // Proxy command executor + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Entity, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesProxy(ProxyCommandExecutor executor) { + addNormalExecutor(executor); + return (Impl) this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (Entity, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesProxy(ProxyResultingCommandExecutor executor) { + addResultingExecutor(executor); + return (Impl) this; + } + + // Command block command sender + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (BlockCommandSender, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesCommandBlock(CommandBlockCommandExecutor executor) { + addNormalExecutor(executor); + return (Impl) this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (BlockCommandSender, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesCommandBlock(CommandBlockResultingCommandExecutor executor) { + addResultingExecutor(executor); + return (Impl) this; + } + + // Console command sender + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (BlockCommandSender, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesConsole(ConsoleCommandExecutor executor) { + addNormalExecutor(executor); + return (Impl) this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (BlockCommandSender, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesConsole(ConsoleResultingCommandExecutor executor) { + addResultingExecutor(executor); + return (Impl) this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (NativeCommandExecutor, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesNative(NativeCommandExecutor executor) { + addNormalExecutor(executor); + return (Impl) this; + } + + /** + * Adds an executor to the current command builder + * @param executor A lambda of type (NativeCommandExecutor, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesNative(NativeResultingCommandExecutor executor) { + addResultingExecutor(executor); + return (Impl) this; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index fd9780cdff..b68646d16f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -11,6 +11,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.tree.CommandNode; import dev.jorel.commandapi.abstractions.AbstractPlayer; +import dev.jorel.commandapi.arguments.*; import dev.jorel.commandapi.commandsenders.*; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.preprocessor.RequireField; @@ -29,7 +30,6 @@ import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.abstractions.AbstractPlatform; -import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.nms.NMS; import org.bukkit.command.*; import org.bukkit.entity.Player; @@ -51,7 +51,7 @@ @RequireField(in = CommandNode.class, name = "children", ofType = Map.class) @RequireField(in = CommandNode.class, name = "literals", ofType = Map.class) @RequireField(in = CommandNode.class, name = "arguments", ofType = Map.class) -public abstract class BukkitPlatform extends AbstractPlatform implements NMS { +public abstract class BukkitPlatform extends AbstractPlatform implements NMS { // References to utility classes private static BukkitPlatform instance; private PaperImplementations paper; @@ -344,7 +344,7 @@ public void onDisable() { @Override @Unimplemented(because = REQUIRES_CRAFTBUKKIT) - public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); + public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); public BukkitCommandSender wrapCommandSender(CommandSender sender) { if (sender instanceof BlockCommandSender block) @@ -456,6 +456,21 @@ public void updateRequirements(AbstractPlayer player) { resendPackets((Player) player.getSource()); } + @Override + public Execution newConcreteExecution(List> argument, CustomCommandExecutor> executor) { + return new BukkitExecution(argument, executor); + } + + @Override + public AbstractMultiLiteralArgument newConcreteMultiLiteralArgument(String[] literals) { + return new MultiLiteralArgument(literals); + } + + @Override + public AbstractLiteralArgument newConcreteLiteralArgument(String literal) { + return new LiteralArgument(literal); + } + // TODO: There's probably a much better place to put this, but I don't // really fancy subclassing SafeOverrideableArgument for Bukkit specifically, // so I'll dump it here and hope nobody cares because the CommandAPI doesn't diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index 7aedf327c7..a18ece00a1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -1,27 +1,14 @@ package dev.jorel.commandapi; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.executors.*; import org.bukkit.command.CommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.executors.CommandBlockCommandExecutor; -import dev.jorel.commandapi.executors.CommandBlockResultingCommandExecutor; -import dev.jorel.commandapi.executors.CommandExecutor; -import dev.jorel.commandapi.executors.ConsoleCommandExecutor; -import dev.jorel.commandapi.executors.ConsoleResultingCommandExecutor; -import dev.jorel.commandapi.executors.EntityCommandExecutor; -import dev.jorel.commandapi.executors.EntityResultingCommandExecutor; -import dev.jorel.commandapi.executors.ExecutorType; -import dev.jorel.commandapi.executors.NativeCommandExecutor; -import dev.jorel.commandapi.executors.NativeResultingCommandExecutor; -import dev.jorel.commandapi.executors.PlayerCommandExecutor; -import dev.jorel.commandapi.executors.PlayerResultingCommandExecutor; -import dev.jorel.commandapi.executors.ProxyCommandExecutor; -import dev.jorel.commandapi.executors.ProxyResultingCommandExecutor; -import dev.jorel.commandapi.executors.ResultingCommandExecutor; import java.util.ArrayList; -public class CommandAPICommand extends AbstractCommandAPICommand { +public class CommandAPICommand extends AbstractCommandAPICommand implements BukkitExecutor { public CommandAPICommand(CommandMetaData meta) { super(meta); @@ -40,192 +27,13 @@ public CommandAPICommand copy() { return command; } - // Regular command executor - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (CommandSender, Object[]) -> () that will be executed when the command is run - * @param types A list of executor types to use this executes method for. - * @return this command builder - */ - public CommandAPICommand executes(CommandExecutor executor, ExecutorType... types) { - if(types == null || types.length == 0) { - this.executor.addNormalExecutor(executor); - } else { - for(ExecutorType type : types) { - this.executor.addNormalExecutor(new CommandExecutor() { - - @Override - public void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - executor.executeWith(BukkitPlatform.get().wrapCommandSender(sender), args); - } - - @Override - public ExecutorType getType() { - return type; - } - }); - } - } - return this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (CommandSender, Object[]) -> int that will be executed when the command is run - * @param types A list of executor types to use this executes method for. - * @return this command builder - */ - public CommandAPICommand executes(ResultingCommandExecutor executor, ExecutorType... types) { - if(types == null || types.length == 0) { - this.executor.addResultingExecutor(executor); - } else { - for(ExecutorType type : types) { - this.executor.addResultingExecutor(new ResultingCommandExecutor() { - - @Override - public int run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - return executor.executeWith(BukkitPlatform.get().wrapCommandSender(sender), args); - } - - @Override - public ExecutorType getType() { - return type; - } - }); - } - } - return this; - } - - // Player command executor - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Player, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesPlayer(PlayerCommandExecutor executor) { - this.executor.addNormalExecutor(executor); - return this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Player, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesPlayer(PlayerResultingCommandExecutor executor) { - this.executor.addResultingExecutor(executor); - return this; - } - - // Entity command executor - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Entity, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesEntity(EntityCommandExecutor executor) { - this.executor.addNormalExecutor(executor); - return this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Entity, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesEntity(EntityResultingCommandExecutor executor) { - this.executor.addResultingExecutor(executor); - return this; - } - - // Proxy command executor - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Entity, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesProxy(ProxyCommandExecutor executor) { - this.executor.addNormalExecutor(executor); - return this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (Entity, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesProxy(ProxyResultingCommandExecutor executor) { - this.executor.addResultingExecutor(executor); - return this; - } - - // Command block command sender - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (BlockCommandSender, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesCommandBlock(CommandBlockCommandExecutor executor) { - this.executor.addNormalExecutor(executor); - return this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (BlockCommandSender, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesCommandBlock(CommandBlockResultingCommandExecutor executor) { - this.executor.addResultingExecutor(executor); - return this; - } - - // Console command sender - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (BlockCommandSender, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesConsole(ConsoleCommandExecutor executor) { - this.executor.addNormalExecutor(executor); - return this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (BlockCommandSender, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesConsole(ConsoleResultingCommandExecutor executor) { - this.executor.addResultingExecutor(executor); - return this; - } - - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (NativeCommandExecutor, Object[]) -> () that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesNative(NativeCommandExecutor executor) { + @Override + public void addNormalExecutor(IExecutorNormal> executor) { this.executor.addNormalExecutor(executor); - return this; } - /** - * Adds an executor to the current command builder - * @param executor A lambda of type (NativeCommandExecutor, Object[]) -> int that will be executed when the command is run - * @return this command builder - */ - public CommandAPICommand executesNative(NativeResultingCommandExecutor executor) { + @Override + public void addResultingExecutor(IExecutorResulting> executor) { this.executor.addResultingExecutor(executor); - return this; } - } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java new file mode 100644 index 0000000000..95c8cc406e --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java @@ -0,0 +1,27 @@ +package dev.jorel.commandapi; + +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.executors.IExecutorNormal; +import dev.jorel.commandapi.executors.IExecutorResulting; +import org.bukkit.command.CommandSender; + +public class CommandTree extends AbstractCommandTree implements BukkitExecutor { + /** + * Creates a main root node for a command tree with a given command name + * + * @param commandName The name of the command to create + */ + public CommandTree(String commandName) { + super(commandName); + } + + @Override + public void addNormalExecutor(IExecutorNormal> executor) { + this.executor.addNormalExecutor(executor); + } + + @Override + public void addResultingExecutor(IExecutorResulting> executor) { + this.executor.addResultingExecutor(executor); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java index 435852a0fb..d791b782e3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java @@ -29,6 +29,7 @@ import java.util.Map; import java.util.Set; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.command.CommandSender; @@ -49,7 +50,7 @@ public final class Converter { private Converter() { } - private static final List> PLAIN_ARGUMENTS = Arrays.asList(new GreedyStringArgument("args")); + private static final List> PLAIN_ARGUMENTS = List.of(new GreedyStringArgument("args")); private static final Set CALLER_METHODS = Set.of("isPermissionSet", "hasPermission", "addAttachment", "removeAttachment", "recalculatePermissions", "getEffectivePermissions", "isOp", "setOp"); @@ -85,7 +86,7 @@ public static void convert(JavaPlugin plugin, String cmdName) { * @param cmdName The command to convert * @param arguments The arguments that should be used to parse this command */ - public static void convert(JavaPlugin plugin, String cmdName, Argument... arguments) { + public static void convert(JavaPlugin plugin, String cmdName, Argument... arguments) { convertPluginCommand(plugin, cmdName, Arrays.asList(arguments)); } @@ -97,7 +98,7 @@ public static void convert(JavaPlugin plugin, String cmdName, Argument... arg * @param cmdName The command to convert * @param arguments The arguments that should be used to parse this command */ - public static void convert(JavaPlugin plugin, String cmdName, List> arguments) { + public static void convert(JavaPlugin plugin, String cmdName, List> arguments) { convertPluginCommand(plugin, cmdName, arguments); } @@ -120,16 +121,16 @@ public static void convert(String cmdName) { * be "/set" * @param arguments The arguments that should be used to parse this command */ - public static void convert(String cmdName, List> arguments) { + public static void convert(String cmdName, List> arguments) { convertCommand(cmdName, arguments); } - private static void convertCommand(String commandName, List> arguments) { + private static void convertCommand(String commandName, List> arguments) { CommandAPI.logInfo("Converting command /" + commandName); // No arguments new CommandAPICommand(commandName).withPermission(CommandPermission.NONE).executesNative((sender, args) -> { - Bukkit.dispatchCommand(mergeProxySender((NativeProxyCommandSender) sender.getSource()), commandName); + Bukkit.dispatchCommand(mergeProxySender(sender), commandName); }).register(); // Multiple arguments @@ -137,7 +138,7 @@ private static void convertCommand(String commandName, List> argumen .withArguments(arguments).executesNative((sender, args) -> { // We know the args are a String[] because that's how converted things are // handled in generateCommand() - CommandSender proxiedSender = mergeProxySender((NativeProxyCommandSender) sender.getSource()); + CommandSender proxiedSender = mergeProxySender(sender); Bukkit.dispatchCommand(proxiedSender, commandName + " " + String.join(" ", (String[]) args)); }); @@ -145,7 +146,7 @@ private static void convertCommand(String commandName, List> argumen multiArgs.register(); } - private static void convertPluginCommand(JavaPlugin plugin, String commandName, List> arguments) { + private static void convertPluginCommand(JavaPlugin plugin, String commandName, List> arguments) { CommandAPI.logInfo("Converting " + plugin.getName() + " command /" + commandName); /* Parse the commands */ Map cmdData = plugin.getDescription().getCommands().get(commandName); @@ -189,8 +190,7 @@ private static void convertPluginCommand(JavaPlugin plugin, String commandName, permissionNode = CommandPermission.fromString(permission); } - NativeCommandExecutor executor = (abstractSender, args) -> { - NativeProxyCommandSender sender = (NativeProxyCommandSender) abstractSender.getSource(); + NativeCommandExecutor executor = (sender, args) -> { org.bukkit.command.Command command = plugin.getCommand(commandName); if (command == null) { @@ -215,7 +215,7 @@ private static void convertPluginCommand(JavaPlugin plugin, String commandName, .withAliases(aliases) .withFullDescription(fullDescription) .executesNative((sender, args) -> { - executor.executeWith(sender, new String[0]); + executor.executeWith(new BukkitNativeProxyCommandSender(sender), new String[0]); }) .register(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java index 1b66a90c0a..ddf228320c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java @@ -20,19 +20,18 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import org.bukkit.advancement.Advancement; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.advancement.Advancement; +import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Advancement object * @apiNote Returns an {@link Advancement} object */ -public class AdvancementArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class AdvancementArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * Constructs an AdvancementArgument with a given node name @@ -58,9 +57,8 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public Advancement parseArgument(AbstractPlatform platform, + public Advancement parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getAdvancement(cmdCtx, key); } - } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java index 44fc468ee8..b453e43eda 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java @@ -20,14 +20,8 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.Optional; - -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; @@ -36,13 +30,17 @@ import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.wrappers.PreviewableFunction; import net.kyori.adventure.text.Component; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.Optional; /** * An argument that represents chat with entity selectors * * @apiNote Returns a {@link Component} object */ -public class AdventureChatArgument extends Argument implements IGreedyArgument, IPreviewable { +public class AdventureChatArgument extends Argument implements IGreedyArgument, IPreviewable { private PreviewableFunction preview; private boolean usePreview; @@ -74,7 +72,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Component parseArgument(AbstractPlatform platform, + public Component parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); Component component = ((BukkitPlatform) platform).getAdventureChat(cmdCtx, key); @@ -114,5 +112,4 @@ public AdventureChatArgument usePreview(boolean usePreview) { this.usePreview = usePreview; return this; } - } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java index 08f6ef695e..d99f746769 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java @@ -22,17 +22,17 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; import net.kyori.adventure.text.Component; +import org.bukkit.command.CommandSender; /** * An argument that represents raw JSON text * @apiNote Returns a {@link Component} object */ -public class AdventureChatComponentArgument extends Argument { +public class AdventureChatComponentArgument extends Argument { /** * Constructs a ChatComponnent argument with a given node name. Represents raw JSON text, used in Book MetaData, Chat and other various areas of Minecraft @@ -60,7 +60,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Component parseArgument(AbstractPlatform platform, + public Component parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getAdventureChatComponent(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java index b75848de22..6c66f4c878 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java @@ -25,6 +25,7 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents a yaw angle, measured in degrees with float @@ -35,7 +36,7 @@ * * @apiNote Returns a {@link float} */ -public class AngleArgument extends SafeOverrideableArgument { +public class AngleArgument extends SafeOverrideableArgument { /** * Constructs an AngleArgument with a given node name @@ -57,7 +58,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) + public Float parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getAngle(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java index 52c24c537f..9995fd81f3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java @@ -29,6 +29,7 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents x, y and z axes as an EnumSet of Axis @@ -36,7 +37,7 @@ * @apiNote Returns a {@link EnumSet}{@code <}{@link Axis}{@code >} object */ @SuppressWarnings("rawtypes") -public class AxisArgument extends SafeOverrideableArgument> { +public class AxisArgument extends SafeOverrideableArgument, CommandSender> { /** * Constructs an AxisArgument with a given node name. Represents the axes x, y @@ -60,7 +61,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public EnumSet parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, + public EnumSet parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getAxis(cmdCtx, key); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java index 48aeea47cf..cb5156ef5e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java @@ -29,13 +29,14 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Biome object * * @apiNote Returns a {@link Biome} object */ -public class BiomeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class BiomeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * Constructs a BiomeArgument with a given node name. @@ -63,7 +64,7 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public Biome parseArgument(AbstractPlatform platform, + public Biome parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getBiome(cmdCtx, key); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java index c1f3f7678c..d2e5b214d7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java @@ -29,6 +29,7 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents a Predicate<Block> @@ -36,7 +37,7 @@ * @apiNote Returns a {@link Predicate}{@code <}{@link Block}{@code >} object */ @SuppressWarnings("rawtypes") -public class BlockPredicateArgument extends Argument { +public class BlockPredicateArgument extends Argument { /** * Constructs a BlockPredicateArgument with a given node name. Represents a @@ -59,7 +60,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Predicate parseArgument(AbstractPlatform platform, + public Predicate parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getBlockPredicate(cmdCtx, key); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java index 143949229b..ad5234c87c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java @@ -27,6 +27,7 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit BlockData object @@ -34,7 +35,7 @@ * @apiNote Returns a {@link BlockData} object * */ -public class BlockStateArgument extends Argument { +public class BlockStateArgument extends Argument { /** * Constructs a BlockStateArgument with a given node name. @@ -56,7 +57,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BlockData parseArgument(AbstractPlatform platform, + public BlockData parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getBlockState(cmdCtx, key); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java new file mode 100644 index 0000000000..264fbe9efe --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import org.bukkit.command.CommandSender; + +/** + * An argument that represents primitive Java booleans + * + * @apiNote Returns a {@link boolean} + */ +public class BooleanArgument extends AbstractBooleanArgument { + /** + * Constructs a Boolean argument with a given node name + * + * @param nodeName the name of the node for argument + */ + public BooleanArgument(String nodeName) { + super(nodeName); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java index 901e1dd555..639cc13801 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java @@ -42,7 +42,7 @@ * * @apiNote Returns a {@link BaseComponent}{@code []} object */ -public class ChatArgument extends Argument implements IGreedyArgument, IPreviewable { +public class ChatArgument extends Argument implements IGreedyArgument, IPreviewable { private PreviewableFunction preview; private boolean usePreview; @@ -74,7 +74,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BaseComponent[] parseArgument(AbstractPlatform platform, + public BaseComponent[] parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); BaseComponent[] component = ((BukkitPlatform) platform).getChat(cmdCtx, key); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java index bda288dffc..6aad2d59a0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java @@ -29,13 +29,14 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit ChatColor object * * @apiNote Returns a {@link ChatColor} object */ -public class ChatColorArgument extends SafeOverrideableArgument { +public class ChatColorArgument extends SafeOverrideableArgument { /** * Constructs a ChatColor argument with a given node name. Represents a color or @@ -58,7 +59,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ChatColor parseArgument(AbstractPlatform platform, + public ChatColor parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getChatColor(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java index d1d2f463e7..64053a1f3d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java @@ -27,13 +27,14 @@ import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; import net.md_5.bungee.api.chat.BaseComponent; +import org.bukkit.command.CommandSender; /** * An argument that represents raw JSON text * * @apiNote Returns a {@link BaseComponent}{@code []} object */ -public class ChatComponentArgument extends Argument { +public class ChatComponentArgument extends Argument { /** * Constructs a ChatComponnent argument with a given node name. Represents raw @@ -64,7 +65,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BaseComponent[] parseArgument(AbstractPlatform platform, + public BaseComponent[] parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getChatComponent(cmdCtx, key); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index 30390c195a..bc425367b1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -42,10 +42,10 @@ * {@link IntegerArgument} * @apiNote Returns a {@link T} object */ -public class CustomArgument extends Argument { +public class CustomArgument extends Argument { private final CustomArgumentInfoParser infoParser; - private final Argument base; + private final Argument base; /** * Creates a CustomArgument with a valid parser, defaults to non-keyed argument @@ -83,7 +83,7 @@ public CustomArgument(String nodeName, CustomArgumentInfoParser parse public CustomArgument(String nodeName, CustomArgumentInfoParser parser, boolean keyed) { super(nodeName, keyed ? StringArgumentType.string() : BukkitPlatform.get()._ArgumentMinecraftKeyRegistered()); - this.base = (Argument) new DummyArgument(nodeName, keyed); + this.base = (Argument) new DummyArgument(nodeName, keyed); this.infoParser = (CustomArgumentInfoParser) parser; CommandAPI.logWarning( "Registering CustomArgument " + nodeName + " with legacy registeration method. This may not work!\n" @@ -110,7 +110,7 @@ public CustomArgument(String nodeName, CustomArgumentInfoParser parse * {@code Integer} for an {@link IntegerArgument} *

*/ - public CustomArgument(Argument base, CustomArgumentInfoParser parser) { + public CustomArgument(Argument base, CustomArgumentInfoParser parser) { super(base.getNodeName(), base.getRawType()); if (base instanceof LiteralArgument || base instanceof MultiLiteralArgument) { throw new IllegalArgumentException(base.getClass().getSimpleName() + " is not a suitable base argument type for a CustomArgument"); @@ -130,7 +130,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public T parseArgument(AbstractPlatform platform, + public T parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the raw input and parsed input @@ -138,7 +138,7 @@ public T parseArgument(AbstractPlatform final B parsedInput = base.parseArgument(platform, cmdCtx, key, previousArgs); try { - return infoParser.apply(new CustomArgumentInfo(((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(), + return infoParser.apply(new CustomArgumentInfo(platform.getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(), previousArgs, customresult, parsedInput)); } catch (CustomArgumentException e) { throw e.toCommandSyntax(customresult, cmdCtx); @@ -146,9 +146,7 @@ public T parseArgument(AbstractPlatform String errorMsg = new MessageBuilder("Error in executing command ").appendFullInput().append(" - ") .appendArgInput().appendHere().toString().replace("%input%", customresult) .replace("%finput%", cmdCtx.getInput()); - throw new SimpleCommandExceptionType(() -> { - return errorMsg; - }).create(); + throw new SimpleCommandExceptionType(() -> errorMsg).create(); } } @@ -360,7 +358,7 @@ public static interface CustomArgumentInfoParser { } @Deprecated - private static class DummyArgument extends Argument { + private static class DummyArgument extends Argument { private final boolean keyed; @@ -381,7 +379,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return keyed ? ((BukkitPlatform) platform).getMinecraftKey(cmdCtx, key).toString() : cmdCtx.getArgument(key, String.class); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java new file mode 100644 index 0000000000..eb0884e315 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import org.bukkit.command.CommandSender; + +/** + * An argument that represents primitive Java doubles + * + * @apiNote Returns a {@link double} + */ +public class DoubleArgument extends AbstractDoubleArgument { + + /** + * A double argument + * + * @param nodeName the name of the node for this argument + */ + public DoubleArgument(String nodeName) { + super(nodeName); + } + + /** + * A double argument with a minimum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + */ + public DoubleArgument(String nodeName, double min) { + super(nodeName, min); + } + + /** + * A double argument with a minimum and maximum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + * @param max The maximum value this argument can take (inclusive) + */ + public DoubleArgument(String nodeName, double min, double max) { + super(nodeName, min, max); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java index 2838041625..d05e01140c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import org.bukkit.command.CommandSender; import org.bukkit.enchantments.Enchantment; import com.mojang.brigadier.context.CommandContext; @@ -33,7 +34,7 @@ * * @apiNote Returns an {@link Enchantment} object */ -public class EnchantmentArgument extends SafeOverrideableArgument { +public class EnchantmentArgument extends SafeOverrideableArgument { /** * An Enchantment argument. Represents an enchantment for items @@ -54,7 +55,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Enchantment parseArgument(AbstractPlatform platform, + public Enchantment parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getEnchantment(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java index 603ea06a0e..66c3797037 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.List; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -38,7 +39,7 @@ * * @apiNote The return type depends on the provided {@link EntitySelector} */ -public class EntitySelectorArgument extends Argument { +public class EntitySelectorArgument extends Argument { private final EntitySelector selector; @@ -90,7 +91,7 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public T parseArgument(AbstractPlatform platform, + public T parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return (T) ((BukkitPlatform) platform).getEntitySelector(cmdCtx, key, selector); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java index a575848d29..a440d502da 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; import com.mojang.brigadier.context.CommandContext; @@ -31,7 +32,7 @@ /** * An argument that represents the Bukkit EntityType object */ -public class EntityTypeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class EntityTypeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * An EntityType argument. Represents the type of an Entity @@ -57,7 +58,7 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public EntityType parseArgument(AbstractPlatform platform, + public EntityType parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getEntityType(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java index deb1930af8..177b4e6f5f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java @@ -29,11 +29,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Environment object */ -public class EnvironmentArgument extends SafeOverrideableArgument { +public class EnvironmentArgument extends SafeOverrideableArgument { /** * An Environment argument. Represents Bukkit's Environment object @@ -54,7 +55,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Environment parseArgument(AbstractPlatform platform, + public Environment parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getDimension(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java new file mode 100644 index 0000000000..12b83230d1 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -0,0 +1,63 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import com.mojang.brigadier.arguments.FloatArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.exceptions.InvalidRangeException; +import org.bukkit.command.CommandSender; + +/** + * An argument that represents primitive Java floats + */ +public class FloatArgument extends AbstractFloatArgument { + /** + * A float argument + * + * @param nodeName the name of the node for this argument + */ + public FloatArgument(String nodeName) { + super(nodeName); + } + + /** + * A float argument with a minimum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + */ + public FloatArgument(String nodeName, float min) { + super(nodeName, min); + } + + /** + * A float argument with a minimum and maximum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + * @param max The maximum value this argument can take (inclusive) + */ + public FloatArgument(String nodeName, float min, float max) { + super(nodeName, min, max); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java index 1b183ef5b6..72bf5d5328 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java @@ -26,11 +26,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.FloatRange; +import org.bukkit.command.CommandSender; /** * An argument that represents a range of float values */ -public class FloatRangeArgument extends SafeOverrideableArgument { +public class FloatRangeArgument extends SafeOverrideableArgument { /** * A FloatRange argument that represents a range of floating-point values @@ -51,7 +52,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public FloatRange parseArgument(AbstractPlatform platform, + public FloatRange parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getFloatRange(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java index b432c45aea..6b769fb9a6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java @@ -28,11 +28,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.FunctionWrapper; +import org.bukkit.command.CommandSender; /** * An argument that represents Minecraft functions and tags */ -public class FunctionArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class FunctionArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * A Minecraft function. Plugin commands which plan to be used INSIDE a Minecraft @@ -60,7 +61,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public FunctionWrapper[] parseArgument(AbstractPlatform platform, + public FunctionWrapper[] parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getFunction(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java new file mode 100644 index 0000000000..d4c7c949c4 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import org.bukkit.command.CommandSender; + +/** + * An argument that represents arbitrary strings + */ +public class GreedyStringArgument extends AbstractGreedyStringArgument { + /** + * A string argument for a string of any length + * + * @param nodeName the name of the node for this argument + */ + public GreedyStringArgument(String nodeName) { + super(nodeName); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java new file mode 100644 index 0000000000..9ab2843f9f --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import org.bukkit.command.CommandSender; + +/** + * An argument that represents primitive Java ints + */ +public class IntegerArgument extends AbstractIntegerArgument { + + /** + * An integer argument + * + * @param nodeName the name of the node for this argument + */ + public IntegerArgument(String nodeName) { + super(nodeName); + } + + /** + * An integer argument with a minimum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + */ + public IntegerArgument(String nodeName, int min) { + super(nodeName, min); + } + + /** + * An integer argument with a minimum and maximum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + * @param max The maximum value this argument can take (inclusive) + */ + public IntegerArgument(String nodeName, int min, int max) { + super(nodeName, min, max); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java index 177872e848..29855ee44c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java @@ -26,11 +26,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.IntegerRange; +import org.bukkit.command.CommandSender; /** * An argument that represents a range of integer values */ -public class IntegerRangeArgument extends SafeOverrideableArgument { +public class IntegerRangeArgument extends SafeOverrideableArgument { /** * An IntegerRange argument. Represents a range of whole numbers @@ -51,7 +52,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public IntegerRange parseArgument(AbstractPlatform platform, + public IntegerRange parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getIntRange(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java index 373a035f06..247a149bed 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import org.bukkit.command.CommandSender; import org.bukkit.inventory.ItemStack; import com.mojang.brigadier.context.CommandContext; @@ -31,7 +32,7 @@ /** * An argument that represents the Bukkit ItemStack object */ -public class ItemStackArgument extends SafeOverrideableArgument { +public class ItemStackArgument extends SafeOverrideableArgument { /** * An ItemStack argument. Always returns an itemstack of size 1 @@ -52,7 +53,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ItemStack parseArgument(AbstractPlatform platform, + public ItemStack parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getItemStack(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java index c0db7d5da1..7168ce5613 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java @@ -22,6 +22,7 @@ import java.util.function.Predicate; +import org.bukkit.command.CommandSender; import org.bukkit.inventory.ItemStack; import com.mojang.brigadier.context.CommandContext; @@ -34,7 +35,7 @@ * An argument that represents a Predicate<ItemStack> */ @SuppressWarnings("rawtypes") -public class ItemStackPredicateArgument extends Argument { +public class ItemStackPredicateArgument extends Argument { /** * A ItemStack Predicate argument. Represents a predicate for itemstacks @@ -55,7 +56,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Predicate parseArgument(AbstractPlatform platform, + public Predicate parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getItemStackPredicate(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java index ca6f62c852..961c99f91d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java @@ -42,7 +42,7 @@ * @param the type that this list argument generates a list of. */ @SuppressWarnings("rawtypes") -public class ListArgument extends Argument implements IGreedyArgument { +public class ListArgument extends Argument implements IGreedyArgument { private final String delimiter; private final boolean allowDuplicates; @@ -124,11 +124,11 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public List parseArgument(AbstractPlatform platform, + public List parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the list of values which this can take Map values = new HashMap<>(); - for (T object : supplier.apply(((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource())) { + for (T object : supplier.apply(platform.getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource())) { values.put(mapper.apply(object), object); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java new file mode 100644 index 0000000000..addff9f1ab --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import org.bukkit.command.CommandSender; + +/** + * A pseudo-argument representing a single literal string + */ +public class LiteralArgument extends AbstractLiteralArgument { + /** + * A literal argument. Only takes one string value which cannot be modified + * + * @param literal the string literal that this argument will represent + */ + public LiteralArgument(String literal) { + super(literal); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java index c1f052e53a..ba6d1dbc4d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java @@ -28,12 +28,13 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.Location2D; +import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit {@link Location} object in x and z directions * @apiNote Returns a {@link Location2D} object */ -public class Location2DArgument extends SafeOverrideableArgument { +public class Location2DArgument extends SafeOverrideableArgument { /** * A Location argument. Represents Minecraft locations in 2D space. Defaults to {@link LocationType#PRECISE_POSITION} @@ -77,7 +78,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Location2D parseArgument(AbstractPlatform platform, + public Location2D parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return isPrecise ? ((BukkitPlatform) platform).getLocation2DPrecise(cmdCtx, key) : ((BukkitPlatform) platform).getLocation2DBlock(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java index 5ed5d7dc79..ab8edb08a1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java @@ -27,12 +27,13 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit {@link Location} object * @apiNote Returns a {@link Location} object */ -public class LocationArgument extends SafeOverrideableArgument { +public class LocationArgument extends SafeOverrideableArgument { /** * A Location argument. Represents Minecraft locations. Defaults to {@link LocationType#PRECISE_POSITION} @@ -77,7 +78,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Location parseArgument(AbstractPlatform platform, + public Location parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return isPrecise ? ((BukkitPlatform) platform).getLocationPrecise(cmdCtx, key) : ((BukkitPlatform) platform).getLocationBlock(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java new file mode 100644 index 0000000000..d735731452 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -0,0 +1,58 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import org.bukkit.command.CommandSender; + +/** + * An argument that represents primitive Java longs + */ +public class LongArgument extends AbstractLongArgument { + /** + * A long argument + * + * @param nodeName the name of the node for this argument + */ + public LongArgument(String nodeName) { + super(nodeName); + } + + /** + * A long argument with a minimum value + * + * @param nodeName the name of the node for this argument + * @param value The minimum value this argument can take (inclusive) + */ + public LongArgument(String nodeName, long value) { + super(nodeName, value); + } + + /** + * A long argument with a minimum and maximum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + * @param max The maximum value this argument can take (inclusive) + */ + public LongArgument(String nodeName, long min, long max) { + super(nodeName, min, max); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java index 71bd18974e..8d8bf1a800 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java @@ -21,6 +21,7 @@ package dev.jorel.commandapi.arguments; import org.bukkit.Keyed; +import org.bukkit.command.CommandSender; import org.bukkit.loot.LootTable; import com.mojang.brigadier.context.CommandContext; @@ -32,7 +33,7 @@ /** * An argument that represents the Bukkit LootTable object */ -public class LootTableArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class LootTableArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * A LootTable argument that represents a Bukkit LootTable. @@ -58,7 +59,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public LootTable parseArgument(AbstractPlatform platform, + public LootTable parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getLootTable(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java index e02fa77c66..8ca79cb8b1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java @@ -26,11 +26,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.MathOperation; +import org.bukkit.command.CommandSender; /** * An argument that represents Minecraft scoreboard math operations */ -public class MathOperationArgument extends SafeOverrideableArgument { +public class MathOperationArgument extends SafeOverrideableArgument { /** * A MathOperation argument. Represents a math operation (e.g. addition, subtraction etc.) @@ -51,7 +52,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public MathOperation parseArgument(AbstractPlatform platform, + public MathOperation parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getMathOperation(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java new file mode 100644 index 0000000000..5dee16e663 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import org.bukkit.command.CommandSender; + +/** + * An argument that represents multiple LiteralArguments + */ +public class MultiLiteralArgument extends AbstractMultiLiteralArgument { + public MultiLiteralArgument(String... literals) { + super(literals); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java index 8cd9bddfda..630a904144 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java @@ -26,11 +26,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents an NBTContainer from the NBT API */ -public class NBTCompoundArgument extends SafeOverrideableArgument { +public class NBTCompoundArgument extends SafeOverrideableArgument { /** * An NBT Compound Argument. Represents Minecraft's NBT Compound Tag using the @@ -59,7 +60,7 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public NBTContainer parseArgument(AbstractPlatform platform, + public NBTContainer parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return (NBTContainer) ((BukkitPlatform) platform).getNBTCompound(cmdCtx, key, CommandAPI.getConfiguration().getNBTContainerConstructor()); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java index 2a2d5c520f..84c3c5f9be 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java @@ -27,6 +27,7 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents a Minecraft resource location (or namespaced key) @@ -35,7 +36,7 @@ * {@code .} (dot). The key can also contain {@code /} (forward slash) * @apiNote Returns a {@link NamespacedKey} object */ -public class NamespacedKeyArgument extends SafeOverrideableArgument { +public class NamespacedKeyArgument extends SafeOverrideableArgument { /** * Constructs a MinecraftKeyArgument with a given node name. @@ -58,7 +59,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public NamespacedKey parseArgument(AbstractPlatform platform, + public NamespacedKey parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getMinecraftKey(cmdCtx, key); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java index feaaf9e6c3..58a0cc9e16 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import org.bukkit.command.CommandSender; import org.bukkit.scoreboard.Objective; import com.mojang.brigadier.context.CommandContext; @@ -31,7 +32,7 @@ /** * An argument that represents the name of a scoreboard objective */ -public class ObjectiveArgument extends SafeOverrideableArgument { +public class ObjectiveArgument extends SafeOverrideableArgument { /** * An Objective argument. Represents a scoreboard objective @@ -52,7 +53,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getObjective(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java index 885bf1ad8f..10e223ff28 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java @@ -25,11 +25,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents the name of an objective criteria */ -public class ObjectiveCriteriaArgument extends Argument { +public class ObjectiveCriteriaArgument extends Argument { /** * An Objective criteria argument. Represents an objective criteria @@ -50,7 +51,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getObjectiveCriteria(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java index 9b7592d39c..fc48de05ab 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java @@ -27,11 +27,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Player object */ -public class OfflinePlayerArgument extends SafeOverrideableArgument { +public class OfflinePlayerArgument extends SafeOverrideableArgument { /** * A Player argument. Produces a single player, regardless of whether @@ -54,7 +55,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public OfflinePlayer parseArgument(AbstractPlatform platform, + public OfflinePlayer parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getOfflinePlayer(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java index 65f389e8d4..179231d670 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java @@ -26,12 +26,13 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.ParticleData; +import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Particle object */ @SuppressWarnings("rawtypes") -public class ParticleArgument extends SafeOverrideableArgument> { +public class ParticleArgument extends SafeOverrideableArgument, CommandSender> { /** * A Particle argument. Represents Minecraft particles @@ -52,7 +53,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ParticleData parseArgument(AbstractPlatform platform, + public ParticleData parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getParticle(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java index 115920cdd1..92d6c7e53f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import com.mojang.brigadier.context.CommandContext; @@ -31,7 +32,7 @@ /** * An argument that represents the Bukkit Player object */ -public class PlayerArgument extends SafeOverrideableArgument { +public class PlayerArgument extends SafeOverrideableArgument { /** * A Player argument. Produces a single player, regardless of whether @@ -54,7 +55,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Player parseArgument(AbstractPlatform platform, + public Player parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getPlayer(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java index 79700ed925..2e4d7e6686 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import org.bukkit.command.CommandSender; import org.bukkit.potion.PotionEffectType; import com.mojang.brigadier.context.CommandContext; @@ -31,7 +32,7 @@ /** * An argument that represents the Bukkit PotionEffectType object */ -public class PotionEffectArgument extends SafeOverrideableArgument { +public class PotionEffectArgument extends SafeOverrideableArgument { /** * A PotionEffect argument. Represents status/potion effects @@ -52,7 +53,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public PotionEffectType parseArgument(AbstractPlatform platform, + public PotionEffectType parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getPotionEffect(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java index 52f00534f9..d58206dc9d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java @@ -21,6 +21,7 @@ package dev.jorel.commandapi.arguments; import org.bukkit.Keyed; +import org.bukkit.command.CommandSender; import org.bukkit.inventory.Recipe; import com.mojang.brigadier.context.CommandContext; @@ -32,7 +33,7 @@ /** * An argument that represents the Bukkit Recipe object */ -public class RecipeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class RecipeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * A Recipe argument. Represents a Bukkit Recipe or ComplexRecipe @@ -58,7 +59,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Recipe parseArgument(AbstractPlatform platform, + public Recipe parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getRecipe(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java index 9680f83b74..aeacb06b00 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java @@ -26,11 +26,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.Rotation; +import org.bukkit.command.CommandSender; /** * An argument that represents rotation as pitch and yaw */ -public class RotationArgument extends SafeOverrideableArgument { +public class RotationArgument extends SafeOverrideableArgument { /** * A Rotation argument. Represents pitch and yaw @@ -51,7 +52,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Rotation parseArgument(AbstractPlatform platform, + public Rotation parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getRotation(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java index f8f2b32447..2ce04e7979 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java @@ -27,11 +27,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents a scoreholder's name, or a collection of scoreholder names */ -public class ScoreHolderArgument extends Argument { +public class ScoreHolderArgument extends Argument { private final boolean single; @@ -75,7 +76,7 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public T parseArgument(AbstractPlatform platform, + public T parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return (T) (single ? ((BukkitPlatform) platform).getScoreHolderSingle(cmdCtx, key) : ((BukkitPlatform) platform).getScoreHolderMultiple(cmdCtx, key)); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java index 8ed4fd87b0..df5cdbc4e2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java @@ -26,11 +26,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.ScoreboardSlot; +import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit ScoreboardSlot object */ -public class ScoreboardSlotArgument extends SafeOverrideableArgument { +public class ScoreboardSlotArgument extends SafeOverrideableArgument { /** * A Display slot argument. Represents scoreboard slots @@ -51,7 +52,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ScoreboardSlot parseArgument(AbstractPlatform platform, + public ScoreboardSlot parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getScoreboardSlot(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java index 10399ad8d4..97142b7103 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java @@ -27,11 +27,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Sound object */ -public class SoundArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class SoundArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * A Sound argument. Represents Bukkit's Sound object @@ -57,7 +58,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Sound parseArgument(AbstractPlatform platform, + public Sound parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getSound(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java new file mode 100644 index 0000000000..6f6813f267 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import org.bukkit.command.CommandSender; + +/** + * An argument that represents a simple String + */ +public class StringArgument extends AbstractStringArgument { + /** + * A string argument for one word + * + * @param nodeName the name of the node for this argument + */ + public StringArgument(String nodeName) { + super(nodeName); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java index 444f375469..3fe31b602f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import org.bukkit.command.CommandSender; import org.bukkit.scoreboard.Team; import com.mojang.brigadier.context.CommandContext; @@ -31,7 +32,7 @@ /** * An argument that represents the name of a scoreboard Team */ -public class TeamArgument extends SafeOverrideableArgument { +public class TeamArgument extends SafeOverrideableArgument { /** * A Team argument. Represents a scoreboard Team @@ -52,7 +53,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, + public String parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getTeam(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java new file mode 100644 index 0000000000..4e34fc7e8b --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import org.bukkit.command.CommandSender; + +/** + * An argument that represents text, encased in quotes + */ +public class TextArgument extends AbstractTextArgument { + /** + * A string argument for one word, or multiple words encased in quotes + * + * @param nodeName the name of the node for this argument + */ + public TextArgument(String nodeName) { + super(nodeName); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java index eaee1a7013..854990d573 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java @@ -26,11 +26,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.Time; +import org.bukkit.command.CommandSender; /** * An argument that represents a duration of time in ticks */ -public class TimeArgument extends SafeOverrideableArgument { +public class TimeArgument extends SafeOverrideableArgument { /** * A Time argument. Represents the number of in game ticks @@ -51,7 +52,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(AbstractPlatform platform, + public Integer parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getTime(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java index d6d991fb6e..d85d7101a5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java @@ -27,11 +27,12 @@ import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; /** * An argument that represents a UUID */ -public class UUIDArgument extends SafeOverrideableArgument { +public class UUIDArgument extends SafeOverrideableArgument { /** * A UUID argument. Represents an in-game entity UUID @@ -52,7 +53,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public UUID parseArgument(AbstractPlatform platform, + public UUID parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getUUID(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index 3d0ccbd527..7a0aa6b24a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -530,8 +530,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = senderWrapper.getSource(); if (sender instanceof CraftPlayer player) { return player.getHandle().getCommandListener(); } else if (sender instanceof CraftBlockCommandSender blockCommandSender) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java index 6ac65bf5d6..8fdc807fe5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java @@ -53,9 +53,8 @@ public String[] compatibleVersions() { @Differs(from = "1.13.1", by = "using VanillaCommandWrapper.getListener") @Override - public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); - return VanillaCommandWrapper.getListener(sender); + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + return VanillaCommandWrapper.getListener(senderWrapper.getSource()); } @Differs(from = "1.13.1", by = "rename CriterionConditionValue.c -> CriterionConditionValue.FloatRange") diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index 032fb76654..cc654ce671 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -522,8 +522,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = senderWrapper.getSource(); if (sender instanceof CraftPlayer player) { return player.getHandle().getCommandListener(); } else if (sender instanceof CraftBlockCommandSender blockCommandSender) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index a79a4c7ba8..630c3a1475 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -524,9 +524,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); - return VanillaCommandWrapper.getListener(sender); + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + return VanillaCommandWrapper.getListener(senderWrapper.getSource()); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index 3292752bf3..ce83b3372c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -523,9 +523,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); - return VanillaCommandWrapper.getListener(sender); + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + return VanillaCommandWrapper.getListener(senderWrapper.getSource()); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index 518b5257a5..f8c6f0069a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -543,9 +543,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); - return VanillaCommandWrapper.getListener(sender); + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + return VanillaCommandWrapper.getListener(senderWrapper.getSource()); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index cd00387d95..ef942d8b36 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -542,9 +542,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); - return VanillaCommandWrapper.getListener(sender); + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + return VanillaCommandWrapper.getListener(senderWrapper.getSource()); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index 5d4acf3443..274d81160f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -565,9 +565,8 @@ public BaseComponent[] getChatComponent(CommandContext c } @Override - public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); - return VanillaCommandWrapper.getListener(sender); + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + return VanillaCommandWrapper.getListener(senderWrapper.getSource()); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java index f62957d700..568ded1540 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java @@ -286,9 +286,8 @@ public com.mojang.brigadier.CommandDispatcher getBrigadierDi } @Override - public CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); - return VanillaCommandWrapper.getListener(sender); + public CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + return VanillaCommandWrapper.getListener(senderWrapper.getSource()); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java index 1050a993c7..3dd06ebde4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java @@ -348,9 +348,8 @@ public com.mojang.brigadier.CommandDispatcher getBrigadierDi } @Override - public CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); - return VanillaCommandWrapper.getListener(sender); + public CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + return VanillaCommandWrapper.getListener(senderWrapper.getSource()); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java index 5037b6e370..30b766663d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java @@ -298,9 +298,8 @@ public com.mojang.brigadier.CommandDispatcher getBrigadierDi } @Override - public CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); - return VanillaCommandWrapper.getListener(sender); + public CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + return VanillaCommandWrapper.getListener(senderWrapper.getSource()); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java index 075d05adaf..1143650458 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java @@ -378,9 +378,8 @@ public final com.mojang.brigadier.CommandDispatcher getBriga } @Override - public final CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); - return VanillaCommandWrapper.getListener(sender); + public final CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + return VanillaCommandWrapper.getListener(senderWrapper.getSource()); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java index 894b694a38..a541fe7d42 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java @@ -439,7 +439,7 @@ public final BaseComponent[] getChatComponent(CommandContext } @Override - public abstract CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender sender); + public abstract CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender sender); @Override public final AbstractCommandSender getCommandSenderFromCommandSource(CommandSourceStack css) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index b6e1dd2bed..3a9928f672 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -10,7 +10,7 @@ * replace this class with their own version that handles loads the correct class for thier version */ public interface CommandAPIVersionHandler { - static AbstractPlatform getPlatform() { + static AbstractPlatform getPlatform() { return new MockNMS(new NMS_1_19_1_R1()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java index db426e0185..bf50dc50f0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java @@ -259,8 +259,8 @@ public CommandDispatcher getBrigadierDispatcher() { @SuppressWarnings("deprecation") @Override - public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { - CommandSender sender = (CommandSender) senderWrapper.getSource(); + public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractCommandSender senderWrapper) { + CommandSender sender = senderWrapper.getSource(); CommandListenerWrapper clw = Mockito.mock(CommandListenerWrapper.class); Mockito.when(clw.getBukkitSender()).thenReturn(sender); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java index d4c6978bca..af8dd77ddc 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java @@ -3,6 +3,7 @@ import java.util.List; import java.util.concurrent.ExecutionException; +import dev.jorel.commandapi.BukkitPlatform; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -30,7 +31,7 @@ public boolean dispatchThrowableCommand(CommandSender sender, String commandLine AsyncCatcher.catchOp("command dispatch"); @SuppressWarnings("rawtypes") CommandDispatcher dispatcher = Brigadier.getCommandDispatcher(); - Object css = Brigadier.getBrigadierSourceFromCommandSender(sender); + Object css = Brigadier.getBrigadierSourceFromCommandSender(BukkitPlatform.get().wrapCommandSender(sender)); return dispatcher.execute(commandLine, css) != 0; } } @@ -48,7 +49,7 @@ public boolean dispatchCommand(CommandSender sender, String commandLine) { public List getSuggestions(CommandSender sender, String commandLine) { AsyncCatcher.catchOp("command tabcomplete"); CommandDispatcher dispatcher = Brigadier.getCommandDispatcher(); - Object css = Brigadier.getBrigadierSourceFromCommandSender(sender); + Object css = Brigadier.getBrigadierSourceFromCommandSender(BukkitPlatform.get().wrapCommandSender(sender)); ParseResults parseResults = dispatcher.parse(commandLine, css); Suggestions suggestions = null; try { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index fa23f75d1a..6836b42060 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -65,7 +65,7 @@ public interface CommandAPIVersionHandler { * * @return an instance of NMS which can run on the specified Minecraft version */ - static AbstractPlatform getPlatform() { + static AbstractPlatform getPlatform() { if (CommandAPI.getConfiguration().shouldUseLatestNMSVersion()) { return new NMS_1_19_1_R1(); } else { From 89854e2cdf273da3c54c4c4e13183f6a1a006796 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 21 Oct 2022 20:07:18 -0400 Subject: [PATCH 060/638] Make Arguments executable - add test for CommandTree --- .../commandapi/AbstractArgumentTree.java | 18 +- .../commandapi/AbstractCommandAPICommand.java | 21 +-- .../jorel/commandapi/AbstractCommandTree.java | 6 +- .../dev/jorel/commandapi/BaseHandler.java | 58 +++---- .../java/dev/jorel/commandapi/Brigadier.java | 2 +- .../java/dev/jorel/commandapi/Execution.java | 10 +- .../abstractions/AbstractPlatform.java | 6 +- .../arguments/AbstractBooleanArgument.java | 2 +- .../arguments/AbstractDoubleArgument.java | 2 +- .../arguments/AbstractFloatArgument.java | 2 +- .../AbstractGreedyStringArgument.java | 2 +- .../arguments/AbstractIntegerArgument.java | 2 +- .../arguments/AbstractLiteralArgument.java | 2 +- .../arguments/AbstractLongArgument.java | 2 +- .../AbstractMultiLiteralArgument.java | 2 +- .../arguments/AbstractStringArgument.java | 2 +- .../arguments/AbstractTextArgument.java | 2 +- .../jorel/commandapi/arguments/Argument.java | 36 ++-- .../commandapi/arguments/IPreviewable.java | 2 +- .../arguments/SafeOverrideableArgument.java | 18 +- .../exceptions/GreedyArgumentException.java | 6 +- ...kitExecutor.java => BukkitExecutable.java} | 40 ++--- .../dev/jorel/commandapi/BukkitExecution.java | 4 +- .../dev/jorel/commandapi/BukkitPlatform.java | 6 +- .../jorel/commandapi/CommandAPICommand.java | 14 +- .../dev/jorel/commandapi/CommandTree.java | 12 +- .../java/dev/jorel/commandapi/Converter.java | 13 +- .../arguments/AdvancementArgument.java | 3 +- .../arguments/AdventureChatArgument.java | 3 +- .../AdventureChatComponentArgument.java | 3 +- .../commandapi/arguments/AngleArgument.java | 3 +- .../commandapi/arguments/AxisArgument.java | 3 +- .../commandapi/arguments/BiomeArgument.java | 3 +- .../arguments/BlockPredicateArgument.java | 3 +- .../arguments/BlockStateArgument.java | 3 +- .../commandapi/arguments/BooleanArgument.java | 3 +- .../commandapi/arguments/ChatArgument.java | 3 +- .../arguments/ChatColorArgument.java | 3 +- .../arguments/ChatComponentArgument.java | 3 +- .../commandapi/arguments/CustomArgument.java | 11 +- .../commandapi/arguments/DoubleArgument.java | 3 +- .../arguments/EnchantmentArgument.java | 3 +- .../arguments/EntitySelectorArgument.java | 3 +- .../arguments/EntityTypeArgument.java | 3 +- .../arguments/EnvironmentArgument.java | 3 +- .../commandapi/arguments/FloatArgument.java | 8 +- .../arguments/FloatRangeArgument.java | 3 +- .../arguments/FunctionArgument.java | 3 +- .../arguments/GreedyStringArgument.java | 3 +- .../commandapi/arguments/IntegerArgument.java | 3 +- .../arguments/IntegerRangeArgument.java | 3 +- .../arguments/ItemStackArgument.java | 3 +- .../arguments/ItemStackPredicateArgument.java | 3 +- .../commandapi/arguments/ListArgument.java | 4 +- .../commandapi/arguments/LiteralArgument.java | 3 +- .../arguments/Location2DArgument.java | 3 +- .../arguments/LocationArgument.java | 3 +- .../commandapi/arguments/LongArgument.java | 3 +- .../arguments/LootTableArgument.java | 3 +- .../arguments/MathOperationArgument.java | 3 +- .../arguments/MultiLiteralArgument.java | 3 +- .../arguments/NBTCompoundArgument.java | 3 +- .../arguments/NamespacedKeyArgument.java | 3 +- .../arguments/ObjectiveArgument.java | 3 +- .../arguments/ObjectiveCriteriaArgument.java | 3 +- .../arguments/OfflinePlayerArgument.java | 3 +- .../arguments/ParticleArgument.java | 3 +- .../commandapi/arguments/PlayerArgument.java | 3 +- .../arguments/PotionEffectArgument.java | 3 +- .../commandapi/arguments/RecipeArgument.java | 3 +- .../arguments/RotationArgument.java | 3 +- .../arguments/ScoreHolderArgument.java | 3 +- .../arguments/ScoreboardSlotArgument.java | 3 +- .../commandapi/arguments/SoundArgument.java | 3 +- .../commandapi/arguments/StringArgument.java | 3 +- .../commandapi/arguments/TeamArgument.java | 3 +- .../commandapi/arguments/TextArgument.java | 3 +- .../commandapi/arguments/TimeArgument.java | 3 +- .../commandapi/arguments/UUIDArgument.java | 3 +- .../jorel/commandapi/test/ArgumentTests.java | 164 ++++++++++++++++-- .../jorel/commandapi/AdvancedConverter.java | 19 +- 81 files changed, 403 insertions(+), 242 deletions(-) rename commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/{BukkitExecutor.java => BukkitExecutable.java} (85%) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java index 22221dc7ae..39d79f9740 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java @@ -1,6 +1,5 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.arguments.Argument; @@ -10,19 +9,20 @@ /** * This is a base class for arguments, allowing them to behave as tree nodes in * a {@link AbstractCommandTree} + * @param The class extending this class, used as the return type for chain calls * @param The CommandSender class used by the class extending this class */ -public abstract class AbstractArgumentTree extends Executable, CommandSender> { +public abstract class AbstractArgumentTree, CommandSender> extends Executable { - final List> arguments = new ArrayList<>(); - final Argument argument; + final List> arguments = new ArrayList<>(); + final Argument argument; /** * Instantiates an {@link AbstractArgumentTree}. This can only be called if the class * that extends this is an {@link Argument} */ protected AbstractArgumentTree() { - if (!(this instanceof Argument argument)) { + if (!(this instanceof Argument argument)) { throw new IllegalArgumentException("Implicit inherited constructor must be from Argument"); } this.argument = argument; @@ -34,7 +34,7 @@ protected AbstractArgumentTree() { * @param argument the argument to use as the underlying argument for this * argument tree */ - public AbstractArgumentTree(final Argument argument) { + public AbstractArgumentTree(final Argument argument) { this.argument = argument; // Copy the executor in case any executions were defined on the argument this.executor = argument.executor; @@ -46,9 +46,9 @@ public AbstractArgumentTree(final Argument argument) { * @param tree The child branch * @return this tree node */ - public AbstractArgumentTree then(final AbstractArgumentTree tree) { + public Impl then(final AbstractArgumentTree tree) { this.arguments.add(tree); - return this; + return (Impl) this; } List> getExecutions() { @@ -60,7 +60,7 @@ List> getExecutions() { executions.add(platform.newConcreteExecution(List.of(this.argument), this.executor)); } // Add all executions from all arguments - for (AbstractArgumentTree tree : arguments) { + for (AbstractArgumentTree tree : arguments) { for (Execution execution : tree.getExecutions()) { // Prepend this argument to the arguments of the executions executions.add(execution.prependedBy(this.argument)); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index 3b70a2eefd..34ba63a81d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -39,7 +39,7 @@ */ public abstract class AbstractCommandAPICommand, CommandSender> extends ExecutableCommand { - protected List> args = new ArrayList<>(); + protected List> args = new ArrayList<>(); protected List subcommands = new ArrayList<>(); protected boolean isConverted; @@ -70,7 +70,7 @@ protected AbstractCommandAPICommand(CommandMetaData metaData) { * command can accept * @return this command builder */ - public Impl withArguments(List> args) { + public Impl withArguments(List> args) { this.args.addAll(args); return (Impl) this; } @@ -81,7 +81,8 @@ public Impl withArguments(List> args) { * @param args Arguments that this command can accept * @return this command builder */ - public Impl withArguments(Argument... args) { + @SafeVarargs + public final Impl withArguments(Argument... args) { this.args.addAll(Arrays.asList(args)); return (Impl) this; } @@ -113,7 +114,7 @@ public Impl withSubcommands(Impl... subcommands) { * * @return the list of arguments that this command has */ - public List> getArguments() { + public List> getArguments() { return args; } @@ -122,7 +123,7 @@ public List> getArguments() { * * @param args the arguments that this command has */ - public void setArguments(List> args) { + public void setArguments(List> args) { this.args = args; } @@ -170,7 +171,7 @@ Impl setConverted(boolean isConverted) { // shouldn't // be accessing/depending on any of the contents of the current class instance) private static , CommandSender> - void flatten(Impl rootCommand, List> prevArguments, Impl subcommand) { + void flatten(Impl rootCommand, List> prevArguments, Impl subcommand) { // Get the list of literals represented by the current subcommand. This // includes the subcommand's name and any aliases for this subcommand String[] literals = new String[subcommand.meta.aliases.length + 1]; @@ -178,13 +179,13 @@ void flatten(Impl rootCommand, List> prevArguments, I System.arraycopy(subcommand.meta.aliases, 0, literals, 1, subcommand.meta.aliases.length); // Create a MultiLiteralArgument using the subcommand information - AbstractMultiLiteralArgument literal = BaseHandler.getInstance().getPlatform().newConcreteMultiLiteralArgument(literals); + AbstractMultiLiteralArgument literal = BaseHandler.getInstance().getPlatform().newConcreteMultiLiteralArgument(literals); literal.withPermission(subcommand.meta.permission) .withRequirement(subcommand.meta.requirements) .setListed(false); - prevArguments.add((Argument) literal); + prevArguments.add((Argument) literal); if (subcommand.executor.hasAnyExecutors()) { // Create the new command. The new command: @@ -212,7 +213,7 @@ public void register() { CommandAPI.logWarning("Command /" + meta.commandName + " is being registered after the server had loaded. Undefined behavior ahead!"); } try { - Argument[] argumentsArr = args == null ? new Argument[0] : args.toArray(Argument[]::new); + Argument[] argumentsArr = args == null ? new Argument[0] : args.toArray(Argument[]::new); // Check IGreedyArgument constraints for (int i = 0, numGreedyArgs = 0; i < argumentsArr.length; i++) { @@ -225,7 +226,7 @@ public void register() { // Assign the command's permissions to arguments if the arguments don't already // have one - for (Argument argument : argumentsArr) { + for (Argument argument : argumentsArr) { if (argument.getArgumentPermission() == null) { argument.withPermission(meta.permission); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java index 5963bd533f..07c2f76582 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java @@ -12,7 +12,7 @@ */ public abstract class AbstractCommandTree, CommandSender> extends ExecutableCommand { - private final List> arguments = new ArrayList<>(); + private final List> arguments = new ArrayList<>(); /** * Creates a main root node for a command tree with a given command name @@ -29,7 +29,7 @@ public AbstractCommandTree(final String commandName) { * @param tree the child node * @return this root node */ - public Impl then(final AbstractArgumentTree tree) { + public Impl then(final AbstractArgumentTree tree) { this.arguments.add(tree); return (Impl) this; } @@ -44,7 +44,7 @@ public void register() { AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); executions.add(platform.newConcreteExecution(new ArrayList<>(), this.executor)); } - for (AbstractArgumentTree tree : arguments) { + for (AbstractArgumentTree tree : arguments) { executions.addAll(tree.getExecutions()); } for (Execution execution : executions) { diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 72af11ece9..195453cbc1 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -162,7 +162,7 @@ public AbstractPlatform getPlatform() { * @return a brigadier command which is registered internally * @throws CommandSyntaxException if an error occurs when the command is ran */ - Command generateCommand(Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException { + Command generateCommand(Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException { // Generate our command from executor return (cmdCtx) -> { @@ -213,13 +213,13 @@ Command generateCommand(Argument[] args, CustomCommand * @return an Object[] which can be used in (sender, args) -> * @throws CommandSyntaxException when an argument isn't formatted correctly */ - Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) + Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) throws CommandSyntaxException { // Array for arguments for executor List argList = new ArrayList<>(); // Populate array - for (Argument argument : args) { + for (Argument argument : args) { if (argument.isListed()) { argList.add(parseArgument(cmdCtx, argument.getNodeName(), argument, argList.toArray())); } @@ -237,7 +237,7 @@ Object[] argsToObjectArr(CommandContext cmdCtx, Argument cmdCtx, String key, Argument value, + Object parseArgument(CommandContext cmdCtx, String key, Argument value, Object[] previousArgs) throws CommandSyntaxException { if (value.isListed()) { return value.parseArgument(platform, cmdCtx, key, previousArgs); @@ -328,24 +328,24 @@ static boolean permissionCheck(AbstractCommandSender sender, CommandPermissio * multiliteral arguments were present (and expanded) and returns false if * multiliteral arguments were not present. */ - private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) + private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals for (int index = 0; index < args.length; index++) { // Find the first multiLiteral in the for loop - if (args[index] instanceof AbstractMultiLiteralArgument superArg) { + if (args[index] instanceof AbstractMultiLiteralArgument superArg) { // Add all of its entries for (int i = 0; i < superArg.getLiterals().length; i++) { - AbstractLiteralArgument litArg = BaseHandler.getInstance().getPlatform().newConcreteLiteralArgument(superArg.getLiterals()[i]); + AbstractLiteralArgument litArg = BaseHandler.getInstance().getPlatform().newConcreteLiteralArgument(superArg.getLiterals()[i]); litArg.setListed(superArg.isListed()) .withPermission(superArg.getArgumentPermission()) .withRequirement(superArg.getRequirements()); // Reconstruct the list of arguments and place in the new literals - Argument[] newArgs = Arrays.copyOf(args, args.length); - newArgs[index] = (Argument) litArg; + Argument[] newArgs = Arrays.copyOf(args, args.length); + newArgs[index] = (Argument) litArg; register(meta, newArgs, executor, converted); } return true; @@ -358,7 +358,7 @@ private boolean expandMultiLiterals(CommandMetaData meta, final Argument player // disallow /race invite player // Return true if conflict was present, otherwise return false - private boolean hasCommandConflict(String commandName, Argument[] args, String argumentsAsString) { + private boolean hasCommandConflict(String commandName, Argument[] args, String argumentsAsString) { List regArgs = new ArrayList<>(); for (RegisteredCommand rCommand : registeredCommands) { if (rCommand.commandName().equals(commandName)) { @@ -409,11 +409,11 @@ private boolean hasCommandConflict(String commandName, Argument[] args, St // Links arg -> Executor private ArgumentBuilder generateInnerArgument(Command command, - Argument[] args) { - Argument innerArg = args[args.length - 1]; + Argument[] args) { + Argument innerArg = args[args.length - 1]; // Handle Literal arguments - if (innerArg instanceof AbstractLiteralArgument literalArgument) { + if (innerArg instanceof AbstractLiteralArgument literalArgument) { return getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), innerArg.getArgumentPermission(), innerArg.getRequirements()).executes(command); } @@ -432,13 +432,13 @@ else if (innerArg instanceof ICustomProvidedArgument customProvidedArg } // Links arg1 -> arg2 -> ... argN -> innermostArgument - private ArgumentBuilder generateOuterArguments(ArgumentBuilder innermostArgument, Argument[] args) { + private ArgumentBuilder generateOuterArguments(ArgumentBuilder innermostArgument, Argument[] args) { ArgumentBuilder outer = innermostArgument; for (int i = args.length - 2; i >= 0; i--) { - Argument outerArg = args[i]; + Argument outerArg = args[i]; // Handle Literal arguments - if (outerArg instanceof AbstractLiteralArgument literalArgument) { + if (outerArg instanceof AbstractLiteralArgument literalArgument) { outer = getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), outerArg.getArgumentPermission(), outerArg.getRequirements()).then(outer); } @@ -466,12 +466,12 @@ else if (outerArg instanceof ICustomProvidedArgument customProvidedArg * @param args the declared arguments * @param aliases the command's aliases */ - private void handlePreviewableArguments(String commandName, Argument[] args, String[] aliases) { + private void handlePreviewableArguments(String commandName, Argument[] args, String[] aliases) { if (args.length > 0 && args[args.length - 1] instanceof IPreviewable previewable) { List path = new ArrayList<>(); path.add(commandName); - for (Argument arg : args) { + for (Argument arg : args) { path.add(arg.getNodeName()); } previewableArguments.put(List.copyOf(path), previewable); @@ -486,7 +486,7 @@ private void handlePreviewableArguments(String commandName, Argument[] arg // Builds our platform command using the given arguments for this method, then // registers it - void register(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) + void register(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals @@ -498,7 +498,7 @@ void register(CommandMetaData meta, final Argument[] args, Cus final String humanReadableCommandArgSyntax; { StringBuilder builder = new StringBuilder(); - for (Argument arg : args) { + for (Argument arg : args) { builder.append(arg.toString()).append(" "); } humanReadableCommandArgSyntax = builder.toString().trim(); @@ -508,7 +508,7 @@ void register(CommandMetaData meta, final Argument[] args, Cus // required arguments (i.e. not literal arguments) { Set argumentNames = new HashSet<>(); - for (Argument arg : args) { + for (Argument arg : args) { // We shouldn't find MultiLiteralArguments at this point, only LiteralArguments if (!(arg instanceof AbstractLiteralArgument)) { if (argumentNames.contains(arg.getNodeName())) { @@ -546,7 +546,7 @@ void register(CommandMetaData meta, final Argument[] args, Cus return; } else { List argumentsString = new ArrayList<>(); - for (Argument arg : args) { + for (Argument arg : args) { argumentsString.add(arg.getNodeName() + ":" + arg.getClass().getSimpleName()); } registeredCommands.add(new RegisteredCommand(commandName, argumentsString, shortDescription, @@ -646,8 +646,8 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandN } // Gets a RequiredArgumentBuilder for a DynamicSuggestedStringArgument - RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, - Argument argument) { + RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, + Argument argument) { final SuggestionProvider suggestions; @@ -664,8 +664,8 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandN } // Gets a RequiredArgumentBuilder for an argument, given a SuggestionProvider - RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, - Argument[] args, SuggestionProvider provider) { + RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, + Argument[] args, SuggestionProvider provider) { SuggestionProvider newSuggestionsProvider = provider; // If we have suggestions to add, combine provider with the suggestions @@ -697,12 +697,12 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandN argument.getArgumentPermission(), argument.getRequirements())).suggests(newSuggestionsProvider); } - Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) + Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) throws CommandSyntaxException { // Populate Object[], which is our previously filled arguments List previousArguments = new ArrayList<>(); - for (Argument arg : args) { + for (Argument arg : args) { if (arg.getNodeName().equals(nodeName) && !(arg instanceof AbstractLiteralArgument)) { break; } @@ -728,7 +728,7 @@ Object[] generatePreviousArguments(CommandContext context, Argument toSuggestions(Argument theArgument, Argument[] args, + SuggestionProvider toSuggestions(Argument theArgument, Argument[] args, boolean overrideSuggestions) { return (CommandContext context, SuggestionsBuilder builder) -> { // Construct the suggestion info diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index ba4ce0fdf9..c3cc3edda4 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -81,7 +81,7 @@ public static RootCommandNode getRootNode() { * @param literalArgument the LiteralArgument to convert from * @return a LiteralArgumentBuilder that represents the literal */ - public static LiteralArgumentBuilder fromLiteralArgument(AbstractLiteralArgument literalArgument) { + public static LiteralArgumentBuilder fromLiteralArgument(AbstractLiteralArgument literalArgument) { return BaseHandler.getInstance().getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), literalArgument.getArgumentPermission(), literalArgument.getRequirements()); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java index c1b524ac28..534045d97a 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java @@ -11,10 +11,10 @@ */ public abstract class Execution { - private final List> arguments; + private final List> arguments; private final CustomCommandExecutor> executor; - public Execution(List> arguments, CustomCommandExecutor> executor) { + public Execution(List> arguments, CustomCommandExecutor> executor) { this.arguments = arguments; this.executor = executor; } @@ -33,12 +33,12 @@ public void register(CommandMetaData meta) { protected abstract AbstractCommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta); - public Execution prependedBy(Argument argument) { - List> arguments = new ArrayList<>(); + public Execution prependedBy(Argument argument) { + List> arguments = new ArrayList<>(); arguments.add(argument); arguments.addAll(this.arguments); return newConcreteExecution(arguments, executor); } - protected abstract Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor); + protected abstract Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 8699e9a1b5..514f7735a9 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -101,9 +101,9 @@ public abstract class AbstractPlatform { public abstract void updateRequirements(AbstractPlayer player); - public abstract Execution newConcreteExecution(List> argument, CustomCommandExecutor> executor); + public abstract Execution newConcreteExecution(List> argument, CustomCommandExecutor> executor); - public abstract AbstractMultiLiteralArgument newConcreteMultiLiteralArgument(String[] literals); + public abstract AbstractMultiLiteralArgument newConcreteMultiLiteralArgument(String[] literals); - public abstract AbstractLiteralArgument newConcreteLiteralArgument(String literal); + public abstract AbstractLiteralArgument newConcreteLiteralArgument(String literal); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractBooleanArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractBooleanArgument.java index aedd2987ae..33ba693d32 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractBooleanArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractBooleanArgument.java @@ -31,7 +31,7 @@ * * @apiNote Returns a {@link boolean} */ -public abstract class AbstractBooleanArgument extends SafeOverrideableArgument { +public abstract class AbstractBooleanArgument, CommandSender> extends SafeOverrideableArgument { /** * Constructs a Boolean argument with a given node name diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractDoubleArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractDoubleArgument.java index b88e23b784..92e38fc006 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractDoubleArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractDoubleArgument.java @@ -32,7 +32,7 @@ * * @apiNote Returns a {@link double} */ -public abstract class AbstractDoubleArgument extends SafeOverrideableArgument { +public abstract class AbstractDoubleArgument, CommandSender> extends SafeOverrideableArgument { /** * A double argument diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractFloatArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractFloatArgument.java index 0c3b18f488..f148ea6d8e 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractFloatArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractFloatArgument.java @@ -30,7 +30,7 @@ /** * An argument that represents primitive Java floats */ -public abstract class AbstractFloatArgument extends SafeOverrideableArgument { +public abstract class AbstractFloatArgument, CommandSender> extends SafeOverrideableArgument { /** * A float argument diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractGreedyStringArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractGreedyStringArgument.java index eb76054dab..f95d692980 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractGreedyStringArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractGreedyStringArgument.java @@ -29,7 +29,7 @@ /** * An argument that represents arbitrary strings */ -public abstract class AbstractGreedyStringArgument extends SafeOverrideableArgument implements IGreedyArgument { +public abstract class AbstractGreedyStringArgument, CommandSender> extends SafeOverrideableArgument implements IGreedyArgument { /** * A string argument for a string of any length diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractIntegerArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractIntegerArgument.java index fe1735f60c..2f91c49a2d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractIntegerArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractIntegerArgument.java @@ -30,7 +30,7 @@ /** * An argument that represents primitive Java ints */ -public abstract class AbstractIntegerArgument extends SafeOverrideableArgument { +public abstract class AbstractIntegerArgument,CommandSender> extends SafeOverrideableArgument { /** * An integer argument diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLiteralArgument.java index d57a9309e6..231ee2e1a0 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLiteralArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLiteralArgument.java @@ -29,7 +29,7 @@ /** * A pseudo-argument representing a single literal string */ -public abstract class AbstractLiteralArgument extends Argument { +public abstract class AbstractLiteralArgument,CommandSender> extends Argument { private String literal; diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLongArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLongArgument.java index 1db147deaf..0c0d6509d7 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLongArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLongArgument.java @@ -30,7 +30,7 @@ /** * An argument that represents primitive Java longs */ -public abstract class AbstractLongArgument extends SafeOverrideableArgument { +public abstract class AbstractLongArgument,CommandSender> extends SafeOverrideableArgument { /** * A long argument diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractMultiLiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractMultiLiteralArgument.java index 727fc1a10f..10fb34b216 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractMultiLiteralArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractMultiLiteralArgument.java @@ -29,7 +29,7 @@ /** * An argument that represents multiple LiteralArguments */ -public abstract class AbstractMultiLiteralArgument extends Argument { +public abstract class AbstractMultiLiteralArgument,CommandSender> extends Argument { private String[] literals; diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractStringArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractStringArgument.java index c35574d62e..ecb0422981 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractStringArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractStringArgument.java @@ -29,7 +29,7 @@ /** * An argument that represents a simple String */ -public abstract class AbstractStringArgument extends Argument { +public abstract class AbstractStringArgument,CommandSender> extends Argument { /** * A string argument for one word diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java index 5330655f36..703170296a 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java @@ -29,7 +29,7 @@ /** * An argument that represents text, encased in quotes */ -public abstract class AbstractTextArgument extends Argument { +public abstract class AbstractTextArgument,CommandSender> extends Argument { /** * A string argument for one word, or multiple words encased in quotes diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java index 90c417cc61..702fbe2afb 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -42,8 +42,10 @@ * The core abstract class for Command API arguments * * @param The type of the underlying object that this argument casts to + * @param The class extending this class, used as the return type for chain calls + * @param The CommandSender class used by the class extending this class */ -public abstract class Argument extends AbstractArgumentTree { +public abstract class Argument, CommandSender> extends AbstractArgumentTree { /** * Returns the primitive type of the current Argument. After executing a @@ -126,9 +128,9 @@ public abstract T parseArgument(AbstractPlatform * * @return the current argument */ - public Argument includeSuggestions(ArgumentSuggestions suggestions) { + public Impl includeSuggestions(ArgumentSuggestions suggestions) { this.addedSuggestions = Optional.of(suggestions); - return this; + return (Impl) this; } /** @@ -143,7 +145,7 @@ public Argument includeSuggestions(ArgumentSuggestions suggest * @deprecated use {@link #includeSuggestions(ArgumentSuggestions)} instead */ @Deprecated(forRemoval = true) - public Argument includeSuggestions(Function suggestions) { + public Impl includeSuggestions(Function suggestions) { return includeSuggestions(ArgumentSuggestions.strings(suggestions)); } @@ -159,7 +161,7 @@ public Argument includeSuggestions(Function includeSuggestionsT(Function suggestions) { + public Impl includeSuggestionsT(Function suggestions) { return includeSuggestions(ArgumentSuggestions.stringsWithTooltips(suggestions)); } @@ -180,9 +182,9 @@ public Optional getIncludedSuggestions() { * @return the current argument */ - public Argument replaceSuggestions(ArgumentSuggestions suggestions) { + public Impl replaceSuggestions(ArgumentSuggestions suggestions) { this.suggestions = Optional.of(suggestions); - return this; + return (Impl) this; } /** @@ -192,7 +194,7 @@ public Argument replaceSuggestions(ArgumentSuggestions suggest * @deprecated use {@link #replaceSuggestions(ArgumentSuggestions)} instead */ @Deprecated(forRemoval = true) - public Argument replaceSuggestions(Function suggestions) { + public Impl replaceSuggestions(Function suggestions) { return replaceSuggestions(ArgumentSuggestions.strings(suggestions)); } @@ -203,7 +205,7 @@ public Argument replaceSuggestions(Function replaceSuggestionsT(Function suggestions) { + public Impl replaceSuggestionsT(Function suggestions) { return replaceSuggestions(ArgumentSuggestions.stringsWithTooltips(suggestions)); } @@ -230,9 +232,9 @@ public final Optional getOverriddenSuggestions() { * @param permission the permission required to execute this command * @return this current argument */ - public final Argument withPermission(CommandPermission permission) { + public final Impl withPermission(CommandPermission permission) { this.permission = permission; - return this; + return (Impl) this; } /** @@ -241,9 +243,9 @@ public final Argument withPermission(CommandPermission permiss * @param permission the permission required to execute this command * @return this current argument */ - public final Argument withPermission(String permission) { + public final Impl withPermission(String permission) { this.permission = CommandPermission.fromString(permission); - return this; + return (Impl) this; } /** @@ -276,9 +278,9 @@ public final Predicate> getRequirements() { * @param requirement the predicate that must be satisfied to use this argument * @return this current argument */ - public final Argument withRequirement(Predicate> requirement) { + public final Impl withRequirement(Predicate> requirement) { this.requirements = this.requirements.and(requirement); - return this; + return (Impl) this; } ///////////////// @@ -300,9 +302,9 @@ public boolean isListed() { * @param listed if true, this argument will be included in the Object args[] of the command executor * @return this current argument */ - public Argument setListed(boolean listed) { + public Impl setListed(boolean listed) { this.isListed = listed; - return this; + return (Impl) this; } /////////// diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java index 1a80dc448d..6c53d13fe6 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java @@ -9,7 +9,7 @@ * Minecraft's chat preview feature. To use this, the server must have * {@code previews-chat=true} set in its {@code server.properties} file */ -public interface IPreviewable, A> { +public interface IPreviewable, A> { /** * Sets the {@link PreviewableFunction} for this argument. This function will diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java index 09c2e6fd87..4b665135f0 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java @@ -34,8 +34,10 @@ * @param A custom type which is represented by this argument. For example, * a {@link StringArgument} will have a custom type * String + * @param The class extending this class, used as the return type for chain calls + * @param The CommandSender class used by the class extending this class */ -public abstract class SafeOverrideableArgument extends Argument { +public abstract class SafeOverrideableArgument, CommandSender> extends Argument { private final Function mapper; @@ -59,9 +61,9 @@ protected SafeOverrideableArgument(String nodeName, ArgumentType rawType, Fun * @param suggestions The safe suggestions to use * @return the current argument */ - public final Argument replaceSafeSuggestions(SafeSuggestions suggestions) { + public final Impl replaceSafeSuggestions(SafeSuggestions suggestions) { replaceSuggestions(suggestions.toSuggestions(mapper)); - return this; + return (Impl) this; } /** @@ -74,7 +76,7 @@ public final Argument replaceSafeSuggestions(SafeSuggestions replaceWithSafeSuggestions(Function suggestions) { + public final Impl replaceWithSafeSuggestions(Function suggestions) { return replaceSafeSuggestions(SafeSuggestions.suggest(suggestions)); } @@ -88,7 +90,7 @@ public final Argument replaceWithSafeSuggestions(Function replaceWithSafeSuggestionsT(Function[]> suggestions) { + public final Impl replaceWithSafeSuggestionsT(Function[]> suggestions) { return replaceSafeSuggestions(SafeSuggestions.tooltips(suggestions)); } @@ -100,7 +102,7 @@ public final Argument replaceWithSafeSuggestionsT(Function includeSafeSuggestions(SafeSuggestions suggestions) { + public final Impl includeSafeSuggestions(SafeSuggestions suggestions) { return this.includeSuggestions(suggestions.toSuggestions(mapper)); } @@ -116,7 +118,7 @@ public final Argument includeSafeSuggestions(SafeSuggestions includeWithSafeSuggestions(Function suggestions) { + public final Impl includeWithSafeSuggestions(Function suggestions) { return includeSafeSuggestions(SafeSuggestions.suggest(suggestions)); } @@ -134,7 +136,7 @@ public final Argument includeWithSafeSuggestions(Function includeWithSafeSuggestionsT(Function[]> suggestions) { + public final Impl includeWithSafeSuggestionsT(Function[]> suggestions) { return includeSafeSuggestions(SafeSuggestions.tooltips(suggestions)); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java index 83dc61f69c..75ab572bb6 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java @@ -37,14 +37,14 @@ public class GreedyArgumentException extends RuntimeException { * @param arguments the list of arguments that have been used for this command * (including the greedy string argument) */ - public GreedyArgumentException(Argument[] arguments) { + public GreedyArgumentException(Argument[] arguments) { super("Only one GreedyStringArgument or ChatArgument can be declared, at the end of a List. Found arguments: " + buildArgsStr(arguments)); } - private static String buildArgsStr(Argument[] arguments) { + private static String buildArgsStr(Argument[] arguments) { StringBuilder builder = new StringBuilder(); - for (Argument arg : arguments) { + for (Argument arg : arguments) { builder.append(arg.getNodeName()).append("<").append(arg.getClass().getSimpleName()).append("> "); } return builder.toString(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java similarity index 85% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutor.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java index 3b535097ef..b2f65efb67 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java @@ -1,14 +1,12 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.executors.*; import org.bukkit.command.CommandSender; -public interface BukkitExecutor> { - void addNormalExecutor(IExecutorNormal> executor); - - void addResultingExecutor(IExecutorResulting> executor); +public interface BukkitExecutable> { + CustomCommandExecutor> getExecutor(); // Regular command executor @@ -20,10 +18,10 @@ public interface BukkitExecutor> { */ default Impl executes(CommandExecutor executor, ExecutorType... types) { if(types == null || types.length == 0) { - addNormalExecutor(executor); + getExecutor().addNormalExecutor(executor); } else { for(ExecutorType type : types) { - addNormalExecutor(new CommandExecutor() { + getExecutor().addNormalExecutor(new CommandExecutor() { @Override public void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { @@ -48,10 +46,10 @@ public ExecutorType getType() { */ default Impl executes(ResultingCommandExecutor executor, ExecutorType... types) { if(types == null || types.length == 0) { - addResultingExecutor(executor); + getExecutor().addResultingExecutor(executor); } else { for(ExecutorType type : types) { - addResultingExecutor(new ResultingCommandExecutor() { + getExecutor().addResultingExecutor(new ResultingCommandExecutor() { @Override public int run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { @@ -76,7 +74,7 @@ public ExecutorType getType() { * @return this command builder */ default Impl executesPlayer(PlayerCommandExecutor executor) { - addNormalExecutor(executor); + getExecutor().addNormalExecutor(executor); return (Impl) this; } @@ -86,7 +84,7 @@ default Impl executesPlayer(PlayerCommandExecutor executor) { * @return this command builder */ default Impl executesPlayer(PlayerResultingCommandExecutor executor) { - addResultingExecutor(executor); + getExecutor().addResultingExecutor(executor); return (Impl) this; } @@ -98,7 +96,7 @@ default Impl executesPlayer(PlayerResultingCommandExecutor executor) { * @return this command builder */ default Impl executesEntity(EntityCommandExecutor executor) { - addNormalExecutor(executor); + getExecutor().addNormalExecutor(executor); return (Impl) this; } @@ -108,7 +106,7 @@ default Impl executesEntity(EntityCommandExecutor executor) { * @return this command builder */ default Impl executesEntity(EntityResultingCommandExecutor executor) { - addResultingExecutor(executor); + getExecutor().addResultingExecutor(executor); return (Impl) this; } @@ -120,7 +118,7 @@ default Impl executesEntity(EntityResultingCommandExecutor executor) { * @return this command builder */ default Impl executesProxy(ProxyCommandExecutor executor) { - addNormalExecutor(executor); + getExecutor().addNormalExecutor(executor); return (Impl) this; } @@ -130,7 +128,7 @@ default Impl executesProxy(ProxyCommandExecutor executor) { * @return this command builder */ default Impl executesProxy(ProxyResultingCommandExecutor executor) { - addResultingExecutor(executor); + getExecutor().addResultingExecutor(executor); return (Impl) this; } @@ -142,7 +140,7 @@ default Impl executesProxy(ProxyResultingCommandExecutor executor) { * @return this command builder */ default Impl executesCommandBlock(CommandBlockCommandExecutor executor) { - addNormalExecutor(executor); + getExecutor().addNormalExecutor(executor); return (Impl) this; } @@ -152,7 +150,7 @@ default Impl executesCommandBlock(CommandBlockCommandExecutor executor) { * @return this command builder */ default Impl executesCommandBlock(CommandBlockResultingCommandExecutor executor) { - addResultingExecutor(executor); + getExecutor().addResultingExecutor(executor); return (Impl) this; } @@ -164,7 +162,7 @@ default Impl executesCommandBlock(CommandBlockResultingCommandExecutor executor) * @return this command builder */ default Impl executesConsole(ConsoleCommandExecutor executor) { - addNormalExecutor(executor); + getExecutor().addNormalExecutor(executor); return (Impl) this; } @@ -174,7 +172,7 @@ default Impl executesConsole(ConsoleCommandExecutor executor) { * @return this command builder */ default Impl executesConsole(ConsoleResultingCommandExecutor executor) { - addResultingExecutor(executor); + getExecutor().addResultingExecutor(executor); return (Impl) this; } @@ -184,7 +182,7 @@ default Impl executesConsole(ConsoleResultingCommandExecutor executor) { * @return this command builder */ default Impl executesNative(NativeCommandExecutor executor) { - addNormalExecutor(executor); + getExecutor().addNormalExecutor(executor); return (Impl) this; } @@ -194,7 +192,7 @@ default Impl executesNative(NativeCommandExecutor executor) { * @return this command builder */ default Impl executesNative(NativeResultingCommandExecutor executor) { - addResultingExecutor(executor); + getExecutor().addResultingExecutor(executor); return (Impl) this; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java index 243e76a91b..944d508333 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java @@ -7,7 +7,7 @@ import java.util.List; public class BukkitExecution extends Execution { - public BukkitExecution(List> arguments, CustomCommandExecutor> executor) { + public BukkitExecution(List> arguments, CustomCommandExecutor> executor) { super(arguments, executor); } @@ -17,7 +17,7 @@ protected AbstractCommandAPICommand newConcreteCommandAPIComma } @Override - protected Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor) { + protected Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor) { return new BukkitExecution(arguments, executor); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index b68646d16f..d19819a362 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -457,17 +457,17 @@ public void updateRequirements(AbstractPlayer player) { } @Override - public Execution newConcreteExecution(List> argument, CustomCommandExecutor> executor) { + public Execution newConcreteExecution(List> argument, CustomCommandExecutor> executor) { return new BukkitExecution(argument, executor); } @Override - public AbstractMultiLiteralArgument newConcreteMultiLiteralArgument(String[] literals) { + public AbstractMultiLiteralArgument newConcreteMultiLiteralArgument(String[] literals) { return new MultiLiteralArgument(literals); } @Override - public AbstractLiteralArgument newConcreteLiteralArgument(String literal) { + public AbstractLiteralArgument newConcreteLiteralArgument(String literal) { return new LiteralArgument(literal); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index a18ece00a1..93ab5532f1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -4,11 +4,9 @@ import dev.jorel.commandapi.executors.*; import org.bukkit.command.CommandSender; -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; - import java.util.ArrayList; -public class CommandAPICommand extends AbstractCommandAPICommand implements BukkitExecutor { +public class CommandAPICommand extends AbstractCommandAPICommand implements BukkitExecutable { public CommandAPICommand(CommandMetaData meta) { super(meta); @@ -26,14 +24,4 @@ public CommandAPICommand copy() { command.isConverted = this.isConverted; return command; } - - @Override - public void addNormalExecutor(IExecutorNormal> executor) { - this.executor.addNormalExecutor(executor); - } - - @Override - public void addResultingExecutor(IExecutorResulting> executor) { - this.executor.addResultingExecutor(executor); - } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java index 95c8cc406e..48df6a2d15 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java @@ -5,7 +5,7 @@ import dev.jorel.commandapi.executors.IExecutorResulting; import org.bukkit.command.CommandSender; -public class CommandTree extends AbstractCommandTree implements BukkitExecutor { +public class CommandTree extends AbstractCommandTree implements BukkitExecutable { /** * Creates a main root node for a command tree with a given command name * @@ -14,14 +14,4 @@ public class CommandTree extends AbstractCommandTree public CommandTree(String commandName) { super(commandName); } - - @Override - public void addNormalExecutor(IExecutorNormal> executor) { - this.executor.addNormalExecutor(executor); - } - - @Override - public void addResultingExecutor(IExecutorResulting> executor) { - this.executor.addResultingExecutor(executor); - } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java index d791b782e3..50448e6d61 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java @@ -50,7 +50,7 @@ public final class Converter { private Converter() { } - private static final List> PLAIN_ARGUMENTS = List.of(new GreedyStringArgument("args")); + private static final List> PLAIN_ARGUMENTS = List.of(new GreedyStringArgument("args")); private static final Set CALLER_METHODS = Set.of("isPermissionSet", "hasPermission", "addAttachment", "removeAttachment", "recalculatePermissions", "getEffectivePermissions", "isOp", "setOp"); @@ -86,7 +86,8 @@ public static void convert(JavaPlugin plugin, String cmdName) { * @param cmdName The command to convert * @param arguments The arguments that should be used to parse this command */ - public static void convert(JavaPlugin plugin, String cmdName, Argument... arguments) { + @SafeVarargs + public static void convert(JavaPlugin plugin, String cmdName, Argument... arguments) { convertPluginCommand(plugin, cmdName, Arrays.asList(arguments)); } @@ -98,7 +99,7 @@ public static void convert(JavaPlugin plugin, String cmdName, Argument> arguments) { + public static void convert(JavaPlugin plugin, String cmdName, List> arguments) { convertPluginCommand(plugin, cmdName, arguments); } @@ -121,11 +122,11 @@ public static void convert(String cmdName) { * be "/set" * @param arguments The arguments that should be used to parse this command */ - public static void convert(String cmdName, List> arguments) { + public static void convert(String cmdName, List> arguments) { convertCommand(cmdName, arguments); } - private static void convertCommand(String commandName, List> arguments) { + private static void convertCommand(String commandName, List> arguments) { CommandAPI.logInfo("Converting command /" + commandName); // No arguments @@ -146,7 +147,7 @@ private static void convertCommand(String commandName, List> arguments) { + private static void convertPluginCommand(JavaPlugin plugin, String commandName, List> arguments) { CommandAPI.logInfo("Converting " + plugin.getName() + " command /" + commandName); /* Parse the commands */ Map cmdData = plugin.getDescription().getCommands().get(commandName); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java index ddf228320c..eada5315c2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java @@ -22,6 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.advancement.Advancement; @@ -31,7 +32,7 @@ * An argument that represents the Bukkit Advancement object * @apiNote Returns an {@link Advancement} object */ -public class AdvancementArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class AdvancementArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { /** * Constructs an AdvancementArgument with a given node name diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java index b453e43eda..c2b55d702e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.commandsenders.BukkitPlayer; @@ -40,7 +41,7 @@ * * @apiNote Returns a {@link Component} object */ -public class AdventureChatArgument extends Argument implements IGreedyArgument, IPreviewable { +public class AdventureChatArgument extends Argument implements IGreedyArgument, IPreviewable, BukkitExecutable { private PreviewableFunction preview; private boolean usePreview; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java index d99f746769..a5795ee236 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java @@ -22,6 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; @@ -32,7 +33,7 @@ * An argument that represents raw JSON text * @apiNote Returns a {@link Component} object */ -public class AdventureChatComponentArgument extends Argument { +public class AdventureChatComponentArgument extends Argument implements BukkitExecutable { /** * Constructs a ChatComponnent argument with a given node name. Represents raw JSON text, used in Book MetaData, Chat and other various areas of Minecraft diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java index 6c66f4c878..049ad0d6e9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; @@ -36,7 +37,7 @@ * * @apiNote Returns a {@link float} */ -public class AngleArgument extends SafeOverrideableArgument { +public class AngleArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * Constructs an AngleArgument with a given node name diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java index 9995fd81f3..2daf0ad942 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java @@ -22,6 +22,7 @@ import java.util.EnumSet; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.Axis; import com.mojang.brigadier.context.CommandContext; @@ -37,7 +38,7 @@ * @apiNote Returns a {@link EnumSet}{@code <}{@link Axis}{@code >} object */ @SuppressWarnings("rawtypes") -public class AxisArgument extends SafeOverrideableArgument, CommandSender> { +public class AxisArgument extends SafeOverrideableArgument, AxisArgument, CommandSender> implements BukkitExecutable { /** * Constructs an AxisArgument with a given node name. Represents the axes x, y diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java index cb5156ef5e..e049623afc 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java @@ -22,6 +22,7 @@ import java.util.function.Function; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.block.Biome; import com.mojang.brigadier.context.CommandContext; @@ -36,7 +37,7 @@ * * @apiNote Returns a {@link Biome} object */ -public class BiomeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class BiomeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { /** * Constructs a BiomeArgument with a given node name. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java index d2e5b214d7..c55c8c6f91 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java @@ -22,6 +22,7 @@ import java.util.function.Predicate; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.block.Block; import com.mojang.brigadier.context.CommandContext; @@ -37,7 +38,7 @@ * @apiNote Returns a {@link Predicate}{@code <}{@link Block}{@code >} object */ @SuppressWarnings("rawtypes") -public class BlockPredicateArgument extends Argument { +public class BlockPredicateArgument extends Argument implements BukkitExecutable { /** * Constructs a BlockPredicateArgument with a given node name. Represents a diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java index ad5234c87c..91dc10db6f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.block.data.BlockData; import com.mojang.brigadier.context.CommandContext; @@ -35,7 +36,7 @@ * @apiNote Returns a {@link BlockData} object * */ -public class BlockStateArgument extends Argument { +public class BlockStateArgument extends Argument implements BukkitExecutable { /** * Constructs a BlockStateArgument with a given node name. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java index 264fbe9efe..6460eedc39 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; /** @@ -27,7 +28,7 @@ * * @apiNote Returns a {@link boolean} */ -public class BooleanArgument extends AbstractBooleanArgument { +public class BooleanArgument extends AbstractBooleanArgument implements BukkitExecutable { /** * Constructs a Boolean argument with a given node name * diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java index 639cc13801..478afbddcf 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java @@ -22,6 +22,7 @@ import java.util.Optional; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -42,7 +43,7 @@ * * @apiNote Returns a {@link BaseComponent}{@code []} object */ -public class ChatArgument extends Argument implements IGreedyArgument, IPreviewable { +public class ChatArgument extends Argument implements IGreedyArgument, IPreviewable, BukkitExecutable { private PreviewableFunction preview; private boolean usePreview; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java index 6aad2d59a0..9bc9a4906a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java @@ -22,6 +22,7 @@ import java.util.function.Function; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.ChatColor; import com.mojang.brigadier.context.CommandContext; @@ -36,7 +37,7 @@ * * @apiNote Returns a {@link ChatColor} object */ -public class ChatColorArgument extends SafeOverrideableArgument { +public class ChatColorArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * Constructs a ChatColor argument with a given node name. Represents a color or diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java index 64053a1f3d..e0203c1829 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; @@ -34,7 +35,7 @@ * * @apiNote Returns a {@link BaseComponent}{@code []} object */ -public class ChatComponentArgument extends Argument { +public class ChatComponentArgument extends Argument implements BukkitExecutable { /** * Constructs a ChatComponnent argument with a given node name. Represents raw diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index bc425367b1..dd11490ec0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; import com.mojang.brigadier.LiteralMessage; @@ -42,10 +43,10 @@ * {@link IntegerArgument} * @apiNote Returns a {@link T} object */ -public class CustomArgument extends Argument { +public class CustomArgument extends Argument, CommandSender> implements BukkitExecutable> { private final CustomArgumentInfoParser infoParser; - private final Argument base; + private final Argument base; /** * Creates a CustomArgument with a valid parser, defaults to non-keyed argument @@ -83,7 +84,7 @@ public CustomArgument(String nodeName, CustomArgumentInfoParser parse public CustomArgument(String nodeName, CustomArgumentInfoParser parser, boolean keyed) { super(nodeName, keyed ? StringArgumentType.string() : BukkitPlatform.get()._ArgumentMinecraftKeyRegistered()); - this.base = (Argument) new DummyArgument(nodeName, keyed); + this.base = (Argument) new DummyArgument(nodeName, keyed); this.infoParser = (CustomArgumentInfoParser) parser; CommandAPI.logWarning( "Registering CustomArgument " + nodeName + " with legacy registeration method. This may not work!\n" @@ -110,7 +111,7 @@ public CustomArgument(String nodeName, CustomArgumentInfoParser parse * {@code Integer} for an {@link IntegerArgument} *

*/ - public CustomArgument(Argument base, CustomArgumentInfoParser parser) { + public CustomArgument(Argument base, CustomArgumentInfoParser parser) { super(base.getNodeName(), base.getRawType()); if (base instanceof LiteralArgument || base instanceof MultiLiteralArgument) { throw new IllegalArgumentException(base.getClass().getSimpleName() + " is not a suitable base argument type for a CustomArgument"); @@ -358,7 +359,7 @@ public static interface CustomArgumentInfoParser { } @Deprecated - private static class DummyArgument extends Argument { + private static class DummyArgument extends Argument { private final boolean keyed; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java index eb0884e315..f3b9941237 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; /** @@ -27,7 +28,7 @@ * * @apiNote Returns a {@link double} */ -public class DoubleArgument extends AbstractDoubleArgument { +public class DoubleArgument extends AbstractDoubleArgument implements BukkitExecutable { /** * A double argument diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java index d05e01140c..b85cc9c5fc 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; import org.bukkit.enchantments.Enchantment; @@ -34,7 +35,7 @@ * * @apiNote Returns an {@link Enchantment} object */ -public class EnchantmentArgument extends SafeOverrideableArgument { +public class EnchantmentArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * An Enchantment argument. Represents an enchantment for items diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java index 66c3797037..084ebf7411 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java @@ -24,6 +24,7 @@ import java.util.Collection; import java.util.List; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -39,7 +40,7 @@ * * @apiNote The return type depends on the provided {@link EntitySelector} */ -public class EntitySelectorArgument extends Argument { +public class EntitySelectorArgument extends Argument, CommandSender> implements BukkitExecutable> { private final EntitySelector selector; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java index a440d502da..960e9bd009 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; @@ -32,7 +33,7 @@ /** * An argument that represents the Bukkit EntityType object */ -public class EntityTypeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class EntityTypeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { /** * An EntityType argument. Represents the type of an Entity diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java index 177b4e6f5f..f81688bd5f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java @@ -22,6 +22,7 @@ import java.util.function.Function; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.World.Environment; import com.mojang.brigadier.context.CommandContext; @@ -34,7 +35,7 @@ /** * An argument that represents the Bukkit Environment object */ -public class EnvironmentArgument extends SafeOverrideableArgument { +public class EnvironmentArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * An Environment argument. Represents Bukkit's Environment object diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java index 12b83230d1..e5701380c2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -20,17 +20,13 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import com.mojang.brigadier.arguments.FloatArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.abstractions.AbstractPlatform; -import dev.jorel.commandapi.exceptions.InvalidRangeException; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java floats */ -public class FloatArgument extends AbstractFloatArgument { +public class FloatArgument extends AbstractFloatArgument implements BukkitExecutable { /** * A float argument * diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java index 72bf5d5328..726e9c4e50 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.FloatRange; @@ -31,7 +32,7 @@ /** * An argument that represents a range of float values */ -public class FloatRangeArgument extends SafeOverrideableArgument { +public class FloatRangeArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A FloatRange argument that represents a range of floating-point values diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java index 6b769fb9a6..6374167bb0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.NamespacedKey; import com.mojang.brigadier.context.CommandContext; @@ -33,7 +34,7 @@ /** * An argument that represents Minecraft functions and tags */ -public class FunctionArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class FunctionArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { /** * A Minecraft function. Plugin commands which plan to be used INSIDE a Minecraft diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java index d4c7c949c4..c852e63658 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -20,12 +20,13 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; /** * An argument that represents arbitrary strings */ -public class GreedyStringArgument extends AbstractGreedyStringArgument { +public class GreedyStringArgument extends AbstractGreedyStringArgument implements BukkitExecutable { /** * A string argument for a string of any length * diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java index 9ab2843f9f..9274a646ba 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -20,12 +20,13 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java ints */ -public class IntegerArgument extends AbstractIntegerArgument { +public class IntegerArgument extends AbstractIntegerArgument implements BukkitExecutable { /** * An integer argument diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java index 29855ee44c..0fdac7d49f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.IntegerRange; @@ -31,7 +32,7 @@ /** * An argument that represents a range of integer values */ -public class IntegerRangeArgument extends SafeOverrideableArgument { +public class IntegerRangeArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * An IntegerRange argument. Represents a range of whole numbers diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java index 247a149bed..79de8ea88a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; import org.bukkit.inventory.ItemStack; @@ -32,7 +33,7 @@ /** * An argument that represents the Bukkit ItemStack object */ -public class ItemStackArgument extends SafeOverrideableArgument { +public class ItemStackArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * An ItemStack argument. Always returns an itemstack of size 1 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java index 7168ce5613..d9ec73ffec 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java @@ -22,6 +22,7 @@ import java.util.function.Predicate; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; import org.bukkit.inventory.ItemStack; @@ -35,7 +36,7 @@ * An argument that represents a Predicate<ItemStack> */ @SuppressWarnings("rawtypes") -public class ItemStackPredicateArgument extends Argument { +public class ItemStackPredicateArgument extends Argument implements BukkitExecutable { /** * A ItemStack Predicate argument. Represents a predicate for itemstacks diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java index 961c99f91d..0755524383 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java @@ -26,9 +26,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.IStringTooltip; import dev.jorel.commandapi.StringTooltip; -import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; @@ -42,7 +42,7 @@ * @param the type that this list argument generates a list of. */ @SuppressWarnings("rawtypes") -public class ListArgument extends Argument implements IGreedyArgument { +public class ListArgument extends Argument, CommandSender> implements IGreedyArgument, BukkitExecutable> { private final String delimiter; private final boolean allowDuplicates; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index addff9f1ab..d4a2f8dfcd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -20,12 +20,13 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; /** * A pseudo-argument representing a single literal string */ -public class LiteralArgument extends AbstractLiteralArgument { +public class LiteralArgument extends AbstractLiteralArgument implements BukkitExecutable { /** * A literal argument. Only takes one string value which cannot be modified * diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java index ba6d1dbc4d..2280841eea 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.Location; import com.mojang.brigadier.context.CommandContext; @@ -34,7 +35,7 @@ * An argument that represents the Bukkit {@link Location} object in x and z directions * @apiNote Returns a {@link Location2D} object */ -public class Location2DArgument extends SafeOverrideableArgument { +public class Location2DArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A Location argument. Represents Minecraft locations in 2D space. Defaults to {@link LocationType#PRECISE_POSITION} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java index ab8edb08a1..13f4a21a21 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.Location; import com.mojang.brigadier.context.CommandContext; @@ -33,7 +34,7 @@ * An argument that represents the Bukkit {@link Location} object * @apiNote Returns a {@link Location} object */ -public class LocationArgument extends SafeOverrideableArgument { +public class LocationArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A Location argument. Represents Minecraft locations. Defaults to {@link LocationType#PRECISE_POSITION} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java index d735731452..faa95898b4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -20,12 +20,13 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java longs */ -public class LongArgument extends AbstractLongArgument { +public class LongArgument extends AbstractLongArgument implements BukkitExecutable { /** * A long argument * diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java index 8d8bf1a800..f73a32ddb1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.Keyed; import org.bukkit.command.CommandSender; import org.bukkit.loot.LootTable; @@ -33,7 +34,7 @@ /** * An argument that represents the Bukkit LootTable object */ -public class LootTableArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class LootTableArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { /** * A LootTable argument that represents a Bukkit LootTable. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java index 8ca79cb8b1..8413af3c1d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.MathOperation; @@ -31,7 +32,7 @@ /** * An argument that represents Minecraft scoreboard math operations */ -public class MathOperationArgument extends SafeOverrideableArgument { +public class MathOperationArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A MathOperation argument. Represents a math operation (e.g. addition, subtraction etc.) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index 5dee16e663..16e09a797a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -20,12 +20,13 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; /** * An argument that represents multiple LiteralArguments */ -public class MultiLiteralArgument extends AbstractMultiLiteralArgument { +public class MultiLiteralArgument extends AbstractMultiLiteralArgument implements BukkitExecutable { public MultiLiteralArgument(String... literals) { super(literals); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java index 630a904144..573d8c721c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.abstractions.AbstractPlatform; @@ -31,7 +32,7 @@ /** * An argument that represents an NBTContainer from the NBT API */ -public class NBTCompoundArgument extends SafeOverrideableArgument { +public class NBTCompoundArgument extends SafeOverrideableArgument, CommandSender> implements BukkitExecutable> { /** * An NBT Compound Argument. Represents Minecraft's NBT Compound Tag using the diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java index 84c3c5f9be..6893b8c2a1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.NamespacedKey; import com.mojang.brigadier.context.CommandContext; @@ -36,7 +37,7 @@ * {@code .} (dot). The key can also contain {@code /} (forward slash) * @apiNote Returns a {@link NamespacedKey} object */ -public class NamespacedKeyArgument extends SafeOverrideableArgument { +public class NamespacedKeyArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * Constructs a MinecraftKeyArgument with a given node name. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java index 58a0cc9e16..2e168f7027 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; import org.bukkit.scoreboard.Objective; @@ -32,7 +33,7 @@ /** * An argument that represents the name of a scoreboard objective */ -public class ObjectiveArgument extends SafeOverrideableArgument { +public class ObjectiveArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * An Objective argument. Represents a scoreboard objective diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java index 10e223ff28..fd9a153af9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; @@ -30,7 +31,7 @@ /** * An argument that represents the name of an objective criteria */ -public class ObjectiveCriteriaArgument extends Argument { +public class ObjectiveCriteriaArgument extends Argument implements BukkitExecutable { /** * An Objective criteria argument. Represents an objective criteria diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java index fc48de05ab..38647e73cd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.OfflinePlayer; import com.mojang.brigadier.context.CommandContext; @@ -32,7 +33,7 @@ /** * An argument that represents the Bukkit Player object */ -public class OfflinePlayerArgument extends SafeOverrideableArgument { +public class OfflinePlayerArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A Player argument. Produces a single player, regardless of whether diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java index 179231d670..c535882adf 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.ParticleData; @@ -32,7 +33,7 @@ * An argument that represents the Bukkit Particle object */ @SuppressWarnings("rawtypes") -public class ParticleArgument extends SafeOverrideableArgument, CommandSender> { +public class ParticleArgument extends SafeOverrideableArgument, ParticleArgument, CommandSender> implements BukkitExecutable { /** * A Particle argument. Represents Minecraft particles diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java index 92d6c7e53f..3d16f89a78 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -32,7 +33,7 @@ /** * An argument that represents the Bukkit Player object */ -public class PlayerArgument extends SafeOverrideableArgument { +public class PlayerArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A Player argument. Produces a single player, regardless of whether diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java index 2e4d7e6686..493124ba51 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; import org.bukkit.potion.PotionEffectType; @@ -32,7 +33,7 @@ /** * An argument that represents the Bukkit PotionEffectType object */ -public class PotionEffectArgument extends SafeOverrideableArgument { +public class PotionEffectArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A PotionEffect argument. Represents status/potion effects diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java index d58206dc9d..4b0ac2d86c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.Keyed; import org.bukkit.command.CommandSender; import org.bukkit.inventory.Recipe; @@ -33,7 +34,7 @@ /** * An argument that represents the Bukkit Recipe object */ -public class RecipeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class RecipeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { /** * A Recipe argument. Represents a Bukkit Recipe or ComplexRecipe diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java index aeacb06b00..fb797a8993 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.Rotation; @@ -31,7 +32,7 @@ /** * An argument that represents rotation as pitch and yaw */ -public class RotationArgument extends SafeOverrideableArgument { +public class RotationArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A Rotation argument. Represents pitch and yaw diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java index 2ce04e7979..02733649af 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java @@ -25,6 +25,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; @@ -32,7 +33,7 @@ /** * An argument that represents a scoreholder's name, or a collection of scoreholder names */ -public class ScoreHolderArgument extends Argument { +public class ScoreHolderArgument extends Argument, CommandSender> implements BukkitExecutable> { private final boolean single; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java index df5cdbc4e2..547f075b4d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.ScoreboardSlot; @@ -31,7 +32,7 @@ /** * An argument that represents the Bukkit ScoreboardSlot object */ -public class ScoreboardSlotArgument extends SafeOverrideableArgument { +public class ScoreboardSlotArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A Display slot argument. Represents scoreboard slots diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java index 97142b7103..d84e11ea0a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.Sound; import com.mojang.brigadier.context.CommandContext; @@ -32,7 +33,7 @@ /** * An argument that represents the Bukkit Sound object */ -public class SoundArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { +public class SoundArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { /** * A Sound argument. Represents Bukkit's Sound object diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java index 6f6813f267..1e111e361b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -20,12 +20,13 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; /** * An argument that represents a simple String */ -public class StringArgument extends AbstractStringArgument { +public class StringArgument extends AbstractStringArgument implements BukkitExecutable { /** * A string argument for one word * diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java index 3fe31b602f..0bdb654953 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; import org.bukkit.scoreboard.Team; @@ -32,7 +33,7 @@ /** * An argument that represents the name of a scoreboard Team */ -public class TeamArgument extends SafeOverrideableArgument { +public class TeamArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A Team argument. Represents a scoreboard Team diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java index 4e34fc7e8b..272682850b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -20,12 +20,13 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.BukkitExecutable; import org.bukkit.command.CommandSender; /** * An argument that represents text, encased in quotes */ -public class TextArgument extends AbstractTextArgument { +public class TextArgument extends AbstractTextArgument implements BukkitExecutable { /** * A string argument for one word, or multiple words encased in quotes * diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java index 854990d573..d9ecf90c56 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java @@ -23,6 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.Time; @@ -31,7 +32,7 @@ /** * An argument that represents a duration of time in ticks */ -public class TimeArgument extends SafeOverrideableArgument { +public class TimeArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A Time argument. Represents the number of in game ticks diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java index d85d7101a5..334c044c97 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java @@ -25,6 +25,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; @@ -32,7 +33,7 @@ /** * An argument that represents a UUID */ -public class UUIDArgument extends SafeOverrideableArgument { +public class UUIDArgument extends SafeOverrideableArgument implements BukkitExecutable { /** * A UUID argument. Represents an in-game entity UUID diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java index 1363a06cd8..83d1ea8a59 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java @@ -7,6 +7,9 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.stream.Collectors; +import dev.jorel.commandapi.CommandTree; +import dev.jorel.commandapi.arguments.*; +import dev.jorel.commandapi.executors.CommandExecutor; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.advancement.Advancement; @@ -25,22 +28,6 @@ import be.seeseemelk.mockbukkit.WorldMock; import be.seeseemelk.mockbukkit.entity.PlayerMock; import dev.jorel.commandapi.CommandAPICommand; -import dev.jorel.commandapi.arguments.AdvancementArgument; -import dev.jorel.commandapi.arguments.AdventureChatComponentArgument; -import dev.jorel.commandapi.arguments.BooleanArgument; -import dev.jorel.commandapi.arguments.ChatComponentArgument; -import dev.jorel.commandapi.arguments.EntitySelector; -import dev.jorel.commandapi.arguments.EntitySelectorArgument; -import dev.jorel.commandapi.arguments.GreedyStringArgument; -import dev.jorel.commandapi.arguments.IntegerArgument; -import dev.jorel.commandapi.arguments.ListArgumentBuilder; -import dev.jorel.commandapi.arguments.Location2DArgument; -import dev.jorel.commandapi.arguments.LocationArgument; -import dev.jorel.commandapi.arguments.LocationType; -import dev.jorel.commandapi.arguments.PlayerArgument; -import dev.jorel.commandapi.arguments.PotionEffectArgument; -import dev.jorel.commandapi.arguments.StringArgument; -import dev.jorel.commandapi.test.Main; import dev.jorel.commandapi.wrappers.Location2D; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; @@ -149,6 +136,151 @@ public void executionTestWithStringArgument() { assertInvalidSyntax(player, "test yesn't"); } + @Test + public void executionTestWithCommandTree() { + Mut result = Mut.of(); + new CommandTree("test").executes(givePosition("", result)) + .then(new LiteralArgument("1").executes(givePosition("1", result)) + .then(new LiteralArgument("1").executes(givePosition("11", result)) + .then(new LiteralArgument("1").executes(givePosition("111", result))) + .then(new LiteralArgument("2").executes(givePosition("112", result))) + ) + .then(new LiteralArgument("2").executes(givePosition("12", result)) + .then(new LiteralArgument("1").executes(givePosition("121", result))) + .then(new LiteralArgument("2").executes(givePosition("122", result))) + ) + ) + .then(new LiteralArgument("2").executes(givePosition("2", result)) + .then(new LiteralArgument("1").executes(givePosition("21", result)) + .then(new LiteralArgument("1").executes(givePosition("211", result))) + .then(new LiteralArgument("2").executes(givePosition("212", result))) + ) + .then(new LiteralArgument("2").executes(givePosition("22", result)) + .then(new LiteralArgument("1").executes(givePosition("221", result))) + .then(new LiteralArgument("2").executes(givePosition("222", result))) + ) + ).register(); + + assertEquals(getDispatcherString(), """ + { + "type": "root", + "children": { + "test": { + "type": "literal", + "children": { + "1": { + "type": "literal", + "children": { + "1": { + "type": "literal", + "children": { + "1": { + "type": "literal", + "executable": true + }, + "2": { + "type": "literal", + "executable": true + } + }, + "executable": true + }, + "2": { + "type": "literal", + "children": { + "1": { + "type": "literal", + "executable": true + }, + "2": { + "type": "literal", + "executable": true + } + }, + "executable": true + } + }, + "executable": true + }, + "2": { + "type": "literal", + "children": { + "1": { + "type": "literal", + "children": { + "1": { + "type": "literal", + "executable": true + }, + "2": { + "type": "literal", + "executable": true + } + }, + "executable": true + }, + "2": { + "type": "literal", + "children": { + "1": { + "type": "literal", + "executable": true + }, + "2": { + "type": "literal", + "executable": true + } + }, + "executable": true + } + }, + "executable": true + } + }, + "executable": true + } + } + }"""); + + PlayerMock sender = server.addPlayer("APlayer"); + + server.dispatchCommand(sender, "test"); + server.dispatchCommand(sender, "test 1"); + server.dispatchCommand(sender, "test 1 1"); + server.dispatchCommand(sender, "test 1 1 1"); + server.dispatchCommand(sender, "test 1 1 2"); + server.dispatchCommand(sender, "test 1 2"); + server.dispatchCommand(sender, "test 1 2 1"); + server.dispatchCommand(sender, "test 1 2 2"); + server.dispatchCommand(sender, "test 2"); + server.dispatchCommand(sender, "test 2 1"); + server.dispatchCommand(sender, "test 2 1 1"); + server.dispatchCommand(sender, "test 2 1 2"); + server.dispatchCommand(sender, "test 2 2"); + server.dispatchCommand(sender, "test 2 2 1"); + server.dispatchCommand(sender, "test 2 2 2"); + + assertEquals("", result.get()); + assertEquals("1", result.get()); + assertEquals("11", result.get()); + assertEquals("111", result.get()); + assertEquals("112", result.get()); + assertEquals("12", result.get()); + assertEquals("121", result.get()); + assertEquals("122", result.get()); + assertEquals("2", result.get()); + assertEquals("21", result.get()); + assertEquals("211", result.get()); + assertEquals("212", result.get()); + assertEquals("22", result.get()); + assertEquals("221", result.get()); + assertEquals("222", result.get()); + } + + private CommandExecutor givePosition(String pos, Mut result) { + return (sender, args) -> result.set(pos); + } + @Test public void executionTestWithBooleanArgument() { new CommandAPICommand("test") diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java index 4ab02782b3..ed462e1a19 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java @@ -26,6 +26,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; @@ -130,7 +131,7 @@ public AdvancedConverter(String command) { public void convert() { String commandName = command.split(" ")[0]; - List> arguments; + List> arguments; try { arguments = parseArguments(command); } catch (UnknownArgumentException | InvalidNumberException e) { @@ -147,7 +148,7 @@ public void convert() { public void convertCommand() { String commandName = command.split(" ")[0]; - List> arguments; + List> arguments; try { arguments = parseArguments(command); } catch (UnknownArgumentException | InvalidNumberException e) { @@ -171,11 +172,11 @@ public void convertCommand() { * - speed (walk|fly) [0..10] [minecraft:game_profile] * */ - private List> parseArguments(String command) throws UnknownArgumentException, InvalidNumberException { - List> arguments = new ArrayList<>(); + private List> parseArguments(String command) throws UnknownArgumentException, InvalidNumberException { + List> arguments = new ArrayList<>(); String[] parts = command.split(" "); for (argumentIndex = 1; argumentIndex < parts.length; argumentIndex++) { - Argument argument = parseArgument(parts[argumentIndex]); + Argument argument = parseArgument(parts[argumentIndex]); if (argument != null) { arguments.add(argument); } @@ -195,7 +196,7 @@ private double parseValue(String bound) throws InvalidNumberException { } } - private Argument parseRange(String nodeName, String[] bounds) throws InvalidNumberException { + private Argument parseRange(String nodeName, String[] bounds) throws InvalidNumberException { if (bounds.length == 1) { // x.. double value = parseValue(bounds[0]); @@ -226,7 +227,7 @@ private Argument parseRange(String nodeName, String[] bounds) throws InvalidN /* * CodeFactor will always complain about this method because it's really bulky - * and adding a generator (i.e. Function>) inside the + * and adding a generator (i.e. Function>) inside the * CommandAPIArgumentType class would be better, EXCEPT in practice, this is * worse because then CommandAPIArgumentType would have to depend on every * argument and every argument depends on CommandAPIArgumentType, so that would @@ -236,7 +237,7 @@ private Argument parseRange(String nodeName, String[] bounds) throws InvalidN * Additionally, we only need this for the plugin version of the CommandAPI, not * the main API. */ - private Argument parseDefinedArgumentType(String argumentType, String nodeName) throws UnknownArgumentException { + private Argument parseDefinedArgumentType(String argumentType, String nodeName) throws UnknownArgumentException { return switch (CommandAPIArgumentType.fromInternal(argumentType)) { case ADVANCEMENT -> new AdvancementArgument(nodeName); case ADVENTURE_CHAT -> new AdventureChatArgument(nodeName); @@ -291,7 +292,7 @@ private Argument parseDefinedArgumentType(String argumentType, String nodeNam }; } - private Argument parseArgument(String argument) throws UnknownArgumentException, InvalidNumberException { + private Argument parseArgument(String argument) throws UnknownArgumentException, InvalidNumberException { Matcher literalMatcher = LITERAL_PATTERN.matcher(argument); Matcher argumentMatcher = ARGUMENT_PATTERN.matcher(argument); if (literalMatcher.matches()) { From 3314dc04ba93b55ce968125c56eec27e430cf1dc Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 22 Oct 2022 07:37:46 -0400 Subject: [PATCH 061/638] Create common class CommandAPIJavaLogger for platforms that use builtin Java logging --- .../commandapi/CommandAPIJavaLogger.java | 5 ++-- .../java/dev/jorel/commandapi/test/Main.java | 6 ++-- .../dev/jorel/commandapi/CommandAPIMain.java | 2 +- .../dev/jorel/commandapi/VelocityLogger.java | 28 ------------------- .../dev/jorel/commandapi/CommandAPIMain.java | 2 +- 5 files changed, 9 insertions(+), 34 deletions(-) rename commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitLogger.java => commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIJavaLogger.java (76%) delete mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityLogger.java diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitLogger.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIJavaLogger.java similarity index 76% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitLogger.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIJavaLogger.java index a6bb3c2a66..3238ad2dc6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitLogger.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIJavaLogger.java @@ -2,10 +2,10 @@ import java.util.logging.Logger; -public class BukkitLogger implements CommandAPILogger{ +public class CommandAPIJavaLogger implements CommandAPILogger { private final Logger parent; - public BukkitLogger(Logger parent) { + public CommandAPIJavaLogger(Logger parent) { this.parent = parent; } @@ -24,3 +24,4 @@ public void severe(String message) { parent.severe(message); } } + diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java index 300a8d1e49..bac4722d83 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java @@ -1,6 +1,7 @@ package dev.jorel.commandapi.test; import java.io.File; +import dev.jorel.commandapi.CommandAPIJavaLogger; import org.bukkit.plugin.PluginDescriptionFile; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPluginLoader; @@ -8,7 +9,6 @@ import de.tr7zw.changeme.nbtapi.NBTContainer; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandAPIConfig; -import dev.jorel.commandapi.nms.NMS_1_19_1_R1; public class Main extends JavaPlugin { @@ -18,7 +18,9 @@ public void onLoad() { .useLatestNMSVersion(true) .silentLogs(true) .dispatcherFile(new File("command_registration.json")) - .initializeNBTAPI(NBTContainer.class, NBTContainer::new) + .initializeNBTAPI(NBTContainer.class, NBTContainer::new), + + new CommandAPIJavaLogger(getLogger()) ); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index 54dd774274..18f207d5cb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -60,7 +60,7 @@ public void onLoad() { } // Main CommandAPI loading - CommandAPI.onLoad(config, new BukkitLogger(getLogger())); + CommandAPI.onLoad(config, new CommandAPIJavaLogger(getLogger())); // Configure the NBT API - we're not allowing tracking at all, according // to the CommandAPI's design principles. The CommandAPI isn't used very diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityLogger.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityLogger.java deleted file mode 100644 index 923f40a510..0000000000 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityLogger.java +++ /dev/null @@ -1,28 +0,0 @@ -package dev.jorel.commandapi; - -import java.util.logging.Logger; - -// TODO: Since Bukkit and Velocity use Java's builtin logger, this and BukkitLogger are essentially the same -// Should these classes be combined to reduce code repetition? -public class VelocityLogger implements CommandAPILogger{ - private final Logger parent; - - public VelocityLogger(Logger parent) { - this.parent = parent; - } - - @Override - public void info(String message) { - parent.info(message); - } - - @Override - public void warning(String message) { - parent.warning(message); - } - - @Override - public void severe(String message) { - parent.severe(message); - } -} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index d97d788f98..c80f9600b6 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -39,7 +39,7 @@ public CommandAPIMain(ProxyServer server, Logger logger, @DataDirectory Path dat .dispatcherFile() .initializeNBTAPI(); - CommandAPI.onLoad(config, new VelocityLogger(this.logger)); + CommandAPI.onLoad(config, new CommandAPIJavaLogger(this.logger)); } @Override From b74aba3d5e8abef6606fd1c945e25e92acce7101 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 22 Oct 2022 09:09:59 -0400 Subject: [PATCH 062/638] Implement CommandAPICommand, CommandTree, common abstract arguments for Velocity --- .../commandapi/AbstractCommandAPICommand.java | 10 +- .../jorel/commandapi/IPlatformExecutable.java | 10 ++ .../abstractions/AbstractPlatform.java | 10 +- .../jorel/commandapi/BukkitExecutable.java | 17 ++- .../dev/jorel/commandapi/BukkitPlatform.java | 4 +- .../jorel/commandapi/CommandAPICommand.java | 12 +- .../dev/jorel/commandapi/CommandTree.java | 3 - .../arguments/MultiLiteralArgument.java | 4 + .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 4 +- .../dev/jorel/commandapi/nms/NMS_1_13_2.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_13.java | 4 +- .../dev/jorel/commandapi/nms/NMS_1_14.java | 5 +- .../dev/jorel/commandapi/nms/NMS_1_15.java | 5 +- .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 5 +- .../dev/jorel/commandapi/nms/NMS_1_16_R2.java | 5 +- .../jorel/commandapi/nms/NMS_1_16_4_R3.java | 5 +- .../jorel/commandapi/nms/NMS_1_17_Common.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_18_R2.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_18_R1.java | 3 +- .../jorel/commandapi/nms/NMS_1_19_Common.java | 3 +- .../dev/jorel/commandapi/nms/NMS_Common.java | 5 +- .../dev/jorel/commandapi/test/MockNMS.java | 5 +- .../jorel/commandapi/CommandAPICommand.java | 28 +++++ .../commandapi/CommandAPIVersionHandler.java | 2 +- .../dev/jorel/commandapi/CommandTree.java | 14 +++ .../jorel/commandapi/VelocityExecutable.java | 115 ++++++++++++++++++ .../jorel/commandapi/VelocityExecution.java | 23 ++++ .../jorel/commandapi/VelocityPlatform.java | 55 +++++++-- .../arguments/AbstractTextArgument.java | 56 +++++++++ .../commandapi/arguments/BooleanArgument.java | 40 ++++++ .../commandapi/arguments/DoubleArgument.java | 61 ++++++++++ .../commandapi/arguments/FloatArgument.java | 59 +++++++++ .../arguments/GreedyStringArgument.java | 38 ++++++ .../commandapi/arguments/IntegerArgument.java | 59 +++++++++ .../commandapi/arguments/LiteralArgument.java | 38 ++++++ .../commandapi/arguments/LongArgument.java | 59 +++++++++ .../arguments/MultiLiteralArgument.java | 37 ++++++ .../commandapi/arguments/StringArgument.java | 38 ++++++ .../commandapi/executors/CommandExecutor.java | 28 +++++ .../executors/ConsoleCommandExecutor.java | 53 ++++++++ .../ConsoleResultingCommandExecutor.java | 54 ++++++++ .../executors/PlayerCommandExecutor.java | 53 ++++++++ .../PlayerResultingCommandExecutor.java | 54 ++++++++ .../executors/ResultingCommandExecutor.java | 29 +++++ 44 files changed, 1059 insertions(+), 62 deletions(-) create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecution.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index 34ba63a81d..48b0cad4e7 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -247,5 +247,13 @@ public void register() { } } - public abstract Impl copy(); + public Impl copy() { + Impl command = newConcreteCommandAPICommand(new CommandMetaData(this.meta)); + command.args = new ArrayList<>(this.args); + command.subcommands = new ArrayList<>(this.subcommands); + command.isConverted = this.isConverted; + return command; + } + + protected abstract Impl newConcreteCommandAPICommand(CommandMetaData metaData); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java new file mode 100644 index 0000000000..fcb465b42a --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java @@ -0,0 +1,10 @@ +package dev.jorel.commandapi; + +import dev.jorel.commandapi.abstractions.AbstractCommandSender; + +public interface IPlatformExecutable { + // Automatically links to Executable#getExecutor (make sure it has the same signature) + CustomCommandExecutor> getExecutor(); + + +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java index 514f7735a9..46a7b3edad 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java @@ -1,14 +1,10 @@ package dev.jorel.commandapi.abstractions; -import java.io.IOException; -import java.util.List; - import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.tree.LiteralCommandNode; - import dev.jorel.commandapi.CustomCommandExecutor; import dev.jorel.commandapi.Execution; import dev.jorel.commandapi.arguments.AbstractLiteralArgument; @@ -16,6 +12,9 @@ import dev.jorel.commandapi.arguments.Argument; import dev.jorel.commandapi.arguments.SuggestionProviders; +import java.io.IOException; +import java.util.List; + /** * @param The class for running platforms commands * @param The class for running Brigadier commands @@ -37,7 +36,6 @@ public abstract class AbstractPlatform { public abstract void onDisable(); - // "Source" in this case (for CommandContext) is something like a // CommandListenerWrapper (Spigot mappings) or CommandSourceStack (Mojang mappings). // over @@ -49,6 +47,8 @@ public abstract class AbstractPlatform { // Converts a CommandSender to a Brigadier Source public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); + public abstract AbstractCommandSender wrapCommandSender(CommandSender sender); + // Registers a permission. Bukkit's permission system requires permissions to be "registered" // before they can be used. public abstract void registerPermission(String string); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java index b2f65efb67..a4dd2658c3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java @@ -1,15 +1,12 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.executors.*; import org.bukkit.command.CommandSender; -public interface BukkitExecutable> { - CustomCommandExecutor> getExecutor(); +public interface BukkitExecutable> extends IPlatformExecutable { // Regular command executor - /** * Adds an executor to the current command builder * @param executor A lambda of type (CommandSender, Object[]) -> () that will be executed when the command is run @@ -114,7 +111,7 @@ default Impl executesEntity(EntityResultingCommandExecutor executor) { /** * Adds an executor to the current command builder - * @param executor A lambda of type (Entity, Object[]) -> () that will be executed when the command is run + * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> () that will be executed when the command is run * @return this command builder */ default Impl executesProxy(ProxyCommandExecutor executor) { @@ -124,7 +121,7 @@ default Impl executesProxy(ProxyCommandExecutor executor) { /** * Adds an executor to the current command builder - * @param executor A lambda of type (Entity, Object[]) -> int that will be executed when the command is run + * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> int that will be executed when the command is run * @return this command builder */ default Impl executesProxy(ProxyResultingCommandExecutor executor) { @@ -158,7 +155,7 @@ default Impl executesCommandBlock(CommandBlockResultingCommandExecutor executor) /** * Adds an executor to the current command builder - * @param executor A lambda of type (BlockCommandSender, Object[]) -> () that will be executed when the command is run + * @param executor A lambda of type (ConsoleCommandSender, Object[]) -> () that will be executed when the command is run * @return this command builder */ default Impl executesConsole(ConsoleCommandExecutor executor) { @@ -168,7 +165,7 @@ default Impl executesConsole(ConsoleCommandExecutor executor) { /** * Adds an executor to the current command builder - * @param executor A lambda of type (BlockCommandSender, Object[]) -> int that will be executed when the command is run + * @param executor A lambda of type (ConsoleCommandSender, Object[]) -> int that will be executed when the command is run * @return this command builder */ default Impl executesConsole(ConsoleResultingCommandExecutor executor) { @@ -178,7 +175,7 @@ default Impl executesConsole(ConsoleResultingCommandExecutor executor) { /** * Adds an executor to the current command builder - * @param executor A lambda of type (NativeCommandExecutor, Object[]) -> () that will be executed when the command is run + * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> () that will be executed when the command is run * @return this command builder */ default Impl executesNative(NativeCommandExecutor executor) { @@ -188,7 +185,7 @@ default Impl executesNative(NativeCommandExecutor executor) { /** * Adds an executor to the current command builder - * @param executor A lambda of type (NativeCommandExecutor, Object[]) -> int that will be executed when the command is run + * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> int that will be executed when the command is run * @return this command builder */ default Impl executesNative(NativeResultingCommandExecutor executor) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index d19819a362..7c28ec8f06 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -336,11 +336,11 @@ public void onDisable() { @Override @Unimplemented(because = REQUIRES_CSS) - public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); + public abstract BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); @Override @Unimplemented(because = REQUIRES_CSS) - public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); + public abstract BukkitCommandSender getCommandSenderFromCommandSource(Source cs); @Override @Unimplemented(because = REQUIRES_CRAFTBUKKIT) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index 93ab5532f1..3d850cc8d6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -1,11 +1,7 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import dev.jorel.commandapi.executors.*; import org.bukkit.command.CommandSender; -import java.util.ArrayList; - public class CommandAPICommand extends AbstractCommandAPICommand implements BukkitExecutable { public CommandAPICommand(CommandMetaData meta) { @@ -17,11 +13,7 @@ public CommandAPICommand(String commandName) { } @Override - public CommandAPICommand copy() { - CommandAPICommand command = new CommandAPICommand(new CommandMetaData(this.meta)); - command.args = new ArrayList<>(this.args); - command.subcommands = new ArrayList<>(this.subcommands); - command.isConverted = this.isConverted; - return command; + protected CommandAPICommand newConcreteCommandAPICommand(CommandMetaData metaData) { + return new CommandAPICommand(metaData); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java index 48df6a2d15..ee60878e25 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java @@ -1,8 +1,5 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import dev.jorel.commandapi.executors.IExecutorNormal; -import dev.jorel.commandapi.executors.IExecutorResulting; import org.bukkit.command.CommandSender; public class CommandTree extends AbstractCommandTree implements BukkitExecutable { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index 16e09a797a..cc49692266 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -27,6 +27,10 @@ * An argument that represents multiple LiteralArguments */ public class MultiLiteralArgument extends AbstractMultiLiteralArgument implements BukkitExecutable { + /** + * A multiliteral argument. Takes in string literals which cannot be modified + * @param literals the literals that this argument represents + */ public MultiLiteralArgument(String... literals) { super(literals); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index 7a0aa6b24a..d68f647838 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -550,7 +550,7 @@ public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractComman } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public BukkitCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException ignored) { @@ -840,7 +840,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java index 8fdc807fe5..2076c7fba2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java @@ -3,6 +3,7 @@ import java.util.Map; import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Location; import org.bukkit.World; @@ -78,7 +79,7 @@ public IntegerRange getIntRange(CommandContext cmdCtx, S @Differs(from = "1.13.1", by = "clw.f() -> clw.getEntity()") @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index cc654ce671..5efb24a690 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -542,7 +542,7 @@ public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractComman } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public BukkitCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -822,7 +822,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index 630c3a1475..eb577990d7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -20,6 +20,7 @@ import com.mojang.brigadier.Message; import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Axis; import org.bukkit.Bukkit; @@ -529,7 +530,7 @@ public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractComman } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public BukkitCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -820,7 +821,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx @Differs(from = "1.13.2", by = "Vec3D accessor methods for x -> getX(), y -> getY(), z -> getZ()") @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index ce83b3372c..b9fc596beb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -20,6 +20,7 @@ import com.mojang.brigadier.Message; import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Axis; import org.bukkit.Bukkit; @@ -528,7 +529,7 @@ public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractComman } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public BukkitCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -820,7 +821,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index f8c6f0069a..faacbfd2ae 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -24,6 +24,7 @@ import com.mojang.brigadier.Message; import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Axis; import org.bukkit.Bukkit; @@ -548,7 +549,7 @@ public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractComman } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public BukkitCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -836,7 +837,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index ef942d8b36..0bae8bc0e1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -24,6 +24,7 @@ import com.mojang.brigadier.Message; import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Axis; import org.bukkit.Bukkit; @@ -547,7 +548,7 @@ public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractComman } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public BukkitCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -833,7 +834,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index 274d81160f..f4d1c9a3d4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -44,6 +44,7 @@ import com.mojang.brigadier.Message; import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Axis; import org.bukkit.Bukkit; @@ -570,7 +571,7 @@ public CommandListenerWrapper getBrigadierSourceFromCommandSender(AbstractComman } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public BukkitCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -855,7 +856,7 @@ public String getScoreHolderSingle(CommandContext cmdCtx } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandListenerWrapper clw = cmdCtx.getSource(); CommandSender sender = clw.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java index 568ded1540..e85702150b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java @@ -33,6 +33,7 @@ import java.util.function.ToIntFunction; import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Bukkit; import org.bukkit.Color; @@ -462,7 +463,7 @@ public ParticleData getParticle(CommandContext cmdCtx, St } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java index 3dd06ebde4..5de901010d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java @@ -38,6 +38,7 @@ import java.util.function.Predicate; import java.util.function.ToIntFunction; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.Keyed; @@ -519,7 +520,7 @@ public ParticleData getParticle(CommandContext cmdCtx, St } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java index 30b766663d..1d8ae8df86 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java @@ -38,6 +38,7 @@ import com.mojang.brigadier.Message; import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Bukkit; import org.bukkit.Color; @@ -469,7 +470,7 @@ public ParticleData getParticle(CommandContext cmdCtx, St } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java index 1143650458..748402d581 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java @@ -38,6 +38,7 @@ import java.util.function.Predicate; import java.util.function.ToIntFunction; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.Keyed; @@ -578,7 +579,7 @@ public final ParticleData getParticle(CommandContext cmdC } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java index a541fe7d42..489952540a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java @@ -38,6 +38,7 @@ import java.util.function.Predicate; import java.util.function.ToIntFunction; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import org.bukkit.Axis; import org.bukkit.Bukkit; import org.bukkit.ChatColor; @@ -442,7 +443,7 @@ public final BaseComponent[] getChatComponent(CommandContext public abstract CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender sender); @Override - public final AbstractCommandSender getCommandSenderFromCommandSource(CommandSourceStack css) { + public final BukkitCommandSender getCommandSenderFromCommandSource(CommandSourceStack css) { try { return wrapCommandSender(css.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -636,7 +637,7 @@ public final String getScoreHolderSingle(CommandContext cmdC @Unimplemented(because = NAME_CHANGED, info = "i (1.17) -> getRotation (1.18) -> l (1.19)") @Unimplemented(because = NAME_CHANGED, info = "getEntity (1.17) -> getEntity (1.18) -> g (1.19)") @Unimplemented(because = NAME_CHANGED, info = "getWorld (1.17) -> getLevel (1.18) -> f (1.19)") - public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative); + public abstract BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative); @Override @Unimplemented(because = REQUIRES_CRAFTBUKKIT, classNamed = "CraftServer") diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java index bf50dc50f0..5235646a5f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java @@ -16,6 +16,7 @@ import java.util.function.Supplier; import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.Location; @@ -341,7 +342,7 @@ public static Object getField(Class className, String fieldName, Object insta } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { + public BukkitCommandSender getCommandSenderFromCommandSource(CommandListenerWrapper clw) { try { return wrapCommandSender(clw.getBukkitSender()); } catch (UnsupportedOperationException e) { @@ -350,7 +351,7 @@ public AbstractCommandSender getCommandSenderFromComman } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { return getCommandSenderFromCommandSource(cmdCtx.getSource()); } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java new file mode 100644 index 0000000000..cf9fbd37e1 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -0,0 +1,28 @@ +package dev.jorel.commandapi; + +import com.velocitypowered.api.command.CommandSource; + +public class CommandAPICommand extends AbstractCommandAPICommand implements VelocityExecutable { + /** + * Creates a new command builder + * + * @param commandName The name of the command to create + */ + public CommandAPICommand(String commandName) { + super(commandName); + } + + /** + * Creates a new Command builder + * + * @param metaData The metadata of the command to create + */ + protected CommandAPICommand(CommandMetaData metaData) { + super(metaData); + } + + @Override + protected CommandAPICommand newConcreteCommandAPICommand(CommandMetaData metaData) { + return new CommandAPICommand(metaData); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index bd10788528..356b497bf9 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -3,7 +3,7 @@ import dev.jorel.commandapi.abstractions.AbstractPlatform; public interface CommandAPIVersionHandler { - static AbstractPlatform getPlatform() { + static AbstractPlatform getPlatform() { return new VelocityPlatform(); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java new file mode 100644 index 0000000000..a2b31e0bd9 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java @@ -0,0 +1,14 @@ +package dev.jorel.commandapi; + +import com.velocitypowered.api.command.CommandSource; + +public class CommandTree extends AbstractCommandTree implements VelocityExecutable { + /** + * Creates a main root node for a command tree with a given command name + * + * @param commandName The name of the command to create + */ + public CommandTree(String commandName) { + super(commandName); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java new file mode 100644 index 0000000000..c50b3e4edf --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java @@ -0,0 +1,115 @@ +package dev.jorel.commandapi; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.executors.*; + +public interface VelocityExecutable> extends IPlatformExecutable { + // Regular command executor + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (CommandSender, Object[]) -> () that will be executed when the command is run + * @param types A list of executor types to use this executes method for. + * @return this command builder + */ + default Impl executes(CommandExecutor executor, ExecutorType... types) { + if (types == null || types.length == 0) { + getExecutor().addNormalExecutor(executor); + } else { + for (ExecutorType type : types) { + getExecutor().addNormalExecutor(new CommandExecutor() { + + @Override + public void run(CommandSource sender, Object[] args) throws WrapperCommandSyntaxException { + executor.executeWith(VelocityPlatform.get().wrapCommandSender(sender), args); + } + + @Override + public ExecutorType getType() { + return type; + } + }); + } + } + return (Impl) this; + } + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (CommandSender, Object[]) -> int that will be executed when the command is run + * @param types A list of executor types to use this executes method for. + * @return this command builder + */ + default Impl executes(ResultingCommandExecutor executor, ExecutorType... types) { + if (types == null || types.length == 0) { + getExecutor().addResultingExecutor(executor); + } else { + for (ExecutorType type : types) { + getExecutor().addResultingExecutor(new ResultingCommandExecutor() { + + @Override + public int run(CommandSource sender, Object[] args) throws WrapperCommandSyntaxException { + return executor.executeWith(VelocityPlatform.get().wrapCommandSender(sender), args); + } + + @Override + public ExecutorType getType() { + return type; + } + }); + } + } + return (Impl) this; + } + + // Player command executor + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (Player, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesPlayer(PlayerCommandExecutor executor) { + getExecutor().addNormalExecutor(executor); + return (Impl) this; + } + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (Player, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesPlayer(PlayerResultingCommandExecutor executor) { + getExecutor().addResultingExecutor(executor); + return (Impl) this; + } + + // Console command sender + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (ConsoleCommandSource, Object[]) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesConsole(ConsoleCommandExecutor executor) { + getExecutor().addNormalExecutor(executor); + return (Impl) this; + } + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (ConsoleCommandSource, Object[]) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesConsole(ConsoleResultingCommandExecutor executor) { + getExecutor().addResultingExecutor(executor); + return (Impl) this; + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecution.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecution.java new file mode 100644 index 0000000000..9a569b1327 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecution.java @@ -0,0 +1,23 @@ +package dev.jorel.commandapi; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.arguments.Argument; + +import java.util.List; + +public class VelocityExecution extends Execution { + public VelocityExecution(List> arguments, CustomCommandExecutor> executor) { + super(arguments, executor); + } + + @Override + protected AbstractCommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta) { + return new CommandAPICommand(meta); + } + + @Override + protected Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor) { + return new VelocityExecution(arguments, executor); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index 70099e11a1..6c50a63b1c 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -15,12 +15,23 @@ import com.velocitypowered.api.proxy.Player; import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.abstractions.AbstractPlatform; -import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.abstractions.AbstractPlayer; +import dev.jorel.commandapi.arguments.*; +import dev.jorel.commandapi.commandsenders.VelocityCommandSender; import dev.jorel.commandapi.commandsenders.VelocityConsoleCommandSender; import dev.jorel.commandapi.commandsenders.VelocityPlayer; -public class VelocityPlatform extends AbstractPlatform { +public class VelocityPlatform extends AbstractPlatform { private CommandManager commandManager; + private static VelocityPlatform instance; + + public VelocityPlatform() { + instance = this; + } + + public static VelocityPlatform get() { + return instance; + } @Override public void onLoad() { @@ -62,8 +73,7 @@ public CommandDispatcher getBrigadierDispatcher() { } @Override - public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, - boolean forceNative) { + public VelocityCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { // TODO: This method MAY be completely identical to getCommandSenderFromCommandSource. // In Bukkit, this is NOT the case - we have to apply certain changes based // on the command context - for example, if we're proxying another entity or @@ -75,7 +85,7 @@ public AbstractCommandSender getSenderForCommand(Comman } @Override - public AbstractCommandSender getCommandSenderFromCommandSource(CommandSource cs) { + public VelocityCommandSender getCommandSenderFromCommandSource(CommandSource cs) { // Given a Brigadier CommandContext source (result of CommandContext.getSource), // we need to convert that to an AbstractCommandSender. if(cs instanceof ConsoleCommandSource ccs) @@ -86,8 +96,13 @@ public AbstractCommandSender getCommandSenderFromComman } @Override - public CommandSource getBrigadierSourceFromCommandSender(AbstractCommandSender sender) { - return (CommandSource) sender.getSource(); + public VelocityCommandSender wrapCommandSender(CommandSource commandSource) { + return getCommandSenderFromCommandSource(commandSource); + } + + @Override + public CommandSource getBrigadierSourceFromCommandSender(AbstractCommandSender sender) { + return sender.getSource(); } @Override @@ -110,4 +125,30 @@ public LiteralCommandNode registerCommandNode(LiteralArgumentBuil return command.getNode(); } + @Override + public void reloadDataPacks() { + // TODO Auto-generated method stub + // See note for CommandAPI#reloadDatapacks + } + + @Override + public void updateRequirements(AbstractPlayer player) { + // TODO Auto-generated method stub + // See note for CommandAPI#updateRequirements + } + + @Override + public Execution newConcreteExecution(List> argument, CustomCommandExecutor> executor) { + return new VelocityExecution(argument, executor); + } + + @Override + public AbstractMultiLiteralArgument newConcreteMultiLiteralArgument(String[] literals) { + return new MultiLiteralArgument(literals); + } + + @Override + public AbstractLiteralArgument newConcreteLiteralArgument(String literal) { + return new LiteralArgument(literal); + } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java new file mode 100644 index 0000000000..12c1a006d3 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java @@ -0,0 +1,56 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.abstractions.AbstractPlatform; + +/** + * An argument that represents text, encased in quotes + */ +public abstract class AbstractTextArgument,CommandSender> extends Argument { + + /** + * A string argument for one word, or multiple words encased in quotes + * @param nodeName the name of the node for this argument + */ + public AbstractTextArgument(String nodeName) { + super(nodeName, StringArgumentType.string()); + } + + @Override + public Class getPrimitiveType() { + return String.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_TEXT; + } + + @Override + public String parseArgument(AbstractPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java new file mode 100644 index 0000000000..50ea2f5249 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.VelocityExecutable; + +/** + * An argument that represents primitive Java booleans + * + * @apiNote Returns a {@link boolean} + */ +public class BooleanArgument extends AbstractBooleanArgument implements VelocityExecutable { + /** + * Constructs a Boolean argument with a given node name + * + * @param nodeName the name of the node for argument + */ + public BooleanArgument(String nodeName) { + super(nodeName); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java new file mode 100644 index 0000000000..874fca61cb --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.VelocityExecutable; + +/** + * An argument that represents primitive Java doubles + * + * @apiNote Returns a {@link double} + */ +public class DoubleArgument extends AbstractDoubleArgument implements VelocityExecutable { + /** + * A double argument + * + * @param nodeName the name of the node for this argument + */ + public DoubleArgument(String nodeName) { + super(nodeName); + } + + /** + * A double argument with a minimum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + */ + public DoubleArgument(String nodeName, double min) { + super(nodeName, min); + } + + /** + * A double argument with a minimum and maximum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + * @param max The maximum value this argument can take (inclusive) + */ + public DoubleArgument(String nodeName, double min, double max) { + super(nodeName, min, max); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java new file mode 100644 index 0000000000..3254f4c43a --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.VelocityExecutable; + +/** + * An argument that represents primitive Java floats + */ +public class FloatArgument extends AbstractFloatArgument implements VelocityExecutable { + /** + * A float argument + * + * @param nodeName the name of the node for this argument + */ + public FloatArgument(String nodeName) { + super(nodeName); + } + + /** + * A float argument with a minimum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + */ + public FloatArgument(String nodeName, float min) { + super(nodeName, min); + } + + /** + * A float argument with a minimum and maximum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + * @param max The maximum value this argument can take (inclusive) + */ + public FloatArgument(String nodeName, float min, float max) { + super(nodeName, min, max); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java new file mode 100644 index 0000000000..ff3f4a2120 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.VelocityExecutable; + +/** + * An argument that represents arbitrary strings + */ +public class GreedyStringArgument extends AbstractGreedyStringArgument implements VelocityExecutable { + /** + * A string argument for a string of any length + * + * @param nodeName the name of the node for this argument + */ + public GreedyStringArgument(String nodeName) { + super(nodeName); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java new file mode 100644 index 0000000000..55f9857054 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.VelocityExecutable; + +/** + * An argument that represents primitive Java ints + */ +public class IntegerArgument extends AbstractIntegerArgument implements VelocityExecutable { + /** + * An integer argument + * + * @param nodeName the name of the node for this argument + */ + public IntegerArgument(String nodeName) { + super(nodeName); + } + + /** + * An integer argument with a minimum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + */ + public IntegerArgument(String nodeName, int min) { + super(nodeName, min); + } + + /** + * An integer argument with a minimum and maximum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + * @param max The maximum value this argument can take (inclusive) + */ + public IntegerArgument(String nodeName, int min, int max) { + super(nodeName, min, max); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java new file mode 100644 index 0000000000..fc31f15813 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.VelocityExecutable; + +/** + * A pseudo-argument representing a single literal string + */ +public class LiteralArgument extends AbstractLiteralArgument implements VelocityExecutable { + /** + * A literal argument. Only takes one string value which cannot be modified + * + * @param literal the string literal that this argument will represent + */ + public LiteralArgument(String literal) { + super(literal); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java new file mode 100644 index 0000000000..c21533588b --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -0,0 +1,59 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.VelocityExecutable; + +/** + * An argument that represents primitive Java longs + */ +public class LongArgument extends AbstractLongArgument implements VelocityExecutable { + /** + * A long argument + * + * @param nodeName the name of the node for this argument + */ + public LongArgument(String nodeName) { + super(nodeName); + } + + /** + * A long argument with a minimum value + * + * @param nodeName the name of the node for this argument + * @param value The minimum value this argument can take (inclusive) + */ + public LongArgument(String nodeName, long value) { + super(nodeName, value); + } + + /** + * A long argument with a minimum and maximum value + * + * @param nodeName the name of the node for this argument + * @param min The minimum value this argument can take (inclusive) + * @param max The maximum value this argument can take (inclusive) + */ + public LongArgument(String nodeName, long min, long max) { + super(nodeName, min, max); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java new file mode 100644 index 0000000000..d607dc5093 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -0,0 +1,37 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.VelocityExecutable; + +/** + * An argument that represents multiple LiteralArguments + */ +public class MultiLiteralArgument extends AbstractMultiLiteralArgument implements VelocityExecutable { + /** + * A multiliteral argument. Takes in string literals which cannot be modified + * @param literals the literals that this argument represents + */ + public MultiLiteralArgument(String... literals) { + super(literals); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java new file mode 100644 index 0000000000..ed8091fa27 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -0,0 +1,38 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.arguments; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.VelocityExecutable; + +/** + * An argument that represents a simple String + */ +public class StringArgument extends AbstractStringArgument implements VelocityExecutable { + /** + * A string argument for one word + * + * @param nodeName the name of the node for this argument + */ + public StringArgument(String nodeName) { + super(nodeName); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java new file mode 100644 index 0000000000..91697de556 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java @@ -0,0 +1,28 @@ +package dev.jorel.commandapi.executors; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.commandsenders.VelocityCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; + +@FunctionalInterface +public interface CommandExecutor extends IExecutorNormal> { + /** + * Executes the command. + * + * @param commandSource the CommandSource for this command + * @param args the arguments provided to this command + * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command + */ + @Override + void run(CommandSource commandSource, Object[] args) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.ALL; + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java new file mode 100644 index 0000000000..b8a1ef6e37 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.executors; + +import com.velocitypowered.api.proxy.ConsoleCommandSource; +import dev.jorel.commandapi.commandsenders.VelocityConsoleCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; + +/** + * A normal command executor for a ConsoleCommandSender + */ +@FunctionalInterface +public interface ConsoleCommandExecutor extends IExecutorNormal { + + /** + * The code to run when this command is performed + * + * @param sender + * The sender of this command (a player, the console etc.) + * @param args + * The arguments given to this command. The objects are + * determined by the hashmap of arguments IN THE ORDER of + * insertion into the hashmap + */ + void run(ConsoleCommandSource sender, Object[] args) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.CONSOLE; + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java new file mode 100644 index 0000000000..01673bc277 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.executors; + +import com.velocitypowered.api.proxy.ConsoleCommandSource; +import dev.jorel.commandapi.commandsenders.VelocityConsoleCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; + +/** + * A resulting command executor for a ConsoleCommandSender + */ +@FunctionalInterface +public interface ConsoleResultingCommandExecutor extends IExecutorResulting { + + /** + * The code to run when this command is performed + * + * @param sender + * The sender of this command (a player, the console etc.) + * @param args + * The arguments given to this command. The objects are + * determined by the hashmap of arguments IN THE ORDER of + * insertion into the hashmap + * @return the result of this command + */ + int run(ConsoleCommandSource sender, Object[] args) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.CONSOLE; + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java new file mode 100644 index 0000000000..f0530082d5 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.executors; + +import com.velocitypowered.api.proxy.Player; +import dev.jorel.commandapi.commandsenders.VelocityPlayer; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; + +/** + * A normal command executor for a Player + */ +@FunctionalInterface +public interface PlayerCommandExecutor extends IExecutorNormal { + + /** + * The code to run when this command is performed + * + * @param sender + * The sender of this command (a player, the console etc.) + * @param args + * The arguments given to this command. The objects are + * determined by the hashmap of arguments IN THE ORDER of + * insertion into the hashmap + */ + void run(Player sender, Object[] args) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.PLAYER; + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java new file mode 100644 index 0000000000..1b62ab93e7 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + *******************************************************************************/ +package dev.jorel.commandapi.executors; + +import com.velocitypowered.api.proxy.Player; +import dev.jorel.commandapi.commandsenders.VelocityPlayer; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; + +/** + * A resulting command executor for a Player + */ +@FunctionalInterface +public interface PlayerResultingCommandExecutor extends IExecutorResulting { + + /** + * The code to run when this command is performed + * + * @param sender + * The sender of this command (a player, the console etc.) + * @param args + * The arguments given to this command. The objects are + * determined by the hashmap of arguments IN THE ORDER of + * insertion into the hashmap + * @return the result of this command + */ + int run(Player sender, Object[] args) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.PLAYER; + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java new file mode 100644 index 0000000000..e5a28fef39 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java @@ -0,0 +1,29 @@ +package dev.jorel.commandapi.executors; + +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.commandsenders.VelocityCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; + +@FunctionalInterface +public interface ResultingCommandExecutor extends IExecutorResulting> { + /** + * Executes the command. + * + * @param commandSource the CommandSource for this command + * @param args the arguments provided to this command + * @return the value returned by this command if the command succeeds, 0 if the command fails + * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command + */ + @Override + int run(CommandSource commandSource, Object[] args) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.ALL; + } +} From 17e61db3a92dedede5a3be20672b984a88c71f2a Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 22 Oct 2022 09:39:41 -0400 Subject: [PATCH 063/638] Clean up project warnings related to chained building methods --- .../commandapi/AbstractArgumentTree.java | 2 +- .../commandapi/AbstractCommandAPICommand.java | 36 +++--- .../jorel/commandapi/AbstractCommandTree.java | 6 +- .../java/dev/jorel/commandapi/Executable.java | 5 +- .../jorel/commandapi/ExecutableCommand.java | 28 ++--- .../jorel/commandapi/IChainableBuilder.java | 15 +++ .../jorel/commandapi/IPlatformExecutable.java | 4 +- .../jorel/commandapi/arguments/Argument.java | 103 ++++++++++-------- .../arguments/SafeOverrideableArgument.java | 20 ++-- .../jorel/commandapi/BukkitExecutable.java | 58 ++++++---- .../jorel/commandapi/VelocityExecutable.java | 14 +-- 11 files changed, 156 insertions(+), 135 deletions(-) create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/IChainableBuilder.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java index 39d79f9740..a33eff59ba 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java @@ -48,7 +48,7 @@ public AbstractArgumentTree(final Argument argument) { */ public Impl then(final AbstractArgumentTree tree) { this.arguments.add(tree); - return (Impl) this; + return instance(); } List> getExecutions() { diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index 48b0cad4e7..ef22b31aea 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -45,7 +45,7 @@ public abstract class AbstractCommandAPICommandList that represents the arguments that this * command can accept * @return this command builder */ public Impl withArguments(List> args) { this.args.addAll(args); - return (Impl) this; + return instance(); } /** * Appends the argument(s) to the current command builder - * + * * @param args Arguments that this command can accept * @return this command builder */ @SafeVarargs public final Impl withArguments(Argument... args) { this.args.addAll(Arrays.asList(args)); - return (Impl) this; + return instance(); } /** * Adds a subcommand to this command builder - * + * * @param subcommand the subcommand to add as a child of this command * @return this command builder */ public Impl withSubcommand(Impl subcommand) { this.subcommands.add(subcommand); - return (Impl) this; + return instance(); } /** * Adds subcommands to this command builder - * + * * @param subcommands the subcommands to add as children of this command * @return this command builder */ public Impl withSubcommands(Impl... subcommands) { this.subcommands.addAll(Arrays.asList(subcommands)); - return (Impl) this; + return instance(); } /** * Returns the list of arguments that this command has - * + * * @return the list of arguments that this command has */ public List> getArguments() { @@ -120,7 +120,7 @@ public Impl withSubcommands(Impl... subcommands) { /** * Sets the arguments that this command has - * + * * @param args the arguments that this command has */ public void setArguments(List> args) { @@ -129,7 +129,7 @@ public void setArguments(List> args) { /** * Returns the list of subcommands that this command has - * + * * @return the list of subcommands that this command has */ public List getSubcommands() { @@ -138,7 +138,7 @@ public List getSubcommands() { /** * Sets the list of subcommands that this command has - * + * * @param subcommands the list of subcommands that this command has */ public void setSubcommands(List subcommands) { @@ -147,7 +147,7 @@ public void setSubcommands(List subcommands) { /** * Returns whether this command is an automatically converted command - * + * * @return whether this command is an automatically converted command */ public boolean isConverted() { @@ -158,20 +158,20 @@ public boolean isConverted() { * Sets a command as "converted". This tells the CommandAPI that this command * was converted by the CommandAPI's Converter. This should not be used outside * of the CommandAPI's internal API - * + * * @param isConverted whether this command is converted or not * @return this command builder */ Impl setConverted(boolean isConverted) { this.isConverted = isConverted; - return (Impl) this; + return instance(); } // Expands subcommands into arguments. This method should be static (it // shouldn't // be accessing/depending on any of the contents of the current class instance) private static , CommandSender> - void flatten(Impl rootCommand, List> prevArguments, Impl subcommand) { + void flatten(Impl rootCommand, List> prevArguments, Impl subcommand) { // Get the list of literals represented by the current subcommand. This // includes the subcommand's name and any aliases for this subcommand String[] literals = new String[subcommand.meta.aliases.length + 1]; diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java index 07c2f76582..6f81ff2026 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java @@ -16,7 +16,7 @@ public abstract class AbstractCommandTree tree) { this.arguments.add(tree); - return (Impl) this; + return instance(); } /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java index 8616e5833b..6c050785fc 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java @@ -11,7 +11,7 @@ * @param The class extending this class, used as the return type for chain calls * @param The CommandSender class used by the class extending this class */ -abstract class Executable, CommandSender> { +abstract class Executable, CommandSender> implements IChainableBuilder { /** * The CustomCommandExecutor for this executable implementation @@ -38,11 +38,10 @@ public void setExecutor(CustomCommandExecutor()); this.executor.setResultingExecutors(new ArrayList<>()); - return (Impl) this; + return instance(); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java index 9e96ff2be3..3f6ee17814 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java @@ -39,10 +39,9 @@ public String getName() { * @param permission The permission node required to execute this command * @return this command builder */ - @SuppressWarnings("unchecked") public Impl withPermission(CommandPermission permission) { this.meta.permission = permission; - return (Impl) this; + return instance(); } /** @@ -50,10 +49,9 @@ public Impl withPermission(CommandPermission permission) { * @param permission The permission node required to execute this command * @return this command builder */ - @SuppressWarnings("unchecked") public Impl withPermission(String permission) { this.meta.permission = CommandPermission.fromString(permission); - return (Impl) this; + return instance(); } /** @@ -61,10 +59,9 @@ public Impl withPermission(String permission) { * @param permission The permission node required to execute this command * @return this command builder */ - @SuppressWarnings("unchecked") public Impl withoutPermission(CommandPermission permission) { this.meta.permission = permission.negate(); - return (Impl) this; + return instance(); } /** @@ -72,10 +69,9 @@ public Impl withoutPermission(CommandPermission permission) { * @param permission The permission node required to execute this command * @return this command builder */ - @SuppressWarnings("unchecked") public Impl withoutPermission(String permission) { this.meta.permission = CommandPermission.fromString(permission).negate(); - return (Impl) this; + return instance(); } /** @@ -86,10 +82,9 @@ public Impl withoutPermission(String permission) { * @param requirement the predicate that must be satisfied to use this command * @return this command builder */ - @SuppressWarnings("unchecked") public Impl withRequirement(Predicate> requirement) { this.meta.requirements = this.meta.requirements.and(requirement); - return (Impl) this; + return instance(); } /** @@ -97,10 +92,9 @@ public Impl withRequirement(Predicate> requirement) { * @param aliases An array of aliases which can be used to execute this command * @return this command builder */ - @SuppressWarnings("unchecked") public Impl withAliases(String... aliases) { this.meta.aliases = aliases; - return (Impl) this; + return instance(); } @@ -167,10 +161,9 @@ public String getShortDescription() { * @param description the short description for this command * @return this command builder */ - @SuppressWarnings("unchecked") public Impl withShortDescription(String description) { this.meta.shortDescription = Optional.ofNullable(description); - return (Impl) this; + return instance(); } /** @@ -187,10 +180,9 @@ public String getFullDescription() { * @param description the full description for this command * @return this command builder */ - @SuppressWarnings("unchecked") public Impl withFullDescription(String description) { this.meta.fullDescription = Optional.ofNullable(description); - return (Impl) this; + return instance(); } /** @@ -201,11 +193,10 @@ public Impl withFullDescription(String description) { * @param fullDescription the full description for this command * @return this command builder */ - @SuppressWarnings("unchecked") public Impl withHelp(String shortDescription, String fullDescription) { this.meta.shortDescription = Optional.ofNullable(shortDescription); this.meta.fullDescription = Optional.ofNullable(fullDescription); - return (Impl) this; + return instance(); } /** @@ -221,5 +212,4 @@ public void override() { * Registers this command */ public abstract void register(); - } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/IChainableBuilder.java b/commandapi-core/src/main/java/dev/jorel/commandapi/IChainableBuilder.java new file mode 100644 index 0000000000..2e26d2068a --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/IChainableBuilder.java @@ -0,0 +1,15 @@ +package dev.jorel.commandapi; + +/** + * + * @param The class extending this class, used as the return type for chain calls + */ +public interface IChainableBuilder { + /** + * Returns the instance of this class with the class Impl. Used for chaining builder methods. + */ + @SuppressWarnings("unchecked") + default Impl instance() { + return (Impl) this; + } +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java index fcb465b42a..498018d246 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java @@ -2,9 +2,7 @@ import dev.jorel.commandapi.abstractions.AbstractCommandSender; -public interface IPlatformExecutable { +public interface IPlatformExecutable, CommandSender> extends IChainableBuilder { // Automatically links to Executable#getExecutor (make sure it has the same signature) CustomCommandExecutor> getExecutor(); - - } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java index 702fbe2afb..29967211f2 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -50,14 +50,14 @@ public abstract class Argument, /** * Returns the primitive type of the current Argument. After executing a * command, this argument should yield an object of this returned class. - * + * * @return the type that this argument yields when the command is run */ public abstract Class getPrimitiveType(); /** * Returns the argument type for this argument. - * + * * @return the argument type for this argument */ public abstract CommandAPIArgumentType getArgumentType(); @@ -71,9 +71,9 @@ public abstract class Argument, /** * Constructs an argument with a given NMS/brigadier type. - * - * @param nodeName the name to assign to this argument node - * @param rawType the NMS or brigadier type to be used for this argument + * + * @param nodeName the name to assign to this argument node + * @param rawType the NMS or brigadier type to be used for this argument */ protected Argument(String nodeName, ArgumentType rawType) { this.nodeName = nodeName; @@ -82,36 +82,37 @@ protected Argument(String nodeName, ArgumentType rawType) { /** * Returns the NMS or brigadier type for this argument. - * + * * @return the NMS or brigadier type for this argument */ public final ArgumentType getRawType() { return this.rawType; } - + /** * Returns the name of this argument's node + * * @return the name of this argument's node */ public final String getNodeName() { return this.nodeName; } - + /** * Parses an argument, returning the specific Bukkit object that the argument * represents. This is intended for use by the internals of the CommandAPI and * isn't expected to be used outside the CommandAPI - * - * @param the command source type - * @param platform a reference to the platform - * @param cmdCtx the context which ran this command - * @param key the name of the argument node - * @param previousArgs an array of previously declared arguments + * + * @param the command source type + * @param platform a reference to the platform + * @param cmdCtx the context which ran this command + * @param key the name of the argument node + * @param previousArgs an array of previously declared arguments * @return the parsed object represented by this argument * @throws CommandSyntaxException if parsing fails */ public abstract T parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException; + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException; ///////////////// // Suggestions // @@ -124,19 +125,18 @@ public abstract T parseArgument(AbstractPlatform * Include suggestions to add to the list of default suggestions represented by this argument. * * @param suggestions An {@link ArgumentSuggestions} object representing the suggestions. Use the - * Static methods on ArgumentSuggestions to create these. - * + * Static methods on ArgumentSuggestions to create these. * @return the current argument */ public Impl includeSuggestions(ArgumentSuggestions suggestions) { this.addedSuggestions = Optional.of(suggestions); - return (Impl) this; + return instance(); } /** * Include suggestions to add to the list of default suggestions represented by * this argument. - * + * * @param suggestions a function that takes in SuggestionInfo which includes * information about the current state at the time the * suggestions are run and returns a String[] of suggestions @@ -152,7 +152,7 @@ public Impl includeSuggestions(Function suggestions) { /** * Include suggestions to add to the list of default suggestions represented by * this argument. - * + * * @param suggestions a function that takes in SuggestionInfo which includes * information about the current state at the time the * suggestions are run and returns an IStringTooltip[] of @@ -168,6 +168,7 @@ public Impl includeSuggestionsT(Function sugge /** * Returns an optional function which produces an array of suggestions which should be added * to existing suggestions. + * * @return An Optional containing a function which generates suggestions */ public Optional getIncludedSuggestions() { @@ -177,18 +178,20 @@ public Optional getIncludedSuggestions() { /** * Replace the suggestions of this argument. + * * @param suggestions An {@link ArgumentSuggestions} object representing the suggestions. Use the static methods in - * ArgumentSuggestions to create these. + * ArgumentSuggestions to create these. * @return the current argument */ - + public Impl replaceSuggestions(ArgumentSuggestions suggestions) { this.suggestions = Optional.of(suggestions); - return (Impl) this; + return instance(); } /** * Replaces the suggestions of this argument with an array of suggestions. + * * @param suggestions a function that takes in {@link SuggestionInfo} and returns a {@link String[]} of suggestions * @return the current argument * @deprecated use {@link #replaceSuggestions(ArgumentSuggestions)} instead @@ -200,6 +203,7 @@ public Impl replaceSuggestions(Function suggestions) { /** * Replaces the suggestions of this argument with an array of suggestions with tooltips. + * * @param suggestions a function that takes in {@link SuggestionInfo} and returns a {@link IStringTooltip[]} of suggestions * @return the current argument * @deprecated use {@link #replaceSuggestions(ArgumentSuggestions)} instead @@ -212,9 +216,9 @@ public Impl replaceSuggestionsT(Function sugge /** * Returns an optional function that maps the command sender to an IStringTooltip array of * suggestions for the current command - * + * * @return a function that provides suggestions, or Optional.empty() if there - * are no overridden suggestions. + * are no overridden suggestions. */ public final Optional getOverriddenSuggestions() { return suggestions; @@ -228,106 +232,109 @@ public final Optional getOverriddenSuggestions() { /** * Assigns the given permission as a requirement to execute this command. - * + * * @param permission the permission required to execute this command * @return this current argument */ public final Impl withPermission(CommandPermission permission) { this.permission = permission; - return (Impl) this; + return instance(); } - + /** * Assigns the given permission as a requirement to execute this command. - * + * * @param permission the permission required to execute this command * @return this current argument */ public final Impl withPermission(String permission) { this.permission = CommandPermission.fromString(permission); - return (Impl) this; + return instance(); } /** * Returns the permission required to run this command + * * @return the permission required to run this command */ public final CommandPermission getArgumentPermission() { return permission; } - + ////////////////// // Requirements // ////////////////// - + private Predicate> requirements = s -> true; - + /** * Returns the requirements required to run this command + * * @return the requirements required to run this command */ public final Predicate> getRequirements() { return this.requirements; } - + /** * Adds a requirement that has to be satisfied to use this argument. This method * can be used multiple times and each use of this method will AND its * requirement with the previously declared ones - * + * * @param requirement the predicate that must be satisfied to use this argument * @return this current argument */ public final Impl withRequirement(Predicate> requirement) { this.requirements = this.requirements.and(requirement); - return (Impl) this; + return instance(); } - + ///////////////// // Listability // ///////////////// - + private boolean isListed = true; - + /** * Returns true if this argument will be listed in the Object args[] of the command executor + * * @return true if this argument will be listed in the Object args[] of the command executor */ public boolean isListed() { return this.isListed; } - + /** * Sets whether this argument will be listed in the Object args[] of the command executor + * * @param listed if true, this argument will be included in the Object args[] of the command executor * @return this current argument */ public Impl setListed(boolean listed) { this.isListed = listed; - return (Impl) this; + return instance(); } - + /////////// // Other // /////////// - + /** * Gets a list of entity names for the current provided argument. This is * expected to be implemented by {@code EntitySelectorArgument} in Bukkit, see * {@code EntitySelectorArgument#getEntityNames(Object)} - * + * * @param argument a parsed (Bukkit) object representing the entity selector * type. This is either a List, an Entity or a Player * @return a list of strings representing the names of the entity or entities - * from {@code argument} + * from {@code argument} */ public List getEntityNames(Object argument) { - return Arrays.asList(new String[] { null }); + return Arrays.asList(new String[]{null}); } - + @Override public String toString() { return this.getNodeName() + "<" + this.getClass().getSimpleName() + ">"; } - } \ No newline at end of file diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java index 4b665135f0..6c1592ffb2 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java @@ -32,7 +32,7 @@ * * @param The type of the underlying object that this argument casts to * @param A custom type which is represented by this argument. For example, - * a {@link StringArgument} will have a custom type + * a {@link AbstractStringArgument} will have a custom type * String * @param The class extending this class, used as the return type for chain calls * @param The CommandSender class used by the class extending this class @@ -43,7 +43,7 @@ public abstract class SafeOverrideableArgument rawType, Fun /** * Replaces the suggestions with a safe {@link SafeSuggestions} object. Use the * static methods in {@link SafeSuggestions} to create safe suggestions. - * + * * @param suggestions The safe suggestions to use * @return the current argument */ public final Impl replaceSafeSuggestions(SafeSuggestions suggestions) { replaceSuggestions(suggestions.toSuggestions(mapper)); - return (Impl) this; + return instance(); } /** * Replaces the suggestions of this argument with an array of suggestions. - * + * * @param suggestions a function that takes in {@link SuggestionInfo} and * returns a {@link S} array of suggestions, where S is your * custom type @@ -82,7 +82,7 @@ public final Impl replaceWithSafeSuggestions(Function sugge /** * Replaces the suggestions of this argument with an array of suggestions. - * + * * @param suggestions a function that takes in {@link SuggestionInfo} and * returns an {@link AbstractTooltip} array of suggestions, * parameterized over {@link S} where S is your custom type @@ -98,7 +98,7 @@ public final Impl replaceWithSafeSuggestionsT(Function suggestions) { /** * Include suggestions to add to the list of default suggestions represented by * this argument. - * + * * @param suggestions a function that takes in {@link SuggestionInfo} which * includes information about the current state at the time * the suggestions are run and returns a {@link S} array of @@ -125,7 +125,7 @@ public final Impl includeWithSafeSuggestions(Function sugge /** * Include suggestions to add to the list of default suggestions represented by * this argument. - * + * * @param suggestions a function that takes in {@link SuggestionInfo} which * includes information about the current state at the time * the suggestions are run and returns an {@link AbstractTooltip} @@ -133,11 +133,9 @@ public final Impl includeWithSafeSuggestions(Function sugge * where S is your custom type * @return the current argument * @deprecated use {@link #includeSafeSuggestions(SafeSuggestions)} - * */ @Deprecated(forRemoval = true) public final Impl includeWithSafeSuggestionsT(Function[]> suggestions) { return includeSafeSuggestions(SafeSuggestions.tooltips(suggestions)); } - } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java index a4dd2658c3..c98b72f6b9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java @@ -4,20 +4,22 @@ import dev.jorel.commandapi.executors.*; import org.bukkit.command.CommandSender; -public interface BukkitExecutable> extends IPlatformExecutable { +public interface BukkitExecutable> extends IPlatformExecutable { // Regular command executor + /** * Adds an executor to the current command builder + * * @param executor A lambda of type (CommandSender, Object[]) -> () that will be executed when the command is run - * @param types A list of executor types to use this executes method for. + * @param types A list of executor types to use this executes method for. * @return this command builder */ default Impl executes(CommandExecutor executor, ExecutorType... types) { - if(types == null || types.length == 0) { + if (types == null || types.length == 0) { getExecutor().addNormalExecutor(executor); } else { - for(ExecutorType type : types) { + for (ExecutorType type : types) { getExecutor().addNormalExecutor(new CommandExecutor() { @Override @@ -32,20 +34,21 @@ public ExecutorType getType() { }); } } - return (Impl) this; + return instance(); } /** * Adds an executor to the current command builder + * * @param executor A lambda of type (CommandSender, Object[]) -> int that will be executed when the command is run - * @param types A list of executor types to use this executes method for. + * @param types A list of executor types to use this executes method for. * @return this command builder */ default Impl executes(ResultingCommandExecutor executor, ExecutorType... types) { - if(types == null || types.length == 0) { + if (types == null || types.length == 0) { getExecutor().addResultingExecutor(executor); } else { - for(ExecutorType type : types) { + for (ExecutorType type : types) { getExecutor().addResultingExecutor(new ResultingCommandExecutor() { @Override @@ -60,137 +63,148 @@ public ExecutorType getType() { }); } } - return (Impl) this; + return instance(); } // Player command executor /** * Adds an executor to the current command builder + * * @param executor A lambda of type (Player, Object[]) -> () that will be executed when the command is run * @return this command builder */ default Impl executesPlayer(PlayerCommandExecutor executor) { getExecutor().addNormalExecutor(executor); - return (Impl) this; + return instance(); } /** * Adds an executor to the current command builder + * * @param executor A lambda of type (Player, Object[]) -> int that will be executed when the command is run * @return this command builder */ default Impl executesPlayer(PlayerResultingCommandExecutor executor) { getExecutor().addResultingExecutor(executor); - return (Impl) this; + return instance(); } // Entity command executor /** * Adds an executor to the current command builder + * * @param executor A lambda of type (Entity, Object[]) -> () that will be executed when the command is run * @return this command builder */ default Impl executesEntity(EntityCommandExecutor executor) { getExecutor().addNormalExecutor(executor); - return (Impl) this; + return instance(); } /** * Adds an executor to the current command builder + * * @param executor A lambda of type (Entity, Object[]) -> int that will be executed when the command is run * @return this command builder */ default Impl executesEntity(EntityResultingCommandExecutor executor) { getExecutor().addResultingExecutor(executor); - return (Impl) this; + return instance(); } // Proxy command executor /** * Adds an executor to the current command builder + * * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> () that will be executed when the command is run * @return this command builder */ default Impl executesProxy(ProxyCommandExecutor executor) { getExecutor().addNormalExecutor(executor); - return (Impl) this; + return instance(); } /** * Adds an executor to the current command builder + * * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> int that will be executed when the command is run * @return this command builder */ default Impl executesProxy(ProxyResultingCommandExecutor executor) { getExecutor().addResultingExecutor(executor); - return (Impl) this; + return instance(); } // Command block command sender /** * Adds an executor to the current command builder + * * @param executor A lambda of type (BlockCommandSender, Object[]) -> () that will be executed when the command is run * @return this command builder */ default Impl executesCommandBlock(CommandBlockCommandExecutor executor) { getExecutor().addNormalExecutor(executor); - return (Impl) this; + return instance(); } /** * Adds an executor to the current command builder + * * @param executor A lambda of type (BlockCommandSender, Object[]) -> int that will be executed when the command is run * @return this command builder */ default Impl executesCommandBlock(CommandBlockResultingCommandExecutor executor) { getExecutor().addResultingExecutor(executor); - return (Impl) this; + return instance(); } // Console command sender /** * Adds an executor to the current command builder + * * @param executor A lambda of type (ConsoleCommandSender, Object[]) -> () that will be executed when the command is run * @return this command builder */ default Impl executesConsole(ConsoleCommandExecutor executor) { getExecutor().addNormalExecutor(executor); - return (Impl) this; + return instance(); } /** * Adds an executor to the current command builder + * * @param executor A lambda of type (ConsoleCommandSender, Object[]) -> int that will be executed when the command is run * @return this command builder */ default Impl executesConsole(ConsoleResultingCommandExecutor executor) { getExecutor().addResultingExecutor(executor); - return (Impl) this; + return instance(); } /** * Adds an executor to the current command builder + * * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> () that will be executed when the command is run * @return this command builder */ default Impl executesNative(NativeCommandExecutor executor) { getExecutor().addNormalExecutor(executor); - return (Impl) this; + return instance(); } /** * Adds an executor to the current command builder + * * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> int that will be executed when the command is run * @return this command builder */ default Impl executesNative(NativeResultingCommandExecutor executor) { getExecutor().addResultingExecutor(executor); - return (Impl) this; + return instance(); } - } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java index c50b3e4edf..7ce3305be8 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java @@ -4,7 +4,7 @@ import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.executors.*; -public interface VelocityExecutable> extends IPlatformExecutable { +public interface VelocityExecutable> extends IPlatformExecutable { // Regular command executor /** @@ -33,7 +33,7 @@ public ExecutorType getType() { }); } } - return (Impl) this; + return instance(); } /** @@ -62,7 +62,7 @@ public ExecutorType getType() { }); } } - return (Impl) this; + return instance(); } // Player command executor @@ -75,7 +75,7 @@ public ExecutorType getType() { */ default Impl executesPlayer(PlayerCommandExecutor executor) { getExecutor().addNormalExecutor(executor); - return (Impl) this; + return instance(); } /** @@ -86,7 +86,7 @@ default Impl executesPlayer(PlayerCommandExecutor executor) { */ default Impl executesPlayer(PlayerResultingCommandExecutor executor) { getExecutor().addResultingExecutor(executor); - return (Impl) this; + return instance(); } // Console command sender @@ -99,7 +99,7 @@ default Impl executesPlayer(PlayerResultingCommandExecutor executor) { */ default Impl executesConsole(ConsoleCommandExecutor executor) { getExecutor().addNormalExecutor(executor); - return (Impl) this; + return instance(); } /** @@ -110,6 +110,6 @@ default Impl executesConsole(ConsoleCommandExecutor executor) { */ default Impl executesConsole(ConsoleResultingCommandExecutor executor) { getExecutor().addResultingExecutor(executor); - return (Impl) this; + return instance(); } } From 40243469add1e30525639762c3e995db29ba0429 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 22 Oct 2022 16:00:49 -0400 Subject: [PATCH 064/638] Use CommandSender parameter for requirements rather than AbstractCommandSender --- .../commandapi/AbstractCommandAPICommand.java | 6 ++--- .../dev/jorel/commandapi/BaseHandler.java | 22 ++++++++++-------- .../java/dev/jorel/commandapi/Brigadier.java | 6 ++--- .../dev/jorel/commandapi/CommandMetaData.java | 6 ++--- .../jorel/commandapi/ExecutableCommand.java | 12 +++++----- .../jorel/commandapi/arguments/Argument.java | 23 ++++++++----------- 6 files changed, 37 insertions(+), 38 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index ef22b31aea..49c5251137 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -58,7 +58,7 @@ public AbstractCommandAPICommand(String commandName) { * * @param metaData The metadata of the command to create */ - protected AbstractCommandAPICommand(CommandMetaData metaData) { + protected AbstractCommandAPICommand(CommandMetaData metaData) { super(metaData); this.isConverted = false; } @@ -179,13 +179,13 @@ void flatten(Impl rootCommand, List> prevArguments System.arraycopy(subcommand.meta.aliases, 0, literals, 1, subcommand.meta.aliases.length); // Create a MultiLiteralArgument using the subcommand information - AbstractMultiLiteralArgument literal = BaseHandler.getInstance().getPlatform().newConcreteMultiLiteralArgument(literals); + AbstractMultiLiteralArgument literal = (AbstractMultiLiteralArgument) BaseHandler.getInstance().getPlatform().newConcreteMultiLiteralArgument(literals); literal.withPermission(subcommand.meta.permission) .withRequirement(subcommand.meta.requirements) .setListed(false); - prevArguments.add((Argument) literal); + prevArguments.add(literal); if (subcommand.executor.hasAnyExecutors()) { // Create the new command. The new command: diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 195453cbc1..073ea9a05a 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -271,7 +271,7 @@ Object parseArgument(CommandContext cmdCtx, String key, Argument generatePermissions(String commandName, CommandPermission permission, - Predicate> requirements) { + Predicate requirements) { // If we've already registered a permission, set it to the "parent" permission. if (PERMISSIONS_TO_FIX.containsKey(commandName.toLowerCase())) { if (!PERMISSIONS_TO_FIX.get(commandName.toLowerCase()).equals(permission)) { @@ -299,7 +299,7 @@ Predicate generatePermissions(String commandName, CommandPermission perm * @param permission the CommandAPI CommandPermission permission to check * @return true if the sender satisfies the provided permission */ - static boolean permissionCheck(AbstractCommandSender sender, CommandPermission permission, Predicate> requirements) { + static boolean permissionCheck(AbstractCommandSender sender, CommandPermission permission, Predicate requirements) { boolean satisfiesPermissions; if (sender == null) { satisfiesPermissions = true; @@ -315,7 +315,7 @@ static boolean permissionCheck(AbstractCommandSender sender, CommandPermissio if (permission.isNegated()) { satisfiesPermissions = !satisfiesPermissions; } - return satisfiesPermissions && requirements.test(sender); + return satisfiesPermissions && requirements.test(sender.getSource()); } ////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -328,17 +328,18 @@ static boolean permissionCheck(AbstractCommandSender sender, CommandPermissio * multiliteral arguments were present (and expanded) and returns false if * multiliteral arguments were not present. */ - private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) + private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals for (int index = 0; index < args.length; index++) { // Find the first multiLiteral in the for loop - if (args[index] instanceof AbstractMultiLiteralArgument superArg) { + if (args[index] instanceof AbstractMultiLiteralArgument) { + AbstractMultiLiteralArgument superArg = (AbstractMultiLiteralArgument) args[index]; // Add all of its entries for (int i = 0; i < superArg.getLiterals().length; i++) { - AbstractLiteralArgument litArg = BaseHandler.getInstance().getPlatform().newConcreteLiteralArgument(superArg.getLiterals()[i]); + AbstractLiteralArgument litArg = (AbstractLiteralArgument) BaseHandler.getInstance().getPlatform().newConcreteLiteralArgument(superArg.getLiterals()[i]); litArg.setListed(superArg.isListed()) .withPermission(superArg.getArgumentPermission()) .withRequirement(superArg.getRequirements()); @@ -413,7 +414,8 @@ private boolean hasCommandConflict(String commandName, Argument[] args, Argument innerArg = args[args.length - 1]; // Handle Literal arguments - if (innerArg instanceof AbstractLiteralArgument literalArgument) { + if (innerArg instanceof AbstractLiteralArgument) { + AbstractLiteralArgument literalArgument = (AbstractLiteralArgument) innerArg; return getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), innerArg.getArgumentPermission(), innerArg.getRequirements()).executes(command); } @@ -486,7 +488,7 @@ private void handlePreviewableArguments(String commandName, Argument[] // Builds our platform command using the given arguments for this method, then // registers it - void register(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) + void register(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals @@ -533,7 +535,7 @@ void register(CommandMetaData meta, final Argument[] args, String commandName = meta.commandName; CommandPermission permission = meta.permission; String[] aliases = meta.aliases; - Predicate> requirements = meta.requirements; + Predicate requirements = meta.requirements; Optional shortDescription = meta.shortDescription; Optional fullDescription = meta.fullDescription; @@ -639,7 +641,7 @@ LiteralArgumentBuilder getLiteralArgumentBuilder(String commandName) { * @return a brigadier LiteralArgumentBuilder representing a literal */ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandName, - CommandPermission permission, Predicate> requirements) { + CommandPermission permission, Predicate requirements) { LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal(commandName); return builder.requires((Source css) -> permissionCheck(platform.getCommandSenderFromCommandSource(css), permission, requirements)); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index c3cc3edda4..f6b4406a74 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -81,9 +81,9 @@ public static RootCommandNode getRootNode() { * @param literalArgument the LiteralArgument to convert from * @return a LiteralArgumentBuilder that represents the literal */ - public static LiteralArgumentBuilder fromLiteralArgument(AbstractLiteralArgument literalArgument) { - return BaseHandler.getInstance().getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), - literalArgument.getArgumentPermission(), literalArgument.getRequirements()); + public static LiteralArgumentBuilder fromLiteralArgument(AbstractLiteralArgument literalArgument) { + BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + return handler.getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), literalArgument.getArgumentPermission(), literalArgument.getRequirements()); } /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java index da341896a5..3602436f5f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java @@ -10,7 +10,7 @@ /** * This class stores metadata about a command */ -final class CommandMetaData { +final class CommandMetaData { /** * The command's name @@ -30,7 +30,7 @@ final class CommandMetaData { /** * A predicate that a {@link AbstractCommandSender} must pass in order to execute the command */ - Predicate> requirements = s -> true; + Predicate requirements = s -> true; /** * An optional short description for the command @@ -56,7 +56,7 @@ final class CommandMetaData { this.commandName = commandName; } - public CommandMetaData(CommandMetaData original) { + public CommandMetaData(CommandMetaData original) { this(original.commandName); this.permission = original.permission; this.aliases = Arrays.copyOf(original.aliases, original.aliases.length); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java index 3f6ee17814..8b19b00418 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java @@ -16,13 +16,13 @@ abstract class ExecutableCommand meta; ExecutableCommand(final String commandName) { - this.meta = new CommandMetaData(commandName); + this.meta = new CommandMetaData<>(commandName); } - protected ExecutableCommand(final CommandMetaData meta) { + protected ExecutableCommand(final CommandMetaData meta) { this.meta = meta; } @@ -82,7 +82,7 @@ public Impl withoutPermission(String permission) { * @param requirement the predicate that must be satisfied to use this command * @return this command builder */ - public Impl withRequirement(Predicate> requirement) { + public Impl withRequirement(Predicate requirement) { this.meta.requirements = this.meta.requirements.and(requirement); return instance(); } @@ -135,7 +135,7 @@ public void setAliases(String[] aliases) { * Returns the requirements that must be satisfied to run this command * @return the requirements that must be satisfied to run this command */ - public Predicate> getRequirements() { + public Predicate getRequirements() { return this.meta.requirements; } @@ -143,7 +143,7 @@ public Predicate> getRequirements() { * Sets the requirements that must be satisfied to run this command * @param requirements the requirements that must be satisfied to run this command */ - public void setRequirements(Predicate> requirements) { + public void setRequirements(Predicate requirements) { this.meta.requirements = requirements; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java index 29967211f2..95510c45dd 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -20,24 +20,21 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.Arrays; -import java.util.List; -import java.util.Optional; -import java.util.function.Function; -import java.util.function.Predicate; - -import dev.jorel.commandapi.AbstractArgumentTree; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; - import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractArgumentTree; import dev.jorel.commandapi.CommandPermission; import dev.jorel.commandapi.IStringTooltip; import dev.jorel.commandapi.SuggestionInfo; import dev.jorel.commandapi.abstractions.AbstractPlatform; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; +import java.util.function.Function; +import java.util.function.Predicate; + /** * The core abstract class for Command API arguments * @@ -265,14 +262,14 @@ public final CommandPermission getArgumentPermission() { // Requirements // ////////////////// - private Predicate> requirements = s -> true; + private Predicate requirements = s -> true; /** * Returns the requirements required to run this command * * @return the requirements required to run this command */ - public final Predicate> getRequirements() { + public final Predicate getRequirements() { return this.requirements; } @@ -284,7 +281,7 @@ public final Predicate> getRequirements() { * @param requirement the predicate that must be satisfied to use this argument * @return this current argument */ - public final Impl withRequirement(Predicate> requirement) { + public final Impl withRequirement(Predicate requirement) { this.requirements = this.requirements.and(requirement); return instance(); } From edc3ece95e2004cb02f31d4789808c238c01ad10 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 22 Oct 2022 16:29:11 -0400 Subject: [PATCH 065/638] Use CommandSender parameter for suggestions rather than AbstractCommandSender --- .../dev/jorel/commandapi/BaseHandler.java | 7 ++--- .../dev/jorel/commandapi/SuggestionInfo.java | 4 +-- .../jorel/commandapi/arguments/Argument.java | 20 ++++++------- .../arguments/ArgumentSuggestions.java | 30 +++++++++---------- .../arguments/SafeOverrideableArgument.java | 12 ++++---- .../commandapi/arguments/SafeSuggestions.java | 30 +++++++++---------- .../commandapi/arguments/ListArgument.java | 2 +- 7 files changed, 52 insertions(+), 53 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 073ea9a05a..d64951e34d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -734,12 +734,11 @@ SuggestionProvider toSuggestions(Argument theArgume boolean overrideSuggestions) { return (CommandContext context, SuggestionsBuilder builder) -> { // Construct the suggestion info - SuggestionInfo suggestionInfo = new SuggestionInfo(platform.getCommandSenderFromCommandSource(context.getSource()), - generatePreviousArguments(context, args, theArgument.getNodeName()), builder.getInput(), - builder.getRemaining()); + SuggestionInfo suggestionInfo = new SuggestionInfo<>(platform.getCommandSenderFromCommandSource(context.getSource()).getSource(), + generatePreviousArguments(context, args, theArgument.getNodeName()), builder.getInput(), builder.getRemaining()); // Get the suggestions - Optional suggestionsToAddOrOverride = overrideSuggestions + Optional> suggestionsToAddOrOverride = overrideSuggestions ? theArgument.getOverriddenSuggestions() : theArgument.getIncludedSuggestions(); return suggestionsToAddOrOverride.orElse(ArgumentSuggestions.empty()).suggest(suggestionInfo, builder); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java b/commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java index a93827396c..1803c318ae 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java @@ -33,9 +33,9 @@ * @param currentArg - the current partially typed argument. For example * "/mycmd tes" will return "tes" */ -public record SuggestionInfo( +public record SuggestionInfo( /** @param sender - the CommandSender typing this command */ - AbstractCommandSender sender, + CommandSender sender, /** * @param previousArgs - the list of previously declared (and parsed) arguments diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java index 95510c45dd..ca6afcee14 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -115,8 +115,8 @@ public abstract T parseArgument(AbstractPlatform // Suggestions // ///////////////// - private Optional suggestions = Optional.empty(); - private Optional addedSuggestions = Optional.empty(); + private Optional> suggestions = Optional.empty(); + private Optional> addedSuggestions = Optional.empty(); /** * Include suggestions to add to the list of default suggestions represented by this argument. @@ -125,7 +125,7 @@ public abstract T parseArgument(AbstractPlatform * Static methods on ArgumentSuggestions to create these. * @return the current argument */ - public Impl includeSuggestions(ArgumentSuggestions suggestions) { + public Impl includeSuggestions(ArgumentSuggestions suggestions) { this.addedSuggestions = Optional.of(suggestions); return instance(); } @@ -142,7 +142,7 @@ public Impl includeSuggestions(ArgumentSuggestions suggestions) { * @deprecated use {@link #includeSuggestions(ArgumentSuggestions)} instead */ @Deprecated(forRemoval = true) - public Impl includeSuggestions(Function suggestions) { + public Impl includeSuggestions(Function, String[]> suggestions) { return includeSuggestions(ArgumentSuggestions.strings(suggestions)); } @@ -158,7 +158,7 @@ public Impl includeSuggestions(Function suggestions) { * @deprecated use {@link #includeSuggestions(ArgumentSuggestions)} instead */ @Deprecated(forRemoval = true) - public Impl includeSuggestionsT(Function suggestions) { + public Impl includeSuggestionsT(Function, IStringTooltip[]> suggestions) { return includeSuggestions(ArgumentSuggestions.stringsWithTooltips(suggestions)); } @@ -168,7 +168,7 @@ public Impl includeSuggestionsT(Function sugge * * @return An Optional containing a function which generates suggestions */ - public Optional getIncludedSuggestions() { + public Optional> getIncludedSuggestions() { return addedSuggestions; } @@ -181,7 +181,7 @@ public Optional getIncludedSuggestions() { * @return the current argument */ - public Impl replaceSuggestions(ArgumentSuggestions suggestions) { + public Impl replaceSuggestions(ArgumentSuggestions suggestions) { this.suggestions = Optional.of(suggestions); return instance(); } @@ -194,7 +194,7 @@ public Impl replaceSuggestions(ArgumentSuggestions suggestions) { * @deprecated use {@link #replaceSuggestions(ArgumentSuggestions)} instead */ @Deprecated(forRemoval = true) - public Impl replaceSuggestions(Function suggestions) { + public Impl replaceSuggestions(Function, String[]> suggestions) { return replaceSuggestions(ArgumentSuggestions.strings(suggestions)); } @@ -206,7 +206,7 @@ public Impl replaceSuggestions(Function suggestions) { * @deprecated use {@link #replaceSuggestions(ArgumentSuggestions)} instead */ @Deprecated(forRemoval = true) - public Impl replaceSuggestionsT(Function suggestions) { + public Impl replaceSuggestionsT(Function, IStringTooltip[]> suggestions) { return replaceSuggestions(ArgumentSuggestions.stringsWithTooltips(suggestions)); } @@ -217,7 +217,7 @@ public Impl replaceSuggestionsT(Function sugge * @return a function that provides suggestions, or Optional.empty() if there * are no overridden suggestions. */ - public final Optional getOverriddenSuggestions() { + public final Optional> getOverriddenSuggestions() { return suggestions; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java index 1edbdd092a..0c387ce384 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java @@ -19,7 +19,7 @@ // change the spaces into tabs! /* ANCHOR: Declaration */ @FunctionalInterface -public interface ArgumentSuggestions { +public interface ArgumentSuggestions { /** * Create a {@link CompletableFuture} resolving onto a brigadier {@link Suggestions} object. @@ -29,7 +29,7 @@ public interface ArgumentSuggestions { * * @throws CommandSyntaxException if there is an error making suggestions */ - CompletableFuture suggest(SuggestionInfo info, SuggestionsBuilder builder) + CompletableFuture suggest(SuggestionInfo info, SuggestionsBuilder builder) throws CommandSyntaxException; /* ANCHOR_END: Declaration */ @@ -37,7 +37,7 @@ CompletableFuture suggest(SuggestionInfo info, SuggestionsBuilder b * Suggest nothing * @return an {@link ArgumentSuggestions} object suggesting nothing. */ - static ArgumentSuggestions empty() { + static ArgumentSuggestions empty() { return (info, builder) -> builder.buildFuture(); } @@ -48,7 +48,7 @@ static ArgumentSuggestions empty() { * * @return an {@link ArgumentSuggestions} object suggesting hardcoded strings */ - static ArgumentSuggestions strings(String... suggestions) { + static ArgumentSuggestions strings(String... suggestions) { return (info, builder) -> future(suggestionsFromStrings(builder, suggestions)); } @@ -59,7 +59,7 @@ static ArgumentSuggestions strings(String... suggestions) { * * @return an {@link ArgumentSuggestions} object suggesting hardcoded strings */ - static ArgumentSuggestions strings(Collection suggestions) { + static ArgumentSuggestions strings(Collection suggestions) { return (info, builder) -> future(suggestionsFromStrings(builder, suggestions)); } @@ -70,7 +70,7 @@ static ArgumentSuggestions strings(Collection suggestions) { * * @return an {@link ArgumentSuggestions} object suggesting the result of the function */ - static ArgumentSuggestions strings(Function suggestions) { + static ArgumentSuggestions strings(Function, String[]> suggestions) { return (info, builder) -> future(suggestionsFromStrings(builder, suggestions.apply(info))); } @@ -81,7 +81,7 @@ static ArgumentSuggestions strings(Function suggestion * * @return an {@link ArgumentSuggestions} object suggesting the result of the function */ - static ArgumentSuggestions stringCollection(Function> suggestions) { + static ArgumentSuggestions stringCollection(Function, Collection> suggestions) { return (info, builder) -> future(suggestionsFromStrings(builder, suggestions.apply(info))); } @@ -92,7 +92,7 @@ static ArgumentSuggestions stringCollection(Function> suggestions) { + static ArgumentSuggestions stringsAsync(Function, CompletableFuture> suggestions) { return (info, builder) -> suggestions .apply(info) .thenApply(strings -> suggestionsFromStrings(builder, strings)); @@ -105,7 +105,7 @@ static ArgumentSuggestions stringsAsync(Function>> suggestions) { + static ArgumentSuggestions stringCollectionAsync(Function, CompletableFuture>> suggestions) { return (info, builder) -> suggestions .apply(info) .thenApply(strings -> suggestionsFromStrings(builder, strings)); @@ -118,7 +118,7 @@ static ArgumentSuggestions stringCollectionAsync(Function ArgumentSuggestions stringsWithTooltips(IStringTooltip... suggestions) { return (info, builder) -> future(suggestionsFromTooltips(builder, suggestions)); } @@ -129,7 +129,7 @@ static ArgumentSuggestions stringsWithTooltips(IStringTooltip... suggestions) { * * @return an {@link ArgumentSuggestions} object suggesting the hardcoded strings with tooltips */ - static ArgumentSuggestions stringsWithTooltips(Collection suggestions) { + static ArgumentSuggestions stringsWithTooltips(Collection suggestions) { return (info, builder) -> future(suggestionsFromTooltips(builder, suggestions)); } @@ -140,7 +140,7 @@ static ArgumentSuggestions stringsWithTooltips(Collection sugges * * @return an {@link ArgumentSuggestions} object suggesting the result of the function */ - static ArgumentSuggestions stringsWithTooltips(Function suggestions) { + static ArgumentSuggestions stringsWithTooltips(Function, IStringTooltip[]> suggestions) { return (info, builder) -> future(suggestionsFromTooltips(builder, suggestions.apply(info))); } @@ -151,7 +151,7 @@ static ArgumentSuggestions stringsWithTooltips(Function> suggestions) { + static ArgumentSuggestions stringsWithTooltipsCollection(Function, Collection> suggestions) { return (info, builder) -> future(suggestionsFromTooltips(builder, suggestions.apply(info))); } @@ -162,7 +162,7 @@ static ArgumentSuggestions stringsWithTooltipsCollection(Function> suggestions) { + static ArgumentSuggestions stringsWithTooltipsAsync(Function, CompletableFuture> suggestions) { return (info, builder) -> suggestions .apply(info) .thenApply(stringsWithTooltips -> suggestionsFromTooltips(builder, stringsWithTooltips)); @@ -175,7 +175,7 @@ static ArgumentSuggestions stringsWithTooltipsAsync(Function>> suggestions) { + static ArgumentSuggestions stringsWithTooltipsCollectionAsync(Function, CompletableFuture>> suggestions) { return (info, builder) -> suggestions .apply(info) .thenApply(stringsWithTooltips -> suggestionsFromTooltips(builder, stringsWithTooltips)); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java index 6c1592ffb2..85ea7a8451 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java @@ -61,7 +61,7 @@ protected SafeOverrideableArgument(String nodeName, ArgumentType rawType, Fun * @param suggestions The safe suggestions to use * @return the current argument */ - public final Impl replaceSafeSuggestions(SafeSuggestions suggestions) { + public final Impl replaceSafeSuggestions(SafeSuggestions suggestions) { replaceSuggestions(suggestions.toSuggestions(mapper)); return instance(); } @@ -76,7 +76,7 @@ public final Impl replaceSafeSuggestions(SafeSuggestions suggestions) { * @deprecated use {@link #replaceSafeSuggestions(SafeSuggestions)} */ @Deprecated(forRemoval = true) - public final Impl replaceWithSafeSuggestions(Function suggestions) { + public final Impl replaceWithSafeSuggestions(Function, S[]> suggestions) { return replaceSafeSuggestions(SafeSuggestions.suggest(suggestions)); } @@ -90,7 +90,7 @@ public final Impl replaceWithSafeSuggestions(Function sugge * @deprecated use {@link #replaceSafeSuggestions(SafeSuggestions)} */ @Deprecated(forRemoval = true) - public final Impl replaceWithSafeSuggestionsT(Function[]> suggestions) { + public final Impl replaceWithSafeSuggestionsT(Function, AbstractTooltip[]> suggestions) { return replaceSafeSuggestions(SafeSuggestions.tooltips(suggestions)); } @@ -102,7 +102,7 @@ public final Impl replaceWithSafeSuggestionsT(Function suggestions) { + public final Impl includeSafeSuggestions(SafeSuggestions suggestions) { return this.includeSuggestions(suggestions.toSuggestions(mapper)); } @@ -118,7 +118,7 @@ public final Impl includeSafeSuggestions(SafeSuggestions suggestions) { * @deprecated use {@link #includeSafeSuggestions(SafeSuggestions)} */ @Deprecated(forRemoval = true) - public final Impl includeWithSafeSuggestions(Function suggestions) { + public final Impl includeWithSafeSuggestions(Function, S[]> suggestions) { return includeSafeSuggestions(SafeSuggestions.suggest(suggestions)); } @@ -135,7 +135,7 @@ public final Impl includeWithSafeSuggestions(Function sugge * @deprecated use {@link #includeSafeSuggestions(SafeSuggestions)} */ @Deprecated(forRemoval = true) - public final Impl includeWithSafeSuggestionsT(Function[]> suggestions) { + public final Impl includeWithSafeSuggestionsT(Function, AbstractTooltip[]> suggestions) { return includeSafeSuggestions(SafeSuggestions.tooltips(suggestions)); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java index 3e1ae1e01c..b389167bf9 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java @@ -17,7 +17,7 @@ * @param the type of the suggestions */ @FunctionalInterface -public interface SafeSuggestions { +public interface SafeSuggestions { /** * Convert this {@link SafeSuggestions} object into an {@link ArgumentSuggestions} by mapping the values with a string @@ -27,7 +27,7 @@ public interface SafeSuggestions { * * @return an {@link ArgumentSuggestions} object resulting from this mapping. */ - ArgumentSuggestions toSuggestions(Function mapper); + ArgumentSuggestions toSuggestions(Function mapper); /** * Create an empty SafeSuggestions object. @@ -36,7 +36,7 @@ public interface SafeSuggestions { * * @return a SafeSuggestions object resulting in empty suggestions */ - static SafeSuggestions empty() { + static SafeSuggestions empty() { return (mapper) -> ArgumentSuggestions.empty(); } @@ -49,7 +49,7 @@ static SafeSuggestions empty() { * @return a SafeSuggestions object suggesting the hardcoded suggestions */ @SafeVarargs - static SafeSuggestions suggest(T... suggestions) { + static SafeSuggestions suggest(T... suggestions) { return (mapper) -> ArgumentSuggestions.strings(toStrings(mapper, suggestions)); } @@ -61,7 +61,7 @@ static SafeSuggestions suggest(T... suggestions) { * * @return a SafeSuggestions object suggesting the hardcoded suggestions */ - static SafeSuggestions suggest(Collection suggestions) { + static SafeSuggestions suggest(Collection suggestions) { return (mapper) -> ArgumentSuggestions.strings(toStrings(mapper, suggestions)); } @@ -73,7 +73,7 @@ static SafeSuggestions suggest(Collection suggestions) { * * @return a SafeSuggestion object suggesting the result of the function */ - static SafeSuggestions suggest(Function suggestions) { + static SafeSuggestions suggest(Function, T[]> suggestions) { return (mapper) -> ArgumentSuggestions.stringCollection(info -> toStrings(mapper, suggestions.apply(info))); } @@ -85,7 +85,7 @@ static SafeSuggestions suggest(Function suggestions) * * @return a SafeSuggestion object suggesting the result of the function */ - static SafeSuggestions suggestCollection(Function> suggestions) { + static SafeSuggestions suggestCollection(Function, Collection> suggestions) { return (mapper) -> ArgumentSuggestions.stringCollection(info -> toStrings(mapper, suggestions.apply(info))); } @@ -97,7 +97,7 @@ static SafeSuggestions suggestCollection(Function SafeSuggestions suggestAsync(Function> suggestions) { + static SafeSuggestions suggestAsync(Function, CompletableFuture> suggestions) { return (mapper) -> ArgumentSuggestions.stringCollectionAsync(info -> suggestions .apply(info) .thenApply(items -> toStrings(mapper, items))); @@ -111,7 +111,7 @@ static SafeSuggestions suggestAsync(Function SafeSuggestions suggestCollectionAsync(Function>> suggestions) { + static SafeSuggestions suggestCollectionAsync(Function, CompletableFuture>> suggestions) { return (mapper) -> ArgumentSuggestions.stringCollectionAsync(info -> suggestions .apply(info) .thenApply(items -> toStrings(mapper, items))); @@ -126,7 +126,7 @@ static SafeSuggestions suggestCollectionAsync(Function SafeSuggestions tooltips(AbstractTooltip... suggestions) { + static SafeSuggestions tooltips(AbstractTooltip... suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltips(toStringsWithTooltips(mapper, suggestions)); } @@ -138,7 +138,7 @@ static SafeSuggestions tooltips(AbstractTooltip... suggestions) { * * @return a SafeSuggestion object suggesting the hardcoded values */ - static SafeSuggestions tooltips(Collection> suggestions) { + static SafeSuggestions tooltips(Collection> suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltips(toStringsWithTooltips(mapper, suggestions)); } @@ -150,7 +150,7 @@ static SafeSuggestions tooltips(Collection> suggestion * * @return a SafeSuggestion object suggesting the result of the function */ - static SafeSuggestions tooltips(Function[]> suggestions) { + static SafeSuggestions tooltips(Function, AbstractTooltip[]> suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltipsCollection(info -> toStringsWithTooltips(mapper, suggestions.apply(info) )); @@ -164,7 +164,7 @@ static SafeSuggestions tooltips(Function SafeSuggestions tooltipCollection(Function>> suggestions) { + static SafeSuggestions tooltipCollection(Function, Collection>> suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltipsCollection(info -> toStringsWithTooltips(mapper, suggestions.apply(info) )); @@ -178,7 +178,7 @@ static SafeSuggestions tooltipCollection(Function SafeSuggestions tooltipsAsync(Function[]>> suggestions) { + static SafeSuggestions tooltipsAsync(Function, CompletableFuture[]>> suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltipsCollectionAsync(info -> suggestions .apply(info) .thenApply(items -> toStringsWithTooltips(mapper, items))); @@ -192,7 +192,7 @@ static SafeSuggestions tooltipsAsync(Function SafeSuggestions tooltipCollectionAsync(Function>>> suggestions) { + static SafeSuggestions tooltipCollectionAsync(Function, CompletableFuture>>> suggestions) { return (mapper) -> ArgumentSuggestions.stringsWithTooltipsCollectionAsync(info -> suggestions .apply(info) .thenApply(items -> toStringsWithTooltips(mapper, items))); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java index 0755524383..c27c1ee632 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java @@ -66,7 +66,7 @@ private void applySuggestions() { // This need not be a sorted map because entries in suggestions are // automatically sorted anyway Set values = new HashSet<>(); - for (T object : supplier.apply((CommandSender) info.sender().getSource())) { + for (T object : supplier.apply(info.sender())) { values.add(mapper.apply(object)); } From d5dd516945bb4709e0358460372eeeadca88fe1a Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 22 Oct 2022 16:35:44 -0400 Subject: [PATCH 066/638] Fix Java Bukkit documentation Examples --- .../src/main/test/java/Examples.java | 55 ++++++++----------- 1 file changed, 24 insertions(+), 31 deletions(-) diff --git a/commandapi-examples/src/main/test/java/Examples.java b/commandapi-examples/src/main/test/java/Examples.java index beb8135805..0e7e9e8165 100644 --- a/commandapi-examples/src/main/test/java/Examples.java +++ b/commandapi-examples/src/main/test/java/Examples.java @@ -32,6 +32,8 @@ import java.util.function.Predicate; import com.mojang.brigadier.Message; +import dev.jorel.commandapi.*; +import dev.jorel.commandapi.commandsenders.BukkitPlayer; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Chunk; @@ -88,16 +90,6 @@ import com.mojang.brigadier.tree.LiteralCommandNode; import de.tr7zw.changeme.nbtapi.NBTContainer; -import dev.jorel.commandapi.Brigadier; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPICommand; -import dev.jorel.commandapi.CommandAPIConfig; -import dev.jorel.commandapi.CommandPermission; -import dev.jorel.commandapi.CommandTree; -import dev.jorel.commandapi.Converter; -import dev.jorel.commandapi.IStringTooltip; -import dev.jorel.commandapi.StringTooltip; -import dev.jorel.commandapi.Tooltip; import dev.jorel.commandapi.arguments.AdvancementArgument; import dev.jorel.commandapi.arguments.AdventureChatArgument; import dev.jorel.commandapi.arguments.AdventureChatComponentArgument; @@ -843,7 +835,7 @@ void timearg() { { /* ANCHOR: blockpredicatearguments */ -Argument[] arguments = new Argument[] { +Argument[] arguments = new Argument[] { new IntegerArgument("radius"), new BlockPredicateArgument("fromBlock"), new BlockStateArgument("toBlock"), @@ -911,7 +903,8 @@ class NBTTest extends JavaPlugin { @Override public void onLoad() { CommandAPI.onLoad(new CommandAPIConfig() - .initializeNBTAPI(NBTContainer.class, NBTContainer::new) + .initializeNBTAPI(NBTContainer.class, NBTContainer::new), + new CommandAPIJavaLogger(getLogger()) ); } /* ANCHOR_END: nbtcompoundargumentonload */ @@ -1008,7 +1001,7 @@ void c(){ /* ANCHOR: customarguments2 */ // Function that returns our custom argument -public Argument worldArgument(String nodeName) { +public CustomArgument worldArgument(String nodeName) { // Construct our CustomArgument that takes in a String input and returns a World object return new CustomArgument(new StringArgument(nodeName), info -> { @@ -1300,7 +1293,7 @@ void resultingcommandexecutor3(){ ; /* ANCHOR: argumentsyntax3 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new StringArgument("arg0")); arguments.add(new StringArgument("arg1")); arguments.add(new StringArgument("arg2")); @@ -1335,7 +1328,7 @@ void resultingcommandexecutor3(){ @SuppressWarnings("unused") public void argumentCasting() { /* ANCHOR: argumentcasting */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new StringArgument("arg0")); arguments.add(new PotionEffectArgument("arg1")); arguments.add(new LocationArgument("arg2")); @@ -1378,7 +1371,7 @@ public void argumentCasting() { /* ANCHOR_END: requirementsmap */ /* ANCHOR: requirements2 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); // The "create" literal, with a requirement that a player must have a party arguments.add(new LiteralArgument("create") @@ -1459,7 +1452,7 @@ public void argumentCasting() { partyMembers.put(player.getUniqueId(), partyName); - CommandAPI.updateRequirements(player); + CommandAPI.updateRequirements(new BukkitPlayer(player)); }) .register(); /* ANCHOR_END: updatingrequirements */ @@ -1487,7 +1480,7 @@ public void argumentCasting() { /* ANCHOR_END: predicatetips */ /* ANCHOR: predicatetips2 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new LiteralArgument("create").withRequirement(testIfPlayerHasParty.negate())); arguments.add(new StringArgument("partyName")); /* ANCHOR_END: predicatetips2 */ @@ -1533,8 +1526,8 @@ void a(){ /* ANCHOR: declarearguments */ // Declare arguments like normal -Argument numeratorArgument = new IntegerArgument("numerator", 0); -Argument denominatorArgument = new IntegerArgument("denominator", 1); +IntegerArgument numeratorArgument = new IntegerArgument("numerator", 0); +IntegerArgument denominatorArgument = new IntegerArgument("denominator", 1); List arguments = new ArrayList<>(); arguments.add(numeratorArgument); @@ -1689,7 +1682,7 @@ void help() { { /* ANCHOR: Tooltips1 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new StringArgument("emote") .replaceSuggestions(ArgumentSuggestions.stringsWithTooltips(info -> new IStringTooltip[] { StringTooltip.ofString("wave", "Waves at a player"), @@ -1749,7 +1742,7 @@ void help() { { /* ANCHOR: SafeTooltips */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new LocationArgument("location") .replaceSafeSuggestions(SafeSuggestions.tooltips(info -> { // We know the sender is a player if we use .executesPlayer() @@ -1774,7 +1767,7 @@ void help() { { /* ANCHOR: ArgumentSuggestionsPrevious */ // Declare our arguments as normal -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new IntegerArgument("radius")); // Replace the suggestions for the PlayerArgument. @@ -1811,7 +1804,7 @@ void help() { { /* ANCHOR: ArgumentSuggestions2_2 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new PlayerArgument("friend").replaceSuggestions(ArgumentSuggestions.strings(info -> Friends.getFriends(info.sender()) ))); @@ -1829,7 +1822,7 @@ void help() { { Map warps = new HashMap<>(); /* ANCHOR: ArgumentSuggestions1 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new StringArgument("world").replaceSuggestions(ArgumentSuggestions.strings( "northland", "eastland", "southland", "westland" ))); @@ -1871,7 +1864,7 @@ void SafeRecipeArguments() { /* ANCHOR: SafeRecipeArguments_2 */ // Safely override with the recipe we've defined -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new RecipeArgument("recipe").replaceSafeSuggestions(SafeSuggestions.suggest(info -> new Recipe[] { emeraldSwordRecipe, /* Other recipes here */ } ))); @@ -1895,7 +1888,7 @@ void SafeRecipeArguments() { /* ANCHOR_END: SafeMobSpawnArguments */ /* ANCHOR: SafeMobSpawnArguments_2 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new EntityTypeArgument("mob").replaceSafeSuggestions(SafeSuggestions.suggest( info -> { if(info.sender().isOp()) { @@ -1922,7 +1915,7 @@ void SafeRecipeArguments() { { /* ANCHOR: SafePotionArguments */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new EntitySelectorArgument("target", EntitySelector.ONE_PLAYER)); arguments.add(new PotionEffectArgument("potioneffect").replaceSafeSuggestions(SafeSuggestions.suggest( info -> { @@ -1979,7 +1972,7 @@ void SafeRecipeArguments() { { /* ANCHOR: CommandAPIConfigSilent */ -CommandAPI.onLoad(new CommandAPIConfig().silentLogs(true)); +CommandAPI.onLoad(new CommandAPIConfig().silentLogs(true), new CommandAPIJavaLogger(getLogger())); /* ANCHOR_END: CommandAPIConfigSilent */ } @@ -2031,7 +2024,7 @@ void listargument() { void brigadierargs() { /* ANCHOR: BrigadierSuggestions1 */ -ArgumentSuggestions commandSuggestions = (info, builder) -> { +ArgumentSuggestions commandSuggestions = (info, builder) -> { // The current argument, which is a full command String arg = info.currentArg(); @@ -2047,7 +2040,7 @@ void brigadierargs() { // Parse command using brigadier ParseResults parseResults = Brigadier.getCommandDispatcher() - .parse(info.currentArg(), Brigadier.getBrigadierSourceFromCommandSender(info.sender())); + .parse(info.currentArg(), BukkitPlatform.get().getBrigadierSourceFromCommandSender(BukkitPlatform.get().wrapCommandSender(info.sender()))); // Intercept any parsing errors indicating an invalid command for(CommandSyntaxException exception : parseResults.getExceptions().values()) { From 3d6e5969afab4b29310ffed09d6af7cc1016ebd5 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 22 Oct 2022 18:50:08 -0400 Subject: [PATCH 067/638] Fix Kotlin Bukkit documentation Examples --- .../src/main/test/kotlin/Examples.kt | 53 ++++++++----------- 1 file changed, 22 insertions(+), 31 deletions(-) diff --git a/commandapi-examples/src/main/test/kotlin/Examples.kt b/commandapi-examples/src/main/test/kotlin/Examples.kt index 0426b2e2ac..6c6f1f12d2 100644 --- a/commandapi-examples/src/main/test/kotlin/Examples.kt +++ b/commandapi-examples/src/main/test/kotlin/Examples.kt @@ -61,17 +61,7 @@ import com.mojang.brigadier.suggestion.Suggestions import com.mojang.brigadier.tree.LiteralCommandNode import de.tr7zw.changeme.nbtapi.NBTContainer -import dev.jorel.commandapi.Brigadier -import dev.jorel.commandapi.CommandAPI -import dev.jorel.commandapi.CommandAPICommand -import dev.jorel.commandapi.CommandAPIConfig -import dev.jorel.commandapi.CommandPermission -import dev.jorel.commandapi.CommandTree -import dev.jorel.commandapi.Converter -import dev.jorel.commandapi.IStringTooltip -import dev.jorel.commandapi.StringTooltip -import dev.jorel.commandapi.SuggestionInfo -import dev.jorel.commandapi.Tooltip +import dev.jorel.commandapi.* import dev.jorel.commandapi.arguments.AdvancementArgument import dev.jorel.commandapi.arguments.AdventureChatArgument import dev.jorel.commandapi.arguments.AdventureChatComponentArgument @@ -123,6 +113,7 @@ import dev.jorel.commandapi.arguments.StringArgument import dev.jorel.commandapi.arguments.TeamArgument import dev.jorel.commandapi.arguments.TextArgument import dev.jorel.commandapi.arguments.TimeArgument +import dev.jorel.commandapi.commandsenders.BukkitPlayer import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException import dev.jorel.commandapi.executors.CommandBlockCommandExecutor import dev.jorel.commandapi.executors.CommandExecutor @@ -810,7 +801,7 @@ CommandAPICommand("bigmsg") fun blockpredicatearguments() { /* ANCHOR: blockpredicatearguments */ -val arguments = arrayOf>( +val arguments = arrayOf>( IntegerArgument("radius"), BlockPredicateArgument("fromBlock"), BlockStateArgument("toBlock"), @@ -965,7 +956,7 @@ CommandAPICommand("tpworld") /* ANCHOR: customarguments2 */ // Function that returns our custom argument -fun worldArgument(nodeName: String): Argument { +fun worldArgument(nodeName: String): CustomArgument { // Construct our CustomArgument that takes in a String input and returns a World object return CustomArgument(StringArgument(nodeName), { info -> @@ -1324,7 +1315,7 @@ val partyMembers = mutableMapOf() /* ANCHOR_END: requirementsmap */ /* ANCHOR: requirements2 */ -var arguments = mutableListOf>() +var arguments = mutableListOf>() // The "create" literal, with a requirement that a player must have a party arguments.add(LiteralArgument("create") @@ -1349,14 +1340,14 @@ CommandAPICommand("party") /* ANCHOR: requirementstp */ /* ANCHOR: requirements4 */ -arguments = mutableListOf>() +arguments = mutableListOf>() arguments.add(LiteralArgument("tp") .withRequirement({ partyMembers.containsKey((it as Player).uniqueId) }) ) /* ANCHOR_END: requirementstp */ arguments.add(PlayerArgument("player") - .replaceSafeSuggestions(SafeSuggestions.suggest( { info -> + .replaceSafeSuggestions(SafeSuggestions.suggest( { info -> // Store the list of party members to teleport to val playersToTeleportTo = mutableListOf() @@ -1405,7 +1396,7 @@ CommandAPICommand("party") partyMembers.put(player.uniqueId, partyName) - CommandAPI.updateRequirements(player) + CommandAPI.updateRequirements(BukkitPlayer(player)) }) .register() /* ANCHOR_END: updatingrequirements */ @@ -1433,7 +1424,7 @@ val testIfPlayerHasParty = Predicate { sender: CommandSender -> /* ANCHOR_END: predicatetips */ /* ANCHOR: predicatetips2 */ -var arguments = listOf>( +var arguments = listOf>( LiteralArgument("create").withRequirement(testIfPlayerHasParty.negate()), StringArgument("partyName") ) @@ -1441,7 +1432,7 @@ var arguments = listOf>( @Suppress("unused") /* ANCHOR: predicatetips3 */ -arguments = listOf>(LiteralArgument("tp").withRequirement(testIfPlayerHasParty)) +arguments = listOf>(LiteralArgument("tp").withRequirement(testIfPlayerHasParty)) /* ANCHOR_END: predicatetips3 */ } @@ -1482,7 +1473,7 @@ val randomChance: LiteralCommandNode = Brigadier.fromLiteralArgument(Litera val numeratorArgument = IntegerArgument("numerator", 0) val denominatorArgument = IntegerArgument("denominator", 1) -val arguments = listOf>(numeratorArgument, denominatorArgument) +val arguments = listOf>(numeratorArgument, denominatorArgument) /* ANCHOR_END: declarearguments */ // Get brigadier argument objects @@ -1634,7 +1625,7 @@ CommandAPICommand("mycommand") fun tooltips1() { /* ANCHOR: Tooltips1 */ -val arguments = mutableListOf>() +val arguments = mutableListOf>() arguments.add(StringArgument("emote") .replaceSuggestions(ArgumentSuggestions.stringsWithTooltips { info -> arrayOf( @@ -1689,7 +1680,7 @@ CommandAPICommand("giveitem") fun safetooltips() { /* ANCHOR: SafeTooltips */ -val arguments = listOf>( +val arguments = listOf>( LocationArgument("location") .replaceSafeSuggestions(SafeSuggestions.tooltips( { info -> // We know the sender is a player if we use .executesPlayer() @@ -1715,13 +1706,13 @@ CommandAPICommand("warp") fun argumentsuggestionsprevious() { /* ANCHOR: ArgumentSuggestionsPrevious */ // Declare our arguments as normal -val arguments = mutableListOf>() +val arguments = mutableListOf>() arguments.add(IntegerArgument("radius")) // Replace the suggestions for the PlayerArgument. // info.sender() refers to the command sender that is running this command // info.previousArgs() refers to the Object[] of previously declared arguments (in this case, the IntegerArgument radius) -arguments.add(PlayerArgument("target").replaceSuggestions(ArgumentSuggestions.strings { info: SuggestionInfo -> +arguments.add(PlayerArgument("target").replaceSuggestions(ArgumentSuggestions.strings { info: SuggestionInfo -> // Cast the first argument (radius, which is an IntegerArgument) to get its value val radius = (info.previousArgs()[0] as Int).toDouble() @@ -1752,7 +1743,7 @@ CommandAPICommand("localmsg") fun argumentsuggestions2_2() { /* ANCHOR: ArgumentSuggestions2_2 */ -val arguments = listOf>( +val arguments = listOf>( PlayerArgument("friend").replaceSuggestions(ArgumentSuggestions.strings({ info -> Friends.getFriends(info.sender()) })) @@ -1771,7 +1762,7 @@ CommandAPICommand("friendtp") fun argumentsuggestions1() { val warps = mutableMapOf() /* ANCHOR: ArgumentSuggestions1 */ -val arguments = listOf>( +val arguments = listOf>( StringArgument("world").replaceSuggestions(ArgumentSuggestions.strings( "northland", "eastland", "southland", "westland" )) @@ -1814,7 +1805,7 @@ getServer().addRecipe(emeraldSwordRecipe) /* ANCHOR: SafeRecipeArguments_2 */ // Safely override with the recipe we've defined -val arguments = listOf>( +val arguments = listOf>( RecipeArgument("recipe").replaceSafeSuggestions(SafeSuggestions.suggest { arrayOf(emeraldSwordRecipe, /* Other recipes here */) }) @@ -1839,7 +1830,7 @@ allowedMobs.removeAll(forbiddenMobs) // Now contains everything except enderdrag /* ANCHOR_END: SafeMobSpawnArguments */ /* ANCHOR: SafeMobSpawnArguments_2 */ -val arguments = listOf>( +val arguments = listOf>( EntityTypeArgument("mob").replaceSafeSuggestions(SafeSuggestions.suggest { info -> if (info.sender().isOp()) { @@ -1867,7 +1858,7 @@ CommandAPICommand("spawnmob") fun safepotionarguments() { /* ANCHOR: SafePotionArguments */ -val arguments = mutableListOf>() +val arguments = mutableListOf>() arguments.add(EntitySelectorArgument("target", EntitySelector.ONE_PLAYER)) arguments.add(PotionEffectArgument("potioneffect").replaceSafeSuggestions(SafeSuggestions.suggest { info -> @@ -1971,7 +1962,7 @@ CommandAPICommand("multigive") fun brigadierargs() { /* ANCHOR: BrigadierSuggestions1 */ -val commandSuggestions: ArgumentSuggestions = ArgumentSuggestions { info, builder -> +val commandSuggestions: ArgumentSuggestions = ArgumentSuggestions { info, builder -> // The current argument, which is a full command val arg: String = info.currentArg() @@ -1986,7 +1977,7 @@ val commandSuggestions: ArgumentSuggestions = ArgumentSuggestions { info, builde // Parse command using brigadier val parseResults: ParseResults<*> = Brigadier.getCommandDispatcher() - .parse(info.currentArg(), Brigadier.getBrigadierSourceFromCommandSender(info.sender())) + .parse(info.currentArg(), BukkitPlatform.get().getBrigadierSourceFromCommandSender(BukkitPlatform.get().wrapCommandSender(info.sender()))) // Intercept any parsing errors indicating an invalid command for ((_, exception) in parseResults.exceptions) { From d4b09fe6bb66f4fd35764cad9131f19fc81ef8db Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 22 Oct 2022 19:02:34 -0400 Subject: [PATCH 068/638] Make Brigadier use CommandSender instead of AbstractCommandSender --- .../java/dev/jorel/commandapi/Brigadier.java | 24 +++++++++++-------- .../src/main/test/java/Examples.java | 2 +- .../src/main/test/kotlin/Examples.kt | 2 +- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index f6b4406a74..4c15ec7c04 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -20,10 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi; -import java.util.Collections; -import java.util.List; -import java.util.function.BiPredicate; - import com.mojang.brigadier.Command; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.RedirectModifier; @@ -33,11 +29,15 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.tree.RootCommandNode; - import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.arguments.AbstractLiteralArgument; import dev.jorel.commandapi.arguments.Argument; +import java.util.Collections; +import java.util.List; +import java.util.function.BiPredicate; + /** * The Brigadier class is used to access some of the internals of the CommandAPI * so you can use the CommandAPI alongside Mojang's com.mojang.brigadier package @@ -102,7 +102,7 @@ public static LiteralArgumentBuilder fromLiteralArgument(Abstrac * @param args the arguments that the sender has filled in * @return a RedirectModifier that encapsulates the provided predicate */ - public static RedirectModifier fromPredicate(BiPredicate predicate, List args) { + public static RedirectModifier fromPredicate(BiPredicate predicate, List args) { return cmdCtx -> { if (predicate.test(getCommandSenderFromContext(cmdCtx), parseArguments(cmdCtx, args))) { return Collections.singleton(cmdCtx.getSource()); @@ -200,8 +200,9 @@ public static Object[] parseArguments(CommandContext cmdCtx, List args * @return a Brigadier source object representing the provided Bukkit * CommandSender */ - public static Object getBrigadierSourceFromCommandSender(AbstractCommandSender sender) { - return BaseHandler.getInstance().getPlatform().getBrigadierSourceFromCommandSender(sender); + public static Object getBrigadierSourceFromCommandSender(CommandSender sender) { + AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + return platform.getBrigadierSourceFromCommandSender(platform.wrapCommandSender(sender)); } @@ -211,7 +212,10 @@ public static Object getBrigadierSourceFromCommandSender(AbstractCommandSender s * @param cmdCtx the command context to get the CommandSender from * @return a Bukkit CommandSender from the provided Brigadier CommandContext */ - public static AbstractCommandSender getCommandSenderFromContext(CommandContext cmdCtx) { - return BaseHandler.getInstance().getPlatform().getSenderForCommand(cmdCtx, false); + public static CommandSender getCommandSenderFromContext(CommandContext cmdCtx) { + AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + // For some reason putting this on one line doesn't work - very weird + AbstractCommandSender abstractSender = platform.getSenderForCommand(cmdCtx, false); + return abstractSender.getSource(); } } \ No newline at end of file diff --git a/commandapi-examples/src/main/test/java/Examples.java b/commandapi-examples/src/main/test/java/Examples.java index 0e7e9e8165..3bcfce9054 100644 --- a/commandapi-examples/src/main/test/java/Examples.java +++ b/commandapi-examples/src/main/test/java/Examples.java @@ -2040,7 +2040,7 @@ void brigadierargs() { // Parse command using brigadier ParseResults parseResults = Brigadier.getCommandDispatcher() - .parse(info.currentArg(), BukkitPlatform.get().getBrigadierSourceFromCommandSender(BukkitPlatform.get().wrapCommandSender(info.sender()))); + .parse(info.currentArg(), Brigadier.getBrigadierSourceFromCommandSender(info.sender())); // Intercept any parsing errors indicating an invalid command for(CommandSyntaxException exception : parseResults.getExceptions().values()) { diff --git a/commandapi-examples/src/main/test/kotlin/Examples.kt b/commandapi-examples/src/main/test/kotlin/Examples.kt index 6c6f1f12d2..065b0656a5 100644 --- a/commandapi-examples/src/main/test/kotlin/Examples.kt +++ b/commandapi-examples/src/main/test/kotlin/Examples.kt @@ -1977,7 +1977,7 @@ val commandSuggestions: ArgumentSuggestions = ArgumentSuggestions // Parse command using brigadier val parseResults: ParseResults<*> = Brigadier.getCommandDispatcher() - .parse(info.currentArg(), BukkitPlatform.get().getBrigadierSourceFromCommandSender(BukkitPlatform.get().wrapCommandSender(info.sender()))) + .parse(info.currentArg(), Brigadier.getBrigadierSourceFromCommandSender(info.sender)) // Intercept any parsing errors indicating an invalid command for ((_, exception) in parseResults.exceptions) { From 60fc8f9a4dbdd6762ac1dea07cab4d836035c2a8 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 22 Oct 2022 19:10:01 -0400 Subject: [PATCH 069/638] Fix final errors in Examples --- .../jorel/commandapi/example}/java/Examples.java | 1 + .../jorel/commandapi/example}/kotlin/Examples.kt | 15 ++++----------- 2 files changed, 5 insertions(+), 11 deletions(-) rename commandapi-examples/src/main/test/{ => dev/jorel/commandapi/example}/java/Examples.java (99%) rename commandapi-examples/src/main/test/{ => dev/jorel/commandapi/example}/kotlin/Examples.kt (99%) diff --git a/commandapi-examples/src/main/test/java/Examples.java b/commandapi-examples/src/main/test/dev/jorel/commandapi/example/java/Examples.java similarity index 99% rename from commandapi-examples/src/main/test/java/Examples.java rename to commandapi-examples/src/main/test/dev/jorel/commandapi/example/java/Examples.java index 3bcfce9054..9ba23c3288 100644 --- a/commandapi-examples/src/main/test/java/Examples.java +++ b/commandapi-examples/src/main/test/dev/jorel/commandapi/example/java/Examples.java @@ -1,3 +1,4 @@ +package dev.jorel.commandapi.example.java; /******************************************************************************* * Copyright 2018, 2021 Jorel Ali (Skepter) - MIT License * diff --git a/commandapi-examples/src/main/test/kotlin/Examples.kt b/commandapi-examples/src/main/test/dev/jorel/commandapi/example/kotlin/Examples.kt similarity index 99% rename from commandapi-examples/src/main/test/kotlin/Examples.kt rename to commandapi-examples/src/main/test/dev/jorel/commandapi/example/kotlin/Examples.kt index 065b0656a5..4293ef2d28 100644 --- a/commandapi-examples/src/main/test/kotlin/Examples.kt +++ b/commandapi-examples/src/main/test/dev/jorel/commandapi/example/kotlin/Examples.kt @@ -1,3 +1,5 @@ +package dev.jorel.commandapi.example.kotlin + import java.util.UUID import java.util.concurrent.CompletableFuture import java.util.function.Predicate @@ -7,7 +9,6 @@ import kotlin.random.Random import com.mojang.brigadier.Message import org.bukkit.Bukkit import org.bukkit.ChatColor -import org.bukkit.Chunk import org.bukkit.GameMode import org.bukkit.Location import org.bukkit.Material @@ -18,10 +19,8 @@ import org.bukkit.World import org.bukkit.World.Environment import org.bukkit.WorldCreator import org.bukkit.advancement.Advancement -import org.bukkit.advancement.AdvancementProgress import org.bukkit.block.Biome import org.bukkit.block.Block -import org.bukkit.block.BlockState import org.bukkit.block.Chest import org.bukkit.block.Container import org.bukkit.block.Sign @@ -40,7 +39,6 @@ import org.bukkit.inventory.Recipe import org.bukkit.inventory.ShapedRecipe import org.bukkit.inventory.meta.BookMeta import org.bukkit.inventory.meta.Damageable -import org.bukkit.inventory.meta.ItemMeta import org.bukkit.loot.LootTable import org.bukkit.loot.Lootable import org.bukkit.metadata.FixedMetadataValue @@ -48,13 +46,9 @@ import org.bukkit.plugin.java.JavaPlugin import org.bukkit.potion.PotionEffect import org.bukkit.potion.PotionEffectType import org.bukkit.scoreboard.DisplaySlot -import org.bukkit.scoreboard.Objective -import org.bukkit.scoreboard.Scoreboard -import org.bukkit.scoreboard.Team import org.bukkit.util.EulerAngle import com.mojang.brigadier.ParseResults -import com.mojang.brigadier.builder.ArgumentBuilder import com.mojang.brigadier.context.StringRange import com.mojang.brigadier.exceptions.CommandSyntaxException import com.mojang.brigadier.suggestion.Suggestions @@ -127,7 +121,6 @@ import dev.jorel.commandapi.wrappers.FunctionWrapper import dev.jorel.commandapi.wrappers.IntegerRange import dev.jorel.commandapi.wrappers.MathOperation import dev.jorel.commandapi.wrappers.ParticleData -import dev.jorel.commandapi.wrappers.PreviewableFunction import dev.jorel.commandapi.wrappers.Rotation import dev.jorel.commandapi.wrappers.ScoreboardSlot import net.kyori.adventure.inventory.Book @@ -1483,7 +1476,7 @@ val numerator = Brigadier.fromArgument(numeratorArgument) val denominator = Brigadier.fromArgument(denominatorArgument) /* ANCHOR_END: declareargumentbuilders */ // Fork redirecting to "execute" and state our predicate - .fork(Brigadier.getRootNode().getChild("execute"), Brigadier.fromPredicate( { _, args -> + .fork(Brigadier.getRootNode().getChild("execute"), Brigadier.fromPredicate( { _: CommandSender, args -> // Parse arguments like normal val num = (args[0] as Int).toDouble() val denom = (args[1] as Int).toDouble() @@ -1745,7 +1738,7 @@ fun argumentsuggestions2_2() { /* ANCHOR: ArgumentSuggestions2_2 */ val arguments = listOf>( PlayerArgument("friend").replaceSuggestions(ArgumentSuggestions.strings({ info -> - Friends.getFriends(info.sender()) + Friends.getFriends(info.sender()) })) ) From 94c72c010a26071e189c3eb3d2281de0655bd9b7 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 22 Oct 2022 20:01:26 -0400 Subject: [PATCH 070/638] Fix docssrc to point to examples correctly --- .../commandapi/examples}/java/Examples.java | 2 +- .../commandapi/examples}/kotlin/Examples.kt | 2 +- docssrc/src/advancementargument.md | 4 +-- docssrc/src/adventurechatarguments.md | 8 ++--- docssrc/src/aliases.md | 4 +-- docssrc/src/arguments.md | 24 +++++++------- docssrc/src/asyncsuggestions.md | 4 +-- docssrc/src/biomeargument.md | 4 +-- docssrc/src/blockpredicateargs.md | 8 ++--- docssrc/src/blockstatearguments.md | 4 +-- docssrc/src/brigadier.md | 28 ++++++++-------- docssrc/src/brigadiersuggestions.md | 8 ++--- docssrc/src/chatarguments.md | 4 +-- docssrc/src/chatpreview.md | 8 ++--- docssrc/src/commandfailures.md | 4 +-- docssrc/src/commandregistration.md | 8 ++--- docssrc/src/commandtrees.md | 8 ++--- docssrc/src/config.md | 2 +- docssrc/src/conversion.md | 8 ++--- docssrc/src/customarguments.md | 8 ++--- docssrc/src/enchantmentargument.md | 4 +-- docssrc/src/entityarguments.md | 8 ++--- docssrc/src/environmentargs.md | 4 +-- docssrc/src/functionarguments.md | 4 +-- docssrc/src/functions.md | 4 +-- docssrc/src/functionwrapper.md | 4 +-- docssrc/src/help.md | 8 ++--- docssrc/src/itemstackarguments.md | 4 +-- docssrc/src/itemstackpredicateargs.md | 4 +-- docssrc/src/listarguments.md | 4 +-- docssrc/src/listed.md | 4 +-- docssrc/src/literalarguments.md | 8 ++--- docssrc/src/locationargument.md | 4 +-- docssrc/src/loottableargument.md | 4 +-- docssrc/src/mathoperationarguments.md | 4 +-- docssrc/src/multilitargs.md | 4 +-- docssrc/src/native.md | 4 +-- docssrc/src/nbtarguments.md | 8 ++--- docssrc/src/normalexecutors.md | 16 +++++----- docssrc/src/objectivearguments.md | 8 ++--- docssrc/src/particlearguments.md | 8 ++--- docssrc/src/permissions.md | 16 +++++----- docssrc/src/potionarguments.md | 4 +-- docssrc/src/predicatetips.md | 20 ++++++------ docssrc/src/primitivearguments.md | 4 +-- docssrc/src/proxysender.md | 8 ++--- docssrc/src/rangedarguments.md | 4 +-- docssrc/src/recipeargument.md | 8 ++--- docssrc/src/requirements.md | 32 +++++++++---------- docssrc/src/resultingcommandexecutors.md | 12 +++---- docssrc/src/rotationargs.md | 4 +-- docssrc/src/safeargumentsuggestions.md | 28 ++++++++-------- docssrc/src/scoreboardarguments.md | 8 ++--- docssrc/src/shading.md | 8 ++--- docssrc/src/soundargument.md | 4 +-- docssrc/src/spigotchatarguments.md | 8 ++--- docssrc/src/stringarguments.md | 4 +-- docssrc/src/stringargumentsuggestions.md | 16 +++++----- docssrc/src/subcommands.md | 16 +++++----- docssrc/src/teamarguments.md | 4 +-- docssrc/src/timeargs.md | 4 +-- docssrc/src/tooltips.md | 24 +++++++------- 62 files changed, 253 insertions(+), 253 deletions(-) rename commandapi-examples/src/{main/test/dev/jorel/commandapi/example => test/dev/jorel/commandapi/examples}/java/Examples.java (99%) rename commandapi-examples/src/{main/test/dev/jorel/commandapi/example => test/dev/jorel/commandapi/examples}/kotlin/Examples.kt (99%) diff --git a/commandapi-examples/src/main/test/dev/jorel/commandapi/example/java/Examples.java b/commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java similarity index 99% rename from commandapi-examples/src/main/test/dev/jorel/commandapi/example/java/Examples.java rename to commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java index 9ba23c3288..e7631f0260 100644 --- a/commandapi-examples/src/main/test/dev/jorel/commandapi/example/java/Examples.java +++ b/commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java @@ -1,4 +1,4 @@ -package dev.jorel.commandapi.example.java; +package dev.jorel.commandapi.examples.java; /******************************************************************************* * Copyright 2018, 2021 Jorel Ali (Skepter) - MIT License * diff --git a/commandapi-examples/src/main/test/dev/jorel/commandapi/example/kotlin/Examples.kt b/commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt similarity index 99% rename from commandapi-examples/src/main/test/dev/jorel/commandapi/example/kotlin/Examples.kt rename to commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt index 4293ef2d28..1cc5ac0923 100644 --- a/commandapi-examples/src/main/test/dev/jorel/commandapi/example/kotlin/Examples.kt +++ b/commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt @@ -1,4 +1,4 @@ -package dev.jorel.commandapi.example.kotlin +package dev.jorel.commandapi.examples.kotlin import java.util.UUID import java.util.concurrent.CompletableFuture diff --git a/docssrc/src/advancementargument.md b/docssrc/src/advancementargument.md index 24d8af4978..c9e87eaf36 100644 --- a/docssrc/src/advancementargument.md +++ b/docssrc/src/advancementargument.md @@ -19,11 +19,11 @@ Since we require a player, we will use the `PlayerArgument` for this example. Gi
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:advancementarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:advancementarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:advancementarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:advancementarguments}} ```
diff --git a/docssrc/src/adventurechatarguments.md b/docssrc/src/adventurechatarguments.md index d9d59367d2..f2d01172bb 100644 --- a/docssrc/src/adventurechatarguments.md +++ b/docssrc/src/adventurechatarguments.md @@ -29,11 +29,11 @@ We can construct a book using the Adventure API's `Book.book(Component, Componen
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:ArgumentAdventureChatComponent}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChatComponent}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:ArgumentAdventureChatComponent}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChatComponent}} ```
@@ -61,11 +61,11 @@ In order to broadcast an Adventure `Component` to all players on the server, we
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:ArgumentAdventureChat}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChat}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:ArgumentAdventureChat}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChat}} ```
diff --git a/docssrc/src/aliases.md b/docssrc/src/aliases.md index 030de2d543..c0bbaf5501 100644 --- a/docssrc/src/aliases.md +++ b/docssrc/src/aliases.md @@ -11,11 +11,11 @@ In this example, we register the command `/getpos` that returns the command send
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:aliases}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:aliases}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:aliases}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:aliases}} ```
diff --git a/docssrc/src/arguments.md b/docssrc/src/arguments.md index 02e8871154..3fb6cd36d5 100644 --- a/docssrc/src/arguments.md +++ b/docssrc/src/arguments.md @@ -26,11 +26,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:argumentsyntax1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:argumentsyntax1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax1}} ```
@@ -38,11 +38,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:argumentsyntax2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:argumentsyntax2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax2}} ```
@@ -50,11 +50,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:argumentsyntax3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:argumentsyntax3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax3}} ```
@@ -68,11 +68,11 @@ To access arguments, they have to be casted to the type that the argument repres
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:argumentcasting}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentcasting}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:argumentcasting}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentcasting}} ```
@@ -163,11 +163,11 @@ We first register the first `/kill` command as normal:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:argumentkillcmd}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:argumentkillcmd}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd}} ```
@@ -177,11 +177,11 @@ Now we declare our command with arguments for our second command. Then, we can r
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:argumentkillcmd2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:argumentkillcmd2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd2}} ```
diff --git a/docssrc/src/asyncsuggestions.md b/docssrc/src/asyncsuggestions.md index a4f6c76735..9ad7bfeff0 100644 --- a/docssrc/src/asyncsuggestions.md +++ b/docssrc/src/asyncsuggestions.md @@ -66,11 +66,11 @@ We make use of the `ArgumentSuggestions.stringsAsync` method to provide asynchro
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:asyncreadfile}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:asyncreadfile}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:asyncreadfile}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:asyncreadfile}} ```
diff --git a/docssrc/src/biomeargument.md b/docssrc/src/biomeargument.md index e51568a3e3..6db757ec90 100644 --- a/docssrc/src/biomeargument.md +++ b/docssrc/src/biomeargument.md @@ -19,11 +19,11 @@ And we can set the biome of the current chunk as expected:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:biomearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:biomearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:biomearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:biomearguments}} ```
diff --git a/docssrc/src/blockpredicateargs.md b/docssrc/src/blockpredicateargs.md index ace080a060..c33c24bd87 100644 --- a/docssrc/src/blockpredicateargs.md +++ b/docssrc/src/blockpredicateargs.md @@ -23,11 +23,11 @@ First, we declare our arguments. We want to use the `BlockPredicateArgument` sin
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:blockpredicatearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:blockpredicatearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments}} ```
@@ -41,11 +41,11 @@ Lastly, we register our command as normal using the `register()` method.
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:blockpredicatearguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:blockpredicatearguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments2}} ```
diff --git a/docssrc/src/blockstatearguments.md b/docssrc/src/blockstatearguments.md index 450d9fcece..be858ef0fa 100644 --- a/docssrc/src/blockstatearguments.md +++ b/docssrc/src/blockstatearguments.md @@ -23,11 +23,11 @@ And then we can simply set our block using `setBlockData()`:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:blockstateargument}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockstateargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:blockstateargument}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockstateargument}} ```
diff --git a/docssrc/src/brigadier.md b/docssrc/src/brigadier.md index 8c393b363a..b19983175f 100644 --- a/docssrc/src/brigadier.md +++ b/docssrc/src/brigadier.md @@ -98,11 +98,11 @@ Now that we've established what we want, we can finally begin writing the code!
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:declareliteral}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:declareliteral}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:declareliteral}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareliteral}} ```
@@ -112,11 +112,11 @@ With that completed, we can now create our "argument" to this predicate. To do t
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:declarearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:declarearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarearguments}} ```
@@ -126,11 +126,11 @@ Now we're going to get into the very nitty-gritty part - the predicate declarati
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:declareargumentbuilders}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:declareargumentbuilders}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:declareargumentbuilders}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareargumentbuilders}} ```
@@ -140,11 +140,11 @@ Now we'll define our predicate. Since this is sort of a "meta-command" (it direc
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:declarefork}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarefork}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:declarefork}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarefork}} ```
@@ -154,11 +154,11 @@ Finally, we can now link everything up. We know that `numerator` comes first, **
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:declarerandomchance}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarerandomchance}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:declarerandomchance}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarerandomchance}} ```
@@ -168,11 +168,11 @@ Finally, we "register" the command. In this case, we're actually just adding the
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:injectintoroot}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:injectintoroot}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:injectintoroot}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:injectintoroot}} ```
@@ -186,11 +186,11 @@ So, hopefully that wasn't too confusing! If you're still lost, here's the whole
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:brigadier}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:brigadier}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:brigadier}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:brigadier}} ```
diff --git a/docssrc/src/brigadiersuggestions.md b/docssrc/src/brigadiersuggestions.md index 146d0923e0..50e135786e 100644 --- a/docssrc/src/brigadiersuggestions.md +++ b/docssrc/src/brigadiersuggestions.md @@ -25,11 +25,11 @@ For this command, we'll use a `GreedyStringArgument` because that allows users t
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:BrigadierSuggestions1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:BrigadierSuggestions1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions1}} ```
@@ -55,11 +55,11 @@ We use the command suggestions declared above by using the `replaceSuggestions`
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:BrigadierSuggestions2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:BrigadierSuggestions2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions2}} ```
diff --git a/docssrc/src/chatarguments.md b/docssrc/src/chatarguments.md index 933fd1a4fc..8643ac75ec 100644 --- a/docssrc/src/chatarguments.md +++ b/docssrc/src/chatarguments.md @@ -31,11 +31,11 @@ We then use the `ChatColorArgument` to change the player's name color:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:chatcolorarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatcolorarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:chatcolorarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcolorarguments}} ```
diff --git a/docssrc/src/chatpreview.md b/docssrc/src/chatpreview.md index ddea2cdf57..a307aafce4 100644 --- a/docssrc/src/chatpreview.md +++ b/docssrc/src/chatpreview.md @@ -110,11 +110,11 @@ For execution, we do the same procedure, because the text that the user enters s
```java,Spigot -{{#include ../../commandapi-core/src/test/java/Examples.java:chatpreviewspigot}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigot}} ``` ```java,Paper -{{#include ../../commandapi-core/src/test/java/Examples.java:chatpreviewadventure}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventure}} ```
@@ -136,11 +136,11 @@ By using `.usePreview(true)`, we don't have to re-translate `&` formatting codes
```java,Spigot -{{#include ../../commandapi-core/src/test/java/Examples.java:chatpreviewspigotusepreview}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigotusepreview}} ``` ```java,Paper -{{#include ../../commandapi-core/src/test/java/Examples.java:chatpreviewadventureusepreview}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventureusepreview}} ```
diff --git a/docssrc/src/commandfailures.md b/docssrc/src/commandfailures.md index 985afcd251..03216c9b40 100644 --- a/docssrc/src/commandfailures.md +++ b/docssrc/src/commandfailures.md @@ -19,11 +19,11 @@ Therefore, to gracefully handle this with a proper error message, we use `Comman
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:commandfailures}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandfailures}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:commandfailures}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandfailures}} ```
diff --git a/docssrc/src/commandregistration.md b/docssrc/src/commandregistration.md index 519aeb7e44..16f412bb8f 100644 --- a/docssrc/src/commandregistration.md +++ b/docssrc/src/commandregistration.md @@ -7,11 +7,11 @@ I think the easiest way to explain it is with an example:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:commandregistration}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:commandregistration}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandregistration}} ```
@@ -213,11 +213,11 @@ To replace a command, we can first unregister it and then register our implement
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:commandunregistration}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandunregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:commandunregistration}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandunregistration}} ```
diff --git a/docssrc/src/commandtrees.md b/docssrc/src/commandtrees.md index 8959052f7f..d0e59887fb 100644 --- a/docssrc/src/commandtrees.md +++ b/docssrc/src/commandtrees.md @@ -67,11 +67,11 @@ We can do this by adding a `PlayerArgument` to our command. As described above,
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:CommandTree_sayhi1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_sayhi1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:CommandTree_sayhi1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_sayhi1}} ```
@@ -102,11 +102,11 @@ Say we wanted to create a plugin to let a user edit signs. We have a single comm
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:CommandTree_signedit}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_signedit}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:CommandTree_signedit}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_signedit}} ```
diff --git a/docssrc/src/config.md b/docssrc/src/config.md index b130090c42..eb38172ec1 100644 --- a/docssrc/src/config.md +++ b/docssrc/src/config.md @@ -10,7 +10,7 @@ The default `config.yml` is shown below: config.yml ```yaml -{{#include ../../commandapi-plugin/src/main/resources/config.yml}} +{{#include ../../commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/resources/config.yml}} ``` diff --git a/docssrc/src/conversion.md b/docssrc/src/conversion.md index 5039b0a8f4..e16cc4acc6 100644 --- a/docssrc/src/conversion.md +++ b/docssrc/src/conversion.md @@ -42,11 +42,11 @@ As you can see, it declares 3 commands: `/gmc`, `/gms` and `/i`. We can now begi
```java,Java -public {{#include ../../commandapi-core/src/test/java/Examples.java:converter}} +public {{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:converter}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:converter}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter}} ```
@@ -98,11 +98,11 @@ With the EssentialsX plugin, the `` value can only take numbers between 0
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:converter2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:converter2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:converter2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter2}} ```
diff --git a/docssrc/src/customarguments.md b/docssrc/src/customarguments.md index 0ac05984f1..91c4c1aee5 100644 --- a/docssrc/src/customarguments.md +++ b/docssrc/src/customarguments.md @@ -87,11 +87,11 @@ Say we want to create an argument to represents the list of available worlds on
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:customarguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:customarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:customarguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments2}} ```
@@ -116,11 +116,11 @@ Since we have defined the method `worldArgument()` which automatically generates
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:customarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:customarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:customarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments}} ```
diff --git a/docssrc/src/enchantmentargument.md b/docssrc/src/enchantmentargument.md index bf914f661a..ecca02aed6 100644 --- a/docssrc/src/enchantmentargument.md +++ b/docssrc/src/enchantmentargument.md @@ -19,11 +19,11 @@ Since most enchantment levels range between 1 and 5, we will also make use of th
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:enchantmentarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:enchantmentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:enchantmentarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:enchantmentarguments}} ```
diff --git a/docssrc/src/entityarguments.md b/docssrc/src/entityarguments.md index 4b2694956c..c8d0846ecf 100644 --- a/docssrc/src/entityarguments.md +++ b/docssrc/src/entityarguments.md @@ -32,11 +32,11 @@ Instead, we can combine all of these into one by using the `EntitySelectorArgume
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:entityselectorarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:entityselectorarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:entityselectorarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:entityselectorarguments}} ```
@@ -98,11 +98,11 @@ Since we're trying to specify an entity type, we will use the `EntityTypeArgumen
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:entitytypearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:entitytypearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:entitytypearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:entitytypearguments}} ```
diff --git a/docssrc/src/environmentargs.md b/docssrc/src/environmentargs.md index 144ff381fc..3a8d05a151 100644 --- a/docssrc/src/environmentargs.md +++ b/docssrc/src/environmentargs.md @@ -19,11 +19,11 @@ Using the world name and the environment of the world, we can use Bukkit's `Worl
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:environmentarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:environmentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:environmentarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:environmentarguments}} ```
diff --git a/docssrc/src/functionarguments.md b/docssrc/src/functionarguments.md index 978a5694dd..ca7600c33f 100644 --- a/docssrc/src/functionarguments.md +++ b/docssrc/src/functionarguments.md @@ -21,11 +21,11 @@ When provided with a function, it will execute that function. If instead a tag i
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:functionarguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:functionarguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments2}} ```
diff --git a/docssrc/src/functions.md b/docssrc/src/functions.md index bdcfd64870..9542b05477 100644 --- a/docssrc/src/functions.md +++ b/docssrc/src/functions.md @@ -31,11 +31,11 @@ Say we have a command `/killall` that simply kills all entities in all worlds on
```java,Java -public {{#include ../../commandapi-core/src/test/java/Examples.java:functionregistration}} +public {{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:functionregistration}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionregistration}} ```
diff --git a/docssrc/src/functionwrapper.md b/docssrc/src/functionwrapper.md index 732fb8776b..877d32c1bb 100644 --- a/docssrc/src/functionwrapper.md +++ b/docssrc/src/functionwrapper.md @@ -35,11 +35,11 @@ The `run()` method runs the function. The command executor that runs this functi
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:functionarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:functionarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments}} ```
diff --git a/docssrc/src/help.md b/docssrc/src/help.md index 3cfe14e804..817fafb5b3 100644 --- a/docssrc/src/help.md +++ b/docssrc/src/help.md @@ -48,11 +48,11 @@ In this simple example, we implement the above screenshot's help topic. We regis
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:help}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:help}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:help}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:help}} ```
@@ -62,11 +62,11 @@ We could also register this command using the `withHelp` method instead:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:help2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:help2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:help2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:help2}} ```
diff --git a/docssrc/src/itemstackarguments.md b/docssrc/src/itemstackarguments.md index ace7221e96..ba2a9e1d5e 100644 --- a/docssrc/src/itemstackarguments.md +++ b/docssrc/src/itemstackarguments.md @@ -19,11 +19,11 @@ With this syntax, we can easily create our command:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:itemstackarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:itemstackarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:itemstackarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackarguments}} ```
diff --git a/docssrc/src/itemstackpredicateargs.md b/docssrc/src/itemstackpredicateargs.md index 11acd6266a..0050f8574f 100644 --- a/docssrc/src/itemstackpredicateargs.md +++ b/docssrc/src/itemstackpredicateargs.md @@ -17,11 +17,11 @@ We implement this with a simple for loop over the player's inventory and remove
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:itemstackpredicatearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:itemstackpredicatearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:itemstackpredicatearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackpredicatearguments}} ```
diff --git a/docssrc/src/listarguments.md b/docssrc/src/listarguments.md index 4aad0e8fe6..a267540578 100644 --- a/docssrc/src/listarguments.md +++ b/docssrc/src/listarguments.md @@ -129,11 +129,11 @@ To do this, we create a command with an `IntegerArgument` to specify the amount
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:ListArgument_MultiGive}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ListArgument_MultiGive}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:ListArgument_MultiGive}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ListArgument_MultiGive}} ```
diff --git a/docssrc/src/listed.md b/docssrc/src/listed.md index 02a80fa9a7..c9d7f2b44e 100644 --- a/docssrc/src/listed.md +++ b/docssrc/src/listed.md @@ -25,11 +25,11 @@ Let's also say that in our implementation of this command, we don't actually per
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:listed}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:listed}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:listed}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:listed}} ```
diff --git a/docssrc/src/literalarguments.md b/docssrc/src/literalarguments.md index 9b48626f43..d5364e13e4 100644 --- a/docssrc/src/literalarguments.md +++ b/docssrc/src/literalarguments.md @@ -47,11 +47,11 @@ As an example, let's declare the literal "hello" as a valid literal for this com
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:literalarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:literalarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:literalarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments}} ```
@@ -75,11 +75,11 @@ This is a demonstration of how you could create a command similar to Minecraft's
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:literalarguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:literalarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:literalarguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments2}} ```
diff --git a/docssrc/src/locationargument.md b/docssrc/src/locationargument.md index 02c360db94..a62231c3a4 100644 --- a/docssrc/src/locationargument.md +++ b/docssrc/src/locationargument.md @@ -43,11 +43,11 @@ Simply put, given the coordinates provided to the command, "break" the block by
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:locationarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:locationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:locationarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:locationarguments}} ```
diff --git a/docssrc/src/loottableargument.md b/docssrc/src/loottableargument.md index d8c91b0980..cab31f92e6 100644 --- a/docssrc/src/loottableargument.md +++ b/docssrc/src/loottableargument.md @@ -19,11 +19,11 @@ We ensure that the location provided is a container (such as a chest or shulkerb
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:loottablearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:loottablearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:loottablearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:loottablearguments}} ```
diff --git a/docssrc/src/mathoperationarguments.md b/docssrc/src/mathoperationarguments.md index 5e1d7ab580..20c0d1cc4b 100644 --- a/docssrc/src/mathoperationarguments.md +++ b/docssrc/src/mathoperationarguments.md @@ -63,11 +63,11 @@ As with any command, we declare our arguments, cast them properly and then we wr
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:mathoperationarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:mathoperationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:mathoperationarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:mathoperationarguments}} ```
diff --git a/docssrc/src/multilitargs.md b/docssrc/src/multilitargs.md index fd70367967..7b91526b0d 100644 --- a/docssrc/src/multilitargs.md +++ b/docssrc/src/multilitargs.md @@ -19,11 +19,11 @@ In this example, we'll show how to use multi literals to declare Minecraft's `/g
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:multiliteralarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:multiliteralarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:multiliteralarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiliteralarguments}} ```
diff --git a/docssrc/src/native.md b/docssrc/src/native.md index c283224def..a4b1168307 100644 --- a/docssrc/src/native.md +++ b/docssrc/src/native.md @@ -53,11 +53,11 @@ As you can see, this command takes no arguments. This is fine, since our "argume
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:nativesender}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:nativesender}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:nativesender}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nativesender}} ```
diff --git a/docssrc/src/nbtarguments.md b/docssrc/src/nbtarguments.md index 1d7dbccfbd..f122a4fb09 100644 --- a/docssrc/src/nbtarguments.md +++ b/docssrc/src/nbtarguments.md @@ -40,11 +40,11 @@ Now, we can configure the CommandAPI using the `CommandAPI.onLoad()` method to u
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:nbtcompoundargumentonload}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundargumentonload}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:nbtcompoundargumentonload}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundargumentonload}} ```
@@ -66,11 +66,11 @@ Since the underlying implementation of the `NBTCompoundArgument` can change (e.g
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:nbtcompoundarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:nbtcompoundarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundarguments}} ```
diff --git a/docssrc/src/normalexecutors.md b/docssrc/src/normalexecutors.md index a2a40483cb..25be64507e 100644 --- a/docssrc/src/normalexecutors.md +++ b/docssrc/src/normalexecutors.md @@ -36,11 +36,11 @@ We use an argument "message" to hold the message to broadcast, we provide some a
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:normalcommandexecutors3_1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:normalcommandexecutors3_1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3_1}} ```
@@ -80,11 +80,11 @@ Say we wanted to create a command `/suicide`, which kills the player that execut
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:normalcommandexecutors}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:normalcommandexecutors}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors}} ```
@@ -106,11 +106,11 @@ Extending on the suicide example above, we could write another implementation fo
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:normalcommandexecutors2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:normalcommandexecutors2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors2}} ```
@@ -158,11 +158,11 @@ Expanding on the suicide example above, we can restrict the command to only play
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:normalcommandexecutors3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:normalcommandexecutors3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3}} ```
diff --git a/docssrc/src/objectivearguments.md b/docssrc/src/objectivearguments.md index 989b367ad2..79d2ff5888 100644 --- a/docssrc/src/objectivearguments.md +++ b/docssrc/src/objectivearguments.md @@ -30,11 +30,11 @@ Given that an objective has to be casted to a String, we have to find a way to c
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:objectiveargument}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:objectiveargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:objectiveargument}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectiveargument}} ```
@@ -62,11 +62,11 @@ To do this, we're going to take advantage of Bukkit's `Scoreboard.getObjectivesB
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:objectivecriteriaarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:objectivecriteriaarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:objectivecriteriaarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectivecriteriaarguments}} ```
diff --git a/docssrc/src/particlearguments.md b/docssrc/src/particlearguments.md index b0ec2fdd41..a708831f46 100644 --- a/docssrc/src/particlearguments.md +++ b/docssrc/src/particlearguments.md @@ -50,11 +50,11 @@ With this, we can simply spawn the particle using the `World.spawnParticle(Parti
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:particlearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:particlearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:particlearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments}} ```
@@ -78,11 +78,11 @@ In this case, we'll use the `World.spawnParticle(Particle particle, Location loc
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:particlearguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:particlearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:particlearguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments2}} ```
diff --git a/docssrc/src/permissions.md b/docssrc/src/permissions.md index 4b7f63520a..0d05a0bc02 100644 --- a/docssrc/src/permissions.md +++ b/docssrc/src/permissions.md @@ -30,11 +30,11 @@ Say we created a command `/god` that sets a player as being invulnerable. Since
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:permissions}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:permissions}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions}} ```
@@ -44,11 +44,11 @@ As stated above, it is possible to assign a permission using a String instead of
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:permissions2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:permissions2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions2}} ```
@@ -85,11 +85,11 @@ We first declare the command as normal. Nothing fancy is going on here:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:permissions3_1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions3_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:permissions3_1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_1}} ```
@@ -99,11 +99,11 @@ Now we declare our command with arguments. We use a `PlayerArgument` and apply t
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:permissions3_2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions3_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:permissions3_2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_2}} ```
diff --git a/docssrc/src/potionarguments.md b/docssrc/src/potionarguments.md index 95d251723f..35aacea14c 100644 --- a/docssrc/src/potionarguments.md +++ b/docssrc/src/potionarguments.md @@ -19,11 +19,11 @@ In this example, we utilize some of the other arguments that we've described ear
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:potioneffectarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:potioneffectarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:potioneffectarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:potioneffectarguments}} ```
diff --git a/docssrc/src/predicatetips.md b/docssrc/src/predicatetips.md index 5a4c990ba7..880d29aab6 100644 --- a/docssrc/src/predicatetips.md +++ b/docssrc/src/predicatetips.md @@ -5,11 +5,11 @@ In our [example for creating a party system](./requirements.md#example---a-party
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:requirements2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:requirements2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} ```
@@ -19,11 +19,11 @@ And for our party teleportation command, we had the following code:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:requirementstp}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirementstp}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:requirementstp}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementstp}} ```
@@ -33,11 +33,11 @@ We can simplify this code by declaring the predicate:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:predicatetips}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:predicatetips}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips}} ```
@@ -47,11 +47,11 @@ Now, we can use the predicate `testIfPlayerHasParty` in our code for creating a
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:predicatetips2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:predicatetips2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips2}} ```
@@ -61,11 +61,11 @@ And we can use it again for our code for teleporting to party members:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:predicatetips3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:predicatetips3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips3}} ```
diff --git a/docssrc/src/primitivearguments.md b/docssrc/src/primitivearguments.md index 9b4b155d11..bcec6be983 100644 --- a/docssrc/src/primitivearguments.md +++ b/docssrc/src/primitivearguments.md @@ -35,11 +35,11 @@ We first retrieve the keys from the configuration file using the typical Bukkit
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:booleanargs}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:booleanargs}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:booleanargs}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:booleanargs}} ```
diff --git a/docssrc/src/proxysender.md b/docssrc/src/proxysender.md index 69e2545115..e36c8c63de 100644 --- a/docssrc/src/proxysender.md +++ b/docssrc/src/proxysender.md @@ -11,11 +11,11 @@ Say we have a command which kills the sender of a command. This is easily implem
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:proxysender}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:proxysender}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:proxysender}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender}} ```
@@ -31,11 +31,11 @@ To handle this case, we can use the `.executesProxy()` method to ensure that the
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:proxysender2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:proxysender2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:proxysender2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender2}} ```
diff --git a/docssrc/src/rangedarguments.md b/docssrc/src/rangedarguments.md index 90fbf1fc65..cb4fb927dc 100644 --- a/docssrc/src/rangedarguments.md +++ b/docssrc/src/rangedarguments.md @@ -56,11 +56,11 @@ Now, we simply create our arguments using `IntegerRangeArgument` for our range a
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:rangedarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:rangedarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:rangedarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:rangedarguments}} ```
diff --git a/docssrc/src/recipeargument.md b/docssrc/src/recipeargument.md index 0cc7c07a14..d8c64c7689 100644 --- a/docssrc/src/recipeargument.md +++ b/docssrc/src/recipeargument.md @@ -19,11 +19,11 @@ As such, we easily implement it by specifying the `RecipeArgument`, casting it a
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:recipearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:recipearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:recipearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments}} ```
@@ -45,11 +45,11 @@ This is then implemented trivially as follows:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:recipearguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:recipearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:recipearguments2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments2}} ```
diff --git a/docssrc/src/requirements.md b/docssrc/src/requirements.md index 0bafdc8a7a..a6f899c0d4 100644 --- a/docssrc/src/requirements.md +++ b/docssrc/src/requirements.md @@ -38,11 +38,11 @@ We want to put a requirement on this command that the player needs to have at le
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:requirements}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:requirements}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements}} ```
@@ -75,11 +75,11 @@ To represent our party in code, we'll use a simple `Map` called `partyMembers` w
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:requirementsmap}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirementsmap}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:requirementsmap}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementsmap}} ```
@@ -89,11 +89,11 @@ To begin with, let's create the `/party create ` command. First, we m
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:requirements2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:requirements2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} ```
@@ -105,11 +105,11 @@ Now that we've declared our arguments, we can now declare our main command `/par
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:requirements3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:requirements3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements3}} ```
@@ -121,11 +121,11 @@ So now we've added the ability to create a party if we're not already in it. Now
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:requirements4}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements4}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:requirements4}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements4}} ```
@@ -137,11 +137,11 @@ Once the arguments have been declared, we can now implement our party teleportat
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:requirements5}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements5}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:requirements5}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements5}} ```
@@ -222,11 +222,11 @@ When a player creates a new party, we need to ensure that their requirements are
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:updatingrequirements}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:updatingrequirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:updatingrequirements}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:updatingrequirements}} ```
@@ -250,11 +250,11 @@ For example, you can apply multiple requirements for a command by calling the `w
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:multiplerequirements}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:multiplerequirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:multiplerequirements}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiplerequirements}} ```
diff --git a/docssrc/src/resultingcommandexecutors.md b/docssrc/src/resultingcommandexecutors.md index 1c61fecb4e..df50cd820c 100644 --- a/docssrc/src/resultingcommandexecutors.md +++ b/docssrc/src/resultingcommandexecutors.md @@ -27,11 +27,11 @@ Say we want a command that returns a random number as a result. This can then be
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:resultingcommandexecutor}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:resultingcommandexecutor}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor}} ```
@@ -58,11 +58,11 @@ Since we're declaring commands that are to be used in `/execute`, we must ensure
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:resultingcommandexecutor2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:resultingcommandexecutor2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor2}} ```
@@ -72,11 +72,11 @@ Now we write our implementation for `/givereward`. In this example, we use the `
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:resultingcommandexecutor3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:resultingcommandexecutor3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor3}} ```
diff --git a/docssrc/src/rotationargs.md b/docssrc/src/rotationargs.md index 509a5b8932..b0c67788c8 100644 --- a/docssrc/src/rotationargs.md +++ b/docssrc/src/rotationargs.md @@ -28,11 +28,11 @@ To do this, we'll use the rotation from the `RotationArgument` and select an ent
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:rotationarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:rotationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:rotationarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:rotationarguments}} ```
diff --git a/docssrc/src/safeargumentsuggestions.md b/docssrc/src/safeargumentsuggestions.md index 25f8dfcb23..06f6a0ecd1 100644 --- a/docssrc/src/safeargumentsuggestions.md +++ b/docssrc/src/safeargumentsuggestions.md @@ -127,11 +127,11 @@ To do this, we first register our custom items:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:SafeRecipeArguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:SafeRecipeArguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments}} ```
@@ -141,11 +141,11 @@ Once we've done that, we can now include them in our command registration. To do
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:SafeRecipeArguments_2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:SafeRecipeArguments_2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments_2}} ```
@@ -167,11 +167,11 @@ Now say that we don't want non-op players to spawn bosses. To do this, we'll cre
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:SafeMobSpawnArguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:SafeMobSpawnArguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments}} ```
@@ -181,11 +181,11 @@ We then use our safe arguments to return an `EntityType[]` as the list of values
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:SafeMobSpawnArguments_2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:SafeMobSpawnArguments_2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_2}} ```
@@ -195,11 +195,11 @@ Now we register our command as normal:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:SafeMobSpawnArguments_3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:SafeMobSpawnArguments_3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_3}} ```
@@ -221,11 +221,11 @@ Now, we don't want to remove a potion effect that already exists on a player, so
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:SafePotionArguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:SafePotionArguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments}} ```
@@ -235,11 +235,11 @@ And then we can register our command as normal:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:SafePotionArguments_2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:SafePotionArguments_2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments_2}} ```
diff --git a/docssrc/src/scoreboardarguments.md b/docssrc/src/scoreboardarguments.md index 00d252a2c1..9a389c91b7 100644 --- a/docssrc/src/scoreboardarguments.md +++ b/docssrc/src/scoreboardarguments.md @@ -41,11 +41,11 @@ Note how we use `..9` to represent 9 or less deaths (since ranges are inclusive)
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:scoreholderargument}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:scoreholderargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:scoreholderargument}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreholderargument}} ```
@@ -107,11 +107,11 @@ We implement this simply by using the `ScoreboardSlotArgument` as our argument,
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:scoreboardslotargument}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:scoreboardslotargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:scoreboardslotargument}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreboardslotargument}} ```
diff --git a/docssrc/src/shading.md b/docssrc/src/shading.md index 10351e9261..e373fa6b67 100644 --- a/docssrc/src/shading.md +++ b/docssrc/src/shading.md @@ -44,11 +44,11 @@ The `CommandAPIConfig` class follows a typical builder pattern (without you havi
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:CommandAPIConfigSilent}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandAPIConfigSilent}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:CommandAPIConfigSilent}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandAPIConfigSilent}} ```
@@ -66,11 +66,11 @@ The `onDisable()` method disables the CommandAPI gracefully. This should be plac
```java,Java -public {{#include ../../commandapi-core/src/test/java/Examples.java:shading}} +public {{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:shading}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:shading}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:shading}} ```
diff --git a/docssrc/src/soundargument.md b/docssrc/src/soundargument.md index 36fa244c37..617a9d5cd1 100644 --- a/docssrc/src/soundargument.md +++ b/docssrc/src/soundargument.md @@ -19,11 +19,11 @@ This command simply plays the provided sound to the current player:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:soundarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:soundarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:soundarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:soundarguments}} ```
diff --git a/docssrc/src/spigotchatarguments.md b/docssrc/src/spigotchatarguments.md index 1c6e084b0d..367aefcf80 100644 --- a/docssrc/src/spigotchatarguments.md +++ b/docssrc/src/spigotchatarguments.md @@ -83,11 +83,11 @@ Now we can create our book command. We use the player as the main target by usin
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:chatcomponentarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatcomponentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:chatcomponentarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcomponentarguments}} ```
@@ -125,11 +125,11 @@ _Bob_ would receive the message "Hello Bob", whereas _Michael_ would receive the
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:chatarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:chatarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatarguments}} ```
diff --git a/docssrc/src/stringarguments.md b/docssrc/src/stringarguments.md index bb74dc5c7c..76f6fb88b8 100644 --- a/docssrc/src/stringarguments.md +++ b/docssrc/src/stringarguments.md @@ -93,11 +93,11 @@ This would be ideal for a greedy string, since it can consume all text after the
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:greedystringarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:greedystringarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:greedystringarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:greedystringarguments}} ```
diff --git a/docssrc/src/stringargumentsuggestions.md b/docssrc/src/stringargumentsuggestions.md index 64d7671fe8..6290c8f670 100644 --- a/docssrc/src/stringargumentsuggestions.md +++ b/docssrc/src/stringargumentsuggestions.md @@ -19,11 +19,11 @@ We then implement our warp teleporting command using `replaceSuggestions()` on t
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:ArgumentSuggestions1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:ArgumentSuggestions1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions1}} ```
@@ -53,11 +53,11 @@ Let's say we have a simple class to get the friends of a command sender:
```java,Java -public {{#include ../../commandapi-core/src/test/java/Examples.java:ArgumentSuggestions2_1}} +public {{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:ArgumentSuggestions2_1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_1}} ```
@@ -67,11 +67,11 @@ We can then use this to generate our suggested list of friends:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:ArgumentSuggestions2_2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:ArgumentSuggestions2_2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_2}} ```
@@ -123,11 +123,11 @@ When run, this command will send a message to a target player within the provide
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:ArgumentSuggestionsPrevious}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestionsPrevious}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:ArgumentSuggestionsPrevious}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestionsPrevious}} ```
diff --git a/docssrc/src/subcommands.md b/docssrc/src/subcommands.md index 9255287580..e8263bbf4d 100644 --- a/docssrc/src/subcommands.md +++ b/docssrc/src/subcommands.md @@ -33,11 +33,11 @@ We can implement this by creating a `CommandAPICommand` with the command name `a
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:subcommandspart}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommandspart}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:subcommandspart}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandspart}} ```
@@ -47,11 +47,11 @@ Similarly, we have another part `remove `. We can declar
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:subcommands}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommands}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:subcommands}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands}} ```
@@ -61,11 +61,11 @@ Finally, we can link everything up together to the `perm` command and register t
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:subcommandsend}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommandsend}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:subcommandsend}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandsend}} ```
@@ -77,11 +77,11 @@ Another, more intuitive method, is to shove everything in one go without creatin
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:subcommands1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommands1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:subcommands1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands1}} ```
diff --git a/docssrc/src/teamarguments.md b/docssrc/src/teamarguments.md index 1b0b0f750b..74bcba5f44 100644 --- a/docssrc/src/teamarguments.md +++ b/docssrc/src/teamarguments.md @@ -17,11 +17,11 @@ To do this, given a team we want to use the `setAllowFriendlyFire(boolean)` func
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:teamarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:teamarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:teamarguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:teamarguments}} ```
diff --git a/docssrc/src/timeargs.md b/docssrc/src/timeargs.md index 6bb32e1d0f..20cce61e67 100644 --- a/docssrc/src/timeargs.md +++ b/docssrc/src/timeargs.md @@ -23,11 +23,11 @@ Say we have a command `bigmsg` that displays a title message to all players for
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:timearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:timearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:timearguments}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:timearguments}} ```
diff --git a/docssrc/src/tooltips.md b/docssrc/src/tooltips.md index 7a82d26b46..5af6a8bef0 100644 --- a/docssrc/src/tooltips.md +++ b/docssrc/src/tooltips.md @@ -44,11 +44,11 @@ First, we'll declare our arguments. Here, we'll use the `stringsWithTooltips` me
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:Tooltips1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:Tooltips1}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips1}} ```
@@ -58,11 +58,11 @@ Finally, we declare our command as normal:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:Tooltips2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:Tooltips2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips2}} ```
@@ -89,11 +89,11 @@ Let's say we've created a simple plugin which has custom items. For a custom ite
```java,Java -public {{#include ../../commandapi-core/src/test/java/Examples.java:Tooltips3}} +public {{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:Tooltips3}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips3}} ```
@@ -103,11 +103,11 @@ Let's also say that our plugin has registered lots of `CustomItem`s and has this
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:Tooltips4}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips4}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:Tooltips4}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips4}} ```
@@ -154,11 +154,11 @@ First, we'll declare our arguments. Here, we use a `LocationArgument` and use th
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:SafeTooltips}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:SafeTooltips}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips}} ```
@@ -168,11 +168,11 @@ In the arguments declaration, we've casted the command sender to a player. To en
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:SafeTooltips2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:SafeTooltips2}} +{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips2}} ```
From ea2f9fec5860c02e2e72e5fb5acc6d55185c8274 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 23 Oct 2022 16:59:41 -0400 Subject: [PATCH 071/638] Fix invalid plugin name in the example plugin.yml --- examples/maven-shaded/src/main/resources/plugin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/maven-shaded/src/main/resources/plugin.yml b/examples/maven-shaded/src/main/resources/plugin.yml index b57b948be8..bbee2ca9a7 100644 --- a/examples/maven-shaded/src/main/resources/plugin.yml +++ b/examples/maven-shaded/src/main/resources/plugin.yml @@ -1,4 +1,4 @@ -name: Example Plugin +name: ExamplePlugin main: io.github.jorelali.Main version: 0.0.1 author: Skepter From 6d5acc7d610f3447685bc5667e9a7ac1708bb992 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 24 Oct 2022 07:24:00 -0400 Subject: [PATCH 072/638] Fix Brigadier usage in CustomServerMock --- .../java/dev/jorel/commandapi/test/CustomServerMock.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java index af8dd77ddc..a0b3f4f971 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CustomServerMock.java @@ -1,9 +1,9 @@ package dev.jorel.commandapi.test; + import java.util.ArrayList; import java.util.List; import java.util.concurrent.ExecutionException; -import dev.jorel.commandapi.BukkitPlatform; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; @@ -31,7 +31,7 @@ public boolean dispatchThrowableCommand(CommandSender sender, String commandLine AsyncCatcher.catchOp("command dispatch"); @SuppressWarnings("rawtypes") CommandDispatcher dispatcher = Brigadier.getCommandDispatcher(); - Object css = Brigadier.getBrigadierSourceFromCommandSender(BukkitPlatform.get().wrapCommandSender(sender)); + Object css = Brigadier.getBrigadierSourceFromCommandSender(sender); return dispatcher.execute(commandLine, css) != 0; } } @@ -49,7 +49,7 @@ public boolean dispatchCommand(CommandSender sender, String commandLine) { public List getSuggestions(CommandSender sender, String commandLine) { AsyncCatcher.catchOp("command tabcomplete"); CommandDispatcher dispatcher = Brigadier.getCommandDispatcher(); - Object css = Brigadier.getBrigadierSourceFromCommandSender(BukkitPlatform.get().wrapCommandSender(sender)); + Object css = Brigadier.getBrigadierSourceFromCommandSender(sender); ParseResults parseResults = dispatcher.parse(commandLine, css); Suggestions suggestions = null; try { From 85c66f2eac3beedfbd2564efc2f08e378911800e Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 24 Oct 2022 07:32:29 -0400 Subject: [PATCH 073/638] Fix invalid @link in RegisteredCommand JavaDocs --- .../src/main/java/dev/jorel/commandapi/RegisteredCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java index 4f76c22698..fd9757f574 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java @@ -7,7 +7,7 @@ * Class to store a registered command which has its command name and a list of * arguments as a string. The arguments are expected to be of the form * {@code node_name:class_name}, for example - * {@code value:}{@link IntegerArgument}. This class also contains the + * {@code value:}IntegerArgument. This class also contains the * information required to construct a meaningful help topic for a command */ public record RegisteredCommand( From afe114b2c18690de410d602188d8c01dc5785e3d Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 24 Oct 2022 07:46:21 -0400 Subject: [PATCH 074/638] Parameterize CommandMetaData in AbstractCommandAPICommand implementations --- .../java/dev/jorel/commandapi/AbstractCommandAPICommand.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/CommandAPICommand.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/CommandAPICommand.java | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index 49c5251137..7ccbca2de2 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -248,12 +248,12 @@ public void register() { } public Impl copy() { - Impl command = newConcreteCommandAPICommand(new CommandMetaData(this.meta)); + Impl command = newConcreteCommandAPICommand(new CommandMetaData(this.meta)); command.args = new ArrayList<>(this.args); command.subcommands = new ArrayList<>(this.subcommands); command.isConverted = this.isConverted; return command; } - protected abstract Impl newConcreteCommandAPICommand(CommandMetaData metaData); + protected abstract Impl newConcreteCommandAPICommand(CommandMetaData metaData); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index 3d850cc8d6..4ff4f93039 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -4,7 +4,7 @@ public class CommandAPICommand extends AbstractCommandAPICommand implements BukkitExecutable { - public CommandAPICommand(CommandMetaData meta) { + public CommandAPICommand(CommandMetaData meta) { super(meta); } @@ -13,7 +13,7 @@ public CommandAPICommand(String commandName) { } @Override - protected CommandAPICommand newConcreteCommandAPICommand(CommandMetaData metaData) { + protected CommandAPICommand newConcreteCommandAPICommand(CommandMetaData metaData) { return new CommandAPICommand(metaData); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index cf9fbd37e1..37111f3d8a 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -17,12 +17,12 @@ public CommandAPICommand(String commandName) { * * @param metaData The metadata of the command to create */ - protected CommandAPICommand(CommandMetaData metaData) { + protected CommandAPICommand(CommandMetaData metaData) { super(metaData); } @Override - protected CommandAPICommand newConcreteCommandAPICommand(CommandMetaData metaData) { + protected CommandAPICommand newConcreteCommandAPICommand(CommandMetaData metaData) { return new CommandAPICommand(metaData); } } From e23e28f1dcbaa5c8f29a1490e37309635548c3a1 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 26 Oct 2022 17:21:07 -0400 Subject: [PATCH 075/638] Restore Argument on the platform level --- .../commandapi/AbstractArgumentTree.java | 36 ++-- .../commandapi/AbstractCommandAPICommand.java | 40 ++-- .../jorel/commandapi/AbstractCommandTree.java | 21 ++- .../{abstractions => }/AbstractPlatform.java | 19 +- .../{abstractions => }/AbstractTooltip.java | 10 +- .../dev/jorel/commandapi/BaseHandler.java | 127 ++++++------- .../java/dev/jorel/commandapi/Brigadier.java | 45 ++--- .../java/dev/jorel/commandapi/CommandAPI.java | 8 +- .../commandapi/CommandAPIVersionHandler.java | 9 +- .../dev/jorel/commandapi/CommandMetaData.java | 2 +- .../commandapi/CustomCommandExecutor.java | 12 +- .../java/dev/jorel/commandapi/Executable.java | 6 +- .../jorel/commandapi/ExecutableCommand.java | 2 - .../java/dev/jorel/commandapi/Execution.java | 25 ++- .../jorel/commandapi/IPlatformExecutable.java | 2 +- .../dev/jorel/commandapi/StringTooltip.java | 1 - .../dev/jorel/commandapi/SuggestionInfo.java | 2 - .../{Argument.java => AbstractArgument.java} | 13 +- .../arguments/AbstractBooleanArgument.java | 61 ------ .../arguments/AbstractDoubleArgument.java | 85 --------- .../arguments/AbstractFloatArgument.java | 80 -------- .../AbstractGreedyStringArgument.java | 57 ------ .../arguments/AbstractIntegerArgument.java | 81 -------- .../arguments/AbstractLiteralArgument.java | 83 --------- .../arguments/AbstractLongArgument.java | 81 -------- .../AbstractMultiLiteralArgument.java | 74 -------- .../arguments/AbstractStringArgument.java | 57 ------ .../arguments/ILiteralArgument.java | 14 ++ .../arguments/IMultiLiteralArgument.java | 14 ++ .../commandapi/arguments/IPreviewable.java | 6 +- .../arguments/ISafeOverrideableArgument.java | 105 +++++++++++ .../commandapi/arguments/PreviewInfo.java | 2 +- .../arguments/SafeOverrideableArgument.java | 141 -------------- .../commandapi/arguments/SafeSuggestions.java | 8 +- .../AbstractBlockCommandSender.java | 2 +- .../AbstractCommandSender.java | 2 +- .../AbstractConsoleCommandSender.java | 2 +- .../AbstractEntity.java | 2 +- .../AbstractNativeProxyCommandSender.java | 2 +- .../AbstractPlayer.java | 2 +- .../AbstractProxiedCommandSender.java | 2 +- .../exceptions/GreedyArgumentException.java | 13 +- .../commandapi/executors/IExecutorNormal.java | 3 +- .../executors/IExecutorResulting.java | 3 +- .../commandapi/executors/IExecutorTyped.java | 2 +- .../dev/jorel/commandapi/BukkitExecution.java | 23 --- .../dev/jorel/commandapi/BukkitPlatform.java | 66 +++---- .../jorel/commandapi/CommandAPICommand.java | 3 +- .../dev/jorel/commandapi/CommandTree.java | 3 +- .../java/dev/jorel/commandapi/Converter.java | 34 ++-- .../java/dev/jorel/commandapi/Tooltip.java | 8 +- .../arguments/AdvancementArgument.java | 16 +- .../arguments/AdventureChatArgument.java | 9 +- .../AdventureChatComponentArgument.java | 9 +- .../commandapi/arguments/AngleArgument.java | 8 +- .../jorel/commandapi/arguments/Argument.java | 22 +++ .../commandapi/arguments/AxisArgument.java | 17 +- .../commandapi/arguments/BiomeArgument.java | 17 +- .../arguments/BlockPredicateArgument.java | 17 +- .../arguments/BlockStateArgument.java | 13 +- .../commandapi/arguments/BooleanArgument.java | 26 ++- .../commandapi/arguments/ChatArgument.java | 19 +- .../arguments/ChatColorArgument.java | 17 +- .../arguments/ChatComponentArgument.java | 10 +- .../commandapi/arguments/CustomArgument.java | 29 ++- .../commandapi/arguments/DoubleArgument.java | 33 +++- .../arguments/EnchantmentArgument.java | 17 +- .../arguments/EntitySelectorArgument.java | 23 +-- .../arguments/EntityTypeArgument.java | 17 +- .../arguments/EnvironmentArgument.java | 17 +- .../commandapi/arguments/FloatArgument.java | 35 +++- .../arguments/FloatRangeArgument.java | 10 +- .../arguments/FunctionArgument.java | 15 +- .../arguments/GreedyStringArgument.java | 25 ++- .../commandapi/arguments/IntegerArgument.java | 36 +++- .../arguments/IntegerRangeArgument.java | 10 +- .../arguments/ItemStackArgument.java | 15 +- .../arguments/ItemStackPredicateArgument.java | 19 +- .../commandapi/arguments/ListArgument.java | 9 +- .../commandapi/arguments/LiteralArgument.java | 55 +++++- .../arguments/Location2DArgument.java | 13 +- .../arguments/LocationArgument.java | 13 +- .../commandapi/arguments/LongArgument.java | 37 +++- .../arguments/LootTableArgument.java | 19 +- .../arguments/MathOperationArgument.java | 10 +- .../arguments/MultiLiteralArgument.java | 45 ++++- .../arguments/NBTCompoundArgument.java | 10 +- .../arguments/NamespacedKeyArgument.java | 13 +- .../arguments/ObjectiveArgument.java | 15 +- .../arguments/ObjectiveCriteriaArgument.java | 10 +- .../arguments/OfflinePlayerArgument.java | 13 +- .../arguments/ParticleArgument.java | 10 +- .../commandapi/arguments/PlayerArgument.java | 15 +- .../arguments/PotionEffectArgument.java | 15 +- .../commandapi/arguments/RecipeArgument.java | 19 +- .../arguments/RotationArgument.java | 10 +- .../arguments/SafeOverrideableArgument.java | 51 +++++ .../arguments/ScoreHolderArgument.java | 14 +- .../arguments/ScoreboardSlotArgument.java | 10 +- .../commandapi/arguments/SoundArgument.java | 13 +- .../commandapi/arguments/StringArgument.java | 26 ++- .../commandapi/arguments/TeamArgument.java | 15 +- .../commandapi/arguments/TextArgument.java | 25 ++- .../commandapi/arguments/TimeArgument.java | 10 +- .../commandapi/arguments/UUIDArgument.java | 14 +- .../BukkitBlockCommandSender.java | 1 - .../commandsenders/BukkitCommandSender.java | 1 - .../BukkitConsoleCommandSender.java | 2 - .../commandsenders/BukkitEntity.java | 1 - .../BukkitNativeProxyCommandSender.java | 1 - .../commandsenders/BukkitPlayer.java | 2 - .../BukkitProxiedCommandSender.java | 2 - .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 160 ++++------------ .../dev/jorel/commandapi/nms/NMS_1_13_2.java | 34 +--- .../dev/jorel/commandapi/nms/NMS_1_13.java | 153 ++++----------- .../dev/jorel/commandapi/nms/NMS_1_14.java | 161 ++++------------ .../dev/jorel/commandapi/nms/NMS_1_15.java | 163 ++++------------ .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 174 ++++-------------- .../dev/jorel/commandapi/nms/NMS_1_16_R2.java | 168 ++++------------- .../jorel/commandapi/nms/NMS_1_16_4_R3.java | 167 ++++------------- .../jorel/commandapi/nms/NMS_1_17_Common.java | 111 +++++------ .../dev/jorel/commandapi/nms/NMS_1_18_R2.java | 119 +++++------- .../dev/jorel/commandapi/nms/NMS_1_18_R1.java | 120 +++++------- .../jorel/commandapi/nms/NMS_1_19_Common.java | 123 +++++-------- .../dev/jorel/commandapi/nms/NMS_Common.java | 111 +++-------- .../commandapi/CommandAPIVersionHandler.java | 3 +- .../dev/jorel/commandapi/test/MockNMS.java | 108 +++-------- .../jorel/commandapi/AdvancedConverter.java | 90 ++------- .../commandapi/CommandAPIVersionHandler.java | 21 +-- .../commandapi/CommandAPIVersionHandler.java | 4 +- .../dev/jorel/commandapi/SpongePlatform.java | 15 +- .../commandsenders/SpongeCommandSender.java | 2 - .../commandsenders/SpongePlayer.java | 2 - .../jorel/commandapi/CommandAPICommand.java | 3 +- .../commandapi/CommandAPIVersionHandler.java | 4 +- .../dev/jorel/commandapi/CommandTree.java | 3 +- .../jorel/commandapi/VelocityExecution.java | 23 --- .../jorel/commandapi/VelocityPlatform.java | 33 ++-- .../arguments/AbstractTextArgument.java | 56 ------ .../jorel/commandapi/arguments/Argument.java | 22 +++ .../commandapi/arguments/BooleanArgument.java | 24 ++- .../commandapi/arguments/DoubleArgument.java | 34 +++- .../commandapi/arguments/FloatArgument.java | 33 +++- .../arguments/GreedyStringArgument.java | 25 ++- .../commandapi/arguments/IntegerArgument.java | 33 +++- .../commandapi/arguments/LiteralArgument.java | 55 +++++- .../commandapi/arguments/LongArgument.java | 37 +++- .../arguments/MultiLiteralArgument.java | 46 ++++- .../arguments/SafeOverrideableArgument.java | 36 ++++ .../commandapi/arguments/StringArgument.java | 26 ++- .../commandapi/arguments/TextArgument.java | 18 +- .../commandsenders/VelocityCommandSender.java | 1 - .../VelocityConsoleCommandSender.java | 2 - .../commandsenders/VelocityPlayer.java | 2 - 154 files changed, 1889 insertions(+), 3157 deletions(-) rename commandapi-core/src/main/java/dev/jorel/commandapi/{abstractions => }/AbstractPlatform.java (84%) rename commandapi-core/src/main/java/dev/jorel/commandapi/{abstractions => }/AbstractTooltip.java (99%) rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/{Argument.java => AbstractArgument.java} (95%) delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractBooleanArgument.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractDoubleArgument.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractFloatArgument.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractGreedyStringArgument.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractIntegerArgument.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLiteralArgument.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLongArgument.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractMultiLiteralArgument.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractStringArgument.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ILiteralArgument.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IMultiLiteralArgument.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java rename commandapi-core/src/main/java/dev/jorel/commandapi/{abstractions => commandsenders}/AbstractBlockCommandSender.java (69%) rename commandapi-core/src/main/java/dev/jorel/commandapi/{abstractions => commandsenders}/AbstractCommandSender.java (95%) rename commandapi-core/src/main/java/dev/jorel/commandapi/{abstractions => commandsenders}/AbstractConsoleCommandSender.java (70%) rename commandapi-core/src/main/java/dev/jorel/commandapi/{abstractions => commandsenders}/AbstractEntity.java (66%) rename commandapi-core/src/main/java/dev/jorel/commandapi/{abstractions => commandsenders}/AbstractNativeProxyCommandSender.java (70%) rename commandapi-core/src/main/java/dev/jorel/commandapi/{abstractions => commandsenders}/AbstractPlayer.java (66%) rename commandapi-core/src/main/java/dev/jorel/commandapi/{abstractions => commandsenders}/AbstractProxiedCommandSender.java (70%) delete mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java delete mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecution.java delete mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java rename commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java => commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java (81%) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java index a33eff59ba..c09d247c6f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java @@ -1,7 +1,6 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractPlatform; -import dev.jorel.commandapi.arguments.Argument; +import dev.jorel.commandapi.arguments.AbstractArgument; import java.util.ArrayList; import java.util.List; @@ -12,29 +11,31 @@ * @param The class extending this class, used as the return type for chain calls * @param The CommandSender class used by the class extending this class */ -public abstract class AbstractArgumentTree, CommandSender> extends Executable { +public abstract class AbstractArgumentTree, + Argument extends AbstractArgument, CommandSender> extends Executable { - final List> arguments = new ArrayList<>(); - final Argument argument; + final List> arguments = new ArrayList<>(); + final Argument argument; /** * Instantiates an {@link AbstractArgumentTree}. This can only be called if the class - * that extends this is an {@link Argument} + * that extends this is an {@link AbstractArgument} */ protected AbstractArgumentTree() { - if (!(this instanceof Argument argument)) { + if (this instanceof AbstractArgument) { + this.argument = (Argument) this; + } else { throw new IllegalArgumentException("Implicit inherited constructor must be from Argument"); } - this.argument = argument; } /** * Instantiates an {@link AbstractArgumentTree} with an underlying argument. - * + * * @param argument the argument to use as the underlying argument for this * argument tree */ - public AbstractArgumentTree(final Argument argument) { + public AbstractArgumentTree(final Argument argument) { this.argument = argument; // Copy the executor in case any executions were defined on the argument this.executor = argument.executor; @@ -42,26 +43,25 @@ public AbstractArgumentTree(final Argument argument) { /** * Create a child branch on this node - * + * * @param tree The child branch * @return this tree node */ - public Impl then(final AbstractArgumentTree tree) { + public Impl then(final AbstractArgumentTree tree) { this.arguments.add(tree); return instance(); } - List> getExecutions() { - List> executions = new ArrayList<>(); + List> getExecutions() { + List> executions = new ArrayList<>(); // If this is executable, add its execution if (this.executor.hasAnyExecutors()) { // Cast platform to make it realize we're using the same CommandSender - AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); - executions.add(platform.newConcreteExecution(List.of(this.argument), this.executor)); + executions.add(new Execution<>(List.of(this.argument), this.executor)); } // Add all executions from all arguments - for (AbstractArgumentTree tree : arguments) { - for (Execution execution : tree.getExecutions()) { + for (AbstractArgumentTree tree : arguments) { + for (Execution execution : tree.getExecutions()) { // Prepend this argument to the arguments of the executions executions.add(execution.prependedBy(this.argument)); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index 7ccbca2de2..52cf86172e 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -20,26 +20,26 @@ *******************************************************************************/ package dev.jorel.commandapi; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.arguments.AbstractArgument; +import dev.jorel.commandapi.arguments.IGreedyArgument; +import dev.jorel.commandapi.exceptions.GreedyArgumentException; + import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.arguments.AbstractMultiLiteralArgument; -import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.IGreedyArgument; -import dev.jorel.commandapi.exceptions.GreedyArgumentException; - /** * A builder used to create commands to be registered by the CommandAPI. * @param The class extending this class, used as the return type for chain calls + * @param The implementation of AbstractArgument used by the class extending this class * @param The CommandSender class used by the class extending this class */ -public abstract class AbstractCommandAPICommand, CommandSender> extends ExecutableCommand { +public abstract class AbstractCommandAPICommand, + Argument extends AbstractArgument, CommandSender> extends ExecutableCommand { - protected List> args = new ArrayList<>(); + protected List args = new ArrayList<>(); protected List subcommands = new ArrayList<>(); protected boolean isConverted; @@ -70,7 +70,7 @@ protected AbstractCommandAPICommand(CommandMetaData metaData) { * command can accept * @return this command builder */ - public Impl withArguments(List> args) { + public Impl withArguments(List args) { this.args.addAll(args); return instance(); } @@ -82,7 +82,7 @@ public Impl withArguments(List> args) { * @return this command builder */ @SafeVarargs - public final Impl withArguments(Argument... args) { + public final Impl withArguments(Argument... args) { this.args.addAll(Arrays.asList(args)); return instance(); } @@ -114,7 +114,7 @@ public Impl withSubcommands(Impl... subcommands) { * * @return the list of arguments that this command has */ - public List> getArguments() { + public List getArguments() { return args; } @@ -123,7 +123,7 @@ public Impl withSubcommands(Impl... subcommands) { * * @param args the arguments that this command has */ - public void setArguments(List> args) { + public void setArguments(List args) { this.args = args; } @@ -170,8 +170,8 @@ Impl setConverted(boolean isConverted) { // Expands subcommands into arguments. This method should be static (it // shouldn't // be accessing/depending on any of the contents of the current class instance) - private static , CommandSender> - void flatten(Impl rootCommand, List> prevArguments, Impl subcommand) { + private static , Argument extends AbstractArgument, CommandSender> + void flatten(Impl rootCommand, List prevArguments, Impl subcommand) { // Get the list of literals represented by the current subcommand. This // includes the subcommand's name and any aliases for this subcommand String[] literals = new String[subcommand.meta.aliases.length + 1]; @@ -179,7 +179,7 @@ void flatten(Impl rootCommand, List> prevArguments System.arraycopy(subcommand.meta.aliases, 0, literals, 1, subcommand.meta.aliases.length); // Create a MultiLiteralArgument using the subcommand information - AbstractMultiLiteralArgument literal = (AbstractMultiLiteralArgument) BaseHandler.getInstance().getPlatform().newConcreteMultiLiteralArgument(literals); + Argument literal = (Argument) BaseHandler.getInstance().getPlatform().newConcreteMultiLiteralArgument(literals); literal.withPermission(subcommand.meta.permission) .withRequirement(subcommand.meta.requirements) @@ -213,7 +213,7 @@ public void register() { CommandAPI.logWarning("Command /" + meta.commandName + " is being registered after the server had loaded. Undefined behavior ahead!"); } try { - Argument[] argumentsArr = args == null ? new Argument[0] : args.toArray(Argument[]::new); + Argument[] argumentsArr = (Argument[]) (args == null ? new AbstractArgument[0] : args.toArray(AbstractArgument[]::new)); // Check IGreedyArgument constraints for (int i = 0, numGreedyArgs = 0; i < argumentsArr.length; i++) { @@ -226,7 +226,7 @@ public void register() { // Assign the command's permissions to arguments if the arguments don't already // have one - for (Argument argument : argumentsArr) { + for (Argument argument : argumentsArr) { if (argument.getArgumentPermission() == null) { argument.withPermission(meta.permission); } @@ -234,7 +234,7 @@ public void register() { if (executor.hasAnyExecutors()) { // Need to cast handler to the right CommandSender type so that argumentsArr and executor are accepted - BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); handler.register(meta, argumentsArr, executor, isConverted); } @@ -248,7 +248,7 @@ public void register() { } public Impl copy() { - Impl command = newConcreteCommandAPICommand(new CommandMetaData(this.meta)); + Impl command = newConcreteCommandAPICommand(new CommandMetaData<>(this.meta)); command.args = new ArrayList<>(this.args); command.subcommands = new ArrayList<>(this.subcommands); command.isConverted = this.isConverted; diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java index 6f81ff2026..a87c098a61 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandTree.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.arguments.AbstractArgument; import java.util.ArrayList; import java.util.List; @@ -8,11 +8,13 @@ /** * This is the root node for creating a command as a tree * @param The class extending this class, used as the return type for chain calls + * @param The implementation of AbstractArgument being used by this class * @param The CommandSender class used by the class extending this class */ -public abstract class AbstractCommandTree, CommandSender> extends ExecutableCommand { +public abstract class AbstractCommandTree, + Argument extends AbstractArgument, CommandSender> extends ExecutableCommand { - private final List> arguments = new ArrayList<>(); + private final List> arguments = new ArrayList<>(); /** * Creates a main root node for a command tree with a given command name @@ -29,7 +31,7 @@ public AbstractCommandTree(final String commandName) { * @param tree the child node * @return this root node */ - public Impl then(final AbstractArgumentTree tree) { + public Impl then(final AbstractArgumentTree tree) { this.arguments.add(tree); return instance(); } @@ -38,16 +40,15 @@ public Impl then(final AbstractArgumentTree tree) { * Registers the command */ public void register() { - List> executions = new ArrayList<>(); + List> executions = new ArrayList<>(); if (this.executor.hasAnyExecutors()) { - // Cast platform so that it realizes we're using the same CommandSender and executor is accepted - AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); - executions.add(platform.newConcreteExecution(new ArrayList<>(), this.executor)); + // For some reason, the compiler complains that it can't infer Execution's type if it isn't defined here + executions.add(new Execution(new ArrayList<>(), this.executor)); } - for (AbstractArgumentTree tree : arguments) { + for (AbstractArgumentTree tree : arguments) { executions.addAll(tree.getExecutions()); } - for (Execution execution : executions) { + for (Execution execution : executions) { execution.register(this.meta); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java similarity index 84% rename from commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java index 46a7b3edad..9388b577ca 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java @@ -1,25 +1,24 @@ -package dev.jorel.commandapi.abstractions; +package dev.jorel.commandapi; import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.tree.LiteralCommandNode; -import dev.jorel.commandapi.CustomCommandExecutor; -import dev.jorel.commandapi.Execution; -import dev.jorel.commandapi.arguments.AbstractLiteralArgument; -import dev.jorel.commandapi.arguments.AbstractMultiLiteralArgument; -import dev.jorel.commandapi.arguments.Argument; +import dev.jorel.commandapi.arguments.AbstractArgument; import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.AbstractPlayer; import java.io.IOException; import java.util.List; /** + * @param The implementation of AbstractArgument used for the platform * @param The class for running platforms commands * @param The class for running Brigadier commands */ -public abstract class AbstractPlatform { +public abstract class AbstractPlatform, CommandSender, Source> { // TODO: Add methods that need platform-specific implementations // All methods in bukkit NMS will probably also need to be here @@ -101,9 +100,9 @@ public abstract class AbstractPlatform { public abstract void updateRequirements(AbstractPlayer player); - public abstract Execution newConcreteExecution(List> argument, CustomCommandExecutor> executor); + public abstract AbstractCommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta); - public abstract AbstractMultiLiteralArgument newConcreteMultiLiteralArgument(String[] literals); + public abstract Argument newConcreteMultiLiteralArgument(String[] literals); - public abstract AbstractLiteralArgument newConcreteLiteralArgument(String literal); + public abstract Argument newConcreteLiteralArgument(String literal); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractTooltip.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractTooltip.java similarity index 99% rename from commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractTooltip.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/AbstractTooltip.java index 6ed4197486..c75724a6bc 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractTooltip.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractTooltip.java @@ -18,7 +18,10 @@ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *******************************************************************************/ -package dev.jorel.commandapi.abstractions; +package dev.jorel.commandapi; + +import com.mojang.brigadier.LiteralMessage; +import com.mojang.brigadier.Message; import java.util.Arrays; import java.util.Collection; @@ -26,11 +29,6 @@ import java.util.function.Function; import java.util.stream.Stream; -import com.mojang.brigadier.LiteralMessage; -import com.mojang.brigadier.Message; - -import dev.jorel.commandapi.StringTooltip; - /** * This class represents a suggestion for an argument with a hover tooltip text * for that suggestion. This class is parameterized over some object S that diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index d64951e34d..31aacc1f74 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -1,22 +1,5 @@ package dev.jorel.commandapi; -import java.awt.Component; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.TreeMap; -import java.util.concurrent.CompletableFuture; -import java.util.function.Predicate; - import com.mojang.brigadier.Command; import com.mojang.brigadier.builder.ArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder; @@ -29,13 +12,20 @@ import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; import com.mojang.brigadier.tree.LiteralCommandNode; - -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.arguments.*; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.preprocessor.RequireField; import dev.jorel.commandapi.wrappers.PreviewableFunction; +import java.awt.*; +import java.io.IOException; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.lang.reflect.Field; +import java.util.List; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.function.Predicate; // For all intents and purposes (all platforms), we can use all of @@ -49,11 +39,12 @@ * The "brains" behind the CommandAPI. * Handles command registration * + * @param The implementation of AbstractArgument being used * @param The class for running platform commands * @param The class for running Brigadier commands */ @RequireField(in = CommandContext.class, name = "arguments", ofType = Map.class) -public class BaseHandler { +public class BaseHandler, CommandSender, Source> { // TODO: Figure out what here gets moved to the common implementation and what // is platform-specific @@ -96,13 +87,13 @@ public static String getRawArgumentInput(CommandContext FIELDS = new HashMap<>(); final TreeMap PERMISSIONS_TO_FIX = new TreeMap<>(); - protected final AbstractPlatform platform; // Access strictly via getPlatform() method which can be overridden + final AbstractPlatform platform; final List registeredCommands; // Keep track of what has been registered for type checking final Map, IPreviewable> previewableArguments; // Arguments with previewable chat - private static BaseHandler instance; + private static BaseHandler instance; - protected BaseHandler(AbstractPlatform platform) { + protected BaseHandler(AbstractPlatform platform) { this.platform = platform; this.registeredCommands = new ArrayList<>(); this.previewableArguments = new HashMap<>(); @@ -124,6 +115,7 @@ private void checkDependencies() { .printStackTrace(); } + // TODO: Should this be moved to Bukkit? Maybe just the message pointing to a Spigot resource page Class nbtContainerClass = CommandAPI.getConfiguration().getNBTContainerClass(); if (nbtContainerClass != null && CommandAPI.getConfiguration().getNBTContainerConstructor() != null) { CommandAPI.logNormal("Hooked into an NBT API with class " + nbtContainerClass.getName()); @@ -144,11 +136,11 @@ public void onDisable() { instance = null; } - public static BaseHandler getInstance() { + public static BaseHandler getInstance() { return instance; } - public AbstractPlatform getPlatform() { + public AbstractPlatform getPlatform() { return this.platform; } @@ -162,7 +154,7 @@ public AbstractPlatform getPlatform() { * @return a brigadier command which is registered internally * @throws CommandSyntaxException if an error occurs when the command is ran */ - Command generateCommand(Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException { + Command generateCommand(Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException { // Generate our command from executor return (cmdCtx) -> { @@ -213,13 +205,13 @@ Command generateCommand(Argument[] args, CustomComm * @return an Object[] which can be used in (sender, args) -> * @throws CommandSyntaxException when an argument isn't formatted correctly */ - Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) + Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) throws CommandSyntaxException { // Array for arguments for executor List argList = new ArrayList<>(); // Populate array - for (Argument argument : args) { + for (Argument argument : args) { if (argument.isListed()) { argList.add(parseArgument(cmdCtx, argument.getNodeName(), argument, argList.toArray())); } @@ -237,8 +229,7 @@ Object[] argsToObjectArr(CommandContext cmdCtx, Argument cmdCtx, String key, Argument value, - Object[] previousArgs) throws CommandSyntaxException { + Object parseArgument(CommandContext cmdCtx, String key, Argument value, Object[] previousArgs) throws CommandSyntaxException { if (value.isListed()) { return value.parseArgument(platform, cmdCtx, key, previousArgs); } else { @@ -315,7 +306,7 @@ static boolean permissionCheck(AbstractCommandSender boolean permissionCheck(AbstractCommandSender meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) + private boolean expandMultiLiterals(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals for (int index = 0; index < args.length; index++) { // Find the first multiLiteral in the for loop - if (args[index] instanceof AbstractMultiLiteralArgument) { - AbstractMultiLiteralArgument superArg = (AbstractMultiLiteralArgument) args[index]; + if (args[index] instanceof IMultiLiteralArgument) { + IMultiLiteralArgument superArg = (IMultiLiteralArgument) args[index]; // Add all of its entries - for (int i = 0; i < superArg.getLiterals().length; i++) { - AbstractLiteralArgument litArg = (AbstractLiteralArgument) BaseHandler.getInstance().getPlatform().newConcreteLiteralArgument(superArg.getLiterals()[i]); - litArg.setListed(superArg.isListed()) - .withPermission(superArg.getArgumentPermission()) - .withRequirement(superArg.getRequirements()); + for (String literal: superArg.getLiterals()) { + Argument litArg = platform.newConcreteLiteralArgument(literal); + + litArg.setListed(superArg.instance().isListed()) + .withPermission(superArg.instance().getArgumentPermission()) + .withRequirement(superArg.instance().getRequirements()); // Reconstruct the list of arguments and place in the new literals - Argument[] newArgs = Arrays.copyOf(args, args.length); - newArgs[index] = (Argument) litArg; + Argument[] newArgs = Arrays.copyOf(args, args.length); + newArgs[index] = litArg; register(meta, newArgs, executor, converted); } return true; @@ -359,7 +351,7 @@ private boolean expandMultiLiterals(CommandMetaData meta, final A // allow /race invite player // disallow /race invite player // Return true if conflict was present, otherwise return false - private boolean hasCommandConflict(String commandName, Argument[] args, String argumentsAsString) { + private boolean hasCommandConflict(String commandName, Argument[] args, String argumentsAsString) { List regArgs = new ArrayList<>(); for (RegisteredCommand rCommand : registeredCommands) { if (rCommand.commandName().equals(commandName)) { @@ -409,20 +401,18 @@ private boolean hasCommandConflict(String commandName, Argument[] args, } // Links arg -> Executor - private ArgumentBuilder generateInnerArgument(Command command, - Argument[] args) { - Argument innerArg = args[args.length - 1]; + private ArgumentBuilder generateInnerArgument(Command command, Argument[] args) { + Argument innerArg = args[args.length - 1]; // Handle Literal arguments - if (innerArg instanceof AbstractLiteralArgument) { - AbstractLiteralArgument literalArgument = (AbstractLiteralArgument) innerArg; + if (innerArg instanceof ILiteralArgument) { + ILiteralArgument literalArgument = (ILiteralArgument) innerArg; return getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), innerArg.getArgumentPermission(), innerArg.getRequirements()).executes(command); } // Handle arguments with built-in suggestion providers - else if (innerArg instanceof ICustomProvidedArgument customProvidedArg - && innerArg.getOverriddenSuggestions().isEmpty()) { + else if (innerArg instanceof ICustomProvidedArgument customProvidedArg && innerArg.getOverriddenSuggestions().isEmpty()) { return getRequiredArgumentBuilderWithProvider(innerArg, args, platform.getSuggestionProvider(customProvidedArg.getSuggestionProvider())).executes(command); } @@ -434,15 +424,16 @@ else if (innerArg instanceof ICustomProvidedArgument customProvidedArg } // Links arg1 -> arg2 -> ... argN -> innermostArgument - private ArgumentBuilder generateOuterArguments(ArgumentBuilder innermostArgument, Argument[] args) { + private ArgumentBuilder generateOuterArguments(ArgumentBuilder innermostArgument, Argument[] args) { ArgumentBuilder outer = innermostArgument; for (int i = args.length - 2; i >= 0; i--) { - Argument outerArg = args[i]; + Argument outerArg = args[i]; // Handle Literal arguments - if (outerArg instanceof AbstractLiteralArgument literalArgument) { + if (outerArg instanceof ILiteralArgument) { + ILiteralArgument literalArgument = (ILiteralArgument) outerArg; outer = getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), - outerArg.getArgumentPermission(), outerArg.getRequirements()).then(outer); + outerArg.getArgumentPermission(), outerArg.getRequirements()).then(outer); } // Handle arguments with built-in suggestion providers @@ -468,12 +459,12 @@ else if (outerArg instanceof ICustomProvidedArgument customProvidedArg * @param args the declared arguments * @param aliases the command's aliases */ - private void handlePreviewableArguments(String commandName, Argument[] args, String[] aliases) { + private void handlePreviewableArguments(String commandName, Argument[] args, String[] aliases) { if (args.length > 0 && args[args.length - 1] instanceof IPreviewable previewable) { List path = new ArrayList<>(); path.add(commandName); - for (Argument arg : args) { + for (Argument arg : args) { path.add(arg.getNodeName()); } previewableArguments.put(List.copyOf(path), previewable); @@ -488,7 +479,7 @@ private void handlePreviewableArguments(String commandName, Argument[] // Builds our platform command using the given arguments for this method, then // registers it - void register(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) + void register(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { // "Expands" our MultiLiterals into Literals @@ -500,7 +491,7 @@ void register(CommandMetaData meta, final Argument arg : args) { + for (Argument arg : args) { builder.append(arg.toString()).append(" "); } humanReadableCommandArgSyntax = builder.toString().trim(); @@ -510,9 +501,9 @@ void register(CommandMetaData meta, final Argument argumentNames = new HashSet<>(); - for (Argument arg : args) { + for (Argument arg : args) { // We shouldn't find MultiLiteralArguments at this point, only LiteralArguments - if (!(arg instanceof AbstractLiteralArgument)) { + if (!(arg instanceof ILiteralArgument)) { if (argumentNames.contains(arg.getNodeName())) { CommandAPI.logError(""" Failed to register command: @@ -548,7 +539,7 @@ void register(CommandMetaData meta, final Argument argumentsString = new ArrayList<>(); - for (Argument arg : args) { + for (Argument arg : args) { argumentsString.add(arg.getNodeName() + ":" + arg.getClass().getSimpleName()); } registeredCommands.add(new RegisteredCommand(commandName, argumentsString, shortDescription, @@ -648,8 +639,7 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandN } // Gets a RequiredArgumentBuilder for a DynamicSuggestedStringArgument - RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, - Argument argument) { + RequiredArgumentBuilder getRequiredArgumentBuilderDynamic(final Argument[] args, Argument argument) { final SuggestionProvider suggestions; @@ -666,8 +656,7 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandN } // Gets a RequiredArgumentBuilder for an argument, given a SuggestionProvider - RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, - Argument[] args, SuggestionProvider provider) { + RequiredArgumentBuilder getRequiredArgumentBuilderWithProvider(Argument argument, Argument[] args, SuggestionProvider provider) { SuggestionProvider newSuggestionsProvider = provider; // If we have suggestions to add, combine provider with the suggestions @@ -699,13 +688,13 @@ LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandN argument.getArgumentPermission(), argument.getRequirements())).suggests(newSuggestionsProvider); } - Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) + Object[] generatePreviousArguments(CommandContext context, Argument[] args, String nodeName) throws CommandSyntaxException { // Populate Object[], which is our previously filled arguments List previousArguments = new ArrayList<>(); - for (Argument arg : args) { - if (arg.getNodeName().equals(nodeName) && !(arg instanceof AbstractLiteralArgument)) { + for (Argument arg : args) { + if (arg.getNodeName().equals(nodeName) && !(arg instanceof ILiteralArgument)) { break; } @@ -730,7 +719,7 @@ Object[] generatePreviousArguments(CommandContext context, Argument toSuggestions(Argument theArgument, Argument[] args, + SuggestionProvider toSuggestions(Argument theArgument, Argument[] args, boolean overrideSuggestions) { return (CommandContext context, SuggestionsBuilder builder) -> { // Construct the suggestion info diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index 4c15ec7c04..ebd8083fbd 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -29,10 +29,9 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.tree.RootCommandNode; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.abstractions.AbstractPlatform; -import dev.jorel.commandapi.arguments.AbstractLiteralArgument; -import dev.jorel.commandapi.arguments.Argument; +import dev.jorel.commandapi.arguments.AbstractArgument; +import dev.jorel.commandapi.arguments.ILiteralArgument; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import java.util.Collections; import java.util.List; @@ -81,9 +80,9 @@ public static RootCommandNode getRootNode() { * @param literalArgument the LiteralArgument to convert from * @return a LiteralArgumentBuilder that represents the literal */ - public static LiteralArgumentBuilder fromLiteralArgument(AbstractLiteralArgument literalArgument) { - BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); - return handler.getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), literalArgument.getArgumentPermission(), literalArgument.getRequirements()); + public static LiteralArgumentBuilder fromLiteralArgument(ILiteralArgument> literalArgument) { + BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + return handler.getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), literalArgument.instance().getArgumentPermission(), literalArgument.instance().getRequirements()); } /** @@ -102,7 +101,7 @@ public static LiteralArgumentBuilder fromLiteralArgument(Abstrac * @param args the arguments that the sender has filled in * @return a RedirectModifier that encapsulates the provided predicate */ - public static RedirectModifier fromPredicate(BiPredicate predicate, List args) { + public static RedirectModifier fromPredicate(BiPredicate predicate, List args) { return cmdCtx -> { if (predicate.test(getCommandSenderFromContext(cmdCtx), parseArguments(cmdCtx, args))) { return Collections.singleton(cmdCtx.getSource()); @@ -118,11 +117,11 @@ public static RedirectModifier fromPredicate(BiPredicate Command fromCommand(AbstractCommandAPICommand command) { + public static , CommandSender> Command fromCommand(AbstractCommandAPICommand command) { try { // Need to cast base handler to make it realize we're using the same CommandSender class - BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); - return handler.generateCommand(command.getArguments().toArray(new Argument[0]), command.getExecutor(), command.isConverted()); + BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + return handler.generateCommand((Argument[]) command.getArguments().toArray(AbstractArgument[]::new), command.getExecutor(), command.isConverted()); } catch (CommandSyntaxException e) { e.printStackTrace(); } @@ -147,8 +146,9 @@ public static Command fromCommand(AbstractCommandAPICommand args, Argument argument) { - return BaseHandler.getInstance().getRequiredArgumentBuilderDynamic(args.toArray(new Argument[0]), argument); + public static > RequiredArgumentBuilder fromArgument(List args, Argument argument) { + BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + return handler.getRequiredArgumentBuilderDynamic((Argument[]) args.toArray(AbstractArgument[]::new), argument); } /** @@ -157,8 +157,9 @@ public static RequiredArgumentBuilder fromArgument(List args, Argument * @param argument the argument to create a RequiredArgumentBuilder from * @return a RequiredArgumentBuilder that represents the provided argument */ - public static RequiredArgumentBuilder fromArgument(Argument argument) { - return BaseHandler.getInstance().getRequiredArgumentBuilderDynamic(new Argument[] { argument }, argument); + public static > RequiredArgumentBuilder fromArgument(Argument argument) { + BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + return handler.getRequiredArgumentBuilderDynamic((Argument[]) new AbstractArgument[] { argument }, argument); } /** @@ -170,8 +171,9 @@ public static RequiredArgumentBuilder fromArgument(Argument argument) { * @return a SuggestionProvider that suggests the overridden suggestions for the * specified argument */ - public static SuggestionProvider toSuggestions(Argument argument, List args) { - return BaseHandler.getInstance().toSuggestions(argument, args.toArray(new Argument[0]), true); + public static > SuggestionProvider toSuggestions(Argument argument, List args) { + BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + return handler.toSuggestions(argument, (Argument[]) args.toArray(AbstractArgument[]::new), true); } /** @@ -186,8 +188,9 @@ public static SuggestionProvider toSuggestions(Argument argument, List * step * @throws CommandSyntaxException if there was an error during parsing */ - public static Object[] parseArguments(CommandContext cmdCtx, List args) throws CommandSyntaxException { - return BaseHandler.getInstance().argsToObjectArr(cmdCtx, args.toArray(new Argument[0])); + public static > Object[] parseArguments(CommandContext cmdCtx, List args) throws CommandSyntaxException { + BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + return handler.argsToObjectArr(cmdCtx, (Argument[]) args.toArray(AbstractArgument[]::new)); } /** @@ -201,7 +204,7 @@ public static Object[] parseArguments(CommandContext cmdCtx, List args * CommandSender */ public static Object getBrigadierSourceFromCommandSender(CommandSender sender) { - AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); return platform.getBrigadierSourceFromCommandSender(platform.wrapCommandSender(sender)); } @@ -213,7 +216,7 @@ public static Object getBrigadierSourceFromCommandSender(Command * @return a Bukkit CommandSender from the provided Brigadier CommandContext */ public static CommandSender getCommandSenderFromContext(CommandContext cmdCtx) { - AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); // For some reason putting this on one line doesn't work - very weird AbstractCommandSender abstractSender = platform.getSenderForCommand(cmdCtx, false); return abstractSender.getSource(); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 54bf884a2b..501bbfa9cb 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -3,9 +3,7 @@ import com.mojang.brigadier.Message; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; -import dev.jorel.commandapi.abstractions.AbstractPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlayer; -import dev.jorel.commandapi.abstractions.AbstractTooltip; +import dev.jorel.commandapi.commandsenders.AbstractPlayer; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import java.util.ArrayList; @@ -125,7 +123,7 @@ public static void onLoad(CommandAPIConfig config, CommandAPILogger logger) { CommandAPI.logger = logger; // Initialize handlers - AbstractPlatform platform = CommandAPIVersionHandler.getPlatform(); + AbstractPlatform platform = CommandAPIVersionHandler.getPlatform(); final String platformClassHierarchy; { @@ -171,7 +169,7 @@ public static void onDisable() { // This method is called automatically when the class loads to set up variables, in which case // BaseHandler will not have been initialized - BaseHandler handler = BaseHandler.getInstance(); + BaseHandler handler = BaseHandler.getInstance(); if(handler != null) handler.onDisable(); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index ab99424fbc..b765c07723 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.arguments.AbstractArgument; /** * This file handles loadeding the correct platform implementation. The CommandAPIVersionHandler @@ -11,10 +11,13 @@ public interface CommandAPIVersionHandler { /** * Returns an instance of the version's implementation of AbstractPlatform. - * @param the command source type + * + * @param the implementation of AbstractArgument + * @param the command sender type + * @param the command source type * @return an instance of AbstractPlatform which can run on the specified server version */ - static AbstractPlatform getPlatform() { + static , CommandSender, Source> AbstractPlatform getPlatform() { throw new RuntimeException("You have the wrong copy of the CommandAPI! If you're shading, did you use commandapi-core instead of commandapi-{platform}-shade?"); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java index 3602436f5f..0d23602406 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandMetaData.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.exceptions.InvalidCommandNameException; import java.util.Arrays; diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java index 24f4d30a2b..02de1a420b 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CustomCommandExecutor.java @@ -20,22 +20,20 @@ *******************************************************************************/ package dev.jorel.commandapi; -import java.util.ArrayList; -import java.util.List; -import java.util.NoSuchElementException; - import com.mojang.brigadier.LiteralMessage; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; - -import dev.jorel.commandapi.abstractions.*; - +import dev.jorel.commandapi.commandsenders.*; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.executors.ExecutorType; import dev.jorel.commandapi.executors.IExecutorNormal; import dev.jorel.commandapi.executors.IExecutorResulting; import dev.jorel.commandapi.executors.IExecutorTyped; +import java.util.ArrayList; +import java.util.List; +import java.util.NoSuchElementException; + /** * CustomCommandExecutor is the main executor implementation for command * executors. It contains a list of all executors (normal and resulting diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java index 6c050785fc..7976098d08 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java @@ -1,12 +1,12 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.arguments.Argument; +import dev.jorel.commandapi.arguments.AbstractArgument; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import java.util.ArrayList; /** - * This class represents something that is executable. This is mostly, {@link AbstractCommandAPICommand} instances, or can also be {@link AbstractCommandTree} nodes and even {@link Argument} nodes in a tree + * This class represents something that is executable. This is mostly, {@link AbstractCommandAPICommand} instances, or can also be {@link AbstractCommandTree} nodes and even {@link AbstractArgument} nodes in a tree * * @param The class extending this class, used as the return type for chain calls * @param The CommandSender class used by the class extending this class diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java index 8b19b00418..ce896aa19d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/ExecutableCommand.java @@ -1,7 +1,5 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; - import java.util.Optional; import java.util.function.Predicate; diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java index 534045d97a..7a99bf2b54 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java @@ -1,7 +1,7 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.arguments.Argument; +import dev.jorel.commandapi.arguments.AbstractArgument; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import java.util.ArrayList; import java.util.List; @@ -9,12 +9,12 @@ /** * A list of arguments which results in an execution. This is used for building branches in a {@link AbstractCommandTree} */ -public abstract class Execution { +public class Execution> { - private final List> arguments; + private final List arguments; private final CustomCommandExecutor> executor; - public Execution(List> arguments, CustomCommandExecutor> executor) { + public Execution(List arguments, CustomCommandExecutor> executor) { this.arguments = arguments; this.executor = executor; } @@ -24,21 +24,18 @@ public Execution(List> arguments, CustomCommandExe * * @param meta The metadata to register the command with */ - public void register(CommandMetaData meta) { - AbstractCommandAPICommand command = newConcreteCommandAPICommand(meta); + public void register(CommandMetaData meta) { + AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + AbstractCommandAPICommand command = platform.newConcreteCommandAPICommand(meta); command.withArguments(arguments); command.setExecutor(executor); command.register(); } - protected abstract AbstractCommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta); - - public Execution prependedBy(Argument argument) { - List> arguments = new ArrayList<>(); + public Execution prependedBy(Argument argument) { + List arguments = new ArrayList<>(); arguments.add(argument); arguments.addAll(this.arguments); - return newConcreteExecution(arguments, executor); + return new Execution<>(arguments, executor); } - - protected abstract Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java index 498018d246..3cebaedc03 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; public interface IPlatformExecutable, CommandSender> extends IChainableBuilder { // Automatically links to Executable#getExecutor (make sure it has the same signature) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java b/commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java index e797eb807a..07d7accb80 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/StringTooltip.java @@ -21,7 +21,6 @@ package dev.jorel.commandapi; import com.mojang.brigadier.Message; -import dev.jorel.commandapi.abstractions.AbstractTooltip; import java.util.Arrays; import java.util.Collection; diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java b/commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java index 1803c318ae..5a0391db09 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/SuggestionInfo.java @@ -20,8 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; - /** * A class that represents information which you can use to generate * suggestions. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java similarity index 95% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java index ca6afcee14..cc84bd661b 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java @@ -23,11 +23,7 @@ import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractArgumentTree; -import dev.jorel.commandapi.CommandPermission; -import dev.jorel.commandapi.IStringTooltip; -import dev.jorel.commandapi.SuggestionInfo; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.*; import java.util.Arrays; import java.util.List; @@ -40,9 +36,10 @@ * * @param The type of the underlying object that this argument casts to * @param The class extending this class, used as the return type for chain calls + * @param The implementation of Argument used by the class extending this class * @param The CommandSender class used by the class extending this class */ -public abstract class Argument, CommandSender> extends AbstractArgumentTree { +public abstract class AbstractArgument, Argument extends AbstractArgument, CommandSender> extends AbstractArgumentTree { /** * Returns the primitive type of the current Argument. After executing a @@ -72,7 +69,7 @@ public abstract class Argument, * @param nodeName the name to assign to this argument node * @param rawType the NMS or brigadier type to be used for this argument */ - protected Argument(String nodeName, ArgumentType rawType) { + protected AbstractArgument(String nodeName, ArgumentType rawType) { this.nodeName = nodeName; this.rawType = rawType; } @@ -108,7 +105,7 @@ public final String getNodeName() { * @return the parsed object represented by this argument * @throws CommandSyntaxException if parsing fails */ - public abstract T parseArgument(AbstractPlatform platform, + public abstract T parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException; ///////////////// diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractBooleanArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractBooleanArgument.java deleted file mode 100644 index 33ba693d32..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractBooleanArgument.java +++ /dev/null @@ -1,61 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.arguments; - -import com.mojang.brigadier.arguments.BoolArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.abstractions.AbstractPlatform; - -/** - * An argument that represents primitive Java booleans - * - * @apiNote Returns a {@link boolean} - */ -public abstract class AbstractBooleanArgument, CommandSender> extends SafeOverrideableArgument { - - /** - * Constructs a Boolean argument with a given node name - * - * @param nodeName the name of the node for argument - */ - public AbstractBooleanArgument(String nodeName) { - super(nodeName, BoolArgumentType.bool(), String::valueOf); - } - - @Override - public Class getPrimitiveType() { - return boolean.class; - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.PRIMITIVE_BOOLEAN; - } - - @Override - public Boolean parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) - throws CommandSyntaxException { - return cmdCtx.getArgument(key, getPrimitiveType()); - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractDoubleArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractDoubleArgument.java deleted file mode 100644 index 92e38fc006..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractDoubleArgument.java +++ /dev/null @@ -1,85 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.arguments; - -import com.mojang.brigadier.arguments.DoubleArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.exceptions.InvalidRangeException; -import dev.jorel.commandapi.abstractions.AbstractPlatform; - -/** - * An argument that represents primitive Java doubles - * - * @apiNote Returns a {@link double} - */ -public abstract class AbstractDoubleArgument, CommandSender> extends SafeOverrideableArgument { - - /** - * A double argument - * - * @param nodeName the name of the node for this argument - */ - public AbstractDoubleArgument(String nodeName) { - super(nodeName, DoubleArgumentType.doubleArg(), String::valueOf); - } - - /** - * A double argument with a minimum value - * - * @param nodeName the name of the node for this argument - * @param min The minimum value this argument can take (inclusive) - */ - public AbstractDoubleArgument(String nodeName, double min) { - super(nodeName, DoubleArgumentType.doubleArg(min), String::valueOf); - } - - /** - * A double argument with a minimum and maximum value - * - * @param nodeName the name of the node for this argument - * @param min The minimum value this argument can take (inclusive) - * @param max The maximum value this argument can take (inclusive) - */ - public AbstractDoubleArgument(String nodeName, double min, double max) { - super(nodeName, DoubleArgumentType.doubleArg(min, max), String::valueOf); - if (max < min) { - throw new InvalidRangeException(); - } - } - - @Override - public Class getPrimitiveType() { - return double.class; - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.PRIMITIVE_DOUBLE; - } - - @Override - public Double parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return cmdCtx.getArgument(key, getPrimitiveType()); - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractFloatArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractFloatArgument.java deleted file mode 100644 index f148ea6d8e..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractFloatArgument.java +++ /dev/null @@ -1,80 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.arguments; - -import com.mojang.brigadier.arguments.FloatArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.exceptions.InvalidRangeException; -import dev.jorel.commandapi.abstractions.AbstractPlatform; - -/** - * An argument that represents primitive Java floats - */ -public abstract class AbstractFloatArgument, CommandSender> extends SafeOverrideableArgument { - - /** - * A float argument - * @param nodeName the name of the node for this argument - */ - public AbstractFloatArgument(String nodeName) { - super(nodeName, FloatArgumentType.floatArg(), String::valueOf); - } - - /** - * A float argument with a minimum value - * @param nodeName the name of the node for this argument - * @param min The minimum value this argument can take (inclusive) - */ - public AbstractFloatArgument(String nodeName, float min) { - super(nodeName, FloatArgumentType.floatArg(min), String::valueOf); - } - - /** - * A float argument with a minimum and maximum value - * @param nodeName the name of the node for this argument - * @param min The minimum value this argument can take (inclusive) - * @param max The maximum value this argument can take (inclusive) - */ - public AbstractFloatArgument(String nodeName, float min, float max) { - super(nodeName, FloatArgumentType.floatArg(min, max), String::valueOf); - if(max < min) { - throw new InvalidRangeException(); - } - } - - @Override - public Class getPrimitiveType() { - return float.class; - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.PRIMITIVE_FLOAT; - } - - @Override - public Float parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return cmdCtx.getArgument(key, getPrimitiveType()); - } -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractGreedyStringArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractGreedyStringArgument.java deleted file mode 100644 index f95d692980..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractGreedyStringArgument.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.arguments; - -import com.mojang.brigadier.arguments.StringArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.abstractions.AbstractPlatform; - -/** - * An argument that represents arbitrary strings - */ -public abstract class AbstractGreedyStringArgument, CommandSender> extends SafeOverrideableArgument implements IGreedyArgument { - - /** - * A string argument for a string of any length - * @param nodeName the name of the node for this argument - */ - public AbstractGreedyStringArgument(String nodeName) { - super(nodeName, StringArgumentType.greedyString(), s -> s); - } - - @Override - public Class getPrimitiveType() { - return String.class; - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.PRIMITIVE_GREEDY_STRING; - } - - @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return cmdCtx.getArgument(key, getPrimitiveType()); - } -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractIntegerArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractIntegerArgument.java deleted file mode 100644 index 2f91c49a2d..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractIntegerArgument.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.arguments; - -import com.mojang.brigadier.arguments.IntegerArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.exceptions.InvalidRangeException; -import dev.jorel.commandapi.abstractions.AbstractPlatform; - -/** - * An argument that represents primitive Java ints - */ -public abstract class AbstractIntegerArgument,CommandSender> extends SafeOverrideableArgument { - - /** - * An integer argument - * @param nodeName the name of the node for this argument - */ - public AbstractIntegerArgument(String nodeName) { - super(nodeName, IntegerArgumentType.integer(), String::valueOf); - } - - /** - * An integer argument with a minimum value - * @param nodeName the name of the node for this argument - * @param min The minimum value this argument can take (inclusive) - */ - public AbstractIntegerArgument(String nodeName, int min) { - super(nodeName, IntegerArgumentType.integer(min), String::valueOf); - } - - /** - * An integer argument with a minimum and maximum value - * @param nodeName the name of the node for this argument - * @param min The minimum value this argument can take (inclusive) - * @param max The maximum value this argument can take (inclusive) - */ - public AbstractIntegerArgument(String nodeName, int min, int max) { - super(nodeName, IntegerArgumentType.integer(min, max), String::valueOf); - if(max < min) { - throw new InvalidRangeException(); - } - } - - @Override - public Class getPrimitiveType() { - return int.class; - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.PRIMITIVE_INTEGER; - } - - @Override - public Integer parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return cmdCtx.getArgument(key, getPrimitiveType()); - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLiteralArgument.java deleted file mode 100644 index 231ee2e1a0..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLiteralArgument.java +++ /dev/null @@ -1,83 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.arguments; - -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.exceptions.BadLiteralException; -import dev.jorel.commandapi.abstractions.AbstractPlatform; - -/** - * A pseudo-argument representing a single literal string - */ -public abstract class AbstractLiteralArgument,CommandSender> extends Argument { - - private String literal; - - /** - * A literal argument. Only takes one string value which cannot be modified - * @param literal the string literal that this argument will represent - */ - public AbstractLiteralArgument(final String literal) { - /* - * The literal argument builder is NOT technically an argument. - * Therefore, it doesn't have an ArgumentType. - * - * This is a wrapper for the object "LiteralArgumentBuilder<>" - */ - super(literal, null); - - if(literal == null) { - throw new BadLiteralException(true); - } - if(literal.isEmpty()) { - throw new BadLiteralException(false); - } - this.literal = literal; - this.setListed(false); - } - - - @Override - public Class getPrimitiveType() { - return String.class; - } - - /** - * Returns the literal string represented by this argument - * @return the literal string represented by this argument - */ - public String getLiteral() { - return literal; - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.LITERAL; - } - - @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return literal; - } -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLongArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLongArgument.java deleted file mode 100644 index 0c0d6509d7..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractLongArgument.java +++ /dev/null @@ -1,81 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.arguments; - -import com.mojang.brigadier.arguments.LongArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.exceptions.InvalidRangeException; -import dev.jorel.commandapi.abstractions.AbstractPlatform; - -/** - * An argument that represents primitive Java longs - */ -public abstract class AbstractLongArgument,CommandSender> extends SafeOverrideableArgument { - - /** - * A long argument - * @param nodeName the name of the node for this argument - */ - public AbstractLongArgument(String nodeName) { - super(nodeName, LongArgumentType.longArg(), String::valueOf); - } - - /** - * A long argument with a minimum value - * @param nodeName the name of the node for this argument - * @param value The minimum value this argument can take (inclusive) - */ - public AbstractLongArgument(String nodeName, long value) { - super(nodeName, LongArgumentType.longArg(value), String::valueOf); - } - - /** - * A long argument with a minimum and maximum value - * @param nodeName the name of the node for this argument - * @param min The minimum value this argument can take (inclusive) - * @param max The maximum value this argument can take (inclusive) - */ - public AbstractLongArgument(String nodeName, long min, long max) { - super(nodeName, LongArgumentType.longArg(min, max), String::valueOf); - if(max < min) { - throw new InvalidRangeException(); - } - } - - @Override - public Class getPrimitiveType() { - return long.class; - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.PRIMITIVE_LONG; - } - - @Override - public Long parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return cmdCtx.getArgument(key, getPrimitiveType()); - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractMultiLiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractMultiLiteralArgument.java deleted file mode 100644 index 10fb34b216..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractMultiLiteralArgument.java +++ /dev/null @@ -1,74 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.arguments; - -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.exceptions.BadLiteralException; -import dev.jorel.commandapi.abstractions.AbstractPlatform; - -/** - * An argument that represents multiple LiteralArguments - */ -public abstract class AbstractMultiLiteralArgument,CommandSender> extends Argument { - - private String[] literals; - - /** - * A multiliteral argument. Takes in string literals which cannot be modified - * @param literals the literals that this argument represents - */ - public AbstractMultiLiteralArgument(final String... literals) { - super(null, null); - if(literals == null) { - throw new BadLiteralException(true); - } - if(literals.length == 0) { - throw new BadLiteralException(false); - } - this.literals = literals; - } - - @Override - public Class getPrimitiveType() { - return String.class; - } - - /** - * Returns the literals that are present in this argument - * @return the literals that are present in this argument - */ - public String[] getLiterals() { - return literals; - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.MULTI_LITERAL; - } - - @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - throw new IllegalStateException("Cannot parse MultiLiteralArgument"); - } -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractStringArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractStringArgument.java deleted file mode 100644 index ecb0422981..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractStringArgument.java +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.arguments; - -import com.mojang.brigadier.arguments.StringArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.abstractions.AbstractPlatform; - -/** - * An argument that represents a simple String - */ -public abstract class AbstractStringArgument,CommandSender> extends Argument { - - /** - * A string argument for one word - * @param nodeName the name of the node for this argument - */ - public AbstractStringArgument(String nodeName) { - super(nodeName, StringArgumentType.word()); - } - - @Override - public Class getPrimitiveType() { - return String.class; - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.PRIMITIVE_STRING; - } - - @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return cmdCtx.getArgument(key, getPrimitiveType()); - } -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ILiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ILiteralArgument.java new file mode 100644 index 0000000000..bf2daa70ce --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ILiteralArgument.java @@ -0,0 +1,14 @@ +package dev.jorel.commandapi.arguments; + +import dev.jorel.commandapi.IChainableBuilder; + +public interface ILiteralArgument> extends IChainableBuilder { + // Literal specific information + + /** + * Returns the literal string represented by this argument + * + * @return the literal string represented by this argument + */ + String getLiteral(); +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IMultiLiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IMultiLiteralArgument.java new file mode 100644 index 0000000000..ef5d2b6681 --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IMultiLiteralArgument.java @@ -0,0 +1,14 @@ +package dev.jorel.commandapi.arguments; + +import dev.jorel.commandapi.IChainableBuilder; + +public interface IMultiLiteralArgument> extends IChainableBuilder { + // MultiLiteral specific information + + /** + * Returns the literals that are present in this argument + * + * @return the literals that are present in this argument + */ + String[] getLiterals(); +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java index 6c53d13fe6..91da2fa98c 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IPreviewable.java @@ -1,15 +1,15 @@ package dev.jorel.commandapi.arguments; -import java.util.Optional; - import dev.jorel.commandapi.wrappers.PreviewableFunction; +import java.util.Optional; + /** * An interface representing that the argument can be previewed using * Minecraft's chat preview feature. To use this, the server must have * {@code previews-chat=true} set in its {@code server.properties} file */ -public interface IPreviewable, A> { +public interface IPreviewable, A> { /** * Sets the {@link PreviewableFunction} for this argument. This function will diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java new file mode 100644 index 0000000000..e45f6ebb3e --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java @@ -0,0 +1,105 @@ +package dev.jorel.commandapi.arguments; + +import dev.jorel.commandapi.AbstractTooltip; +import dev.jorel.commandapi.IChainableBuilder; +import dev.jorel.commandapi.SuggestionInfo; + +import java.util.function.Function; + +public interface ISafeOverrideableArgument, + Argument extends AbstractArgument, CommandSender> extends IChainableBuilder { + // Links to methods in AbstractArgument (make sure they have the same signature) + Impl replaceSuggestions(ArgumentSuggestions suggestions); + + Impl includeSuggestions(ArgumentSuggestions suggestions); + + + // SafeOverrideableArgument info + Function getMapper(); + + + /** + * Replaces the suggestions with a safe {@link SafeSuggestions} object. Use the + * static methods in {@link SafeSuggestions} to create safe suggestions. + * + * @param suggestions The safe suggestions to use + * @return the current argument + */ + default Impl replaceSafeSuggestions(SafeSuggestions suggestions) { + return replaceSuggestions(suggestions.toSuggestions(getMapper())); + } + + /** + * Includes the suggestions provided with the existing suggestions for this + * argument. Use the static methods in {@link SafeSuggestions} to create safe + * suggestions. + * + * @param suggestions The safe suggestions to use + * @return the current argument + */ + default Impl includeSafeSuggestions(SafeSuggestions suggestions) { + return includeSuggestions(suggestions.toSuggestions(getMapper())); + } + + // Deprecated legacy methods + /** + * Replaces the suggestions of this argument with an array of suggestions. + * + * @param suggestions a function that takes in {@link SuggestionInfo} and + * returns a {@link S} array of suggestions, where S is your + * custom type + * @return the current argument + * @deprecated use {@link #replaceSafeSuggestions(SafeSuggestions)} + */ + @Deprecated(forRemoval = true) + default Impl replaceWithSafeSuggestions(Function, S[]> suggestions) { + return replaceSafeSuggestions(SafeSuggestions.suggest(suggestions)); + } + + /** + * Replaces the suggestions of this argument with an array of suggestions. + * + * @param suggestions a function that takes in {@link SuggestionInfo} and + * returns an {@link AbstractTooltip} array of suggestions, + * parameterized over {@link S} where S is your custom type + * @return the current argument + * @deprecated use {@link #replaceSafeSuggestions(SafeSuggestions)} + */ + @Deprecated(forRemoval = true) + default Impl replaceWithSafeSuggestionsT(Function, AbstractTooltip[]> suggestions) { + return replaceSafeSuggestions(SafeSuggestions.tooltips(suggestions)); + } + + /** + * Include suggestions to add to the list of default suggestions represented by + * this argument. + * + * @param suggestions a function that takes in {@link SuggestionInfo} which + * includes information about the current state at the time + * the suggestions are run and returns a {@link S} array of + * suggestions to add, where S is your custom type + * @return the current argument + * @deprecated use {@link #includeSafeSuggestions(SafeSuggestions)} + */ + @Deprecated(forRemoval = true) + default Impl includeWithSafeSuggestions(Function, S[]> suggestions) { + return includeSafeSuggestions(SafeSuggestions.suggest(suggestions)); + } + + /** + * Include suggestions to add to the list of default suggestions represented by + * this argument. + * + * @param suggestions a function that takes in {@link SuggestionInfo} which + * includes information about the current state at the time + * the suggestions are run and returns an {@link AbstractTooltip} + * array of suggestions to add, parameterized over {@link S} + * where S is your custom type + * @return the current argument + * @deprecated use {@link #includeSafeSuggestions(SafeSuggestions)} + */ + @Deprecated(forRemoval = true) + default Impl includeWithSafeSuggestionsT(Function, AbstractTooltip[]> suggestions) { + return includeSafeSuggestions(SafeSuggestions.tooltips(suggestions)); + } +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java index 244d58b15f..6c5ca64025 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/PreviewInfo.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.abstractions.AbstractPlayer; +import dev.jorel.commandapi.commandsenders.AbstractPlayer; public record PreviewInfo ( /** @param player the Player typing this command */ diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java deleted file mode 100644 index 85ea7a8451..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java +++ /dev/null @@ -1,141 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.arguments; - -import java.util.function.Function; - -import com.mojang.brigadier.arguments.ArgumentType; - -import dev.jorel.commandapi.SuggestionInfo; -import dev.jorel.commandapi.abstractions.AbstractTooltip; - -/** - * An interface declaring methods required to override argument suggestions - * - * @param The type of the underlying object that this argument casts to - * @param A custom type which is represented by this argument. For example, - * a {@link AbstractStringArgument} will have a custom type - * String - * @param The class extending this class, used as the return type for chain calls - * @param The CommandSender class used by the class extending this class - */ -public abstract class SafeOverrideableArgument, CommandSender> extends Argument { - - private final Function mapper; - - /** - * Instantiates this argument and assigns the mapper to the provided mapper - * - * @param nodeName the node name of this argument - * @param rawType the NMS raw argument type of this argument - * @param mapper the mapping function that maps this argument type to a string - * for suggestions - */ - protected SafeOverrideableArgument(String nodeName, ArgumentType rawType, Function mapper) { - super(nodeName, rawType); - this.mapper = mapper; - } - - /** - * Replaces the suggestions with a safe {@link SafeSuggestions} object. Use the - * static methods in {@link SafeSuggestions} to create safe suggestions. - * - * @param suggestions The safe suggestions to use - * @return the current argument - */ - public final Impl replaceSafeSuggestions(SafeSuggestions suggestions) { - replaceSuggestions(suggestions.toSuggestions(mapper)); - return instance(); - } - - /** - * Replaces the suggestions of this argument with an array of suggestions. - * - * @param suggestions a function that takes in {@link SuggestionInfo} and - * returns a {@link S} array of suggestions, where S is your - * custom type - * @return the current argument - * @deprecated use {@link #replaceSafeSuggestions(SafeSuggestions)} - */ - @Deprecated(forRemoval = true) - public final Impl replaceWithSafeSuggestions(Function, S[]> suggestions) { - return replaceSafeSuggestions(SafeSuggestions.suggest(suggestions)); - } - - /** - * Replaces the suggestions of this argument with an array of suggestions. - * - * @param suggestions a function that takes in {@link SuggestionInfo} and - * returns an {@link AbstractTooltip} array of suggestions, - * parameterized over {@link S} where S is your custom type - * @return the current argument - * @deprecated use {@link #replaceSafeSuggestions(SafeSuggestions)} - */ - @Deprecated(forRemoval = true) - public final Impl replaceWithSafeSuggestionsT(Function, AbstractTooltip[]> suggestions) { - return replaceSafeSuggestions(SafeSuggestions.tooltips(suggestions)); - } - - /** - * Includes the suggestions provided with the existing suggestions for this - * argument. Use the static methods in {@link SafeSuggestions} to create safe - * suggestions. - * - * @param suggestions The safe suggestions to use - * @return the current argument - */ - public final Impl includeSafeSuggestions(SafeSuggestions suggestions) { - return this.includeSuggestions(suggestions.toSuggestions(mapper)); - } - - /** - * Include suggestions to add to the list of default suggestions represented by - * this argument. - * - * @param suggestions a function that takes in {@link SuggestionInfo} which - * includes information about the current state at the time - * the suggestions are run and returns a {@link S} array of - * suggestions to add, where S is your custom type - * @return the current argument - * @deprecated use {@link #includeSafeSuggestions(SafeSuggestions)} - */ - @Deprecated(forRemoval = true) - public final Impl includeWithSafeSuggestions(Function, S[]> suggestions) { - return includeSafeSuggestions(SafeSuggestions.suggest(suggestions)); - } - - /** - * Include suggestions to add to the list of default suggestions represented by - * this argument. - * - * @param suggestions a function that takes in {@link SuggestionInfo} which - * includes information about the current state at the time - * the suggestions are run and returns an {@link AbstractTooltip} - * array of suggestions to add, parameterized over {@link S} - * where S is your custom type - * @return the current argument - * @deprecated use {@link #includeSafeSuggestions(SafeSuggestions)} - */ - @Deprecated(forRemoval = true) - public final Impl includeWithSafeSuggestionsT(Function, AbstractTooltip[]> suggestions) { - return includeSafeSuggestions(SafeSuggestions.tooltips(suggestions)); - } -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java index b389167bf9..f45093f027 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SafeSuggestions.java @@ -1,15 +1,15 @@ package dev.jorel.commandapi.arguments; +import dev.jorel.commandapi.AbstractTooltip; +import dev.jorel.commandapi.IStringTooltip; +import dev.jorel.commandapi.SuggestionInfo; + import java.util.Arrays; import java.util.Collection; import java.util.concurrent.CompletableFuture; import java.util.function.Function; import java.util.stream.Stream; -import dev.jorel.commandapi.IStringTooltip; -import dev.jorel.commandapi.SuggestionInfo; -import dev.jorel.commandapi.abstractions.AbstractTooltip; - /** * This class represents safe suggestions. These are parameterized suggestions which can be converted * into a string under a mapping function. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractBlockCommandSender.java similarity index 69% rename from commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractBlockCommandSender.java index f4c9e6e05d..d9449e0673 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractBlockCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractBlockCommandSender.java @@ -1,4 +1,4 @@ -package dev.jorel.commandapi.abstractions; +package dev.jorel.commandapi.commandsenders; public abstract class AbstractBlockCommandSender implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractCommandSender.java similarity index 95% rename from commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractCommandSender.java index 7b8f09a218..05950cf070 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractCommandSender.java @@ -1,4 +1,4 @@ -package dev.jorel.commandapi.abstractions; +package dev.jorel.commandapi.commandsenders; public interface AbstractCommandSender { // TODO: figure out what features this and the subclasses of this class need diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractConsoleCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractConsoleCommandSender.java similarity index 70% rename from commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractConsoleCommandSender.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractConsoleCommandSender.java index 99a487573e..9d1d535461 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractConsoleCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractConsoleCommandSender.java @@ -1,4 +1,4 @@ -package dev.jorel.commandapi.abstractions; +package dev.jorel.commandapi.commandsenders; public abstract class AbstractConsoleCommandSender implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractEntity.java b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractEntity.java similarity index 66% rename from commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractEntity.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractEntity.java index fac3cf1fbf..a4e972b5da 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractEntity.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractEntity.java @@ -1,4 +1,4 @@ -package dev.jorel.commandapi.abstractions; +package dev.jorel.commandapi.commandsenders; public abstract class AbstractEntity implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractNativeProxyCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractNativeProxyCommandSender.java similarity index 70% rename from commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractNativeProxyCommandSender.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractNativeProxyCommandSender.java index 89935aa989..24a150e7bc 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractNativeProxyCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractNativeProxyCommandSender.java @@ -1,4 +1,4 @@ -package dev.jorel.commandapi.abstractions; +package dev.jorel.commandapi.commandsenders; public abstract class AbstractNativeProxyCommandSender implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlayer.java b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractPlayer.java similarity index 66% rename from commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlayer.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractPlayer.java index e8c9b7f086..94a681ba32 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractPlayer.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractPlayer.java @@ -1,4 +1,4 @@ -package dev.jorel.commandapi.abstractions; +package dev.jorel.commandapi.commandsenders; public abstract class AbstractPlayer implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractProxiedCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractProxiedCommandSender.java similarity index 70% rename from commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractProxiedCommandSender.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractProxiedCommandSender.java index 15ac578fa4..9a7ef92de1 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/abstractions/AbstractProxiedCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractProxiedCommandSender.java @@ -1,4 +1,4 @@ -package dev.jorel.commandapi.abstractions; +package dev.jorel.commandapi.commandsenders; public abstract class AbstractProxiedCommandSender implements AbstractCommandSender { } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java index 75ab572bb6..51b835b6f2 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java @@ -20,34 +20,29 @@ *******************************************************************************/ package dev.jorel.commandapi.exceptions; -import dev.jorel.commandapi.arguments.Argument; - -import java.util.List; +import dev.jorel.commandapi.arguments.AbstractArgument; /** * An exception caused when a greedy argument is not declared at the end of a * List */ -@SuppressWarnings("serial") public class GreedyArgumentException extends RuntimeException { - /** * Creates a GreedyArgumentException * * @param arguments the list of arguments that have been used for this command * (including the greedy string argument) */ - public GreedyArgumentException(Argument[] arguments) { + public GreedyArgumentException(AbstractArgument[] arguments) { super("Only one GreedyStringArgument or ChatArgument can be declared, at the end of a List. Found arguments: " + buildArgsStr(arguments)); } - private static String buildArgsStr(Argument[] arguments) { + private static String buildArgsStr(AbstractArgument[] arguments) { StringBuilder builder = new StringBuilder(); - for (Argument arg : arguments) { + for (AbstractArgument arg : arguments) { builder.append(arg.getNodeName()).append("<").append(arg.getClass().getSimpleName()).append("> "); } return builder.toString(); } - } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java index 05534e61b3..1c84319468 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java @@ -20,8 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; - +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java index 4a3a504fbd..8eec3cd173 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java @@ -20,8 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; - +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java index 8be5590311..10bd044890 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java @@ -20,7 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java deleted file mode 100644 index 944d508333..0000000000 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecution.java +++ /dev/null @@ -1,23 +0,0 @@ -package dev.jorel.commandapi; - -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.arguments.Argument; -import org.bukkit.command.CommandSender; - -import java.util.List; - -public class BukkitExecution extends Execution { - public BukkitExecution(List> arguments, CustomCommandExecutor> executor) { - super(arguments, executor); - } - - @Override - protected AbstractCommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta) { - return new CommandAPICommand(meta); - } - - @Override - protected Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor) { - return new BukkitExecution(arguments, executor); - } -} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 7c28ec8f06..09542752a2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -1,19 +1,19 @@ package dev.jorel.commandapi; -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.util.*; -import java.util.function.Function; - import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.tree.CommandNode; -import dev.jorel.commandapi.abstractions.AbstractPlayer; -import dev.jorel.commandapi.arguments.*; +import com.mojang.brigadier.tree.LiteralCommandNode; +import dev.jorel.commandapi.arguments.Argument; +import dev.jorel.commandapi.arguments.LiteralArgument; +import dev.jorel.commandapi.arguments.MultiLiteralArgument; +import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.*; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.nms.NMS; import dev.jorel.commandapi.preprocessor.RequireField; import dev.jorel.commandapi.preprocessor.Unimplemented; import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; @@ -21,16 +21,6 @@ import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.Bukkit; import org.bukkit.ChatColor; -import org.bukkit.NamespacedKey; - -import com.mojang.brigadier.builder.LiteralArgumentBuilder; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.tree.LiteralCommandNode; - -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.abstractions.AbstractPlatform; -import dev.jorel.commandapi.nms.NMS; import org.bukkit.command.*; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -42,6 +32,12 @@ import org.bukkit.permissions.Permission; import org.bukkit.plugin.java.JavaPlugin; +import java.io.File; +import java.io.IOException; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.util.*; + import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.*; // BukkitPlatform is an AbstractPlatform, but also needs all of the methods from @@ -51,7 +47,7 @@ @RequireField(in = CommandNode.class, name = "children", ofType = Map.class) @RequireField(in = CommandNode.class, name = "literals", ofType = Map.class) @RequireField(in = CommandNode.class, name = "arguments", ofType = Map.class) -public abstract class BukkitPlatform extends AbstractPlatform implements NMS { +public abstract class BukkitPlatform extends AbstractPlatform, CommandSender, Source> implements NMS { // References to utility classes private static BukkitPlatform instance; private PaperImplementations paper; @@ -457,39 +453,21 @@ public void updateRequirements(AbstractPlayer player) { } @Override - public Execution newConcreteExecution(List> argument, CustomCommandExecutor> executor) { - return new BukkitExecution(argument, executor); - } - - @Override - public AbstractMultiLiteralArgument newConcreteMultiLiteralArgument(String[] literals) { + public Argument newConcreteMultiLiteralArgument(String[] literals) { return new MultiLiteralArgument(literals); } @Override - public AbstractLiteralArgument newConcreteLiteralArgument(String literal) { + public Argument newConcreteLiteralArgument(String literal) { return new LiteralArgument(literal); } - // TODO: There's probably a much better place to put this, but I don't - // really fancy subclassing SafeOverrideableArgument for Bukkit specifically, - // so I'll dump it here and hope nobody cares because the CommandAPI doesn't - // really have a centralized "utils" class or anything - /** - *

- * Composes a S to a NamespacedKey mapping function to - * convert S to a String - * - * @param mapper the mapping function from S to - * NamespacedKey - * @return a composed function that converts S to - * String - */ - public static Function fromKey(Function mapper) { - return mapper.andThen(NamespacedKey::toString); + @Override + public CommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta) { + return new CommandAPICommand(meta); } - // TODO: Same as above, not really sure where else these Bukkit-specific methods could go. Also, it sounds like + // TODO: Not really sure where else these Bukkit-specific methods should go. Also, it sounds like // everything supports Adventure Components, so that isn't truly Bukkit-specific. Also, backwards compatibility: // these methods are expected to be called as CommandAPI.failWith... /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index 4ff4f93039..9c9eef3ee6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -1,8 +1,9 @@ package dev.jorel.commandapi; +import dev.jorel.commandapi.arguments.Argument; import org.bukkit.command.CommandSender; -public class CommandAPICommand extends AbstractCommandAPICommand implements BukkitExecutable { +public class CommandAPICommand extends AbstractCommandAPICommand, CommandSender> implements BukkitExecutable { public CommandAPICommand(CommandMetaData meta) { super(meta); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java index ee60878e25..57d50bda6f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java @@ -1,8 +1,9 @@ package dev.jorel.commandapi; +import dev.jorel.commandapi.arguments.Argument; import org.bukkit.command.CommandSender; -public class CommandTree extends AbstractCommandTree implements BukkitExecutable { +public class CommandTree extends AbstractCommandTree, CommandSender> implements BukkitExecutable { /** * Creates a main root node for a command tree with a given command name * diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java index 50448e6d61..615a4dd098 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java @@ -20,26 +20,21 @@ *******************************************************************************/ package dev.jorel.commandapi; -import java.lang.reflect.InvocationHandler; -import java.lang.reflect.Method; -import java.lang.reflect.Proxy; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - +import dev.jorel.commandapi.arguments.Argument; +import dev.jorel.commandapi.arguments.GreedyStringArgument; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.executors.NativeCommandExecutor; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.command.CommandSender; import org.bukkit.entity.LivingEntity; import org.bukkit.plugin.java.JavaPlugin; -import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.GreedyStringArgument; -import dev.jorel.commandapi.executors.NativeCommandExecutor; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.Method; +import java.lang.reflect.Proxy; +import java.util.*; /** * 'Simple' conversion of Plugin commands @@ -50,7 +45,7 @@ public final class Converter { private Converter() { } - private static final List> PLAIN_ARGUMENTS = List.of(new GreedyStringArgument("args")); + private static final List> PLAIN_ARGUMENTS = List.of(new GreedyStringArgument("args")); private static final Set CALLER_METHODS = Set.of("isPermissionSet", "hasPermission", "addAttachment", "removeAttachment", "recalculatePermissions", "getEffectivePermissions", "isOp", "setOp"); @@ -86,8 +81,7 @@ public static void convert(JavaPlugin plugin, String cmdName) { * @param cmdName The command to convert * @param arguments The arguments that should be used to parse this command */ - @SafeVarargs - public static void convert(JavaPlugin plugin, String cmdName, Argument... arguments) { + public static void convert(JavaPlugin plugin, String cmdName, Argument... arguments) { convertPluginCommand(plugin, cmdName, Arrays.asList(arguments)); } @@ -99,7 +93,7 @@ public static void convert(JavaPlugin plugin, String cmdName, Argument> arguments) { + public static void convert(JavaPlugin plugin, String cmdName, List> arguments) { convertPluginCommand(plugin, cmdName, arguments); } @@ -122,11 +116,11 @@ public static void convert(String cmdName) { * be "/set" * @param arguments The arguments that should be used to parse this command */ - public static void convert(String cmdName, List> arguments) { + public static void convert(String cmdName, List> arguments) { convertCommand(cmdName, arguments); } - private static void convertCommand(String commandName, List> arguments) { + private static void convertCommand(String commandName, List> arguments) { CommandAPI.logInfo("Converting command /" + commandName); // No arguments @@ -147,7 +141,7 @@ private static void convertCommand(String commandName, List> arguments) { + private static void convertPluginCommand(JavaPlugin plugin, String commandName, List> arguments) { CommandAPI.logInfo("Converting " + plugin.getName() + " command /" + commandName); /* Parse the commands */ Map cmdData = plugin.getDescription().getCommands().get(commandName); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java index bb034580ec..f5ce1d0233 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Tooltip.java @@ -20,17 +20,15 @@ *******************************************************************************/ package dev.jorel.commandapi; -import java.util.Collection; -import java.util.function.Function; - import com.mojang.brigadier.Message; - -import dev.jorel.commandapi.abstractions.AbstractTooltip; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.chat.ComponentSerializer; +import java.util.Collection; +import java.util.function.Function; + /** * This class represents a suggestion for an argument with a hover tooltip text * for that suggestion. This class is parameterized over some object S that diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java index eada5315c2..7ff035e5e9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java @@ -22,9 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.advancement.Advancement; import org.bukkit.command.CommandSender; @@ -32,21 +31,22 @@ * An argument that represents the Bukkit Advancement object * @apiNote Returns an {@link Advancement} object */ -public class AdvancementArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { - +public class AdvancementArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { + /** * Constructs an AdvancementArgument with a given node name + * * @param nodeName the name of the node for argument */ public AdvancementArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), BukkitPlatform.fromKey(Advancement::getKey)); + super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), fromKey(Advancement::getKey)); } @Override public Class getPrimitiveType() { return Advancement.class; } - + @Override public CommandAPIArgumentType getArgumentType() { return CommandAPIArgumentType.ADVANCEMENT; @@ -58,8 +58,8 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public Advancement parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Advancement parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getAdvancement(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java index c2b55d702e..2811652069 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java @@ -22,10 +22,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BaseHandler; -import dev.jorel.commandapi.BukkitExecutable; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; @@ -41,7 +40,7 @@ * * @apiNote Returns a {@link Component} object */ -public class AdventureChatArgument extends Argument implements IGreedyArgument, IPreviewable, BukkitExecutable { +public class AdventureChatArgument extends Argument implements IGreedyArgument, IPreviewable { private PreviewableFunction preview; private boolean usePreview; @@ -73,8 +72,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Component parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Component parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); Component component = ((BukkitPlatform) platform).getAdventureChat(cmdCtx, key); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java index a5795ee236..5266028a85 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java @@ -22,9 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; @@ -33,7 +32,7 @@ * An argument that represents raw JSON text * @apiNote Returns a {@link Component} object */ -public class AdventureChatComponentArgument extends Argument implements BukkitExecutable { +public class AdventureChatComponentArgument extends Argument { /** * Constructs a ChatComponnent argument with a given node name. Represents raw JSON text, used in Book MetaData, Chat and other various areas of Minecraft @@ -61,8 +60,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Component parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Component parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getAdventureChatComponent(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java index 049ad0d6e9..eca9385fb8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; /** @@ -37,7 +35,7 @@ * * @apiNote Returns a {@link float} */ -public class AngleArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class AngleArgument extends SafeOverrideableArgument { /** * Constructs an AngleArgument with a given node name @@ -59,7 +57,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, Object[] previousArgs) + public Float parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getAngle(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java new file mode 100644 index 0000000000..ed188b1fc3 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -0,0 +1,22 @@ +package dev.jorel.commandapi.arguments; + +import com.mojang.brigadier.arguments.ArgumentType; +import dev.jorel.commandapi.BukkitExecutable; +import org.bukkit.command.CommandSender; + +/** + * The core abstract class for Command API arguments + * + * @param The type of the underlying object that this argument casts to + */ +public abstract class Argument extends AbstractArgument, Argument, CommandSender> implements BukkitExecutable> { + /** + * Constructs an argument with a given NMS/brigadier type. + * + * @param nodeName the name to assign to this argument node + * @param rawType the NMS or brigadier type to be used for this argument + */ + protected Argument(String nodeName, ArgumentType rawType) { + super(nodeName, rawType); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java index 2daf0ad942..e2338f446c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java @@ -20,25 +20,22 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.EnumSet; - -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.Axis; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.Axis; import org.bukkit.command.CommandSender; +import java.util.EnumSet; + /** * An argument that represents x, y and z axes as an EnumSet of Axis * * @apiNote Returns a {@link EnumSet}{@code <}{@link Axis}{@code >} object */ @SuppressWarnings("rawtypes") -public class AxisArgument extends SafeOverrideableArgument, AxisArgument, CommandSender> implements BukkitExecutable { +public class AxisArgument extends SafeOverrideableArgument> { /** * Constructs an AxisArgument with a given node name. Represents the axes x, y @@ -62,8 +59,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public EnumSet parseArgument(AbstractPlatform platform, CommandContext cmdCtx, String key, - Object[] previousArgs) + public EnumSet parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, + Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getAxis(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java index e049623afc..10af6a87a9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java @@ -20,24 +20,21 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.function.Function; - -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.block.Biome; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.block.Biome; import org.bukkit.command.CommandSender; +import java.util.function.Function; + /** * An argument that represents the Bukkit Biome object * * @apiNote Returns a {@link Biome} object */ -public class BiomeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { +public class BiomeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * Constructs a BiomeArgument with a given node name. @@ -65,8 +62,8 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public Biome parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public Biome parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getBiome(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java index c55c8c6f91..e2d30c0626 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java @@ -20,25 +20,22 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.function.Predicate; - -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.block.Block; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.block.Block; import org.bukkit.command.CommandSender; +import java.util.function.Predicate; + /** * An argument that represents a Predicate<Block> * * @apiNote Returns a {@link Predicate}{@code <}{@link Block}{@code >} object */ @SuppressWarnings("rawtypes") -public class BlockPredicateArgument extends Argument implements BukkitExecutable { +public class BlockPredicateArgument extends Argument { /** * Constructs a BlockPredicateArgument with a given node name. Represents a @@ -61,8 +58,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Predicate parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public Predicate parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getBlockPredicate(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java index 91dc10db6f..2a7d8cebfc 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java @@ -20,14 +20,11 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.block.data.BlockData; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.block.data.BlockData; import org.bukkit.command.CommandSender; /** @@ -36,7 +33,7 @@ * @apiNote Returns a {@link BlockData} object * */ -public class BlockStateArgument extends Argument implements BukkitExecutable { +public class BlockStateArgument extends Argument { /** * Constructs a BlockStateArgument with a given node name. @@ -58,8 +55,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BlockData parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public BlockData parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getBlockState(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java index 6460eedc39..6197520175 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -20,21 +20,39 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; +import com.mojang.brigadier.arguments.BoolArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java booleans - * + * * @apiNote Returns a {@link boolean} */ -public class BooleanArgument extends AbstractBooleanArgument implements BukkitExecutable { +public class BooleanArgument extends SafeOverrideableArgument { /** * Constructs a Boolean argument with a given node name * * @param nodeName the name of the node for argument */ public BooleanArgument(String nodeName) { - super(nodeName); + super(nodeName, BoolArgumentType.bool(), String::valueOf); + } + + @Override + public Class getPrimitiveType() { + return boolean.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_BOOLEAN; + } + + @Override + public Boolean parseArgument(AbstractPlatform, CommandSender, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java index 478afbddcf..6610d86b13 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java @@ -20,30 +20,27 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.Optional; - -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.wrappers.PreviewableFunction; import net.md_5.bungee.api.chat.BaseComponent; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; + +import java.util.Optional; /** * An argument that represents chat with entity selectors * * @apiNote Returns a {@link BaseComponent}{@code []} object */ -public class ChatArgument extends Argument implements IGreedyArgument, IPreviewable, BukkitExecutable { +public class ChatArgument extends Argument implements IGreedyArgument, IPreviewable { private PreviewableFunction preview; private boolean usePreview; @@ -75,8 +72,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BaseComponent[] parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public BaseComponent[] parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); BaseComponent[] component = ((BukkitPlatform) platform).getChat(cmdCtx, key); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java index 9bc9a4906a..27f73d4062 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java @@ -20,24 +20,21 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.function.Function; - -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.ChatColor; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; +import java.util.function.Function; + /** * An argument that represents the Bukkit ChatColor object * * @apiNote Returns a {@link ChatColor} object */ -public class ChatColorArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class ChatColorArgument extends SafeOverrideableArgument { /** * Constructs a ChatColor argument with a given node name. Represents a color or @@ -60,8 +57,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ChatColor parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public ChatColor parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getChatColor(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java index e0203c1829..238ec688d9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.command.CommandSender; @@ -35,7 +33,7 @@ * * @apiNote Returns a {@link BaseComponent}{@code []} object */ -public class ChatComponentArgument extends Argument implements BukkitExecutable { +public class ChatComponentArgument extends Argument { /** * Constructs a ChatComponnent argument with a given node name. Represents raw @@ -66,8 +64,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BaseComponent[] parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public BaseComponent[] parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getChatComponent(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index dd11490ec0..41259bab7f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -20,19 +20,16 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.command.CommandSender; - import com.mojang.brigadier.LiteralMessage; import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; - -import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import dev.jorel.commandapi.CommandAPI; +import org.bukkit.command.CommandSender; /** * An argument that represents any custom object @@ -43,10 +40,10 @@ * {@link IntegerArgument} * @apiNote Returns a {@link T} object */ -public class CustomArgument extends Argument, CommandSender> implements BukkitExecutable> { +public class CustomArgument extends Argument { private final CustomArgumentInfoParser infoParser; - private final Argument base; + private final Argument base; /** * Creates a CustomArgument with a valid parser, defaults to non-keyed argument @@ -84,10 +81,10 @@ public CustomArgument(String nodeName, CustomArgumentInfoParser parse public CustomArgument(String nodeName, CustomArgumentInfoParser parser, boolean keyed) { super(nodeName, keyed ? StringArgumentType.string() : BukkitPlatform.get()._ArgumentMinecraftKeyRegistered()); - this.base = (Argument) new DummyArgument(nodeName, keyed); + this.base = (Argument) new DummyArgument(nodeName, keyed); this.infoParser = (CustomArgumentInfoParser) parser; CommandAPI.logWarning( - "Registering CustomArgument " + nodeName + " with legacy registeration method. This may not work!\n" + "Registering CustomArgument " + nodeName + " with legacy registration method. This may not work!\n" + "Consider using new CustomArgument(Argument, CustomArgumentInfoParser)"); } @@ -111,7 +108,7 @@ public CustomArgument(String nodeName, CustomArgumentInfoParser parse * {@code Integer} for an {@link IntegerArgument} *

*/ - public CustomArgument(Argument base, CustomArgumentInfoParser parser) { + public CustomArgument(Argument base, CustomArgumentInfoParser parser) { super(base.getNodeName(), base.getRawType()); if (base instanceof LiteralArgument || base instanceof MultiLiteralArgument) { throw new IllegalArgumentException(base.getClass().getSimpleName() + " is not a suitable base argument type for a CustomArgument"); @@ -131,8 +128,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public T parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public T parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the raw input and parsed input final String customresult = BaseHandler.getRawArgumentInput(cmdCtx, key); @@ -359,7 +356,7 @@ public static interface CustomArgumentInfoParser { } @Deprecated - private static class DummyArgument extends Argument { + private static class DummyArgument extends Argument { private final boolean keyed; @@ -380,8 +377,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public String parseArgument(AbstractPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return keyed ? ((BukkitPlatform) platform).getMinecraftKey(cmdCtx, key).toString() : cmdCtx.getArgument(key, String.class); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java index f3b9941237..d91884f654 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -20,7 +20,11 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; +import com.mojang.brigadier.arguments.DoubleArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.InvalidRangeException; import org.bukkit.command.CommandSender; /** @@ -28,15 +32,14 @@ * * @apiNote Returns a {@link double} */ -public class DoubleArgument extends AbstractDoubleArgument implements BukkitExecutable { - +public class DoubleArgument extends SafeOverrideableArgument { /** * A double argument * * @param nodeName the name of the node for this argument */ public DoubleArgument(String nodeName) { - super(nodeName); + super(nodeName, DoubleArgumentType.doubleArg(), String::valueOf); } /** @@ -46,7 +49,7 @@ public DoubleArgument(String nodeName) { * @param min The minimum value this argument can take (inclusive) */ public DoubleArgument(String nodeName, double min) { - super(nodeName, min); + super(nodeName, DoubleArgumentType.doubleArg(min), String::valueOf); } /** @@ -57,6 +60,24 @@ public DoubleArgument(String nodeName, double min) { * @param max The maximum value this argument can take (inclusive) */ public DoubleArgument(String nodeName, double min, double max) { - super(nodeName, min, max); + super(nodeName, DoubleArgumentType.doubleArg(min, max), String::valueOf); + if (max < min) { + throw new InvalidRangeException(); + } + } + + @Override + public Class getPrimitiveType() { + return double.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_DOUBLE; + } + + @Override + public Double parseArgument(AbstractPlatform, CommandSender, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java index b85cc9c5fc..752af5c4bb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java @@ -20,29 +20,26 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.command.CommandSender; -import org.bukkit.enchantments.Enchantment; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; +import org.bukkit.enchantments.Enchantment; /** * An argument that represents the Bukkit Enchantment object * * @apiNote Returns an {@link Enchantment} object */ -public class EnchantmentArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class EnchantmentArgument extends SafeOverrideableArgument { /** * An Enchantment argument. Represents an enchantment for items * @param nodeName the name of the node for this argument */ public EnchantmentArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentEnchantment(), BukkitPlatform.fromKey(Enchantment::getKey)); + super(nodeName, BukkitPlatform.get()._ArgumentEnchantment(), fromKey(Enchantment::getKey)); } @Override @@ -56,8 +53,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Enchantment parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Enchantment parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getEnchantment(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java index 084ebf7411..c116709e88 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java @@ -20,27 +20,24 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; - -import dev.jorel.commandapi.BukkitExecutable; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.BukkitPlatform; import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; /** * An argument that represents a selection of entities * * @apiNote The return type depends on the provided {@link EntitySelector} */ -public class EntitySelectorArgument extends Argument, CommandSender> implements BukkitExecutable> { +public class EntitySelectorArgument extends Argument { private final EntitySelector selector; @@ -92,8 +89,8 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public T parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public T parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return (T) ((BukkitPlatform) platform).getEntitySelector(cmdCtx, key, selector); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java index 960e9bd009..84f3487f56 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java @@ -20,27 +20,24 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.EntityType; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.EntityType; /** * An argument that represents the Bukkit EntityType object */ -public class EntityTypeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { +public class EntityTypeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * An EntityType argument. Represents the type of an Entity * @param nodeName the name of the node for this argument */ public EntityTypeArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentEntitySummon(), BukkitPlatform.fromKey(EntityType::getKey)); + super(nodeName, BukkitPlatform.get()._ArgumentEntitySummon(), fromKey(EntityType::getKey)); } @Override @@ -59,8 +56,8 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public EntityType parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public EntityType parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getEntityType(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java index f81688bd5f..9d27aae4ed 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java @@ -20,22 +20,19 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.function.Function; - -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.World.Environment; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.World.Environment; import org.bukkit.command.CommandSender; +import java.util.function.Function; + /** * An argument that represents the Bukkit Environment object */ -public class EnvironmentArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class EnvironmentArgument extends SafeOverrideableArgument { /** * An Environment argument. Represents Bukkit's Environment object @@ -56,8 +53,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Environment parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Environment parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getDimension(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java index e5701380c2..44feb81bb1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -20,20 +20,24 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; +import com.mojang.brigadier.arguments.FloatArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.InvalidRangeException; import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java floats */ -public class FloatArgument extends AbstractFloatArgument implements BukkitExecutable { +public class FloatArgument extends SafeOverrideableArgument { /** * A float argument * * @param nodeName the name of the node for this argument */ public FloatArgument(String nodeName) { - super(nodeName); + super(nodeName, FloatArgumentType.floatArg(), String::valueOf); } /** @@ -43,7 +47,7 @@ public FloatArgument(String nodeName) { * @param min The minimum value this argument can take (inclusive) */ public FloatArgument(String nodeName, float min) { - super(nodeName, min); + super(nodeName, FloatArgumentType.floatArg(min), String::valueOf); } /** @@ -54,6 +58,25 @@ public FloatArgument(String nodeName, float min) { * @param max The maximum value this argument can take (inclusive) */ public FloatArgument(String nodeName, float min, float max) { - super(nodeName, min, max); + super(nodeName, FloatArgumentType.floatArg(min, max), String::valueOf); + if (max < min) { + throw new InvalidRangeException(); + } } -} + + @Override + public Class getPrimitiveType() { + return float.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_FLOAT; + } + + @Override + public Float parseArgument(AbstractPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); + } +} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java index 726e9c4e50..003ddc6f5b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java @@ -22,17 +22,15 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.FloatRange; import org.bukkit.command.CommandSender; /** * An argument that represents a range of float values */ -public class FloatRangeArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class FloatRangeArgument extends SafeOverrideableArgument { /** * A FloatRange argument that represents a range of floating-point values @@ -53,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public FloatRange parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public FloatRange parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getFloatRange(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java index 6374167bb0..1806faae56 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java @@ -20,21 +20,18 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.NamespacedKey; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.FunctionWrapper; +import org.bukkit.NamespacedKey; import org.bukkit.command.CommandSender; /** * An argument that represents Minecraft functions and tags */ -public class FunctionArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { +public class FunctionArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * A Minecraft function. Plugin commands which plan to be used INSIDE a Minecraft @@ -43,7 +40,7 @@ public class FunctionArgument extends SafeOverrideableArgument n)); + super(nodeName, BukkitPlatform.get()._ArgumentTag(), fromKey(n -> n)); } @Override @@ -62,8 +59,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public FunctionWrapper[] parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public FunctionWrapper[] parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getFunction(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java index c852e63658..c046ed64da 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -20,19 +20,38 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; import org.bukkit.command.CommandSender; /** * An argument that represents arbitrary strings */ -public class GreedyStringArgument extends AbstractGreedyStringArgument implements BukkitExecutable { +public class GreedyStringArgument extends SafeOverrideableArgument implements IGreedyArgument { /** * A string argument for a string of any length * * @param nodeName the name of the node for this argument */ public GreedyStringArgument(String nodeName) { - super(nodeName); + super(nodeName, StringArgumentType.greedyString(), s -> s); + } + + @Override + public Class getPrimitiveType() { + return String.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_GREEDY_STRING; + } + + @Override + public String parseArgument(AbstractPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java index 9274a646ba..0ce33a9dd8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -20,13 +20,20 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; +import com.mojang.brigadier.arguments.IntegerArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.InvalidRangeException; import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java ints */ -public class IntegerArgument extends AbstractIntegerArgument implements BukkitExecutable { +public class IntegerArgument extends SafeOverrideableArgument { + private IntegerArgument(String nodeName, IntegerArgumentType type) { + super(nodeName, type, String::valueOf); + } /** * An integer argument @@ -34,7 +41,7 @@ public class IntegerArgument extends AbstractIntegerArgument getPrimitiveType() { + return int.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_INTEGER; + } + + @Override + public Integer parseArgument(AbstractPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java index 0fdac7d49f..e1a0c4ad11 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java @@ -22,17 +22,15 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.IntegerRange; import org.bukkit.command.CommandSender; /** * An argument that represents a range of integer values */ -public class IntegerRangeArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class IntegerRangeArgument extends SafeOverrideableArgument { /** * An IntegerRange argument. Represents a range of whole numbers @@ -53,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public IntegerRange parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public IntegerRange parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getIntRange(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java index 79de8ea88a..391c7cd2c6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java @@ -20,20 +20,17 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.command.CommandSender; -import org.bukkit.inventory.ItemStack; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; +import org.bukkit.inventory.ItemStack; /** * An argument that represents the Bukkit ItemStack object */ -public class ItemStackArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class ItemStackArgument extends SafeOverrideableArgument { /** * An ItemStack argument. Always returns an itemstack of size 1 @@ -54,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ItemStack parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public ItemStack parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getItemStack(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java index d9ec73ffec..fd58212c94 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java @@ -20,23 +20,20 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.function.Predicate; - -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.command.CommandSender; -import org.bukkit.inventory.ItemStack; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; +import org.bukkit.inventory.ItemStack; + +import java.util.function.Predicate; /** * An argument that represents a Predicate<ItemStack> */ @SuppressWarnings("rawtypes") -public class ItemStackPredicateArgument extends Argument implements BukkitExecutable { +public class ItemStackPredicateArgument extends Argument { /** * A ItemStack Predicate argument. Represents a predicate for itemstacks @@ -57,8 +54,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Predicate parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Predicate parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getItemStackPredicate(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java index c27c1ee632..bd26a39d66 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgument.java @@ -26,10 +26,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.IStringTooltip; import dev.jorel.commandapi.StringTooltip; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; import java.util.*; @@ -42,7 +41,7 @@ * @param the type that this list argument generates a list of. */ @SuppressWarnings("rawtypes") -public class ListArgument extends Argument, CommandSender> implements IGreedyArgument, BukkitExecutable> { +public class ListArgument extends Argument implements IGreedyArgument { private final String delimiter; private final boolean allowDuplicates; @@ -124,8 +123,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public List parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public List parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the list of values which this can take Map values = new HashMap<>(); for (T object : supplier.apply(platform.getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource())) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index d4a2f8dfcd..e83f978b8b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -20,19 +20,66 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.BadLiteralException; import org.bukkit.command.CommandSender; /** * A pseudo-argument representing a single literal string */ -public class LiteralArgument extends AbstractLiteralArgument implements BukkitExecutable { +public class LiteralArgument extends Argument implements ILiteralArgument> { + private final String literal; + /** * A literal argument. Only takes one string value which cannot be modified * * @param literal the string literal that this argument will represent */ - public LiteralArgument(String literal) { - super(literal); + public LiteralArgument(final String literal) { + /* + * The literal argument builder is NOT technically an argument. + * Therefore, it doesn't have an ArgumentType. + * + * This is a wrapper for the object "LiteralArgumentBuilder<>" + */ + super(literal, null); + + if (literal == null) { + throw new BadLiteralException(true); + } + if (literal.isEmpty()) { + throw new BadLiteralException(false); + } + this.literal = literal; + this.setListed(false); + } + + + @Override + public Class getPrimitiveType() { + return String.class; + } + + /** + * Returns the literal string represented by this argument + * + * @return the literal string represented by this argument + */ + @Override + public String getLiteral() { + return literal; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.LITERAL; + } + + @Override + public String parseArgument(AbstractPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return literal; } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java index 2280841eea..3c00de1ef4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java @@ -20,22 +20,19 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.Location; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.Location2D; +import org.bukkit.Location; import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit {@link Location} object in x and z directions * @apiNote Returns a {@link Location2D} object */ -public class Location2DArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class Location2DArgument extends SafeOverrideableArgument { /** * A Location argument. Represents Minecraft locations in 2D space. Defaults to {@link LocationType#PRECISE_POSITION} @@ -79,8 +76,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Location2D parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Location2D parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return isPrecise ? ((BukkitPlatform) platform).getLocation2DPrecise(cmdCtx, key) : ((BukkitPlatform) platform).getLocation2DBlock(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java index 13f4a21a21..a70eb6f215 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java @@ -20,21 +20,18 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.Location; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.Location; import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit {@link Location} object * @apiNote Returns a {@link Location} object */ -public class LocationArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class LocationArgument extends SafeOverrideableArgument { /** * A Location argument. Represents Minecraft locations. Defaults to {@link LocationType#PRECISE_POSITION} @@ -79,8 +76,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Location parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Location parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return isPrecise ? ((BukkitPlatform) platform).getLocationPrecise(cmdCtx, key) : ((BukkitPlatform) platform).getLocationBlock(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java index faa95898b4..2ed0b83fb9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -20,30 +20,34 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; +import com.mojang.brigadier.arguments.LongArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.InvalidRangeException; import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java longs */ -public class LongArgument extends AbstractLongArgument implements BukkitExecutable { +public class LongArgument extends SafeOverrideableArgument { /** * A long argument * * @param nodeName the name of the node for this argument */ public LongArgument(String nodeName) { - super(nodeName); + super(nodeName, LongArgumentType.longArg(), String::valueOf); } /** * A long argument with a minimum value * * @param nodeName the name of the node for this argument - * @param value The minimum value this argument can take (inclusive) + * @param min The minimum value this argument can take (inclusive) */ - public LongArgument(String nodeName, long value) { - super(nodeName, value); + public LongArgument(String nodeName, long min) { + super(nodeName, LongArgumentType.longArg(min), String::valueOf); } /** @@ -54,6 +58,25 @@ public LongArgument(String nodeName, long value) { * @param max The maximum value this argument can take (inclusive) */ public LongArgument(String nodeName, long min, long max) { - super(nodeName, min, max); + super(nodeName, LongArgumentType.longArg(min, max), String::valueOf); + if(max < min) { + throw new InvalidRangeException(); + } + } + + @Override + public Class getPrimitiveType() { + return long.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_LONG; + } + + @Override + public Long parseArgument(AbstractPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java index f73a32ddb1..5d37934bb7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java @@ -20,28 +20,25 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.Keyed; -import org.bukkit.command.CommandSender; -import org.bukkit.loot.LootTable; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.Keyed; +import org.bukkit.command.CommandSender; +import org.bukkit.loot.LootTable; /** * An argument that represents the Bukkit LootTable object */ -public class LootTableArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { +public class LootTableArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * A LootTable argument that represents a Bukkit LootTable. * @param nodeName the name of the node for this argument */ public LootTableArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), BukkitPlatform.fromKey(Keyed::getKey)); + super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), fromKey(Keyed::getKey)); } @Override @@ -60,8 +57,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public LootTable parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public LootTable parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getLootTable(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java index 8413af3c1d..38989582d6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java @@ -22,17 +22,15 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.MathOperation; import org.bukkit.command.CommandSender; /** * An argument that represents Minecraft scoreboard math operations */ -public class MathOperationArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class MathOperationArgument extends SafeOverrideableArgument { /** * A MathOperation argument. Represents a math operation (e.g. addition, subtraction etc.) @@ -53,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public MathOperation parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public MathOperation parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getMathOperation(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index cc49692266..ab9168c416 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -20,18 +20,55 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.BadLiteralException; import org.bukkit.command.CommandSender; /** * An argument that represents multiple LiteralArguments */ -public class MultiLiteralArgument extends AbstractMultiLiteralArgument implements BukkitExecutable { +public class MultiLiteralArgument extends Argument implements IMultiLiteralArgument> { + private final String[] literals; + /** * A multiliteral argument. Takes in string literals which cannot be modified * @param literals the literals that this argument represents */ - public MultiLiteralArgument(String... literals) { - super(literals); + public MultiLiteralArgument(final String... literals) { + super(null, null); + if(literals == null) { + throw new BadLiteralException(true); + } + if(literals.length == 0) { + throw new BadLiteralException(false); + } + this.literals = literals; + } + + @Override + public Class getPrimitiveType() { + return String.class; + } + + /** + * Returns the literals that are present in this argument + * @return the literals that are present in this argument + */ + @Override + public String[] getLiterals() { + return literals; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.MULTI_LITERAL; + } + + @Override + public String parseArgument(AbstractPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + throw new IllegalStateException("Cannot parse MultiLiteralArgument"); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java index 573d8c721c..748329d716 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java @@ -22,17 +22,15 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; /** * An argument that represents an NBTContainer from the NBT API */ -public class NBTCompoundArgument extends SafeOverrideableArgument, CommandSender> implements BukkitExecutable> { +public class NBTCompoundArgument extends SafeOverrideableArgument { /** * An NBT Compound Argument. Represents Minecraft's NBT Compound Tag using the @@ -61,8 +59,8 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public NBTContainer parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public NBTContainer parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return (NBTContainer) ((BukkitPlatform) platform).getNBTCompound(cmdCtx, key, CommandAPI.getConfiguration().getNBTContainerConstructor()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java index 6893b8c2a1..c3bfe274d0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java @@ -20,14 +20,11 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.NamespacedKey; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.NamespacedKey; import org.bukkit.command.CommandSender; /** @@ -37,7 +34,7 @@ * {@code .} (dot). The key can also contain {@code /} (forward slash) * @apiNote Returns a {@link NamespacedKey} object */ -public class NamespacedKeyArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class NamespacedKeyArgument extends SafeOverrideableArgument { /** * Constructs a MinecraftKeyArgument with a given node name. @@ -60,8 +57,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public NamespacedKey parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public NamespacedKey parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getMinecraftKey(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java index 2e168f7027..9518cde006 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java @@ -20,20 +20,17 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.command.CommandSender; -import org.bukkit.scoreboard.Objective; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; +import org.bukkit.scoreboard.Objective; /** * An argument that represents the name of a scoreboard objective */ -public class ObjectiveArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class ObjectiveArgument extends SafeOverrideableArgument { /** * An Objective argument. Represents a scoreboard objective @@ -54,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getObjective(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java index fd9a153af9..32e6077091 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java @@ -22,16 +22,14 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; /** * An argument that represents the name of an objective criteria */ -public class ObjectiveCriteriaArgument extends Argument implements BukkitExecutable { +public class ObjectiveCriteriaArgument extends Argument { /** * An Objective criteria argument. Represents an objective criteria @@ -52,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getObjectiveCriteria(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java index 38647e73cd..32b8781d9f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java @@ -20,20 +20,17 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.OfflinePlayer; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Player object */ -public class OfflinePlayerArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class OfflinePlayerArgument extends SafeOverrideableArgument { /** * A Player argument. Produces a single player, regardless of whether @@ -56,8 +53,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public OfflinePlayer parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public OfflinePlayer parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getOfflinePlayer(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java index c535882adf..29e134992c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.ParticleData; import org.bukkit.command.CommandSender; @@ -33,7 +31,7 @@ * An argument that represents the Bukkit Particle object */ @SuppressWarnings("rawtypes") -public class ParticleArgument extends SafeOverrideableArgument, ParticleArgument, CommandSender> implements BukkitExecutable { +public class ParticleArgument extends SafeOverrideableArgument> { /** * A Particle argument. Represents Minecraft particles @@ -54,8 +52,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ParticleData parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public ParticleData parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getParticle(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java index 3d16f89a78..b0b12a7a77 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java @@ -20,20 +20,17 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; /** * An argument that represents the Bukkit Player object */ -public class PlayerArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class PlayerArgument extends SafeOverrideableArgument { /** * A Player argument. Produces a single player, regardless of whether @@ -56,8 +53,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Player parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Player parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getPlayer(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java index 493124ba51..2d7afd5f0b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java @@ -20,20 +20,17 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.command.CommandSender; -import org.bukkit.potion.PotionEffectType; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; +import org.bukkit.potion.PotionEffectType; /** * An argument that represents the Bukkit PotionEffectType object */ -public class PotionEffectArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class PotionEffectArgument extends SafeOverrideableArgument { /** * A PotionEffect argument. Represents status/potion effects @@ -54,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public PotionEffectType parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public PotionEffectType parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getPotionEffect(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java index 4b0ac2d86c..1ef463b13b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java @@ -20,28 +20,25 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.Keyed; -import org.bukkit.command.CommandSender; -import org.bukkit.inventory.Recipe; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.Keyed; +import org.bukkit.command.CommandSender; +import org.bukkit.inventory.Recipe; /** * An argument that represents the Bukkit Recipe object */ -public class RecipeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { +public class RecipeArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * A Recipe argument. Represents a Bukkit Recipe or ComplexRecipe * @param nodeName the name of the node for this argument */ public RecipeArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), BukkitPlatform.fromKey((Recipe r) -> ((Keyed) r).getKey())); + super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), fromKey((Recipe r) -> ((Keyed) r).getKey())); } @Override @@ -60,8 +57,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Recipe parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Recipe parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getRecipe(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java index fb797a8993..ecf837f5ef 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java @@ -22,17 +22,15 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.Rotation; import org.bukkit.command.CommandSender; /** * An argument that represents rotation as pitch and yaw */ -public class RotationArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class RotationArgument extends SafeOverrideableArgument { /** * A Rotation argument. Represents pitch and yaw @@ -53,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Rotation parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Rotation parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getRotation(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java new file mode 100644 index 0000000000..9e4ac810f3 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java @@ -0,0 +1,51 @@ +package dev.jorel.commandapi.arguments; + +import com.mojang.brigadier.arguments.ArgumentType; +import org.bukkit.NamespacedKey; +import org.bukkit.command.CommandSender; + +import java.util.function.Function; + +/** + * An interface declaring methods required to override argument suggestions + * + * @param The type of the underlying object that this argument casts to + * @param A custom type which is represented by this argument. For example, + * a {@link StringArgument} will have a custom type + * String + */ +public abstract class SafeOverrideableArgument extends Argument implements ISafeOverrideableArgument, Argument, CommandSender> { + private final Function mapper; + + /** + * Instantiates this argument and assigns the mapper to the provided mapper + * + * @param nodeName the node name of this argument + * @param rawType the NMS raw argument type of this argument + * @param mapper the mapping function that maps this argument type to a string + * for suggestions + */ + protected SafeOverrideableArgument(String nodeName, ArgumentType rawType, Function mapper) { + super(nodeName, rawType); + this.mapper = mapper; + } + + @Override + public Function getMapper() { + return mapper; + } + + /** + *

+ * Composes a S to a NamespacedKey mapping function to + * convert S to a String + * + * @param mapper the mapping function from S to + * NamespacedKey + * @return a composed function that converts S to + * String + */ + public static Function fromKey(Function mapper) { + return mapper.andThen(NamespacedKey::toString); + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java index 02733649af..33afca4b08 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java @@ -20,20 +20,18 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.Collection; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; +import java.util.Collection; + /** * An argument that represents a scoreholder's name, or a collection of scoreholder names */ -public class ScoreHolderArgument extends Argument, CommandSender> implements BukkitExecutable> { +public class ScoreHolderArgument extends Argument { private final boolean single; @@ -77,8 +75,8 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public T parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public T parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return (T) (single ? ((BukkitPlatform) platform).getScoreHolderSingle(cmdCtx, key) : ((BukkitPlatform) platform).getScoreHolderMultiple(cmdCtx, key)); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java index 547f075b4d..3ea19367a5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java @@ -22,17 +22,15 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.ScoreboardSlot; import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit ScoreboardSlot object */ -public class ScoreboardSlotArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class ScoreboardSlotArgument extends SafeOverrideableArgument { /** * A Display slot argument. Represents scoreboard slots @@ -53,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ScoreboardSlot parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public ScoreboardSlot parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getScoreboardSlot(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java index d84e11ea0a..98031b0551 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java @@ -20,20 +20,17 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.Sound; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.Sound; import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Sound object */ -public class SoundArgument extends SafeOverrideableArgument implements ICustomProvidedArgument, BukkitExecutable { +public class SoundArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * A Sound argument. Represents Bukkit's Sound object @@ -59,8 +56,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Sound parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Sound parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getSound(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java index 1e111e361b..f687ee1ae0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -20,19 +20,37 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; import org.bukkit.command.CommandSender; /** * An argument that represents a simple String */ -public class StringArgument extends AbstractStringArgument implements BukkitExecutable { +public class StringArgument extends Argument { /** * A string argument for one word - * * @param nodeName the name of the node for this argument */ public StringArgument(String nodeName) { - super(nodeName); + super(nodeName, StringArgumentType.word()); + } + + @Override + public Class getPrimitiveType() { + return String.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_STRING; + } + + @Override + public String parseArgument(AbstractPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java index 0bdb654953..bab0c22d58 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java @@ -20,20 +20,17 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; -import org.bukkit.command.CommandSender; -import org.bukkit.scoreboard.Team; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import org.bukkit.command.CommandSender; +import org.bukkit.scoreboard.Team; /** * An argument that represents the name of a scoreboard Team */ -public class TeamArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class TeamArgument extends SafeOverrideableArgument { /** * A Team argument. Represents a scoreboard Team @@ -54,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getTeam(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java index 272682850b..662a18000f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -20,19 +20,38 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.BukkitExecutable; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; import org.bukkit.command.CommandSender; /** * An argument that represents text, encased in quotes */ -public class TextArgument extends AbstractTextArgument implements BukkitExecutable { +public class TextArgument extends Argument { /** * A string argument for one word, or multiple words encased in quotes * * @param nodeName the name of the node for this argument */ public TextArgument(String nodeName) { - super(nodeName); + super(nodeName, StringArgumentType.string()); + } + + @Override + public Class getPrimitiveType() { + return String.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_TEXT; + } + + @Override + public String parseArgument(AbstractPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java index d9ecf90c56..26b9b8e6f0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java @@ -22,17 +22,15 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.wrappers.Time; import org.bukkit.command.CommandSender; /** * An argument that represents a duration of time in ticks */ -public class TimeArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class TimeArgument extends SafeOverrideableArgument { /** * A Time argument. Represents the number of in game ticks @@ -53,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Integer parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getTime(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java index 334c044c97..cf82c01a92 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java @@ -20,20 +20,18 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.UUID; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.BukkitExecutable; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import org.bukkit.command.CommandSender; +import java.util.UUID; + /** * An argument that represents a UUID */ -public class UUIDArgument extends SafeOverrideableArgument implements BukkitExecutable { +public class UUIDArgument extends SafeOverrideableArgument { /** * A UUID argument. Represents an in-game entity UUID @@ -54,8 +52,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public UUID parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public UUID parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((BukkitPlatform) platform).getUUID(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java index 8d7c7432d2..79b95ca5e2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitBlockCommandSender.java @@ -1,6 +1,5 @@ package dev.jorel.commandapi.commandsenders; -import dev.jorel.commandapi.abstractions.AbstractBlockCommandSender; import org.bukkit.command.BlockCommandSender; public class BukkitBlockCommandSender extends AbstractBlockCommandSender implements BukkitCommandSender { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java index aa4a3552c6..47a868269f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitCommandSender.java @@ -1,6 +1,5 @@ package dev.jorel.commandapi.commandsenders; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; import org.bukkit.command.CommandSender; public interface BukkitCommandSender extends AbstractCommandSender { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java index 7819ff3ab8..c052bdc342 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitConsoleCommandSender.java @@ -2,8 +2,6 @@ import org.bukkit.command.ConsoleCommandSender; -import dev.jorel.commandapi.abstractions.AbstractConsoleCommandSender; - public class BukkitConsoleCommandSender extends AbstractConsoleCommandSender implements BukkitCommandSender { private final ConsoleCommandSender sender; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java index b42c74c06c..2d19dd09d9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitEntity.java @@ -1,6 +1,5 @@ package dev.jorel.commandapi.commandsenders; -import dev.jorel.commandapi.abstractions.AbstractEntity; import org.bukkit.entity.Entity; public class BukkitEntity extends AbstractEntity implements BukkitCommandSender { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java index ac33522f2c..57116378e7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitNativeProxyCommandSender.java @@ -1,5 +1,4 @@ package dev.jorel.commandapi.commandsenders; -import dev.jorel.commandapi.abstractions.AbstractPlayer; import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; public class BukkitNativeProxyCommandSender extends AbstractPlayer implements BukkitCommandSender { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java index 23e9949470..e64d5c953a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitPlayer.java @@ -1,8 +1,6 @@ package dev.jorel.commandapi.commandsenders; import org.bukkit.entity.Player; -import dev.jorel.commandapi.abstractions.AbstractPlayer; - public class BukkitPlayer extends AbstractPlayer implements BukkitCommandSender { private final Player player; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java index 3655ca8ebb..907eedc8da 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/commandsenders/BukkitProxiedCommandSender.java @@ -1,8 +1,6 @@ package dev.jorel.commandapi.commandsenders; import org.bukkit.command.ProxiedCommandSender; -import dev.jorel.commandapi.abstractions.AbstractPlayer; - public class BukkitProxiedCommandSender extends AbstractPlayer implements BukkitCommandSender { private final ProxiedCommandSender proxySender; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index d68f647838..eccfc623f2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -1,46 +1,45 @@ package dev.jorel.commandapi.nms; -import java.io.File; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - import com.mojang.brigadier.Message; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.*; -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.exceptions.AngleArgumentException; +import dev.jorel.commandapi.exceptions.BiomeArgumentException; +import dev.jorel.commandapi.exceptions.TimeArgumentException; +import dev.jorel.commandapi.exceptions.UUIDArgumentException; +import dev.jorel.commandapi.preprocessor.Differs; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.*; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_13_R2.*; +import net.minecraft.server.v1_13_R2.CriterionConditionValue.c; +import net.minecraft.server.v1_13_R2.EnumDirection.EnumAxis; +import net.minecraft.server.v1_13_R2.IChatBaseComponent.ChatSerializer; import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Sound; +import org.bukkit.*; import org.bukkit.World; +import org.bukkit.Particle.DustOptions; import org.bukkit.World.Environment; import org.bukkit.block.Biome; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; import org.bukkit.command.*; -import org.bukkit.craftbukkit.v1_13_R2.CraftLootTable; -import org.bukkit.craftbukkit.v1_13_R2.CraftParticle; -import org.bukkit.craftbukkit.v1_13_R2.CraftServer; -import org.bukkit.craftbukkit.v1_13_R2.CraftSound; -import org.bukkit.craftbukkit.v1_13_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_13_R2.*; import org.bukkit.craftbukkit.v1_13_R2.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_13_R2.command.CraftBlockCommandSender; import org.bukkit.craftbukkit.v1_13_R2.command.ProxiedNativeCommandSender; @@ -61,96 +60,13 @@ import org.bukkit.inventory.Recipe; import org.bukkit.potion.PotionEffectType; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.BaseHandler; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.TimeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_13_R2.Advancement; -import net.minecraft.server.v1_13_R2.ArgumentBlockPredicate; -import net.minecraft.server.v1_13_R2.ArgumentChat; -import net.minecraft.server.v1_13_R2.ArgumentChatComponent; -import net.minecraft.server.v1_13_R2.ArgumentChatFormat; -import net.minecraft.server.v1_13_R2.ArgumentCriterionValue; -import net.minecraft.server.v1_13_R2.ArgumentDimension; -import net.minecraft.server.v1_13_R2.ArgumentEnchantment; -import net.minecraft.server.v1_13_R2.ArgumentEntity; -import net.minecraft.server.v1_13_R2.ArgumentEntitySummon; -import net.minecraft.server.v1_13_R2.ArgumentItemPredicate; -import net.minecraft.server.v1_13_R2.ArgumentItemStack; -import net.minecraft.server.v1_13_R2.ArgumentMathOperation; -import net.minecraft.server.v1_13_R2.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_13_R2.ArgumentMobEffect; -import net.minecraft.server.v1_13_R2.ArgumentNBTTag; -import net.minecraft.server.v1_13_R2.ArgumentParticle; -import net.minecraft.server.v1_13_R2.ArgumentPosition; -import net.minecraft.server.v1_13_R2.ArgumentProfile; -import net.minecraft.server.v1_13_R2.ArgumentRotation; -import net.minecraft.server.v1_13_R2.ArgumentRotationAxis; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardObjective; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardSlot; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardTeam; -import net.minecraft.server.v1_13_R2.ArgumentScoreholder; -import net.minecraft.server.v1_13_R2.ArgumentTag; -import net.minecraft.server.v1_13_R2.ArgumentTile; -import net.minecraft.server.v1_13_R2.ArgumentVec2; -import net.minecraft.server.v1_13_R2.ArgumentVec2I; -import net.minecraft.server.v1_13_R2.ArgumentVec3; -import net.minecraft.server.v1_13_R2.BlockPosition; -import net.minecraft.server.v1_13_R2.CommandListenerWrapper; -import net.minecraft.server.v1_13_R2.CompletionProviders; -import net.minecraft.server.v1_13_R2.CriterionConditionValue; -import net.minecraft.server.v1_13_R2.CriterionConditionValue.c; -import net.minecraft.server.v1_13_R2.CustomFunction; -import net.minecraft.server.v1_13_R2.CustomFunctionData; -import net.minecraft.server.v1_13_R2.DedicatedServer; -import net.minecraft.server.v1_13_R2.DimensionManager; -import net.minecraft.server.v1_13_R2.Entity; -import net.minecraft.server.v1_13_R2.EntityPlayer; -import net.minecraft.server.v1_13_R2.EntitySelector; -import net.minecraft.server.v1_13_R2.EnumDirection.EnumAxis; -import net.minecraft.server.v1_13_R2.IBlockData; -import net.minecraft.server.v1_13_R2.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_13_R2.ICompletionProvider; -import net.minecraft.server.v1_13_R2.IRegistry; -import net.minecraft.server.v1_13_R2.ItemStack; -import net.minecraft.server.v1_13_R2.LootTable; -import net.minecraft.server.v1_13_R2.LootTableRegistry; -import net.minecraft.server.v1_13_R2.MinecraftKey; -import net.minecraft.server.v1_13_R2.MinecraftServer; -import net.minecraft.server.v1_13_R2.ParticleParam; -import net.minecraft.server.v1_13_R2.ParticleParamBlock; -import net.minecraft.server.v1_13_R2.ParticleParamItem; -import net.minecraft.server.v1_13_R2.ParticleParamRedstone; -import net.minecraft.server.v1_13_R2.ShapeDetectorBlock; -import net.minecraft.server.v1_13_R2.Vec2F; -import net.minecraft.server.v1_13_R2.Vec3D; +import java.io.File; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.util.*; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; abstract class NMSWrapper_1_13_1 extends BukkitPlatform {} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java index 2076c7fba2..86fb14b26b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_2.java @@ -1,10 +1,16 @@ package dev.jorel.commandapi.nms; -import java.util.Map; - -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import com.mojang.brigadier.context.CommandContext; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.preprocessor.Differs; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.FloatRange; +import dev.jorel.commandapi.wrappers.IntegerRange; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import net.minecraft.server.v1_13_R2.*; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.command.CommandSender; @@ -12,27 +18,7 @@ import org.bukkit.craftbukkit.v1_13_R2.command.VanillaCommandWrapper; import org.bukkit.craftbukkit.v1_13_R2.help.SimpleHelpMap; -import com.mojang.brigadier.context.CommandContext; - -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import net.minecraft.server.v1_13_R2.ArgumentCriterionValue; -import net.minecraft.server.v1_13_R2.CommandListenerWrapper; -import net.minecraft.server.v1_13_R2.CriterionConditionValue; -import net.minecraft.server.v1_13_R2.Entity; -import net.minecraft.server.v1_13_R2.EntitySelector; -import net.minecraft.server.v1_13_R2.IBlockData; -import net.minecraft.server.v1_13_R2.ItemStack; -import net.minecraft.server.v1_13_R2.LootTableRegistry; -import net.minecraft.server.v1_13_R2.ParticleParamBlock; -import net.minecraft.server.v1_13_R2.ParticleParamItem; -import net.minecraft.server.v1_13_R2.ParticleParamRedstone; -import net.minecraft.server.v1_13_R2.Vec2F; -import net.minecraft.server.v1_13_R2.Vec3D; +import java.util.Map; /** * NMS implementation for Minecraft 1.13.2 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index 5efb24a690..8a3b2fb8d9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -1,45 +1,40 @@ package dev.jorel.commandapi.nms; -import java.io.File; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - import com.mojang.brigadier.Message; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.*; -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.exceptions.*; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.*; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_13_R1.*; +import net.minecraft.server.v1_13_R1.CriterionConditionValue.c; +import net.minecraft.server.v1_13_R1.EnumDirection.EnumAxis; +import net.minecraft.server.v1_13_R1.IChatBaseComponent.ChatSerializer; import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Sound; +import org.bukkit.*; import org.bukkit.World; +import org.bukkit.Particle.DustOptions; import org.bukkit.World.Environment; import org.bukkit.block.Biome; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; import org.bukkit.command.*; -import org.bukkit.craftbukkit.v1_13_R1.CraftLootTable; -import org.bukkit.craftbukkit.v1_13_R1.CraftParticle; -import org.bukkit.craftbukkit.v1_13_R1.CraftServer; -import org.bukkit.craftbukkit.v1_13_R1.CraftSound; -import org.bukkit.craftbukkit.v1_13_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_13_R1.*; import org.bukkit.craftbukkit.v1_13_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_13_R1.command.CraftBlockCommandSender; import org.bukkit.craftbukkit.v1_13_R1.command.ProxiedNativeCommandSender; @@ -60,93 +55,13 @@ import org.bukkit.inventory.Recipe; import org.bukkit.potion.PotionEffectType; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.BaseHandler; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.EnvironmentArgumentException; -import dev.jorel.commandapi.exceptions.TimeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_13_R1.Advancement; -import net.minecraft.server.v1_13_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_13_R1.ArgumentChat; -import net.minecraft.server.v1_13_R1.ArgumentChatComponent; -import net.minecraft.server.v1_13_R1.ArgumentChatFormat; -import net.minecraft.server.v1_13_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_13_R1.ArgumentEnchantment; -import net.minecraft.server.v1_13_R1.ArgumentEntity; -import net.minecraft.server.v1_13_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_13_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_13_R1.ArgumentItemStack; -import net.minecraft.server.v1_13_R1.ArgumentMathOperation; -import net.minecraft.server.v1_13_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_13_R1.ArgumentMobEffect; -import net.minecraft.server.v1_13_R1.ArgumentNBTTag; -import net.minecraft.server.v1_13_R1.ArgumentParticle; -import net.minecraft.server.v1_13_R1.ArgumentPosition; -import net.minecraft.server.v1_13_R1.ArgumentProfile; -import net.minecraft.server.v1_13_R1.ArgumentRotation; -import net.minecraft.server.v1_13_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_13_R1.ArgumentScoreholder; -import net.minecraft.server.v1_13_R1.ArgumentTag; -import net.minecraft.server.v1_13_R1.ArgumentTile; -import net.minecraft.server.v1_13_R1.ArgumentVec2; -import net.minecraft.server.v1_13_R1.ArgumentVec3; -import net.minecraft.server.v1_13_R1.BlockPosition; -import net.minecraft.server.v1_13_R1.CommandListenerWrapper; -import net.minecraft.server.v1_13_R1.CompletionProviders; -import net.minecraft.server.v1_13_R1.CriterionConditionValue; -import net.minecraft.server.v1_13_R1.CriterionConditionValue.c; -import net.minecraft.server.v1_13_R1.CustomFunction; -import net.minecraft.server.v1_13_R1.CustomFunctionData; -import net.minecraft.server.v1_13_R1.DedicatedServer; -import net.minecraft.server.v1_13_R1.Entity; -import net.minecraft.server.v1_13_R1.EntityPlayer; -import net.minecraft.server.v1_13_R1.EntitySelector; -import net.minecraft.server.v1_13_R1.EntityTypes; -import net.minecraft.server.v1_13_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_13_R1.IBlockData; -import net.minecraft.server.v1_13_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_13_R1.ICompletionProvider; -import net.minecraft.server.v1_13_R1.ItemStack; -import net.minecraft.server.v1_13_R1.LootTable; -import net.minecraft.server.v1_13_R1.LootTableRegistry; -import net.minecraft.server.v1_13_R1.MinecraftKey; -import net.minecraft.server.v1_13_R1.MinecraftServer; -import net.minecraft.server.v1_13_R1.ParticleParam; -import net.minecraft.server.v1_13_R1.ParticleParamBlock; -import net.minecraft.server.v1_13_R1.ParticleParamItem; -import net.minecraft.server.v1_13_R1.ParticleParamRedstone; -import net.minecraft.server.v1_13_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_13_R1.Vec2F; -import net.minecraft.server.v1_13_R1.Vec3D; +import java.io.File; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.util.*; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; /** * NMS implementation for Minecraft 1.13 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index eb577990d7..d4cdbc6012 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -1,38 +1,38 @@ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - +import com.google.common.io.Files; +import com.google.gson.GsonBuilder; import com.mojang.brigadier.Message; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; +import dev.jorel.commandapi.exceptions.AngleArgumentException; +import dev.jorel.commandapi.exceptions.BiomeArgumentException; +import dev.jorel.commandapi.exceptions.UUIDArgumentException; +import dev.jorel.commandapi.preprocessor.Differs; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.*; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_14_R1.*; +import net.minecraft.server.v1_14_R1.EnumDirection.EnumAxis; +import net.minecraft.server.v1_14_R1.IChatBaseComponent.ChatSerializer; import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Sound; +import org.bukkit.*; import org.bukkit.World; +import org.bukkit.Particle.DustOptions; import org.bukkit.World.Environment; import org.bukkit.block.Biome; import org.bukkit.block.Block; @@ -40,11 +40,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_14_R1.CraftLootTable; -import org.bukkit.craftbukkit.v1_14_R1.CraftParticle; -import org.bukkit.craftbukkit.v1_14_R1.CraftServer; -import org.bukkit.craftbukkit.v1_14_R1.CraftSound; -import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_14_R1.*; import org.bukkit.craftbukkit.v1_14_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_14_R1.command.VanillaCommandWrapper; import org.bukkit.craftbukkit.v1_14_R1.enchantments.CraftEnchantment; @@ -62,96 +58,15 @@ import org.bukkit.inventory.Recipe; import org.bukkit.potion.PotionEffectType; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.BaseHandler; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_14_R1.Advancement; -import net.minecraft.server.v1_14_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_14_R1.ArgumentChat; -import net.minecraft.server.v1_14_R1.ArgumentChatComponent; -import net.minecraft.server.v1_14_R1.ArgumentChatFormat; -import net.minecraft.server.v1_14_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_14_R1.ArgumentDimension; -import net.minecraft.server.v1_14_R1.ArgumentEnchantment; -import net.minecraft.server.v1_14_R1.ArgumentEntity; -import net.minecraft.server.v1_14_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_14_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_14_R1.ArgumentItemStack; -import net.minecraft.server.v1_14_R1.ArgumentMathOperation; -import net.minecraft.server.v1_14_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_14_R1.ArgumentMobEffect; -import net.minecraft.server.v1_14_R1.ArgumentNBTTag; -import net.minecraft.server.v1_14_R1.ArgumentParticle; -import net.minecraft.server.v1_14_R1.ArgumentPosition; -import net.minecraft.server.v1_14_R1.ArgumentProfile; -import net.minecraft.server.v1_14_R1.ArgumentRegistry; -import net.minecraft.server.v1_14_R1.ArgumentRotation; -import net.minecraft.server.v1_14_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_14_R1.ArgumentScoreholder; -import net.minecraft.server.v1_14_R1.ArgumentTag; -import net.minecraft.server.v1_14_R1.ArgumentTile; -import net.minecraft.server.v1_14_R1.ArgumentTime; -import net.minecraft.server.v1_14_R1.ArgumentVec2; -import net.minecraft.server.v1_14_R1.ArgumentVec2I; -import net.minecraft.server.v1_14_R1.ArgumentVec3; -import net.minecraft.server.v1_14_R1.BlockPosition; -import net.minecraft.server.v1_14_R1.BlockPosition2D; -import net.minecraft.server.v1_14_R1.CommandListenerWrapper; -import net.minecraft.server.v1_14_R1.CompletionProviders; -import net.minecraft.server.v1_14_R1.CriterionConditionValue; -import net.minecraft.server.v1_14_R1.CustomFunction; -import net.minecraft.server.v1_14_R1.CustomFunctionData; -import net.minecraft.server.v1_14_R1.DimensionManager; -import net.minecraft.server.v1_14_R1.Entity; -import net.minecraft.server.v1_14_R1.EntityPlayer; -import net.minecraft.server.v1_14_R1.EntitySelector; -import net.minecraft.server.v1_14_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_14_R1.IBlockData; -import net.minecraft.server.v1_14_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_14_R1.ICompletionProvider; -import net.minecraft.server.v1_14_R1.IRegistry; -import net.minecraft.server.v1_14_R1.ItemStack; -import net.minecraft.server.v1_14_R1.MinecraftKey; -import net.minecraft.server.v1_14_R1.MinecraftServer; -import net.minecraft.server.v1_14_R1.ParticleParam; -import net.minecraft.server.v1_14_R1.ParticleParamBlock; -import net.minecraft.server.v1_14_R1.ParticleParamItem; -import net.minecraft.server.v1_14_R1.ParticleParamRedstone; -import net.minecraft.server.v1_14_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_14_R1.Vec2F; -import net.minecraft.server.v1_14_R1.Vec3D; +import java.io.File; +import java.io.IOException; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; /** * NMS implementation for Minecraft 1.14, 1.14.1 and 1.14.2 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index b9fc596beb..383a039204 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -1,38 +1,38 @@ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - +import com.google.common.io.Files; +import com.google.gson.GsonBuilder; import com.mojang.brigadier.Message; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; +import dev.jorel.commandapi.exceptions.AngleArgumentException; +import dev.jorel.commandapi.exceptions.BiomeArgumentException; +import dev.jorel.commandapi.exceptions.UUIDArgumentException; +import dev.jorel.commandapi.preprocessor.Differs; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.*; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_15_R1.*; +import net.minecraft.server.v1_15_R1.EnumDirection.EnumAxis; +import net.minecraft.server.v1_15_R1.IChatBaseComponent.ChatSerializer; import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Sound; +import org.bukkit.*; import org.bukkit.World; +import org.bukkit.Particle.DustOptions; import org.bukkit.World.Environment; import org.bukkit.block.Biome; import org.bukkit.block.Block; @@ -40,11 +40,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_15_R1.CraftLootTable; -import org.bukkit.craftbukkit.v1_15_R1.CraftParticle; -import org.bukkit.craftbukkit.v1_15_R1.CraftServer; -import org.bukkit.craftbukkit.v1_15_R1.CraftSound; -import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_15_R1.*; import org.bukkit.craftbukkit.v1_15_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_15_R1.command.VanillaCommandWrapper; import org.bukkit.craftbukkit.v1_15_R1.enchantments.CraftEnchantment; @@ -62,98 +58,15 @@ import org.bukkit.inventory.ComplexRecipe; import org.bukkit.potion.PotionEffectType; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.BaseHandler; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_15_R1.Advancement; -import net.minecraft.server.v1_15_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_15_R1.ArgumentChat; -import net.minecraft.server.v1_15_R1.ArgumentChatComponent; -import net.minecraft.server.v1_15_R1.ArgumentChatFormat; -import net.minecraft.server.v1_15_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_15_R1.ArgumentDimension; -import net.minecraft.server.v1_15_R1.ArgumentEnchantment; -import net.minecraft.server.v1_15_R1.ArgumentEntity; -import net.minecraft.server.v1_15_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_15_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_15_R1.ArgumentItemStack; -import net.minecraft.server.v1_15_R1.ArgumentMathOperation; -import net.minecraft.server.v1_15_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_15_R1.ArgumentMobEffect; -import net.minecraft.server.v1_15_R1.ArgumentNBTTag; -import net.minecraft.server.v1_15_R1.ArgumentParticle; -import net.minecraft.server.v1_15_R1.ArgumentPosition; -import net.minecraft.server.v1_15_R1.ArgumentProfile; -import net.minecraft.server.v1_15_R1.ArgumentRegistry; -import net.minecraft.server.v1_15_R1.ArgumentRotation; -import net.minecraft.server.v1_15_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_15_R1.ArgumentScoreholder; -import net.minecraft.server.v1_15_R1.ArgumentTag; -import net.minecraft.server.v1_15_R1.ArgumentTile; -import net.minecraft.server.v1_15_R1.ArgumentTime; -import net.minecraft.server.v1_15_R1.ArgumentVec2; -import net.minecraft.server.v1_15_R1.ArgumentVec2I; -import net.minecraft.server.v1_15_R1.ArgumentVec3; -import net.minecraft.server.v1_15_R1.BlockPosition; -import net.minecraft.server.v1_15_R1.BlockPosition2D; -import net.minecraft.server.v1_15_R1.CommandListenerWrapper; -import net.minecraft.server.v1_15_R1.CompletionProviders; -import net.minecraft.server.v1_15_R1.CriterionConditionValue; -import net.minecraft.server.v1_15_R1.CustomFunction; -import net.minecraft.server.v1_15_R1.CustomFunctionData; -import net.minecraft.server.v1_15_R1.DimensionManager; -import net.minecraft.server.v1_15_R1.Entity; -import net.minecraft.server.v1_15_R1.EntityPlayer; -import net.minecraft.server.v1_15_R1.EntitySelector; -import net.minecraft.server.v1_15_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_15_R1.IBlockData; -import net.minecraft.server.v1_15_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_15_R1.ICompletionProvider; -import net.minecraft.server.v1_15_R1.IRecipe; -import net.minecraft.server.v1_15_R1.IRegistry; -import net.minecraft.server.v1_15_R1.ItemStack; -import net.minecraft.server.v1_15_R1.MinecraftKey; -import net.minecraft.server.v1_15_R1.MinecraftServer; -import net.minecraft.server.v1_15_R1.ParticleParam; -import net.minecraft.server.v1_15_R1.ParticleParamBlock; -import net.minecraft.server.v1_15_R1.ParticleParamItem; -import net.minecraft.server.v1_15_R1.ParticleParamRedstone; -import net.minecraft.server.v1_15_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_15_R1.Vec2F; -import net.minecraft.server.v1_15_R1.Vec3D; +import java.io.File; +import java.io.IOException; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; /** * NMS implementation for Minecraft 1.15, 1.15.1 and 1.15.2 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index faacbfd2ae..702967a246 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -1,43 +1,37 @@ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - +import com.google.common.io.Files; +import com.google.gson.GsonBuilder; +import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.Message; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; +import dev.jorel.commandapi.exceptions.AngleArgumentException; +import dev.jorel.commandapi.preprocessor.Differs; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.*; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_16_R1.*; +import net.minecraft.server.v1_16_R1.EnumDirection.EnumAxis; +import net.minecraft.server.v1_16_R1.IChatBaseComponent.ChatSerializer; import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Sound; +import org.bukkit.*; import org.bukkit.World; +import org.bukkit.Particle.DustOptions; import org.bukkit.World.Environment; import org.bukkit.block.Biome; import org.bukkit.block.Block; @@ -45,11 +39,7 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_16_R1.CraftLootTable; -import org.bukkit.craftbukkit.v1_16_R1.CraftParticle; -import org.bukkit.craftbukkit.v1_16_R1.CraftServer; -import org.bukkit.craftbukkit.v1_16_R1.CraftSound; -import org.bukkit.craftbukkit.v1_16_R1.CraftWorld; +import org.bukkit.craftbukkit.v1_16_R1.*; import org.bukkit.craftbukkit.v1_16_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_16_R1.command.VanillaCommandWrapper; import org.bukkit.craftbukkit.v1_16_R1.enchantments.CraftEnchantment; @@ -68,102 +58,18 @@ import org.bukkit.inventory.Recipe; import org.bukkit.potion.PotionEffectType; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.BaseHandler; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_16_R1.Advancement; -import net.minecraft.server.v1_16_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_16_R1.ArgumentChat; -import net.minecraft.server.v1_16_R1.ArgumentChatComponent; -import net.minecraft.server.v1_16_R1.ArgumentChatFormat; -import net.minecraft.server.v1_16_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_16_R1.ArgumentDimension; -import net.minecraft.server.v1_16_R1.ArgumentEnchantment; -import net.minecraft.server.v1_16_R1.ArgumentEntity; -import net.minecraft.server.v1_16_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_16_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_16_R1.ArgumentItemStack; -import net.minecraft.server.v1_16_R1.ArgumentMathOperation; -import net.minecraft.server.v1_16_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_16_R1.ArgumentMobEffect; -import net.minecraft.server.v1_16_R1.ArgumentNBTTag; -import net.minecraft.server.v1_16_R1.ArgumentParticle; -import net.minecraft.server.v1_16_R1.ArgumentPosition; -import net.minecraft.server.v1_16_R1.ArgumentProfile; -import net.minecraft.server.v1_16_R1.ArgumentRegistry; -import net.minecraft.server.v1_16_R1.ArgumentRotation; -import net.minecraft.server.v1_16_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_16_R1.ArgumentScoreholder; -import net.minecraft.server.v1_16_R1.ArgumentTag; -import net.minecraft.server.v1_16_R1.ArgumentTile; -import net.minecraft.server.v1_16_R1.ArgumentTime; -import net.minecraft.server.v1_16_R1.ArgumentUUID; -import net.minecraft.server.v1_16_R1.ArgumentVec2; -import net.minecraft.server.v1_16_R1.ArgumentVec2I; -import net.minecraft.server.v1_16_R1.ArgumentVec3; -import net.minecraft.server.v1_16_R1.BlockPosition; -import net.minecraft.server.v1_16_R1.BlockPosition2D; -import net.minecraft.server.v1_16_R1.CommandListenerWrapper; -import net.minecraft.server.v1_16_R1.CompletionProviders; -import net.minecraft.server.v1_16_R1.CriterionConditionValue; -import net.minecraft.server.v1_16_R1.CustomFunction; -import net.minecraft.server.v1_16_R1.CustomFunctionData; -import net.minecraft.server.v1_16_R1.CustomFunctionManager; -import net.minecraft.server.v1_16_R1.DataPackResources; -import net.minecraft.server.v1_16_R1.Entity; -import net.minecraft.server.v1_16_R1.EntityPlayer; -import net.minecraft.server.v1_16_R1.EntitySelector; -import net.minecraft.server.v1_16_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_16_R1.IBlockData; -import net.minecraft.server.v1_16_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_16_R1.ICompletionProvider; -import net.minecraft.server.v1_16_R1.IRecipe; -import net.minecraft.server.v1_16_R1.IRegistry; -import net.minecraft.server.v1_16_R1.IReloadableResourceManager; -import net.minecraft.server.v1_16_R1.ItemStack; -import net.minecraft.server.v1_16_R1.MinecraftKey; -import net.minecraft.server.v1_16_R1.MinecraftServer; -import net.minecraft.server.v1_16_R1.ParticleParam; -import net.minecraft.server.v1_16_R1.ParticleParamBlock; -import net.minecraft.server.v1_16_R1.ParticleParamItem; -import net.minecraft.server.v1_16_R1.ParticleParamRedstone; -import net.minecraft.server.v1_16_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_16_R1.SystemUtils; -import net.minecraft.server.v1_16_R1.Unit; -import net.minecraft.server.v1_16_R1.Vec2F; -import net.minecraft.server.v1_16_R1.Vec3D; +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; /** * NMS implementation for Minecraft 1.16.1 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index 0bae8bc0e1..8e1af933d5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -1,43 +1,36 @@ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - +import com.google.common.io.Files; +import com.google.gson.GsonBuilder; +import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.Message; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; +import dev.jorel.commandapi.preprocessor.Differs; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.*; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_16_R2.*; +import net.minecraft.server.v1_16_R2.EnumDirection.EnumAxis; +import net.minecraft.server.v1_16_R2.IChatBaseComponent.ChatSerializer; import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Sound; +import org.bukkit.*; import org.bukkit.World; +import org.bukkit.Particle.DustOptions; import org.bukkit.World.Environment; import org.bukkit.block.Biome; import org.bukkit.block.Block; @@ -67,103 +60,18 @@ import org.bukkit.inventory.Recipe; import org.bukkit.potion.PotionEffectType; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.BaseHandler; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_16_R2.Advancement; -import net.minecraft.server.v1_16_R2.ArgumentAngle; -import net.minecraft.server.v1_16_R2.ArgumentBlockPredicate; -import net.minecraft.server.v1_16_R2.ArgumentChat; -import net.minecraft.server.v1_16_R2.ArgumentChatComponent; -import net.minecraft.server.v1_16_R2.ArgumentChatFormat; -import net.minecraft.server.v1_16_R2.ArgumentCriterionValue; -import net.minecraft.server.v1_16_R2.ArgumentDimension; -import net.minecraft.server.v1_16_R2.ArgumentEnchantment; -import net.minecraft.server.v1_16_R2.ArgumentEntity; -import net.minecraft.server.v1_16_R2.ArgumentEntitySummon; -import net.minecraft.server.v1_16_R2.ArgumentItemPredicate; -import net.minecraft.server.v1_16_R2.ArgumentItemStack; -import net.minecraft.server.v1_16_R2.ArgumentMathOperation; -import net.minecraft.server.v1_16_R2.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_16_R2.ArgumentMobEffect; -import net.minecraft.server.v1_16_R2.ArgumentNBTTag; -import net.minecraft.server.v1_16_R2.ArgumentParticle; -import net.minecraft.server.v1_16_R2.ArgumentPosition; -import net.minecraft.server.v1_16_R2.ArgumentProfile; -import net.minecraft.server.v1_16_R2.ArgumentRegistry; -import net.minecraft.server.v1_16_R2.ArgumentRotation; -import net.minecraft.server.v1_16_R2.ArgumentRotationAxis; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardObjective; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardSlot; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardTeam; -import net.minecraft.server.v1_16_R2.ArgumentScoreholder; -import net.minecraft.server.v1_16_R2.ArgumentTag; -import net.minecraft.server.v1_16_R2.ArgumentTile; -import net.minecraft.server.v1_16_R2.ArgumentTime; -import net.minecraft.server.v1_16_R2.ArgumentUUID; -import net.minecraft.server.v1_16_R2.ArgumentVec2; -import net.minecraft.server.v1_16_R2.ArgumentVec2I; -import net.minecraft.server.v1_16_R2.ArgumentVec3; -import net.minecraft.server.v1_16_R2.BlockPosition; -import net.minecraft.server.v1_16_R2.BlockPosition2D; -import net.minecraft.server.v1_16_R2.CommandListenerWrapper; -import net.minecraft.server.v1_16_R2.CompletionProviders; -import net.minecraft.server.v1_16_R2.CriterionConditionValue; -import net.minecraft.server.v1_16_R2.CustomFunction; -import net.minecraft.server.v1_16_R2.CustomFunctionData; -import net.minecraft.server.v1_16_R2.CustomFunctionManager; -import net.minecraft.server.v1_16_R2.DataPackResources; -import net.minecraft.server.v1_16_R2.Entity; -import net.minecraft.server.v1_16_R2.EntityPlayer; -import net.minecraft.server.v1_16_R2.EntitySelector; -import net.minecraft.server.v1_16_R2.EntityTypes; -import net.minecraft.server.v1_16_R2.EnumDirection.EnumAxis; -import net.minecraft.server.v1_16_R2.IBlockData; -import net.minecraft.server.v1_16_R2.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_16_R2.ICompletionProvider; -import net.minecraft.server.v1_16_R2.IRecipe; -import net.minecraft.server.v1_16_R2.IRegistry; -import net.minecraft.server.v1_16_R2.IReloadableResourceManager; -import net.minecraft.server.v1_16_R2.ItemStack; -import net.minecraft.server.v1_16_R2.MinecraftKey; -import net.minecraft.server.v1_16_R2.MinecraftServer; -import net.minecraft.server.v1_16_R2.ParticleParam; -import net.minecraft.server.v1_16_R2.ParticleParamBlock; -import net.minecraft.server.v1_16_R2.ParticleParamItem; -import net.minecraft.server.v1_16_R2.ParticleParamRedstone; -import net.minecraft.server.v1_16_R2.ShapeDetectorBlock; -import net.minecraft.server.v1_16_R2.SystemUtils; -import net.minecraft.server.v1_16_R2.Unit; -import net.minecraft.server.v1_16_R2.Vec2F; -import net.minecraft.server.v1_16_R2.Vec3D; +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; /** * NMS implementation for Minecraft 1.16.2 and 1.16.3 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index f4d1c9a3d4..2591b4b5b1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -20,44 +20,37 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - +import com.google.common.io.Files; +import com.google.gson.GsonBuilder; +import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.Message; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; +import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; +import dev.jorel.commandapi.preprocessor.Differs; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.*; +import io.papermc.paper.text.PaperComponents; +import net.kyori.adventure.text.Component; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_16_R3.*; +import net.minecraft.server.v1_16_R3.EnumDirection.EnumAxis; +import net.minecraft.server.v1_16_R3.IChatBaseComponent.ChatSerializer; import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Sound; +import org.bukkit.*; import org.bukkit.World; +import org.bukkit.Particle.DustOptions; import org.bukkit.World.Environment; import org.bukkit.block.Biome; import org.bukkit.block.Block; @@ -87,102 +80,18 @@ import org.bukkit.inventory.Recipe; import org.bukkit.potion.PotionEffectType; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.BaseHandler; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import io.papermc.paper.text.PaperComponents; -import net.kyori.adventure.text.Component; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_16_R3.Advancement; -import net.minecraft.server.v1_16_R3.ArgumentAngle; -import net.minecraft.server.v1_16_R3.ArgumentBlockPredicate; -import net.minecraft.server.v1_16_R3.ArgumentChat; -import net.minecraft.server.v1_16_R3.ArgumentChatComponent; -import net.minecraft.server.v1_16_R3.ArgumentChatFormat; -import net.minecraft.server.v1_16_R3.ArgumentCriterionValue; -import net.minecraft.server.v1_16_R3.ArgumentDimension; -import net.minecraft.server.v1_16_R3.ArgumentEnchantment; -import net.minecraft.server.v1_16_R3.ArgumentEntity; -import net.minecraft.server.v1_16_R3.ArgumentEntitySummon; -import net.minecraft.server.v1_16_R3.ArgumentItemPredicate; -import net.minecraft.server.v1_16_R3.ArgumentItemStack; -import net.minecraft.server.v1_16_R3.ArgumentMathOperation; -import net.minecraft.server.v1_16_R3.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_16_R3.ArgumentMobEffect; -import net.minecraft.server.v1_16_R3.ArgumentNBTTag; -import net.minecraft.server.v1_16_R3.ArgumentParticle; -import net.minecraft.server.v1_16_R3.ArgumentPosition; -import net.minecraft.server.v1_16_R3.ArgumentProfile; -import net.minecraft.server.v1_16_R3.ArgumentRegistry; -import net.minecraft.server.v1_16_R3.ArgumentRotation; -import net.minecraft.server.v1_16_R3.ArgumentRotationAxis; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardObjective; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardSlot; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardTeam; -import net.minecraft.server.v1_16_R3.ArgumentScoreholder; -import net.minecraft.server.v1_16_R3.ArgumentTag; -import net.minecraft.server.v1_16_R3.ArgumentTile; -import net.minecraft.server.v1_16_R3.ArgumentTime; -import net.minecraft.server.v1_16_R3.ArgumentUUID; -import net.minecraft.server.v1_16_R3.ArgumentVec2; -import net.minecraft.server.v1_16_R3.ArgumentVec2I; -import net.minecraft.server.v1_16_R3.ArgumentVec3; -import net.minecraft.server.v1_16_R3.BlockPosition; -import net.minecraft.server.v1_16_R3.BlockPosition2D; -import net.minecraft.server.v1_16_R3.CommandListenerWrapper; -import net.minecraft.server.v1_16_R3.CompletionProviders; -import net.minecraft.server.v1_16_R3.CriterionConditionValue; -import net.minecraft.server.v1_16_R3.CustomFunction; -import net.minecraft.server.v1_16_R3.CustomFunctionData; -import net.minecraft.server.v1_16_R3.CustomFunctionManager; -import net.minecraft.server.v1_16_R3.DataPackResources; -import net.minecraft.server.v1_16_R3.Entity; -import net.minecraft.server.v1_16_R3.EntityPlayer; -import net.minecraft.server.v1_16_R3.EntitySelector; -import net.minecraft.server.v1_16_R3.EntityTypes; -import net.minecraft.server.v1_16_R3.EnumDirection.EnumAxis; -import net.minecraft.server.v1_16_R3.IBlockData; -import net.minecraft.server.v1_16_R3.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_16_R3.ICompletionProvider; -import net.minecraft.server.v1_16_R3.IRecipe; -import net.minecraft.server.v1_16_R3.IRegistry; -import net.minecraft.server.v1_16_R3.IReloadableResourceManager; -import net.minecraft.server.v1_16_R3.ItemStack; -import net.minecraft.server.v1_16_R3.MinecraftKey; -import net.minecraft.server.v1_16_R3.MinecraftServer; -import net.minecraft.server.v1_16_R3.ParticleParam; -import net.minecraft.server.v1_16_R3.ParticleParamBlock; -import net.minecraft.server.v1_16_R3.ParticleParamItem; -import net.minecraft.server.v1_16_R3.ParticleParamRedstone; -import net.minecraft.server.v1_16_R3.ShapeDetectorBlock; -import net.minecraft.server.v1_16_R3.SystemUtils; -import net.minecraft.server.v1_16_R3.Vec2F; -import net.minecraft.server.v1_16_R3.Vec3D; +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; /** * NMS implementation for Minecraft 1.16.4 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java index e85702150b..331cfa14f7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java @@ -20,55 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Particle.DustTransition; -import org.bukkit.Sound; -import org.bukkit.Vibration; -import org.bukkit.World; -import org.bukkit.Vibration.Destination; -import org.bukkit.Vibration.Destination.BlockDestination; -import org.bukkit.Vibration.Destination.EntityDestination; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_17_R1.CraftLootTable; -import org.bukkit.craftbukkit.v1_17_R1.CraftParticle; -import org.bukkit.craftbukkit.v1_17_R1.CraftServer; -import org.bukkit.craftbukkit.v1_17_R1.CraftSound; -import org.bukkit.craftbukkit.v1_17_R1.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_17_R1.command.VanillaCommandWrapper; -import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_17_R1.help.CustomHelpTopic; -import org.bukkit.craftbukkit.v1_17_R1.help.SimpleHelpMap; -import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; - import com.google.common.io.Files; import com.google.gson.GsonBuilder; import com.mojang.brigadier.CommandDispatcher; @@ -76,25 +27,19 @@ import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; +import dev.jorel.commandapi.wrappers.*; import io.papermc.paper.text.PaperComponents; import net.kyori.adventure.text.Component; import net.minecraft.commands.CommandFunction; import net.minecraft.commands.CommandFunction.Entry; import net.minecraft.commands.CommandSourceStack; -import net.minecraft.commands.arguments.ComponentArgument; -import net.minecraft.commands.arguments.EntityArgument; -import net.minecraft.commands.arguments.EntitySummonArgument; -import net.minecraft.commands.arguments.ParticleArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; +import net.minecraft.commands.arguments.*; import net.minecraft.commands.arguments.blocks.BlockPredicateArgument; import net.minecraft.commands.arguments.blocks.BlockStateArgument; import net.minecraft.commands.arguments.coordinates.BlockPosArgument; @@ -108,13 +53,7 @@ import net.minecraft.commands.synchronization.ArgumentTypes; import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; -import net.minecraft.core.particles.BlockParticleOption; -import net.minecraft.core.particles.DustColorTransitionOptions; -import net.minecraft.core.particles.DustParticleOptions; -import net.minecraft.core.particles.ItemParticleOption; -import net.minecraft.core.particles.ParticleOptions; -import net.minecraft.core.particles.SimpleParticleType; -import net.minecraft.core.particles.VibrationParticleOption; +import net.minecraft.core.particles.*; import net.minecraft.network.chat.Component.Serializer; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; @@ -129,6 +68,44 @@ import net.minecraft.world.level.gameevent.EntityPositionSource; import net.minecraft.world.phys.Vec2; import net.minecraft.world.phys.Vec3; +import org.bukkit.*; +import org.bukkit.Particle.DustOptions; +import org.bukkit.Particle.DustTransition; +import org.bukkit.Vibration.Destination; +import org.bukkit.Vibration.Destination.BlockDestination; +import org.bukkit.Vibration.Destination.EntityDestination; +import org.bukkit.block.Biome; +import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.SimpleCommandMap; +import org.bukkit.craftbukkit.v1_17_R1.CraftLootTable; +import org.bukkit.craftbukkit.v1_17_R1.CraftParticle; +import org.bukkit.craftbukkit.v1_17_R1.CraftServer; +import org.bukkit.craftbukkit.v1_17_R1.CraftSound; +import org.bukkit.craftbukkit.v1_17_R1.block.data.CraftBlockData; +import org.bukkit.craftbukkit.v1_17_R1.command.VanillaCommandWrapper; +import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_17_R1.help.CustomHelpTopic; +import org.bukkit.craftbukkit.v1_17_R1.help.SimpleHelpMap; +import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.help.HelpTopic; + +import java.io.File; +import java.io.IOException; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; // Mojang-Mapped reflection /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java index 5de901010d..725fd88157 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java @@ -20,61 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Particle.DustTransition; -import org.bukkit.Sound; -import org.bukkit.Vibration; -import org.bukkit.Vibration.Destination; -import org.bukkit.Vibration.Destination.BlockDestination; -import org.bukkit.Vibration.Destination.EntityDestination; -import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_18_R2.CraftLootTable; -import org.bukkit.craftbukkit.v1_18_R2.CraftParticle; -import org.bukkit.craftbukkit.v1_18_R2.CraftServer; -import org.bukkit.craftbukkit.v1_18_R2.CraftSound; -import org.bukkit.craftbukkit.v1_18_R2.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_18_R2.command.VanillaCommandWrapper; -import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_18_R2.help.CustomHelpTopic; -import org.bukkit.craftbukkit.v1_18_R2.help.SimpleHelpMap; -import org.bukkit.craftbukkit.v1_18_R2.inventory.CraftItemStack; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.inventory.Recipe; - import com.google.common.collect.ImmutableList; import com.google.common.io.Files; import com.google.gson.GsonBuilder; @@ -85,30 +30,21 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; import com.mojang.logging.LogUtils; - import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.NMSMeta; import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; +import dev.jorel.commandapi.wrappers.*; import io.papermc.paper.text.PaperComponents; import net.kyori.adventure.text.Component; import net.minecraft.commands.CommandFunction; import net.minecraft.commands.CommandFunction.Entry; import net.minecraft.commands.CommandSourceStack; -import net.minecraft.commands.arguments.ComponentArgument; -import net.minecraft.commands.arguments.EntityArgument; -import net.minecraft.commands.arguments.EntitySummonArgument; -import net.minecraft.commands.arguments.ParticleArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; -import net.minecraft.commands.arguments.ResourceOrTagLocationArgument; +import net.minecraft.commands.arguments.*; import net.minecraft.commands.arguments.ResourceOrTagLocationArgument.Result; import net.minecraft.commands.arguments.blocks.BlockPredicateArgument; import net.minecraft.commands.arguments.blocks.BlockStateArgument; @@ -124,13 +60,7 @@ import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess.Frozen; -import net.minecraft.core.particles.BlockParticleOption; -import net.minecraft.core.particles.DustColorTransitionOptions; -import net.minecraft.core.particles.DustParticleOptions; -import net.minecraft.core.particles.ItemParticleOption; -import net.minecraft.core.particles.ParticleOptions; -import net.minecraft.core.particles.SimpleParticleType; -import net.minecraft.core.particles.VibrationParticleOption; +import net.minecraft.core.particles.*; import net.minecraft.network.chat.Component.Serializer; import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; @@ -155,6 +85,45 @@ import net.minecraft.world.level.gameevent.EntityPositionSource; import net.minecraft.world.phys.Vec2; import net.minecraft.world.phys.Vec3; +import org.bukkit.*; +import org.bukkit.Particle.DustOptions; +import org.bukkit.Particle.DustTransition; +import org.bukkit.Vibration.Destination; +import org.bukkit.Vibration.Destination.BlockDestination; +import org.bukkit.Vibration.Destination.EntityDestination; +import org.bukkit.block.Biome; +import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.SimpleCommandMap; +import org.bukkit.craftbukkit.v1_18_R2.CraftLootTable; +import org.bukkit.craftbukkit.v1_18_R2.CraftParticle; +import org.bukkit.craftbukkit.v1_18_R2.CraftServer; +import org.bukkit.craftbukkit.v1_18_R2.CraftSound; +import org.bukkit.craftbukkit.v1_18_R2.block.data.CraftBlockData; +import org.bukkit.craftbukkit.v1_18_R2.command.VanillaCommandWrapper; +import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_18_R2.help.CustomHelpTopic; +import org.bukkit.craftbukkit.v1_18_R2.help.SimpleHelpMap; +import org.bukkit.craftbukkit.v1_18_R2.inventory.CraftItemStack; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.help.HelpTopic; +import org.bukkit.inventory.Recipe; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; // Mojang-Mapped reflection /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java index 1d8ae8df86..e2e1ad4bef 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java @@ -20,90 +20,29 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import com.mojang.brigadier.Message; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Particle.DustTransition; -import org.bukkit.Sound; -import org.bukkit.Vibration; -import org.bukkit.Vibration.Destination; -import org.bukkit.Vibration.Destination.BlockDestination; -import org.bukkit.Vibration.Destination.EntityDestination; -import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_18_R1.CraftLootTable; -import org.bukkit.craftbukkit.v1_18_R1.CraftParticle; -import org.bukkit.craftbukkit.v1_18_R1.CraftServer; -import org.bukkit.craftbukkit.v1_18_R1.CraftSound; -import org.bukkit.craftbukkit.v1_18_R1.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_18_R1.command.VanillaCommandWrapper; -import org.bukkit.craftbukkit.v1_18_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_18_R1.help.CustomHelpTopic; -import org.bukkit.craftbukkit.v1_18_R1.help.SimpleHelpMap; -import org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.inventory.Recipe; - import com.google.common.io.Files; import com.google.gson.GsonBuilder; import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.Message; import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.NMSMeta; import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; +import dev.jorel.commandapi.wrappers.*; import io.papermc.paper.text.PaperComponents; import net.kyori.adventure.text.Component; import net.minecraft.Util; import net.minecraft.commands.CommandFunction; import net.minecraft.commands.CommandFunction.Entry; import net.minecraft.commands.CommandSourceStack; -import net.minecraft.commands.arguments.ComponentArgument; -import net.minecraft.commands.arguments.EntityArgument; -import net.minecraft.commands.arguments.EntitySummonArgument; -import net.minecraft.commands.arguments.ParticleArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; +import net.minecraft.commands.arguments.*; import net.minecraft.commands.arguments.blocks.BlockPredicateArgument; import net.minecraft.commands.arguments.blocks.BlockStateArgument; import net.minecraft.commands.arguments.coordinates.BlockPosArgument; @@ -117,13 +56,7 @@ import net.minecraft.commands.synchronization.ArgumentTypes; import net.minecraft.core.BlockPos; import net.minecraft.core.Registry; -import net.minecraft.core.particles.BlockParticleOption; -import net.minecraft.core.particles.DustColorTransitionOptions; -import net.minecraft.core.particles.DustParticleOptions; -import net.minecraft.core.particles.ItemParticleOption; -import net.minecraft.core.particles.ParticleOptions; -import net.minecraft.core.particles.SimpleParticleType; -import net.minecraft.core.particles.VibrationParticleOption; +import net.minecraft.core.particles.*; import net.minecraft.network.chat.Component.Serializer; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; @@ -140,6 +73,45 @@ import net.minecraft.world.level.gameevent.EntityPositionSource; import net.minecraft.world.phys.Vec2; import net.minecraft.world.phys.Vec3; +import org.bukkit.*; +import org.bukkit.Particle.DustOptions; +import org.bukkit.Particle.DustTransition; +import org.bukkit.Vibration.Destination; +import org.bukkit.Vibration.Destination.BlockDestination; +import org.bukkit.Vibration.Destination.EntityDestination; +import org.bukkit.block.Biome; +import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.SimpleCommandMap; +import org.bukkit.craftbukkit.v1_18_R1.CraftLootTable; +import org.bukkit.craftbukkit.v1_18_R1.CraftParticle; +import org.bukkit.craftbukkit.v1_18_R1.CraftServer; +import org.bukkit.craftbukkit.v1_18_R1.CraftSound; +import org.bukkit.craftbukkit.v1_18_R1.block.data.CraftBlockData; +import org.bukkit.craftbukkit.v1_18_R1.command.VanillaCommandWrapper; +import org.bukkit.craftbukkit.v1_18_R1.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_18_R1.help.CustomHelpTopic; +import org.bukkit.craftbukkit.v1_18_R1.help.SimpleHelpMap; +import org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.help.HelpTopic; +import org.bukkit.inventory.Recipe; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; // Mojang-Mapped reflection /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java index 748402d581..bc3e9a5de2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java @@ -20,62 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Particle.DustTransition; -import org.bukkit.Sound; -import org.bukkit.Vibration; -import org.bukkit.Vibration.Destination; -import org.bukkit.Vibration.Destination.BlockDestination; -import org.bukkit.Vibration.Destination.EntityDestination; -import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_19_R1.CraftLootTable; -import org.bukkit.craftbukkit.v1_19_R1.CraftParticle; -import org.bukkit.craftbukkit.v1_19_R1.CraftServer; -import org.bukkit.craftbukkit.v1_19_R1.CraftSound; -import org.bukkit.craftbukkit.v1_19_R1.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_19_R1.command.VanillaCommandWrapper; -import org.bukkit.craftbukkit.v1_19_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_19_R1.help.CustomHelpTopic; -import org.bukkit.craftbukkit.v1_19_R1.help.SimpleHelpMap; -import org.bukkit.craftbukkit.v1_19_R1.inventory.CraftItemStack; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.inventory.Recipe; -import org.bukkit.plugin.Plugin; - import com.google.common.collect.ImmutableList; import com.google.common.io.Files; import com.google.gson.GsonBuilder; @@ -87,18 +31,14 @@ import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; import com.mojang.datafixers.util.Either; import com.mojang.logging.LogUtils; - import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; +import dev.jorel.commandapi.wrappers.*; import io.netty.channel.Channel; import io.papermc.paper.text.PaperComponents; import net.kyori.adventure.text.Component; @@ -106,12 +46,7 @@ import net.minecraft.commands.CommandFunction; import net.minecraft.commands.CommandFunction.Entry; import net.minecraft.commands.CommandSourceStack; -import net.minecraft.commands.arguments.ComponentArgument; -import net.minecraft.commands.arguments.EntityArgument; -import net.minecraft.commands.arguments.EntitySummonArgument; -import net.minecraft.commands.arguments.ParticleArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; -import net.minecraft.commands.arguments.ResourceOrTagLocationArgument; +import net.minecraft.commands.arguments.*; import net.minecraft.commands.arguments.ResourceOrTagLocationArgument.Result; import net.minecraft.commands.arguments.blocks.BlockPredicateArgument; import net.minecraft.commands.arguments.blocks.BlockStateArgument; @@ -128,15 +63,7 @@ import net.minecraft.core.Registry; import net.minecraft.core.RegistryAccess; import net.minecraft.core.RegistryAccess.Frozen; -import net.minecraft.core.particles.BlockParticleOption; -import net.minecraft.core.particles.DustColorTransitionOptions; -import net.minecraft.core.particles.DustParticleOptions; -import net.minecraft.core.particles.ItemParticleOption; -import net.minecraft.core.particles.ParticleOptions; -import net.minecraft.core.particles.SculkChargeParticleOptions; -import net.minecraft.core.particles.ShriekParticleOption; -import net.minecraft.core.particles.SimpleParticleType; -import net.minecraft.core.particles.VibrationParticleOption; +import net.minecraft.core.particles.*; import net.minecraft.network.chat.Component.Serializer; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.MinecraftServer; @@ -161,6 +88,46 @@ import net.minecraft.world.level.gameevent.EntityPositionSource; import net.minecraft.world.phys.Vec2; import net.minecraft.world.phys.Vec3; +import org.bukkit.*; +import org.bukkit.Particle.DustOptions; +import org.bukkit.Particle.DustTransition; +import org.bukkit.Vibration.Destination; +import org.bukkit.Vibration.Destination.BlockDestination; +import org.bukkit.Vibration.Destination.EntityDestination; +import org.bukkit.block.Biome; +import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.SimpleCommandMap; +import org.bukkit.craftbukkit.v1_19_R1.CraftLootTable; +import org.bukkit.craftbukkit.v1_19_R1.CraftParticle; +import org.bukkit.craftbukkit.v1_19_R1.CraftServer; +import org.bukkit.craftbukkit.v1_19_R1.CraftSound; +import org.bukkit.craftbukkit.v1_19_R1.block.data.CraftBlockData; +import org.bukkit.craftbukkit.v1_19_R1.command.VanillaCommandWrapper; +import org.bukkit.craftbukkit.v1_19_R1.entity.CraftEntity; +import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; +import org.bukkit.craftbukkit.v1_19_R1.help.CustomHelpTopic; +import org.bukkit.craftbukkit.v1_19_R1.help.SimpleHelpMap; +import org.bukkit.craftbukkit.v1_19_R1.inventory.CraftItemStack; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.help.HelpTopic; +import org.bukkit.inventory.Recipe; +import org.bukkit.plugin.Plugin; + +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; // Mojang-Mapped reflection /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java index 489952540a..994ffac5dc 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java @@ -20,74 +20,23 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.NAME_CHANGED; -import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.REQUIRES_CRAFTBUKKIT; -import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.REQUIRES_CSS; -import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.VERSION_SPECIFIC_IMPLEMENTATION; - -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; -import org.bukkit.Sound; -import org.bukkit.World; -import org.bukkit.World.Environment; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.Recipe; -import org.bukkit.loot.LootTable; -import org.bukkit.potion.PotionEffectType; - import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; - import dev.jorel.commandapi.BaseHandler; import dev.jorel.commandapi.BukkitPlatform; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; import dev.jorel.commandapi.arguments.EntitySelector; import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.Overridden; import dev.jorel.commandapi.preprocessor.Unimplemented; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.ParticleData; import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; +import dev.jorel.commandapi.wrappers.*; import io.papermc.paper.text.PaperComponents; import net.kyori.adventure.text.Component; import net.md_5.bungee.api.chat.BaseComponent; @@ -96,33 +45,8 @@ import net.minecraft.commands.CommandFunction; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.SharedSuggestionProvider; -import net.minecraft.commands.arguments.AngleArgument; -import net.minecraft.commands.arguments.ColorArgument; -import net.minecraft.commands.arguments.ComponentArgument; -import net.minecraft.commands.arguments.CompoundTagArgument; -import net.minecraft.commands.arguments.DimensionArgument; -import net.minecraft.commands.arguments.EntitySummonArgument; -import net.minecraft.commands.arguments.GameProfileArgument; -import net.minecraft.commands.arguments.ItemEnchantmentArgument; -import net.minecraft.commands.arguments.MessageArgument; -import net.minecraft.commands.arguments.MobEffectArgument; -import net.minecraft.commands.arguments.ObjectiveArgument; -import net.minecraft.commands.arguments.ObjectiveCriteriaArgument; -import net.minecraft.commands.arguments.OperationArgument; -import net.minecraft.commands.arguments.ParticleArgument; -import net.minecraft.commands.arguments.RangeArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; -import net.minecraft.commands.arguments.ScoreHolderArgument; -import net.minecraft.commands.arguments.ScoreboardSlotArgument; -import net.minecraft.commands.arguments.TeamArgument; -import net.minecraft.commands.arguments.TimeArgument; -import net.minecraft.commands.arguments.UuidArgument; -import net.minecraft.commands.arguments.coordinates.BlockPosArgument; -import net.minecraft.commands.arguments.coordinates.ColumnPosArgument; -import net.minecraft.commands.arguments.coordinates.RotationArgument; -import net.minecraft.commands.arguments.coordinates.SwizzleArgument; -import net.minecraft.commands.arguments.coordinates.Vec2Argument; -import net.minecraft.commands.arguments.coordinates.Vec3Argument; +import net.minecraft.commands.arguments.*; +import net.minecraft.commands.arguments.coordinates.*; import net.minecraft.commands.arguments.item.FunctionArgument; import net.minecraft.core.Registry; import net.minecraft.network.chat.Component.Serializer; @@ -130,6 +54,31 @@ import net.minecraft.server.MinecraftServer; import net.minecraft.server.ServerFunctionManager; import net.minecraft.world.phys.Vec2; +import org.bukkit.*; +import org.bukkit.World.Environment; +import org.bukkit.block.Biome; +import org.bukkit.block.Block; +import org.bukkit.block.data.BlockData; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.SimpleCommandMap; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.help.HelpTopic; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.Recipe; +import org.bukkit.loot.LootTable; +import org.bukkit.potion.PotionEffectType; + +import java.io.File; +import java.io.IOException; +import java.util.*; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; + +import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.*; /** * Common NMS code To ensure that this code actually works across all versions diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index 3a9928f672..b0cfdbf688 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -1,6 +1,5 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.nms.NMS_1_19_1_R1; import dev.jorel.commandapi.test.MockNMS; @@ -10,7 +9,7 @@ * replace this class with their own version that handles loads the correct class for thier version */ public interface CommandAPIVersionHandler { - static AbstractPlatform getPlatform() { + static AbstractPlatform getPlatform() { return new MockNMS(new NMS_1_19_1_R1()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java index 5235646a5f..cb5ffc0d78 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java @@ -1,105 +1,32 @@ package dev.jorel.commandapi.test; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; - -import java.io.File; -import java.io.IOException; -import java.lang.reflect.Field; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Optional; -import java.util.function.Function; -import java.util.function.Supplier; - -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.World; -import org.bukkit.command.CommandSender; -import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; -import org.mockito.Mockito; +import be.seeseemelk.mockbukkit.WorldMock; +import be.seeseemelk.mockbukkit.potion.MockPotionEffectType; import com.google.common.io.Files; import com.google.gson.GsonBuilder; import com.mojang.authlib.GameProfile; import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.arguments.BoolArgumentType; -import com.mojang.brigadier.arguments.DoubleArgumentType; -import com.mojang.brigadier.arguments.FloatArgumentType; -import com.mojang.brigadier.arguments.IntegerArgumentType; -import com.mojang.brigadier.arguments.LongArgumentType; -import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.arguments.*; import com.mojang.brigadier.context.CommandContext; - -import be.seeseemelk.mockbukkit.WorldMock; -import be.seeseemelk.mockbukkit.potion.MockPotionEffectType; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.nms.NMS; import net.minecraft.SharedConstants; import net.minecraft.advancements.Advancement; import net.minecraft.advancements.Advancements; import net.minecraft.commands.CommandBuildContext; import net.minecraft.commands.CommandListenerWrapper; -import net.minecraft.commands.arguments.ArgumentAnchor; -import net.minecraft.commands.arguments.ArgumentAngle; -import net.minecraft.commands.arguments.ArgumentChat; -import net.minecraft.commands.arguments.ArgumentChatComponent; -import net.minecraft.commands.arguments.ArgumentChatFormat; -import net.minecraft.commands.arguments.ArgumentCriterionValue; -import net.minecraft.commands.arguments.ArgumentDimension; -import net.minecraft.commands.arguments.ArgumentEnchantment; -import net.minecraft.commands.arguments.ArgumentEntity; -import net.minecraft.commands.arguments.ArgumentEntitySummon; -import net.minecraft.commands.arguments.ArgumentInventorySlot; -import net.minecraft.commands.arguments.ArgumentMathOperation; -import net.minecraft.commands.arguments.ArgumentMinecraftKeyRegistered; -import net.minecraft.commands.arguments.ArgumentMobEffect; -import net.minecraft.commands.arguments.ArgumentNBTBase; -import net.minecraft.commands.arguments.ArgumentNBTKey; -import net.minecraft.commands.arguments.ArgumentNBTTag; -import net.minecraft.commands.arguments.ArgumentParticle; -import net.minecraft.commands.arguments.ArgumentProfile; -import net.minecraft.commands.arguments.ArgumentScoreboardCriteria; -import net.minecraft.commands.arguments.ArgumentScoreboardObjective; -import net.minecraft.commands.arguments.ArgumentScoreboardSlot; -import net.minecraft.commands.arguments.ArgumentScoreboardTeam; -import net.minecraft.commands.arguments.ArgumentScoreholder; -import net.minecraft.commands.arguments.ArgumentTime; -import net.minecraft.commands.arguments.ArgumentUUID; -import net.minecraft.commands.arguments.ResourceKeyArgument; -import net.minecraft.commands.arguments.ResourceOrTagLocationArgument; -import net.minecraft.commands.arguments.TemplateMirrorArgument; -import net.minecraft.commands.arguments.TemplateRotationArgument; +import net.minecraft.commands.arguments.*; import net.minecraft.commands.arguments.blocks.ArgumentBlockPredicate; import net.minecraft.commands.arguments.blocks.ArgumentTile; -import net.minecraft.commands.arguments.coordinates.ArgumentPosition; -import net.minecraft.commands.arguments.coordinates.ArgumentRotation; -import net.minecraft.commands.arguments.coordinates.ArgumentRotationAxis; -import net.minecraft.commands.arguments.coordinates.ArgumentVec2; -import net.minecraft.commands.arguments.coordinates.ArgumentVec2I; -import net.minecraft.commands.arguments.coordinates.ArgumentVec3; +import net.minecraft.commands.arguments.coordinates.*; import net.minecraft.commands.arguments.item.ArgumentItemPredicate; import net.minecraft.commands.arguments.item.ArgumentItemStack; import net.minecraft.commands.arguments.item.ArgumentTag; import net.minecraft.commands.synchronization.ArgumentTypeInfo; import net.minecraft.commands.synchronization.ArgumentTypeInfos; import net.minecraft.commands.synchronization.SingletonArgumentInfo; -import net.minecraft.commands.synchronization.brigadier.ArgumentSerializerString; -import net.minecraft.commands.synchronization.brigadier.DoubleArgumentInfo; -import net.minecraft.commands.synchronization.brigadier.FloatArgumentInfo; -import net.minecraft.commands.synchronization.brigadier.IntegerArgumentInfo; -import net.minecraft.commands.synchronization.brigadier.LongArgumentInfo; +import net.minecraft.commands.synchronization.brigadier.*; import net.minecraft.core.BlockPosition; import net.minecraft.resources.MinecraftKey; import net.minecraft.server.AdvancementDataWorld; @@ -110,6 +37,25 @@ import net.minecraft.server.players.PlayerList; import net.minecraft.server.players.UserCache; import net.minecraft.world.phys.Vec3D; +import org.bukkit.*; +import org.bukkit.command.CommandSender; +import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.Player; +import org.bukkit.potion.PotionEffectType; +import org.jetbrains.annotations.NotNull; +import org.mockito.Mockito; + +import java.io.File; +import java.io.IOException; +import java.lang.reflect.Field; +import java.nio.charset.StandardCharsets; +import java.util.*; +import java.util.function.Function; +import java.util.function.Supplier; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; public class MockNMS extends ArgumentNMS { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java index ed462e1a19..98b12f3c01 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java @@ -20,75 +20,21 @@ *******************************************************************************/ package dev.jorel.commandapi; +import de.tr7zw.changeme.nbtapi.NBTContainer; +import dev.jorel.commandapi.arguments.*; +import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; +import dev.jorel.commandapi.exceptions.InvalidNumberException; +import dev.jorel.commandapi.exceptions.UnknownArgumentException; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; + import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import org.bukkit.command.CommandSender; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -import de.tr7zw.changeme.nbtapi.NBTContainer; -import dev.jorel.commandapi.arguments.AdvancementArgument; -import dev.jorel.commandapi.arguments.AdventureChatArgument; -import dev.jorel.commandapi.arguments.AdventureChatComponentArgument; -import dev.jorel.commandapi.arguments.AngleArgument; -import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.AxisArgument; -import dev.jorel.commandapi.arguments.BiomeArgument; -import dev.jorel.commandapi.arguments.BlockPredicateArgument; -import dev.jorel.commandapi.arguments.BlockStateArgument; -import dev.jorel.commandapi.arguments.BooleanArgument; -import dev.jorel.commandapi.arguments.ChatArgument; -import dev.jorel.commandapi.arguments.ChatColorArgument; -import dev.jorel.commandapi.arguments.ChatComponentArgument; -import dev.jorel.commandapi.arguments.CommandAPIArgumentType; -import dev.jorel.commandapi.arguments.DoubleArgument; -import dev.jorel.commandapi.arguments.EnchantmentArgument; -import dev.jorel.commandapi.arguments.EntitySelector; -import dev.jorel.commandapi.arguments.EntitySelectorArgument; -import dev.jorel.commandapi.arguments.EntityTypeArgument; -import dev.jorel.commandapi.arguments.EnvironmentArgument; -import dev.jorel.commandapi.arguments.FloatArgument; -import dev.jorel.commandapi.arguments.FloatRangeArgument; -import dev.jorel.commandapi.arguments.FunctionArgument; -import dev.jorel.commandapi.arguments.GreedyStringArgument; -import dev.jorel.commandapi.arguments.IntegerArgument; -import dev.jorel.commandapi.arguments.IntegerRangeArgument; -import dev.jorel.commandapi.arguments.ItemStackArgument; -import dev.jorel.commandapi.arguments.ItemStackPredicateArgument; -import dev.jorel.commandapi.arguments.Location2DArgument; -import dev.jorel.commandapi.arguments.LocationArgument; -import dev.jorel.commandapi.arguments.LocationType; -import dev.jorel.commandapi.arguments.LongArgument; -import dev.jorel.commandapi.arguments.LootTableArgument; -import dev.jorel.commandapi.arguments.MathOperationArgument; -import dev.jorel.commandapi.arguments.MultiLiteralArgument; -import dev.jorel.commandapi.arguments.NBTCompoundArgument; -import dev.jorel.commandapi.arguments.NamespacedKeyArgument; -import dev.jorel.commandapi.arguments.ObjectiveArgument; -import dev.jorel.commandapi.arguments.ObjectiveCriteriaArgument; -import dev.jorel.commandapi.arguments.OfflinePlayerArgument; -import dev.jorel.commandapi.arguments.ParticleArgument; -import dev.jorel.commandapi.arguments.PlayerArgument; -import dev.jorel.commandapi.arguments.PotionEffectArgument; -import dev.jorel.commandapi.arguments.RecipeArgument; -import dev.jorel.commandapi.arguments.RotationArgument; -import dev.jorel.commandapi.arguments.ScoreHolderArgument; -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; -import dev.jorel.commandapi.arguments.ScoreboardSlotArgument; -import dev.jorel.commandapi.arguments.SoundArgument; -import dev.jorel.commandapi.arguments.StringArgument; -import dev.jorel.commandapi.arguments.TeamArgument; -import dev.jorel.commandapi.arguments.TextArgument; -import dev.jorel.commandapi.arguments.TimeArgument; -import dev.jorel.commandapi.arguments.UUIDArgument; -import dev.jorel.commandapi.exceptions.InvalidNumberException; -import dev.jorel.commandapi.exceptions.UnknownArgumentException; - /** * A command parsing system that converts string arguments into something way * more useful @@ -131,7 +77,7 @@ public AdvancedConverter(String command) { public void convert() { String commandName = command.split(" ")[0]; - List> arguments; + List> arguments; try { arguments = parseArguments(command); } catch (UnknownArgumentException | InvalidNumberException e) { @@ -148,7 +94,7 @@ public void convert() { public void convertCommand() { String commandName = command.split(" ")[0]; - List> arguments; + List> arguments; try { arguments = parseArguments(command); } catch (UnknownArgumentException | InvalidNumberException e) { @@ -172,11 +118,11 @@ public void convertCommand() { * - speed (walk|fly) [0..10] [minecraft:game_profile] * */ - private List> parseArguments(String command) throws UnknownArgumentException, InvalidNumberException { - List> arguments = new ArrayList<>(); + private List> parseArguments(String command) throws UnknownArgumentException, InvalidNumberException { + List> arguments = new ArrayList<>(); String[] parts = command.split(" "); for (argumentIndex = 1; argumentIndex < parts.length; argumentIndex++) { - Argument argument = parseArgument(parts[argumentIndex]); + Argument argument = parseArgument(parts[argumentIndex]); if (argument != null) { arguments.add(argument); } @@ -196,7 +142,7 @@ private double parseValue(String bound) throws InvalidNumberException { } } - private Argument parseRange(String nodeName, String[] bounds) throws InvalidNumberException { + private Argument parseRange(String nodeName, String[] bounds) throws InvalidNumberException { if (bounds.length == 1) { // x.. double value = parseValue(bounds[0]); @@ -227,7 +173,7 @@ private double parseValue(String bound) throws InvalidNumberException { /* * CodeFactor will always complain about this method because it's really bulky - * and adding a generator (i.e. Function>) inside the + * and adding a generator (i.e. Function>) inside the * CommandAPIArgumentType class would be better, EXCEPT in practice, this is * worse because then CommandAPIArgumentType would have to depend on every * argument and every argument depends on CommandAPIArgumentType, so that would @@ -237,7 +183,7 @@ private double parseValue(String bound) throws InvalidNumberException { * Additionally, we only need this for the plugin version of the CommandAPI, not * the main API. */ - private Argument parseDefinedArgumentType(String argumentType, String nodeName) throws UnknownArgumentException { + private Argument parseDefinedArgumentType(String argumentType, String nodeName) throws UnknownArgumentException { return switch (CommandAPIArgumentType.fromInternal(argumentType)) { case ADVANCEMENT -> new AdvancementArgument(nodeName); case ADVENTURE_CHAT -> new AdventureChatArgument(nodeName); @@ -292,7 +238,7 @@ private double parseValue(String bound) throws InvalidNumberException { }; } - private Argument parseArgument(String argument) throws UnknownArgumentException, InvalidNumberException { + private Argument parseArgument(String argument) throws UnknownArgumentException, InvalidNumberException { Matcher literalMatcher = LITERAL_PATTERN.matcher(argument); Matcher argumentMatcher = ARGUMENT_PATTERN.matcher(argument); if (literalMatcher.matches()) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index 6836b42060..a7af6520ce 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -20,25 +20,8 @@ *******************************************************************************/ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractPlatform; import dev.jorel.commandapi.exceptions.UnsupportedVersionException; -import dev.jorel.commandapi.nms.NMS_1_13; -import dev.jorel.commandapi.nms.NMS_1_13_1; -import dev.jorel.commandapi.nms.NMS_1_13_2; -import dev.jorel.commandapi.nms.NMS_1_14; -import dev.jorel.commandapi.nms.NMS_1_14_3; -import dev.jorel.commandapi.nms.NMS_1_14_4; -import dev.jorel.commandapi.nms.NMS_1_15; -import dev.jorel.commandapi.nms.NMS_1_16_4_R3; -import dev.jorel.commandapi.nms.NMS_1_16_R1; -import dev.jorel.commandapi.nms.NMS_1_16_R2; -import dev.jorel.commandapi.nms.NMS_1_16_R3; -import dev.jorel.commandapi.nms.NMS_1_17; -import dev.jorel.commandapi.nms.NMS_1_17_R1; -import dev.jorel.commandapi.nms.NMS_1_18_R1; -import dev.jorel.commandapi.nms.NMS_1_18_R2; -import dev.jorel.commandapi.nms.NMS_1_19_1_R1; -import dev.jorel.commandapi.nms.NMS_1_19_R1; +import dev.jorel.commandapi.nms.*; import org.bukkit.Bukkit; /** @@ -65,7 +48,7 @@ public interface CommandAPIVersionHandler { * * @return an instance of NMS which can run on the specified Minecraft version */ - static AbstractPlatform getPlatform() { + static AbstractPlatform getPlatform() { if (CommandAPI.getConfiguration().shouldUseLatestNMSVersion()) { return new NMS_1_19_1_R1(); } else { diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index 9b5d5f08ae..31e39e038e 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -1,9 +1,7 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractPlatform; - public interface CommandAPIVersionHandler { - static AbstractPlatform getPlatform() { + static AbstractPlatform getPlatform() { return new SpongePlatform(); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java index 67994ef0e9..1695de6dc5 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java @@ -1,20 +1,17 @@ package dev.jorel.commandapi; -import java.util.List; - -import org.spongepowered.api.command.manager.CommandManager; -import org.spongepowered.api.entity.living.player.server.ServerPlayer; - import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.tree.LiteralCommandNode; - -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.abstractions.AbstractPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlayer; import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.AbstractPlayer; +import org.spongepowered.api.command.manager.CommandManager; +import org.spongepowered.api.entity.living.player.server.ServerPlayer; + +import java.util.List; // See https://docs.spongepowered.org/stable/en/plugin/migrating-from-7-to-8.html#command-creation-and-registration diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongeCommandSender.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongeCommandSender.java index f6f3199019..cf9ee86a16 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongeCommandSender.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongeCommandSender.java @@ -1,6 +1,4 @@ package dev.jorel.commandapi.commandsenders; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; - public interface SpongeCommandSender extends AbstractCommandSender { } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongePlayer.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongePlayer.java index f9a4e7139d..66ed25547d 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongePlayer.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/commandsenders/SpongePlayer.java @@ -1,8 +1,6 @@ package dev.jorel.commandapi.commandsenders; import org.spongepowered.api.entity.living.player.server.ServerPlayer; -import dev.jorel.commandapi.abstractions.AbstractPlayer; - public class SpongePlayer extends AbstractPlayer implements SpongeCommandSender { private final ServerPlayer player; diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index 37111f3d8a..2c37d0ed92 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -1,8 +1,9 @@ package dev.jorel.commandapi; import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.arguments.Argument; -public class CommandAPICommand extends AbstractCommandAPICommand implements VelocityExecutable { +public class CommandAPICommand extends AbstractCommandAPICommand, CommandSource> implements VelocityExecutable { /** * Creates a new command builder * diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index 356b497bf9..1ed0ac544d 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -1,9 +1,7 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.abstractions.AbstractPlatform; - public interface CommandAPIVersionHandler { - static AbstractPlatform getPlatform() { + static AbstractPlatform getPlatform() { return new VelocityPlatform(); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java index a2b31e0bd9..2ddf610c71 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java @@ -1,8 +1,9 @@ package dev.jorel.commandapi; import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.arguments.Argument; -public class CommandTree extends AbstractCommandTree implements VelocityExecutable { +public class CommandTree extends AbstractCommandTree, CommandSource> implements VelocityExecutable { /** * Creates a main root node for a command tree with a given command name * diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecution.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecution.java deleted file mode 100644 index 9a569b1327..0000000000 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecution.java +++ /dev/null @@ -1,23 +0,0 @@ -package dev.jorel.commandapi; - -import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.arguments.Argument; - -import java.util.List; - -public class VelocityExecution extends Execution { - public VelocityExecution(List> arguments, CustomCommandExecutor> executor) { - super(arguments, executor); - } - - @Override - protected AbstractCommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta) { - return new CommandAPICommand(meta); - } - - @Override - protected Execution newConcreteExecution(List> arguments, CustomCommandExecutor> executor) { - return new VelocityExecution(arguments, executor); - } -} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index 6c50a63b1c..b737590fa4 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -1,7 +1,5 @@ package dev.jorel.commandapi; -import java.util.List; - import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.context.CommandContext; @@ -10,18 +8,17 @@ import com.velocitypowered.api.command.BrigadierCommand; import com.velocitypowered.api.command.CommandManager; import com.velocitypowered.api.command.CommandSource; - import com.velocitypowered.api.proxy.ConsoleCommandSource; import com.velocitypowered.api.proxy.Player; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; -import dev.jorel.commandapi.abstractions.AbstractPlatform; -import dev.jorel.commandapi.abstractions.AbstractPlayer; -import dev.jorel.commandapi.arguments.*; -import dev.jorel.commandapi.commandsenders.VelocityCommandSender; -import dev.jorel.commandapi.commandsenders.VelocityConsoleCommandSender; -import dev.jorel.commandapi.commandsenders.VelocityPlayer; - -public class VelocityPlatform extends AbstractPlatform { +import dev.jorel.commandapi.arguments.Argument; +import dev.jorel.commandapi.arguments.LiteralArgument; +import dev.jorel.commandapi.arguments.MultiLiteralArgument; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.*; + +import java.util.List; + +public class VelocityPlatform extends AbstractPlatform, CommandSource, CommandSource> { private CommandManager commandManager; private static VelocityPlatform instance; @@ -138,17 +135,17 @@ public void updateRequirements(AbstractPlayer player) { } @Override - public Execution newConcreteExecution(List> argument, CustomCommandExecutor> executor) { - return new VelocityExecution(argument, executor); + public Argument newConcreteMultiLiteralArgument(String[] literals) { + return new MultiLiteralArgument(literals); } @Override - public AbstractMultiLiteralArgument newConcreteMultiLiteralArgument(String[] literals) { - return new MultiLiteralArgument(literals); + public Argument newConcreteLiteralArgument(String literal) { + return new LiteralArgument(literal); } @Override - public AbstractLiteralArgument newConcreteLiteralArgument(String literal) { - return new LiteralArgument(literal); + public AbstractCommandAPICommand, CommandSource> newConcreteCommandAPICommand(CommandMetaData meta) { + return new CommandAPICommand(meta); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java deleted file mode 100644 index 12c1a006d3..0000000000 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java +++ /dev/null @@ -1,56 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.arguments; - -import com.mojang.brigadier.arguments.StringArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.abstractions.AbstractPlatform; - -/** - * An argument that represents text, encased in quotes - */ -public abstract class AbstractTextArgument,CommandSender> extends Argument { - - /** - * A string argument for one word, or multiple words encased in quotes - * @param nodeName the name of the node for this argument - */ - public AbstractTextArgument(String nodeName) { - super(nodeName, StringArgumentType.string()); - } - - @Override - public Class getPrimitiveType() { - return String.class; - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.PRIMITIVE_TEXT; - } - - @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return cmdCtx.getArgument(key, getPrimitiveType()); - } -} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java new file mode 100644 index 0000000000..84579d3bce --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -0,0 +1,22 @@ +package dev.jorel.commandapi.arguments; + +import com.mojang.brigadier.arguments.ArgumentType; +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.VelocityExecutable; + +/** + * The core abstract class for Command API arguments + * + * @param The type of the underlying object that this argument casts to + */ +public abstract class Argument extends AbstractArgument, Argument, CommandSource> implements VelocityExecutable> { + /** + * Constructs an argument with a given NMS/brigadier type. + * + * @param nodeName the name to assign to this argument node + * @param rawType the NMS or brigadier type to be used for this argument + */ + protected Argument(String nodeName, ArgumentType rawType) { + super(nodeName, rawType); + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java index 50ea2f5249..d03eefa182 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -20,21 +20,39 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import com.mojang.brigadier.arguments.BoolArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.VelocityExecutable; +import dev.jorel.commandapi.AbstractPlatform; /** * An argument that represents primitive Java booleans * * @apiNote Returns a {@link boolean} */ -public class BooleanArgument extends AbstractBooleanArgument implements VelocityExecutable { +public class BooleanArgument extends SafeOverrideableArgument { /** * Constructs a Boolean argument with a given node name * * @param nodeName the name of the node for argument */ public BooleanArgument(String nodeName) { - super(nodeName); + super(nodeName, BoolArgumentType.bool(), String::valueOf); + } + + @Override + public Class getPrimitiveType() { + return boolean.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_BOOLEAN; + } + + @Override + public Boolean parseArgument(AbstractPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java index 874fca61cb..7eb6d1135f 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -20,22 +20,26 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import com.mojang.brigadier.arguments.DoubleArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.VelocityExecutable; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.InvalidRangeException; /** * An argument that represents primitive Java doubles - * + * * @apiNote Returns a {@link double} */ -public class DoubleArgument extends AbstractDoubleArgument implements VelocityExecutable { +public class DoubleArgument extends SafeOverrideableArgument { /** * A double argument * * @param nodeName the name of the node for this argument */ public DoubleArgument(String nodeName) { - super(nodeName); + super(nodeName, DoubleArgumentType.doubleArg(), String::valueOf); } /** @@ -45,7 +49,7 @@ public DoubleArgument(String nodeName) { * @param min The minimum value this argument can take (inclusive) */ public DoubleArgument(String nodeName, double min) { - super(nodeName, min); + super(nodeName, DoubleArgumentType.doubleArg(min), String::valueOf); } /** @@ -56,6 +60,24 @@ public DoubleArgument(String nodeName, double min) { * @param max The maximum value this argument can take (inclusive) */ public DoubleArgument(String nodeName, double min, double max) { - super(nodeName, min, max); + super(nodeName, DoubleArgumentType.doubleArg(min, max), String::valueOf); + if (max < min) { + throw new InvalidRangeException(); + } + } + + @Override + public Class getPrimitiveType() { + return double.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_DOUBLE; + } + + @Override + public Double parseArgument(AbstractPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java index 3254f4c43a..bc37d611d7 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -20,20 +20,24 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import com.mojang.brigadier.arguments.FloatArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.VelocityExecutable; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.InvalidRangeException; /** * An argument that represents primitive Java floats */ -public class FloatArgument extends AbstractFloatArgument implements VelocityExecutable { +public class FloatArgument extends SafeOverrideableArgument { /** * A float argument * * @param nodeName the name of the node for this argument */ public FloatArgument(String nodeName) { - super(nodeName); + super(nodeName, FloatArgumentType.floatArg(), String::valueOf); } /** @@ -43,7 +47,7 @@ public FloatArgument(String nodeName) { * @param min The minimum value this argument can take (inclusive) */ public FloatArgument(String nodeName, float min) { - super(nodeName, min); + super(nodeName, FloatArgumentType.floatArg(min), String::valueOf); } /** @@ -54,6 +58,25 @@ public FloatArgument(String nodeName, float min) { * @param max The maximum value this argument can take (inclusive) */ public FloatArgument(String nodeName, float min, float max) { - super(nodeName, min, max); + super(nodeName, FloatArgumentType.floatArg(min, max), String::valueOf); + if (max < min) { + throw new InvalidRangeException(); + } + } + + @Override + public Class getPrimitiveType() { + return float.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_FLOAT; + } + + @Override + public Float parseArgument(AbstractPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java index ff3f4a2120..423f19d1db 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -20,19 +20,38 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.VelocityExecutable; +import dev.jorel.commandapi.AbstractPlatform; /** * An argument that represents arbitrary strings */ -public class GreedyStringArgument extends AbstractGreedyStringArgument implements VelocityExecutable { +public class GreedyStringArgument extends SafeOverrideableArgument implements IGreedyArgument { /** * A string argument for a string of any length * * @param nodeName the name of the node for this argument */ public GreedyStringArgument(String nodeName) { - super(nodeName); + super(nodeName, StringArgumentType.greedyString(), s -> s); + } + + @Override + public Class getPrimitiveType() { + return String.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_GREEDY_STRING; + } + + @Override + public String parseArgument(AbstractPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java index 55f9857054..08596f8550 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -20,20 +20,24 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import com.mojang.brigadier.arguments.IntegerArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.VelocityExecutable; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.InvalidRangeException; /** * An argument that represents primitive Java ints */ -public class IntegerArgument extends AbstractIntegerArgument implements VelocityExecutable { +public class IntegerArgument extends SafeOverrideableArgument { /** * An integer argument * * @param nodeName the name of the node for this argument */ public IntegerArgument(String nodeName) { - super(nodeName); + super(nodeName, IntegerArgumentType.integer(), String::valueOf); } /** @@ -43,7 +47,7 @@ public IntegerArgument(String nodeName) { * @param min The minimum value this argument can take (inclusive) */ public IntegerArgument(String nodeName, int min) { - super(nodeName, min); + super(nodeName, IntegerArgumentType.integer(min), String::valueOf); } /** @@ -54,6 +58,25 @@ public IntegerArgument(String nodeName, int min) { * @param max The maximum value this argument can take (inclusive) */ public IntegerArgument(String nodeName, int min, int max) { - super(nodeName, min, max); + super(nodeName, IntegerArgumentType.integer(min, max), String::valueOf); + if (max < min) { + throw new InvalidRangeException(); + } + } + + @Override + public Class getPrimitiveType() { + return int.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_INTEGER; + } + + @Override + public Integer parseArgument(AbstractPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index fc31f15813..ff99117b38 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -20,19 +20,66 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.VelocityExecutable; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.BadLiteralException; /** * A pseudo-argument representing a single literal string */ -public class LiteralArgument extends AbstractLiteralArgument implements VelocityExecutable { +public class LiteralArgument extends Argument implements ILiteralArgument> { + private final String literal; + /** * A literal argument. Only takes one string value which cannot be modified * * @param literal the string literal that this argument will represent */ - public LiteralArgument(String literal) { - super(literal); + public LiteralArgument(final String literal) { + /* + * The literal argument builder is NOT technically an argument. + * Therefore, it doesn't have an ArgumentType. + * + * This is a wrapper for the object "LiteralArgumentBuilder<>" + */ + super(literal, null); + + if (literal == null) { + throw new BadLiteralException(true); + } + if (literal.isEmpty()) { + throw new BadLiteralException(false); + } + this.literal = literal; + this.setListed(false); + } + + + @Override + public Class getPrimitiveType() { + return String.class; + } + + /** + * Returns the literal string represented by this argument + * + * @return the literal string represented by this argument + */ + @Override + public String getLiteral() { + return literal; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.LITERAL; + } + + @Override + public String parseArgument(AbstractPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return literal; } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java index c21533588b..1e9d0b1701 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -20,30 +20,34 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import com.mojang.brigadier.arguments.LongArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.VelocityExecutable; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.InvalidRangeException; /** * An argument that represents primitive Java longs */ -public class LongArgument extends AbstractLongArgument implements VelocityExecutable { +public class LongArgument extends SafeOverrideableArgument { /** * A long argument * * @param nodeName the name of the node for this argument */ public LongArgument(String nodeName) { - super(nodeName); + super(nodeName, LongArgumentType.longArg(), String::valueOf); } /** * A long argument with a minimum value * * @param nodeName the name of the node for this argument - * @param value The minimum value this argument can take (inclusive) + * @param min The minimum value this argument can take (inclusive) */ - public LongArgument(String nodeName, long value) { - super(nodeName, value); + public LongArgument(String nodeName, long min) { + super(nodeName, LongArgumentType.longArg(min), String::valueOf); } /** @@ -54,6 +58,25 @@ public LongArgument(String nodeName, long value) { * @param max The maximum value this argument can take (inclusive) */ public LongArgument(String nodeName, long min, long max) { - super(nodeName, min, max); + super(nodeName, LongArgumentType.longArg(min, max), String::valueOf); + if(max < min) { + throw new InvalidRangeException(); + } + } + + @Override + public Class getPrimitiveType() { + return long.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_LONG; + } + + @Override + public Long parseArgument(AbstractPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index d607dc5093..3e0d82e356 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -20,18 +20,56 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.VelocityExecutable; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.exceptions.BadLiteralException; /** * An argument that represents multiple LiteralArguments */ -public class MultiLiteralArgument extends AbstractMultiLiteralArgument implements VelocityExecutable { +public class MultiLiteralArgument extends Argument implements IMultiLiteralArgument> { + private final String[] literals; + /** * A multiliteral argument. Takes in string literals which cannot be modified * @param literals the literals that this argument represents */ - public MultiLiteralArgument(String... literals) { - super(literals); + public MultiLiteralArgument(final String... literals) { + super(null, null); + if(literals == null) { + throw new BadLiteralException(true); + } + if(literals.length == 0) { + throw new BadLiteralException(false); + } + this.literals = literals; + } + + @Override + public Class getPrimitiveType() { + return String.class; + } + + /** + * Returns the literals that are present in this argument + * @return the literals that are present in this argument + */ + @Override + public String[] getLiterals() { + return literals; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.MULTI_LITERAL; } + + @Override + public String parseArgument(AbstractPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + throw new IllegalStateException("Cannot parse MultiLiteralArgument"); + } + } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java new file mode 100644 index 0000000000..59d00d108b --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/SafeOverrideableArgument.java @@ -0,0 +1,36 @@ +package dev.jorel.commandapi.arguments; + +import com.mojang.brigadier.arguments.ArgumentType; +import com.velocitypowered.api.command.CommandSource; + +import java.util.function.Function; + +/** + * An interface declaring methods required to override argument suggestions + * + * @param The type of the underlying object that this argument casts to + * @param A custom type which is represented by this argument. For example, + * a {@link StringArgument} will have a custom type + * String + */ +public abstract class SafeOverrideableArgument extends Argument implements ISafeOverrideableArgument, Argument, CommandSource> { + private final Function mapper; + + /** + * Instantiates this argument and assigns the mapper to the provided mapper + * + * @param nodeName the node name of this argument + * @param rawType the NMS raw argument type of this argument + * @param mapper the mapping function that maps this argument type to a string + * for suggestions + */ + protected SafeOverrideableArgument(String nodeName, ArgumentType rawType, Function mapper) { + super(nodeName, rawType); + this.mapper = mapper; + } + + @Override + public Function getMapper() { + return mapper; + } +} diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java index ed8091fa27..2408398489 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -20,19 +20,37 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; +import com.mojang.brigadier.arguments.StringArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.VelocityExecutable; +import dev.jorel.commandapi.AbstractPlatform; /** * An argument that represents a simple String */ -public class StringArgument extends AbstractStringArgument implements VelocityExecutable { +public class StringArgument extends Argument { /** * A string argument for one word - * * @param nodeName the name of the node for this argument */ public StringArgument(String nodeName) { - super(nodeName); + super(nodeName, StringArgumentType.word()); + } + + @Override + public Class getPrimitiveType() { + return String.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.PRIMITIVE_STRING; + } + + @Override + public String parseArgument(AbstractPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java similarity index 81% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java rename to commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java index 703170296a..8e6fee166d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractTextArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -23,19 +23,19 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; - -import dev.jorel.commandapi.abstractions.AbstractPlatform; +import com.velocitypowered.api.command.CommandSource; +import dev.jorel.commandapi.AbstractPlatform; /** * An argument that represents text, encased in quotes */ -public abstract class AbstractTextArgument,CommandSender> extends Argument { - +public class TextArgument extends Argument { /** * A string argument for one word, or multiple words encased in quotes + * * @param nodeName the name of the node for this argument */ - public AbstractTextArgument(String nodeName) { + public TextArgument(String nodeName) { super(nodeName, StringArgumentType.string()); } @@ -43,15 +43,15 @@ public AbstractTextArgument(String nodeName) { public Class getPrimitiveType() { return String.class; } - + @Override public CommandAPIArgumentType getArgumentType() { return CommandAPIArgumentType.PRIMITIVE_TEXT; } - + @Override - public String parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(AbstractPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityCommandSender.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityCommandSender.java index 2dfc137097..f7d50c272e 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityCommandSender.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityCommandSender.java @@ -1,7 +1,6 @@ package dev.jorel.commandapi.commandsenders; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.abstractions.AbstractCommandSender; public interface VelocityCommandSender extends AbstractCommandSender { } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java index d4a795f191..22c5fc46af 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityConsoleCommandSender.java @@ -1,8 +1,6 @@ package dev.jorel.commandapi.commandsenders; import com.velocitypowered.api.proxy.ConsoleCommandSource; -import dev.jorel.commandapi.abstractions.AbstractConsoleCommandSender; - public class VelocityConsoleCommandSender extends AbstractConsoleCommandSender implements VelocityCommandSender { private final ConsoleCommandSource source; diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java index fbe85ede85..7566ab551e 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/commandsenders/VelocityPlayer.java @@ -1,8 +1,6 @@ package dev.jorel.commandapi.commandsenders; import com.velocitypowered.api.proxy.Player; -import dev.jorel.commandapi.abstractions.AbstractPlayer; - public class VelocityPlayer extends AbstractPlayer implements VelocityCommandSender { private final Player player; From f86400545ef6cd3aadec92af166cc84f889bc2bc Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 26 Oct 2022 18:14:07 -0400 Subject: [PATCH 076/638] Make IChainableBuilder#instance safe by overriding it in base classes --- .../main/java/dev/jorel/commandapi/IChainableBuilder.java | 5 +---- .../main/java/dev/jorel/commandapi/CommandAPICommand.java | 5 +++++ .../src/main/java/dev/jorel/commandapi/CommandTree.java | 5 +++++ .../main/java/dev/jorel/commandapi/arguments/Argument.java | 5 +++++ .../main/java/dev/jorel/commandapi/CommandAPICommand.java | 5 +++++ .../src/main/java/dev/jorel/commandapi/CommandTree.java | 5 +++++ .../main/java/dev/jorel/commandapi/arguments/Argument.java | 5 +++++ 7 files changed, 31 insertions(+), 4 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/IChainableBuilder.java b/commandapi-core/src/main/java/dev/jorel/commandapi/IChainableBuilder.java index 2e26d2068a..723d0eabb7 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/IChainableBuilder.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/IChainableBuilder.java @@ -8,8 +8,5 @@ public interface IChainableBuilder { /** * Returns the instance of this class with the class Impl. Used for chaining builder methods. */ - @SuppressWarnings("unchecked") - default Impl instance() { - return (Impl) this; - } + Impl instance(); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index 9c9eef3ee6..c8aafb7bdb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -17,4 +17,9 @@ public CommandAPICommand(String commandName) { protected CommandAPICommand newConcreteCommandAPICommand(CommandMetaData metaData) { return new CommandAPICommand(metaData); } + + @Override + public CommandAPICommand instance() { + return this; + } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java index 57d50bda6f..3ef4b53fa2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandTree.java @@ -12,4 +12,9 @@ public class CommandTree extends AbstractCommandTree, C public CommandTree(String commandName) { super(commandName); } + + @Override + public CommandTree instance() { + return this; + } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java index ed188b1fc3..9168cc6ea6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -19,4 +19,9 @@ public abstract class Argument extends AbstractArgument, Argum protected Argument(String nodeName, ArgumentType rawType) { super(nodeName, rawType); } + + @Override + public Argument instance() { + return this; + } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java index 2c37d0ed92..cdd1de7977 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPICommand.java @@ -26,4 +26,9 @@ protected CommandAPICommand(CommandMetaData metaData) { protected CommandAPICommand newConcreteCommandAPICommand(CommandMetaData metaData) { return new CommandAPICommand(metaData); } + + @Override + public CommandAPICommand instance() { + return this; + } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java index 2ddf610c71..fb5d2fca88 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandTree.java @@ -12,4 +12,9 @@ public class CommandTree extends AbstractCommandTree, C public CommandTree(String commandName) { super(commandName); } + + @Override + public CommandTree instance() { + return this; + } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java index 84579d3bce..b125821596 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/Argument.java @@ -19,4 +19,9 @@ public abstract class Argument extends AbstractArgument, Argum protected Argument(String nodeName, ArgumentType rawType) { super(nodeName, rawType); } + + @Override + public Argument instance() { + return this; + } } From 43a88ae9fa01dc17ecf80309ba06d80cd3d58e56 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 27 Oct 2022 08:01:53 -0400 Subject: [PATCH 077/638] Address and update some TODOs --- .../dev/jorel/commandapi/BaseHandler.java | 1 + .../java/dev/jorel/commandapi/CommandAPI.java | 3 +- .../commandsenders/AbstractCommandSender.java | 40 +++++++++++-------- .../dev/jorel/commandapi/BukkitPlatform.java | 1 + .../java/dev/jorel/commandapi/Converter.java | 4 -- .../jorel/commandapi/test/CommandTests.java | 2 +- 6 files changed, 28 insertions(+), 23 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 31aacc1f74..3b6e04a1bf 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -43,6 +43,7 @@ * @param The class for running platform commands * @param The class for running Brigadier commands */ +// TODO: Should we rename this back to CommandAPIHandler since it isn't subclassed anymore? @RequireField(in = CommandContext.class, name = "arguments", ofType = Map.class) public class BaseHandler, CommandSender, Source> { // TODO: Figure out what here gets moved to the common implementation and what diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 501bbfa9cb..2d917819b3 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -153,7 +153,6 @@ public static void onLoad(CommandAPIConfig config, CommandAPILogger logger) { * * @param plugin the plugin that this onEnable method is called from */ - // TODO: Is an Object the best way to reference a generic plugin? public static void onEnable(Object plugin) { BaseHandler.getInstance().onEnable(plugin); } @@ -239,6 +238,8 @@ public static void reloadDatapacks() { // I think this one makes more sense, though I don't really understand what this requirement update is achieving // exactly, since I thought it was just a special permissions check? I just need a sanity check that it makes // sense to put this here, and if not, how should we handle that backwards-compatibility issue? - WillKroboth + // Actually, I realized that this isn't quite fully backwards compatible since AbstractPlayer is not directly + // a Bukkit Player /** * Updates the requirements required for a given player to execute a command. * diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractCommandSender.java b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractCommandSender.java index 05950cf070..806ba11c42 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractCommandSender.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/commandsenders/AbstractCommandSender.java @@ -1,23 +1,29 @@ package dev.jorel.commandapi.commandsenders; +/** + * An interface that represents an object sends commands on some platform + * + * @param The class of the CommandSender being represented + */ public interface AbstractCommandSender { - // TODO: figure out what features this and the subclasses of this class need - - // We're assuming all command senders have some form of "permission" system - // in place to determine whether they are capable of actually running a command. - // In the case of Bukkit, there are two types of permissions: string-based - // permission and "op". Op permission, if set, always returns true. - // If no permission system is present, we assume the command sender is always - // able to run the command + /** + * Tests if this CommandSender has permission to use the given permission node + * + * @param permissionNode The node to check for + * @return True if this CommandSender holds the permission node, and false otherwise + */ + boolean hasPermission(String permissionNode); - public boolean hasPermission(String permissionNode); - - public boolean isOp(); - - // Need to be able to get the underlying command sender, NOT the underlying - // NMS command source (CLW/CSS). If we want to access that, we can do so by - // adding a second parameter if we so desire, but I don't think we need to - // go that far - public Source getSource(); + /** + * Tests if this CommandSender has `operator` status, or the ability to run any command + * + * @return True if this CommandSender is an operator, and false otherwise + */ + boolean isOp(); + + /** + * @return The underlying CommandSender object + */ + Source getSource(); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 09542752a2..1e6517d3c3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -412,6 +412,7 @@ public LiteralCommandNode registerCommandNode(LiteralArgumentBuilder Date: Thu, 27 Oct 2022 09:52:21 -0400 Subject: [PATCH 078/638] Fix Javadocs for CommandAPIVersionHandler --- .../jorel/commandapi/CommandAPIVersionHandler.java | 11 +++-------- .../jorel/commandapi/CommandAPIVersionHandler.java | 2 +- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index b765c07723..96788febf4 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -1,9 +1,7 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.arguments.AbstractArgument; - /** - * This file handles loadeding the correct platform implementation. The CommandAPIVersionHandler + * This file handles loading the correct platform implementation. The CommandAPIVersionHandler * file within the commandapi-core module is NOT used at run time. Instead, the platform modules * replace this class with their own version that handles loads the correct class for thier version */ @@ -12,12 +10,9 @@ public interface CommandAPIVersionHandler { /** * Returns an instance of the version's implementation of AbstractPlatform. * - * @param the implementation of AbstractArgument - * @param the command sender type - * @param the command source type - * @return an instance of AbstractPlatform which can run on the specified server version + * @return an instance of AbstractPlatform which can run on the currently active server */ - static , CommandSender, Source> AbstractPlatform getPlatform() { + static AbstractPlatform getPlatform() { throw new RuntimeException("You have the wrong copy of the CommandAPI! If you're shading, did you use commandapi-core instead of commandapi-{platform}-shade?"); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index b0cfdbf688..5eab2fc0b3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -4,7 +4,7 @@ import dev.jorel.commandapi.test.MockNMS; /** - * This file handles loadeding the correct platform implementation. The CommandAPIVersionHandler + * This file handles loading the correct platform implementation. The CommandAPIVersionHandler * file within the commandapi-core module is NOT used at run time. Instead, the platform modules * replace this class with their own version that handles loads the correct class for thier version */ From 4d6746f3e7bfc627f4e801b21004859abd144792 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 27 Oct 2022 10:11:23 -0400 Subject: [PATCH 079/638] Fix CommandAPIVersionHandler shade filtering --- .../commandapi-bukkit-plugin/pom.xml | 2 ++ .../commandapi-bukkit-shade/pom.xml | 2 ++ .../commandapi-sponge-plugin/pom.xml | 12 ++++++++++++ .../commandapi-sponge-shade/pom.xml | 12 ++++++++++++ .../commandapi-velocity-plugin/pom.xml | 12 ++++++++++++ .../commandapi-velocity-shade/pom.xml | 12 ++++++++++++ 6 files changed, 52 insertions(+) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml index c3eac64832..bce2dc1fa7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml @@ -120,6 +120,8 @@ shade + dev.jorel:commandapi-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml index 393673013a..a19efc2925 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml @@ -70,6 +70,8 @@ true + dev.jorel:commandapi-core diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml index 5c0ac13a50..385e903028 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml @@ -54,6 +54,18 @@ shade + + + + + dev.jorel:commandapi-core + + dev/jorel/commandapi/CommandAPIVersionHandler** + + + + diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml index 7188db8862..54b752d374 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml @@ -37,6 +37,18 @@ shade + + + + + dev.jorel:commandapi-core + + dev/jorel/commandapi/CommandAPIVersionHandler** + + + + diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml index e0c5a083ee..0d9eaf42ca 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml @@ -53,6 +53,18 @@ shade + + + + + dev.jorel:commandapi-core + + dev/jorel/commandapi/CommandAPIVersionHandler** + + + + diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml index 0b725e5a0d..7ee27f4a08 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml @@ -37,6 +37,18 @@ shade + + + + + dev.jorel:commandapi-core + + dev/jorel/commandapi/CommandAPIVersionHandler** + + + + From e482c42e9c2b2672849f47fa57fa71cdcaf76119 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 28 Oct 2022 08:05:17 -0400 Subject: [PATCH 080/638] Clean up a few more TODOs --- .../dev/jorel/commandapi/AbstractPlatform.java | 14 +------------- .../java/dev/jorel/commandapi/BaseHandler.java | 6 ------ .../dev/jorel/commandapi/CommandAPIConfig.java | 3 +-- 3 files changed, 2 insertions(+), 21 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java index 9388b577ca..6c529a44f2 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java @@ -19,15 +19,6 @@ * @param The class for running Brigadier commands */ public abstract class AbstractPlatform, CommandSender, Source> { - // TODO: Add methods that need platform-specific implementations - // All methods in bukkit NMS will probably also need to be here - - // ^ I don't think all bukkit NMS methods will have to be in here. - // Almost all Bukkit NMS methods should be implemented in Bukkit's - // AbstractPlatform implementation. The only things in here are going - // to be supppppppppper low-level stuff - - // Platform-specific loading, enabling, and disabling tasks public abstract void onLoad(); @@ -52,10 +43,7 @@ public abstract class AbstractPlatform getSuggestionProvider(SuggestionProviders suggestionProvider); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 3b6e04a1bf..cbbdc59c6b 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -28,9 +28,6 @@ import java.util.function.Predicate; -// For all intents and purposes (all platforms), we can use all of -// Brigadier's API (definitely the case for Spigot/Paper and Velocity). -// // TODO: We can use the Adventure API on Paper and Velocity (NOT SPIGOT) // and I'm not sure if we can use the Adventure API on Fabric, so let's // assume we can't until we figure that out. @@ -46,9 +43,6 @@ // TODO: Should we rename this back to CommandAPIHandler since it isn't subclassed anymore? @RequireField(in = CommandContext.class, name = "arguments", ofType = Map.class) public class BaseHandler, CommandSender, Source> { - // TODO: Figure out what here gets moved to the common implementation and what - // is platform-specific - private final static VarHandle COMMANDCONTEXT_ARGUMENTS; // Compute all var handles all in one go so we don't do this during main server diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java index 4347aec449..45a91ba014 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java @@ -31,8 +31,7 @@ */ public class CommandAPIConfig { - // The default configuration. This should mirror the commandapi-plugin - // config.yml file. + // The default configuration. This should mirror the commandapi-plugin config.yml file. boolean verboseOutput = false; boolean silentLogs = false; boolean useLatestNMSVersion = false; From 458b1c78bef32e76a573ace4624f33469339855f Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Fri, 28 Oct 2022 13:31:10 +0100 Subject: [PATCH 081/638] Set Maven version to 9.0.0-SNAPSHOT --- commandapi-annotations/pom.xml | 2 +- commandapi-core/pom.xml | 2 +- commandapi-examples/pom.xml | 2 +- .../commandapi-bukkit/commandapi-bukkit-core/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.17.1/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.17/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml | 2 +- .../commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml | 2 +- .../commandapi-bukkit-nms-dependency/pom.xml | 2 +- .../commandapi-bukkit/commandapi-bukkit-nms/pom.xml | 2 +- .../commandapi-bukkit/commandapi-bukkit-plugin-test/pom.xml | 2 +- .../commandapi-bukkit/commandapi-bukkit-plugin/pom.xml | 2 +- .../commandapi-bukkit/commandapi-bukkit-shade/pom.xml | 2 +- .../commandapi-bukkit/commandapi-bukkit-vh/pom.xml | 2 +- commandapi-platforms/commandapi-bukkit/pom.xml | 2 +- .../commandapi-sponge/commandapi-sponge-core/pom.xml | 2 +- .../commandapi-sponge/commandapi-sponge-plugin-test/pom.xml | 2 +- .../commandapi-sponge/commandapi-sponge-plugin/pom.xml | 2 +- .../commandapi-sponge/commandapi-sponge-shade/pom.xml | 2 +- commandapi-platforms/commandapi-sponge/pom.xml | 2 +- .../commandapi-velocity/commandapi-velocity-core/pom.xml | 2 +- .../commandapi-velocity/commandapi-velocity-plugin-test/pom.xml | 2 +- .../commandapi-velocity/commandapi-velocity-plugin/pom.xml | 2 +- .../commandapi-velocity/commandapi-velocity-shade/pom.xml | 2 +- commandapi-platforms/commandapi-velocity/pom.xml | 2 +- commandapi-platforms/pom.xml | 2 +- commandapi-preprocessor/pom.xml | 2 +- pom.xml | 2 +- 44 files changed, 44 insertions(+), 44 deletions(-) diff --git a/commandapi-annotations/pom.xml b/commandapi-annotations/pom.xml index f6273cac2e..d4a30fa07f 100644 --- a/commandapi-annotations/pom.xml +++ b/commandapi-annotations/pom.xml @@ -18,7 +18,7 @@ dev.jorel commandapi - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-annotations diff --git a/commandapi-core/pom.xml b/commandapi-core/pom.xml index b2129acc80..caf294c28b 100644 --- a/commandapi-core/pom.xml +++ b/commandapi-core/pom.xml @@ -19,7 +19,7 @@ commandapi dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-examples/pom.xml b/commandapi-examples/pom.xml index d1b8d5db06..e0ab595e37 100644 --- a/commandapi-examples/pom.xml +++ b/commandapi-examples/pom.xml @@ -7,7 +7,7 @@ commandapi dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-examples diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml index 65d13edbaf..c0c6e0701a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/pom.xml @@ -7,7 +7,7 @@ commandapi-bukkit dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml index c919362e35..faa5ca2653 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml index 02862e315d..0376c5bbab 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml index d66e91929f..001b36e0ce 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml index 1ca76cb5da..44c918e244 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml index 69896e3b04..390a522706 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml index 0186bea139..b5784d2636 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml index 656238f484..58c5d2ae34 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml index 926abcb72e..ff2e12e588 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml index 59d72c533d..8453e40925 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml index 6eefd0be91..dde89005d7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml index edd4b25ee4..d736c829db 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml index 54aaf49089..d8d022403e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/pom.xml index 8c0bdf9642..2263b05135 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/pom.xml @@ -19,7 +19,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/pom.xml index 8fd53f301a..18c7074edb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml index 26a2bd3943..e3d2ab5e9a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml index b06160fd6d..6921b8cd8f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml index 3a760323aa..bcabd57a9e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml index b03f4e87c2..ce80dfd3e2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml index 702079f7c7..516ab385ad 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml @@ -21,7 +21,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml index 48b084d59c..cd6c27fa04 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml @@ -19,7 +19,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-dependency/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-dependency/pom.xml index de853f415f..fca165ab3c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-dependency/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-dependency/pom.xml @@ -19,7 +19,7 @@ commandapi-bukkit-nms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/pom.xml index 73e618bf5b..34e5b7620b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/pom.xml @@ -26,7 +26,7 @@ commandapi-bukkit dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-bukkit-nms diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/pom.xml index c646adc29a..384345ba2c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/pom.xml @@ -25,7 +25,7 @@ commandapi-bukkit dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml index bce2dc1fa7..1a17cbe0ac 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml @@ -25,7 +25,7 @@ commandapi-bukkit dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml index a19efc2925..e5d2d82833 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml @@ -25,7 +25,7 @@ commandapi-bukkit dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/pom.xml index ff8563dfca..4eca69bdc3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/pom.xml @@ -24,7 +24,7 @@ commandapi-bukkit dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/commandapi-platforms/commandapi-bukkit/pom.xml b/commandapi-platforms/commandapi-bukkit/pom.xml index e4aa9cf801..e2128455dc 100644 --- a/commandapi-platforms/commandapi-bukkit/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/pom.xml @@ -7,7 +7,7 @@ commandapi-platforms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-bukkit diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml index 24dea3dde5..4ff526f9af 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml @@ -7,7 +7,7 @@ commandapi-sponge dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-sponge-core diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/pom.xml index d052bbe420..f75f2588f6 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/pom.xml +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin-test/pom.xml @@ -7,7 +7,7 @@ commandapi-sponge dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-sponge-plugin-test diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml index 385e903028..66f75b9fd2 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml @@ -7,7 +7,7 @@ commandapi-sponge dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-sponge-plugin diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml index 54b752d374..2d2c2da27e 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml @@ -7,7 +7,7 @@ commandapi-sponge dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-sponge-shade diff --git a/commandapi-platforms/commandapi-sponge/pom.xml b/commandapi-platforms/commandapi-sponge/pom.xml index 71cbc605dd..adda09f1f8 100644 --- a/commandapi-platforms/commandapi-sponge/pom.xml +++ b/commandapi-platforms/commandapi-sponge/pom.xml @@ -7,7 +7,7 @@ commandapi-platforms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-sponge diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml index 7c961aafcb..f8bb857208 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml @@ -7,7 +7,7 @@ commandapi-velocity dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-velocity-core diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/pom.xml index 2675ae26df..48f74aab6a 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/pom.xml +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin-test/pom.xml @@ -7,7 +7,7 @@ commandapi-velocity dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-velocity-plugin-test diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml index 0d9eaf42ca..b46391e17a 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml @@ -7,7 +7,7 @@ commandapi-velocity dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-velocity-plugin diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml index 7ee27f4a08..db454a63ce 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml @@ -7,7 +7,7 @@ commandapi-velocity dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-velocity-shade diff --git a/commandapi-platforms/commandapi-velocity/pom.xml b/commandapi-platforms/commandapi-velocity/pom.xml index 4ee32cf6c8..9bffe70662 100644 --- a/commandapi-platforms/commandapi-velocity/pom.xml +++ b/commandapi-platforms/commandapi-velocity/pom.xml @@ -7,7 +7,7 @@ commandapi-platforms dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-velocity diff --git a/commandapi-platforms/pom.xml b/commandapi-platforms/pom.xml index f1256446e8..6fe52f0f2d 100644 --- a/commandapi-platforms/pom.xml +++ b/commandapi-platforms/pom.xml @@ -7,7 +7,7 @@ commandapi dev.jorel - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-platforms diff --git a/commandapi-preprocessor/pom.xml b/commandapi-preprocessor/pom.xml index 4d7d5b9a16..a1f3f69df4 100644 --- a/commandapi-preprocessor/pom.xml +++ b/commandapi-preprocessor/pom.xml @@ -25,7 +25,7 @@ dev.jorel commandapi - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index f299124328..c82ee3579e 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ dev.jorel commandapi - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT pom commandapi From c0dab070af88fcd0e5f804aefc2fbab90c4c55a1 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Fri, 28 Oct 2022 13:31:25 +0100 Subject: [PATCH 082/638] Hotfix some JavaDoc linking errors --- .../src/main/java/dev/jorel/commandapi/RegisteredCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java index fd9757f574..936722954d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/RegisteredCommand.java @@ -7,7 +7,7 @@ * Class to store a registered command which has its command name and a list of * arguments as a string. The arguments are expected to be of the form * {@code node_name:class_name}, for example - * {@code value:}IntegerArgument. This class also contains the + * {@code value:IntegerArgument}. This class also contains the * information required to construct a meaningful help topic for a command */ public record RegisteredCommand( From bcdf11f06ab0b753ac3496ac2c110d973b8bf034 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Fri, 28 Oct 2022 13:42:56 +0100 Subject: [PATCH 083/638] Temporarily disable commandapi-velocity and commandapi-sponge for deployment purposes --- commandapi-platforms/pom.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/commandapi-platforms/pom.xml b/commandapi-platforms/pom.xml index 6fe52f0f2d..b276ae89f5 100644 --- a/commandapi-platforms/pom.xml +++ b/commandapi-platforms/pom.xml @@ -15,7 +15,8 @@ commandapi-bukkit - commandapi-velocity - commandapi-sponge - + + + + \ No newline at end of file From 30697f1529dba4091e4ed73435c712858dee11f3 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 29 Oct 2022 09:08:09 -0400 Subject: [PATCH 084/638] Make DefaultLogger use System.out.println so messages show up without needing a parent Logger --- .../java/dev/jorel/commandapi/CommandAPI.java | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 2d917819b3..395c3e0a41 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -86,14 +86,26 @@ public static CommandAPILogger getLogger() { return logger; } - private static class DefaultLogger extends Logger implements CommandAPILogger { - protected DefaultLogger() { - super("CommandAPI", null); - // TODO: Do we need to set the parent? -// setParent(Bukkit.getServer().getLogger()); - setLevel(Level.ALL); + private static class DefaultLogger implements CommandAPILogger { + private static final String PREFIX = "[CommandAPI] "; + private static final String YELLOW = "\u001B[33m"; + private static final String RED = "\u001B[31m"; + private static final String RESET = "\u001B[0m"; + + @Override + public void info(String message) { + System.out.println(PREFIX + message); } + @Override + public void warning(String message) { + System.out.println(YELLOW + PREFIX + message + RESET); + } + + @Override + public void severe(String message) { + System.out.println(RED + PREFIX + message + RESET); + } } // Loading, enabling, and disabling From 79706ddb5a186f10e1ba3e37a738483dbbde259e Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 29 Oct 2022 09:42:02 -0400 Subject: [PATCH 085/638] Fix FileNotFoundException when the folders for the command_registration.json file don't exist --- .../src/main/java/dev/jorel/commandapi/BukkitPlatform.java | 2 ++ .../src/main/java/dev/jorel/commandapi/test/Main.java | 2 +- .../test/java/dev/jorel/commandapi/test/ArgumentTests.java | 5 +++-- examples/maven-shaded/pom.xml | 4 ++-- .../maven-shaded/src/main/java/io/github/jorelali/Main.java | 4 +++- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 1e6517d3c3..f3c3bf2211 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -397,7 +397,9 @@ public void postCommandRegistration(LiteralCommandNode resultantNode, Li private void generateDispatcherFile() throws IOException { File file = CommandAPI.getConfiguration().getDispatcherFile(); if (file != null) { + CommandAPI.logInfo(file.getAbsolutePath()); try { + file.getParentFile().mkdirs(); file.createNewFile(); } catch (IOException e) { e.printStackTrace(System.out); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java index bac4722d83..b249b3cb4b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java @@ -17,7 +17,7 @@ public void onLoad() { CommandAPI.onLoad(new CommandAPIConfig() .useLatestNMSVersion(true) .silentLogs(true) - .dispatcherFile(new File("command_registration.json")) + .dispatcherFile(new File(getDataFolder(), "command_registration.json")) .initializeNBTAPI(NBTContainer.class, NBTContainer::new), new CommandAPIJavaLogger(getLogger()) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java index 83d1ea8a59..04f46c8aea 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java @@ -1,5 +1,5 @@ package dev.jorel.commandapi.test; -import java.io.File; + import java.io.IOException; import java.nio.file.Files; import java.util.Collection; @@ -7,6 +7,7 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.stream.Collectors; +import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandTree; import dev.jorel.commandapi.arguments.*; import dev.jorel.commandapi.executors.CommandExecutor; @@ -44,7 +45,7 @@ public class ArgumentTests { private String getDispatcherString() { try { - return Files.readString(new File("command_registration.json").toPath()); + return Files.readString(CommandAPI.getConfiguration().getDispatcherFile().toPath()); } catch (IOException e) { return ""; } diff --git a/examples/maven-shaded/pom.xml b/examples/maven-shaded/pom.xml index 1e2e8aeb53..ff81e1c3af 100644 --- a/examples/maven-shaded/pom.xml +++ b/examples/maven-shaded/pom.xml @@ -19,8 +19,8 @@ dev.jorel - commandapi-shade - 8.4.1 + commandapi-bukkit-shade + 9.0.0-SNAPSHOT diff --git a/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java b/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java index d6baf17524..776e2d2d70 100644 --- a/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java +++ b/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java @@ -2,6 +2,7 @@ import java.io.File; +import dev.jorel.commandapi.CommandAPIJavaLogger; import org.bukkit.plugin.java.JavaPlugin; import dev.jorel.commandapi.CommandAPI; @@ -16,7 +17,8 @@ public void onLoad() { CommandAPI.onLoad( new CommandAPIConfig() .verboseOutput(true) - .dispatcherFile(new File(getDataFolder(), "command_registration.json")) + .dispatcherFile(new File(getDataFolder(), "command_registration.json")), + new CommandAPIJavaLogger(getLogger()) ); } From e2be489707bb4353d579382a2826239c176893ed Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sat, 29 Oct 2022 18:42:59 -0400 Subject: [PATCH 086/638] Use AbstractPlatform#getLogger to allow platforms to specify a more appropriate CommandAPILogger --- .../jorel/commandapi/AbstractPlatform.java | 29 ++++++++++ .../java/dev/jorel/commandapi/CommandAPI.java | 53 ++++--------------- .../dev/jorel/commandapi/BukkitPlatform.java | 16 +++++- .../java/dev/jorel/commandapi/test/Main.java | 5 +- .../dev/jorel/commandapi/CommandAPIMain.java | 4 +- .../dev/jorel/commandapi/SpongePlatform.java | 7 +++ .../jorel/commandapi/VelocityPlatform.java | 19 +++++++ .../dev/jorel/commandapi/CommandAPIMain.java | 3 +- .../main/java/io/github/jorelali/Main.java | 4 +- 9 files changed, 88 insertions(+), 52 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java index 6c529a44f2..cf2013fbe2 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java @@ -84,6 +84,35 @@ public abstract class AbstractPlatform getBrigadierDispatcher(); + /** + * Creates a default Logger for the CommandAPI + * + * @return A new Logger meant for the CommandAPI to use + */ + public CommandAPILogger getLogger() { + return new CommandAPILogger(){ + private static final String PREFIX = "[CommandAPI] "; + private static final String YELLOW = "\u001B[33m"; + private static final String RED = "\u001B[31m"; + private static final String RESET = "\u001B[0m"; + + @Override + public void info(String message) { + System.out.println(PREFIX + message); + } + + @Override + public void warning(String message) { + System.out.println(YELLOW + PREFIX + message + RESET); + } + + @Override + public void severe(String message) { + System.out.println(RED + PREFIX + message + RESET); + } + }; + } + public abstract void reloadDataPacks(); public abstract void updateRequirements(AbstractPlayer player); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 395c3e0a41..553372d484 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -9,8 +9,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; /** * Class to register commands with the 1.13 command UI @@ -34,7 +32,7 @@ private CommandAPI() { /** * Returns whether the CommandAPI is currently loaded. This should be true when - * {@link CommandAPI#onLoad(CommandAPIConfig, CommandAPILogger)} is called. If the CommandAPI is + * {@link CommandAPI#onLoad(CommandAPIConfig)} is called. If the CommandAPI is * loaded, commands are available to register. * * @return whether the CommandAPI has been loaded properly @@ -73,41 +71,20 @@ public static InternalConfig getConfiguration() { return config; } + public static void setLogger(CommandAPILogger logger) { + CommandAPI.logger = logger; + } + /** - * Returns the CommandAPI's logger - * * @return the CommandAPI's logger */ public static CommandAPILogger getLogger() { if (logger == null) { - logger = new DefaultLogger(); - logWarning("Could not find a logger for the CommandAPI. Using built-in logger. Did you forget to call CommandAPI.onLoad(config, logger)?"); + logger = BaseHandler.getInstance().getPlatform().getLogger(); } return logger; } - private static class DefaultLogger implements CommandAPILogger { - private static final String PREFIX = "[CommandAPI] "; - private static final String YELLOW = "\u001B[33m"; - private static final String RED = "\u001B[31m"; - private static final String RESET = "\u001B[0m"; - - @Override - public void info(String message) { - System.out.println(PREFIX + message); - } - - @Override - public void warning(String message) { - System.out.println(YELLOW + PREFIX + message + RESET); - } - - @Override - public void severe(String message) { - System.out.println(RED + PREFIX + message + RESET); - } - } - // Loading, enabling, and disabling /** @@ -115,28 +92,17 @@ public void severe(String message) { * your onLoad() method. * * @param config the configuration to use for the CommandAPI - * @deprecated Please use {@link CommandAPI#onLoad(CommandAPIConfig, CommandAPILogger)} instead */ public static void onLoad(CommandAPIConfig config) { - onLoad(config, null); - } - - /** - * Initializes the CommandAPI for loading. This should be placed at the start of - * your onLoad() method. - * - * @param config the configuration to use for the CommandAPI - * @param logger the object to use to send messages - */ - public static void onLoad(CommandAPIConfig config, CommandAPILogger logger) { if (!loaded) { // Setup variables CommandAPI.config = new InternalConfig(config); - CommandAPI.logger = logger; // Initialize handlers AbstractPlatform platform = CommandAPIVersionHandler.getPlatform(); + new BaseHandler<>(platform); + // Log platform load final String platformClassHierarchy; { List platformClassHierarchyList = new ArrayList<>(); @@ -149,10 +115,9 @@ public static void onLoad(CommandAPIConfig config, CommandAPILogger logger) { } logNormal("Loaded platform " + platformClassHierarchy); - new BaseHandler<>(platform); + // Finish loading BaseHandler.getInstance().onLoad(); - loaded = true; } else { getLogger().severe("You've tried to call the CommandAPI's onLoad() method more than once!"); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index f3c3bf2211..7bad10e69c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -37,6 +37,8 @@ import java.lang.invoke.MethodHandles; import java.lang.invoke.VarHandle; import java.util.*; +import java.util.logging.Level; +import java.util.logging.Logger; import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.*; @@ -397,7 +399,6 @@ public void postCommandRegistration(LiteralCommandNode resultantNode, Li private void generateDispatcherFile() throws IOException { File file = CommandAPI.getConfiguration().getDispatcherFile(); if (file != null) { - CommandAPI.logInfo(file.getAbsolutePath()); try { file.getParentFile().mkdirs(); file.createNewFile(); @@ -446,6 +447,19 @@ public void unregister(String commandName, boolean force) { ((Map>) COMMANDNODE_ARGUMENTS.get(getBrigadierDispatcher().getRoot())).remove(commandName); } + @Override + public CommandAPILogger getLogger() { + return new DefaultLogger(); + } + + private static class DefaultLogger extends Logger implements CommandAPILogger { + protected DefaultLogger() { + super("CommandAPI", null); + setParent(Bukkit.getServer().getLogger()); + setLevel(Level.ALL); + } + } + @Override @Unimplemented(because = VERSION_SPECIFIC_IMPLEMENTATION) public abstract void reloadDataPacks(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java index b249b3cb4b..fa89c4d62f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/Main.java @@ -14,13 +14,12 @@ public class Main extends JavaPlugin { @Override public void onLoad() { + CommandAPI.setLogger(new CommandAPIJavaLogger(getLogger())); CommandAPI.onLoad(new CommandAPIConfig() .useLatestNMSVersion(true) .silentLogs(true) .dispatcherFile(new File(getDataFolder(), "command_registration.json")) - .initializeNBTAPI(NBTContainer.class, NBTContainer::new), - - new CommandAPIJavaLogger(getLogger()) + .initializeNBTAPI(NBTContainer.class, NBTContainer::new) ); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index 18f207d5cb..d5f93a4482 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -25,6 +25,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; @@ -60,7 +61,8 @@ public void onLoad() { } // Main CommandAPI loading - CommandAPI.onLoad(config, new CommandAPIJavaLogger(getLogger())); + CommandAPI.setLogger(new CommandAPIJavaLogger(getLogger())); + CommandAPI.onLoad(config); // Configure the NBT API - we're not allowing tracking at all, according // to the CommandAPI's design principles. The CommandAPI isn't used very diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java index 1695de6dc5..431cd7f2d3 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java @@ -15,6 +15,7 @@ // See https://docs.spongepowered.org/stable/en/plugin/migrating-from-7-to-8.html#command-creation-and-registration +// TODO: How does Sponge send commands and interact with Brigadier? public class SpongePlatform extends AbstractPlatform { private CommandManager commandManager; @@ -57,6 +58,12 @@ public CommandDispatcher getBrigadierDispatcher() { return null; } + @Override + public CommandAPILogger getLogger() { + // TODO: Make a default Logger + return super.getLogger(); + } + @Override public AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index b737590fa4..21c14eff3c 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -17,6 +17,8 @@ import dev.jorel.commandapi.commandsenders.*; import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; public class VelocityPlatform extends AbstractPlatform, CommandSource, CommandSource> { private CommandManager commandManager; @@ -69,6 +71,23 @@ public CommandDispatcher getBrigadierDispatcher() { return null; } + // Comment out this method if you want logging to work without fixing DefaultLogger + @Override + public CommandAPILogger getLogger() { + return new DefaultLogger(); + } + + private static class DefaultLogger extends Logger implements CommandAPILogger { + protected DefaultLogger() { + super("CommandAPI", null); + // TODO: How do we get the parent Logger for a Velocity server + // Note: Using this logger might not work because the parent isn't set + // If you'd like to run the plugin and have logging work, comment out the getDefaultLogger method so it isn't overridden anymore +// setParent(Bukkit.getServer().getLogger()); + setLevel(Level.ALL); + } + } + @Override public VelocityCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative) { // TODO: This method MAY be completely identical to getCommandSenderFromCommandSource. diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index c80f9600b6..bb2662c9a5 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -39,7 +39,8 @@ public CommandAPIMain(ProxyServer server, Logger logger, @DataDirectory Path dat .dispatcherFile() .initializeNBTAPI(); - CommandAPI.onLoad(config, new CommandAPIJavaLogger(this.logger)); + CommandAPI.setLogger(new CommandAPIJavaLogger(this.logger)); + CommandAPI.onLoad(config); } @Override diff --git a/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java b/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java index 776e2d2d70..85e7264095 100644 --- a/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java +++ b/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java @@ -14,11 +14,11 @@ public class Main extends JavaPlugin { public void onLoad() { // Load the CommandAPI. We enable verbose logging and allow the CommandAPI // to generate a file command_registration.json for debugging purposes + CommandAPI.setLogger(new CommandAPIJavaLogger(getLogger())); CommandAPI.onLoad( new CommandAPIConfig() .verboseOutput(true) - .dispatcherFile(new File(getDataFolder(), "command_registration.json")), - new CommandAPIJavaLogger(getLogger()) + .dispatcherFile(new File(getDataFolder(), "command_registration.json")) ); } From b991e69e32d1cd6903d2b546f10bc25e7186f7a9 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 30 Oct 2022 08:12:36 -0400 Subject: [PATCH 087/638] Add NBT API to maven-shaded example --- examples/maven-shaded/pom.xml | 18 ++++++++++++++++++ .../src/main/java/io/github/jorelali/Main.java | 18 ++++++++++++------ .../java/io/github/jorelali/MyCommands.java | 18 ++++++++++++++---- 3 files changed, 44 insertions(+), 10 deletions(-) diff --git a/examples/maven-shaded/pom.xml b/examples/maven-shaded/pom.xml index ff81e1c3af..ab647c41fe 100644 --- a/examples/maven-shaded/pom.xml +++ b/examples/maven-shaded/pom.xml @@ -14,6 +14,13 @@ spigot-repo https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + codemc-repo + https://repo.codemc.org/repository/maven-public/ + default + @@ -30,6 +37,13 @@ 1.18-R0.1-SNAPSHOT provided + + + + de.tr7zw + item-nbt-api + 2.10.0 + @@ -60,6 +74,10 @@ dev.jorel.commandapi io.github.jorelali.commandapi + + de.tr7zw.changeme.nbtapi + io.github.jorelali.nbtapi + diff --git a/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java b/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java index 85e7264095..b0b4402f6b 100644 --- a/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java +++ b/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java @@ -2,6 +2,7 @@ import java.io.File; +import de.tr7zw.changeme.nbtapi.NBTContainer; import dev.jorel.commandapi.CommandAPIJavaLogger; import org.bukkit.plugin.java.JavaPlugin; @@ -9,27 +10,32 @@ import dev.jorel.commandapi.CommandAPIConfig; public class Main extends JavaPlugin { - @Override public void onLoad() { - // Load the CommandAPI. We enable verbose logging and allow the CommandAPI - // to generate a file command_registration.json for debugging purposes + // Set CommandAPI to use this plugin's logger CommandAPI.setLogger(new CommandAPIJavaLogger(getLogger())); + + // Load the CommandAPI CommandAPI.onLoad( + // Configure the CommandAPI new CommandAPIConfig() + // Turn on verbose output for command registration logs .verboseOutput(true) + // Give file where Brigadier's command registration tree should be dumped .dispatcherFile(new File(getDataFolder(), "command_registration.json")) + // Point to the NBT API we want to use + .initializeNBTAPI(NBTContainer.class, NBTContainer::new) ); } - + @Override public void onEnable() { // Enable the CommandAPI CommandAPI.onEnable(this); - + + // Register commands using our MyCommands class MyCommands myCommands = new MyCommands(this); myCommands.registerAllCommands(); myCommands.registerAllCommandTrees(); } - } diff --git a/examples/maven-shaded/src/main/java/io/github/jorelali/MyCommands.java b/examples/maven-shaded/src/main/java/io/github/jorelali/MyCommands.java index ac268b1cfb..171f44aee8 100644 --- a/examples/maven-shaded/src/main/java/io/github/jorelali/MyCommands.java +++ b/examples/maven-shaded/src/main/java/io/github/jorelali/MyCommands.java @@ -1,6 +1,8 @@ package io.github.jorelali; +import de.tr7zw.changeme.nbtapi.NBTContainer; import dev.jorel.commandapi.CommandTree; +import dev.jorel.commandapi.arguments.*; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; @@ -8,10 +10,6 @@ import org.bukkit.potion.PotionEffectType; import dev.jorel.commandapi.CommandAPICommand; -import dev.jorel.commandapi.arguments.LocationArgument; -import dev.jorel.commandapi.arguments.LocationType; -import dev.jorel.commandapi.arguments.PlayerArgument; -import dev.jorel.commandapi.arguments.PotionEffectArgument; public class MyCommands { @@ -47,6 +45,18 @@ public void registerAllCommands() { target.addPotionEffect(new PotionEffect(potionEffectType, 300 * 20, 1)); }) .register(); + + // An example of the NBTCompoundArgument + // We need to give CommandAPI the NBT API we're using during + // CommandAPI.onLoad(CommandAPIConfig) to use this Argument + new CommandAPICommand("nbt") + .withArguments(new NBTCompoundArgument<>("nbt")) + .executes(((sender, args) -> { + NBTContainer nbt = (NBTContainer) args[0]; + + sender.sendMessage(nbt.toString()); + })) + .register(); } public void registerAllCommandTrees() { From 93f4781aa2f29ea1665e3a94c273455f5c6e9591 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 30 Oct 2022 09:06:09 -0400 Subject: [PATCH 088/638] Fix documentation examples with new (back to old) Argument system --- .../java/dev/jorel/commandapi/Brigadier.java | 11 ++++--- .../commandapi/examples/java/Examples.java | 33 +++++++++---------- .../commandapi/examples/kotlin/Examples.kt | 30 ++++++++--------- 3 files changed, 38 insertions(+), 36 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index ebd8083fbd..a116c9e2f3 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -41,7 +41,7 @@ * The Brigadier class is used to access some of the internals of the CommandAPI * so you can use the CommandAPI alongside Mojang's com.mojang.brigadier package */ -@SuppressWarnings({ "unchecked", "rawtypes" }) +//@SuppressWarnings({ "unchecked", "rawtypes" }) public final class Brigadier { // Cannot be instantiated @@ -80,7 +80,8 @@ public static RootCommandNode getRootNode() { * @param literalArgument the LiteralArgument to convert from * @return a LiteralArgumentBuilder that represents the literal */ - public static LiteralArgumentBuilder fromLiteralArgument(ILiteralArgument> literalArgument) { + public static > + LiteralArgumentBuilder fromLiteralArgument(ILiteralArgument literalArgument) { BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); return handler.getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), literalArgument.instance().getArgumentPermission(), literalArgument.instance().getRequirements()); } @@ -101,7 +102,8 @@ public static LiteralArgumentBuilder fromLiteralArgument(ILitera * @param args the arguments that the sender has filled in * @return a RedirectModifier that encapsulates the provided predicate */ - public static RedirectModifier fromPredicate(BiPredicate predicate, List args) { + public static > + RedirectModifier fromPredicate(BiPredicate predicate, List args) { return cmdCtx -> { if (predicate.test(getCommandSenderFromContext(cmdCtx), parseArguments(cmdCtx, args))) { return Collections.singleton(cmdCtx.getSource()); @@ -117,7 +119,8 @@ public static RedirectModifier fromPredicate(BiPredicate, CommandSender> Command fromCommand(AbstractCommandAPICommand command) { + public static , CommandSender> + Command fromCommand(AbstractCommandAPICommand command) { try { // Need to cast base handler to make it realize we're using the same CommandSender class BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); diff --git a/commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java b/commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java index e7631f0260..e22944f959 100644 --- a/commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java +++ b/commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java @@ -836,7 +836,7 @@ void timearg() { { /* ANCHOR: blockpredicatearguments */ -Argument[] arguments = new Argument[] { +Argument[] arguments = new Argument[] { new IntegerArgument("radius"), new BlockPredicateArgument("fromBlock"), new BlockStateArgument("toBlock"), @@ -904,8 +904,7 @@ class NBTTest extends JavaPlugin { @Override public void onLoad() { CommandAPI.onLoad(new CommandAPIConfig() - .initializeNBTAPI(NBTContainer.class, NBTContainer::new), - new CommandAPIJavaLogger(getLogger()) + .initializeNBTAPI(NBTContainer.class, NBTContainer::new) ); } /* ANCHOR_END: nbtcompoundargumentonload */ @@ -1002,7 +1001,7 @@ void c(){ /* ANCHOR: customarguments2 */ // Function that returns our custom argument -public CustomArgument worldArgument(String nodeName) { +public Argument worldArgument(String nodeName) { // Construct our CustomArgument that takes in a String input and returns a World object return new CustomArgument(new StringArgument(nodeName), info -> { @@ -1294,7 +1293,7 @@ void resultingcommandexecutor3(){ ; /* ANCHOR: argumentsyntax3 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new StringArgument("arg0")); arguments.add(new StringArgument("arg1")); arguments.add(new StringArgument("arg2")); @@ -1329,7 +1328,7 @@ void resultingcommandexecutor3(){ @SuppressWarnings("unused") public void argumentCasting() { /* ANCHOR: argumentcasting */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new StringArgument("arg0")); arguments.add(new PotionEffectArgument("arg1")); arguments.add(new LocationArgument("arg2")); @@ -1372,7 +1371,7 @@ public void argumentCasting() { /* ANCHOR_END: requirementsmap */ /* ANCHOR: requirements2 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); // The "create" literal, with a requirement that a player must have a party arguments.add(new LiteralArgument("create") @@ -1481,7 +1480,7 @@ public void argumentCasting() { /* ANCHOR_END: predicatetips */ /* ANCHOR: predicatetips2 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new LiteralArgument("create").withRequirement(testIfPlayerHasParty.negate())); arguments.add(new StringArgument("partyName")); /* ANCHOR_END: predicatetips2 */ @@ -1683,7 +1682,7 @@ void help() { { /* ANCHOR: Tooltips1 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new StringArgument("emote") .replaceSuggestions(ArgumentSuggestions.stringsWithTooltips(info -> new IStringTooltip[] { StringTooltip.ofString("wave", "Waves at a player"), @@ -1743,7 +1742,7 @@ void help() { { /* ANCHOR: SafeTooltips */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new LocationArgument("location") .replaceSafeSuggestions(SafeSuggestions.tooltips(info -> { // We know the sender is a player if we use .executesPlayer() @@ -1768,7 +1767,7 @@ void help() { { /* ANCHOR: ArgumentSuggestionsPrevious */ // Declare our arguments as normal -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new IntegerArgument("radius")); // Replace the suggestions for the PlayerArgument. @@ -1805,7 +1804,7 @@ void help() { { /* ANCHOR: ArgumentSuggestions2_2 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new PlayerArgument("friend").replaceSuggestions(ArgumentSuggestions.strings(info -> Friends.getFriends(info.sender()) ))); @@ -1823,7 +1822,7 @@ void help() { { Map warps = new HashMap<>(); /* ANCHOR: ArgumentSuggestions1 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new StringArgument("world").replaceSuggestions(ArgumentSuggestions.strings( "northland", "eastland", "southland", "westland" ))); @@ -1865,7 +1864,7 @@ void SafeRecipeArguments() { /* ANCHOR: SafeRecipeArguments_2 */ // Safely override with the recipe we've defined -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new RecipeArgument("recipe").replaceSafeSuggestions(SafeSuggestions.suggest(info -> new Recipe[] { emeraldSwordRecipe, /* Other recipes here */ } ))); @@ -1889,7 +1888,7 @@ void SafeRecipeArguments() { /* ANCHOR_END: SafeMobSpawnArguments */ /* ANCHOR: SafeMobSpawnArguments_2 */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new EntityTypeArgument("mob").replaceSafeSuggestions(SafeSuggestions.suggest( info -> { if(info.sender().isOp()) { @@ -1916,7 +1915,7 @@ void SafeRecipeArguments() { { /* ANCHOR: SafePotionArguments */ -List> arguments = new ArrayList<>(); +List> arguments = new ArrayList<>(); arguments.add(new EntitySelectorArgument("target", EntitySelector.ONE_PLAYER)); arguments.add(new PotionEffectArgument("potioneffect").replaceSafeSuggestions(SafeSuggestions.suggest( info -> { @@ -1973,7 +1972,7 @@ void SafeRecipeArguments() { { /* ANCHOR: CommandAPIConfigSilent */ -CommandAPI.onLoad(new CommandAPIConfig().silentLogs(true), new CommandAPIJavaLogger(getLogger())); +CommandAPI.onLoad(new CommandAPIConfig().silentLogs(true)); /* ANCHOR_END: CommandAPIConfigSilent */ } diff --git a/commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt b/commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt index 1cc5ac0923..9b6fa28c89 100644 --- a/commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt +++ b/commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt @@ -794,7 +794,7 @@ CommandAPICommand("bigmsg") fun blockpredicatearguments() { /* ANCHOR: blockpredicatearguments */ -val arguments = arrayOf>( +val arguments = arrayOf>( IntegerArgument("radius"), BlockPredicateArgument("fromBlock"), BlockStateArgument("toBlock"), @@ -949,7 +949,7 @@ CommandAPICommand("tpworld") /* ANCHOR: customarguments2 */ // Function that returns our custom argument -fun worldArgument(nodeName: String): CustomArgument { +fun worldArgument(nodeName: String): Argument { // Construct our CustomArgument that takes in a String input and returns a World object return CustomArgument(StringArgument(nodeName), { info -> @@ -1308,7 +1308,7 @@ val partyMembers = mutableMapOf() /* ANCHOR_END: requirementsmap */ /* ANCHOR: requirements2 */ -var arguments = mutableListOf>() +var arguments = mutableListOf>() // The "create" literal, with a requirement that a player must have a party arguments.add(LiteralArgument("create") @@ -1333,7 +1333,7 @@ CommandAPICommand("party") /* ANCHOR: requirementstp */ /* ANCHOR: requirements4 */ -arguments = mutableListOf>() +arguments = mutableListOf>() arguments.add(LiteralArgument("tp") .withRequirement({ partyMembers.containsKey((it as Player).uniqueId) }) ) @@ -1417,7 +1417,7 @@ val testIfPlayerHasParty = Predicate { sender: CommandSender -> /* ANCHOR_END: predicatetips */ /* ANCHOR: predicatetips2 */ -var arguments = listOf>( +var arguments = listOf>( LiteralArgument("create").withRequirement(testIfPlayerHasParty.negate()), StringArgument("partyName") ) @@ -1425,7 +1425,7 @@ var arguments = listOf>( @Suppress("unused") /* ANCHOR: predicatetips3 */ -arguments = listOf>(LiteralArgument("tp").withRequirement(testIfPlayerHasParty)) +arguments = listOf>(LiteralArgument("tp").withRequirement(testIfPlayerHasParty)) /* ANCHOR_END: predicatetips3 */ } @@ -1466,7 +1466,7 @@ val randomChance: LiteralCommandNode = Brigadier.fromLiteralArgument(Litera val numeratorArgument = IntegerArgument("numerator", 0) val denominatorArgument = IntegerArgument("denominator", 1) -val arguments = listOf>(numeratorArgument, denominatorArgument) +val arguments = listOf>(numeratorArgument, denominatorArgument) /* ANCHOR_END: declarearguments */ // Get brigadier argument objects @@ -1618,7 +1618,7 @@ CommandAPICommand("mycommand") fun tooltips1() { /* ANCHOR: Tooltips1 */ -val arguments = mutableListOf>() +val arguments = mutableListOf>() arguments.add(StringArgument("emote") .replaceSuggestions(ArgumentSuggestions.stringsWithTooltips { info -> arrayOf( @@ -1673,7 +1673,7 @@ CommandAPICommand("giveitem") fun safetooltips() { /* ANCHOR: SafeTooltips */ -val arguments = listOf>( +val arguments = listOf>( LocationArgument("location") .replaceSafeSuggestions(SafeSuggestions.tooltips( { info -> // We know the sender is a player if we use .executesPlayer() @@ -1699,7 +1699,7 @@ CommandAPICommand("warp") fun argumentsuggestionsprevious() { /* ANCHOR: ArgumentSuggestionsPrevious */ // Declare our arguments as normal -val arguments = mutableListOf>() +val arguments = mutableListOf>() arguments.add(IntegerArgument("radius")) // Replace the suggestions for the PlayerArgument. @@ -1736,7 +1736,7 @@ CommandAPICommand("localmsg") fun argumentsuggestions2_2() { /* ANCHOR: ArgumentSuggestions2_2 */ -val arguments = listOf>( +val arguments = listOf>( PlayerArgument("friend").replaceSuggestions(ArgumentSuggestions.strings({ info -> Friends.getFriends(info.sender()) })) @@ -1755,7 +1755,7 @@ CommandAPICommand("friendtp") fun argumentsuggestions1() { val warps = mutableMapOf() /* ANCHOR: ArgumentSuggestions1 */ -val arguments = listOf>( +val arguments = listOf>( StringArgument("world").replaceSuggestions(ArgumentSuggestions.strings( "northland", "eastland", "southland", "westland" )) @@ -1798,7 +1798,7 @@ getServer().addRecipe(emeraldSwordRecipe) /* ANCHOR: SafeRecipeArguments_2 */ // Safely override with the recipe we've defined -val arguments = listOf>( +val arguments = listOf>( RecipeArgument("recipe").replaceSafeSuggestions(SafeSuggestions.suggest { arrayOf(emeraldSwordRecipe, /* Other recipes here */) }) @@ -1823,7 +1823,7 @@ allowedMobs.removeAll(forbiddenMobs) // Now contains everything except enderdrag /* ANCHOR_END: SafeMobSpawnArguments */ /* ANCHOR: SafeMobSpawnArguments_2 */ -val arguments = listOf>( +val arguments = listOf>( EntityTypeArgument("mob").replaceSafeSuggestions(SafeSuggestions.suggest { info -> if (info.sender().isOp()) { @@ -1851,7 +1851,7 @@ CommandAPICommand("spawnmob") fun safepotionarguments() { /* ANCHOR: SafePotionArguments */ -val arguments = mutableListOf>() +val arguments = mutableListOf>() arguments.add(EntitySelectorArgument("target", EntitySelector.ONE_PLAYER)) arguments.add(PotionEffectArgument("potioneffect").replaceSafeSuggestions(SafeSuggestions.suggest { info -> From 3fff1f1b6a04cef4678dadbfaa1c8713b81be03b Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 30 Oct 2022 10:43:43 -0400 Subject: [PATCH 089/638] Add example for creating a plugin that depends on the CommandAPI plugin with maven --- .../dev/jorel/commandapi/CommandAPIMain.java | 1 - examples/maven-shaded/pom.xml | 1 + examples/maven/README.md | 12 +++ examples/maven/pom.xml | 65 ++++++++++++ .../main/java/io/github/jorelali/Main.java | 13 +++ .../java/io/github/jorelali/MyCommands.java | 100 ++++++++++++++++++ examples/maven/src/main/resources/plugin.yml | 8 ++ 7 files changed, 199 insertions(+), 1 deletion(-) create mode 100644 examples/maven/README.md create mode 100644 examples/maven/pom.xml create mode 100644 examples/maven/src/main/java/io/github/jorelali/Main.java create mode 100644 examples/maven/src/main/java/io/github/jorelali/MyCommands.java create mode 100644 examples/maven/src/main/resources/plugin.yml diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index d5f93a4482..5a0f440664 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -25,7 +25,6 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import java.util.logging.Logger; import org.bukkit.Bukkit; import org.bukkit.configuration.file.FileConfiguration; diff --git a/examples/maven-shaded/pom.xml b/examples/maven-shaded/pom.xml index ab647c41fe..e03c4a1728 100644 --- a/examples/maven-shaded/pom.xml +++ b/examples/maven-shaded/pom.xml @@ -24,6 +24,7 @@ + dev.jorel commandapi-bukkit-shade diff --git a/examples/maven/README.md b/examples/maven/README.md new file mode 100644 index 0000000000..00107ceeaa --- /dev/null +++ b/examples/maven/README.md @@ -0,0 +1,12 @@ +# Maven-shaded + +A simple example of using the CommandAPI with Maven. + +Key points: + +- In the plugin.yml, CommandAPI is listed as a depend: +```yaml +depend: + - CommandAPI +``` + diff --git a/examples/maven/pom.xml b/examples/maven/pom.xml new file mode 100644 index 0000000000..153f991a37 --- /dev/null +++ b/examples/maven/pom.xml @@ -0,0 +1,65 @@ + + 4.0.0 + dev.jorel + maven + 0.0.1-SNAPSHOT + + + UTF-8 + + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + + codemc-repo + https://repo.codemc.org/repository/maven-public/ + default + + + + + + + dev.jorel + commandapi-bukkit-plugin + 9.0.0-SNAPSHOT + provided + + + + + org.spigotmc + spigot-api + 1.18-R0.1-SNAPSHOT + provided + + + + + + + + + + + + + clean package + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + \ No newline at end of file diff --git a/examples/maven/src/main/java/io/github/jorelali/Main.java b/examples/maven/src/main/java/io/github/jorelali/Main.java new file mode 100644 index 0000000000..27ed8b5629 --- /dev/null +++ b/examples/maven/src/main/java/io/github/jorelali/Main.java @@ -0,0 +1,13 @@ +package io.github.jorelali; + +import org.bukkit.plugin.java.JavaPlugin; + +public class Main extends JavaPlugin { + @Override + public void onEnable() { + // Register commands using our MyCommands class + MyCommands myCommands = new MyCommands(this); + myCommands.registerAllCommands(); + myCommands.registerAllCommandTrees(); + } +} diff --git a/examples/maven/src/main/java/io/github/jorelali/MyCommands.java b/examples/maven/src/main/java/io/github/jorelali/MyCommands.java new file mode 100644 index 0000000000..3452148fd4 --- /dev/null +++ b/examples/maven/src/main/java/io/github/jorelali/MyCommands.java @@ -0,0 +1,100 @@ +package io.github.jorelali; + +import de.tr7zw.changeme.nbtapi.NBTContainer; +import dev.jorel.commandapi.CommandTree; +import dev.jorel.commandapi.arguments.*; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; + +import dev.jorel.commandapi.CommandAPICommand; + +public class MyCommands { + + // Plugin reference in case we need to access anything about the plugin, + // such as its config.yml or something + private Plugin plugin; + + public MyCommands(Plugin plugin) { + this.plugin = plugin; + } + + public void registerAllCommands() { + // /break + // Breaks a block at . Can only be executed by a player + new CommandAPICommand("break") + // We want to target blocks in particular, so use BLOCK_POSITION + .withArguments(new LocationArgument("block", LocationType.BLOCK_POSITION)) + .executesPlayer((player, args) -> { + ((Location) args[0]).getBlock().breakNaturally(); + }) + .register(); + + // /myeffect + // Applies a potion effect to a player. Basically a simple version of + // the /effect command. The potion effect with be a level 1 potion + // effect and the duration will be 5 minutes (300 seconds x 20 ticks) + new CommandAPICommand("myeffect") + .withArguments(new PlayerArgument("target")) + .withArguments(new PotionEffectArgument("potion")) + .executes((sender, args) -> { + Player target = (Player) args[0]; + PotionEffectType potionEffectType = (PotionEffectType) args[1]; + target.addPotionEffect(new PotionEffect(potionEffectType, 300 * 20, 1)); + }) + .register(); + + // An example of the NBTCompoundArgument + // The CommandAPI plugin includes tr7zw's NBT API for handling NBT data + // https://www.spigotmc.org/resources/nbt-api.7939/ + new CommandAPICommand("nbt") + .withArguments(new NBTCompoundArgument("nbt")) + .executes(((sender, args) -> { + NBTContainer nbt = (NBTContainer) args[0]; + + sender.sendMessage(nbt.toString()); + })) + .register(); + } + + public void registerAllCommandTrees() { + // This is a different method of registering commands + // Just for demonstration purposes I will use the same commands + // that have been registered in registerAllCommands() + + // /break + new CommandTree("break") + .then(new LocationArgument("block", LocationType.BLOCK_POSITION) + .executesPlayer((player, args) -> { + ((Location) args[0]).getBlock().breakNaturally(); + })) + .register(); + + // /myeffect + // This command will be changed a bit to demonstrate + // a way of optional arguments because it is not possible to + // add optional arguments using the CommandAPICommand method + new CommandTree("myeffect") + .then(new PotionEffectArgument("potion") + .executesPlayer((player, args) -> { + // Register /myeffect + // This command just adds the potion effect to the player that + // executes the command + PotionEffectType potionEffectType = (PotionEffectType) args[0]; + player.addPotionEffect(new PotionEffect(potionEffectType, 300 * 20, 1)); + }) + .then(new PlayerArgument("target") + .executes((sender, args) -> { + // Register /myeffect + // This command works exactly the same as the example + // shown in registerAllCommands() + PotionEffectType potionEffectType = (PotionEffectType) args[0]; + Player target = (Player) args[1]; + target.addPotionEffect(new PotionEffect(potionEffectType, 300 * 20, 1)); + }))) + .register(); + } + +} diff --git a/examples/maven/src/main/resources/plugin.yml b/examples/maven/src/main/resources/plugin.yml new file mode 100644 index 0000000000..ce8a4cc45e --- /dev/null +++ b/examples/maven/src/main/resources/plugin.yml @@ -0,0 +1,8 @@ +name: ExamplePlugin +main: io.github.jorelali.Main +version: 0.0.1 +author: Skepter +website: https://www.jorel.dev/CommandAPI/ +api-version: 1.13 +depend: + - CommandAPI \ No newline at end of file From 2ac8cc9f12de755023ab4490b69e57381d4a4eb9 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 30 Oct 2022 10:52:32 -0400 Subject: [PATCH 090/638] Fix maven example plugin's reference to the nbtapi --- examples/maven/pom.xml | 8 -------- .../src/main/java/io/github/jorelali/MyCommands.java | 4 +++- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/examples/maven/pom.xml b/examples/maven/pom.xml index 153f991a37..89edf12fd0 100644 --- a/examples/maven/pom.xml +++ b/examples/maven/pom.xml @@ -39,14 +39,6 @@ 1.18-R0.1-SNAPSHOT provided - - - - - - - - diff --git a/examples/maven/src/main/java/io/github/jorelali/MyCommands.java b/examples/maven/src/main/java/io/github/jorelali/MyCommands.java index 3452148fd4..b849e39aa0 100644 --- a/examples/maven/src/main/java/io/github/jorelali/MyCommands.java +++ b/examples/maven/src/main/java/io/github/jorelali/MyCommands.java @@ -1,6 +1,8 @@ package io.github.jorelali; -import de.tr7zw.changeme.nbtapi.NBTContainer; +// TODO: This works on compile, but it is not recognized when coding +// Mess with commandapi-bukkit-plugin's pom to make this work +import dev.jorel.commandapi.nbtapi.NBTContainer; import dev.jorel.commandapi.CommandTree; import dev.jorel.commandapi.arguments.*; import org.bukkit.Location; From 86f1fca8416504539acab08363d5a96da15f0213 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 30 Oct 2022 11:05:12 -0400 Subject: [PATCH 091/638] Remove comment about nbtapi not working --- examples/maven/src/main/java/io/github/jorelali/MyCommands.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/examples/maven/src/main/java/io/github/jorelali/MyCommands.java b/examples/maven/src/main/java/io/github/jorelali/MyCommands.java index b849e39aa0..8835b06064 100644 --- a/examples/maven/src/main/java/io/github/jorelali/MyCommands.java +++ b/examples/maven/src/main/java/io/github/jorelali/MyCommands.java @@ -1,7 +1,5 @@ package io.github.jorelali; -// TODO: This works on compile, but it is not recognized when coding -// Mess with commandapi-bukkit-plugin's pom to make this work import dev.jorel.commandapi.nbtapi.NBTContainer; import dev.jorel.commandapi.CommandTree; import dev.jorel.commandapi.arguments.*; From 55ea4e21c8e37a8bd7ce97d83bdab4cc6ba0484e Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 30 Oct 2022 14:14:06 -0400 Subject: [PATCH 092/638] Add maven-annotations example - move plugin examples down into bukkit folder --- .gitignore | 2 +- examples/bukkit/maven-annotations/README.md | 52 +++++++++++++ examples/bukkit/maven-annotations/pom.xml | 75 +++++++++++++++++++ .../java/io/github/jorelali/BreakCommand.java | 15 ++++ .../io/github/jorelali/EffectCommand.java | 23 ++++++ .../main/java/io/github/jorelali/Main.java | 14 ++++ .../java/io/github/jorelali/NBTCommand.java | 15 ++++ .../src/main/resources/plugin.yml | 0 examples/{ => bukkit}/maven-shaded/README.md | 10 ++- examples/{ => bukkit}/maven-shaded/pom.xml | 3 + .../main/java/io/github/jorelali/Main.java | 0 .../java/io/github/jorelali/MyCommands.java | 0 .../src/main/resources/plugin.yml | 0 examples/bukkit/maven/README.md | 22 ++++++ examples/{ => bukkit}/maven/pom.xml | 0 .../main/java/io/github/jorelali/Main.java | 0 .../java/io/github/jorelali/MyCommands.java | 0 .../maven/src/main/resources/plugin.yml | 8 ++ examples/maven/README.md | 12 --- 19 files changed, 237 insertions(+), 14 deletions(-) create mode 100644 examples/bukkit/maven-annotations/README.md create mode 100644 examples/bukkit/maven-annotations/pom.xml create mode 100644 examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/BreakCommand.java create mode 100644 examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/EffectCommand.java create mode 100644 examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/Main.java create mode 100644 examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/NBTCommand.java rename examples/{maven => bukkit/maven-annotations}/src/main/resources/plugin.yml (100%) rename examples/{ => bukkit}/maven-shaded/README.md (71%) rename examples/{ => bukkit}/maven-shaded/pom.xml (91%) rename examples/{ => bukkit}/maven-shaded/src/main/java/io/github/jorelali/Main.java (100%) rename examples/{ => bukkit}/maven-shaded/src/main/java/io/github/jorelali/MyCommands.java (100%) rename examples/{ => bukkit}/maven-shaded/src/main/resources/plugin.yml (100%) create mode 100644 examples/bukkit/maven/README.md rename examples/{ => bukkit}/maven/pom.xml (100%) rename examples/{ => bukkit}/maven/src/main/java/io/github/jorelali/Main.java (100%) rename examples/{ => bukkit}/maven/src/main/java/io/github/jorelali/MyCommands.java (100%) create mode 100644 examples/bukkit/maven/src/main/resources/plugin.yml delete mode 100644 examples/maven/README.md diff --git a/.gitignore b/.gitignore index bffd32a703..84765dce62 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -.idea/** +**.idea/** *.iml build-works/ libs/ diff --git a/examples/bukkit/maven-annotations/README.md b/examples/bukkit/maven-annotations/README.md new file mode 100644 index 0000000000..aeaea1c15f --- /dev/null +++ b/examples/bukkit/maven-annotations/README.md @@ -0,0 +1,52 @@ +# Maven + +A simple example of making a plugin that uses the CommandAPI with Maven. + +Key points: + +- The `commandapi-bukkit-plugin` and `commandapi-annotations` dependencies are both added with the provided scope +```xml + + + dev.jorel + commandapi-bukkit-plugin + 9.0.0-SNAPSHOT + provided + + + dev.jorel + commandapi-annotations + 9.0.0-SNAPSHOT + provided + + +``` +- `commandapi-annotations` is used when compiling the project to turn the annotations into commands +```xml + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + + dev.jorel + commandapi-annotations + 8.5.1 + + + + + + +``` +- In the plugin.yml, CommandAPI is listed as a depend: +```yaml +depend: + - CommandAPI +``` +- Commands can be registered using `CommandAPI.registerCommand([ClassName].class)` +- Classes from the NBT API can be accessed in `dev.jorel.commandapi.nbtapi` + diff --git a/examples/bukkit/maven-annotations/pom.xml b/examples/bukkit/maven-annotations/pom.xml new file mode 100644 index 0000000000..d8784703d0 --- /dev/null +++ b/examples/bukkit/maven-annotations/pom.xml @@ -0,0 +1,75 @@ + + 4.0.0 + dev.jorel + maven-annotations + 0.0.1-SNAPSHOT + + + UTF-8 + + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + + codemc-repo + https://repo.codemc.org/repository/maven-public/ + default + + + + + + + dev.jorel + commandapi-bukkit-plugin + 9.0.0-SNAPSHOT + provided + + + + + dev.jorel + commandapi-annotations + 9.0.0-SNAPSHOT + provided + + + + + org.spigotmc + spigot-api + 1.18-R0.1-SNAPSHOT + provided + + + + + clean package + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + + dev.jorel + commandapi-annotations + 8.5.1 + + + 8 + 8 + + + + + \ No newline at end of file diff --git a/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/BreakCommand.java b/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/BreakCommand.java new file mode 100644 index 0000000000..bb6730dddb --- /dev/null +++ b/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/BreakCommand.java @@ -0,0 +1,15 @@ +package io.github.jorelali; + +import dev.jorel.commandapi.annotations.Command; +import dev.jorel.commandapi.annotations.Default; +import dev.jorel.commandapi.annotations.arguments.ALocationArgument; +import org.bukkit.Location; +import org.bukkit.entity.Player; + +@Command("break") +public class BreakCommand { + @Default + public static void breakAt(Player player, @ALocationArgument Location location) { + location.getBlock().breakNaturally(); + } +} diff --git a/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/EffectCommand.java b/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/EffectCommand.java new file mode 100644 index 0000000000..1103aa9e98 --- /dev/null +++ b/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/EffectCommand.java @@ -0,0 +1,23 @@ +package io.github.jorelali; + +import dev.jorel.commandapi.annotations.Command; +import dev.jorel.commandapi.annotations.Default; +import dev.jorel.commandapi.annotations.arguments.APlayerArgument; +import dev.jorel.commandapi.annotations.arguments.APotionEffectArgument; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; + +@Command("myeffect") +public class EffectCommand { + @Default + public static void applyEffect(Player player, @APotionEffectArgument PotionEffectType effectType) { + player.addPotionEffect(new PotionEffect(effectType, 300 * 20, 1)); + } + + @Default + public static void applyEffect(CommandSender sender, @APotionEffectArgument PotionEffectType effectType, @APlayerArgument Player player) { + player.addPotionEffect(new PotionEffect(effectType, 300 * 20, 1)); + } +} diff --git a/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/Main.java b/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/Main.java new file mode 100644 index 0000000000..950a91c5cb --- /dev/null +++ b/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/Main.java @@ -0,0 +1,14 @@ +package io.github.jorelali; + +import dev.jorel.commandapi.CommandAPI; +import org.bukkit.plugin.java.JavaPlugin; + +public class Main extends JavaPlugin { + @Override + public void onEnable() { + // Register commands using a reference to their class + CommandAPI.registerCommand(BreakCommand.class); + CommandAPI.registerCommand(EffectCommand.class); + CommandAPI.registerCommand(NBTCommand.class); + } +} diff --git a/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/NBTCommand.java b/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/NBTCommand.java new file mode 100644 index 0000000000..a88d0ca530 --- /dev/null +++ b/examples/bukkit/maven-annotations/src/main/java/io/github/jorelali/NBTCommand.java @@ -0,0 +1,15 @@ +package io.github.jorelali; + +import dev.jorel.commandapi.annotations.Command; +import dev.jorel.commandapi.annotations.Default; +import dev.jorel.commandapi.annotations.arguments.ANBTCompoundArgument; +import dev.jorel.commandapi.nbtapi.NBTContainer; +import org.bukkit.command.CommandSender; + +@Command("nbt") +public class NBTCommand { + @Default + public static void nbt(CommandSender sender, @ANBTCompoundArgument NBTContainer nbt) { + sender.sendMessage(nbt.toString()); + } +} diff --git a/examples/maven/src/main/resources/plugin.yml b/examples/bukkit/maven-annotations/src/main/resources/plugin.yml similarity index 100% rename from examples/maven/src/main/resources/plugin.yml rename to examples/bukkit/maven-annotations/src/main/resources/plugin.yml diff --git a/examples/maven-shaded/README.md b/examples/bukkit/maven-shaded/README.md similarity index 71% rename from examples/maven-shaded/README.md rename to examples/bukkit/maven-shaded/README.md index 257519b1ee..f478dc9114 100644 --- a/examples/maven-shaded/README.md +++ b/examples/bukkit/maven-shaded/README.md @@ -4,7 +4,15 @@ A simple example of shading the CommandAPI with Maven. Key points: -- In `Main.java`, we call `CommandAPI.onLoad()` and `CommandAPI.onEnable()` to set up the CommandAPI +- The `commandapi-bukit-shaded` dependency is used +```xml + + dev.jorel + commandapi-bukkit-shade + 9.0.0-SNAPSHOT + +``` +- In our JavaPlugin, `Main.java`, we call `CommandAPI.onLoad()` and `CommandAPI.onEnable()` to set up the CommandAPI - In `pom.xml`, we use relocation to relocate the CommandAPI to the `io.github.jorelali.commandapi` package. This gives us the following directory structure in our plugin's `.jar` file: ```text diff --git a/examples/maven-shaded/pom.xml b/examples/bukkit/maven-shaded/pom.xml similarity index 91% rename from examples/maven-shaded/pom.xml rename to examples/bukkit/maven-shaded/pom.xml index e03c4a1728..3e6e5fee99 100644 --- a/examples/maven-shaded/pom.xml +++ b/examples/bukkit/maven-shaded/pom.xml @@ -71,10 +71,13 @@ false + dev.jorel.commandapi io.github.jorelali.commandapi + de.tr7zw.changeme.nbtapi io.github.jorelali.nbtapi diff --git a/examples/maven-shaded/src/main/java/io/github/jorelali/Main.java b/examples/bukkit/maven-shaded/src/main/java/io/github/jorelali/Main.java similarity index 100% rename from examples/maven-shaded/src/main/java/io/github/jorelali/Main.java rename to examples/bukkit/maven-shaded/src/main/java/io/github/jorelali/Main.java diff --git a/examples/maven-shaded/src/main/java/io/github/jorelali/MyCommands.java b/examples/bukkit/maven-shaded/src/main/java/io/github/jorelali/MyCommands.java similarity index 100% rename from examples/maven-shaded/src/main/java/io/github/jorelali/MyCommands.java rename to examples/bukkit/maven-shaded/src/main/java/io/github/jorelali/MyCommands.java diff --git a/examples/maven-shaded/src/main/resources/plugin.yml b/examples/bukkit/maven-shaded/src/main/resources/plugin.yml similarity index 100% rename from examples/maven-shaded/src/main/resources/plugin.yml rename to examples/bukkit/maven-shaded/src/main/resources/plugin.yml diff --git a/examples/bukkit/maven/README.md b/examples/bukkit/maven/README.md new file mode 100644 index 0000000000..30b354bbeb --- /dev/null +++ b/examples/bukkit/maven/README.md @@ -0,0 +1,22 @@ +# Maven + +A simple example of making a plugin that uses the CommandAPI with Maven. + +Key points: + +- The `commandapi-bukkit-plugin` dependency is used with the provided scope +```xml + + dev.jorel + commandapi-bukkit-plugin + 9.0.0-SNAPSHOT + provided + +``` +- In the plugin.yml, CommandAPI is listed as a depend: +```yaml +depend: + - CommandAPI +``` +- Classes from the NBT API can be accessed in `dev.jorel.commandapi.nbtapi` + diff --git a/examples/maven/pom.xml b/examples/bukkit/maven/pom.xml similarity index 100% rename from examples/maven/pom.xml rename to examples/bukkit/maven/pom.xml diff --git a/examples/maven/src/main/java/io/github/jorelali/Main.java b/examples/bukkit/maven/src/main/java/io/github/jorelali/Main.java similarity index 100% rename from examples/maven/src/main/java/io/github/jorelali/Main.java rename to examples/bukkit/maven/src/main/java/io/github/jorelali/Main.java diff --git a/examples/maven/src/main/java/io/github/jorelali/MyCommands.java b/examples/bukkit/maven/src/main/java/io/github/jorelali/MyCommands.java similarity index 100% rename from examples/maven/src/main/java/io/github/jorelali/MyCommands.java rename to examples/bukkit/maven/src/main/java/io/github/jorelali/MyCommands.java diff --git a/examples/bukkit/maven/src/main/resources/plugin.yml b/examples/bukkit/maven/src/main/resources/plugin.yml new file mode 100644 index 0000000000..ce8a4cc45e --- /dev/null +++ b/examples/bukkit/maven/src/main/resources/plugin.yml @@ -0,0 +1,8 @@ +name: ExamplePlugin +main: io.github.jorelali.Main +version: 0.0.1 +author: Skepter +website: https://www.jorel.dev/CommandAPI/ +api-version: 1.13 +depend: + - CommandAPI \ No newline at end of file diff --git a/examples/maven/README.md b/examples/maven/README.md deleted file mode 100644 index 00107ceeaa..0000000000 --- a/examples/maven/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# Maven-shaded - -A simple example of using the CommandAPI with Maven. - -Key points: - -- In the plugin.yml, CommandAPI is listed as a depend: -```yaml -depend: - - CommandAPI -``` - From 102e5eb45d35eccf4634a1a6be118a27bb80d0df Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 30 Oct 2022 14:55:02 -0400 Subject: [PATCH 093/638] Add maven-shaded-annotations example --- .gitignore | 2 +- .../.idea/workspace.xml | 113 ++++++++++++++++++ .../bukkit/maven-shaded-annotations/README.md | 68 +++++++++++ .../bukkit/maven-shaded-annotations/pom.xml | 101 ++++++++++++++++ .../java/io/github/jorelali/BreakCommand.java | 15 +++ .../io/github/jorelali/EffectCommand.java | 23 ++++ .../main/java/io/github/jorelali/Main.java | 36 ++++++ .../src/main/resources/plugin.yml | 6 + examples/bukkit/maven-shaded/pom.xml | 4 +- 9 files changed, 366 insertions(+), 2 deletions(-) create mode 100644 examples/bukkit/maven-shaded-annotations/.idea/workspace.xml create mode 100644 examples/bukkit/maven-shaded-annotations/README.md create mode 100644 examples/bukkit/maven-shaded-annotations/pom.xml create mode 100644 examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/BreakCommand.java create mode 100644 examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/EffectCommand.java create mode 100644 examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java create mode 100644 examples/bukkit/maven-shaded-annotations/src/main/resources/plugin.yml diff --git a/.gitignore b/.gitignore index 84765dce62..82d30faf0c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ -**.idea/** +**/.idea/ *.iml build-works/ libs/ diff --git a/examples/bukkit/maven-shaded-annotations/.idea/workspace.xml b/examples/bukkit/maven-shaded-annotations/.idea/workspace.xml new file mode 100644 index 0000000000..c4d8d19092 --- /dev/null +++ b/examples/bukkit/maven-shaded-annotations/.idea/workspace.xml @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1667144001375 + + + + + + + \ No newline at end of file diff --git a/examples/bukkit/maven-shaded-annotations/README.md b/examples/bukkit/maven-shaded-annotations/README.md new file mode 100644 index 0000000000..c4fb67bce4 --- /dev/null +++ b/examples/bukkit/maven-shaded-annotations/README.md @@ -0,0 +1,68 @@ +# Maven + +A simple example of making a plugin that uses the CommandAPI with Maven. + +Key points: + +- The `commandapi-bukkit-shade` and `commandapi-annotations` dependencies are both added, with annotations having the provided scope +```xml + + + dev.jorel + commandapi-bukkit-plugin + 9.0.0-SNAPSHOT + provided + + + dev.jorel + commandapi-annotations + 9.0.0-SNAPSHOT + provided + + +``` +- `commandapi-annotations` is used when compiling the project to turn the annotations into commands +```xml + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + + dev.jorel + commandapi-annotations + 8.5.1 + + + + + + +``` +- In our JavaPlugin, `Main.java`, we call `CommandAPI.onLoad()` and `CommandAPI.onEnable()` to set up the CommandAPI +- Commands can be registered using `CommandAPI.registerCommand([ClassName].class)` +- In `pom.xml`, we use relocation to relocate the CommandAPI to the `io.github.jorelali.commandapi` package. This gives us the following directory structure in our plugin's `.jar` file: + +```text +. +├── io +│ └── github +│ └── jorelali +│ ├── commandapi +│ │ ├── arguments +│ │ │ ├── AdvancementArgument.class +│ │ │ └── ... +│ │ ├── CommandAPI.class +│ │ ├── CommandAPICommand.class +│ │ └── ... +│ ├── Main.class +│ └── MyCommands.class +├── META-INF +│ └── MANIFEST.MF +└── plugin.yml +``` + + diff --git a/examples/bukkit/maven-shaded-annotations/pom.xml b/examples/bukkit/maven-shaded-annotations/pom.xml new file mode 100644 index 0000000000..53db70473f --- /dev/null +++ b/examples/bukkit/maven-shaded-annotations/pom.xml @@ -0,0 +1,101 @@ + + 4.0.0 + dev.jorel + maven-shaded-annotations + 0.0.1-SNAPSHOT + + + UTF-8 + + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + + codemc-repo + https://repo.codemc.org/repository/maven-public/ + default + + + + + + + dev.jorel + commandapi-bukkit-shade + 9.0.0-SNAPSHOT + + + + + dev.jorel + commandapi-annotations + 9.0.0-SNAPSHOT + provided + + + + + org.spigotmc + spigot-api + 1.18-R0.1-SNAPSHOT + provided + + + + + clean package + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.8.1 + + + + dev.jorel + commandapi-annotations + 8.5.1 + + + 8 + 8 + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.3.0 + + + shade + package + + shade + + + true + false + + + + dev.jorel.commandapi + io.github.jorelali.commandapi + + + + + + + + + \ No newline at end of file diff --git a/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/BreakCommand.java b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/BreakCommand.java new file mode 100644 index 0000000000..bb6730dddb --- /dev/null +++ b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/BreakCommand.java @@ -0,0 +1,15 @@ +package io.github.jorelali; + +import dev.jorel.commandapi.annotations.Command; +import dev.jorel.commandapi.annotations.Default; +import dev.jorel.commandapi.annotations.arguments.ALocationArgument; +import org.bukkit.Location; +import org.bukkit.entity.Player; + +@Command("break") +public class BreakCommand { + @Default + public static void breakAt(Player player, @ALocationArgument Location location) { + location.getBlock().breakNaturally(); + } +} diff --git a/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/EffectCommand.java b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/EffectCommand.java new file mode 100644 index 0000000000..1103aa9e98 --- /dev/null +++ b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/EffectCommand.java @@ -0,0 +1,23 @@ +package io.github.jorelali; + +import dev.jorel.commandapi.annotations.Command; +import dev.jorel.commandapi.annotations.Default; +import dev.jorel.commandapi.annotations.arguments.APlayerArgument; +import dev.jorel.commandapi.annotations.arguments.APotionEffectArgument; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; + +@Command("myeffect") +public class EffectCommand { + @Default + public static void applyEffect(Player player, @APotionEffectArgument PotionEffectType effectType) { + player.addPotionEffect(new PotionEffect(effectType, 300 * 20, 1)); + } + + @Default + public static void applyEffect(CommandSender sender, @APotionEffectArgument PotionEffectType effectType, @APlayerArgument Player player) { + player.addPotionEffect(new PotionEffect(effectType, 300 * 20, 1)); + } +} diff --git a/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java new file mode 100644 index 0000000000..1ab9cf41bf --- /dev/null +++ b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java @@ -0,0 +1,36 @@ +package io.github.jorelali; + +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIConfig; +import dev.jorel.commandapi.CommandAPIJavaLogger; +import org.bukkit.plugin.java.JavaPlugin; + +import java.io.File; + +public class Main extends JavaPlugin { + @Override + public void onLoad() { + // Set CommandAPI to use this plugin's logger + CommandAPI.setLogger(new CommandAPIJavaLogger(getLogger())); + + // Load the CommandAPI + CommandAPI.onLoad( + // Configure the CommandAPI + new CommandAPIConfig() + // Turn on verbose output for command registration logs + .verboseOutput(true) + // Give file where Brigadier's command registration tree should be dumped + .dispatcherFile(new File(getDataFolder(), "command_registration.json")) + ); + } + + @Override + public void onEnable() { + // Enable the CommandAPI + CommandAPI.onEnable(this); + + // Register commands using a reference to their class + CommandAPI.registerCommand(BreakCommand.class); + CommandAPI.registerCommand(EffectCommand.class); + } +} diff --git a/examples/bukkit/maven-shaded-annotations/src/main/resources/plugin.yml b/examples/bukkit/maven-shaded-annotations/src/main/resources/plugin.yml new file mode 100644 index 0000000000..bbee2ca9a7 --- /dev/null +++ b/examples/bukkit/maven-shaded-annotations/src/main/resources/plugin.yml @@ -0,0 +1,6 @@ +name: ExamplePlugin +main: io.github.jorelali.Main +version: 0.0.1 +author: Skepter +website: https://www.jorel.dev/CommandAPI/ +api-version: 1.13 \ No newline at end of file diff --git a/examples/bukkit/maven-shaded/pom.xml b/examples/bukkit/maven-shaded/pom.xml index 3e6e5fee99..19b7d6e770 100644 --- a/examples/bukkit/maven-shaded/pom.xml +++ b/examples/bukkit/maven-shaded/pom.xml @@ -24,7 +24,7 @@ - + dev.jorel commandapi-bukkit-shade @@ -57,6 +57,7 @@ 16 + org.apache.maven.plugins maven-shade-plugin @@ -69,6 +70,7 @@ shade + true false dev.jorel commandapi-preprocessor ${project.version} + provided diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/pom.xml index 34e5b7620b..0d0bdbb61d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/pom.xml @@ -59,6 +59,16 @@ commandapi-bukkit-nms-dependency + + + + dev.jorel + commandapi-preprocessor + ${project.version} + provided + + + diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml index 1a17cbe0ac..ee90d5eb69 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml @@ -53,24 +53,12 @@ dev.jorel commandapi-core ${project.version} - - - dev.jorel - commandapi-preprocessor - - dev.jorel commandapi-bukkit-core ${project.version} compile - - - dev.jorel - commandapi-preprocessor - - dev.jorel @@ -83,6 +71,7 @@ ${project.version} pom + de.tr7zw item-nbt-api diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml index f8bb857208..4ef97c9ccd 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/pom.xml @@ -53,10 +53,12 @@ ${project.version} + dev.jorel commandapi-preprocessor ${project.version} + provided From 1ec229009c0119a991d11c9e242e8ef977d04912 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 31 Oct 2022 12:54:07 -0400 Subject: [PATCH 097/638] Whoops, forgot Sponge --- .../commandapi-sponge/commandapi-sponge-core/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml index 4ff526f9af..3998a808cf 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/pom.xml @@ -59,6 +59,7 @@ dev.jorel commandapi-preprocessor ${project.version} + provided From cd66ebc3c7bbb52d7bccc20b5c9af6645f2af4c1 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 1 Nov 2022 10:13:46 -0400 Subject: [PATCH 098/638] Add maven profiles to choose which platforms to build --- commandapi-platforms/pom.xml | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/commandapi-platforms/pom.xml b/commandapi-platforms/pom.xml index b276ae89f5..2b5e7b0f59 100644 --- a/commandapi-platforms/pom.xml +++ b/commandapi-platforms/pom.xml @@ -13,10 +13,25 @@ commandapi-platforms pom - - commandapi-bukkit - - - - + + + + Platform.Bukkit + + commandapi-bukkit + + + + Platform.Sponge + + commandapi-sponge + + + + Platform.Velocity + + commandapi-velocity + + + \ No newline at end of file From 34f6282e67ec28659c9931403119620c370453e5 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 1 Nov 2022 10:17:32 -0400 Subject: [PATCH 099/638] Turn on Platform.Bukkit profile for GitHub build --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d8c6b01af3..22210cdfd1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: java-version: ${{ matrix.java }} cache: maven - name: build CommandAPI using maven - run: mvn clean package --batch-mode + run: mvn clean package --batch-mode -PPlatform.Bukkit - name: CommandAPI plugin artifact if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS uses: actions/upload-artifact@v2 From 23ea6fdfb6019311faf9eb11c6422f11356dda6b Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 2 Nov 2022 07:24:05 -0400 Subject: [PATCH 100/638] Make CommandAPI#updateRequirements backwards compatible --- .../src/main/java/dev/jorel/commandapi/CommandAPI.java | 5 +++-- .../test/dev/jorel/commandapi/examples/java/Examples.java | 6 +++--- .../test/dev/jorel/commandapi/examples/kotlin/Examples.kt | 2 +- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 553372d484..537554c919 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -222,8 +222,9 @@ public static void reloadDatapacks() { * * @param player the player whos requirements to update */ - public static void updateRequirements(AbstractPlayer player) { - BaseHandler.getInstance().getPlatform().updateRequirements(player); + public static void updateRequirements(Player player) { + AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + platform.updateRequirements((AbstractPlayer) platform.wrapCommandSender(player)); } // Produce WrapperCommandSyntaxException diff --git a/commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java b/commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java index e22944f959..7a2ade36c8 100644 --- a/commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java +++ b/commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java @@ -1452,7 +1452,7 @@ public void argumentCasting() { partyMembers.put(player.getUniqueId(), partyName); - CommandAPI.updateRequirements(new BukkitPlayer(player)); + CommandAPI.updateRequirements(player); }) .register(); /* ANCHOR_END: updatingrequirements */ @@ -1526,8 +1526,8 @@ void a(){ /* ANCHOR: declarearguments */ // Declare arguments like normal -IntegerArgument numeratorArgument = new IntegerArgument("numerator", 0); -IntegerArgument denominatorArgument = new IntegerArgument("denominator", 1); +Argument numeratorArgument = new IntegerArgument("numerator", 0); +Argument denominatorArgument = new IntegerArgument("denominator", 1); List arguments = new ArrayList<>(); arguments.add(numeratorArgument); diff --git a/commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt b/commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt index 9b6fa28c89..2a34ae502f 100644 --- a/commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt +++ b/commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt @@ -1389,7 +1389,7 @@ CommandAPICommand("party") partyMembers.put(player.uniqueId, partyName) - CommandAPI.updateRequirements(BukkitPlayer(player)) + CommandAPI.updateRequirements(player) }) .register() /* ANCHOR_END: updatingrequirements */ From f4a53fba5789d7daaa295bb9b3f9cf618390a610 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 2 Nov 2022 07:25:03 -0400 Subject: [PATCH 101/638] Remove comment that CommandAPI#updateRequirements is not backwards compatible --- .../src/main/java/dev/jorel/commandapi/CommandAPI.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 537554c919..871d4c18c4 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -215,8 +215,6 @@ public static void reloadDatapacks() { // I think this one makes more sense, though I don't really understand what this requirement update is achieving // exactly, since I thought it was just a special permissions check? I just need a sanity check that it makes // sense to put this here, and if not, how should we handle that backwards-compatibility issue? - WillKroboth - // Actually, I realized that this isn't quite fully backwards compatible since AbstractPlayer is not directly - // a Bukkit Player /** * Updates the requirements required for a given player to execute a command. * From 39c6165c1baa41c7780c913e3413e5c67f3e26e0 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 3 Nov 2022 07:24:22 -0400 Subject: [PATCH 102/638] Rename BaseHandler.PERMISSIONS_TO_FIX to REGISTERED_PERMISSIONS since Bukkit is the only platform fixing it --- .../dev/jorel/commandapi/BaseHandler.java | 22 +++--- .../dev/jorel/commandapi/BukkitPlatform.java | 68 +++++++++---------- 2 files changed, 42 insertions(+), 48 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index cbbdc59c6b..f9cf84ce94 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -81,7 +81,7 @@ public static String getRawArgumentInput(CommandContext FIELDS = new HashMap<>(); - final TreeMap PERMISSIONS_TO_FIX = new TreeMap<>(); + final TreeMap REGISTERED_PERMISSIONS = new TreeMap<>(); final AbstractPlatform platform; final List registeredCommands; // Keep track of what has been registered for type checking final Map, IPreviewable> previewableArguments; // Arguments with previewable chat @@ -258,22 +258,20 @@ Object parseArgument(CommandContext cmdCtx, String key, Argument value, */ Predicate generatePermissions(String commandName, CommandPermission permission, Predicate requirements) { - // If we've already registered a permission, set it to the "parent" permission. - if (PERMISSIONS_TO_FIX.containsKey(commandName.toLowerCase())) { - if (!PERMISSIONS_TO_FIX.get(commandName.toLowerCase()).equals(permission)) { - permission = PERMISSIONS_TO_FIX.get(commandName.toLowerCase()); + // If commandName was already registered, always use the first permission used + if (REGISTERED_PERMISSIONS.containsKey(commandName.toLowerCase())) { + if (!REGISTERED_PERMISSIONS.get(commandName.toLowerCase()).equals(permission)) { + permission = REGISTERED_PERMISSIONS.get(commandName.toLowerCase()); } } else { - // Add permission to a list to fix conflicts with minecraft:permissions - PERMISSIONS_TO_FIX.put(commandName.toLowerCase(), permission); + REGISTERED_PERMISSIONS.put(commandName.toLowerCase(), permission); } - final CommandPermission finalPermission = permission; - - // Register it to the Bukkit permissions registry - Optional permissionString = finalPermission.getPermission(); - permissionString.ifPresent(platform::registerPermission); + // Register permission to the platform's registry, if both exist + permission.getPermission().ifPresent(platform::registerPermission); + // Generate predicate for the permission and requirement check + CommandPermission finalPermission = permission; return (Source css) -> permissionCheck(platform.getCommandSenderFromCommandSource(css), finalPermission, requirements); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 7bad10e69c..0966a4a813 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -186,47 +186,43 @@ public void onPlayerQuit(PlayerQuitEvent e) { private void fixPermissions() { // Get the command map to find registered commands CommandMap map = paper.getCommandMap(); - // TODO: Does this make sense? Currently, BaseHandler is filling up PERMISSIONS_TO_FIX, but fixing permissions - // seems to be a platform-specific operation, at least given that isVanillaCommandWrapper is used here. Should - // the PERMISSIONS_TO_FIX stuff be moved entirely to platforms, or can this method be mostly abstracted back - // up to BaseHandler? - final Map PERMISSIONS_TO_FIX = BaseHandler.getInstance().PERMISSIONS_TO_FIX; + final Map PERMISSIONS_TO_FIX = BaseHandler.getInstance().REGISTERED_PERMISSIONS; if (!PERMISSIONS_TO_FIX.isEmpty()) { CommandAPI.logInfo("Linking permissions to commands:"); - } - - for (Map.Entry entry : PERMISSIONS_TO_FIX.entrySet()) { - String cmdName = entry.getKey(); - CommandPermission perm = entry.getValue(); - CommandAPI.logInfo(perm.toString() + " -> /" + cmdName); - final String permNode; - if (perm.isNegated() || perm.equals(CommandPermission.NONE) || perm.equals(CommandPermission.OP)) { - permNode = ""; - } else if (perm.getPermission().isPresent()) { - permNode = perm.getPermission().get(); - } else { - // This case should never occur. Worth testing this with some assertion - permNode = null; - } + for (Map.Entry entry : PERMISSIONS_TO_FIX.entrySet()) { + String cmdName = entry.getKey(); + CommandPermission perm = entry.getValue(); + CommandAPI.logInfo(perm.toString() + " -> /" + cmdName); + + final String permNode; + if (perm.isNegated() || perm.equals(CommandPermission.NONE) || perm.equals(CommandPermission.OP)) { + permNode = ""; + } else if (perm.getPermission().isPresent()) { + permNode = perm.getPermission().get(); + } else { + // This case should never occur. Worth testing this with some assertion + permNode = null; + } - /* - * Sets the permission. If you have to be OP to run this command, we set the - * permission to null. Doing so means that Bukkit's "testPermission" will always - * return true, however since the command's permission check occurs internally - * via the CommandAPI, this isn't a problem. - * - * If anyone dares tries to use testPermission() on this command, seriously, - * what are you doing and why? - */ - Command command = map.getCommand(cmdName); - if (command != null && isVanillaCommandWrapper(command)) { - command.setPermission(permNode); - } - command = map.getCommand("minecraft:" + cmdName); - if (command != null && isVanillaCommandWrapper(command)) { - command.setPermission(permNode); + /* + * Sets the permission. If you have to be OP to run this command, we set the + * permission to null. Doing so means that Bukkit's "testPermission" will always + * return true, however since the command's permission check occurs internally + * via the CommandAPI, this isn't a problem. + * + * If anyone dares tries to use testPermission() on this command, seriously, + * what are you doing and why? + */ + Command command = map.getCommand(cmdName); + if (command != null && isVanillaCommandWrapper(command)) { + command.setPermission(permNode); + } + command = map.getCommand("minecraft:" + cmdName); + if (command != null && isVanillaCommandWrapper(command)) { + command.setPermission(permNode); + } } } CommandAPI.logNormal("Linked " + PERMISSIONS_TO_FIX.size() + " Bukkit permissions to commands"); From 18ae666965174348f5cb4985718d214a77f87e58 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 3 Nov 2022 07:59:50 -0400 Subject: [PATCH 103/638] Move NBT API hook check to BukkitPlatform#checkDependencies --- .../main/java/dev/jorel/commandapi/BaseHandler.java | 11 ----------- .../java/dev/jorel/commandapi/BukkitPlatform.java | 10 ++++++++++ 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index f9cf84ce94..99cab17cc8 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -109,17 +109,6 @@ private void checkDependencies() { new ClassNotFoundException("Could not hook into Brigadier (Are you running Minecraft 1.13 or above?)") .printStackTrace(); } - - // TODO: Should this be moved to Bukkit? Maybe just the message pointing to a Spigot resource page - Class nbtContainerClass = CommandAPI.getConfiguration().getNBTContainerClass(); - if (nbtContainerClass != null && CommandAPI.getConfiguration().getNBTContainerConstructor() != null) { - CommandAPI.logNormal("Hooked into an NBT API with class " + nbtContainerClass.getName()); - } else { - if (CommandAPI.getConfiguration().hasVerboseOutput()) { - CommandAPI.logWarning( - "Could not hook into the NBT API for NBT support. Download it from https://www.spigotmc.org/resources/nbt-api.7939/"); - } - } } public void onEnable(Object plugin) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 0966a4a813..fc7b33de18 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -98,6 +98,16 @@ public void onLoad() { private void checkDependencies() { // Log successful hooks + Class nbtContainerClass = CommandAPI.getConfiguration().getNBTContainerClass(); + if (nbtContainerClass != null && CommandAPI.getConfiguration().getNBTContainerConstructor() != null) { + CommandAPI.logNormal("Hooked into an NBT API with class " + nbtContainerClass.getName()); + } else { + if (CommandAPI.getConfiguration().hasVerboseOutput()) { + CommandAPI.logWarning( + "Could not hook into the NBT API for NBT support. Download it from https://www.spigotmc.org/resources/nbt-api.7939/"); + } + } + try { Class.forName("org.spigotmc.SpigotConfig"); CommandAPI.logNormal("Hooked into Spigot successfully for Chat/ChatComponents"); From f4a8010346f43ae05aa24e2d40d18c8f34f9b5db Mon Sep 17 00:00:00 2001 From: BuildTools Date: Fri, 4 Nov 2022 07:07:34 -0400 Subject: [PATCH 104/638] Rename commandapi-examples module to commandapi-documentation-code to avoid confusion with the examples folder --- .../pom.xml | 2 +- .../commandapi/examples/java/Examples.java | 0 .../commandapi/examples/kotlin/Examples.kt | 0 docssrc/src/advancementargument.md | 4 +-- docssrc/src/adventurechatarguments.md | 8 ++--- docssrc/src/aliases.md | 4 +-- docssrc/src/arguments.md | 24 +++++++------- docssrc/src/asyncsuggestions.md | 4 +-- docssrc/src/biomeargument.md | 4 +-- docssrc/src/blockpredicateargs.md | 8 ++--- docssrc/src/blockstatearguments.md | 4 +-- docssrc/src/brigadier.md | 28 ++++++++-------- docssrc/src/brigadiersuggestions.md | 8 ++--- docssrc/src/chatarguments.md | 4 +-- docssrc/src/chatpreview.md | 8 ++--- docssrc/src/commandfailures.md | 4 +-- docssrc/src/commandregistration.md | 8 ++--- docssrc/src/commandtrees.md | 8 ++--- docssrc/src/conversion.md | 8 ++--- docssrc/src/customarguments.md | 8 ++--- docssrc/src/enchantmentargument.md | 4 +-- docssrc/src/entityarguments.md | 8 ++--- docssrc/src/environmentargs.md | 4 +-- docssrc/src/functionarguments.md | 4 +-- docssrc/src/functions.md | 4 +-- docssrc/src/functionwrapper.md | 4 +-- docssrc/src/help.md | 8 ++--- docssrc/src/itemstackarguments.md | 4 +-- docssrc/src/itemstackpredicateargs.md | 4 +-- docssrc/src/listarguments.md | 4 +-- docssrc/src/listed.md | 4 +-- docssrc/src/literalarguments.md | 8 ++--- docssrc/src/locationargument.md | 4 +-- docssrc/src/loottableargument.md | 4 +-- docssrc/src/mathoperationarguments.md | 4 +-- docssrc/src/multilitargs.md | 4 +-- docssrc/src/native.md | 4 +-- docssrc/src/nbtarguments.md | 8 ++--- docssrc/src/normalexecutors.md | 16 +++++----- docssrc/src/objectivearguments.md | 8 ++--- docssrc/src/particlearguments.md | 8 ++--- docssrc/src/permissions.md | 16 +++++----- docssrc/src/potionarguments.md | 4 +-- docssrc/src/predicatetips.md | 20 ++++++------ docssrc/src/primitivearguments.md | 4 +-- docssrc/src/proxysender.md | 8 ++--- docssrc/src/rangedarguments.md | 4 +-- docssrc/src/recipeargument.md | 8 ++--- docssrc/src/requirements.md | 32 +++++++++---------- docssrc/src/resultingcommandexecutors.md | 12 +++---- docssrc/src/rotationargs.md | 4 +-- docssrc/src/safeargumentsuggestions.md | 28 ++++++++-------- docssrc/src/scoreboardarguments.md | 8 ++--- docssrc/src/shading.md | 8 ++--- docssrc/src/soundargument.md | 4 +-- docssrc/src/spigotchatarguments.md | 8 ++--- docssrc/src/stringarguments.md | 4 +-- docssrc/src/stringargumentsuggestions.md | 16 +++++----- docssrc/src/subcommands.md | 16 +++++----- docssrc/src/teamarguments.md | 4 +-- docssrc/src/timeargs.md | 4 +-- docssrc/src/tooltips.md | 24 +++++++------- pom.xml | 4 +-- 63 files changed, 253 insertions(+), 253 deletions(-) rename {commandapi-examples => commandapi-documentation-code}/pom.xml (97%) rename {commandapi-examples => commandapi-documentation-code}/src/test/dev/jorel/commandapi/examples/java/Examples.java (100%) rename {commandapi-examples => commandapi-documentation-code}/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt (100%) diff --git a/commandapi-examples/pom.xml b/commandapi-documentation-code/pom.xml similarity index 97% rename from commandapi-examples/pom.xml rename to commandapi-documentation-code/pom.xml index e0ab595e37..236ad7be73 100644 --- a/commandapi-examples/pom.xml +++ b/commandapi-documentation-code/pom.xml @@ -10,7 +10,7 @@ 9.0.0-SNAPSHOT - commandapi-examples + commandapi-documentation-examples diff --git a/commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java b/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java similarity index 100% rename from commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java rename to commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java diff --git a/commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt b/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt similarity index 100% rename from commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt rename to commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt diff --git a/docssrc/src/advancementargument.md b/docssrc/src/advancementargument.md index c9e87eaf36..1a859ebb5c 100644 --- a/docssrc/src/advancementargument.md +++ b/docssrc/src/advancementargument.md @@ -19,11 +19,11 @@ Since we require a player, we will use the `PlayerArgument` for this example. Gi
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:advancementarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:advancementarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:advancementarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:advancementarguments}} ```
diff --git a/docssrc/src/adventurechatarguments.md b/docssrc/src/adventurechatarguments.md index f2d01172bb..4678160d2e 100644 --- a/docssrc/src/adventurechatarguments.md +++ b/docssrc/src/adventurechatarguments.md @@ -29,11 +29,11 @@ We can construct a book using the Adventure API's `Book.book(Component, Componen
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChatComponent}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChatComponent}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChatComponent}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChatComponent}} ```
@@ -61,11 +61,11 @@ In order to broadcast an Adventure `Component` to all players on the server, we
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChat}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChat}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChat}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChat}} ```
diff --git a/docssrc/src/aliases.md b/docssrc/src/aliases.md index c0bbaf5501..c7b6118b68 100644 --- a/docssrc/src/aliases.md +++ b/docssrc/src/aliases.md @@ -11,11 +11,11 @@ In this example, we register the command `/getpos` that returns the command send
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:aliases}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:aliases}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:aliases}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:aliases}} ```
diff --git a/docssrc/src/arguments.md b/docssrc/src/arguments.md index 3fb6cd36d5..4f318dc437 100644 --- a/docssrc/src/arguments.md +++ b/docssrc/src/arguments.md @@ -26,11 +26,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax1}} ```
@@ -38,11 +38,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax2}} ```
@@ -50,11 +50,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax3}} ```
@@ -68,11 +68,11 @@ To access arguments, they have to be casted to the type that the argument repres
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentcasting}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentcasting}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentcasting}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentcasting}} ```
@@ -163,11 +163,11 @@ We first register the first `/kill` command as normal:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd}} ```
@@ -177,11 +177,11 @@ Now we declare our command with arguments for our second command. Then, we can r
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd2}} ```
diff --git a/docssrc/src/asyncsuggestions.md b/docssrc/src/asyncsuggestions.md index 9ad7bfeff0..c1d34fb608 100644 --- a/docssrc/src/asyncsuggestions.md +++ b/docssrc/src/asyncsuggestions.md @@ -66,11 +66,11 @@ We make use of the `ArgumentSuggestions.stringsAsync` method to provide asynchro
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:asyncreadfile}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:asyncreadfile}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:asyncreadfile}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:asyncreadfile}} ```
diff --git a/docssrc/src/biomeargument.md b/docssrc/src/biomeargument.md index 6db757ec90..6ea33c1161 100644 --- a/docssrc/src/biomeargument.md +++ b/docssrc/src/biomeargument.md @@ -19,11 +19,11 @@ And we can set the biome of the current chunk as expected:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:biomearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:biomearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:biomearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:biomearguments}} ```
diff --git a/docssrc/src/blockpredicateargs.md b/docssrc/src/blockpredicateargs.md index c33c24bd87..36f3318931 100644 --- a/docssrc/src/blockpredicateargs.md +++ b/docssrc/src/blockpredicateargs.md @@ -23,11 +23,11 @@ First, we declare our arguments. We want to use the `BlockPredicateArgument` sin
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments}} ```
@@ -41,11 +41,11 @@ Lastly, we register our command as normal using the `register()` method.
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments2}} ```
diff --git a/docssrc/src/blockstatearguments.md b/docssrc/src/blockstatearguments.md index be858ef0fa..2bda0e08c6 100644 --- a/docssrc/src/blockstatearguments.md +++ b/docssrc/src/blockstatearguments.md @@ -23,11 +23,11 @@ And then we can simply set our block using `setBlockData()`:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockstateargument}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockstateargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockstateargument}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockstateargument}} ```
diff --git a/docssrc/src/brigadier.md b/docssrc/src/brigadier.md index b19983175f..6703b058a3 100644 --- a/docssrc/src/brigadier.md +++ b/docssrc/src/brigadier.md @@ -98,11 +98,11 @@ Now that we've established what we want, we can finally begin writing the code!
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:declareliteral}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:declareliteral}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareliteral}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareliteral}} ```
@@ -112,11 +112,11 @@ With that completed, we can now create our "argument" to this predicate. To do t
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarearguments}} ```
@@ -126,11 +126,11 @@ Now we're going to get into the very nitty-gritty part - the predicate declarati
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:declareargumentbuilders}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:declareargumentbuilders}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareargumentbuilders}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareargumentbuilders}} ```
@@ -140,11 +140,11 @@ Now we'll define our predicate. Since this is sort of a "meta-command" (it direc
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarefork}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarefork}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarefork}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarefork}} ```
@@ -154,11 +154,11 @@ Finally, we can now link everything up. We know that `numerator` comes first, **
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarerandomchance}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarerandomchance}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarerandomchance}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarerandomchance}} ```
@@ -168,11 +168,11 @@ Finally, we "register" the command. In this case, we're actually just adding the
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:injectintoroot}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:injectintoroot}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:injectintoroot}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:injectintoroot}} ```
@@ -186,11 +186,11 @@ So, hopefully that wasn't too confusing! If you're still lost, here's the whole
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:brigadier}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:brigadier}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:brigadier}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:brigadier}} ```
diff --git a/docssrc/src/brigadiersuggestions.md b/docssrc/src/brigadiersuggestions.md index 50e135786e..a7efca8a57 100644 --- a/docssrc/src/brigadiersuggestions.md +++ b/docssrc/src/brigadiersuggestions.md @@ -25,11 +25,11 @@ For this command, we'll use a `GreedyStringArgument` because that allows users t
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions1}} ```
@@ -55,11 +55,11 @@ We use the command suggestions declared above by using the `replaceSuggestions`
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions2}} ```
diff --git a/docssrc/src/chatarguments.md b/docssrc/src/chatarguments.md index 8643ac75ec..8760fb2253 100644 --- a/docssrc/src/chatarguments.md +++ b/docssrc/src/chatarguments.md @@ -31,11 +31,11 @@ We then use the `ChatColorArgument` to change the player's name color:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatcolorarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatcolorarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcolorarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcolorarguments}} ```
diff --git a/docssrc/src/chatpreview.md b/docssrc/src/chatpreview.md index a307aafce4..ce14f92316 100644 --- a/docssrc/src/chatpreview.md +++ b/docssrc/src/chatpreview.md @@ -110,11 +110,11 @@ For execution, we do the same procedure, because the text that the user enters s
```java,Spigot -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigot}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigot}} ``` ```java,Paper -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventure}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventure}} ```
@@ -136,11 +136,11 @@ By using `.usePreview(true)`, we don't have to re-translate `&` formatting codes
```java,Spigot -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigotusepreview}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigotusepreview}} ``` ```java,Paper -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventureusepreview}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventureusepreview}} ```
diff --git a/docssrc/src/commandfailures.md b/docssrc/src/commandfailures.md index 03216c9b40..86798cbbca 100644 --- a/docssrc/src/commandfailures.md +++ b/docssrc/src/commandfailures.md @@ -19,11 +19,11 @@ Therefore, to gracefully handle this with a proper error message, we use `Comman
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandfailures}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandfailures}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandfailures}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandfailures}} ```
diff --git a/docssrc/src/commandregistration.md b/docssrc/src/commandregistration.md index 16f412bb8f..27dac84200 100644 --- a/docssrc/src/commandregistration.md +++ b/docssrc/src/commandregistration.md @@ -7,11 +7,11 @@ I think the easiest way to explain it is with an example:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandregistration}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandregistration}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandregistration}} ```
@@ -213,11 +213,11 @@ To replace a command, we can first unregister it and then register our implement
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandunregistration}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandunregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandunregistration}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandunregistration}} ```
diff --git a/docssrc/src/commandtrees.md b/docssrc/src/commandtrees.md index d0e59887fb..f677b07420 100644 --- a/docssrc/src/commandtrees.md +++ b/docssrc/src/commandtrees.md @@ -67,11 +67,11 @@ We can do this by adding a `PlayerArgument` to our command. As described above,
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_sayhi1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_sayhi1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_sayhi1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_sayhi1}} ```
@@ -102,11 +102,11 @@ Say we wanted to create a plugin to let a user edit signs. We have a single comm
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_signedit}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_signedit}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_signedit}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_signedit}} ```
diff --git a/docssrc/src/conversion.md b/docssrc/src/conversion.md index e16cc4acc6..4267a99c1b 100644 --- a/docssrc/src/conversion.md +++ b/docssrc/src/conversion.md @@ -42,11 +42,11 @@ As you can see, it declares 3 commands: `/gmc`, `/gms` and `/i`. We can now begi
```java,Java -public {{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:converter}} +public {{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:converter}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter}} ```
@@ -98,11 +98,11 @@ With the EssentialsX plugin, the `` value can only take numbers between 0
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:converter2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:converter2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter2}} ```
diff --git a/docssrc/src/customarguments.md b/docssrc/src/customarguments.md index 91c4c1aee5..6a3f96fcfb 100644 --- a/docssrc/src/customarguments.md +++ b/docssrc/src/customarguments.md @@ -87,11 +87,11 @@ Say we want to create an argument to represents the list of available worlds on
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:customarguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:customarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments2}} ```
@@ -116,11 +116,11 @@ Since we have defined the method `worldArgument()` which automatically generates
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:customarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:customarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments}} ```
diff --git a/docssrc/src/enchantmentargument.md b/docssrc/src/enchantmentargument.md index ecca02aed6..5e174b4410 100644 --- a/docssrc/src/enchantmentargument.md +++ b/docssrc/src/enchantmentargument.md @@ -19,11 +19,11 @@ Since most enchantment levels range between 1 and 5, we will also make use of th
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:enchantmentarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:enchantmentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:enchantmentarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:enchantmentarguments}} ```
diff --git a/docssrc/src/entityarguments.md b/docssrc/src/entityarguments.md index c8d0846ecf..0b633759c4 100644 --- a/docssrc/src/entityarguments.md +++ b/docssrc/src/entityarguments.md @@ -32,11 +32,11 @@ Instead, we can combine all of these into one by using the `EntitySelectorArgume
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:entityselectorarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:entityselectorarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:entityselectorarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:entityselectorarguments}} ```
@@ -98,11 +98,11 @@ Since we're trying to specify an entity type, we will use the `EntityTypeArgumen
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:entitytypearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:entitytypearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:entitytypearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:entitytypearguments}} ```
diff --git a/docssrc/src/environmentargs.md b/docssrc/src/environmentargs.md index 3a8d05a151..d8faeef79a 100644 --- a/docssrc/src/environmentargs.md +++ b/docssrc/src/environmentargs.md @@ -19,11 +19,11 @@ Using the world name and the environment of the world, we can use Bukkit's `Worl
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:environmentarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:environmentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:environmentarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:environmentarguments}} ```
diff --git a/docssrc/src/functionarguments.md b/docssrc/src/functionarguments.md index ca7600c33f..f3ce960312 100644 --- a/docssrc/src/functionarguments.md +++ b/docssrc/src/functionarguments.md @@ -21,11 +21,11 @@ When provided with a function, it will execute that function. If instead a tag i
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionarguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments2}} ```
diff --git a/docssrc/src/functions.md b/docssrc/src/functions.md index 9542b05477..c8c314b646 100644 --- a/docssrc/src/functions.md +++ b/docssrc/src/functions.md @@ -31,11 +31,11 @@ Say we have a command `/killall` that simply kills all entities in all worlds on
```java,Java -public {{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionregistration}} +public {{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionregistration}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionregistration}} ```
diff --git a/docssrc/src/functionwrapper.md b/docssrc/src/functionwrapper.md index 877d32c1bb..ac0d5b14ad 100644 --- a/docssrc/src/functionwrapper.md +++ b/docssrc/src/functionwrapper.md @@ -35,11 +35,11 @@ The `run()` method runs the function. The command executor that runs this functi
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments}} ```
diff --git a/docssrc/src/help.md b/docssrc/src/help.md index 817fafb5b3..2f55c7e2ad 100644 --- a/docssrc/src/help.md +++ b/docssrc/src/help.md @@ -48,11 +48,11 @@ In this simple example, we implement the above screenshot's help topic. We regis
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:help}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:help}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:help}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:help}} ```
@@ -62,11 +62,11 @@ We could also register this command using the `withHelp` method instead:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:help2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:help2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:help2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:help2}} ```
diff --git a/docssrc/src/itemstackarguments.md b/docssrc/src/itemstackarguments.md index ba2a9e1d5e..ed14bed4e2 100644 --- a/docssrc/src/itemstackarguments.md +++ b/docssrc/src/itemstackarguments.md @@ -19,11 +19,11 @@ With this syntax, we can easily create our command:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:itemstackarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:itemstackarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackarguments}} ```
diff --git a/docssrc/src/itemstackpredicateargs.md b/docssrc/src/itemstackpredicateargs.md index 0050f8574f..9ccde18213 100644 --- a/docssrc/src/itemstackpredicateargs.md +++ b/docssrc/src/itemstackpredicateargs.md @@ -17,11 +17,11 @@ We implement this with a simple for loop over the player's inventory and remove
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:itemstackpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:itemstackpredicatearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackpredicatearguments}} ```
diff --git a/docssrc/src/listarguments.md b/docssrc/src/listarguments.md index a267540578..92489c7e4a 100644 --- a/docssrc/src/listarguments.md +++ b/docssrc/src/listarguments.md @@ -129,11 +129,11 @@ To do this, we create a command with an `IntegerArgument` to specify the amount
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ListArgument_MultiGive}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ListArgument_MultiGive}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ListArgument_MultiGive}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ListArgument_MultiGive}} ```
diff --git a/docssrc/src/listed.md b/docssrc/src/listed.md index c9d7f2b44e..337d01d73b 100644 --- a/docssrc/src/listed.md +++ b/docssrc/src/listed.md @@ -25,11 +25,11 @@ Let's also say that in our implementation of this command, we don't actually per
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:listed}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:listed}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:listed}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:listed}} ```
diff --git a/docssrc/src/literalarguments.md b/docssrc/src/literalarguments.md index d5364e13e4..8d3220a2e8 100644 --- a/docssrc/src/literalarguments.md +++ b/docssrc/src/literalarguments.md @@ -47,11 +47,11 @@ As an example, let's declare the literal "hello" as a valid literal for this com
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:literalarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:literalarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments}} ```
@@ -75,11 +75,11 @@ This is a demonstration of how you could create a command similar to Minecraft's
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:literalarguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:literalarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments2}} ```
diff --git a/docssrc/src/locationargument.md b/docssrc/src/locationargument.md index a62231c3a4..bb87c193dc 100644 --- a/docssrc/src/locationargument.md +++ b/docssrc/src/locationargument.md @@ -43,11 +43,11 @@ Simply put, given the coordinates provided to the command, "break" the block by
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:locationarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:locationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:locationarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:locationarguments}} ```
diff --git a/docssrc/src/loottableargument.md b/docssrc/src/loottableargument.md index cab31f92e6..2538db1911 100644 --- a/docssrc/src/loottableargument.md +++ b/docssrc/src/loottableargument.md @@ -19,11 +19,11 @@ We ensure that the location provided is a container (such as a chest or shulkerb
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:loottablearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:loottablearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:loottablearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:loottablearguments}} ```
diff --git a/docssrc/src/mathoperationarguments.md b/docssrc/src/mathoperationarguments.md index 20c0d1cc4b..e4bcd2c1d7 100644 --- a/docssrc/src/mathoperationarguments.md +++ b/docssrc/src/mathoperationarguments.md @@ -63,11 +63,11 @@ As with any command, we declare our arguments, cast them properly and then we wr
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:mathoperationarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:mathoperationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:mathoperationarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:mathoperationarguments}} ```
diff --git a/docssrc/src/multilitargs.md b/docssrc/src/multilitargs.md index 7b91526b0d..3e47414419 100644 --- a/docssrc/src/multilitargs.md +++ b/docssrc/src/multilitargs.md @@ -19,11 +19,11 @@ In this example, we'll show how to use multi literals to declare Minecraft's `/g
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:multiliteralarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:multiliteralarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiliteralarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiliteralarguments}} ```
diff --git a/docssrc/src/native.md b/docssrc/src/native.md index a4b1168307..7a7c8da69d 100644 --- a/docssrc/src/native.md +++ b/docssrc/src/native.md @@ -53,11 +53,11 @@ As you can see, this command takes no arguments. This is fine, since our "argume
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:nativesender}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:nativesender}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nativesender}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nativesender}} ```
diff --git a/docssrc/src/nbtarguments.md b/docssrc/src/nbtarguments.md index f122a4fb09..4d8788bc30 100644 --- a/docssrc/src/nbtarguments.md +++ b/docssrc/src/nbtarguments.md @@ -40,11 +40,11 @@ Now, we can configure the CommandAPI using the `CommandAPI.onLoad()` method to u
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundargumentonload}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundargumentonload}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundargumentonload}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundargumentonload}} ```
@@ -66,11 +66,11 @@ Since the underlying implementation of the `NBTCompoundArgument` can change (e.g
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundarguments}} ```
diff --git a/docssrc/src/normalexecutors.md b/docssrc/src/normalexecutors.md index 25be64507e..30d889dac7 100644 --- a/docssrc/src/normalexecutors.md +++ b/docssrc/src/normalexecutors.md @@ -36,11 +36,11 @@ We use an argument "message" to hold the message to broadcast, we provide some a
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3_1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3_1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3_1}} ```
@@ -80,11 +80,11 @@ Say we wanted to create a command `/suicide`, which kills the player that execut
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors}} ```
@@ -106,11 +106,11 @@ Extending on the suicide example above, we could write another implementation fo
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors2}} ```
@@ -158,11 +158,11 @@ Expanding on the suicide example above, we can restrict the command to only play
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3}} ```
diff --git a/docssrc/src/objectivearguments.md b/docssrc/src/objectivearguments.md index 79d2ff5888..4affbdc99b 100644 --- a/docssrc/src/objectivearguments.md +++ b/docssrc/src/objectivearguments.md @@ -30,11 +30,11 @@ Given that an objective has to be casted to a String, we have to find a way to c
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:objectiveargument}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:objectiveargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectiveargument}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectiveargument}} ```
@@ -62,11 +62,11 @@ To do this, we're going to take advantage of Bukkit's `Scoreboard.getObjectivesB
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:objectivecriteriaarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:objectivecriteriaarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectivecriteriaarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectivecriteriaarguments}} ```
diff --git a/docssrc/src/particlearguments.md b/docssrc/src/particlearguments.md index a708831f46..27871e0967 100644 --- a/docssrc/src/particlearguments.md +++ b/docssrc/src/particlearguments.md @@ -50,11 +50,11 @@ With this, we can simply spawn the particle using the `World.spawnParticle(Parti
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:particlearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:particlearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments}} ```
@@ -78,11 +78,11 @@ In this case, we'll use the `World.spawnParticle(Particle particle, Location loc
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:particlearguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:particlearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments2}} ```
diff --git a/docssrc/src/permissions.md b/docssrc/src/permissions.md index 0d05a0bc02..923f16f9c4 100644 --- a/docssrc/src/permissions.md +++ b/docssrc/src/permissions.md @@ -30,11 +30,11 @@ Say we created a command `/god` that sets a player as being invulnerable. Since
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions}} ```
@@ -44,11 +44,11 @@ As stated above, it is possible to assign a permission using a String instead of
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions2}} ```
@@ -85,11 +85,11 @@ We first declare the command as normal. Nothing fancy is going on here:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions3_1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions3_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_1}} ```
@@ -99,11 +99,11 @@ Now we declare our command with arguments. We use a `PlayerArgument` and apply t
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions3_2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions3_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_2}} ```
diff --git a/docssrc/src/potionarguments.md b/docssrc/src/potionarguments.md index 35aacea14c..f9393a0aea 100644 --- a/docssrc/src/potionarguments.md +++ b/docssrc/src/potionarguments.md @@ -19,11 +19,11 @@ In this example, we utilize some of the other arguments that we've described ear
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:potioneffectarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:potioneffectarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:potioneffectarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:potioneffectarguments}} ```
diff --git a/docssrc/src/predicatetips.md b/docssrc/src/predicatetips.md index 880d29aab6..b4d7ae7f3e 100644 --- a/docssrc/src/predicatetips.md +++ b/docssrc/src/predicatetips.md @@ -5,11 +5,11 @@ In our [example for creating a party system](./requirements.md#example---a-party
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} ```
@@ -19,11 +19,11 @@ And for our party teleportation command, we had the following code:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirementstp}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirementstp}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementstp}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementstp}} ```
@@ -33,11 +33,11 @@ We can simplify this code by declaring the predicate:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips}} ```
@@ -47,11 +47,11 @@ Now, we can use the predicate `testIfPlayerHasParty` in our code for creating a
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips2}} ```
@@ -61,11 +61,11 @@ And we can use it again for our code for teleporting to party members:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips3}} ```
diff --git a/docssrc/src/primitivearguments.md b/docssrc/src/primitivearguments.md index bcec6be983..044d92e832 100644 --- a/docssrc/src/primitivearguments.md +++ b/docssrc/src/primitivearguments.md @@ -35,11 +35,11 @@ We first retrieve the keys from the configuration file using the typical Bukkit
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:booleanargs}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:booleanargs}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:booleanargs}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:booleanargs}} ```
diff --git a/docssrc/src/proxysender.md b/docssrc/src/proxysender.md index e36c8c63de..6216dc346d 100644 --- a/docssrc/src/proxysender.md +++ b/docssrc/src/proxysender.md @@ -11,11 +11,11 @@ Say we have a command which kills the sender of a command. This is easily implem
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:proxysender}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:proxysender}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender}} ```
@@ -31,11 +31,11 @@ To handle this case, we can use the `.executesProxy()` method to ensure that the
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:proxysender2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:proxysender2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender2}} ```
diff --git a/docssrc/src/rangedarguments.md b/docssrc/src/rangedarguments.md index cb4fb927dc..aa0c554df5 100644 --- a/docssrc/src/rangedarguments.md +++ b/docssrc/src/rangedarguments.md @@ -56,11 +56,11 @@ Now, we simply create our arguments using `IntegerRangeArgument` for our range a
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:rangedarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:rangedarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:rangedarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:rangedarguments}} ```
diff --git a/docssrc/src/recipeargument.md b/docssrc/src/recipeargument.md index d8c64c7689..7e1153fdf7 100644 --- a/docssrc/src/recipeargument.md +++ b/docssrc/src/recipeargument.md @@ -19,11 +19,11 @@ As such, we easily implement it by specifying the `RecipeArgument`, casting it a
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:recipearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:recipearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments}} ```
@@ -45,11 +45,11 @@ This is then implemented trivially as follows:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:recipearguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:recipearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments2}} ```
diff --git a/docssrc/src/requirements.md b/docssrc/src/requirements.md index a6f899c0d4..925deeac29 100644 --- a/docssrc/src/requirements.md +++ b/docssrc/src/requirements.md @@ -38,11 +38,11 @@ We want to put a requirement on this command that the player needs to have at le
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements}} ```
@@ -75,11 +75,11 @@ To represent our party in code, we'll use a simple `Map` called `partyMembers` w
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirementsmap}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirementsmap}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementsmap}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementsmap}} ```
@@ -89,11 +89,11 @@ To begin with, let's create the `/party create ` command. First, we m
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} ```
@@ -105,11 +105,11 @@ Now that we've declared our arguments, we can now declare our main command `/par
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements3}} ```
@@ -121,11 +121,11 @@ So now we've added the ability to create a party if we're not already in it. Now
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements4}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements4}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements4}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements4}} ```
@@ -137,11 +137,11 @@ Once the arguments have been declared, we can now implement our party teleportat
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements5}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements5}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements5}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements5}} ```
@@ -222,11 +222,11 @@ When a player creates a new party, we need to ensure that their requirements are
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:updatingrequirements}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:updatingrequirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:updatingrequirements}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:updatingrequirements}} ```
@@ -250,11 +250,11 @@ For example, you can apply multiple requirements for a command by calling the `w
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:multiplerequirements}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:multiplerequirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiplerequirements}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiplerequirements}} ```
diff --git a/docssrc/src/resultingcommandexecutors.md b/docssrc/src/resultingcommandexecutors.md index df50cd820c..f9b1cf3223 100644 --- a/docssrc/src/resultingcommandexecutors.md +++ b/docssrc/src/resultingcommandexecutors.md @@ -27,11 +27,11 @@ Say we want a command that returns a random number as a result. This can then be
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor}} ```
@@ -58,11 +58,11 @@ Since we're declaring commands that are to be used in `/execute`, we must ensure
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor2}} ```
@@ -72,11 +72,11 @@ Now we write our implementation for `/givereward`. In this example, we use the `
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor3}} ```
diff --git a/docssrc/src/rotationargs.md b/docssrc/src/rotationargs.md index b0c67788c8..15e0a0bfbc 100644 --- a/docssrc/src/rotationargs.md +++ b/docssrc/src/rotationargs.md @@ -28,11 +28,11 @@ To do this, we'll use the rotation from the `RotationArgument` and select an ent
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:rotationarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:rotationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:rotationarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:rotationarguments}} ```
diff --git a/docssrc/src/safeargumentsuggestions.md b/docssrc/src/safeargumentsuggestions.md index 06f6a0ecd1..5956b227e0 100644 --- a/docssrc/src/safeargumentsuggestions.md +++ b/docssrc/src/safeargumentsuggestions.md @@ -127,11 +127,11 @@ To do this, we first register our custom items:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments}} ```
@@ -141,11 +141,11 @@ Once we've done that, we can now include them in our command registration. To do
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments_2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments_2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments_2}} ```
@@ -167,11 +167,11 @@ Now say that we don't want non-op players to spawn bosses. To do this, we'll cre
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments}} ```
@@ -181,11 +181,11 @@ We then use our safe arguments to return an `EntityType[]` as the list of values
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_2}} ```
@@ -195,11 +195,11 @@ Now we register our command as normal:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_3}} ```
@@ -221,11 +221,11 @@ Now, we don't want to remove a potion effect that already exists on a player, so
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments}} ```
@@ -235,11 +235,11 @@ And then we can register our command as normal:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments_2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments_2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments_2}} ```
diff --git a/docssrc/src/scoreboardarguments.md b/docssrc/src/scoreboardarguments.md index 9a389c91b7..232e2e958d 100644 --- a/docssrc/src/scoreboardarguments.md +++ b/docssrc/src/scoreboardarguments.md @@ -41,11 +41,11 @@ Note how we use `..9` to represent 9 or less deaths (since ranges are inclusive)
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:scoreholderargument}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:scoreholderargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreholderargument}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreholderargument}} ```
@@ -107,11 +107,11 @@ We implement this simply by using the `ScoreboardSlotArgument` as our argument,
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:scoreboardslotargument}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:scoreboardslotargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreboardslotargument}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreboardslotargument}} ```
diff --git a/docssrc/src/shading.md b/docssrc/src/shading.md index e373fa6b67..650f576e41 100644 --- a/docssrc/src/shading.md +++ b/docssrc/src/shading.md @@ -44,11 +44,11 @@ The `CommandAPIConfig` class follows a typical builder pattern (without you havi
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandAPIConfigSilent}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandAPIConfigSilent}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandAPIConfigSilent}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandAPIConfigSilent}} ```
@@ -66,11 +66,11 @@ The `onDisable()` method disables the CommandAPI gracefully. This should be plac
```java,Java -public {{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:shading}} +public {{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:shading}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:shading}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:shading}} ```
diff --git a/docssrc/src/soundargument.md b/docssrc/src/soundargument.md index 617a9d5cd1..7c03131732 100644 --- a/docssrc/src/soundargument.md +++ b/docssrc/src/soundargument.md @@ -19,11 +19,11 @@ This command simply plays the provided sound to the current player:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:soundarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:soundarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:soundarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:soundarguments}} ```
diff --git a/docssrc/src/spigotchatarguments.md b/docssrc/src/spigotchatarguments.md index 367aefcf80..454325699e 100644 --- a/docssrc/src/spigotchatarguments.md +++ b/docssrc/src/spigotchatarguments.md @@ -83,11 +83,11 @@ Now we can create our book command. We use the player as the main target by usin
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatcomponentarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatcomponentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcomponentarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcomponentarguments}} ```
@@ -125,11 +125,11 @@ _Bob_ would receive the message "Hello Bob", whereas _Michael_ would receive the
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatarguments}} ```
diff --git a/docssrc/src/stringarguments.md b/docssrc/src/stringarguments.md index 76f6fb88b8..99e21d0fd9 100644 --- a/docssrc/src/stringarguments.md +++ b/docssrc/src/stringarguments.md @@ -93,11 +93,11 @@ This would be ideal for a greedy string, since it can consume all text after the
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:greedystringarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:greedystringarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:greedystringarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:greedystringarguments}} ```
diff --git a/docssrc/src/stringargumentsuggestions.md b/docssrc/src/stringargumentsuggestions.md index 6290c8f670..aa156caf27 100644 --- a/docssrc/src/stringargumentsuggestions.md +++ b/docssrc/src/stringargumentsuggestions.md @@ -19,11 +19,11 @@ We then implement our warp teleporting command using `replaceSuggestions()` on t
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions1}} ```
@@ -53,11 +53,11 @@ Let's say we have a simple class to get the friends of a command sender:
```java,Java -public {{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_1}} +public {{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_1}} ```
@@ -67,11 +67,11 @@ We can then use this to generate our suggested list of friends:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_2}} ```
@@ -123,11 +123,11 @@ When run, this command will send a message to a target player within the provide
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestionsPrevious}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestionsPrevious}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestionsPrevious}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestionsPrevious}} ```
diff --git a/docssrc/src/subcommands.md b/docssrc/src/subcommands.md index e8263bbf4d..9a8106f954 100644 --- a/docssrc/src/subcommands.md +++ b/docssrc/src/subcommands.md @@ -33,11 +33,11 @@ We can implement this by creating a `CommandAPICommand` with the command name `a
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommandspart}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommandspart}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandspart}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandspart}} ```
@@ -47,11 +47,11 @@ Similarly, we have another part `remove `. We can declar
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommands}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommands}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands}} ```
@@ -61,11 +61,11 @@ Finally, we can link everything up together to the `perm` command and register t
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommandsend}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommandsend}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandsend}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandsend}} ```
@@ -77,11 +77,11 @@ Another, more intuitive method, is to shove everything in one go without creatin
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommands1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommands1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands1}} ```
diff --git a/docssrc/src/teamarguments.md b/docssrc/src/teamarguments.md index 74bcba5f44..8e90ae1260 100644 --- a/docssrc/src/teamarguments.md +++ b/docssrc/src/teamarguments.md @@ -17,11 +17,11 @@ To do this, given a team we want to use the `setAllowFriendlyFire(boolean)` func
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:teamarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:teamarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:teamarguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:teamarguments}} ```
diff --git a/docssrc/src/timeargs.md b/docssrc/src/timeargs.md index 20cce61e67..85e3803099 100644 --- a/docssrc/src/timeargs.md +++ b/docssrc/src/timeargs.md @@ -23,11 +23,11 @@ Say we have a command `bigmsg` that displays a title message to all players for
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:timearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:timearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:timearguments}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:timearguments}} ```
diff --git a/docssrc/src/tooltips.md b/docssrc/src/tooltips.md index 5af6a8bef0..3e9a529e0e 100644 --- a/docssrc/src/tooltips.md +++ b/docssrc/src/tooltips.md @@ -44,11 +44,11 @@ First, we'll declare our arguments. Here, we'll use the `stringsWithTooltips` me
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips1}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips1}} ```
@@ -58,11 +58,11 @@ Finally, we declare our command as normal:
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips2}} ```
@@ -89,11 +89,11 @@ Let's say we've created a simple plugin which has custom items. For a custom ite
```java,Java -public {{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips3}} +public {{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips3}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips3}} ```
@@ -103,11 +103,11 @@ Let's also say that our plugin has registered lots of `CustomItem`s and has this
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips4}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips4}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips4}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips4}} ```
@@ -154,11 +154,11 @@ First, we'll declare our arguments. Here, we use a `LocationArgument` and use th
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips}} ```
@@ -168,11 +168,11 @@ In the arguments declaration, we've casted the command sender to a player. To en
```java,Java -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-examples/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips2}} ```
diff --git a/pom.xml b/pom.xml index c82ee3579e..1a3ba8dcf7 100644 --- a/pom.xml +++ b/pom.xml @@ -67,8 +67,8 @@ commandapi-annotations - - commandapi-examples + + commandapi-documentation-code From fa99661d1a3852d82b426c444dc1563dcc02c489 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 8 Nov 2022 09:09:54 -0500 Subject: [PATCH 105/638] Fix artifactId in commandapi-documentation-code pom.xml --- commandapi-documentation-code/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commandapi-documentation-code/pom.xml b/commandapi-documentation-code/pom.xml index 236ad7be73..19d40b6a19 100644 --- a/commandapi-documentation-code/pom.xml +++ b/commandapi-documentation-code/pom.xml @@ -10,7 +10,7 @@ 9.0.0-SNAPSHOT - commandapi-documentation-examples + commandapi-documentation-code From 225816fa4ca97b0901dbb85878fc3ba3454db135 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 8 Nov 2022 13:01:31 -0500 Subject: [PATCH 106/638] More TODO cleaning --- .../src/main/java/dev/jorel/commandapi/CommandAPI.java | 9 --------- .../commandapi/arguments/ISafeOverrideableArgument.java | 2 ++ .../jorel/commandapi/wrappers/SimpleFunctionWrapper.java | 1 - .../main/java/dev/jorel/commandapi/nms/NMS_Common.java | 3 +-- 4 files changed, 3 insertions(+), 12 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 871d4c18c4..7bff5ad7d4 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -197,11 +197,6 @@ public static void logError(String message) { getLogger().severe(message); } - - // TODO: For backwards compatibility, I put this method here and added reloadDataPacks to AbstractPlatform - // (https://commandapi.jorel.dev/8.5.1/internal.html?highlight=reload#reloading-datapacks). How should this be - // handled? I guess datapack reloading might be something that can be done on all platforms, and if not just make - // that platform's implementation do nothing like in pre 1.16 Bukkit NMS? - WillKroboth /** * Reloads all of the datapacks that are on the server. This should be used if * you change a datapack and want to reload a server. Execute this method after @@ -211,10 +206,6 @@ public static void reloadDatapacks() { BaseHandler.getInstance().getPlatform().reloadDataPacks(); } - // TODO: Same as above: (https://commandapi.jorel.dev/8.5.1/requirements.html?highlight=par#updating-requirements). - // I think this one makes more sense, though I don't really understand what this requirement update is achieving - // exactly, since I thought it was just a special permissions check? I just need a sanity check that it makes - // sense to put this here, and if not, how should we handle that backwards-compatibility issue? - WillKroboth /** * Updates the requirements required for a given player to execute a command. * diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java index e45f6ebb3e..7a33e5d6b7 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java @@ -41,6 +41,8 @@ default Impl includeSafeSuggestions(SafeSuggestions suggestion return includeSuggestions(suggestions.toSuggestions(getMapper())); } + // TODO: Now's might a good time to remove these methods, since a project using them would need to recompile + // anyways since they're held in a different class now. Dunno though, do deprecated methods ever get removed anyways? // Deprecated legacy methods /** * Replaces the suggestions of this argument with an array of suggestions. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java index 6815d51806..7cd1145786 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java @@ -97,7 +97,6 @@ public static Set getTags() { * @return the result of running this command */ public int run(CommandSender sender) { - // TODO: Is is better to wrap a CommandSender or input an AbstractCommandSender? BukkitPlatform platform = BukkitPlatform.get(); return runInternal(platform.getBrigadierSourceFromCommandSender(platform.wrapCommandSender(sender))); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java index 994ffac5dc..17e8a61ff0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java @@ -367,7 +367,6 @@ public abstract Predicate getBlockPredicate(CommandContext cmdCtx, String key); - @SuppressWarnings("resource") @Override public CommandDispatcher getBrigadierDispatcher() { return getMinecraftServer().vanillaCommandDispatcher.getDispatcher(); @@ -597,7 +596,7 @@ public final String getScoreHolderSingle(CommandContext cmdC public abstract Sound getSound(CommandContext cmdCtx, String key); // TODO: This differs from 1.18 -> 1.18.2 due to biome suggestions. Need to ensure - // this doesn't blow up, but it should be covered by the default case (empty) + // this doesn't blow up, but it should be covered by the default case (empty) @Override @Differs(from = "1.18", by = "Use of argument synthetic biome's listSuggestions method") public final SuggestionProvider getSuggestionProvider(SuggestionProviders provider) { From 8db08702e82287e464c4693609fee37d1b9f1bbc Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 8 Nov 2022 13:39:16 -0500 Subject: [PATCH 107/638] More TODOS --- .../jorel/commandapi/AbstractPlatform.java | 8 --- .../arguments/ISafeOverrideableArgument.java | 66 ------------------- .../dev/jorel/commandapi/BukkitPlatform.java | 7 -- .../commandapi/test/ChatPreviewTests.java | 2 +- .../dev/jorel/commandapi/SpongePlatform.java | 8 +-- .../jorel/commandapi/VelocityPlatform.java | 8 --- 6 files changed, 2 insertions(+), 97 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java index cf2013fbe2..94f92e5758 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java @@ -63,14 +63,6 @@ public abstract class AbstractPlatform registerCommandNode(LiteralArgumentBuilder node); - // TODO: I'm not sure what this is supposed to do. Currently, Bukkit help is handled in onEnable - // and private methods, so is this method obsolete now? Other platforms could conceivably do the same, - // or do nothing if they don't have help (like Velocity might?). Maybe there's something that can be done - // with this registerHelp method that makes more sense? - // We probabbbbbbbbly need to register some form of help for commands? I'm not - // sure if - public abstract void registerHelp(); - /** * Unregisters a command from the CommandGraph so it can't be run anymore. diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java index 7a33e5d6b7..505e4c2bda 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java @@ -1,8 +1,6 @@ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.AbstractTooltip; import dev.jorel.commandapi.IChainableBuilder; -import dev.jorel.commandapi.SuggestionInfo; import java.util.function.Function; @@ -40,68 +38,4 @@ default Impl replaceSafeSuggestions(SafeSuggestions suggestion default Impl includeSafeSuggestions(SafeSuggestions suggestions) { return includeSuggestions(suggestions.toSuggestions(getMapper())); } - - // TODO: Now's might a good time to remove these methods, since a project using them would need to recompile - // anyways since they're held in a different class now. Dunno though, do deprecated methods ever get removed anyways? - // Deprecated legacy methods - /** - * Replaces the suggestions of this argument with an array of suggestions. - * - * @param suggestions a function that takes in {@link SuggestionInfo} and - * returns a {@link S} array of suggestions, where S is your - * custom type - * @return the current argument - * @deprecated use {@link #replaceSafeSuggestions(SafeSuggestions)} - */ - @Deprecated(forRemoval = true) - default Impl replaceWithSafeSuggestions(Function, S[]> suggestions) { - return replaceSafeSuggestions(SafeSuggestions.suggest(suggestions)); - } - - /** - * Replaces the suggestions of this argument with an array of suggestions. - * - * @param suggestions a function that takes in {@link SuggestionInfo} and - * returns an {@link AbstractTooltip} array of suggestions, - * parameterized over {@link S} where S is your custom type - * @return the current argument - * @deprecated use {@link #replaceSafeSuggestions(SafeSuggestions)} - */ - @Deprecated(forRemoval = true) - default Impl replaceWithSafeSuggestionsT(Function, AbstractTooltip[]> suggestions) { - return replaceSafeSuggestions(SafeSuggestions.tooltips(suggestions)); - } - - /** - * Include suggestions to add to the list of default suggestions represented by - * this argument. - * - * @param suggestions a function that takes in {@link SuggestionInfo} which - * includes information about the current state at the time - * the suggestions are run and returns a {@link S} array of - * suggestions to add, where S is your custom type - * @return the current argument - * @deprecated use {@link #includeSafeSuggestions(SafeSuggestions)} - */ - @Deprecated(forRemoval = true) - default Impl includeWithSafeSuggestions(Function, S[]> suggestions) { - return includeSafeSuggestions(SafeSuggestions.suggest(suggestions)); - } - - /** - * Include suggestions to add to the list of default suggestions represented by - * this argument. - * - * @param suggestions a function that takes in {@link SuggestionInfo} which - * includes information about the current state at the time - * the suggestions are run and returns an {@link AbstractTooltip} - * array of suggestions to add, parameterized over {@link S} - * where S is your custom type - * @return the current argument - * @deprecated use {@link #includeSafeSuggestions(SafeSuggestions)} - */ - @Deprecated(forRemoval = true) - default Impl includeWithSafeSuggestionsT(Function, AbstractTooltip[]> suggestions) { - return includeSafeSuggestions(SafeSuggestions.tooltips(suggestions)); - } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index fc7b33de18..4f8927391b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -421,13 +421,6 @@ public LiteralCommandNode registerCommandNode(LiteralArgumentBuilder { if(info.input().contains("hello")) { - throw CommandAPI.fail(ChatColor.RED + "Input cannot contain the word 'hello'"); + throw CommandAPI.failWithString(ChatColor.RED + "Input cannot contain the word 'hello'"); // return Component.text("Input cannot contain the word 'hello'").color(NamedTextColor.RED); } else { return Component.text(info.input()).decorate(TextDecoration.BOLD); diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java index 1b5ef7739d..0e1d39bd34 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java @@ -53,12 +53,6 @@ public void registerPermission(String string) { return; // Unsurprisingly, Sponge doesn't have a dumb permission system! } - - @Override - public void registerHelp() { - return; // Nothing to do here - TODO: Sponge doesn't have help? - } - @Override public void unregister(String commandName, boolean force) { // commandManager.unregister(commandName); @@ -131,7 +125,7 @@ public void updateRequirements(AbstractPlayer player) { @Override public CommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta) { - return null; + return new CommandAPICommand(meta); } @Override diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index 21c14eff3c..542d4c8f51 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -54,12 +54,6 @@ public void registerPermission(String string) { return; // Unsurprisingly, Velocity doesn't have a dumb permission system! } - - @Override - public void registerHelp() { - return; // Nothing to do here - TODO: Velocity doesn't have help? - } - @Override public void unregister(String commandName, boolean force) { commandManager.unregister(commandName); @@ -144,13 +138,11 @@ public LiteralCommandNode registerCommandNode(LiteralArgumentBuil @Override public void reloadDataPacks() { // TODO Auto-generated method stub - // See note for CommandAPI#reloadDatapacks } @Override public void updateRequirements(AbstractPlayer player) { // TODO Auto-generated method stub - // See note for CommandAPI#updateRequirements } @Override From 22a926acec9d575e77da26d1b327de21598f7aad Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 8 Nov 2022 14:42:34 -0500 Subject: [PATCH 108/638] Remove deprecated suggestions methods in AbstractArgument --- .../arguments/AbstractArgument.java | 57 ------------------- 1 file changed, 57 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java index cc84bd661b..21c6dab8b6 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java @@ -28,7 +28,6 @@ import java.util.Arrays; import java.util.List; import java.util.Optional; -import java.util.function.Function; import java.util.function.Predicate; /** @@ -127,38 +126,6 @@ public Impl includeSuggestions(ArgumentSuggestions suggestions) { return instance(); } - /** - * Include suggestions to add to the list of default suggestions represented by - * this argument. - * - * @param suggestions a function that takes in SuggestionInfo which includes - * information about the current state at the time the - * suggestions are run and returns a String[] of suggestions - * to add - * @return the current argument - * @deprecated use {@link #includeSuggestions(ArgumentSuggestions)} instead - */ - @Deprecated(forRemoval = true) - public Impl includeSuggestions(Function, String[]> suggestions) { - return includeSuggestions(ArgumentSuggestions.strings(suggestions)); - } - - /** - * Include suggestions to add to the list of default suggestions represented by - * this argument. - * - * @param suggestions a function that takes in SuggestionInfo which includes - * information about the current state at the time the - * suggestions are run and returns an IStringTooltip[] of - * suggestions (with tooltips) to add - * @return the current argument - * @deprecated use {@link #includeSuggestions(ArgumentSuggestions)} instead - */ - @Deprecated(forRemoval = true) - public Impl includeSuggestionsT(Function, IStringTooltip[]> suggestions) { - return includeSuggestions(ArgumentSuggestions.stringsWithTooltips(suggestions)); - } - /** * Returns an optional function which produces an array of suggestions which should be added * to existing suggestions. @@ -183,30 +150,6 @@ public Impl replaceSuggestions(ArgumentSuggestions suggestions) { return instance(); } - /** - * Replaces the suggestions of this argument with an array of suggestions. - * - * @param suggestions a function that takes in {@link SuggestionInfo} and returns a {@link String[]} of suggestions - * @return the current argument - * @deprecated use {@link #replaceSuggestions(ArgumentSuggestions)} instead - */ - @Deprecated(forRemoval = true) - public Impl replaceSuggestions(Function, String[]> suggestions) { - return replaceSuggestions(ArgumentSuggestions.strings(suggestions)); - } - - /** - * Replaces the suggestions of this argument with an array of suggestions with tooltips. - * - * @param suggestions a function that takes in {@link SuggestionInfo} and returns a {@link IStringTooltip[]} of suggestions - * @return the current argument - * @deprecated use {@link #replaceSuggestions(ArgumentSuggestions)} instead - */ - @Deprecated(forRemoval = true) - public Impl replaceSuggestionsT(Function, IStringTooltip[]> suggestions) { - return replaceSuggestions(ArgumentSuggestions.stringsWithTooltips(suggestions)); - } - /** * Returns an optional function that maps the command sender to an IStringTooltip array of * suggestions for the current command From 57732d9712203c07af6942edf52d0af7ba96bc9f Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 8 Nov 2022 14:46:03 -0500 Subject: [PATCH 109/638] Remove deprecated of(S, String) method from AbstractTooltip --- .../dev/jorel/commandapi/AbstractTooltip.java | 18 +----------------- 1 file changed, 1 insertion(+), 17 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractTooltip.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractTooltip.java index c75724a6bc..069b2c795a 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractTooltip.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractTooltip.java @@ -64,22 +64,6 @@ public Message getTooltip() { return tooltip; } - /** - * Constructs a Tooltip<S> with a suggestion and a tooltip - * - * @param the object that the argument suggestions use - * @param object the suggestion to provide to the user - * @param tooltip the tooltip to show to the user when they hover over the - * suggestion - * @return a Tooltip<S> representing this suggestion and tooltip - * - * @deprecated Please use {@link AbstractTooltip#ofString(Object, String)} instead - */ - @Deprecated(forRemoval = true) - public static AbstractTooltip of(S object, String tooltip) { - return ofString(object, tooltip); - } - /** * Constructs a Tooltip<S> with a suggestion and a tooltip * @@ -103,7 +87,7 @@ public static AbstractTooltip ofString(S object, String tooltip) { * @return a Tooltip<S> representing this suggestion and tooltip */ public static AbstractTooltip ofMessage(S object, Message tooltip) { - return new AbstractTooltip(object, tooltip); + return new AbstractTooltip<>(object, tooltip); } /** From 83bc47bb247aebc1dd302684885600085fd458e8 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 8 Nov 2022 15:10:23 -0500 Subject: [PATCH 110/638] Add method AbstractPlatform#preCommandRegistration for any sort of platform-specific stuff that needs to happen Clean up AbstractPlatform#postCommandRegistration --- .../jorel/commandapi/AbstractPlatform.java | 13 ++++++--- .../dev/jorel/commandapi/BaseHandler.java | 26 +++++++++--------- .../dev/jorel/commandapi/BukkitPlatform.java | 27 +++++++++---------- .../dev/jorel/commandapi/SpongePlatform.java | 10 ++++--- .../jorel/commandapi/VelocityPlatform.java | 10 ++++--- 5 files changed, 50 insertions(+), 36 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java index 94f92e5758..4e0e7df55d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java @@ -47,14 +47,21 @@ public abstract class AbstractPlatform getSuggestionProvider(SuggestionProviders suggestionProvider); + /** + * Stuff to run before a command is generated. For Bukkit, this involves checking + * if a command was declared in the plugin.yml when it isn't supposed to be. + * + * @param commandName The name of the command about to be registered + */ + public abstract void preCommandRegistration(String commandName); + /** * Stuff to run after a command has been generated. For Bukkit, this involves * finding command ambiguities for logging and generating the command JSON - * dispatcher file. If we're being fancy, we could also create a "registered - * a command" event (which can't be cancelled) + * dispatcher file. * - * @param aliasNodes any alias nodes that were also registered as a part of this registration process * @param resultantNode the node that was registered + * @param aliasNodes any alias nodes that were also registered as a part of this registration process */ public abstract void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes) throws IOException; diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java index 99cab17cc8..c22c3806b1 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java @@ -11,6 +11,7 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; +import com.mojang.brigadier.tree.CommandNode; import com.mojang.brigadier.tree.LiteralCommandNode; import dev.jorel.commandapi.arguments.*; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; @@ -531,17 +532,7 @@ void register(CommandMetaData meta, final Argument[] args, Custom // Handle previewable arguments handlePreviewableArguments(commandName, args, aliases); - // Warn if the command we're registering already exists in this plugin's - // plugin.yml file - // TODO: We might need a "pre-register" method call for something like this? -// { -// final PluginCommand pluginCommand = Bukkit.getPluginCommand(commandName); -// if (pluginCommand != null) { -//// CommandAPI.logWarning( -//// "Plugin command /%s is registered by Bukkit (%s). Did you forget to remove this from your plugin.yml file?" -//// .formatted(commandName, pluginCommand.getPlugin().getName())); -// } -// } + platform.preCommandRegistration(commandName); CommandAPI.logInfo("Registering command /" + commandName + " " + humanReadableCommandArgSyntax); @@ -588,7 +579,18 @@ void register(CommandMetaData meta, final Argument[] args, Custom .requires(generatePermissions(alias, permission, requirements)).then(commandArguments))); } } - + +// TODO: Do something when ambiguities are found +// platform.getBrigadierDispatcher().findAmbiguities( +// (CommandNode parent, +// CommandNode child, +// CommandNode sibling, +// Collection inputs) -> { +// if(resultantNode.equals(parent)) { +// // Byeeeeeeeeeeeeeeeeeeeee~ +// } +// }); + platform.postCommandRegistration(resultantNode, aliasNodes); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 4f8927391b..8ac7d24940 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -384,25 +384,22 @@ public void registerPermission(String string) { public abstract SuggestionProvider getSuggestionProvider(SuggestionProviders suggestionProvider); @Override - public void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes) throws IOException { - getBrigadierDispatcher().findAmbiguities( - (CommandNode parent, - CommandNode child, - CommandNode sibling, - Collection inputs) -> { - if(resultantNode.equals(parent)) { - // Byeeeeeeeeeeeeeeeeeeeee~ - } - }); + public void preCommandRegistration(String commandName) { + // Warn if the command we're registering already exists in this plugin's + // plugin.yml file + final PluginCommand pluginCommand = Bukkit.getPluginCommand(commandName); + if (pluginCommand != null) { + CommandAPI.logWarning( + "Plugin command /%s is registered by Bukkit (%s). Did you forget to remove this from your plugin.yml file?" + .formatted(commandName, pluginCommand.getPlugin().getName())); + } + } + @Override + public void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes) throws IOException { // We never know if this is "the last command" and we want dynamic (even if // partial) // command registration. Generate the dispatcher file! - generateDispatcherFile(); - } - - // Produce the commandDispatch.json file for debug purposes - private void generateDispatcherFile() throws IOException { File file = CommandAPI.getConfiguration().getDispatcherFile(); if (file != null) { try { diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java index 0e1d39bd34..cff3c20bb0 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java @@ -96,9 +96,13 @@ public SuggestionProvider getSuggestionProvider(SuggestionProviders sugg } @Override - public void postCommandRegistration(LiteralCommandNode resultantNode, - List> aliasNodes) { - return; // Say hi, do checks etc. + public void preCommandRegistration(String commandName) { + // Nothing to do? + } + + @Override + public void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes) { + // Nothing to do? } @Override diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java index 542d4c8f51..4739a5d610 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java @@ -122,9 +122,13 @@ public SuggestionProvider getSuggestionProvider(SuggestionProvide } @Override - public void postCommandRegistration(LiteralCommandNode resultantNode, - List> aliasNodes) { - return; // Nothing left to do + public void preCommandRegistration(String commandName) { + // Nothing to do? + } + + @Override + public void postCommandRegistration(LiteralCommandNode resultantNode, List> aliasNodes) { + // Nothing to do? } @SuppressWarnings("unchecked") From 3a14db4d103d99693c9f78ccf804deb0f3c56133 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 8 Nov 2022 15:15:02 -0500 Subject: [PATCH 111/638] Rename BaseHandler back to CommandAPIHandler since it isn't being subclassed anymore --- .../commandapi/AbstractCommandAPICommand.java | 4 ++-- .../java/dev/jorel/commandapi/Brigadier.java | 18 ++++++++--------- .../java/dev/jorel/commandapi/CommandAPI.java | 20 +++++++++---------- ...aseHandler.java => CommandAPIHandler.java} | 12 +++++------ .../java/dev/jorel/commandapi/Execution.java | 2 +- .../dev/jorel/commandapi/BukkitPlatform.java | 6 +++--- .../arguments/AdventureChatArgument.java | 4 ++-- .../commandapi/arguments/ChatArgument.java | 4 ++-- .../commandapi/arguments/CustomArgument.java | 4 ++-- .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 8 ++++---- .../dev/jorel/commandapi/nms/NMS_1_13.java | 8 ++++---- .../dev/jorel/commandapi/nms/NMS_1_14.java | 8 ++++---- .../dev/jorel/commandapi/nms/NMS_1_15.java | 8 ++++---- .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 10 +++++----- .../dev/jorel/commandapi/nms/NMS_1_16_R2.java | 10 +++++----- .../jorel/commandapi/nms/NMS_1_16_4_R3.java | 8 ++++---- .../jorel/commandapi/nms/NMS_1_17_Common.java | 4 ++-- .../dev/jorel/commandapi/nms/NMS_1_17_R1.java | 4 ++-- .../dev/jorel/commandapi/nms/NMS_1_17.java | 4 ++-- .../dev/jorel/commandapi/nms/NMS_1_18_R2.java | 6 +++--- .../dev/jorel/commandapi/nms/NMS_1_18_R1.java | 6 +++--- .../jorel/commandapi/nms/NMS_1_19_Common.java | 6 +++--- .../NMS_1_19_Common_ChatPreviewHandler.java | 6 +++--- .../dev/jorel/commandapi/nms/NMS_Common.java | 4 ++-- 24 files changed, 86 insertions(+), 88 deletions(-) rename commandapi-core/src/main/java/dev/jorel/commandapi/{BaseHandler.java => CommandAPIHandler.java} (98%) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index 52cf86172e..008d332f45 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -179,7 +179,7 @@ void flatten(Impl rootCommand, List prevArguments, Impl subcommand) { System.arraycopy(subcommand.meta.aliases, 0, literals, 1, subcommand.meta.aliases.length); // Create a MultiLiteralArgument using the subcommand information - Argument literal = (Argument) BaseHandler.getInstance().getPlatform().newConcreteMultiLiteralArgument(literals); + Argument literal = (Argument) CommandAPIHandler.getInstance().getPlatform().newConcreteMultiLiteralArgument(literals); literal.withPermission(subcommand.meta.permission) .withRequirement(subcommand.meta.requirements) @@ -234,7 +234,7 @@ public void register() { if (executor.hasAnyExecutors()) { // Need to cast handler to the right CommandSender type so that argumentsArr and executor are accepted - BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + CommandAPIHandler handler = (CommandAPIHandler) CommandAPIHandler.getInstance(); handler.register(meta, argumentsArr, executor, isConverted); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index a116c9e2f3..a398d68a6a 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -57,7 +57,7 @@ private Brigadier() { * @return The CommandAPI's internal CommandDispatcher instance */ public static CommandDispatcher getCommandDispatcher() { - return BaseHandler.getInstance().getPlatform().getBrigadierDispatcher(); + return CommandAPIHandler.getInstance().getPlatform().getBrigadierDispatcher(); } /** @@ -82,7 +82,7 @@ public static RootCommandNode getRootNode() { */ public static > LiteralArgumentBuilder fromLiteralArgument(ILiteralArgument literalArgument) { - BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + CommandAPIHandler handler = (CommandAPIHandler) CommandAPIHandler.getInstance(); return handler.getLiteralArgumentBuilderArgument(literalArgument.getLiteral(), literalArgument.instance().getArgumentPermission(), literalArgument.instance().getRequirements()); } @@ -123,7 +123,7 @@ RedirectModifier fromPredicate(BiPredicate predicate, L Command fromCommand(AbstractCommandAPICommand command) { try { // Need to cast base handler to make it realize we're using the same CommandSender class - BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + CommandAPIHandler handler = (CommandAPIHandler) CommandAPIHandler.getInstance(); return handler.generateCommand((Argument[]) command.getArguments().toArray(AbstractArgument[]::new), command.getExecutor(), command.isConverted()); } catch (CommandSyntaxException e) { e.printStackTrace(); @@ -150,7 +150,7 @@ Command fromCommand(AbstractCommandAPICommand comman * @return a RequiredArgumentBuilder that represents the provided argument */ public static > RequiredArgumentBuilder fromArgument(List args, Argument argument) { - BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + CommandAPIHandler handler = (CommandAPIHandler) CommandAPIHandler.getInstance(); return handler.getRequiredArgumentBuilderDynamic((Argument[]) args.toArray(AbstractArgument[]::new), argument); } @@ -161,7 +161,7 @@ Command fromCommand(AbstractCommandAPICommand comman * @return a RequiredArgumentBuilder that represents the provided argument */ public static > RequiredArgumentBuilder fromArgument(Argument argument) { - BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + CommandAPIHandler handler = (CommandAPIHandler) CommandAPIHandler.getInstance(); return handler.getRequiredArgumentBuilderDynamic((Argument[]) new AbstractArgument[] { argument }, argument); } @@ -175,7 +175,7 @@ Command fromCommand(AbstractCommandAPICommand comman * specified argument */ public static > SuggestionProvider toSuggestions(Argument argument, List args) { - BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + CommandAPIHandler handler = (CommandAPIHandler) CommandAPIHandler.getInstance(); return handler.toSuggestions(argument, (Argument[]) args.toArray(AbstractArgument[]::new), true); } @@ -192,7 +192,7 @@ Command fromCommand(AbstractCommandAPICommand comman * @throws CommandSyntaxException if there was an error during parsing */ public static > Object[] parseArguments(CommandContext cmdCtx, List args) throws CommandSyntaxException { - BaseHandler handler = (BaseHandler) BaseHandler.getInstance(); + CommandAPIHandler handler = (CommandAPIHandler) CommandAPIHandler.getInstance(); return handler.argsToObjectArr(cmdCtx, (Argument[]) args.toArray(AbstractArgument[]::new)); } @@ -207,7 +207,7 @@ Command fromCommand(AbstractCommandAPICommand comman * CommandSender */ public static Object getBrigadierSourceFromCommandSender(CommandSender sender) { - AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + AbstractPlatform platform = (AbstractPlatform) CommandAPIHandler.getInstance().getPlatform(); return platform.getBrigadierSourceFromCommandSender(platform.wrapCommandSender(sender)); } @@ -219,7 +219,7 @@ public static Object getBrigadierSourceFromCommandSender(Command * @return a Bukkit CommandSender from the provided Brigadier CommandContext */ public static CommandSender getCommandSenderFromContext(CommandContext cmdCtx) { - AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + AbstractPlatform platform = (AbstractPlatform) CommandAPIHandler.getInstance().getPlatform(); // For some reason putting this on one line doesn't work - very weird AbstractCommandSender abstractSender = platform.getSenderForCommand(cmdCtx, false); return abstractSender.getSource(); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 7bff5ad7d4..2900a71951 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -80,7 +80,7 @@ public static void setLogger(CommandAPILogger logger) { */ public static CommandAPILogger getLogger() { if (logger == null) { - logger = BaseHandler.getInstance().getPlatform().getLogger(); + logger = CommandAPIHandler.getInstance().getPlatform().getLogger(); } return logger; } @@ -100,7 +100,7 @@ public static void onLoad(CommandAPIConfig config) { // Initialize handlers AbstractPlatform platform = CommandAPIVersionHandler.getPlatform(); - new BaseHandler<>(platform); + new CommandAPIHandler<>(platform); // Log platform load final String platformClassHierarchy; @@ -116,7 +116,7 @@ public static void onLoad(CommandAPIConfig config) { logNormal("Loaded platform " + platformClassHierarchy); // Finish loading - BaseHandler.getInstance().onLoad(); + CommandAPIHandler.getInstance().onLoad(); loaded = true; } else { @@ -131,7 +131,7 @@ public static void onLoad(CommandAPIConfig config) { * @param plugin the plugin that this onEnable method is called from */ public static void onEnable(Object plugin) { - BaseHandler.getInstance().onEnable(plugin); + CommandAPIHandler.getInstance().onEnable(plugin); } /** @@ -145,7 +145,7 @@ public static void onDisable() { // This method is called automatically when the class loads to set up variables, in which case // BaseHandler will not have been initialized - BaseHandler handler = BaseHandler.getInstance(); + CommandAPIHandler handler = CommandAPIHandler.getInstance(); if(handler != null) handler.onDisable(); } @@ -203,7 +203,7 @@ public static void logError(String message) { * running /minecraft:reload, NOT before. */ public static void reloadDatapacks() { - BaseHandler.getInstance().getPlatform().reloadDataPacks(); + CommandAPIHandler.getInstance().getPlatform().reloadDataPacks(); } /** @@ -212,7 +212,7 @@ public static void reloadDatapacks() { * @param player the player whos requirements to update */ public static void updateRequirements(Player player) { - AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + AbstractPlatform platform = (AbstractPlatform) CommandAPIHandler.getInstance().getPlatform(); platform.updateRequirements((AbstractPlayer) platform.wrapCommandSender(player)); } @@ -261,7 +261,7 @@ public static WrapperCommandSyntaxException failWithMessage(Message message) { * @param command the name of the command to unregister */ public static void unregister(String command) { - BaseHandler.getInstance().getPlatform().unregister(command, false); + CommandAPIHandler.getInstance().getPlatform().unregister(command, false); } /** @@ -276,7 +276,7 @@ public static void unregister(String command, boolean force) { getLogger().warning("Unexpected unregistering of /" + command + ", as server is loaded! Unregistering anyway, but this can lead to unstable results!"); } - BaseHandler.getInstance().getPlatform().unregister(command, force); + CommandAPIHandler.getInstance().getPlatform().unregister(command, force); } /** @@ -297,6 +297,6 @@ public static void registerCommand(Class commandClass) { * registered by the CommandAPI so far. The returned list is immutable. */ public static List getRegisteredCommands() { - return Collections.unmodifiableList(BaseHandler.getInstance().registeredCommands); + return Collections.unmodifiableList(CommandAPIHandler.getInstance().registeredCommands); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java similarity index 98% rename from commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index c22c3806b1..5dab7e9a29 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/BaseHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -11,7 +11,6 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; import com.mojang.brigadier.suggestion.SuggestionsBuilder; -import com.mojang.brigadier.tree.CommandNode; import com.mojang.brigadier.tree.LiteralCommandNode; import dev.jorel.commandapi.arguments.*; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; @@ -41,9 +40,8 @@ * @param The class for running platform commands * @param The class for running Brigadier commands */ -// TODO: Should we rename this back to CommandAPIHandler since it isn't subclassed anymore? @RequireField(in = CommandContext.class, name = "arguments", ofType = Map.class) -public class BaseHandler, CommandSender, Source> { +public class CommandAPIHandler, CommandSender, Source> { private final static VarHandle COMMANDCONTEXT_ARGUMENTS; // Compute all var handles all in one go so we don't do this during main server @@ -87,9 +85,9 @@ public static String getRawArgumentInput(CommandContext registeredCommands; // Keep track of what has been registered for type checking final Map, IPreviewable> previewableArguments; // Arguments with previewable chat - private static BaseHandler instance; + private static CommandAPIHandler instance; - protected BaseHandler(AbstractPlatform platform) { + protected CommandAPIHandler(AbstractPlatform platform) { this.platform = platform; this.registeredCommands = new ArrayList<>(); this.previewableArguments = new HashMap<>(); @@ -121,7 +119,7 @@ public void onDisable() { instance = null; } - public static BaseHandler getInstance() { + public static CommandAPIHandler getInstance() { return instance; } @@ -436,7 +434,7 @@ else if (outerArg instanceof ICustomProvidedArgument customProvidedArg /** * Handles previewable arguments. This stores the path to previewable arguments - * in {@link BaseHandler#previewableArguments} for runtime resolving + * in {@link CommandAPIHandler#previewableArguments} for runtime resolving * * @param commandName the name of the command * @param args the declared arguments diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java index 7a99bf2b54..82749fbcc8 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java @@ -25,7 +25,7 @@ public Execution(List arguments, CustomCommandExecutor meta) { - AbstractPlatform platform = (AbstractPlatform) BaseHandler.getInstance().getPlatform(); + AbstractPlatform platform = (AbstractPlatform) CommandAPIHandler.getInstance().getPlatform(); AbstractCommandAPICommand command = platform.newConcreteCommandAPICommand(meta); command.withArguments(arguments); command.setExecutor(executor); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 8ac7d24940..660932171f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -196,7 +196,7 @@ public void onPlayerQuit(PlayerQuitEvent e) { private void fixPermissions() { // Get the command map to find registered commands CommandMap map = paper.getCommandMap(); - final Map PERMISSIONS_TO_FIX = BaseHandler.getInstance().REGISTERED_PERMISSIONS; + final Map PERMISSIONS_TO_FIX = CommandAPIHandler.getInstance().REGISTERED_PERMISSIONS; if (!PERMISSIONS_TO_FIX.isEmpty()) { CommandAPI.logInfo("Linking permissions to commands:"); @@ -250,7 +250,7 @@ private void generateHelpUsage(StringBuilder sb, RegisteredCommand command) { // Generate usages List usages = new ArrayList<>(); - for (RegisteredCommand rCommand : BaseHandler.getInstance().registeredCommands) { + for (RegisteredCommand rCommand : CommandAPIHandler.getInstance().registeredCommands) { if (rCommand.commandName().equals(command.commandName())) { StringBuilder usageString = new StringBuilder(); usageString.append("/").append(command.commandName()).append(" "); @@ -274,7 +274,7 @@ private void generateHelpUsage(StringBuilder sb, RegisteredCommand command) { void updateHelpForCommands() { Map helpTopicsToAdd = new HashMap<>(); - for (RegisteredCommand command : BaseHandler.getInstance().registeredCommands) { + for (RegisteredCommand command : CommandAPIHandler.getInstance().registeredCommands) { // Generate short description final String shortDescription; if (command.shortDescription().isPresent()) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java index 2811652069..7165517549 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; @@ -80,7 +80,7 @@ public Component parseArgument(AbstractPlatform if (this.usePreview && getPreview().isPresent() && sender instanceof Player player) { try { Component previewComponent = getPreview().get() - .generatePreview(new PreviewInfo(new BukkitPlayer(player), BaseHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); + .generatePreview(new PreviewInfo(new BukkitPlayer(player), CommandAPIHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); component = previewComponent; } catch (WrapperCommandSyntaxException e) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java index 6610d86b13..c5dd78c69f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; @@ -80,7 +80,7 @@ public BaseComponent[] parseArgument(AbstractPlatform(new BukkitPlayer(player), BaseHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); + .generatePreview(new PreviewInfo(new BukkitPlayer(player), CommandAPIHandler.getRawArgumentInput(cmdCtx, key), cmdCtx.getInput(), component)); if (this.usePreview) { component = previewComponent; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index 41259bab7f..45bb204f95 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -26,7 +26,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.CommandAPI; import org.bukkit.command.CommandSender; @@ -132,7 +132,7 @@ public T parseArgument(AbstractPlatform, Comman CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the raw input and parsed input - final String customresult = BaseHandler.getRawArgumentInput(cmdCtx, key); + final String customresult = CommandAPIHandler.getRawArgumentInput(cmdCtx, key); final B parsedInput = base.parseArgument(platform, cmdCtx, key, previousArgs); try { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index eccfc623f2..25a388b898 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -6,7 +6,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.arguments.SuggestionProviders; @@ -497,7 +497,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getField(EntitySelector.class, "m").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "m").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -644,7 +644,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); } @SuppressWarnings("deprecation") @@ -784,7 +784,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.c(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) + if (CommandAPIHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index 8a3b2fb8d9..615bbcd31f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -6,7 +6,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; @@ -481,7 +481,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getField(EntitySelector.class, "m").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "m").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -625,7 +625,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); } @SuppressWarnings("deprecation") @@ -765,7 +765,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.c(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) + if (CommandAPIHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index d4cdbc6012..9431809e55 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -8,7 +8,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; @@ -476,7 +476,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -623,7 +623,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); } @SuppressWarnings("deprecation") @@ -764,7 +764,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.c(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) + if (CommandAPIHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index 383a039204..5795b422d4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -8,7 +8,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; @@ -472,7 +472,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -618,7 +618,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); } @Differs(from = "1.14.4", by = "ArgumentMinecraftKeyRegistered.c() -> ArgumentMinecraftKeyRegistered.d()") @@ -763,7 +763,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.d(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) + if (CommandAPIHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index 702967a246..813e30b544 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -9,7 +9,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; @@ -481,7 +481,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -628,7 +628,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); } @Differs(from = "1.15", by = "ArgumentMinecraftKeyRegistered.d() -> ArgumentMinecraftKeyRegistered.e()") @@ -771,7 +771,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.e(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) + if (CommandAPIHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } @@ -875,7 +875,7 @@ public void reloadDataPacks() { // Update the CustomFunctionManager for the datapackResources which now has the // new commandDispatcher try { - BaseHandler.getField(CustomFunctionManager.class, "g").set(datapackResources.a(), + CommandAPIHandler.getField(CustomFunctionManager.class, "g").set(datapackResources.a(), getBrigadierDispatcher()); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index 8e1af933d5..34aca3a55c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -9,7 +9,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; @@ -481,7 +481,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -628,7 +628,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); } @SuppressWarnings("deprecation") @@ -770,7 +770,7 @@ public Sound getSound(CommandContext cmdCtx, String key) MinecraftKey minecraftKey = ArgumentMinecraftKeyRegistered.e(cmdCtx, key); for (CraftSound sound : CraftSound.values()) { try { - if (BaseHandler.getField(CraftSound.class, "minecraftKey").get(sound) + if (CommandAPIHandler.getField(CraftSound.class, "minecraftKey").get(sound) .equals(minecraftKey.getKey())) { return Sound.valueOf(sound.name()); } @@ -864,7 +864,7 @@ public void reloadDataPacks() { // Update the CustomFunctionManager for the datapackResources which now has the // new commandDispatcher try { - BaseHandler.getField(CustomFunctionManager.class, "h").set(datapackResources.a(), + CommandAPIHandler.getField(CustomFunctionManager.class, "h").set(datapackResources.a(), getBrigadierDispatcher()); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index 2591b4b5b1..cca17a3e96 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -29,7 +29,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; @@ -505,7 +505,7 @@ public Object getEntitySelector(CommandContext cmdCtx, S throws CommandSyntaxException { EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "checkPermissions").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -650,7 +650,7 @@ public MathOperation getMathOperation(CommandContext cmd throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly ArgumentMathOperation.a(cmdCtx, key); - return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); } @SuppressWarnings("deprecation") @@ -878,7 +878,7 @@ public void reloadDataPacks() { // Update the CustomFunctionManager for the datapackResources which now has the // new commandDispatcher try { - BaseHandler.getField(CustomFunctionManager.class, "h").set(datapackResources.a(), + CommandAPIHandler.getField(CustomFunctionManager.class, "h").set(datapackResources.a(), getBrigadierDispatcher()); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java index 331cfa14f7..a238831502 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java @@ -27,7 +27,7 @@ import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -280,7 +280,7 @@ public Object getEntitySelector(CommandContext cmdCtx, Strin // to be used by anyone that registers a command via the CommandAPI. EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getField(EntitySelector.class, "o").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "o").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java index e74fd53d51..8eb5838410 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_R1.java @@ -20,7 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.preprocessor.NMSMeta; import net.minecraft.Util; @@ -60,7 +60,7 @@ public void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - BaseHandler.getField(ServerFunctionLibrary.class, "i") + CommandAPIHandler.getField(ServerFunctionLibrary.class, "i") .set(serverResources.getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java index f6d2d62191..4360d7935c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17/src/main/java/dev/jorel/commandapi/nms/NMS_1_17.java @@ -29,7 +29,7 @@ import org.bukkit.Keyed; import org.bukkit.inventory.Recipe; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.preprocessor.NMSMeta; import net.minecraft.Util; @@ -61,7 +61,7 @@ public void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - BaseHandler.getField(ServerFunctionLibrary.class, "i") + CommandAPIHandler.getField(ServerFunctionLibrary.class, "i") .set(serverResources.getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java index 725fd88157..b69b7cacb8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java @@ -30,7 +30,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; import com.mojang.logging.LogUtils; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -334,7 +334,7 @@ public Object getEntitySelector(CommandContext cmdCtx, Strin // to be used by anyone that registers a command via the CommandAPI. EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getField(EntitySelector.class, "o").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "o").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -552,7 +552,7 @@ public void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - BaseHandler.getField(ServerFunctionLibrary.class, "i") + CommandAPIHandler.getField(ServerFunctionLibrary.class, "i") .set(serverResources.managers().getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java index e2e1ad4bef..dfc5374ca8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java @@ -27,7 +27,7 @@ import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -287,7 +287,7 @@ public Object getEntitySelector(CommandContext cmdCtx, Strin // to be used by anyone that registers a command via the CommandAPI. EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getField(EntitySelector.class, "o").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "o").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -504,7 +504,7 @@ public void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - BaseHandler.getField(ServerFunctionLibrary.class, "i") + CommandAPIHandler.getField(ServerFunctionLibrary.class, "i") .set(serverResources.getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java index bc3e9a5de2..43da31a433 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java @@ -31,7 +31,7 @@ import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; import com.mojang.datafixers.util.Either; import com.mojang.logging.LogUtils; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -362,7 +362,7 @@ public final Object getEntitySelector(CommandContext cmdCtx, // to be used by anyone that registers a command via the CommandAPI. EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - BaseHandler.getField(EntitySelector.class, "o").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "o").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -608,7 +608,7 @@ public final void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - BaseHandler.getField(ServerFunctionLibrary.class, "i") + CommandAPIHandler.getField(ServerFunctionLibrary.class, "i") .set(serverResources.managers().getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java index e8c63c86f8..f729ec551f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java @@ -4,7 +4,7 @@ import com.mojang.brigadier.context.ParsedCommandNode; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.arguments.PreviewInfo; import dev.jorel.commandapi.commandsenders.BukkitPlayer; @@ -83,7 +83,7 @@ public MutableComponent parseChatPreviewQuery(String chatPreviewQuery) { Object component; try { @SuppressWarnings("rawtypes") final PreviewInfo previewInfo; - if (BaseHandler.getInstance().lookupPreviewableLegacyStatus(path)) { + if (CommandAPIHandler.getInstance().lookupPreviewableLegacyStatus(path)) { BaseComponent[] parsedInput; try { parsedInput = platform.getChat(results.getContext().build(fullInput), path.get(path.size() - 1)); @@ -141,7 +141,7 @@ public static InitialParse processChatPreviewQuery(String chatPreviewQuery, Bukk for (ParsedCommandNode commandNode : results.getContext().getNodes()) { path.add(commandNode.getNode().getName()); } - Optional> preview = BaseHandler.getInstance().lookupPreviewable(path); + Optional> preview = CommandAPIHandler.getInstance().lookupPreviewable(path); cachedResult = new InitialParse(fullInput, results, path, preview); return cachedResult; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java index 17e8a61ff0..3b0937afc5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java @@ -26,7 +26,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.BaseHandler; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.arguments.EntitySelector; import dev.jorel.commandapi.arguments.SuggestionProviders; @@ -488,7 +488,7 @@ public Location2D getLocation2DPrecise(CommandContext cmdCtx public final MathOperation getMathOperation(CommandContext cmdCtx, String key) throws CommandSyntaxException { // We run this to ensure the argument exists/parses properly OperationArgument.getOperation(cmdCtx, key); - return MathOperation.fromString(BaseHandler.getRawArgumentInput(cmdCtx, key)); + return MathOperation.fromString(CommandAPIHandler.getRawArgumentInput(cmdCtx, key)); } @Override From 9783071a43f7e85764c3d8519a054b2c0a8bc1c6 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 9 Nov 2022 06:55:57 -0500 Subject: [PATCH 112/638] Miscellaneous code clean up --- .../commandapi/AbstractArgumentTree.java | 3 +- .../commandapi/AbstractCommandAPICommand.java | 3 +- .../jorel/commandapi/AbstractPlatform.java | 67 ++++++++++++++++--- .../java/dev/jorel/commandapi/Brigadier.java | 2 +- .../java/dev/jorel/commandapi/CommandAPI.java | 8 +-- .../jorel/commandapi/CommandAPIConfig.java | 20 +++--- .../jorel/commandapi/CommandAPIHandler.java | 9 ++- .../dev/jorel/commandapi/BukkitPlatform.java | 22 +++--- 8 files changed, 88 insertions(+), 46 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java index c09d247c6f..3862c55301 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java @@ -22,7 +22,7 @@ public abstract class AbstractArgumentTree) { + if (this instanceof AbstractArgument) { this.argument = (Argument) this; } else { throw new IllegalArgumentException("Implicit inherited constructor must be from Argument"); @@ -56,7 +56,6 @@ List> getExecutions() { List> executions = new ArrayList<>(); // If this is executable, add its execution if (this.executor.hasAnyExecutors()) { - // Cast platform to make it realize we're using the same CommandSender executions.add(new Execution<>(List.of(this.argument), this.executor)); } // Add all executions from all arguments diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java index 008d332f45..a42a1a3b31 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractCommandAPICommand.java @@ -168,8 +168,7 @@ Impl setConverted(boolean isConverted) { } // Expands subcommands into arguments. This method should be static (it - // shouldn't - // be accessing/depending on any of the contents of the current class instance) + // shouldn't be accessing/depending on any of the contents of the current class instance) private static , Argument extends AbstractArgument, CommandSender> void flatten(Impl rootCommand, List prevArguments, Impl subcommand) { // Get the list of literals represented by the current subcommand. This diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java index 4e0e7df55d..2a0225dd2c 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java @@ -20,23 +20,59 @@ */ public abstract class AbstractPlatform, CommandSender, Source> { // Platform-specific loading, enabling, and disabling tasks + + /** + * Platform-specific stuff that should happen when the CommandAPI is loaded, + * such as checking dependencies and initializing helper classes. + */ public abstract void onLoad(); + /** + * Platform-specific stuff that should happen when the CommandAPI is enabled, + * such as registering event listeners. + * + * @param plugin The plugin providing the CommandAPI. This should have a specific class depending on the platform. + */ public abstract void onEnable(Object plugin); + /** + * Platform-specific stuff that should happen when the CommandAPI is disabled. + */ public abstract void onDisable(); - // "Source" in this case (for CommandContext) is something like a - // CommandListenerWrapper (Spigot mappings) or CommandSourceStack (Mojang mappings). - // over + // Converting between CommandSender, AbstractCommandSender, and Brigadier Sources + + /** + * Converts a Brigadier CommandContext into an AbstractCommandSender wrapping the platform's CommandSender + * + * @param cmdCtx A Brigadier CommandContext + * @param forceNative True if the CommandSender should be forced into a native CommandSender + * @return An AbstractCommandSender wrapping the CommandSender represented by the CommandContext + */ public abstract AbstractCommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); - // Converts a command source into its source. - public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source cs); + /** + * Converts the class used by Brigadier when running commands into an AbstractCommandSender wrapping the platform's CommandSender + * + * @param source The Brigadier source object + * @return An AbstractCommandSender wrapping the CommandSender represented by the source object + */ + public abstract AbstractCommandSender getCommandSenderFromCommandSource(Source source); - // Converts a CommandSender to a Brigadier Source + /** + * Converts a CommandSender wrapped in an AbstractCommandSender to an object Brigadier can use when running its commands + * + * @param sender The CommandSender to convert, wrapped in an AbstractCommandSender + * @return The Brigadier Source object represented by the sender + */ public abstract Source getBrigadierSourceFromCommandSender(AbstractCommandSender sender); + /** + * Wraps a CommandSender in an AbstractCommandSender class, the inverse operation to {@link AbstractCommandSender#getSource()} + * + * @param sender The CommandSender to wrap + * @return An AbstractCommandSender with a class appropriate to the underlying class of the CommandSender + */ public abstract AbstractCommandSender wrapCommandSender(CommandSender sender); // Registers a permission. Bukkit's permission system requires permissions to be "registered" @@ -46,7 +82,6 @@ public abstract class AbstractPlatform getSuggestionProvider(SuggestionProviders suggestionProvider); - /** * Stuff to run before a command is generated. For Bukkit, this involves checking * if a command was declared in the plugin.yml when it isn't supposed to be. @@ -81,15 +116,16 @@ public abstract class AbstractPlatform getBrigadierDispatcher(); /** - * Creates a default Logger for the CommandAPI - * - * @return A new Logger meant for the CommandAPI to use + * @return A new default Logger meant for the CommandAPI to use */ public CommandAPILogger getLogger() { - return new CommandAPILogger(){ + return new CommandAPILogger() { private static final String PREFIX = "[CommandAPI] "; private static final String YELLOW = "\u001B[33m"; private static final String RED = "\u001B[31m"; @@ -112,10 +148,19 @@ public void severe(String message) { }; } + /** + * Reloads the server's data packs to include CommandAPI commands + */ public abstract void reloadDataPacks(); + /** + * Updates the requirements required for a given player to execute a command. + * + * @param player the player to update + */ public abstract void updateRequirements(AbstractPlayer player); + // Create the concrete instances of objects implemented by the platform public abstract AbstractCommandAPICommand newConcreteCommandAPICommand(CommandMetaData meta); public abstract Argument newConcreteMultiLiteralArgument(String[] literals); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index a398d68a6a..02cdcffce5 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -41,7 +41,7 @@ * The Brigadier class is used to access some of the internals of the CommandAPI * so you can use the CommandAPI alongside Mojang's com.mojang.brigadier package */ -//@SuppressWarnings({ "unchecked", "rawtypes" }) +@SuppressWarnings({ "unchecked", "rawtypes" }) public final class Brigadier { // Cannot be instantiated diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 2900a71951..646fba5eb7 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -66,7 +66,7 @@ public static boolean canRegister() { public static InternalConfig getConfiguration() { if (config == null) { CommandAPI.config = new InternalConfig(new CommandAPIConfig()); - logWarning("Could not find any configuration for the CommandAPI. Loading basic built-in configuration. Did you forget to call CommandAPI.onLoad(config, logger)?"); + logWarning("Could not find any configuration for the CommandAPI. Loading basic built-in configuration. Did you forget to call CommandAPI.onLoad(config)?"); } return config; } @@ -146,7 +146,7 @@ public static void onDisable() { // This method is called automatically when the class loads to set up variables, in which case // BaseHandler will not have been initialized CommandAPIHandler handler = CommandAPIHandler.getInstance(); - if(handler != null) handler.onDisable(); + if (handler != null) handler.onDisable(); } // Logging @@ -198,7 +198,7 @@ public static void logError(String message) { } /** - * Reloads all of the datapacks that are on the server. This should be used if + * Reloads all the datapacks that are on the server. This should be used if * you change a datapack and want to reload a server. Execute this method after * running /minecraft:reload, NOT before. */ @@ -209,7 +209,7 @@ public static void reloadDatapacks() { /** * Updates the requirements required for a given player to execute a command. * - * @param player the player whos requirements to update + * @param player the player whose requirements should be updated */ public static void updateRequirements(Player player) { AbstractPlatform platform = (AbstractPlatform) CommandAPIHandler.getInstance().getPlatform(); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java index 45a91ba014..3b77ac42d9 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIConfig.java @@ -26,11 +26,9 @@ import java.util.function.Function; /** - * A class to contain information about how to configure the CommandAPI during - * its loading step. + * A class to contain information about how to configure the CommandAPI during its loading step. */ public class CommandAPIConfig { - // The default configuration. This should mirror the commandapi-plugin config.yml file. boolean verboseOutput = false; boolean silentLogs = false; @@ -47,7 +45,7 @@ public class CommandAPIConfig { /** * Sets verbose output logging for the CommandAPI if true. - * + * * @param value whether verbose output should be enabled * @return this CommandAPIConfig */ @@ -59,7 +57,7 @@ public CommandAPIConfig verboseOutput(boolean value) { /** * Silences all logs (including warnings, but not errors) for the CommandAPI if * true. - * + * * @param value whether logging suppression should be enabled * @return this CommandAPIConfig */ @@ -74,7 +72,7 @@ public CommandAPIConfig silentLogs(boolean value) { * if the latest NMS version is not supported by the CommandAPI. This can be * used to potentially provide compatibility with future Minecraft versions * before the CommandAPI pushes a release to support it. - * + * * @param value whether the latest version of NMS should be used * @return this CommandAPIConfig */ @@ -86,12 +84,12 @@ public CommandAPIConfig useLatestNMSVersion(boolean value) { /** * Sets the message to display to users when a command has no executor. * Available formatting parameters are: - * + * *
    *
  • %s - the executor class (lowercase)
  • *
  • %S - the executor class (normal case)
  • *
- * + * * @param value the message to display when a command has no executor * @return this CommandAPIConfig */ @@ -127,7 +125,7 @@ public CommandAPIConfig addSkipSenderProxy(List names) { /** * Initializes the CommandAPI's implementation of an NBT API. - * + * * @param the type that the NBT compound container class * is * @param nbtContainerClass the NBT compound container class. For example, @@ -140,9 +138,9 @@ public CommandAPIConfig addSkipSenderProxy(List names) { * @return this CommandAPIConfig */ public CommandAPIConfig initializeNBTAPI(Class nbtContainerClass, - Function nbtContainerConstructor) { + Function nbtContainerConstructor) { this.nbtContainerClass = nbtContainerClass; this.nbtContainerConstructor = nbtContainerConstructor; return this; } -} \ No newline at end of file +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index 5dab7e9a29..78c97ff6b5 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -204,13 +204,13 @@ Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) } /** - * Parses an argument and converts it into its object (as defined in platform.java) + * Parses an argument and converts it into its object * * @param cmdCtx the command context * @param key the key (declared in arguments) * @param value the value (the argument declared in arguments) - * @return the standard Bukkit type - * @throws CommandSyntaxException when an argument isn't formatted correctly + * @return the Argument's corresponding object + * @throws CommandSyntaxException when the input for the argument isn't formatted correctly */ Object parseArgument(CommandContext cmdCtx, String key, Argument value, Object[] previousArgs) throws CommandSyntaxException { if (value.isListed()) { @@ -458,8 +458,7 @@ private void handlePreviewableArguments(String commandName, Argument[] args, Str } } - // Builds our platform command using the given arguments for this method, then - // registers it + // Builds a command then registers it void register(CommandMetaData meta, final Argument[] args, CustomCommandExecutor> executor, boolean converted) throws CommandSyntaxException, IOException { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java index 660932171f..d4f36283ce 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java @@ -164,19 +164,19 @@ public void onPlayerJoin(PlayerJoinEvent e) { }, plugin); // On 1.19+, enable chat preview if the server allows it - if(canUseChatPreview()) { + if (canUseChatPreview()) { Bukkit.getServer().getPluginManager().registerEvents(new Listener() { @EventHandler public void onPlayerJoin(PlayerJoinEvent e) { - if(Bukkit.shouldSendChatPreviews()) { + if (Bukkit.shouldSendChatPreviews()) { hookChatPreview(plugin, e.getPlayer()); } } @EventHandler public void onPlayerQuit(PlayerQuitEvent e) { - if(Bukkit.shouldSendChatPreviews()) { + if (Bukkit.shouldSendChatPreviews()) { unhookChatPreview(e.getPlayer()); } } @@ -333,7 +333,7 @@ void updateHelpForCommands() { @Override public void onDisable() { - for(Player player : Bukkit.getOnlinePlayers()) { + for (Player player : Bukkit.getOnlinePlayers()) { unhookChatPreview(player); } } @@ -366,10 +366,6 @@ public BukkitCommandSender wrapCommandSender(CommandSen return null; } - @Override - @Unimplemented(because = REQUIRES_MINECRAFT_SERVER) - public abstract CommandDispatcher getBrigadierDispatcher(); - @Override public void registerPermission(String string) { try { @@ -443,6 +439,11 @@ public void unregister(String commandName, boolean force) { ((Map>) COMMANDNODE_ARGUMENTS.get(getBrigadierDispatcher().getRoot())).remove(commandName); } + @Override + @Unimplemented(because = REQUIRES_MINECRAFT_SERVER) + public abstract CommandDispatcher getBrigadierDispatcher(); + + @Override public CommandAPILogger getLogger() { return new DefaultLogger(); @@ -483,12 +484,13 @@ public CommandAPICommand newConcreteCommandAPICommand(CommandMetaData Date: Tue, 22 Nov 2022 12:35:23 -0500 Subject: [PATCH 113/638] Clean up files after merge --- .../jorel/commandapi/CommandAPIHandler.java | 28 --------------- .../java/dev/jorel/commandapi/Executable.java | 2 +- .../jorel/commandapi/IPlatformExecutable.java | 2 +- .../arguments/ArgumentSuggestions.java | 5 +-- .../arguments/SuggestionsBranch.java | 35 ++++++++++--------- .../commandapi/arguments/CommandArgument.java | 31 ++++++++-------- .../commandapi/arguments/CommandResult.java | 0 .../arguments/ListTextArgument.java | 6 ++-- .../dev/jorel/commandapi/test/MockNMS.java | 15 ++------ .../jorel/commandapi/test/ArgumentTests.java | 11 ++---- .../jorel/commandapi/AdvancedConverter.java | 12 ------- 11 files changed, 48 insertions(+), 99 deletions(-) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java (80%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/CommandResult.java (100%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ListTextArgument.java (95%) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index 433e922bc9..bf68142ec4 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -20,33 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi; -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Optional; -import java.util.Set; -import java.util.TreeMap; -import java.util.concurrent.CompletableFuture; -import java.util.function.Predicate; - -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.command.CommandMap; -import org.bukkit.command.CommandSender; -import org.bukkit.command.PluginCommand; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.permissions.Permission; - import com.mojang.brigadier.Command; import com.mojang.brigadier.builder.ArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder; @@ -73,7 +46,6 @@ import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.function.Predicate; -// TODO: Make sure imports merged correctly // TODO: We can use the Adventure API on Paper and Velocity (NOT SPIGOT) // and I'm not sure if we can use the Adventure API on Fabric, so let's diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java index ca1da3f20a..4c3dd0a47c 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java @@ -16,7 +16,7 @@ abstract class Executable, CommandS /** * The CommandAPIExecutor for this executable implementation */ - protected CommandAPIExecutor> executor = new CustomCommandExecutor<>(); + protected CommandAPIExecutor> executor = new CommandAPIExecutor<>(); /** * Returns the executors that this command has diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java index 3cebaedc03..cd43861c2d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java @@ -4,5 +4,5 @@ public interface IPlatformExecutable, CommandSender> extends IChainableBuilder { // Automatically links to Executable#getExecutor (make sure it has the same signature) - CustomCommandExecutor> getExecutor(); + CommandAPIExecutor> getExecutor(); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java index 28947c6ddb..3133325794 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ArgumentSuggestions.java @@ -186,9 +186,10 @@ static ArgumentSuggestions stringsWithTooltipsCol * @param suggestions The {@link ArgumentSuggestions} to be merged * @return an {@link ArgumentSuggestions} object suggesting everything suggested by the input suggestions */ - static ArgumentSuggestions merge(ArgumentSuggestions... suggestions) { + @SafeVarargs + static ArgumentSuggestions merge(ArgumentSuggestions... suggestions) { return (info, builder) -> { - for(ArgumentSuggestions suggestion : suggestions) { + for(ArgumentSuggestions suggestion : suggestions) { suggestion.suggest(info, builder); } return builder.buildFuture(); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionsBranch.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionsBranch.java index 6d29e54bb3..47e0194057 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionsBranch.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SuggestionsBranch.java @@ -7,7 +7,6 @@ import com.mojang.brigadier.suggestion.Suggestion; import com.mojang.brigadier.suggestion.SuggestionsBuilder; import dev.jorel.commandapi.SuggestionInfo; -import org.bukkit.command.CommandSender; import java.util.ArrayList; import java.util.Arrays; @@ -18,11 +17,11 @@ * This class represents a branch in the suggestions of an argument. Use {@link SuggestionsBranch#suggest(ArgumentSuggestions...)} * to add suggestions, then {@link SuggestionsBranch#branch(SuggestionsBranch...)} to add more branches. */ -public class SuggestionsBranch { - private final List suggestions; - private final List branches = new ArrayList<>(); +public class SuggestionsBranch { + private final List> suggestions; + private final List> branches = new ArrayList<>(); - private SuggestionsBranch(List suggestions) { + private SuggestionsBranch(List> suggestions) { this.suggestions = suggestions; } @@ -34,9 +33,10 @@ private SuggestionsBranch(List suggestions) { * ArgumentSuggestions to create these. * @return a new {@link SuggestionsBranch} starting with the given suggestions */ - public static SuggestionsBranch suggest(ArgumentSuggestions... suggestions) { + @SafeVarargs + public static SuggestionsBranch suggest(ArgumentSuggestions... suggestions) { // Arrays#asList allows null elements - return new SuggestionsBranch(Arrays.asList(suggestions)); + return new SuggestionsBranch<>(Arrays.asList(suggestions)); } /** @@ -47,7 +47,8 @@ public static SuggestionsBranch suggest(ArgumentSuggestions... suggestions) { * {@link SuggestionsBranch#suggest(ArgumentSuggestions...)} to start creating these. * @return the current {@link SuggestionsBranch} */ - public SuggestionsBranch branch(SuggestionsBranch... branches) { + @SafeVarargs + public final SuggestionsBranch branch(SuggestionsBranch... branches) { // List#of does not allow null elements this.branches.addAll(List.of(branches)); return this; @@ -61,13 +62,13 @@ public SuggestionsBranch branch(SuggestionsBranch... branches) { * @return The next {@link ArgumentSuggestions} given by this {@link SuggestionsBranch} or null if the suggestions should not be overridden * @throws CommandSyntaxException if the given previous arguments don't lead to a valid path for this {@link SuggestionsBranch} */ - public ArgumentSuggestions getNextSuggestion(CommandSender sender, String... previousArguments) throws CommandSyntaxException { + public ArgumentSuggestions getNextSuggestion(CommandSender sender, String... previousArguments) throws CommandSyntaxException { return getNextSuggestion(sender, previousArguments, new StringReader(String.join(" ", previousArguments)), new ArrayList<>(), new StringBuilder()); } - private ArgumentSuggestions getNextSuggestion(CommandSender sender, String[] previousArguments, StringReader errorContext, List processedArguments, StringBuilder currentInput) throws CommandSyntaxException { + private ArgumentSuggestions getNextSuggestion(CommandSender sender, String[] previousArguments, StringReader errorContext, List processedArguments, StringBuilder currentInput) throws CommandSyntaxException { if (branches.size() == 0 && suggestions.size() == 0) return null; - for (ArgumentSuggestions currentSuggestion : suggestions) { + for (ArgumentSuggestions currentSuggestion : suggestions) { // If all the arguments were processed, this suggestion is next if (processedArguments.size() == previousArguments.length) return currentSuggestion; String currentArgument = previousArguments[processedArguments.size()]; @@ -75,7 +76,7 @@ private ArgumentSuggestions getNextSuggestion(CommandSender sender, String[] pre if (currentSuggestion != null) { // Validate argument on the path - SuggestionInfo info = new SuggestionInfo(sender, processedArguments.toArray(), currentInput.toString(), ""); + SuggestionInfo info = new SuggestionInfo<>(sender, processedArguments.toArray(), currentInput.toString(), ""); SuggestionsBuilder builder = new SuggestionsBuilder(currentInput.toString(), currentInput.length()); currentSuggestion.suggest(info, builder); if (builder.build().getList().stream().map(Suggestion::getText).noneMatch(currentArgument::equals)) { @@ -89,8 +90,8 @@ private ArgumentSuggestions getNextSuggestion(CommandSender sender, String[] pre processedArguments.add(currentArgument); } - List mergedBranches = new ArrayList<>(); - for (SuggestionsBranch branch : branches) { + List> mergedBranches = new ArrayList<>(); + for (SuggestionsBranch branch : branches) { try { mergedBranches.add(branch.getNextSuggestion( sender, previousArguments, errorContext, new ArrayList<>(processedArguments), new StringBuilder(currentInput) @@ -161,7 +162,7 @@ private EnforceReplacementsResult enforceReplacements(CommandSender sender, Stri if (branches.size() == 0 && suggestions.size() == 0) return new EnforceReplacementsResult(ExceptionType.NO_ERROR, null); - for (ArgumentSuggestions currentSuggestion : suggestions) { + for (ArgumentSuggestions currentSuggestion : suggestions) { String currentArgument; if (processedArguments.size() >= arguments.length) currentArgument = ""; @@ -171,7 +172,7 @@ private EnforceReplacementsResult enforceReplacements(CommandSender sender, Stri if (currentSuggestion != null) { // Validate argument on the path - SuggestionInfo info = new SuggestionInfo(sender, processedArguments.toArray(), currentInput.toString(), ""); + SuggestionInfo info = new SuggestionInfo<>(sender, processedArguments.toArray(), currentInput.toString(), ""); SuggestionsBuilder builder = new SuggestionsBuilder(currentInput.toString(), currentInput.length()); try { currentSuggestion.suggest(info, builder); @@ -200,7 +201,7 @@ private EnforceReplacementsResult enforceReplacements(CommandSender sender, Stri // Check the branches to see if the arguments fit and try to choose an appropriate response EnforceReplacementsResult finalResult = EnforceReplacementsResult.withContext(ExceptionType.UNKNOWN, errorContext); - for (SuggestionsBranch branch : branches) { + for (SuggestionsBranch branch : branches) { EnforceReplacementsResult result = branch.enforceReplacements(sender, arguments, errorContext, new ArrayList<>(processedArguments), new StringBuilder(currentInput)); if (result.isHigherPriority(finalResult)) { finalResult = result; diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java similarity index 80% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java index 60b85184f0..fc2e150252 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java @@ -4,9 +4,9 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.BukkitPlatform; import dev.jorel.commandapi.SuggestionInfo; -import dev.jorel.commandapi.nms.NMS; import org.bukkit.FluidCollisionMode; import org.bukkit.Location; import org.bukkit.block.Block; @@ -29,7 +29,7 @@ private void applySuggestions() { super.replaceSuggestions((info, builder) -> { // Extract information CommandSender sender = info.sender(); - CommandMap commandMap = CommandAPIHandler.getInstance().getNMS().getSimpleCommandMap(); + CommandMap commandMap = BukkitPlatform.get().getSimpleCommandMap(); String command = info.currentArg(); // Setup context for errors @@ -37,9 +37,9 @@ private void applySuggestions() { if (!command.contains(" ")) { // Suggesting command name - ArgumentSuggestions replacement = replacements.getNextSuggestion(sender); + ArgumentSuggestions replacement = replacements.getNextSuggestion(sender); if (replacement != null) { - return replacement.suggest(new SuggestionInfo(sender, new Object[0], command, command), builder); + return replacement.suggest(new SuggestionInfo<>(sender, new Object[0], command, command), builder); } List results = commandMap.tabComplete(sender, command); @@ -83,9 +83,9 @@ private void applySuggestions() { int lastIndex = arguments.length - 1; String[] previousArguments = Arrays.copyOf(arguments, lastIndex); - ArgumentSuggestions replacement = replacements.getNextSuggestion(sender, previousArguments); + ArgumentSuggestions replacement = replacements.getNextSuggestion(sender, previousArguments); if (replacement != null) { - return replacement.suggest(new SuggestionInfo(sender, previousArguments, command, arguments[lastIndex]), builder); + return replacement.suggest(new SuggestionInfo<>(sender, previousArguments, command, arguments[lastIndex]), builder); } // Remove command name from arguments for normal tab-completion @@ -109,7 +109,7 @@ private void applySuggestions() { }); } - SuggestionsBranch replacements = SuggestionsBranch.suggest(); + SuggestionsBranch replacements = SuggestionsBranch.suggest(); /** * Replaces the default command suggestions provided by the server with custom @@ -122,7 +122,8 @@ private void applySuggestions() { * to create these. * @return the current argument */ - public CommandArgument replaceSuggestions(ArgumentSuggestions... suggestions) { + @SafeVarargs + public final CommandArgument replaceSuggestions(ArgumentSuggestions... suggestions) { replacements = SuggestionsBranch.suggest(suggestions); return this; } @@ -139,7 +140,7 @@ public CommandArgument replaceSuggestions(ArgumentSuggestions... suggestions) { * @return the current argument */ @Override - public CommandArgument replaceSuggestions(ArgumentSuggestions suggestions) { + public CommandArgument replaceSuggestions(ArgumentSuggestions suggestions) { return replaceSuggestions(new ArgumentSuggestions[]{suggestions}); } @@ -155,7 +156,8 @@ public CommandArgument replaceSuggestions(ArgumentSuggestions suggestions) { * start creating these. * @return the current argument */ - public Argument branchSuggestions(SuggestionsBranch... branches) { + @SafeVarargs + public final Argument branchSuggestions(SuggestionsBranch... branches) { replacements.branch(branches); return this; } @@ -171,11 +173,12 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public CommandResult parseArgument(NMS nms, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public CommandResult parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Extract information String command = cmdCtx.getArgument(key, String.class); - CommandMap commandMap = nms.getSimpleCommandMap(); - CommandSender sender = nms.getSenderForCommand(cmdCtx, false); + CommandMap commandMap = ((BukkitPlatform) platform).getSimpleCommandMap(); + CommandSender sender = platform.getSenderForCommand(cmdCtx, false).getSource(); StringReader context = new StringReader(command); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandResult.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandResult.java similarity index 100% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/CommandResult.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandResult.java diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ListTextArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListTextArgument.java similarity index 95% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ListTextArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListTextArgument.java index 306f69061f..e5185bcbe3 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ListTextArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListTextArgument.java @@ -26,9 +26,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.IStringTooltip; import dev.jorel.commandapi.StringTooltip; -import dev.jorel.commandapi.nms.NMS; import org.bukkit.command.CommandSender; import java.util.*; @@ -128,11 +128,11 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public List parseArgument(NMS nms, + public List parseArgument(AbstractPlatform, CommandSender, CommandListenerWrapper> nms, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the list of values which this can take Map values = new HashMap<>(); - for (T object : supplier.apply(nms.getCommandSenderFromCSS(cmdCtx.getSource()))) { + for (T object : supplier.apply(nms.getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource())) { values.put(mapper.apply(object), object); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java index 486f5a6982..e117af202f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/MockNMS.java @@ -1,18 +1,8 @@ package dev.jorel.commandapi.test; +import be.seeseemelk.mockbukkit.ServerMock; import be.seeseemelk.mockbukkit.WorldMock; import be.seeseemelk.mockbukkit.potion.MockPotionEffectType; -import be.seeseemelk.mockbukkit.ServerMock; -import org.bukkit.*; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.Player; -import org.bukkit.potion.PotionEffectType; -import org.jetbrains.annotations.NotNull; -import org.mockito.Mockito; - import com.google.common.io.Files; import com.google.gson.GsonBuilder; import com.mojang.authlib.GameProfile; @@ -50,6 +40,7 @@ import net.minecraft.world.phys.Vec3D; import org.bukkit.*; import org.bukkit.command.CommandSender; +import org.bukkit.command.SimpleCommandMap; import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; @@ -68,8 +59,6 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; -// TODO: Ensure imports merged correctly - public class MockNMS extends ArgumentNMS { public MockNMS(NMS baseNMS) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java index f8ce3afb00..62c33d8b31 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java @@ -7,11 +7,9 @@ import java.util.concurrent.ThreadLocalRandom; import java.util.stream.Collectors; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandTree; +import dev.jorel.commandapi.*; import dev.jorel.commandapi.arguments.*; import dev.jorel.commandapi.executors.CommandExecutor; -import dev.jorel.commandapi.CommandAPIHandler; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.advancement.Advancement; @@ -32,15 +30,12 @@ import be.seeseemelk.mockbukkit.MockBukkit; import be.seeseemelk.mockbukkit.WorldMock; import be.seeseemelk.mockbukkit.entity.PlayerMock; -import dev.jorel.commandapi.CommandAPICommand; import dev.jorel.commandapi.wrappers.Location2D; import net.kyori.adventure.text.Component; import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.chat.ComponentSerializer; -// TODO: Ensure imports merged correctly - /** * Tests for the 40+ arguments in dev.jorel.commandapi.arguments */ @@ -724,7 +719,7 @@ public void executionTestWithCommandArgument() { Mut results = Mut.of(); PlayerMock player = server.addPlayer("APlayer"); - CommandMap commandMap = CommandAPIHandler.getInstance().getNMS().getSimpleCommandMap(); + CommandMap commandMap = BukkitPlatform.get().getSimpleCommandMap(); // CommandArgument expects to find commands in the commandMap commandMap.registerAll("test", List.of( @@ -794,7 +789,7 @@ public boolean execute(@NotNull CommandSender commandSender, @NotNull String s, .withArguments( new CommandArgument("command") .branchSuggestions( - SuggestionsBranch.suggest( + SuggestionsBranch.suggest( ArgumentSuggestions.strings("give"), ArgumentSuggestions.strings(info -> Bukkit.getOnlinePlayers().stream().map(Player::getName).toArray(String[]::new)) ).branch( diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java index 8b74ae6bf2..cdf71b114d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java @@ -35,18 +35,6 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -import dev.jorel.commandapi.arguments.*; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - -import de.tr7zw.changeme.nbtapi.NBTContainer; -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; -import dev.jorel.commandapi.exceptions.InvalidNumberException; -import dev.jorel.commandapi.exceptions.UnknownArgumentException; - -// TODO: check imports merged correctly - /** * A command parsing system that converts string arguments into something way * more useful From d54a217259d6f01fb72c88ec0889675d379aafe1 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Tue, 22 Nov 2022 12:38:17 -0500 Subject: [PATCH 114/638] Update version in kotlin pom.xml --- commandapi-kotlin/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commandapi-kotlin/pom.xml b/commandapi-kotlin/pom.xml index e93142aa42..d6f6ad7397 100644 --- a/commandapi-kotlin/pom.xml +++ b/commandapi-kotlin/pom.xml @@ -7,7 +7,7 @@ dev.jorel commandapi - 8.6.0-SNAPSHOT + 9.0.0-SNAPSHOT commandapi-kotlin From 61f715d05a66915f09ca47cd0a8760c15bd46dbc Mon Sep 17 00:00:00 2001 From: DerEchtePilz Date: Tue, 22 Nov 2022 22:30:31 +0100 Subject: [PATCH 115/638] update Kotlin DSL to match new project structure --- .../{ => commandapi-kotlin-bukkit}/.gitignore | 0 .../commandapi-kotlin-bukkit/pom.xml | 87 +++++ .../kotlindsl/CommandAPICommandDSL.kt | 0 .../commandapi/kotlindsl/CommandTreeDSL.kt | 343 ++++++++++++++++++ commandapi-kotlin/pom.xml | 70 +--- .../commandapi/kotlindsl/CommandTreeDSL.kt | 343 ------------------ commandapi-kotlin/src/test/kotlin/Examples.kt | 161 -------- pom.xml | 3 +- 8 files changed, 438 insertions(+), 569 deletions(-) rename commandapi-kotlin/{ => commandapi-kotlin-bukkit}/.gitignore (100%) create mode 100644 commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml rename commandapi-kotlin/{ => commandapi-kotlin-bukkit}/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt (100%) create mode 100644 commandapi-kotlin/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt delete mode 100644 commandapi-kotlin/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt delete mode 100644 commandapi-kotlin/src/test/kotlin/Examples.kt diff --git a/commandapi-kotlin/.gitignore b/commandapi-kotlin/commandapi-kotlin-bukkit/.gitignore similarity index 100% rename from commandapi-kotlin/.gitignore rename to commandapi-kotlin/commandapi-kotlin-bukkit/.gitignore diff --git a/commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml b/commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml new file mode 100644 index 0000000000..d312d1fa1d --- /dev/null +++ b/commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml @@ -0,0 +1,87 @@ + + + 4.0.0 + + + dev.jorel + commandapi-kotlin + 9.0.0-SNAPSHOT + + + pom + commandapi-kotlin-bukkit + + + 1.7.20 + + + + src/main/kotlin + + + org.jetbrains.kotlin + kotlin-maven-plugin + ${kotlin.version} + + + compile + compile + + compile + + + + test-compile + test-compile + + test-compile + + + + + 1.8 + + + + + + + + papermc + https://papermc.io/repo/repository/maven-public/ + + + sonatype + https://oss.sonatype.org/content/groups/public/ + + + + + + io.papermc.paper + paper-api + ${paper.version} + provided + + + org.jetbrains.kotlin + kotlin-stdlib + ${kotlin.version} + provided + + + org.jetbrains.kotlin + kotlin-test + ${kotlin.version} + test + + + dev.jorel + commandapi-bukkit-core + ${project.version} + provided + + + diff --git a/commandapi-kotlin/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt b/commandapi-kotlin/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt similarity index 100% rename from commandapi-kotlin/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt rename to commandapi-kotlin/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt diff --git a/commandapi-kotlin/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-kotlin/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt new file mode 100644 index 0000000000..0a6507cf27 --- /dev/null +++ b/commandapi-kotlin/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt @@ -0,0 +1,343 @@ +package dev.jorel.commandapi.kotlindsl + +import dev.jorel.commandapi.* +import dev.jorel.commandapi.arguments.* +import dev.jorel.commandapi.arguments.LiteralArgument.of +import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType +import dev.jorel.commandapi.executors.* +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender +import org.bukkit.command.BlockCommandSender +import org.bukkit.command.CommandSender +import org.bukkit.command.ConsoleCommandSender +import org.bukkit.command.ProxiedCommandSender +import org.bukkit.entity.Entity +import org.bukkit.entity.Player +import java.util.function.Predicate + +inline fun commandTree(name: String, tree: CommandTree.() -> Unit = {}) = CommandTree(name).apply(tree).register() +inline fun commandTree(name: String, predicate: Predicate, tree: CommandTree.() -> Unit = {}) = CommandTree(name).withRequirement(predicate).apply(tree).register() + +// CommandTree start +inline fun CommandTree.argument(base: Argument<*>, block: Argument<*>.() -> Unit = {}): CommandTree = then(base.apply(block)) + +// Integer arguments +inline fun CommandTree.integerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName).apply(block)) +inline fun CommandTree.integerArgument(nodeName: String, min: Int, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName, min).apply(block)) +inline fun CommandTree.integerArgument(nodeName: String, min: Int, max: Int, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName, min, max).apply(block)) +inline fun CommandTree.integerRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerRangeArgument(nodeName).apply(block)) + +// Float arguments +inline fun CommandTree.floatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName).apply(block)) +inline fun CommandTree.floatArgument(nodeName: String, min: Float, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName, min).apply(block)) +inline fun CommandTree.floatArgument(nodeName: String, min: Float, max: Float, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName, min, max).apply(block)) +inline fun CommandTree.floatRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatRangeArgument(nodeName).apply(block)) + +// Double arguments +inline fun CommandTree.doubleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName).apply(block)) +inline fun CommandTree.doubleArgument(nodeName: String, min: Double, block: Argument<*>.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName, min).apply(block)) +inline fun CommandTree.doubleArgument(nodeName: String, min: Double, max: Double, block: Argument<*>.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName, min, max).apply(block)) + +// Long arguments +inline fun CommandTree.longArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LongArgument(nodeName).apply(block)) +inline fun CommandTree.longArgument(nodeName: String, min: Long, block: Argument<*>.() -> Unit = {}): CommandTree = then(LongArgument(nodeName, min).apply(block)) +inline fun CommandTree.longArgument(nodeName: String, min: Long, max: Long, block: Argument<*>.() -> Unit = {}): CommandTree = then(LongArgument(nodeName, min, max).apply(block)) + +// Boolean argument +inline fun CommandTree.booleanArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BooleanArgument(nodeName).apply(block)) + +// String arguments +inline fun CommandTree.stringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(StringArgument(nodeName).apply(block)) +inline fun CommandTree.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TextArgument(nodeName).apply(block)) +inline fun CommandTree.greedyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(GreedyStringArgument(nodeName).apply(block)) + +// Positional arguments +inline fun CommandTree.locationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LocationArgument(nodeName).apply(block)) +inline fun CommandTree.locationArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): CommandTree = then(LocationArgument(nodeName, locationType).apply(block)) +inline fun CommandTree.location2DArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(Location2DArgument(nodeName).apply(block)) +inline fun CommandTree.location2DArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): CommandTree = then(Location2DArgument(nodeName, locationType).apply(block)) +inline fun CommandTree.rotationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(RotationArgument(nodeName).apply(block)) +inline fun CommandTree.axisArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AxisArgument(nodeName).apply(block)) + +// Chat arguments +inline fun CommandTree.chatColorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ChatColorArgument(nodeName).apply(block)) +inline fun CommandTree.chatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ChatComponentArgument(nodeName).apply(block)) +inline fun CommandTree.chatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ChatArgument(nodeName).apply(block)) +inline fun CommandTree.adventureChatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdventureChatComponentArgument(nodeName).apply(block)) +inline fun CommandTree.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdventureChatArgument(nodeName).apply(block)) + +// Entity & Player arguments +inline fun CommandTree.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName).apply(block)) +inline fun CommandTree.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) +inline fun CommandTree.playerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(PlayerArgument(nodeName).apply(block)) +inline fun CommandTree.offlinePlayerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(OfflinePlayerArgument(nodeName).apply(block)) +inline fun CommandTree.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntityTypeArgument(nodeName).apply(block)) + +// Scoreboard arguments +inline fun CommandTree.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName).apply(block)) +inline fun CommandTree.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) +inline fun CommandTree.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreboardSlotArgument(nodeName).apply(block)) +inline fun CommandTree.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ObjectiveArgument(nodeName).apply(block)) +inline fun CommandTree.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ObjectiveCriteriaArgument(nodeName).apply(block)) +inline fun CommandTree.teamArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TeamArgument(nodeName).apply(block)) + +// Miscellaneous arguments +inline fun CommandTree.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AngleArgument(nodeName).apply(block)) +inline fun CommandTree.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdvancementArgument(nodeName).apply(block)) +inline fun CommandTree.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BiomeArgument(nodeName).apply(block)) +inline fun CommandTree.blockStateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BlockStateArgument(nodeName).apply(block)) +inline fun CommandTree.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(CommandArgument(nodeName).apply(block)) +inline fun CommandTree.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EnchantmentArgument(nodeName).apply(block)) +inline fun CommandTree.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EnvironmentArgument(nodeName).apply(block)) +inline fun CommandTree.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ItemStackArgument(nodeName).apply(block)) +inline fun CommandTree.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LootTableArgument(nodeName).apply(block)) +inline fun CommandTree.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(MathOperationArgument(nodeName).apply(block)) +inline fun CommandTree.namespacedKeyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(NamespacedKeyArgument(nodeName).apply(block)) +inline fun CommandTree.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ParticleArgument(nodeName).apply(block)) +inline fun CommandTree.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(PotionEffectArgument(nodeName).apply(block)) +inline fun CommandTree.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(RecipeArgument(nodeName).apply(block)) +inline fun CommandTree.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName).apply(block)) +inline fun CommandTree.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TimeArgument(nodeName).apply(block)) +inline fun CommandTree.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(UUIDArgument(nodeName).apply(block)) + +// Predicate arguments +inline fun CommandTree.blockPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BlockPredicateArgument(nodeName).apply(block)) +inline fun CommandTree.itemStackPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ItemStackPredicateArgument(nodeName).apply(block)) + +// NBT arguments +inline fun CommandTree.nbtCompoundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(NBTCompoundArgument(nodeName).apply(block)) + +// Literal arguments +inline fun CommandTree.literalArgument(literal: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LiteralArgument(literal).apply(block)) +inline fun CommandTree.multiLiteralArgument(vararg literals: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(MultiLiteralArgument(*literals).apply(block)) + + +// ArgumentTree start +inline fun Argument<*>.argument(base: Argument<*>, block: Argument<*>.() -> Unit = {}): Argument<*> = then(base.apply(block)) + +// Integer arguments +inline fun Argument<*>.integerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerArgument(nodeName).apply(block)) +inline fun Argument<*>.integerArgument(nodeName: String, min: Int, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerArgument(nodeName, min).apply(block)) +inline fun Argument<*>.integerArgument(nodeName: String, min: Int, max: Int, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerArgument(nodeName, min, max).apply(block)) +inline fun Argument<*>.integerRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerRangeArgument(nodeName).apply(block)) + +// Float arguments +inline fun Argument<*>.floatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatArgument(nodeName).apply(block)) +inline fun Argument<*>.floatArgument(nodeName: String, min: Float, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatArgument(nodeName, min).apply(block)) +inline fun Argument<*>.floatArgument(nodeName: String, min: Float, max: Float, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatArgument(nodeName, min, max).apply(block)) +inline fun Argument<*>.floatRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatRangeArgument(nodeName).apply(block)) + +// Double arguments +inline fun Argument<*>.doubleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(DoubleArgument(nodeName).apply(block)) +inline fun Argument<*>.doubleArgument(nodeName: String, min: Double, block: Argument<*>.() -> Unit = {}): Argument<*> = then(DoubleArgument(nodeName, min).apply(block)) +inline fun Argument<*>.doubleArgument(nodeName: String, min: Double, max: Double, block: Argument<*>.() -> Unit = {}): Argument<*> = then(DoubleArgument(nodeName, min, max).apply(block)) + +// Long arguments +inline fun Argument<*>.longArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LongArgument(nodeName).apply(block)) +inline fun Argument<*>.longArgument(nodeName: String, min: Long, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LongArgument(nodeName, min).apply(block)) +inline fun Argument<*>.longArgument(nodeName: String, min: Long, max: Long, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LongArgument(nodeName, min, max).apply(block)) + +// Boolean argument +inline fun Argument<*>.booleanArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BooleanArgument(nodeName).apply(block)) + +// String arguments +inline fun Argument<*>.stringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(StringArgument(nodeName).apply(block)) +inline fun Argument<*>.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TextArgument(nodeName).apply(block)) +inline fun Argument<*>.greedyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(GreedyStringArgument(nodeName).apply(block)) + +// Positional arguments +inline fun Argument<*>.locationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LocationArgument(nodeName).apply(block)) +inline fun Argument<*>.locationArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LocationArgument(nodeName, locationType).apply(block)) +inline fun Argument<*>.location2DArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(Location2DArgument(nodeName).apply(block)) +inline fun Argument<*>.location2DArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): Argument<*> = then(Location2DArgument(nodeName, locationType).apply(block)) +inline fun Argument<*>.rotationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(RotationArgument(nodeName).apply(block)) +inline fun Argument<*>.axisArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AxisArgument(nodeName).apply(block)) + +// Chat arguments +inline fun Argument<*>.chatColorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ChatColorArgument(nodeName).apply(block)) +inline fun Argument<*>.chatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ChatComponentArgument(nodeName).apply(block)) +inline fun Argument<*>.chatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ChatArgument(nodeName).apply(block)) +inline fun Argument<*>.adventureChatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdventureChatComponentArgument(nodeName).apply(block)) +inline fun Argument<*>.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdventureChatArgument(nodeName).apply(block)) + +// Entity & Player arguments +inline fun Argument<*>.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument(nodeName).apply(block)) +inline fun Argument<*>.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) +inline fun Argument<*>.playerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(PlayerArgument(nodeName).apply(block)) +inline fun Argument<*>.offlinePlayerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(OfflinePlayerArgument(nodeName).apply(block)) +inline fun Argument<*>.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntityTypeArgument(nodeName).apply(block)) + +// Scoreboard arguments +inline fun Argument<*>.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument(nodeName).apply(block)) +inline fun Argument<*>.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) +inline fun Argument<*>.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreboardSlotArgument(nodeName).apply(block)) +inline fun Argument<*>.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ObjectiveArgument(nodeName).apply(block)) +inline fun Argument<*>.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ObjectiveCriteriaArgument(nodeName).apply(block)) +inline fun Argument<*>.teamArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TeamArgument(nodeName).apply(block)) + +// Miscellaneous arguments +inline fun Argument<*>.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AngleArgument(nodeName).apply(block)) +inline fun Argument<*>.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdvancementArgument(nodeName).apply(block)) +inline fun Argument<*>.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BiomeArgument(nodeName).apply(block)) +inline fun Argument<*>.blockStateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BlockStateArgument(nodeName).apply(block)) +inline fun Argument<*>.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(CommandArgument(nodeName).apply(block)) +inline fun Argument<*>.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EnchantmentArgument(nodeName).apply(block)) +inline fun Argument<*>.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EnvironmentArgument(nodeName).apply(block)) +inline fun Argument<*>.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ItemStackArgument(nodeName).apply(block)) +inline fun Argument<*>.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LootTableArgument(nodeName).apply(block)) +inline fun Argument<*>.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(MathOperationArgument(nodeName).apply(block)) +inline fun Argument<*>.namespacedKeyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(NamespacedKeyArgument(nodeName).apply(block)) +inline fun Argument<*>.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ParticleArgument(nodeName).apply(block)) +inline fun Argument<*>.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(PotionEffectArgument(nodeName).apply(block)) +inline fun Argument<*>.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(RecipeArgument(nodeName).apply(block)) +inline fun Argument<*>.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(SoundArgument(nodeName).apply(block)) +inline fun Argument<*>.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TimeArgument(nodeName).apply(block)) +inline fun Argument<*>.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(UUIDArgument(nodeName).apply(block)) + +// Predicate arguments +inline fun Argument<*>.blockPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BlockPredicateArgument(nodeName).apply(block)) +inline fun Argument<*>.itemStackPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ItemStackPredicateArgument(nodeName).apply(block)) + +// NBT arguments +inline fun Argument<*>.nbtCompoundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(NBTCompoundArgument(nodeName).apply(block)) + +// Literal arguments +inline fun Argument<*>.literalArgument(literal: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LiteralArgument(literal).apply(block)) +inline fun Argument<*>.multiLiteralArgument(vararg literals: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(MultiLiteralArgument(*literals).apply(block)) + +inline fun CommandTree.requirement(base: Argument<*>, predicate: Predicate, block: Argument<*>.() -> Unit = {}): CommandTree = then(base.withRequirement(predicate).apply(block)) +inline fun Argument<*>.requirement(base: Argument<*>, predicate: Predicate, block: Argument<*>.() -> Unit = {}): Argument<*> = then(base.withRequirement(predicate).apply(block)) + +// CommandTree execution +fun CommandTree.anyExecutor(any: (CommandSender, Array) -> Unit) = CommandTreeExecution().any(any).executes(this) +fun CommandTree.playerExecutor(player: (Player, Array) -> Unit) = CommandTreeExecution().player(player).executes(this) +fun CommandTree.consoleExecutor(console: (ConsoleCommandSender, Array) -> Unit) = CommandTreeExecution().console(console).executes(this) +fun CommandTree.commandBlockExecutor(block: (BlockCommandSender, Array) -> Unit) = CommandTreeExecution().block(block).executes(this) +fun CommandTree.proxyExecutor(proxy: (ProxiedCommandSender, Array) -> Unit) = CommandTreeExecution().proxy(proxy).executes(this) +fun CommandTree.nativeExecutor(native: (NativeProxyCommandSender, Array) -> Unit) = CommandTreeExecution().native(native).executes(this) + +// ArgumentTree execution +fun Argument<*>.anyExecutor(any: (CommandSender, Array) -> Unit) = CommandTreeExecution().any(any).executes(this) +fun Argument<*>.playerExecutor(player: (Player, Array) -> Unit) = CommandTreeExecution().player(player).executes(this) +fun Argument<*>.consoleExecutor(console: (ConsoleCommandSender, Array) -> Unit) = CommandTreeExecution().console(console).executes(this) +fun Argument<*>.commandBlockExecutor(block: (BlockCommandSender, Array) -> Unit) = CommandTreeExecution().block(block).executes(this) +fun Argument<*>.proxyExecutor(proxy: (ProxiedCommandSender, Array) -> Unit) = CommandTreeExecution().proxy(proxy).executes(this) +fun Argument<*>.nativeExecutor(native: (NativeProxyCommandSender, Array) -> Unit) = CommandTreeExecution().native(native).executes(this) + + +class CommandTreeExecution { + + private var any: ((CommandSender, Array) -> Unit)? = null + private var player: ((Player, Array) -> Unit)? = null + private var console: ((ConsoleCommandSender, Array) -> Unit)? = null + private var block: ((BlockCommandSender, Array) -> Unit)? = null + private var proxy: ((ProxiedCommandSender, Array) -> Unit)? = null + private var native: ((NativeProxyCommandSender, Array) -> Unit)? = null + + fun any(any: (CommandSender, Array) -> Unit): CommandTreeExecution { + this.any = any + return this + } + + fun player(player: (Player, Array) -> Unit): CommandTreeExecution { + this.player = player + return this + } + + fun console(console: (ConsoleCommandSender, Array) -> Unit): CommandTreeExecution { + this.console = console + return this + } + + fun block(block: (BlockCommandSender, Array) -> Unit): CommandTreeExecution { + this.block = block + return this + } + + fun proxy(proxy: (ProxiedCommandSender, Array) -> Unit): CommandTreeExecution { + this.proxy = proxy + return this + } + + fun native(native: (NativeProxyCommandSender, Array) -> Unit): CommandTreeExecution { + this.native = native + return this + } + + fun executes(tree: Argument<*>) { + if (any != null) { + tree.executes(CommandExecutor { sender, args -> + any?.invoke(sender, args) + }) + return + } + if (player != null) { + tree.executesPlayer(PlayerCommandExecutor { player, args -> + this.player?.invoke(player, args) + }) + return + } + if (console != null) { + tree.executesConsole(ConsoleCommandExecutor { console, args -> + this.console?.invoke(console, args) + }) + return + } + if (block != null) { + tree.executesCommandBlock(CommandBlockCommandExecutor { block, args -> + this.block?.invoke(block, args) + }) + return + } + if (proxy != null) { + tree.executesProxy(ProxyCommandExecutor { proxy, args -> + this.proxy?.invoke(proxy, args) + }) + return + } + if (native != null) { + tree.executesNative(NativeCommandExecutor { native, args -> + this.native?.invoke(native, args) + }) + return + } + } + + fun executes(tree: CommandTree) { + if (any != null) { + tree.executes(CommandExecutor { sender, args -> + any?.invoke(sender, args) + }) + return + } + if (player != null) { + tree.executesPlayer(PlayerCommandExecutor { player, args -> + this.player?.invoke(player, args) + }) + return + } + if (console != null) { + tree.executesConsole(ConsoleCommandExecutor { console, args -> + this.console?.invoke(console, args) + }) + return + } + if (block != null) { + tree.executesCommandBlock(CommandBlockCommandExecutor { block, args -> + this.block?.invoke(block, args) + }) + return + } + if (proxy != null) { + tree.executesProxy(ProxyCommandExecutor { proxy, args -> + this.proxy?.invoke(proxy, args) + }) + return + } + if (native != null) { + tree.executesNative(NativeCommandExecutor { native, args -> + this.native?.invoke(native, args) + }) + return + } + } +} \ No newline at end of file diff --git a/commandapi-kotlin/pom.xml b/commandapi-kotlin/pom.xml index d6f6ad7397..85a0cb357a 100644 --- a/commandapi-kotlin/pom.xml +++ b/commandapi-kotlin/pom.xml @@ -10,74 +10,16 @@ 9.0.0-SNAPSHOT + pom commandapi-kotlin - 1.7.20 + 16 + 16 - - ${project.basedir}/src/main/kotlin - - - org.jetbrains.kotlin - kotlin-maven-plugin - ${kotlin.version} + + commandapi-kotlin-bukkit + - - - compile - - compile - - - - - test-compile - - test-compile - - - - - - - - - - papermc - https://papermc.io/repo/repository/maven-public/ - - - sonatype - https://oss.sonatype.org/content/groups/public/ - - - - - - io.papermc.paper - paper-api - ${paper.version} - provided - - - org.jetbrains.kotlin - kotlin-stdlib - ${kotlin.version} - provided - - - org.jetbrains.kotlin - kotlin-test - ${kotlin.version} - test - - - dev.jorel - commandapi-core - ${project.version} - provided - - diff --git a/commandapi-kotlin/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-kotlin/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt deleted file mode 100644 index 1a71ff07ba..0000000000 --- a/commandapi-kotlin/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt +++ /dev/null @@ -1,343 +0,0 @@ -package dev.jorel.commandapi.kotlindsl - -import dev.jorel.commandapi.* -import dev.jorel.commandapi.arguments.* -import dev.jorel.commandapi.arguments.LiteralArgument.of -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType -import dev.jorel.commandapi.executors.* -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender -import org.bukkit.command.BlockCommandSender -import org.bukkit.command.CommandSender -import org.bukkit.command.ConsoleCommandSender -import org.bukkit.command.ProxiedCommandSender -import org.bukkit.entity.Entity -import org.bukkit.entity.Player -import java.util.function.Predicate - -inline fun commandTree(name: String, tree: CommandTree.() -> Unit = {}) = CommandTree(name).apply(tree).register() -inline fun commandTree(name: String, requirement: Predicate, tree: CommandTree.() -> Unit = {}) = CommandTree(name).withRequirement(requirement).apply(tree).register() - -// CommandTree start -inline fun CommandTree.argument(base: Argument<*>, block: ArgumentTree.() -> Unit = {}): CommandTree = then(base.apply(block)) - -// Integer arguments -inline fun CommandTree.integerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName).apply(block)) -inline fun CommandTree.integerArgument(nodeName: String, min: Int, block: ArgumentTree.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName, min).apply(block)) -inline fun CommandTree.integerArgument(nodeName: String, min: Int, max: Int, block: ArgumentTree.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName, min, max).apply(block)) -inline fun CommandTree.integerRangeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(IntegerRangeArgument(nodeName).apply(block)) - -// Float arguments -inline fun CommandTree.floatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName).apply(block)) -inline fun CommandTree.floatArgument(nodeName: String, min: Float, block: ArgumentTree.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName, min).apply(block)) -inline fun CommandTree.floatArgument(nodeName: String, min: Float, max: Float, block: ArgumentTree.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName, min, max).apply(block)) -inline fun CommandTree.floatRangeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(FloatRangeArgument(nodeName).apply(block)) - -// Double arguments -inline fun CommandTree.doubleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName).apply(block)) -inline fun CommandTree.doubleArgument(nodeName: String, min: Double, block: ArgumentTree.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName, min).apply(block)) -inline fun CommandTree.doubleArgument(nodeName: String, min: Double, max: Double, block: ArgumentTree.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName, min, max).apply(block)) - -// Long arguments -inline fun CommandTree.longArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LongArgument(nodeName).apply(block)) -inline fun CommandTree.longArgument(nodeName: String, min: Long, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LongArgument(nodeName, min).apply(block)) -inline fun CommandTree.longArgument(nodeName: String, min: Long, max: Long, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LongArgument(nodeName, min, max).apply(block)) - -// Boolean argument -inline fun CommandTree.booleanArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(BooleanArgument(nodeName).apply(block)) - -// String arguments -inline fun CommandTree.stringArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(StringArgument(nodeName).apply(block)) -inline fun CommandTree.textArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(TextArgument(nodeName).apply(block)) -inline fun CommandTree.greedyStringArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(GreedyStringArgument(nodeName).apply(block)) - -// Positional arguments -inline fun CommandTree.locationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LocationArgument(nodeName).apply(block)) -inline fun CommandTree.locationArgument(nodeName: String, locationType: LocationType, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LocationArgument(nodeName, locationType).apply(block)) -inline fun CommandTree.location2DArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(Location2DArgument(nodeName).apply(block)) -inline fun CommandTree.location2DArgument(nodeName: String, locationType: LocationType, block: ArgumentTree.() -> Unit = {}): CommandTree = then(Location2DArgument(nodeName, locationType).apply(block)) -inline fun CommandTree.rotationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(RotationArgument(nodeName).apply(block)) -inline fun CommandTree.axisArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(AxisArgument(nodeName).apply(block)) - -// Chat arguments -inline fun CommandTree.chatColorArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ChatColorArgument(nodeName).apply(block)) -inline fun CommandTree.chatComponentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ChatComponentArgument(nodeName).apply(block)) -inline fun CommandTree.chatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ChatArgument(nodeName).apply(block)) -inline fun CommandTree.adventureChatComponentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(AdventureChatComponentArgument(nodeName).apply(block)) -inline fun CommandTree.adventureChatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(AdventureChatArgument(nodeName).apply(block)) - -// Entity & Player arguments -inline fun CommandTree.entitySelectorArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName).apply(block)) -inline fun CommandTree.entitySelectorArgument(nodeName: String, entitySelector: T, block: ArgumentTree.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) -inline fun CommandTree.playerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(PlayerArgument(nodeName).apply(block)) -inline fun CommandTree.offlinePlayerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(OfflinePlayerArgument(nodeName).apply(block)) -inline fun CommandTree.entityTypeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(EntityTypeArgument(nodeName).apply(block)) - -// Scoreboard arguments -inline fun CommandTree.scoreHolderArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName).apply(block)) -inline fun CommandTree.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) -inline fun CommandTree.scoreboardSlotArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ScoreboardSlotArgument(nodeName).apply(block)) -inline fun CommandTree.objectiveArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ObjectiveArgument(nodeName).apply(block)) -inline fun CommandTree.objectiveCriteriaArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ObjectiveCriteriaArgument(nodeName).apply(block)) -inline fun CommandTree.teamArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(TeamArgument(nodeName).apply(block)) - -// Miscellaneous arguments -inline fun CommandTree.angleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(AngleArgument(nodeName).apply(block)) -inline fun CommandTree.advancementArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(AdvancementArgument(nodeName).apply(block)) -inline fun CommandTree.biomeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(BiomeArgument(nodeName).apply(block)) -inline fun CommandTree.blockStateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(BlockStateArgument(nodeName).apply(block)) -inline fun CommandTree.commandArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(CommandArgument(nodeName).apply(block)) -inline fun CommandTree.enchantmentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(EnchantmentArgument(nodeName).apply(block)) -inline fun CommandTree.environmentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(EnvironmentArgument(nodeName).apply(block)) -inline fun CommandTree.itemStackArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ItemStackArgument(nodeName).apply(block)) -inline fun CommandTree.lootTableArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LootTableArgument(nodeName).apply(block)) -inline fun CommandTree.mathOperationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(MathOperationArgument(nodeName).apply(block)) -inline fun CommandTree.namespacedKeyArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(NamespacedKeyArgument(nodeName).apply(block)) -inline fun CommandTree.particleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ParticleArgument(nodeName).apply(block)) -inline fun CommandTree.potionEffectArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(PotionEffectArgument(nodeName).apply(block)) -inline fun CommandTree.recipeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(RecipeArgument(nodeName).apply(block)) -inline fun CommandTree.soundArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName).apply(block)) -inline fun CommandTree.timeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(TimeArgument(nodeName).apply(block)) -inline fun CommandTree.uuidArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(UUIDArgument(nodeName).apply(block)) - -// Predicate arguments -inline fun CommandTree.blockPredicateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(BlockPredicateArgument(nodeName).apply(block)) -inline fun CommandTree.itemStackPredicateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ItemStackPredicateArgument(nodeName).apply(block)) - -// NBT arguments -inline fun CommandTree.nbtCompoundArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(NBTCompoundArgument(nodeName).apply(block)) - -// Literal arguments -inline fun CommandTree.literalArgument(literal: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(of(literal).apply(block)) -inline fun CommandTree.multiLiteralArgument(vararg literals: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(MultiLiteralArgument(*literals).apply(block)) - - -// ArgumentTree start -inline fun ArgumentTree.argument(base: Argument<*>, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(base.apply(block)) - -// Integer arguments -inline fun ArgumentTree.integerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(IntegerArgument(nodeName).apply(block)) -inline fun ArgumentTree.integerArgument(nodeName: String, min: Int, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(IntegerArgument(nodeName, min).apply(block)) -inline fun ArgumentTree.integerArgument(nodeName: String, min: Int, max: Int, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(IntegerArgument(nodeName, min, max).apply(block)) -inline fun ArgumentTree.integerRangeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(IntegerRangeArgument(nodeName).apply(block)) - -// Float arguments -inline fun ArgumentTree.floatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(FloatArgument(nodeName).apply(block)) -inline fun ArgumentTree.floatArgument(nodeName: String, min: Float, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(FloatArgument(nodeName, min).apply(block)) -inline fun ArgumentTree.floatArgument(nodeName: String, min: Float, max: Float, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(FloatArgument(nodeName, min, max).apply(block)) -inline fun ArgumentTree.floatRangeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(FloatRangeArgument(nodeName).apply(block)) - -// Double arguments -inline fun ArgumentTree.doubleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(DoubleArgument(nodeName).apply(block)) -inline fun ArgumentTree.doubleArgument(nodeName: String, min: Double, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(DoubleArgument(nodeName, min).apply(block)) -inline fun ArgumentTree.doubleArgument(nodeName: String, min: Double, max: Double, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(DoubleArgument(nodeName, min, max).apply(block)) - -// Long arguments -inline fun ArgumentTree.longArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LongArgument(nodeName).apply(block)) -inline fun ArgumentTree.longArgument(nodeName: String, min: Long, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LongArgument(nodeName, min).apply(block)) -inline fun ArgumentTree.longArgument(nodeName: String, min: Long, max: Long, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LongArgument(nodeName, min, max).apply(block)) - -// Boolean argument -inline fun ArgumentTree.booleanArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(BooleanArgument(nodeName).apply(block)) - -// String arguments -inline fun ArgumentTree.stringArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(StringArgument(nodeName).apply(block)) -inline fun ArgumentTree.textArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(TextArgument(nodeName).apply(block)) -inline fun ArgumentTree.greedyStringArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(GreedyStringArgument(nodeName).apply(block)) - -// Positional arguments -inline fun ArgumentTree.locationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LocationArgument(nodeName).apply(block)) -inline fun ArgumentTree.locationArgument(nodeName: String, locationType: LocationType, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LocationArgument(nodeName, locationType).apply(block)) -inline fun ArgumentTree.location2DArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(Location2DArgument(nodeName).apply(block)) -inline fun ArgumentTree.location2DArgument(nodeName: String, locationType: LocationType, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(Location2DArgument(nodeName, locationType).apply(block)) -inline fun ArgumentTree.rotationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(RotationArgument(nodeName).apply(block)) -inline fun ArgumentTree.axisArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(AxisArgument(nodeName).apply(block)) - -// Chat arguments -inline fun ArgumentTree.chatColorArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ChatColorArgument(nodeName).apply(block)) -inline fun ArgumentTree.chatComponentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ChatComponentArgument(nodeName).apply(block)) -inline fun ArgumentTree.chatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ChatArgument(nodeName).apply(block)) -inline fun ArgumentTree.adventureChatComponentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(AdventureChatComponentArgument(nodeName).apply(block)) -inline fun ArgumentTree.adventureChatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(AdventureChatArgument(nodeName).apply(block)) - -// Entity & Player arguments -inline fun ArgumentTree.entitySelectorArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(EntitySelectorArgument(nodeName).apply(block)) -inline fun ArgumentTree.entitySelectorArgument(nodeName: String, entitySelector: T, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) -inline fun ArgumentTree.playerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(PlayerArgument(nodeName).apply(block)) -inline fun ArgumentTree.offlinePlayerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(OfflinePlayerArgument(nodeName).apply(block)) -inline fun ArgumentTree.entityTypeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(EntityTypeArgument(nodeName).apply(block)) - -// Scoreboard arguments -inline fun ArgumentTree.scoreHolderArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ScoreHolderArgument(nodeName).apply(block)) -inline fun ArgumentTree.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) -inline fun ArgumentTree.scoreboardSlotArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ScoreboardSlotArgument(nodeName).apply(block)) -inline fun ArgumentTree.objectiveArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ObjectiveArgument(nodeName).apply(block)) -inline fun ArgumentTree.objectiveCriteriaArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ObjectiveCriteriaArgument(nodeName).apply(block)) -inline fun ArgumentTree.teamArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(TeamArgument(nodeName).apply(block)) - -// Miscellaneous arguments -inline fun ArgumentTree.angleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(AngleArgument(nodeName).apply(block)) -inline fun ArgumentTree.advancementArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(AdvancementArgument(nodeName).apply(block)) -inline fun ArgumentTree.biomeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(BiomeArgument(nodeName).apply(block)) -inline fun ArgumentTree.blockStateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(BlockStateArgument(nodeName).apply(block)) -inline fun ArgumentTree.commandArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(CommandArgument(nodeName).apply(block)) -inline fun ArgumentTree.enchantmentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(EnchantmentArgument(nodeName).apply(block)) -inline fun ArgumentTree.environmentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(EnvironmentArgument(nodeName).apply(block)) -inline fun ArgumentTree.itemStackArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ItemStackArgument(nodeName).apply(block)) -inline fun ArgumentTree.lootTableArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LootTableArgument(nodeName).apply(block)) -inline fun ArgumentTree.mathOperationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(MathOperationArgument(nodeName).apply(block)) -inline fun ArgumentTree.namespacedKeyArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(NamespacedKeyArgument(nodeName).apply(block)) -inline fun ArgumentTree.particleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ParticleArgument(nodeName).apply(block)) -inline fun ArgumentTree.potionEffectArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(PotionEffectArgument(nodeName).apply(block)) -inline fun ArgumentTree.recipeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(RecipeArgument(nodeName).apply(block)) -inline fun ArgumentTree.soundArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(SoundArgument(nodeName).apply(block)) -inline fun ArgumentTree.timeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(TimeArgument(nodeName).apply(block)) -inline fun ArgumentTree.uuidArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(UUIDArgument(nodeName).apply(block)) - -// Predicate arguments -inline fun ArgumentTree.blockPredicateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(BlockPredicateArgument(nodeName).apply(block)) -inline fun ArgumentTree.itemStackPredicateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ItemStackPredicateArgument(nodeName).apply(block)) - -// NBT arguments -inline fun ArgumentTree.nbtCompoundArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(NBTCompoundArgument(nodeName).apply(block)) - -// Literal arguments -inline fun ArgumentTree.literalArgument(literal: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(of(literal).apply(block)) -inline fun ArgumentTree.multiLiteralArgument(vararg literals: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(MultiLiteralArgument(*literals).apply(block)) - -inline fun CommandTree.requirement(base: Argument<*>, predicate: Predicate, block: ArgumentTree.() -> Unit = {}): CommandTree = then(base.withRequirement(predicate).apply(block)) -inline fun ArgumentTree.requirement(base: Argument<*>, predicate: Predicate, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(base.withRequirement(predicate).apply(block)) - -// CommandTree execution -fun CommandTree.anyExecutor(any: (CommandSender, Array) -> Unit) = Executions().any(any).executes(this) -fun CommandTree.playerExecutor(player: (Player, Array) -> Unit) = Executions().player(player).executes(this) -fun CommandTree.consoleExecutor(console: (ConsoleCommandSender, Array) -> Unit) = Executions().console(console).executes(this) -fun CommandTree.commandBlockExecutor(block: (BlockCommandSender, Array) -> Unit) = Executions().block(block).executes(this) -fun CommandTree.proxyExecutor(proxy: (ProxiedCommandSender, Array) -> Unit) = Executions().proxy(proxy).executes(this) -fun CommandTree.nativeExecutor(native: (NativeProxyCommandSender, Array) -> Unit) = Executions().native(native).executes(this) - -// ArgumentTree execution -fun ArgumentTree.anyExecutor(any: (CommandSender, Array) -> Unit) = Executions().any(any).executes(this) -fun ArgumentTree.playerExecutor(player: (Player, Array) -> Unit) = Executions().player(player).executes(this) -fun ArgumentTree.consoleExecutor(console: (ConsoleCommandSender, Array) -> Unit) = Executions().console(console).executes(this) -fun ArgumentTree.commandBlockExecutor(block: (BlockCommandSender, Array) -> Unit) = Executions().block(block).executes(this) -fun ArgumentTree.proxyExecutor(proxy: (ProxiedCommandSender, Array) -> Unit) = Executions().proxy(proxy).executes(this) -fun ArgumentTree.nativeExecutor(native: (NativeProxyCommandSender, Array) -> Unit) = Executions().native(native).executes(this) - - -class Executions { - - private var any: ((CommandSender, Array) -> Unit)? = null - private var player: ((Player, Array) -> Unit)? = null - private var console: ((ConsoleCommandSender, Array) -> Unit)? = null - private var block: ((BlockCommandSender, Array) -> Unit)? = null - private var proxy: ((ProxiedCommandSender, Array) -> Unit)? = null - private var native: ((NativeProxyCommandSender, Array) -> Unit)? = null - - fun any(any: (CommandSender, Array) -> Unit): Executions { - this.any = any - return this - } - - fun player(player: (Player, Array) -> Unit): Executions { - this.player = player - return this - } - - fun console(console: (ConsoleCommandSender, Array) -> Unit): Executions { - this.console = console - return this - } - - fun block(block: (BlockCommandSender, Array) -> Unit): Executions { - this.block = block - return this - } - - fun proxy(proxy: (ProxiedCommandSender, Array) -> Unit): Executions { - this.proxy = proxy - return this - } - - fun native(native: (NativeProxyCommandSender, Array) -> Unit): Executions { - this.native = native - return this - } - - fun executes(tree: ArgumentTree) { - if (any != null) { - tree.executes(CommandExecutor { sender, args -> - any?.invoke(sender, args) - }) - return - } - if (player != null) { - tree.executesPlayer(PlayerCommandExecutor { player, args -> - this.player?.invoke(player, args) - }) - return - } - if (console != null) { - tree.executesConsole(ConsoleCommandExecutor { console, args -> - this.console?.invoke(console, args) - }) - return - } - if (block != null) { - tree.executesCommandBlock(CommandBlockCommandExecutor { block, args -> - this.block?.invoke(block, args) - }) - return - } - if (proxy != null) { - tree.executesProxy(ProxyCommandExecutor { proxy, args -> - this.proxy?.invoke(proxy, args) - }) - return - } - if (native != null) { - tree.executesNative(NativeCommandExecutor { native, args -> - this.native?.invoke(native, args) - }) - return - } - } - - fun executes(tree: CommandTree) { - if (any != null) { - tree.executes(CommandExecutor { sender, args -> - any?.invoke(sender, args) - }) - return - } - if (player != null) { - tree.executesPlayer(PlayerCommandExecutor { player, args -> - this.player?.invoke(player, args) - }) - return - } - if (console != null) { - tree.executesConsole(ConsoleCommandExecutor { console, args -> - this.console?.invoke(console, args) - }) - return - } - if (block != null) { - tree.executesCommandBlock(CommandBlockCommandExecutor { block, args -> - this.block?.invoke(block, args) - }) - return - } - if (proxy != null) { - tree.executesProxy(ProxyCommandExecutor { proxy, args -> - this.proxy?.invoke(proxy, args) - }) - return - } - if (native != null) { - tree.executesNative(NativeCommandExecutor { native, args -> - this.native?.invoke(native, args) - }) - return - } - } -} \ No newline at end of file diff --git a/commandapi-kotlin/src/test/kotlin/Examples.kt b/commandapi-kotlin/src/test/kotlin/Examples.kt deleted file mode 100644 index fc3c9f5ba3..0000000000 --- a/commandapi-kotlin/src/test/kotlin/Examples.kt +++ /dev/null @@ -1,161 +0,0 @@ -import dev.jorel.commandapi.* -import dev.jorel.commandapi.kotlindsl.* -import dev.jorel.commandapi.arguments.ArgumentSuggestions -import dev.jorel.commandapi.arguments.LiteralArgument.of -import dev.jorel.commandapi.arguments.StringArgument -import org.bukkit.Bukkit -import org.bukkit.command.CommandSender -import org.bukkit.entity.Player -import org.bukkit.inventory.ItemStack - -fun sendMessageToCommand() { -/* ANCHOR: dslSendMessageToCommand */ -commandTree("sendmessageto") { - playerArgument("player") { // Defines a new PlayerArgument("player") - greedyStringArgument("msg") { // Defines a new GreedyStringArgument("msg) - anyExecutor { _, args -> // Command can be executed by anyone and anything (such as entities, the console, etc.) - val player: Player = args[0] as Player - val message: String = args[1] as String - player.sendMessage(message) - } - } - } -} -/* ANCHOR_END: dslSendMessageToCommand */ - -/* ANCHOR: dslSendMessageToCommand2 */ -commandAPICommand("sendmessageto") { - playerArgument("player") // Defines a new PlayerArgument("player") - greedyStringArgument("msg") // Defines a new GreedyStringArgument("msg) - anyExecutor { _, args -> // Command can be executed by anyone and anything (such as entities, the console, etc.) - val player: Player = args[0] as Player - val message: String = args[1] as String - player.sendMessage(message) - } -} -/* ANCHOR_END: dslSendMessageToCommand2 */ - -/* ANCHOR: dslSendMessageToCommandRequirement */ -commandTree("sendMessageTo") { - playerArgument("player") { - greedyStringArgument("msg") { - playerExecutor { _, args -> - val player: Player = args[0] as Player - val message: String = args[1] as String - player.sendMessage(message) - } - } - } - requirement(of("broadcast"), { sender: CommandSender -> sender.isOp }) { // Define a new LiteralArgument("broadcast") that requires the CommandSender to be a player who is a server operator - greedyStringArgument("msg") { - playerExecutor { _, args -> - val message: String = args[0] as String - Bukkit.broadcastMessage(message) - } - } - } -} -/* ANCHOR_END: dslSendMessageToCommandRequirement */ - -/* ANCHOR: dslSendMessageToCommandRequirement2 */ -commandAPICommand("sendMessageTo") { - playerArgument("player") - greedyStringArgument("msg") - playerExecutor { _, args -> - val player: Player = args[0] as Player - val message: String = args[1] as String - player.sendMessage(message) - } -} - -commandAPICommand("sendMessageTo") { - requirement(of("broadcast"), { sender: CommandSender -> sender.isOp }) // Define a new LiteralArgument("broadcast") that requires the CommandSender to be a player who is a server operator - greedyStringArgument("msg") - playerExecutor { _, args -> - val message: String = args[0] as String - Bukkit.broadcastMessage(message) - } -} -/* ANCHOR_END: dslSendMessageToCommandRequirement2 */ - -/* ANCHOR: dslCommandRequirements */ -commandTree("commandRequirement", {sender: CommandSender -> sender.isOp}) { - playerExecutor { player, _ -> - player.sendMessage("This command can only be executed by players who are server operators.") - } -} -/* ANCHOR_END: dslCommandRequirements */ - -/* ANCHOR: dslCommandRequirements2 */ -commandAPICommand("commandRequirement", {sender: CommandSender -> sender.isOp}) { - playerExecutor { player, _ -> - player.sendMessage("This command can only be executed by players who are server operators.") - } -} -/* ANCHOR_END: dslCommandRequirements2 */ -} - -fun moreExamples() { -/* ANCHOR: optionalArgument */ -commandTree("optionalArgument") { - literalArgument("give") { - itemStackArgument("item") { - playerExecutor { player, args -> // This will let you execute "/optionalArgument give minecraft:stick" - val itemStack: ItemStack = args[0] as ItemStack - player.inventory.addItem(itemStack) - } - integerArgument("amount") { - playerExecutor { player, args -> // This will let you execute "/optionalArgument give minecraft:stick 5" - val itemStack: ItemStack = args[0] as ItemStack - val amount: Int = args[1] as Int - itemStack.amount = amount - player.inventory.addItem(itemStack) - } - } - } - } -} -/* ANCHOR_END: optionalArgument */ - -/* ANCHOR: optionalArgument2 */ -commandAPICommand("optionalArgument") { - literalArgument("give") - itemStackArgument("item") - playerExecutor { player, args -> // This will let you execute "/optionalArgument give minecraft:stick" - val itemStack: ItemStack = args[0] as ItemStack - player.inventory.addItem(itemStack) - } -} - -commandAPICommand("optionalArgument") { - literalArgument("give") - itemStackArgument("item") - integerArgument("amount") - playerExecutor { player, args -> // This will let you execute "/optionalArgument give minecraft:stick 5" - val itemStack: ItemStack = args[0] as ItemStack - val amount: Int = args[1] as Int - itemStack.amount = amount - player.inventory.addItem(itemStack) - } -} -/* ANCHOR_END: optionalArgument2 */ - -/* ANCHOR: replaceSuggestions */ -commandTree("replaceSuggestions") { - argument(StringArgument("strings").replaceSuggestions(ArgumentSuggestions.strings("one", "two", "three"))) { // Implement an argument that has suggestions - playerExecutor { player, args -> - player.sendMessage("You chose option ${args[0] as String}!") - } - } -} -/* ANCHOR_END: replaceSuggestions */ - -/* ANCHOR: replaceSuggestions2 */ -commandAPICommand("replaceSuggestions") { - argument(StringArgument("strings").replaceSuggestions(ArgumentSuggestions.strings("one", "two", "three"))) // Implement an argument that has suggestions - playerExecutor { player, args -> - player.sendMessage("You chose option ${args[0] as String}!") - } -} -/* ANCHOR_END: replaceSuggestions2 */ -} \ No newline at end of file diff --git a/pom.xml b/pom.xml index abd42762d3..275d5fbbee 100644 --- a/pom.xml +++ b/pom.xml @@ -70,7 +70,8 @@ commandapi-documentation-code - + commandapi-kotlin + UTF-8 From f570ec81cc95dd84d146ca3d1ae2b69bf6e58b04 Mon Sep 17 00:00:00 2001 From: DerEchtePilz Date: Tue, 22 Nov 2022 22:38:24 +0100 Subject: [PATCH 116/638] set jvmTarget to 16 --- commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml b/commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml index d312d1fa1d..9d301afe7a 100644 --- a/commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml +++ b/commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml @@ -41,7 +41,7 @@ - 1.8 + 16 From ba447ba76eb9e220b9f68e26ff22306a493b6c24 Mon Sep 17 00:00:00 2001 From: DerEchtePilz Date: Wed, 23 Nov 2022 07:26:30 +0100 Subject: [PATCH 117/638] move commandapi-kotlin-bukkit to commandapi-platforms/commandapi-bukkit --- commandapi-kotlin/pom.xml | 25 ------------------- .../commandapi-kotlin-bukkit/.gitignore | 0 .../commandapi-kotlin-bukkit/pom.xml | 2 +- .../kotlindsl/CommandAPICommandDSL.kt | 0 .../commandapi/kotlindsl/CommandTreeDSL.kt | 1 - .../commandapi-bukkit/pom.xml | 1 + pom.xml | 2 -- 7 files changed, 2 insertions(+), 29 deletions(-) delete mode 100644 commandapi-kotlin/pom.xml rename {commandapi-kotlin => commandapi-platforms/commandapi-bukkit}/commandapi-kotlin-bukkit/.gitignore (100%) rename {commandapi-kotlin => commandapi-platforms/commandapi-bukkit}/commandapi-kotlin-bukkit/pom.xml (98%) rename {commandapi-kotlin => commandapi-platforms/commandapi-bukkit}/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt (100%) rename {commandapi-kotlin => commandapi-platforms/commandapi-bukkit}/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt (99%) diff --git a/commandapi-kotlin/pom.xml b/commandapi-kotlin/pom.xml deleted file mode 100644 index 85a0cb357a..0000000000 --- a/commandapi-kotlin/pom.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - 4.0.0 - - - dev.jorel - commandapi - 9.0.0-SNAPSHOT - - - pom - commandapi-kotlin - - - 16 - 16 - - - - commandapi-kotlin-bukkit - - - diff --git a/commandapi-kotlin/commandapi-kotlin-bukkit/.gitignore b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/.gitignore similarity index 100% rename from commandapi-kotlin/commandapi-kotlin-bukkit/.gitignore rename to commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/.gitignore diff --git a/commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/pom.xml similarity index 98% rename from commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml rename to commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/pom.xml index 9d301afe7a..550624a367 100644 --- a/commandapi-kotlin/commandapi-kotlin-bukkit/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/pom.xml @@ -6,7 +6,7 @@ dev.jorel - commandapi-kotlin + commandapi-bukkit 9.0.0-SNAPSHOT diff --git a/commandapi-kotlin/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt similarity index 100% rename from commandapi-kotlin/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt rename to commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt diff --git a/commandapi-kotlin/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt similarity index 99% rename from commandapi-kotlin/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt rename to commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt index 0a6507cf27..66e51992ca 100644 --- a/commandapi-kotlin/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt +++ b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt @@ -2,7 +2,6 @@ package dev.jorel.commandapi.kotlindsl import dev.jorel.commandapi.* import dev.jorel.commandapi.arguments.* -import dev.jorel.commandapi.arguments.LiteralArgument.of import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType import dev.jorel.commandapi.executors.* import dev.jorel.commandapi.wrappers.NativeProxyCommandSender diff --git a/commandapi-platforms/commandapi-bukkit/pom.xml b/commandapi-platforms/commandapi-bukkit/pom.xml index e2128455dc..03db850a03 100644 --- a/commandapi-platforms/commandapi-bukkit/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/pom.xml @@ -27,5 +27,6 @@ commandapi-bukkit-plugin commandapi-bukkit-plugin-test commandapi-bukkit-shade + commandapi-kotlin-bukkit \ No newline at end of file diff --git a/pom.xml b/pom.xml index 275d5fbbee..1a3ba8dcf7 100644 --- a/pom.xml +++ b/pom.xml @@ -66,11 +66,9 @@ commandapi-annotations - commandapi-kotlin commandapi-documentation-code - commandapi-kotlin From e50665698ff25d1f9181d4bcea60f7bb673b9af6 Mon Sep 17 00:00:00 2001 From: DerEchtePilz Date: Wed, 23 Nov 2022 08:30:51 +0100 Subject: [PATCH 118/638] implement Kotlin DSL for Velocity --- .../commandapi-kotlin-velocity/.gitignore | 113 +++++++ .../commandapi-kotlin-velocity/pom.xml | 88 ++++++ .../kotlindsl/CommandAPICommandDSL.kt | 158 ++++++++++ .../commandapi/kotlindsl/CommandTreeDSL.kt | 277 ++++++++++++++++++ .../commandapi/arguments/LiteralArgument.java | 23 ++ .../commandapi-velocity/pom.xml | 1 + 6 files changed, 660 insertions(+) create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/.gitignore create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/pom.xml create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt create mode 100644 commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt diff --git a/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/.gitignore b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/.gitignore new file mode 100644 index 0000000000..4788b4b454 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/.gitignore @@ -0,0 +1,113 @@ +# User-specific stuff +.idea/ + +*.iml +*.ipr +*.iws + +# IntelliJ +out/ + +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* + +*~ + +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* + +# KDE directory preferences +.directory + +# Linux trash folder which might appear on any partition or disk +.Trash-* + +# .nfs files are created when an open file is removed but is still being accessed +.nfs* + +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk + +target/ + +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next + +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +.mvn/wrapper/maven-wrapper.jar +.flattened-pom.xml + +# Common working directory +run/ diff --git a/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/pom.xml new file mode 100644 index 0000000000..f0ec969cf8 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/pom.xml @@ -0,0 +1,88 @@ + + + 4.0.0 + + + dev.jorel + commandapi-velocity + 9.0.0-SNAPSHOT + + + commandapi-kotlin-velocity + jar + + + 1.7.20 + + + + src/main/kotlin + + + org.jetbrains.kotlin + kotlin-maven-plugin + ${kotlin.version} + + + compile + compile + + compile + + + + test-compile + test-compile + + test-compile + + + + + 16 + + + + + + + + papermc-repo + https://repo.papermc.io/repository/maven-public/ + + + + + + + com.velocitypowered + velocity-api + 3.1.1 + provided + + + + + dev.jorel + commandapi-velocity-core + 9.0.0-SNAPSHOT + provided + + + + + org.jetbrains.kotlin + kotlin-stdlib + ${kotlin.version} + provided + + + org.jetbrains.kotlin + kotlin-test + ${kotlin.version} + test + + + diff --git a/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt new file mode 100644 index 0000000000..0074e0bb96 --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt @@ -0,0 +1,158 @@ +package dev.jorel.commandapi.kotlindsl + +import com.velocitypowered.api.command.CommandSource +import com.velocitypowered.api.proxy.ConsoleCommandSource +import com.velocitypowered.api.proxy.Player +import dev.jorel.commandapi.* +import dev.jorel.commandapi.arguments.* +import dev.jorel.commandapi.executors.CommandExecutor +import dev.jorel.commandapi.executors.ConsoleCommandExecutor +import dev.jorel.commandapi.executors.PlayerCommandExecutor +import java.util.function.Predicate + +inline fun commandAPICommand(name: String, command: CommandAPICommand.() -> Unit = {}) = CommandAPICommand(name).apply(command).register() +inline fun commandAPICommand(name: String, predicate: Predicate, command: CommandAPICommand.() -> Unit = {}) = CommandAPICommand(name).withRequirement(predicate).apply(command).register() + +inline fun CommandAPICommand.argument(base: Argument<*>, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(base.apply(block)) +inline fun CommandAPICommand.subcommand(name: String, command: CommandAPICommand.() -> Unit = {}): CommandAPICommand = withSubcommand(CommandAPICommand(name).apply(command)) + +// Integer arguments +inline fun CommandAPICommand.integerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(IntegerArgument(nodeName).apply(block)) +inline fun CommandAPICommand.integerArgument(nodeName: String, min: Int, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(IntegerArgument(nodeName, min).apply(block)) +inline fun CommandAPICommand.integerArgument(nodeName: String, min: Int, max: Int, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(IntegerArgument(nodeName, min, max).apply(block)) +// inline fun CommandAPICommand.integerRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(IntegerRangeArgument(nodeName).apply(block)) + +// Float arguments +inline fun CommandAPICommand.floatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(FloatArgument(nodeName).apply(block)) +inline fun CommandAPICommand.floatArgument(nodeName: String, min: Float, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(FloatArgument(nodeName, min).apply(block)) +inline fun CommandAPICommand.floatArgument(nodeName: String, min: Float, max: Float, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(FloatArgument(nodeName, min, max).apply(block)) +// inline fun CommandAPICommand.floatRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(FloatRangeArgument(nodeName).apply(block)) + +// Double arguments +inline fun CommandAPICommand.doubleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(DoubleArgument(nodeName).apply(block)) +inline fun CommandAPICommand.doubleArgument(nodeName: String, min: Double, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(DoubleArgument(nodeName, min).apply(block)) +inline fun CommandAPICommand.doubleArgument(nodeName: String, min: Double, max: Double, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(DoubleArgument(nodeName, min, max).apply(block)) + +// Long arguments +inline fun CommandAPICommand.longArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LongArgument(nodeName).apply(block)) +inline fun CommandAPICommand.longArgument(nodeName: String, min: Long, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LongArgument(nodeName, min).apply(block)) +inline fun CommandAPICommand.longArgument(nodeName: String, min: Long, max: Long, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LongArgument(nodeName, min, max).apply(block)) + +// Boolean argument +inline fun CommandAPICommand.booleanArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(BooleanArgument(nodeName).apply(block)) + +// String arguments +inline fun CommandAPICommand.stringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(StringArgument(nodeName).apply(block)) +inline fun CommandAPICommand.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(TextArgument(nodeName).apply(block)) +inline fun CommandAPICommand.greedyStringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(GreedyStringArgument(nodeName).apply(block)) + +// Positional arguments + // inline fun CommandAPICommand.locationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LocationArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.locationArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LocationArgument(nodeName, locationType).apply(block)) + // inline fun CommandAPICommand.location2DArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(Location2DArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.location2DArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(Location2DArgument(nodeName, locationType).apply(block)) + // inline fun CommandAPICommand.rotationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(RotationArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.axisArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AxisArgument(nodeName).apply(block)) + +// Chat arguments + // inline fun CommandAPICommand.chatColorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ChatColorArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.chatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ChatComponentArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.chatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ChatArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.adventureChatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AdventureChatComponentArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AdventureChatArgument(nodeName).apply(block)) + +// Entity & Player arguments + // inline fun CommandAPICommand.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntitySelectorArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntitySelectorArgument(nodeName, entitySelector).apply(block)) + // inline fun CommandAPICommand.playerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(PlayerArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.offlinePlayerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(OfflinePlayerArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntityTypeArgument(nodeName).apply(block)) + +// Scoreboard arguments + // inline fun CommandAPICommand.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ScoreHolderArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) + // inline fun CommandAPICommand.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ScoreboardSlotArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ObjectiveArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ObjectiveCriteriaArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.teamArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(TeamArgument(nodeName).apply(block)) + +// Miscellaneous arguments + // inline fun CommandAPICommand.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AngleArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AdvancementArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(BiomeArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.blockStateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(BlockStateArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(CommandArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EnchantmentArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EnvironmentArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ItemStackArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LootTableArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(MathOperationArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.namespacedKeyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(NamespacedKeyArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ParticleArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(PotionEffectArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(RecipeArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(SoundArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(TimeArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(UUIDArgument(nodeName).apply(block)) + +// Predicate arguments + // inline fun CommandAPICommand.blockPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(BlockPredicateArgument(nodeName).apply(block)) + // inline fun CommandAPICommand.itemStackPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ItemStackPredicateArgument(nodeName).apply(block)) + +// NBT arguments + // inline fun CommandAPICommand.nbtCompoundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(NBTCompoundArgument(nodeName).apply(block)) + +// Literal arguments +inline fun CommandAPICommand.literalArgument(literal: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LiteralArgument.of(literal).apply(block)) +inline fun CommandAPICommand.multiLiteralArgument(vararg literals: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(MultiLiteralArgument(*literals).apply(block)) + +// Requirements +inline fun CommandAPICommand.requirement(base: Argument<*>, predicate: Predicate, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(base.withRequirement(predicate).apply(block)) + +// Command execution +fun CommandAPICommand.anyExecutor(any: (CommandSource, Array) -> Unit) = CommandAPICommandExecution().any(any).executes(this) +fun CommandAPICommand.playerExecutor(player: (Player, Array) -> Unit) = CommandAPICommandExecution().player(player).executes(this) +fun CommandAPICommand.consoleExecutor(console: (ConsoleCommandSource, Array) -> Unit) = CommandAPICommandExecution().console(console).executes(this) + +class CommandAPICommandExecution { + + private var any: ((CommandSource, Array) -> Unit)? = null + private var player: ((Player, Array) -> Unit)? = null + private var console: ((ConsoleCommandSource, Array) -> Unit)? = null + + fun any(any: (CommandSource, Array) -> Unit): CommandAPICommandExecution { + this.any = any + return this + } + + fun player(player: (Player, Array) -> Unit): CommandAPICommandExecution { + this.player = player + return this + } + + fun console(console: (ConsoleCommandSource, Array) -> Unit): CommandAPICommandExecution { + this.console = console + return this + } + + fun executes(command: CommandAPICommand) { + if (any != null) { + command.executes(CommandExecutor { sender, args -> + any?.invoke(sender, args) + }) + return + } + if (player != null) { + command.executesPlayer(PlayerCommandExecutor { player, args -> + this.player?.invoke(player, args) + }) + return + } + if (console != null) { + command.executesConsole(ConsoleCommandExecutor { console, args -> + this.console?.invoke(console, args) + }) + return + } + } +} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt new file mode 100644 index 0000000000..4272f387ad --- /dev/null +++ b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt @@ -0,0 +1,277 @@ +package dev.jorel.commandapi.kotlindsl + +import com.velocitypowered.api.command.CommandSource +import com.velocitypowered.api.proxy.ConsoleCommandSource +import com.velocitypowered.api.proxy.Player +import dev.jorel.commandapi.* +import dev.jorel.commandapi.arguments.* +import dev.jorel.commandapi.executors.* +import java.util.function.Predicate + +inline fun commandTree(name: String, tree: CommandTree.() -> Unit = {}) = CommandTree(name).apply(tree).register() +inline fun commandTree(name: String, predicate: Predicate, tree: CommandTree.() -> Unit = {}) = CommandTree(name).withRequirement(predicate).apply(tree).register() + +// CommandTree start +inline fun CommandTree.argument(base: Argument<*>, block: Argument<*>.() -> Unit = {}): CommandTree = then(base.apply(block)) + +// Integer arguments +inline fun CommandTree.integerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName).apply(block)) +inline fun CommandTree.integerArgument(nodeName: String, min: Int, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName, min).apply(block)) +inline fun CommandTree.integerArgument(nodeName: String, min: Int, max: Int, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName, min, max).apply(block)) +// inline fun CommandTree.integerRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerRangeArgument(nodeName).apply(block)) + +// Float arguments +inline fun CommandTree.floatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName).apply(block)) +inline fun CommandTree.floatArgument(nodeName: String, min: Float, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName, min).apply(block)) +inline fun CommandTree.floatArgument(nodeName: String, min: Float, max: Float, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName, min, max).apply(block)) +// inline fun CommandTree.floatRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatRangeArgument(nodeName).apply(block)) + +// Double arguments +inline fun CommandTree.doubleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName).apply(block)) +inline fun CommandTree.doubleArgument(nodeName: String, min: Double, block: Argument<*>.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName, min).apply(block)) +inline fun CommandTree.doubleArgument(nodeName: String, min: Double, max: Double, block: Argument<*>.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName, min, max).apply(block)) + +// Long arguments +inline fun CommandTree.longArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LongArgument(nodeName).apply(block)) +inline fun CommandTree.longArgument(nodeName: String, min: Long, block: Argument<*>.() -> Unit = {}): CommandTree = then(LongArgument(nodeName, min).apply(block)) +inline fun CommandTree.longArgument(nodeName: String, min: Long, max: Long, block: Argument<*>.() -> Unit = {}): CommandTree = then(LongArgument(nodeName, min, max).apply(block)) + +// Boolean argument +inline fun CommandTree.booleanArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BooleanArgument(nodeName).apply(block)) + +// String arguments +inline fun CommandTree.stringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(StringArgument(nodeName).apply(block)) +inline fun CommandTree.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TextArgument(nodeName).apply(block)) +inline fun CommandTree.greedyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(GreedyStringArgument(nodeName).apply(block)) + +// Positional arguments +// inline fun CommandTree.locationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LocationArgument(nodeName).apply(block)) +// inline fun CommandTree.locationArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): CommandTree = then(LocationArgument(nodeName, locationType).apply(block)) +// inline fun CommandTree.location2DArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(Location2DArgument(nodeName).apply(block)) +// inline fun CommandTree.location2DArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): CommandTree = then(Location2DArgument(nodeName, locationType).apply(block)) +// inline fun CommandTree.rotationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(RotationArgument(nodeName).apply(block)) +// inline fun CommandTree.axisArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AxisArgument(nodeName).apply(block)) + +// Chat arguments +// inline fun CommandTree.chatColorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ChatColorArgument(nodeName).apply(block)) +// inline fun CommandTree.chatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ChatComponentArgument(nodeName).apply(block)) +// inline fun CommandTree.chatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ChatArgument(nodeName).apply(block)) +// inline fun CommandTree.adventureChatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdventureChatComponentArgument(nodeName).apply(block)) +// inline fun CommandTree.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdventureChatArgument(nodeName).apply(block)) + +// Entity & Player arguments +// inline fun CommandTree.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName).apply(block)) +// inline fun CommandTree.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) +// inline fun CommandTree.playerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(PlayerArgument(nodeName).apply(block)) +// inline fun CommandTree.offlinePlayerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(OfflinePlayerArgument(nodeName).apply(block)) +// inline fun CommandTree.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntityTypeArgument(nodeName).apply(block)) + +// Scoreboard arguments +// inline fun CommandTree.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName).apply(block)) +// inline fun CommandTree.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) +// inline fun CommandTree.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreboardSlotArgument(nodeName).apply(block)) +// inline fun CommandTree.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ObjectiveArgument(nodeName).apply(block)) +// inline fun CommandTree.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ObjectiveCriteriaArgument(nodeName).apply(block)) +// inline fun CommandTree.teamArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TeamArgument(nodeName).apply(block)) + +// Miscellaneous arguments +// inline fun CommandTree.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AngleArgument(nodeName).apply(block)) +// inline fun CommandTree.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdvancementArgument(nodeName).apply(block)) +// inline fun CommandTree.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BiomeArgument(nodeName).apply(block)) +// inline fun CommandTree.blockStateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BlockStateArgument(nodeName).apply(block)) +// inline fun CommandTree.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(CommandArgument(nodeName).apply(block)) +// inline fun CommandTree.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EnchantmentArgument(nodeName).apply(block)) +// inline fun CommandTree.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EnvironmentArgument(nodeName).apply(block)) +// inline fun CommandTree.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ItemStackArgument(nodeName).apply(block)) +// inline fun CommandTree.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LootTableArgument(nodeName).apply(block)) +// inline fun CommandTree.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(MathOperationArgument(nodeName).apply(block)) +// inline fun CommandTree.namespacedKeyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(NamespacedKeyArgument(nodeName).apply(block)) +// inline fun CommandTree.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ParticleArgument(nodeName).apply(block)) +// inline fun CommandTree.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(PotionEffectArgument(nodeName).apply(block)) +// inline fun CommandTree.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(RecipeArgument(nodeName).apply(block)) +// inline fun CommandTree.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName).apply(block)) +// inline fun CommandTree.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TimeArgument(nodeName).apply(block)) +// inline fun CommandTree.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(UUIDArgument(nodeName).apply(block)) + +// Predicate arguments +// inline fun CommandTree.blockPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BlockPredicateArgument(nodeName).apply(block)) +// inline fun CommandTree.itemStackPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ItemStackPredicateArgument(nodeName).apply(block)) + +// NBT arguments +// inline fun CommandTree.nbtCompoundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(NBTCompoundArgument(nodeName).apply(block)) + +// Literal arguments +inline fun CommandTree.literalArgument(literal: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LiteralArgument.of(literal).apply(block)) +inline fun CommandTree.multiLiteralArgument(vararg literals: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(MultiLiteralArgument(*literals).apply(block)) + + +// ArgumentTree start +inline fun Argument<*>.argument(base: Argument<*>, block: Argument<*>.() -> Unit = {}): Argument<*> = then(base.apply(block)) + +// Integer arguments +inline fun Argument<*>.integerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerArgument(nodeName).apply(block)) +inline fun Argument<*>.integerArgument(nodeName: String, min: Int, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerArgument(nodeName, min).apply(block)) +inline fun Argument<*>.integerArgument(nodeName: String, min: Int, max: Int, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerArgument(nodeName, min, max).apply(block)) +// inline fun Argument<*>.integerRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerRangeArgument(nodeName).apply(block)) + +// Float arguments +inline fun Argument<*>.floatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatArgument(nodeName).apply(block)) +inline fun Argument<*>.floatArgument(nodeName: String, min: Float, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatArgument(nodeName, min).apply(block)) +inline fun Argument<*>.floatArgument(nodeName: String, min: Float, max: Float, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatArgument(nodeName, min, max).apply(block)) +// inline fun Argument<*>.floatRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatRangeArgument(nodeName).apply(block)) + +// Double arguments +inline fun Argument<*>.doubleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(DoubleArgument(nodeName).apply(block)) +inline fun Argument<*>.doubleArgument(nodeName: String, min: Double, block: Argument<*>.() -> Unit = {}): Argument<*> = then(DoubleArgument(nodeName, min).apply(block)) +inline fun Argument<*>.doubleArgument(nodeName: String, min: Double, max: Double, block: Argument<*>.() -> Unit = {}): Argument<*> = then(DoubleArgument(nodeName, min, max).apply(block)) + +// Long arguments +inline fun Argument<*>.longArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LongArgument(nodeName).apply(block)) +inline fun Argument<*>.longArgument(nodeName: String, min: Long, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LongArgument(nodeName, min).apply(block)) +inline fun Argument<*>.longArgument(nodeName: String, min: Long, max: Long, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LongArgument(nodeName, min, max).apply(block)) + +// Boolean argument +inline fun Argument<*>.booleanArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BooleanArgument(nodeName).apply(block)) + +// String arguments +inline fun Argument<*>.stringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(StringArgument(nodeName).apply(block)) +inline fun Argument<*>.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TextArgument(nodeName).apply(block)) +inline fun Argument<*>.greedyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(GreedyStringArgument(nodeName).apply(block)) + +// Positional arguments +// inline fun Argument<*>.locationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LocationArgument(nodeName).apply(block)) +// inline fun Argument<*>.locationArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LocationArgument(nodeName, locationType).apply(block)) +// inline fun Argument<*>.location2DArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(Location2DArgument(nodeName).apply(block)) +// inline fun Argument<*>.location2DArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): Argument<*> = then(Location2DArgument(nodeName, locationType).apply(block)) +// inline fun Argument<*>.rotationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(RotationArgument(nodeName).apply(block)) +// inline fun Argument<*>.axisArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AxisArgument(nodeName).apply(block)) + +// Chat arguments +// inline fun Argument<*>.chatColorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ChatColorArgument(nodeName).apply(block)) +// inline fun Argument<*>.chatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ChatComponentArgument(nodeName).apply(block)) +// inline fun Argument<*>.chatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ChatArgument(nodeName).apply(block)) +// inline fun Argument<*>.adventureChatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdventureChatComponentArgument(nodeName).apply(block)) +// inline fun Argument<*>.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdventureChatArgument(nodeName).apply(block)) + +// Entity & Player arguments +// inline fun Argument<*>.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument(nodeName).apply(block)) +// inline fun Argument<*>.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) +// inline fun Argument<*>.playerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(PlayerArgument(nodeName).apply(block)) +// inline fun Argument<*>.offlinePlayerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(OfflinePlayerArgument(nodeName).apply(block)) +// inline fun Argument<*>.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntityTypeArgument(nodeName).apply(block)) + +// Scoreboard arguments +// inline fun Argument<*>.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument(nodeName).apply(block)) +// inline fun Argument<*>.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) +// inline fun Argument<*>.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreboardSlotArgument(nodeName).apply(block)) +// inline fun Argument<*>.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ObjectiveArgument(nodeName).apply(block)) +// inline fun Argument<*>.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ObjectiveCriteriaArgument(nodeName).apply(block)) +// inline fun Argument<*>.teamArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TeamArgument(nodeName).apply(block)) + +// Miscellaneous arguments +// inline fun Argument<*>.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AngleArgument(nodeName).apply(block)) +// inline fun Argument<*>.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdvancementArgument(nodeName).apply(block)) +// inline fun Argument<*>.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BiomeArgument(nodeName).apply(block)) +// inline fun Argument<*>.blockStateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BlockStateArgument(nodeName).apply(block)) +// inline fun Argument<*>.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(CommandArgument(nodeName).apply(block)) +// inline fun Argument<*>.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EnchantmentArgument(nodeName).apply(block)) +// inline fun Argument<*>.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EnvironmentArgument(nodeName).apply(block)) +// inline fun Argument<*>.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ItemStackArgument(nodeName).apply(block)) +// inline fun Argument<*>.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LootTableArgument(nodeName).apply(block)) +// inline fun Argument<*>.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(MathOperationArgument(nodeName).apply(block)) +// inline fun Argument<*>.namespacedKeyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(NamespacedKeyArgument(nodeName).apply(block)) +// inline fun Argument<*>.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ParticleArgument(nodeName).apply(block)) +// inline fun Argument<*>.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(PotionEffectArgument(nodeName).apply(block)) +// inline fun Argument<*>.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(RecipeArgument(nodeName).apply(block)) +// inline fun Argument<*>.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(SoundArgument(nodeName).apply(block)) +// inline fun Argument<*>.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TimeArgument(nodeName).apply(block)) +// inline fun Argument<*>.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(UUIDArgument(nodeName).apply(block)) + +// Predicate arguments +// inline fun Argument<*>.blockPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BlockPredicateArgument(nodeName).apply(block)) +// inline fun Argument<*>.itemStackPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ItemStackPredicateArgument(nodeName).apply(block)) + +// NBT arguments +// inline fun Argument<*>.nbtCompoundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(NBTCompoundArgument(nodeName).apply(block)) + +// Literal arguments +inline fun Argument<*>.literalArgument(literal: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LiteralArgument.of(literal).apply(block)) +inline fun Argument<*>.multiLiteralArgument(vararg literals: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(MultiLiteralArgument(*literals).apply(block)) + +inline fun CommandTree.requirement(base: Argument<*>, predicate: Predicate, block: Argument<*>.() -> Unit = {}): CommandTree = then(base.withRequirement(predicate).apply(block)) +inline fun Argument<*>.requirement(base: Argument<*>, predicate: Predicate, block: Argument<*>.() -> Unit = {}): Argument<*> = then(base.withRequirement(predicate).apply(block)) + +// CommandTree execution +fun CommandTree.anyExecutor(any: (CommandSource, Array) -> Unit) = CommandTreeExecution().any(any).executes(this) +fun CommandTree.playerExecutor(player: (Player, Array) -> Unit) = CommandTreeExecution().player(player).executes(this) +fun CommandTree.consoleExecutor(console: (ConsoleCommandSource, Array) -> Unit) = CommandTreeExecution().console(console).executes(this) + +// ArgumentTree execution +fun Argument<*>.anyExecutor(any: (CommandSource, Array) -> Unit) = CommandTreeExecution().any(any).executes(this) +fun Argument<*>.playerExecutor(player: (Player, Array) -> Unit) = CommandTreeExecution().player(player).executes(this) +fun Argument<*>.consoleExecutor(console: (ConsoleCommandSource, Array) -> Unit) = CommandTreeExecution().console(console).executes(this) + + +class CommandTreeExecution { + + private var any: ((CommandSource, Array) -> Unit)? = null + private var player: ((Player, Array) -> Unit)? = null + private var console: ((ConsoleCommandSource, Array) -> Unit)? = null + + fun any(any: (CommandSource, Array) -> Unit): CommandTreeExecution { + this.any = any + return this + } + + fun player(player: (Player, Array) -> Unit): CommandTreeExecution { + this.player = player + return this + } + + fun console(console: (ConsoleCommandSource, Array) -> Unit): CommandTreeExecution { + this.console = console + return this + } + + fun executes(tree: Argument<*>) { + if (any != null) { + tree.executes(CommandExecutor { sender, args -> + any?.invoke(sender, args) + }) + return + } + if (player != null) { + tree.executesPlayer(PlayerCommandExecutor { player, args -> + this.player?.invoke(player, args) + }) + return + } + if (console != null) { + tree.executesConsole(ConsoleCommandExecutor { console, args -> + this.console?.invoke(console, args) + }) + return + } + } + + fun executes(tree: CommandTree) { + if (any != null) { + tree.executes(CommandExecutor { sender, args -> + any?.invoke(sender, args) + }) + return + } + if (player != null) { + tree.executesPlayer(PlayerCommandExecutor { player, args -> + this.player?.invoke(player, args) + }) + return + } + if (console != null) { + tree.executesConsole(ConsoleCommandExecutor { console, args -> + this.console?.invoke(console, args) + }) + return + } + } +} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index ff99117b38..1f7092ff68 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -56,6 +56,29 @@ public LiteralArgument(final String literal) { this.setListed(false); } + /** + * A utility method to create a literal argument. Works as an alternative to {@link dev.jorel.commandapi.arguments.LiteralArgument#literal(String)} + *

+ * To provide easier use of this method you can statically import this: {@code import static dev.jorel.commandapi.arguments.LiteralArgument.of;} + * + * @param literal the string literal that this argument will represent + * @return the literal argument created by this method + */ + public static LiteralArgument of(final String literal) { + return new LiteralArgument(literal); + } + + /** + * A utility method to create a literal argument. Works as an alternative to {@link dev.jorel.commandapi.arguments.LiteralArgument#of(String)} + *

+ * To provide easier use of this method you can statically import this: {@code import static dev.jorel.commandapi.arguments.LiteralArgument.literal;} + * + * @param literal the string literal that this argument will represent + * @return the literal argument created by this method + */ + public static LiteralArgument literal(final String literal) { + return new LiteralArgument(literal); + } @Override public Class getPrimitiveType() { diff --git a/commandapi-platforms/commandapi-velocity/pom.xml b/commandapi-platforms/commandapi-velocity/pom.xml index 9bffe70662..783f93bb28 100644 --- a/commandapi-platforms/commandapi-velocity/pom.xml +++ b/commandapi-platforms/commandapi-velocity/pom.xml @@ -21,5 +21,6 @@ commandapi-velocity-plugin commandapi-velocity-plugin-test commandapi-velocity-shade + commandapi-kotlin-velocity \ No newline at end of file From 3478bb4a9a4ac6e352fff4f7c73868d601f3908d Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 09:44:06 -0500 Subject: [PATCH 119/638] Get rid of spooky CommandAPIMain.java leftover from merge --- .../src/main/java/dev/jorel/commandapi/CommandAPIMain.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 commandapi-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java diff --git a/commandapi-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java deleted file mode 100644 index e69de29bb2..0000000000 From e936f84747844e52cabcafe28763df81ad4f0c95 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 09:48:19 -0500 Subject: [PATCH 120/638] Rename BukkitPlatform to CommandAPIBukkit --- .../java/dev/jorel/commandapi/BukkitExecutable.java | 4 ++-- .../{BukkitPlatform.java => CommandAPIBukkit.java} | 12 ++++-------- .../main/java/dev/jorel/commandapi/Converter.java | 2 +- .../src/main/java/dev/jorel/commandapi/Tooltip.java | 4 ++-- .../commandapi/arguments/AdvancementArgument.java | 6 +++--- .../commandapi/arguments/AdventureChatArgument.java | 8 ++++---- .../arguments/AdventureChatComponentArgument.java | 6 +++--- .../jorel/commandapi/arguments/AngleArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/AxisArgument.java | 6 +++--- .../jorel/commandapi/arguments/BiomeArgument.java | 6 +++--- .../commandapi/arguments/BlockPredicateArgument.java | 6 +++--- .../commandapi/arguments/BlockStateArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/ChatArgument.java | 8 ++++---- .../commandapi/arguments/ChatColorArgument.java | 6 +++--- .../commandapi/arguments/ChatComponentArgument.java | 6 +++--- .../jorel/commandapi/arguments/CommandArgument.java | 6 +++--- .../jorel/commandapi/arguments/CustomArgument.java | 8 ++++---- .../commandapi/arguments/EnchantmentArgument.java | 6 +++--- .../commandapi/arguments/EntitySelectorArgument.java | 6 +++--- .../commandapi/arguments/EntityTypeArgument.java | 6 +++--- .../commandapi/arguments/EnvironmentArgument.java | 6 +++--- .../commandapi/arguments/FloatRangeArgument.java | 6 +++--- .../jorel/commandapi/arguments/FunctionArgument.java | 6 +++--- .../commandapi/arguments/IntegerRangeArgument.java | 6 +++--- .../commandapi/arguments/ItemStackArgument.java | 6 +++--- .../arguments/ItemStackPredicateArgument.java | 6 +++--- .../commandapi/arguments/Location2DArgument.java | 8 ++++---- .../jorel/commandapi/arguments/LocationArgument.java | 8 ++++---- .../commandapi/arguments/LootTableArgument.java | 6 +++--- .../commandapi/arguments/MathOperationArgument.java | 6 +++--- .../commandapi/arguments/NBTCompoundArgument.java | 6 +++--- .../commandapi/arguments/NamespacedKeyArgument.java | 6 +++--- .../commandapi/arguments/ObjectiveArgument.java | 6 +++--- .../arguments/ObjectiveCriteriaArgument.java | 6 +++--- .../commandapi/arguments/OfflinePlayerArgument.java | 6 +++--- .../jorel/commandapi/arguments/ParticleArgument.java | 6 +++--- .../jorel/commandapi/arguments/PlayerArgument.java | 6 +++--- .../commandapi/arguments/PotionEffectArgument.java | 6 +++--- .../jorel/commandapi/arguments/RecipeArgument.java | 6 +++--- .../jorel/commandapi/arguments/RotationArgument.java | 6 +++--- .../commandapi/arguments/ScoreHolderArgument.java | 6 +++--- .../commandapi/arguments/ScoreboardSlotArgument.java | 6 +++--- .../jorel/commandapi/arguments/SoundArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/TeamArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/TimeArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/UUIDArgument.java | 6 +++--- .../commandapi/wrappers/SimpleFunctionWrapper.java | 12 ++++++------ .../java/dev/jorel/commandapi/test/BlankNMS.java | 5 ++--- .../dev/jorel/commandapi/test/ArgumentTests.java | 2 +- 49 files changed, 149 insertions(+), 154 deletions(-) rename commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/{BukkitPlatform.java => CommandAPIBukkit.java} (97%) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java index c98b72f6b9..fd61248ad1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java @@ -24,7 +24,7 @@ default Impl executes(CommandExecutor executor, ExecutorType... types) { @Override public void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - executor.executeWith(BukkitPlatform.get().wrapCommandSender(sender), args); + executor.executeWith(CommandAPIBukkit.get().wrapCommandSender(sender), args); } @Override @@ -53,7 +53,7 @@ default Impl executes(ResultingCommandExecutor executor, ExecutorType... types) @Override public int run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - return executor.executeWith(BukkitPlatform.get().wrapCommandSender(sender), args); + return executor.executeWith(CommandAPIBukkit.get().wrapCommandSender(sender), args); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java similarity index 97% rename from commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java index d4f36283ce..c1738f712a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitPlatform.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java @@ -49,9 +49,9 @@ @RequireField(in = CommandNode.class, name = "children", ofType = Map.class) @RequireField(in = CommandNode.class, name = "literals", ofType = Map.class) @RequireField(in = CommandNode.class, name = "arguments", ofType = Map.class) -public abstract class BukkitPlatform extends AbstractPlatform, CommandSender, Source> implements NMS { +public abstract class CommandAPIBukkit extends AbstractPlatform, CommandSender, Source> implements NMS { // References to utility classes - private static BukkitPlatform instance; + private static CommandAPIBukkit instance; private PaperImplementations paper; // Static VarHandles @@ -79,11 +79,11 @@ public abstract class BukkitPlatform extends AbstractPlatform get() { + public static CommandAPIBukkit get() { return instance; } @@ -481,10 +481,6 @@ public CommandAPICommand newConcreteCommandAPICommand(CommandMetaData AbstractTooltip ofAdventureComponent(S object, Component to * @return native minecraft message object which can be used natively by brigadier. */ public static Message messageFromBaseComponents(BaseComponent... components) { - return BukkitPlatform.get().generateMessageFromJson(ComponentSerializer.toString(components)); + return CommandAPIBukkit.get().generateMessageFromJson(ComponentSerializer.toString(components)); } /** @@ -157,7 +157,7 @@ public static Message messageFromBaseComponents(BaseComponent... components) { * @return native minecraft message object which can be used natively by brigadier. */ public static Message messageFromAdventureComponent(Component component) { - return BukkitPlatform.get().generateMessageFromJson(GsonComponentSerializer.gson().serialize(component)); + return CommandAPIBukkit.get().generateMessageFromJson(GsonComponentSerializer.gson().serialize(component)); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java index 7ff035e5e9..538d2eb0a8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.advancement.Advancement; import org.bukkit.command.CommandSender; @@ -39,7 +39,7 @@ public class AdvancementArgument extends SafeOverrideableArgument Advancement parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getAdvancement(cmdCtx, key); + return ((CommandAPIBukkit) platform).getAdvancement(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java index 7165517549..8ea1878090 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; @@ -52,7 +52,7 @@ public class AdventureChatArgument extends Argument implements IGreed * @param nodeName the name of the node for argument */ public AdventureChatArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentChat()); + super(nodeName, CommandAPIBukkit.get()._ArgumentChat()); try { Class.forName("net.kyori.adventure.text.Component"); @@ -74,8 +74,8 @@ public CommandAPIArgumentType getArgumentType() { @Override public Component parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); - Component component = ((BukkitPlatform) platform).getAdventureChat(cmdCtx, key); + final CommandSender sender = ((CommandAPIBukkit) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); + Component component = ((CommandAPIBukkit) platform).getAdventureChat(cmdCtx, key); if (this.usePreview && getPreview().isPresent() && sender instanceof Player player) { try { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java index 4a473fb144..353c6ced06 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; import net.kyori.adventure.text.Component; import org.bukkit.command.CommandSender; @@ -40,7 +40,7 @@ public class AdventureChatComponentArgument extends Argument { * @param nodeName the name of the node for argument */ public AdventureChatComponentArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentChatComponent()); + super(nodeName, CommandAPIBukkit.get()._ArgumentChatComponent()); try { Class.forName("net.kyori.adventure.text.Component"); @@ -62,6 +62,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public Component parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getAdventureChatComponent(cmdCtx, key); + return ((CommandAPIBukkit) platform).getAdventureChatComponent(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java index eca9385fb8..bf1747f8e0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; /** @@ -43,7 +43,7 @@ public class AngleArgument extends SafeOverrideableArgument { * @param nodeName the name of the node for argument */ public AngleArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentAngle(), String::valueOf); + super(nodeName, CommandAPIBukkit.get()._ArgumentAngle(), String::valueOf); } @Override @@ -59,6 +59,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public Float parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getAngle(cmdCtx, key); + return ((CommandAPIBukkit) platform).getAngle(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java index e2338f446c..b6ffa9319e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Axis; import org.bukkit.command.CommandSender; @@ -44,7 +44,7 @@ public class AxisArgument extends SafeOverrideableArgument e.stream().map(Axis::name).map(String::toLowerCase).reduce(String::concat).get()); } @@ -62,6 +62,6 @@ public CommandAPIArgumentType getArgumentType() { public EnumSet parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getAxis(cmdCtx, key); + return ((CommandAPIBukkit) platform).getAxis(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java index 10af6a87a9..d0d67d6453 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.block.Biome; import org.bukkit.command.CommandSender; @@ -42,7 +42,7 @@ public class BiomeArgument extends SafeOverrideableArgument implem * @param nodeName the name of the node for argument */ public BiomeArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentSyntheticBiome(), + super(nodeName, CommandAPIBukkit.get()._ArgumentSyntheticBiome(), ((Function) Biome::name).andThen(String::toLowerCase)); } @@ -65,6 +65,6 @@ public SuggestionProviders getSuggestionProvider() { public Biome parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getBiome(cmdCtx, key); + return ((CommandAPIBukkit) platform).getBiome(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java index e2d30c0626..5cc9fafb81 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.block.Block; import org.bukkit.command.CommandSender; @@ -44,7 +44,7 @@ public class BlockPredicateArgument extends Argument { * @param nodeName the name of the node for argument */ public BlockPredicateArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentBlockPredicate()); + super(nodeName, CommandAPIBukkit.get()._ArgumentBlockPredicate()); } @Override @@ -61,6 +61,6 @@ public CommandAPIArgumentType getArgumentType() { public Predicate parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getBlockPredicate(cmdCtx, key); + return ((CommandAPIBukkit) platform).getBlockPredicate(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java index 2a7d8cebfc..8ceb82eb83 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.block.data.BlockData; import org.bukkit.command.CommandSender; @@ -41,7 +41,7 @@ public class BlockStateArgument extends Argument { * @param nodeName the name of the node for argument */ public BlockStateArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentBlockState()); + super(nodeName, CommandAPIBukkit.get()._ArgumentBlockState()); } @Override @@ -58,6 +58,6 @@ public CommandAPIArgumentType getArgumentType() { public BlockData parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getBlockState(cmdCtx, key); + return ((CommandAPIBukkit) platform).getBlockState(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java index c5dd78c69f..c1eb1cf596 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; @@ -52,7 +52,7 @@ public class ChatArgument extends Argument implements IGreedyAr * @param nodeName the name of the node for argument */ public ChatArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentChat()); + super(nodeName, CommandAPIBukkit.get()._ArgumentChat()); try { Class.forName("org.spigotmc.SpigotConfig"); @@ -74,8 +74,8 @@ public CommandAPIArgumentType getArgumentType() { @Override public BaseComponent[] parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - final CommandSender sender = ((BukkitPlatform) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); - BaseComponent[] component = ((BukkitPlatform) platform).getChat(cmdCtx, key); + final CommandSender sender = ((CommandAPIBukkit) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); + BaseComponent[] component = ((CommandAPIBukkit) platform).getChat(cmdCtx, key); if (getPreview().isPresent() && sender instanceof Player player) { try { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java index 27f73d4062..ab0751ba63 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -43,7 +43,7 @@ public class ChatColorArgument extends SafeOverrideableArgument) ChatColor::name).andThen(String::toLowerCase)); + super(nodeName, CommandAPIBukkit.get()._ArgumentChatFormat(), ((Function) ChatColor::name).andThen(String::toLowerCase)); } @Override @@ -59,6 +59,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public ChatColor parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getChatColor(cmdCtx, key); + return ((CommandAPIBukkit) platform).getChatColor(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java index 15b76a9959..f8c59a3e04 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; import net.md_5.bungee.api.chat.BaseComponent; import org.bukkit.command.CommandSender; @@ -44,7 +44,7 @@ public class ChatComponentArgument extends Argument { * @param nodeName the name of the node for argument */ public ChatComponentArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentChatComponent()); + super(nodeName, CommandAPIBukkit.get()._ArgumentChatComponent()); try { Class.forName("org.spigotmc.SpigotConfig"); @@ -67,6 +67,6 @@ public CommandAPIArgumentType getArgumentType() { public BaseComponent[] parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getChatComponent(cmdCtx, key); + return ((CommandAPIBukkit) platform).getChatComponent(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java index fc2e150252..08cb9a0738 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java @@ -5,7 +5,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.SuggestionInfo; import org.bukkit.FluidCollisionMode; import org.bukkit.Location; @@ -29,7 +29,7 @@ private void applySuggestions() { super.replaceSuggestions((info, builder) -> { // Extract information CommandSender sender = info.sender(); - CommandMap commandMap = BukkitPlatform.get().getSimpleCommandMap(); + CommandMap commandMap = CommandAPIBukkit.get().getSimpleCommandMap(); String command = info.currentArg(); // Setup context for errors @@ -177,7 +177,7 @@ public CommandResult parseArgument(AbstractPlatform cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Extract information String command = cmdCtx.getArgument(key, String.class); - CommandMap commandMap = ((BukkitPlatform) platform).getSimpleCommandMap(); + CommandMap commandMap = ((CommandAPIBukkit) platform).getSimpleCommandMap(); CommandSender sender = platform.getSenderForCommand(cmdCtx, false).getSource(); StringReader context = new StringReader(command); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index 45bb204f95..d1beb7d174 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -27,7 +27,7 @@ import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.CommandAPI; import org.bukkit.command.CommandSender; @@ -80,7 +80,7 @@ public CustomArgument(String nodeName, CustomArgumentInfoParser parse @Deprecated(forRemoval = true) public CustomArgument(String nodeName, CustomArgumentInfoParser parser, boolean keyed) { super(nodeName, keyed ? StringArgumentType.string() - : BukkitPlatform.get()._ArgumentMinecraftKeyRegistered()); + : CommandAPIBukkit.get()._ArgumentMinecraftKeyRegistered()); this.base = (Argument) new DummyArgument(nodeName, keyed); this.infoParser = (CustomArgumentInfoParser) parser; CommandAPI.logWarning( @@ -362,7 +362,7 @@ private static class DummyArgument extends Argument { private DummyArgument(String nodeName, boolean keyed) { super(nodeName, keyed ? StringArgumentType.string() - : BukkitPlatform.get()._ArgumentMinecraftKeyRegistered()); + : CommandAPIBukkit.get()._ArgumentMinecraftKeyRegistered()); this.keyed = keyed; } @@ -380,7 +380,7 @@ public CommandAPIArgumentType getArgumentType() { public String parseArgument(AbstractPlatform, CommandSender, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return keyed ? ((BukkitPlatform) platform).getMinecraftKey(cmdCtx, key).toString() : cmdCtx.getArgument(key, String.class); + return keyed ? ((CommandAPIBukkit) platform).getMinecraftKey(cmdCtx, key).toString() : cmdCtx.getArgument(key, String.class); } } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java index 752af5c4bb..df0946b55a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.enchantments.Enchantment; @@ -39,7 +39,7 @@ public class EnchantmentArgument extends SafeOverrideableArgument Enchantment parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getEnchantment(cmdCtx, key); + return ((CommandAPIBukkit) platform).getEnchantment(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java index c116709e88..c52828046b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -58,7 +58,7 @@ public EntitySelectorArgument(String nodeName) { * @param selector the entity selector for this argument */ public EntitySelectorArgument(String nodeName, EntitySelector selector) { - super(nodeName, BukkitPlatform.get()._ArgumentEntity(selector)); + super(nodeName, CommandAPIBukkit.get()._ArgumentEntity(selector)); this.selector = selector; } @@ -92,7 +92,7 @@ public CommandAPIArgumentType getArgumentType() { public T parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return (T) ((BukkitPlatform) platform).getEntitySelector(cmdCtx, key, selector); + return (T) ((CommandAPIBukkit) platform).getEntitySelector(cmdCtx, key, selector); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java index 84f3487f56..fbd0c0d476 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; @@ -37,7 +37,7 @@ public class EntityTypeArgument extends SafeOverrideableArgument EntityType parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getEntityType(cmdCtx, key); + return ((CommandAPIBukkit) platform).getEntityType(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java index 9d27aae4ed..9b77fc2bfd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.World.Environment; import org.bukkit.command.CommandSender; @@ -39,7 +39,7 @@ public class EnvironmentArgument extends SafeOverrideableArgument) Environment::name).andThen(String::toLowerCase)); + super(nodeName, CommandAPIBukkit.get()._ArgumentDimension(), ((Function) Environment::name).andThen(String::toLowerCase)); } @Override @@ -55,6 +55,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public Environment parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getDimension(cmdCtx, key); + return ((CommandAPIBukkit) platform).getDimension(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java index 003ddc6f5b..35d128d4d1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.FloatRange; import org.bukkit.command.CommandSender; @@ -37,7 +37,7 @@ public class FloatRangeArgument extends SafeOverrideableArgument FloatRange parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getFloatRange(cmdCtx, key); + return ((CommandAPIBukkit) platform).getFloatRange(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java index 1806faae56..e04e27c75c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.FunctionWrapper; import org.bukkit.NamespacedKey; import org.bukkit.command.CommandSender; @@ -40,7 +40,7 @@ public class FunctionArgument extends SafeOverrideableArgument n)); + super(nodeName, CommandAPIBukkit.get()._ArgumentTag(), fromKey(n -> n)); } @Override @@ -61,6 +61,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public FunctionWrapper[] parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getFunction(cmdCtx, key); + return ((CommandAPIBukkit) platform).getFunction(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java index e1a0c4ad11..ef5a9e21f8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.IntegerRange; import org.bukkit.command.CommandSender; @@ -37,7 +37,7 @@ public class IntegerRangeArgument extends SafeOverrideableArgument IntegerRange parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getIntRange(cmdCtx, key); + return ((CommandAPIBukkit) platform).getIntRange(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java index 391c7cd2c6..266bb49daf 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.inventory.ItemStack; @@ -37,7 +37,7 @@ public class ItemStackArgument extends SafeOverrideableArgument ItemStack parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getItemStack(cmdCtx, key); + return ((CommandAPIBukkit) platform).getItemStack(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java index fd58212c94..39a0145068 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.inventory.ItemStack; @@ -40,7 +40,7 @@ public class ItemStackPredicateArgument extends Argument { * @param nodeName the name of the node for this argument */ public ItemStackPredicateArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentItemPredicate()); + super(nodeName, CommandAPIBukkit.get()._ArgumentItemPredicate()); } @Override @@ -56,6 +56,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public Predicate parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getItemStackPredicate(cmdCtx, key); + return ((CommandAPIBukkit) platform).getItemStackPredicate(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java index 3c00de1ef4..7d869f56ac 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.Location2D; import org.bukkit.Location; import org.bukkit.command.CommandSender; @@ -48,8 +48,8 @@ public Location2DArgument(String nodeName) { * @param type the location type of this location, either {@link LocationType#BLOCK_POSITION} or {@link LocationType#PRECISE_POSITION} */ public Location2DArgument(String nodeName, LocationType type) { - super(nodeName, type == LocationType.BLOCK_POSITION ? BukkitPlatform.get()._ArgumentPosition2D() - : BukkitPlatform.get()._ArgumentVec2(), + super(nodeName, type == LocationType.BLOCK_POSITION ? CommandAPIBukkit.get()._ArgumentPosition2D() + : CommandAPIBukkit.get()._ArgumentVec2(), type == LocationType.BLOCK_POSITION ? (Location2D l) -> l.getBlockX() + " " + l.getBlockZ() : (Location2D l) -> l.getX() + " " + l.getZ()); isPrecise = type == LocationType.PRECISE_POSITION; @@ -78,6 +78,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public Location2D parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return isPrecise ? ((BukkitPlatform) platform).getLocation2DPrecise(cmdCtx, key) : ((BukkitPlatform) platform).getLocation2DBlock(cmdCtx, key); + return isPrecise ? ((CommandAPIBukkit) platform).getLocation2DPrecise(cmdCtx, key) : ((CommandAPIBukkit) platform).getLocation2DBlock(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java index a70eb6f215..9e21b2ecb3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Location; import org.bukkit.command.CommandSender; @@ -47,8 +47,8 @@ public LocationArgument(String nodeName) { * @param type the location type of this location, either {@link LocationType#BLOCK_POSITION} or {@link LocationType#PRECISE_POSITION} */ public LocationArgument(String nodeName, LocationType type) { - super(nodeName, type == LocationType.BLOCK_POSITION ? BukkitPlatform.get()._ArgumentPosition() - : BukkitPlatform.get()._ArgumentVec3(), + super(nodeName, type == LocationType.BLOCK_POSITION ? CommandAPIBukkit.get()._ArgumentPosition() + : CommandAPIBukkit.get()._ArgumentVec3(), type == LocationType.BLOCK_POSITION ? (Location l) -> l.getBlockX() + " " + l.getBlockY() + " " + l.getBlockZ() : (Location l) -> l.getX() + " " + l.getY() + " " + l.getZ()); @@ -78,6 +78,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public Location parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return isPrecise ? ((BukkitPlatform) platform).getLocationPrecise(cmdCtx, key) : ((BukkitPlatform) platform).getLocationBlock(cmdCtx, key); + return isPrecise ? ((CommandAPIBukkit) platform).getLocationPrecise(cmdCtx, key) : ((CommandAPIBukkit) platform).getLocationBlock(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java index 5d37934bb7..dfa617bec1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Keyed; import org.bukkit.command.CommandSender; import org.bukkit.loot.LootTable; @@ -38,7 +38,7 @@ public class LootTableArgument extends SafeOverrideableArgument LootTable parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getLootTable(cmdCtx, key); + return ((CommandAPIBukkit) platform).getLootTable(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java index 38989582d6..30e132fae1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.MathOperation; import org.bukkit.command.CommandSender; @@ -37,7 +37,7 @@ public class MathOperationArgument extends SafeOverrideableArgument MathOperation parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getMathOperation(cmdCtx, key); + return ((CommandAPIBukkit) platform).getMathOperation(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java index 748329d716..55f2baf732 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.CommandAPI; import org.bukkit.command.CommandSender; @@ -39,7 +39,7 @@ public class NBTCompoundArgument extends SafeOverrideableArgument< * @param nodeName the name of the node for this argument */ public NBTCompoundArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentNBTCompound(), NBTContainer::toString); + super(nodeName, CommandAPIBukkit.get()._ArgumentNBTCompound(), NBTContainer::toString); if (CommandAPI.getConfiguration().getNBTContainerClass() == null || CommandAPI.getConfiguration().getNBTContainerConstructor() == null) { throw new NullPointerException( "The NBTCompoundArgument hasn't been initialized properly! Use CommandAPIConfig.initializeNBTAPI() in your onLoad() method"); @@ -62,6 +62,6 @@ public CommandAPIArgumentType getArgumentType() { public NBTContainer parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return (NBTContainer) ((BukkitPlatform) platform).getNBTCompound(cmdCtx, key, CommandAPI.getConfiguration().getNBTContainerConstructor()); + return (NBTContainer) ((CommandAPIBukkit) platform).getNBTCompound(cmdCtx, key, CommandAPI.getConfiguration().getNBTContainerConstructor()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java index c3bfe274d0..f4ead706cf 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.NamespacedKey; import org.bukkit.command.CommandSender; @@ -42,7 +42,7 @@ public class NamespacedKeyArgument extends SafeOverrideableArgument NamespacedKey parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getMinecraftKey(cmdCtx, key); + return ((CommandAPIBukkit) platform).getMinecraftKey(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java index 9518cde006..f9f4cf4f8b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.scoreboard.Objective; @@ -37,7 +37,7 @@ public class ObjectiveArgument extends SafeOverrideableArgument String parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getObjective(cmdCtx, key); + return ((CommandAPIBukkit) platform).getObjective(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java index 32e6077091..8450c4e19a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; /** @@ -36,7 +36,7 @@ public class ObjectiveCriteriaArgument extends Argument { * @param nodeName the name of the node for this argument */ public ObjectiveCriteriaArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentScoreboardCriteria()); + super(nodeName, CommandAPIBukkit.get()._ArgumentScoreboardCriteria()); } @Override @@ -52,6 +52,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public String parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getObjectiveCriteria(cmdCtx, key); + return ((CommandAPIBukkit) platform).getObjectiveCriteria(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java index 32b8781d9f..cc366c72d6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; @@ -39,7 +39,7 @@ public class OfflinePlayerArgument extends SafeOverrideableArgument OfflinePlayer parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getOfflinePlayer(cmdCtx, key); + return ((CommandAPIBukkit) platform).getOfflinePlayer(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java index 29e134992c..019447782c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.ParticleData; import org.bukkit.command.CommandSender; @@ -38,7 +38,7 @@ public class ParticleArgument extends SafeOverrideableArgument ParticleData parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getParticle(cmdCtx, key); + return ((CommandAPIBukkit) platform).getParticle(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java index b0b12a7a77..f6abd30e9e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -39,7 +39,7 @@ public class PlayerArgument extends SafeOverrideableArgument { * @param nodeName the name of the node for this argument */ public PlayerArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentProfile(), Player::getName); + super(nodeName, CommandAPIBukkit.get()._ArgumentProfile(), Player::getName); } @Override @@ -55,6 +55,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public Player parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getPlayer(cmdCtx, key); + return ((CommandAPIBukkit) platform).getPlayer(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java index 2d7afd5f0b..809cbc7472 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.potion.PotionEffectType; @@ -37,7 +37,7 @@ public class PotionEffectArgument extends SafeOverrideableArgument PotionEffectType parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getPotionEffect(cmdCtx, key); + return ((CommandAPIBukkit) platform).getPotionEffect(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java index 1ef463b13b..0529e5610a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Keyed; import org.bukkit.command.CommandSender; import org.bukkit.inventory.Recipe; @@ -38,7 +38,7 @@ public class RecipeArgument extends SafeOverrideableArgument imp * @param nodeName the name of the node for this argument */ public RecipeArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), fromKey((Recipe r) -> ((Keyed) r).getKey())); + super(nodeName, CommandAPIBukkit.get()._ArgumentMinecraftKeyRegistered(), fromKey((Recipe r) -> ((Keyed) r).getKey())); } @Override @@ -59,7 +59,7 @@ public CommandAPIArgumentType getArgumentType() { @Override public Recipe parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getRecipe(cmdCtx, key); + return ((CommandAPIBukkit) platform).getRecipe(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java index ecf837f5ef..124ad2b378 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.Rotation; import org.bukkit.command.CommandSender; @@ -37,7 +37,7 @@ public class RotationArgument extends SafeOverrideableArgument Rotation parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getRotation(cmdCtx, key); + return ((CommandAPIBukkit) platform).getRotation(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java index 33afca4b08..d275d879ab 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import java.util.Collection; @@ -50,7 +50,7 @@ public ScoreHolderArgument(String nodeName) { * @param type whether this argument represents a single score holder or a collection of score holders */ public ScoreHolderArgument(String nodeName, ScoreHolderType type) { - super(nodeName, BukkitPlatform.get()._ArgumentScoreholder(type == ScoreHolderType.SINGLE)); + super(nodeName, CommandAPIBukkit.get()._ArgumentScoreholder(type == ScoreHolderType.SINGLE)); single = (type == ScoreHolderType.SINGLE); } @@ -77,7 +77,7 @@ public CommandAPIArgumentType getArgumentType() { @Override public T parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return (T) (single ? ((BukkitPlatform) platform).getScoreHolderSingle(cmdCtx, key) : ((BukkitPlatform) platform).getScoreHolderMultiple(cmdCtx, key)); + return (T) (single ? ((CommandAPIBukkit) platform).getScoreHolderSingle(cmdCtx, key) : ((CommandAPIBukkit) platform).getScoreHolderMultiple(cmdCtx, key)); } /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java index 3ea19367a5..a6c8cc4592 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.ScoreboardSlot; import org.bukkit.command.CommandSender; @@ -37,7 +37,7 @@ public class ScoreboardSlotArgument extends SafeOverrideableArgument ScoreboardSlot parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getScoreboardSlot(cmdCtx, key); + return ((CommandAPIBukkit) platform).getScoreboardSlot(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java index 98031b0551..58b1e20daa 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Sound; import org.bukkit.command.CommandSender; @@ -37,7 +37,7 @@ public class SoundArgument extends SafeOverrideableArgument implem * @param nodeName the name of the node for this argument */ public SoundArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentMinecraftKeyRegistered(), BukkitPlatform.get()::convert); + super(nodeName, CommandAPIBukkit.get()._ArgumentMinecraftKeyRegistered(), CommandAPIBukkit.get()::convert); } @Override @@ -58,6 +58,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public Sound parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getSound(cmdCtx, key); + return ((CommandAPIBukkit) platform).getSound(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java index bab0c22d58..5b1a233458 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.scoreboard.Team; @@ -37,7 +37,7 @@ public class TeamArgument extends SafeOverrideableArgument { * @param nodeName the name of the node for this argument */ public TeamArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentScoreboardTeam(), Team::getName); + super(nodeName, CommandAPIBukkit.get()._ArgumentScoreboardTeam(), Team::getName); } @Override @@ -53,6 +53,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public String parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getTeam(cmdCtx, key); + return ((CommandAPIBukkit) platform).getTeam(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java index 26b9b8e6f0..e1715c6f8b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.Time; import org.bukkit.command.CommandSender; @@ -37,7 +37,7 @@ public class TimeArgument extends SafeOverrideableArgument { * @param nodeName the name of the node for this argument */ public TimeArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentTime(), Time::toString); + super(nodeName, CommandAPIBukkit.get()._ArgumentTime(), Time::toString); } @Override @@ -53,6 +53,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public Integer parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getTime(cmdCtx, key); + return ((CommandAPIBukkit) platform).getTime(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java index cf82c01a92..ed09febc94 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.AbstractPlatform; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import java.util.UUID; @@ -38,7 +38,7 @@ public class UUIDArgument extends SafeOverrideableArgument { * @param nodeName the name of the node for this argument */ public UUIDArgument(String nodeName) { - super(nodeName, BukkitPlatform.get()._ArgumentUUID(), UUID::toString); + super(nodeName, CommandAPIBukkit.get()._ArgumentUUID(), UUID::toString); } @Override @@ -54,6 +54,6 @@ public CommandAPIArgumentType getArgumentType() { @Override public UUID parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((BukkitPlatform) platform).getUUID(cmdCtx, key); + return ((CommandAPIBukkit) platform).getUUID(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java index 7cd1145786..88eabd96d1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/SimpleFunctionWrapper.java @@ -27,7 +27,7 @@ import org.bukkit.NamespacedKey; import org.bukkit.command.CommandSender; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; /** * A wrapper class for Minecraft 1.12's functions @@ -63,7 +63,7 @@ public SimpleFunctionWrapper(NamespacedKey minecraftKey, @SuppressWarnings("rawt * @return a SimpleFunctionWrapper[], which is an array of all of the functions that this tag contains */ public static SimpleFunctionWrapper[] getTag(NamespacedKey key) { - return BukkitPlatform.get().getTag(key); + return CommandAPIBukkit.get().getTag(key); } /** @@ -72,7 +72,7 @@ public static SimpleFunctionWrapper[] getTag(NamespacedKey key) { * @return a SimpleFunctionWrapper representation of the Minecraft function for the provided NamespacedKey */ public static SimpleFunctionWrapper getFunction(NamespacedKey key) { - return BukkitPlatform.get().getFunction(key); + return CommandAPIBukkit.get().getFunction(key); } /** @@ -80,7 +80,7 @@ public static SimpleFunctionWrapper getFunction(NamespacedKey key) { * @return a set of all functions that the server has registered */ public static Set getFunctions() { - return BukkitPlatform.get().getFunctions(); + return CommandAPIBukkit.get().getFunctions(); } /** @@ -88,7 +88,7 @@ public static Set getFunctions() { * @return a set of all tags that the server has registered */ public static Set getTags() { - return BukkitPlatform.get().getTags(); + return CommandAPIBukkit.get().getTags(); } /** @@ -97,7 +97,7 @@ public static Set getTags() { * @return the result of running this command */ public int run(CommandSender sender) { - BukkitPlatform platform = BukkitPlatform.get(); + CommandAPIBukkit platform = CommandAPIBukkit.get(); return runInternal(platform.getBrigadierSourceFromCommandSender(platform.wrapCommandSender(sender))); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java index 22559601ec..e050439cba 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/test/BlankNMS.java @@ -5,7 +5,7 @@ import java.util.Set; import java.util.UUID; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Axis; import org.bukkit.NamespacedKey; import org.bukkit.OfflinePlayer; @@ -13,7 +13,6 @@ import org.bukkit.World.Environment; import org.bukkit.command.Command; import org.bukkit.command.SimpleCommandMap; -import org.bukkit.entity.Player; import org.bukkit.help.HelpTopic; import org.bukkit.inventory.ItemStack; import org.bukkit.potion.PotionEffectType; @@ -36,7 +35,7 @@ import net.minecraft.commands.arguments.ArgumentChatComponent; import net.minecraft.network.chat.IChatBaseComponent; -public abstract class BlankNMS extends BukkitPlatform { +public abstract class BlankNMS extends CommandAPIBukkit { public final NMS BASE_NMS; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java index 62c33d8b31..b4a66a8c36 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java @@ -719,7 +719,7 @@ public void executionTestWithCommandArgument() { Mut results = Mut.of(); PlayerMock player = server.addPlayer("APlayer"); - CommandMap commandMap = BukkitPlatform.get().getSimpleCommandMap(); + CommandMap commandMap = CommandAPIBukkit.get().getSimpleCommandMap(); // CommandArgument expects to find commands in the commandMap commandMap.registerAll("test", List.of( From 726dc1bfd977aaf8cf7d857f65fb981244829956 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 09:49:17 -0500 Subject: [PATCH 121/638] Rename SpongePlatform to CommandAPISponge --- .../{SpongePlatform.java => CommandAPISponge.java} | 8 ++++---- .../dev/jorel/commandapi/CommandAPIVersionHandler.java | 2 +- .../main/java/dev/jorel/commandapi/SpongeExecutable.java | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) rename commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/{SpongePlatform.java => CommandAPISponge.java} (94%) diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPISponge.java similarity index 94% rename from commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java rename to commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPISponge.java index cff3c20bb0..9a6a35a063 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongePlatform.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPISponge.java @@ -19,15 +19,15 @@ // See https://docs.spongepowered.org/stable/en/plugin/migrating-from-7-to-8.html#command-creation-and-registration // TODO: How does Sponge send commands and interact with Brigadier? -public class SpongePlatform extends AbstractPlatform, Object, Object> { +public class CommandAPISponge extends AbstractPlatform, Object, Object> { private CommandManager commandManager; - private static SpongePlatform instance; + private static CommandAPISponge instance; - public SpongePlatform() { + public CommandAPISponge() { instance = this; } - public static SpongePlatform get() { + public static CommandAPISponge get() { return instance; } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index 31e39e038e..e557b80989 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -2,6 +2,6 @@ public interface CommandAPIVersionHandler { static AbstractPlatform getPlatform() { - return new SpongePlatform(); + return new CommandAPISponge(); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeExecutable.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeExecutable.java index b78c00aa0b..8228e92b1e 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeExecutable.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeExecutable.java @@ -25,7 +25,7 @@ default Impl executes(CommandExecutor executor, ExecutorType... types) { @Override public void run(CommandSource sender, Object[] args) throws WrapperCommandSyntaxException { - executor.executeWith(SpongePlatform.get().wrapCommandSender(sender), args); + executor.executeWith(CommandAPISponge.get().wrapCommandSender(sender), args); } @Override @@ -54,7 +54,7 @@ default Impl executes(ResultingCommandExecutor executor, ExecutorType... types) @Override public int run(CommandSource sender, Object[] args) throws WrapperCommandSyntaxException { - return executor.executeWith(SpongePlatform.get().wrapCommandSender(sender), args); + return executor.executeWith(CommandAPISponge.get().wrapCommandSender(sender), args); } @Override From a003c95e3f57647013eb80882038304b4d99c7a3 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 09:50:03 -0500 Subject: [PATCH 122/638] Rename VelocityPlatform to CommandAPIVelocity --- .../{VelocityPlatform.java => CommandAPIVelocity.java} | 8 ++++---- .../dev/jorel/commandapi/CommandAPIVersionHandler.java | 2 +- .../java/dev/jorel/commandapi/VelocityExecutable.java | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) rename commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/{VelocityPlatform.java => CommandAPIVelocity.java} (95%) diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVelocity.java similarity index 95% rename from commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java rename to commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVelocity.java index 4739a5d610..324728305e 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityPlatform.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVelocity.java @@ -20,15 +20,15 @@ import java.util.logging.Level; import java.util.logging.Logger; -public class VelocityPlatform extends AbstractPlatform, CommandSource, CommandSource> { +public class CommandAPIVelocity extends AbstractPlatform, CommandSource, CommandSource> { private CommandManager commandManager; - private static VelocityPlatform instance; + private static CommandAPIVelocity instance; - public VelocityPlatform() { + public CommandAPIVelocity() { instance = this; } - public static VelocityPlatform get() { + public static CommandAPIVelocity get() { return instance; } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index 1ed0ac544d..ad32402399 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -2,6 +2,6 @@ public interface CommandAPIVersionHandler { static AbstractPlatform getPlatform() { - return new VelocityPlatform(); + return new CommandAPIVelocity(); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java index 7ce3305be8..aefba71c19 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java @@ -23,7 +23,7 @@ default Impl executes(CommandExecutor executor, ExecutorType... types) { @Override public void run(CommandSource sender, Object[] args) throws WrapperCommandSyntaxException { - executor.executeWith(VelocityPlatform.get().wrapCommandSender(sender), args); + executor.executeWith(CommandAPIVelocity.get().wrapCommandSender(sender), args); } @Override @@ -52,7 +52,7 @@ default Impl executes(ResultingCommandExecutor executor, ExecutorType... types) @Override public int run(CommandSource sender, Object[] args) throws WrapperCommandSyntaxException { - return executor.executeWith(VelocityPlatform.get().wrapCommandSender(sender), args); + return executor.executeWith(CommandAPIVelocity.get().wrapCommandSender(sender), args); } @Override From 3051b98dfd77d7246dbc86a7b669946875f4a33c Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 10:02:33 -0500 Subject: [PATCH 123/638] Replace missed instances of (X)Platform to CommandAPI(X) --- .../main/java/dev/jorel/commandapi/CommandAPIBukkit.java | 4 ++-- .../main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java | 4 ++-- .../java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java | 4 ++-- .../java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java | 4 ++-- .../java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java | 4 ++-- .../java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java | 4 ++-- .../java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java | 4 ++-- .../dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java | 4 ++-- .../nms/NMS_1_19_Common_ChatPreviewHandler.java | 8 ++++---- .../commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java | 4 ++-- .../commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java | 4 ++-- .../main/java/dev/jorel/commandapi/nms/NMS_Common.java | 4 ++-- .../commandapi-bukkit/commandapi-bukkit-plugin/pom.xml | 2 +- .../commandapi-bukkit/commandapi-bukkit-shade/pom.xml | 2 +- .../commandapi-sponge/commandapi-sponge-plugin/pom.xml | 2 +- .../commandapi-sponge/commandapi-sponge-shade/pom.xml | 2 +- .../commandapi-velocity-plugin/pom.xml | 2 +- .../commandapi-velocity/commandapi-velocity-shade/pom.xml | 2 +- 18 files changed, 32 insertions(+), 32 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java index c1738f712a..351a15bbfd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java @@ -42,8 +42,8 @@ import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.*; -// BukkitPlatform is an AbstractPlatform, but also needs all of the methods from -// NMS, so it implements NMS. Our implementation of BukkitPlatform is now derived +// CommandAPIBukkit is an AbstractPlatform, but also needs all of the methods from +// NMS, so it implements NMS. Our implementation of CommandAPIBukkit is now derived // using the version handler (and thus, deferred to our NMS-specific implementations) @RequireField(in = CommandNode.class, name = "children", ofType = Map.class) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index 25a388b898..a904f778e5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -7,7 +7,7 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; @@ -68,7 +68,7 @@ import java.util.function.Predicate; import java.util.function.ToIntFunction; -abstract class NMSWrapper_1_13_1 extends BukkitPlatform {} +abstract class NMSWrapper_1_13_1 extends CommandAPIBukkit {} /** * NMS implementation for Minecraft 1.13.1 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java index 5829ca6b73..558ce834c5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi.nms; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import net.minecraft.server.v1_13_R1.CommandListenerWrapper; -abstract class NMSWrapper_1_13 extends BukkitPlatform {} \ No newline at end of file +abstract class NMSWrapper_1_13 extends CommandAPIBukkit {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java index 55cbfced4a..d6395379a4 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_14.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi.nms; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import net.minecraft.server.v1_14_R1.CommandListenerWrapper; -abstract class NMSWrapper_1_14 extends BukkitPlatform {} \ No newline at end of file +abstract class NMSWrapper_1_14 extends CommandAPIBukkit {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java index 613a4f9713..1adb6f7dab 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_15.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi.nms; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import net.minecraft.server.v1_15_R1.CommandListenerWrapper; -abstract class NMSWrapper_1_15 extends BukkitPlatform {} \ No newline at end of file +abstract class NMSWrapper_1_15 extends CommandAPIBukkit {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java index f9109c2c59..5dca40e7b0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R1.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi.nms; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import net.minecraft.server.v1_16_R1.CommandListenerWrapper; -abstract class NMSWrapper_1_16_R1 extends BukkitPlatform {} \ No newline at end of file +abstract class NMSWrapper_1_16_R1 extends CommandAPIBukkit {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java index 52bb1b6756..a855b0efab 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_R2.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi.nms; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import net.minecraft.server.v1_16_R2.CommandListenerWrapper; -abstract class NMSWrapper_1_16_R2 extends BukkitPlatform {} \ No newline at end of file +abstract class NMSWrapper_1_16_R2 extends CommandAPIBukkit {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java index f4fd7e4a59..8260584306 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_16_4_R3.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi.nms; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import net.minecraft.server.v1_16_R3.CommandListenerWrapper; -abstract class NMSWrapper_1_16_4_R3 extends BukkitPlatform {} \ No newline at end of file +abstract class NMSWrapper_1_16_4_R3 extends CommandAPIBukkit {} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java index f729ec551f..0eb77040e3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common_ChatPreviewHandler.java @@ -5,7 +5,7 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.arguments.PreviewInfo; import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; @@ -32,12 +32,12 @@ public abstract class NMS_1_19_Common_ChatPreviewHandler extends ChannelDuplexHandler { - protected final BukkitPlatform platform; + protected final CommandAPIBukkit platform; protected final Plugin plugin; protected final Player player; protected final Connection connection; - public NMS_1_19_Common_ChatPreviewHandler(BukkitPlatform platform, Plugin plugin, Player player) { + public NMS_1_19_Common_ChatPreviewHandler(CommandAPIBukkit platform, Plugin plugin, Player player) { this.platform = platform; this.plugin = plugin; this.player = player; @@ -127,7 +127,7 @@ public MutableComponent parseChatPreviewQuery(String chatPreviewQuery) { private record InitialParse(String fullInput, ParseResults results, List path, Optional> preview){ private static InitialParse cachedResult = null; - public static InitialParse processChatPreviewQuery(String chatPreviewQuery, BukkitPlatform platform, Player player){ + public static InitialParse processChatPreviewQuery(String chatPreviewQuery, CommandAPIBukkit platform, Player player){ // Substring 1 to get rid of the leading / final String fullInput = chatPreviewQuery.substring(1); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java index 9812129a99..377b41ae70 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_1_R1_ChatPreviewHandler.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi.nms; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.preprocessor.RequireField; import net.minecraft.commands.CommandSourceStack; import net.minecraft.network.PacketSendListener; @@ -22,7 +22,7 @@ public class NMS_1_19_1_R1_ChatPreviewHandler extends NMS_1_19_Common_ChatPreviewHandler { ChatPreviewThrottler throttler; - public NMS_1_19_1_R1_ChatPreviewHandler(BukkitPlatform platform, Plugin plugin, Player player) { + public NMS_1_19_1_R1_ChatPreviewHandler(CommandAPIBukkit platform, Plugin plugin, Player player) { super(platform, plugin, player); try { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java index e2fee1d9d2..7e886c6d67 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_R1_ChatPreviewHandler.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi.nms; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import net.minecraft.commands.CommandSourceStack; import net.minecraft.network.protocol.game.ClientboundChatPreviewPacket; import net.minecraft.network.protocol.game.ServerboundChatPreviewPacket; @@ -10,7 +10,7 @@ public class NMS_1_19_R1_ChatPreviewHandler extends NMS_1_19_Common_ChatPreviewHandler { - public NMS_1_19_R1_ChatPreviewHandler(BukkitPlatform platform, Plugin plugin, Player player) { + public NMS_1_19_R1_ChatPreviewHandler(CommandAPIBukkit platform, Plugin plugin, Player player) { super(platform, plugin, player); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java index 62b721c6fd..b82b1dc470 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java @@ -27,7 +27,7 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.BukkitPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.arguments.EntitySelector; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; @@ -94,7 +94,7 @@ * Any of these that do not work should be removed or implemented otherwise * (introducing another NMS_Common module perhaps? */ -public abstract class NMS_Common extends BukkitPlatform { +public abstract class NMS_Common extends CommandAPIBukkit { private static NamespacedKey fromResourceLocation(ResourceLocation key) { return NamespacedKey.fromString(key.getNamespace() + ":" + key.getPath()); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml index ee90d5eb69..5e54e1ff61 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/pom.xml @@ -110,7 +110,7 @@ + loads CommandAPIBukkit for the current version --> dev.jorel:commandapi-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml index e5d2d82833..fc18a11570 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml @@ -71,7 +71,7 @@ true + loads CommandAPIBukkit for the current version --> dev.jorel:commandapi-core diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml index 66f75b9fd2..9af9cba9df 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/pom.xml @@ -56,7 +56,7 @@ + loads CommandAPISponge --> dev.jorel:commandapi-core diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml b/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml index 2d2c2da27e..fa67454536 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-shade/pom.xml @@ -39,7 +39,7 @@ + loads CommandAPISponge --> dev.jorel:commandapi-core diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml index b46391e17a..a5d567cb23 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/pom.xml @@ -55,7 +55,7 @@ + loads CommandAPIVelocity --> dev.jorel:commandapi-core diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml b/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml index db454a63ce..de4abbba4b 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-shade/pom.xml @@ -39,7 +39,7 @@ + loads CommandAPIVelocity --> dev.jorel:commandapi-core From c268ed4585f80fec441562a37af60fed9b7c9b68 Mon Sep 17 00:00:00 2001 From: DerEchtePilz Date: Wed, 23 Nov 2022 20:08:39 +0100 Subject: [PATCH 124/638] add documentation code and fix documentation links to examples --- .../examples/kotlin/ExamplesKotlinDSL.kt | 161 ++++++++++++++++++ docssrc/src/kotlindsl.md | 20 +-- 2 files changed, 171 insertions(+), 10 deletions(-) create mode 100644 commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt diff --git a/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt b/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt new file mode 100644 index 0000000000..fc3c9f5ba3 --- /dev/null +++ b/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt @@ -0,0 +1,161 @@ +import dev.jorel.commandapi.* +import dev.jorel.commandapi.kotlindsl.* +import dev.jorel.commandapi.arguments.ArgumentSuggestions +import dev.jorel.commandapi.arguments.LiteralArgument.of +import dev.jorel.commandapi.arguments.StringArgument +import org.bukkit.Bukkit +import org.bukkit.command.CommandSender +import org.bukkit.entity.Player +import org.bukkit.inventory.ItemStack + +fun sendMessageToCommand() { +/* ANCHOR: dslSendMessageToCommand */ +commandTree("sendmessageto") { + playerArgument("player") { // Defines a new PlayerArgument("player") + greedyStringArgument("msg") { // Defines a new GreedyStringArgument("msg) + anyExecutor { _, args -> // Command can be executed by anyone and anything (such as entities, the console, etc.) + val player: Player = args[0] as Player + val message: String = args[1] as String + player.sendMessage(message) + } + } + } +} +/* ANCHOR_END: dslSendMessageToCommand */ + +/* ANCHOR: dslSendMessageToCommand2 */ +commandAPICommand("sendmessageto") { + playerArgument("player") // Defines a new PlayerArgument("player") + greedyStringArgument("msg") // Defines a new GreedyStringArgument("msg) + anyExecutor { _, args -> // Command can be executed by anyone and anything (such as entities, the console, etc.) + val player: Player = args[0] as Player + val message: String = args[1] as String + player.sendMessage(message) + } +} +/* ANCHOR_END: dslSendMessageToCommand2 */ + +/* ANCHOR: dslSendMessageToCommandRequirement */ +commandTree("sendMessageTo") { + playerArgument("player") { + greedyStringArgument("msg") { + playerExecutor { _, args -> + val player: Player = args[0] as Player + val message: String = args[1] as String + player.sendMessage(message) + } + } + } + requirement(of("broadcast"), { sender: CommandSender -> sender.isOp }) { // Define a new LiteralArgument("broadcast") that requires the CommandSender to be a player who is a server operator + greedyStringArgument("msg") { + playerExecutor { _, args -> + val message: String = args[0] as String + Bukkit.broadcastMessage(message) + } + } + } +} +/* ANCHOR_END: dslSendMessageToCommandRequirement */ + +/* ANCHOR: dslSendMessageToCommandRequirement2 */ +commandAPICommand("sendMessageTo") { + playerArgument("player") + greedyStringArgument("msg") + playerExecutor { _, args -> + val player: Player = args[0] as Player + val message: String = args[1] as String + player.sendMessage(message) + } +} + +commandAPICommand("sendMessageTo") { + requirement(of("broadcast"), { sender: CommandSender -> sender.isOp }) // Define a new LiteralArgument("broadcast") that requires the CommandSender to be a player who is a server operator + greedyStringArgument("msg") + playerExecutor { _, args -> + val message: String = args[0] as String + Bukkit.broadcastMessage(message) + } +} +/* ANCHOR_END: dslSendMessageToCommandRequirement2 */ + +/* ANCHOR: dslCommandRequirements */ +commandTree("commandRequirement", {sender: CommandSender -> sender.isOp}) { + playerExecutor { player, _ -> + player.sendMessage("This command can only be executed by players who are server operators.") + } +} +/* ANCHOR_END: dslCommandRequirements */ + +/* ANCHOR: dslCommandRequirements2 */ +commandAPICommand("commandRequirement", {sender: CommandSender -> sender.isOp}) { + playerExecutor { player, _ -> + player.sendMessage("This command can only be executed by players who are server operators.") + } +} +/* ANCHOR_END: dslCommandRequirements2 */ +} + +fun moreExamples() { +/* ANCHOR: optionalArgument */ +commandTree("optionalArgument") { + literalArgument("give") { + itemStackArgument("item") { + playerExecutor { player, args -> // This will let you execute "/optionalArgument give minecraft:stick" + val itemStack: ItemStack = args[0] as ItemStack + player.inventory.addItem(itemStack) + } + integerArgument("amount") { + playerExecutor { player, args -> // This will let you execute "/optionalArgument give minecraft:stick 5" + val itemStack: ItemStack = args[0] as ItemStack + val amount: Int = args[1] as Int + itemStack.amount = amount + player.inventory.addItem(itemStack) + } + } + } + } +} +/* ANCHOR_END: optionalArgument */ + +/* ANCHOR: optionalArgument2 */ +commandAPICommand("optionalArgument") { + literalArgument("give") + itemStackArgument("item") + playerExecutor { player, args -> // This will let you execute "/optionalArgument give minecraft:stick" + val itemStack: ItemStack = args[0] as ItemStack + player.inventory.addItem(itemStack) + } +} + +commandAPICommand("optionalArgument") { + literalArgument("give") + itemStackArgument("item") + integerArgument("amount") + playerExecutor { player, args -> // This will let you execute "/optionalArgument give minecraft:stick 5" + val itemStack: ItemStack = args[0] as ItemStack + val amount: Int = args[1] as Int + itemStack.amount = amount + player.inventory.addItem(itemStack) + } +} +/* ANCHOR_END: optionalArgument2 */ + +/* ANCHOR: replaceSuggestions */ +commandTree("replaceSuggestions") { + argument(StringArgument("strings").replaceSuggestions(ArgumentSuggestions.strings("one", "two", "three"))) { // Implement an argument that has suggestions + playerExecutor { player, args -> + player.sendMessage("You chose option ${args[0] as String}!") + } + } +} +/* ANCHOR_END: replaceSuggestions */ + +/* ANCHOR: replaceSuggestions2 */ +commandAPICommand("replaceSuggestions") { + argument(StringArgument("strings").replaceSuggestions(ArgumentSuggestions.strings("one", "two", "three"))) // Implement an argument that has suggestions + playerExecutor { player, args -> + player.sendMessage("You chose option ${args[0] as String}!") + } +} +/* ANCHOR_END: replaceSuggestions2 */ +} \ No newline at end of file diff --git a/docssrc/src/kotlindsl.md b/docssrc/src/kotlindsl.md index 5fde8a2683..01b7ab6137 100644 --- a/docssrc/src/kotlindsl.md +++ b/docssrc/src/kotlindsl.md @@ -19,11 +19,11 @@ We can then use the following command registration:

```kotlin,CommandTree -{{#include ../../commandapi-kotlin/src/test/kotlin/Examples.kt:dslSendMessageToCommand}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommand}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-kotlin/src/test/kotlin/Examples.kt:dslSendMessageToCommand2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommand2}} ```
@@ -95,11 +95,11 @@ Below, the `sendMessageTo` command is adding a broadcast option which should onl
```kotlin,CommandTree -{{#include ../../commandapi-kotlin/src/test/kotlin/Examples.kt:dslSendMessageToCommandRequirement}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommandRequirement}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-kotlin/src/test/kotlin/Examples.kt:dslSendMessageToCommandRequirement2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommandRequirement2}} ```
@@ -113,11 +113,11 @@ You can also restrict the use of a whole command by using requirements:
```kotlin,CommandTree -{{#include ../../commandapi-kotlin/src/test/kotlin/Examples.kt:dslCommandRequirements}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslCommandRequirements}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-kotlin/src/test/kotlin/Examples.kt:dslCommandRequirements2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslCommandRequirements2}} ```
@@ -144,11 +144,11 @@ As with the Java method of registering commands, with a CommandTree you can decl
```kotlin,CommandTree -{{#include ../../commandapi-kotlin/src/test/kotlin/Examples.kt:optionalArgument}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:optionalArgument}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-kotlin/src/test/kotlin/Examples.kt:optionalArgument2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:optionalArgument2}} ```
@@ -170,11 +170,11 @@ We make use of the `argument()` method to provide an argument implementation and
```kotlin,CommandTree -{{#include ../../commandapi-kotlin/src/test/kotlin/Examples.kt:replaceSuggestions}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:replaceSuggestions}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-kotlin/src/test/kotlin/Examples.kt:replaceSuggestions2}} +{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:replaceSuggestions2}} ```
From 4e59ded32cb1583e6c9f23222bee33e00d4b3aea Mon Sep 17 00:00:00 2001 From: DerEchtePilz Date: Wed, 23 Nov 2022 20:37:31 +0100 Subject: [PATCH 125/638] remove commented-out arguments from the Velocity DSL --- .../kotlindsl/CommandAPICommandDSL.kt | 58 --------- .../commandapi/kotlindsl/CommandTreeDSL.kt | 116 ------------------ 2 files changed, 174 deletions(-) diff --git a/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt index 0074e0bb96..807f216912 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt +++ b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt @@ -20,13 +20,11 @@ inline fun CommandAPICommand.subcommand(name: String, command: CommandAPICommand inline fun CommandAPICommand.integerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(IntegerArgument(nodeName).apply(block)) inline fun CommandAPICommand.integerArgument(nodeName: String, min: Int, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(IntegerArgument(nodeName, min).apply(block)) inline fun CommandAPICommand.integerArgument(nodeName: String, min: Int, max: Int, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(IntegerArgument(nodeName, min, max).apply(block)) -// inline fun CommandAPICommand.integerRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(IntegerRangeArgument(nodeName).apply(block)) // Float arguments inline fun CommandAPICommand.floatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(FloatArgument(nodeName).apply(block)) inline fun CommandAPICommand.floatArgument(nodeName: String, min: Float, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(FloatArgument(nodeName, min).apply(block)) inline fun CommandAPICommand.floatArgument(nodeName: String, min: Float, max: Float, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(FloatArgument(nodeName, min, max).apply(block)) -// inline fun CommandAPICommand.floatRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(FloatRangeArgument(nodeName).apply(block)) // Double arguments inline fun CommandAPICommand.doubleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(DoubleArgument(nodeName).apply(block)) @@ -46,62 +44,6 @@ inline fun CommandAPICommand.stringArgument(nodeName: String, block: Argument<*> inline fun CommandAPICommand.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(TextArgument(nodeName).apply(block)) inline fun CommandAPICommand.greedyStringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(GreedyStringArgument(nodeName).apply(block)) -// Positional arguments - // inline fun CommandAPICommand.locationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LocationArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.locationArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LocationArgument(nodeName, locationType).apply(block)) - // inline fun CommandAPICommand.location2DArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(Location2DArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.location2DArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(Location2DArgument(nodeName, locationType).apply(block)) - // inline fun CommandAPICommand.rotationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(RotationArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.axisArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AxisArgument(nodeName).apply(block)) - -// Chat arguments - // inline fun CommandAPICommand.chatColorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ChatColorArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.chatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ChatComponentArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.chatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ChatArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.adventureChatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AdventureChatComponentArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AdventureChatArgument(nodeName).apply(block)) - -// Entity & Player arguments - // inline fun CommandAPICommand.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntitySelectorArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntitySelectorArgument(nodeName, entitySelector).apply(block)) - // inline fun CommandAPICommand.playerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(PlayerArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.offlinePlayerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(OfflinePlayerArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntityTypeArgument(nodeName).apply(block)) - -// Scoreboard arguments - // inline fun CommandAPICommand.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ScoreHolderArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) - // inline fun CommandAPICommand.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ScoreboardSlotArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ObjectiveArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ObjectiveCriteriaArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.teamArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(TeamArgument(nodeName).apply(block)) - -// Miscellaneous arguments - // inline fun CommandAPICommand.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AngleArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AdvancementArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(BiomeArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.blockStateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(BlockStateArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(CommandArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EnchantmentArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EnvironmentArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ItemStackArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LootTableArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(MathOperationArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.namespacedKeyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(NamespacedKeyArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ParticleArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(PotionEffectArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(RecipeArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(SoundArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(TimeArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(UUIDArgument(nodeName).apply(block)) - -// Predicate arguments - // inline fun CommandAPICommand.blockPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(BlockPredicateArgument(nodeName).apply(block)) - // inline fun CommandAPICommand.itemStackPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ItemStackPredicateArgument(nodeName).apply(block)) - -// NBT arguments - // inline fun CommandAPICommand.nbtCompoundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(NBTCompoundArgument(nodeName).apply(block)) - // Literal arguments inline fun CommandAPICommand.literalArgument(literal: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LiteralArgument.of(literal).apply(block)) inline fun CommandAPICommand.multiLiteralArgument(vararg literals: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(MultiLiteralArgument(*literals).apply(block)) diff --git a/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt index 4272f387ad..507a905ad1 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt +++ b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt @@ -18,13 +18,11 @@ inline fun CommandTree.argument(base: Argument<*>, block: Argument<*>.() -> Unit inline fun CommandTree.integerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName).apply(block)) inline fun CommandTree.integerArgument(nodeName: String, min: Int, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName, min).apply(block)) inline fun CommandTree.integerArgument(nodeName: String, min: Int, max: Int, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName, min, max).apply(block)) -// inline fun CommandTree.integerRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(IntegerRangeArgument(nodeName).apply(block)) // Float arguments inline fun CommandTree.floatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName).apply(block)) inline fun CommandTree.floatArgument(nodeName: String, min: Float, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName, min).apply(block)) inline fun CommandTree.floatArgument(nodeName: String, min: Float, max: Float, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName, min, max).apply(block)) -// inline fun CommandTree.floatRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(FloatRangeArgument(nodeName).apply(block)) // Double arguments inline fun CommandTree.doubleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName).apply(block)) @@ -44,62 +42,6 @@ inline fun CommandTree.stringArgument(nodeName: String, block: Argument<*>.() -> inline fun CommandTree.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TextArgument(nodeName).apply(block)) inline fun CommandTree.greedyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(GreedyStringArgument(nodeName).apply(block)) -// Positional arguments -// inline fun CommandTree.locationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LocationArgument(nodeName).apply(block)) -// inline fun CommandTree.locationArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): CommandTree = then(LocationArgument(nodeName, locationType).apply(block)) -// inline fun CommandTree.location2DArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(Location2DArgument(nodeName).apply(block)) -// inline fun CommandTree.location2DArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): CommandTree = then(Location2DArgument(nodeName, locationType).apply(block)) -// inline fun CommandTree.rotationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(RotationArgument(nodeName).apply(block)) -// inline fun CommandTree.axisArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AxisArgument(nodeName).apply(block)) - -// Chat arguments -// inline fun CommandTree.chatColorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ChatColorArgument(nodeName).apply(block)) -// inline fun CommandTree.chatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ChatComponentArgument(nodeName).apply(block)) -// inline fun CommandTree.chatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ChatArgument(nodeName).apply(block)) -// inline fun CommandTree.adventureChatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdventureChatComponentArgument(nodeName).apply(block)) -// inline fun CommandTree.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdventureChatArgument(nodeName).apply(block)) - -// Entity & Player arguments -// inline fun CommandTree.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName).apply(block)) -// inline fun CommandTree.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) -// inline fun CommandTree.playerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(PlayerArgument(nodeName).apply(block)) -// inline fun CommandTree.offlinePlayerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(OfflinePlayerArgument(nodeName).apply(block)) -// inline fun CommandTree.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntityTypeArgument(nodeName).apply(block)) - -// Scoreboard arguments -// inline fun CommandTree.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName).apply(block)) -// inline fun CommandTree.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) -// inline fun CommandTree.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreboardSlotArgument(nodeName).apply(block)) -// inline fun CommandTree.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ObjectiveArgument(nodeName).apply(block)) -// inline fun CommandTree.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ObjectiveCriteriaArgument(nodeName).apply(block)) -// inline fun CommandTree.teamArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TeamArgument(nodeName).apply(block)) - -// Miscellaneous arguments -// inline fun CommandTree.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AngleArgument(nodeName).apply(block)) -// inline fun CommandTree.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdvancementArgument(nodeName).apply(block)) -// inline fun CommandTree.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BiomeArgument(nodeName).apply(block)) -// inline fun CommandTree.blockStateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BlockStateArgument(nodeName).apply(block)) -// inline fun CommandTree.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(CommandArgument(nodeName).apply(block)) -// inline fun CommandTree.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EnchantmentArgument(nodeName).apply(block)) -// inline fun CommandTree.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EnvironmentArgument(nodeName).apply(block)) -// inline fun CommandTree.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ItemStackArgument(nodeName).apply(block)) -// inline fun CommandTree.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LootTableArgument(nodeName).apply(block)) -// inline fun CommandTree.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(MathOperationArgument(nodeName).apply(block)) -// inline fun CommandTree.namespacedKeyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(NamespacedKeyArgument(nodeName).apply(block)) -// inline fun CommandTree.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ParticleArgument(nodeName).apply(block)) -// inline fun CommandTree.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(PotionEffectArgument(nodeName).apply(block)) -// inline fun CommandTree.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(RecipeArgument(nodeName).apply(block)) -// inline fun CommandTree.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName).apply(block)) -// inline fun CommandTree.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TimeArgument(nodeName).apply(block)) -// inline fun CommandTree.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(UUIDArgument(nodeName).apply(block)) - -// Predicate arguments -// inline fun CommandTree.blockPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BlockPredicateArgument(nodeName).apply(block)) -// inline fun CommandTree.itemStackPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ItemStackPredicateArgument(nodeName).apply(block)) - -// NBT arguments -// inline fun CommandTree.nbtCompoundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(NBTCompoundArgument(nodeName).apply(block)) - // Literal arguments inline fun CommandTree.literalArgument(literal: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LiteralArgument.of(literal).apply(block)) inline fun CommandTree.multiLiteralArgument(vararg literals: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(MultiLiteralArgument(*literals).apply(block)) @@ -112,13 +54,11 @@ inline fun Argument<*>.argument(base: Argument<*>, block: Argument<*>.() -> Unit inline fun Argument<*>.integerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerArgument(nodeName).apply(block)) inline fun Argument<*>.integerArgument(nodeName: String, min: Int, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerArgument(nodeName, min).apply(block)) inline fun Argument<*>.integerArgument(nodeName: String, min: Int, max: Int, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerArgument(nodeName, min, max).apply(block)) -// inline fun Argument<*>.integerRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(IntegerRangeArgument(nodeName).apply(block)) // Float arguments inline fun Argument<*>.floatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatArgument(nodeName).apply(block)) inline fun Argument<*>.floatArgument(nodeName: String, min: Float, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatArgument(nodeName, min).apply(block)) inline fun Argument<*>.floatArgument(nodeName: String, min: Float, max: Float, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatArgument(nodeName, min, max).apply(block)) -// inline fun Argument<*>.floatRangeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(FloatRangeArgument(nodeName).apply(block)) // Double arguments inline fun Argument<*>.doubleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(DoubleArgument(nodeName).apply(block)) @@ -138,62 +78,6 @@ inline fun Argument<*>.stringArgument(nodeName: String, block: Argument<*>.() -> inline fun Argument<*>.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TextArgument(nodeName).apply(block)) inline fun Argument<*>.greedyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(GreedyStringArgument(nodeName).apply(block)) -// Positional arguments -// inline fun Argument<*>.locationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LocationArgument(nodeName).apply(block)) -// inline fun Argument<*>.locationArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LocationArgument(nodeName, locationType).apply(block)) -// inline fun Argument<*>.location2DArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(Location2DArgument(nodeName).apply(block)) -// inline fun Argument<*>.location2DArgument(nodeName: String, locationType: LocationType, block: Argument<*>.() -> Unit = {}): Argument<*> = then(Location2DArgument(nodeName, locationType).apply(block)) -// inline fun Argument<*>.rotationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(RotationArgument(nodeName).apply(block)) -// inline fun Argument<*>.axisArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AxisArgument(nodeName).apply(block)) - -// Chat arguments -// inline fun Argument<*>.chatColorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ChatColorArgument(nodeName).apply(block)) -// inline fun Argument<*>.chatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ChatComponentArgument(nodeName).apply(block)) -// inline fun Argument<*>.chatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ChatArgument(nodeName).apply(block)) -// inline fun Argument<*>.adventureChatComponentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdventureChatComponentArgument(nodeName).apply(block)) -// inline fun Argument<*>.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdventureChatArgument(nodeName).apply(block)) - -// Entity & Player arguments -// inline fun Argument<*>.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument(nodeName).apply(block)) -// inline fun Argument<*>.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) -// inline fun Argument<*>.playerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(PlayerArgument(nodeName).apply(block)) -// inline fun Argument<*>.offlinePlayerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(OfflinePlayerArgument(nodeName).apply(block)) -// inline fun Argument<*>.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntityTypeArgument(nodeName).apply(block)) - -// Scoreboard arguments -// inline fun Argument<*>.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument(nodeName).apply(block)) -// inline fun Argument<*>.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) -// inline fun Argument<*>.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreboardSlotArgument(nodeName).apply(block)) -// inline fun Argument<*>.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ObjectiveArgument(nodeName).apply(block)) -// inline fun Argument<*>.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ObjectiveCriteriaArgument(nodeName).apply(block)) -// inline fun Argument<*>.teamArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TeamArgument(nodeName).apply(block)) - -// Miscellaneous arguments -// inline fun Argument<*>.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AngleArgument(nodeName).apply(block)) -// inline fun Argument<*>.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdvancementArgument(nodeName).apply(block)) -// inline fun Argument<*>.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BiomeArgument(nodeName).apply(block)) -// inline fun Argument<*>.blockStateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BlockStateArgument(nodeName).apply(block)) -// inline fun Argument<*>.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(CommandArgument(nodeName).apply(block)) -// inline fun Argument<*>.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EnchantmentArgument(nodeName).apply(block)) -// inline fun Argument<*>.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EnvironmentArgument(nodeName).apply(block)) -// inline fun Argument<*>.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ItemStackArgument(nodeName).apply(block)) -// inline fun Argument<*>.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LootTableArgument(nodeName).apply(block)) -// inline fun Argument<*>.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(MathOperationArgument(nodeName).apply(block)) -// inline fun Argument<*>.namespacedKeyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(NamespacedKeyArgument(nodeName).apply(block)) -// inline fun Argument<*>.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ParticleArgument(nodeName).apply(block)) -// inline fun Argument<*>.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(PotionEffectArgument(nodeName).apply(block)) -// inline fun Argument<*>.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(RecipeArgument(nodeName).apply(block)) -// inline fun Argument<*>.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(SoundArgument(nodeName).apply(block)) -// inline fun Argument<*>.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TimeArgument(nodeName).apply(block)) -// inline fun Argument<*>.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(UUIDArgument(nodeName).apply(block)) - -// Predicate arguments -// inline fun Argument<*>.blockPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BlockPredicateArgument(nodeName).apply(block)) -// inline fun Argument<*>.itemStackPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ItemStackPredicateArgument(nodeName).apply(block)) - -// NBT arguments -// inline fun Argument<*>.nbtCompoundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(NBTCompoundArgument(nodeName).apply(block)) - // Literal arguments inline fun Argument<*>.literalArgument(literal: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LiteralArgument.of(literal).apply(block)) inline fun Argument<*>.multiLiteralArgument(vararg literals: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(MultiLiteralArgument(*literals).apply(block)) From 091f80ea47ad61d3a1c0e949923118d747c2ca9e Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 15:05:17 -0500 Subject: [PATCH 126/638] Update examples added from dev/dev merge --- examples/{ => bukkit}/commandtrees/README.md | 0 examples/{ => bukkit}/commandtrees/pom.xml | 0 .../jorelali/BetterBossBarsCommand.java | 0 .../main/java/io/github/jorelali/Main.java | 0 .../src/main/resources/plugin.yml | 0 .../main/java/io/github/jorelali/Main.java | 1 + .../java/io/github/jorelali/WarpCommand.java} | 2 +- examples/maven-shaded-annotations/README.md | 3 - examples/maven-shaded-annotations/pom.xml | 85 ------------------- .../main/java/io/github/jorelali/Main.java | 26 ------ .../src/main/resources/plugin.yml | 6 -- 11 files changed, 2 insertions(+), 121 deletions(-) rename examples/{ => bukkit}/commandtrees/README.md (100%) rename examples/{ => bukkit}/commandtrees/pom.xml (100%) rename examples/{ => bukkit}/commandtrees/src/main/java/io/github/jorelali/BetterBossBarsCommand.java (100%) rename examples/{ => bukkit}/commandtrees/src/main/java/io/github/jorelali/Main.java (100%) rename examples/{ => bukkit}/commandtrees/src/main/resources/plugin.yml (100%) rename examples/{maven-shaded-annotations/src/main/java/io/github/jorelali/TestCommand.java => bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/WarpCommand.java} (98%) delete mode 100644 examples/maven-shaded-annotations/README.md delete mode 100644 examples/maven-shaded-annotations/pom.xml delete mode 100644 examples/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java delete mode 100644 examples/maven-shaded-annotations/src/main/resources/plugin.yml diff --git a/examples/commandtrees/README.md b/examples/bukkit/commandtrees/README.md similarity index 100% rename from examples/commandtrees/README.md rename to examples/bukkit/commandtrees/README.md diff --git a/examples/commandtrees/pom.xml b/examples/bukkit/commandtrees/pom.xml similarity index 100% rename from examples/commandtrees/pom.xml rename to examples/bukkit/commandtrees/pom.xml diff --git a/examples/commandtrees/src/main/java/io/github/jorelali/BetterBossBarsCommand.java b/examples/bukkit/commandtrees/src/main/java/io/github/jorelali/BetterBossBarsCommand.java similarity index 100% rename from examples/commandtrees/src/main/java/io/github/jorelali/BetterBossBarsCommand.java rename to examples/bukkit/commandtrees/src/main/java/io/github/jorelali/BetterBossBarsCommand.java diff --git a/examples/commandtrees/src/main/java/io/github/jorelali/Main.java b/examples/bukkit/commandtrees/src/main/java/io/github/jorelali/Main.java similarity index 100% rename from examples/commandtrees/src/main/java/io/github/jorelali/Main.java rename to examples/bukkit/commandtrees/src/main/java/io/github/jorelali/Main.java diff --git a/examples/commandtrees/src/main/resources/plugin.yml b/examples/bukkit/commandtrees/src/main/resources/plugin.yml similarity index 100% rename from examples/commandtrees/src/main/resources/plugin.yml rename to examples/bukkit/commandtrees/src/main/resources/plugin.yml diff --git a/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java index 1ab9cf41bf..acc5eda820 100644 --- a/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java +++ b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java @@ -32,5 +32,6 @@ public void onEnable() { // Register commands using a reference to their class CommandAPI.registerCommand(BreakCommand.class); CommandAPI.registerCommand(EffectCommand.class); + CommandAPI.registerCommand(WarpCommand.class) } } diff --git a/examples/maven-shaded-annotations/src/main/java/io/github/jorelali/TestCommand.java b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/WarpCommand.java similarity index 98% rename from examples/maven-shaded-annotations/src/main/java/io/github/jorelali/TestCommand.java rename to examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/WarpCommand.java index 0c5a272d2c..b41148f71e 100644 --- a/examples/maven-shaded-annotations/src/main/java/io/github/jorelali/TestCommand.java +++ b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/WarpCommand.java @@ -18,7 +18,7 @@ @Command("warp") @Help(value = "Manages all warps on the server", shortDescription = "Manages warps") -public class TestCommand { +public class WarpCommand { // List of warp names and their locations static Map warps = new HashMap<>(); diff --git a/examples/maven-shaded-annotations/README.md b/examples/maven-shaded-annotations/README.md deleted file mode 100644 index 40c2d375a8..0000000000 --- a/examples/maven-shaded-annotations/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# maven-shaded-annotations - -(Coming soon) diff --git a/examples/maven-shaded-annotations/pom.xml b/examples/maven-shaded-annotations/pom.xml deleted file mode 100644 index 6e61297098..0000000000 --- a/examples/maven-shaded-annotations/pom.xml +++ /dev/null @@ -1,85 +0,0 @@ - - 4.0.0 - dev.jorel - maven-shaded-annotations - 0.0.1-SNAPSHOT - - - UTF-8 - - - - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - - - - dev.jorel - commandapi-shade - 8.5.1 - - - dev.jorel - commandapi-annotations - 8.5.1 - provided - - - - - org.spigotmc - spigot-api - 1.19-R0.1-SNAPSHOT - provided - - - - - clean package - - - maven-compiler-plugin - 3.8.1 - - 16 - - - dev.jorel - commandapi-annotations - 8.5.1 - - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.3.0 - - - shade - package - - shade - - - - - false - false - - - dev.jorel.commandapi - - my.custom.package.commandapi - - - - - - - \ No newline at end of file diff --git a/examples/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java b/examples/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java deleted file mode 100644 index b04bb8883f..0000000000 --- a/examples/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.github.jorelali; - -import org.bukkit.plugin.java.JavaPlugin; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIConfig; - -public class Main extends JavaPlugin { - - @Override - public void onLoad() { - CommandAPI.onLoad(new CommandAPIConfig().verboseOutput(true)); - } - - @Override - public void onEnable() { - CommandAPI.onEnable(this); - CommandAPI.registerCommand(TestCommand.class); - } - - @Override - public void onDisable() { - CommandAPI.onDisable(); - } - -} diff --git a/examples/maven-shaded-annotations/src/main/resources/plugin.yml b/examples/maven-shaded-annotations/src/main/resources/plugin.yml deleted file mode 100644 index b57b948be8..0000000000 --- a/examples/maven-shaded-annotations/src/main/resources/plugin.yml +++ /dev/null @@ -1,6 +0,0 @@ -name: Example Plugin -main: io.github.jorelali.Main -version: 0.0.1 -author: Skepter -website: https://www.jorel.dev/CommandAPI/ -api-version: 1.13 \ No newline at end of file From e96102888f5d861ae7e864952b023a3efb0d249b Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 15:12:10 -0500 Subject: [PATCH 127/638] Hotfix GitHub Actions build to build bukkit examples correctly --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ed27fedcbd..12bb189cd5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,4 +57,6 @@ jobs: !commandapi-shade/target/*sources.jar !commandapi-shade/target/*javadoc.jar - name: build CommandAPI examples in examples/ - run: for folder in examples/*/; do ( cd $folder; mvn clean package ); done + # TODO: Can this be a recursive scan through the examples folder, where directories + # without a pom.xml get their subdirectories looped through, while directories with a pom.xml get built? + run: for folder in examples/bukkit/*/; do ( cd $folder; mvn clean package ); done From 86070f8b22d3e2c6e7d6c1343467191754a7b0f7 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 15:15:26 -0500 Subject: [PATCH 128/638] Update commandtrees example project to use 9.0.0 --- examples/bukkit/commandtrees/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/bukkit/commandtrees/pom.xml b/examples/bukkit/commandtrees/pom.xml index 00a367f55d..3e2666d2a3 100644 --- a/examples/bukkit/commandtrees/pom.xml +++ b/examples/bukkit/commandtrees/pom.xml @@ -20,7 +20,7 @@ dev.jorel commandapi-core - 8.5.1 + 9.0.0-SNAPSHOT From 732dfaf22571e0176f8e389bb41c14eca2738079 Mon Sep 17 00:00:00 2001 From: DerEchtePilz Date: Wed, 23 Nov 2022 21:17:57 +0100 Subject: [PATCH 129/638] update pom.xml for Kotlin DSL examples --- examples/kotlindsl/pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/kotlindsl/pom.xml b/examples/kotlindsl/pom.xml index 0705bbcfc3..90547b767d 100644 --- a/examples/kotlindsl/pom.xml +++ b/examples/kotlindsl/pom.xml @@ -20,14 +20,14 @@ dev.jorel - commandapi-kotlin - 8.6.0-SNAPSHOT + commandapi-kotlin-bukkit + 9.0.0-SNAPSHOT dev.jorel - commandapi-core - 8.6.0-SNAPSHOT + commandapi-bukkit-core + 9.0.0-SNAPSHOT provided From cb1c84ae8fc941345d90f4d6f450e9714ba2b836 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 15:25:05 -0500 Subject: [PATCH 130/638] Fix more pom errors in examples --- examples/bukkit/commandtrees/pom.xml | 2 +- examples/bukkit/maven-shaded-annotations/pom.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/bukkit/commandtrees/pom.xml b/examples/bukkit/commandtrees/pom.xml index 3e2666d2a3..3ccb59f205 100644 --- a/examples/bukkit/commandtrees/pom.xml +++ b/examples/bukkit/commandtrees/pom.xml @@ -19,7 +19,7 @@ dev.jorel - commandapi-core + commandapi-bukkit-core 9.0.0-SNAPSHOT diff --git a/examples/bukkit/maven-shaded-annotations/pom.xml b/examples/bukkit/maven-shaded-annotations/pom.xml index 53db70473f..f7c58fe82e 100644 --- a/examples/bukkit/maven-shaded-annotations/pom.xml +++ b/examples/bukkit/maven-shaded-annotations/pom.xml @@ -65,8 +65,8 @@ 8.5.1 - 8 - 8 + 16 + 16 From 9ad583b6f21c0c5a93d1b33b64d6a72504b24908 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 15:28:21 -0500 Subject: [PATCH 131/638] Move kotlin-dsl example into bukkit folder --- examples/{ => bukkit}/kotlindsl/README.md | 0 examples/{ => bukkit}/kotlindsl/pom.xml | 0 .../kotlindsl/src/main/kotlin/io/github/jorelali/Main.kt | 0 .../src/main/kotlin/io/github/jorelali/SayHelloCommand.kt | 0 examples/{ => bukkit}/kotlindsl/src/main/resources/plugin.yml | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename examples/{ => bukkit}/kotlindsl/README.md (100%) rename examples/{ => bukkit}/kotlindsl/pom.xml (100%) rename examples/{ => bukkit}/kotlindsl/src/main/kotlin/io/github/jorelali/Main.kt (100%) rename examples/{ => bukkit}/kotlindsl/src/main/kotlin/io/github/jorelali/SayHelloCommand.kt (100%) rename examples/{ => bukkit}/kotlindsl/src/main/resources/plugin.yml (100%) diff --git a/examples/kotlindsl/README.md b/examples/bukkit/kotlindsl/README.md similarity index 100% rename from examples/kotlindsl/README.md rename to examples/bukkit/kotlindsl/README.md diff --git a/examples/kotlindsl/pom.xml b/examples/bukkit/kotlindsl/pom.xml similarity index 100% rename from examples/kotlindsl/pom.xml rename to examples/bukkit/kotlindsl/pom.xml diff --git a/examples/kotlindsl/src/main/kotlin/io/github/jorelali/Main.kt b/examples/bukkit/kotlindsl/src/main/kotlin/io/github/jorelali/Main.kt similarity index 100% rename from examples/kotlindsl/src/main/kotlin/io/github/jorelali/Main.kt rename to examples/bukkit/kotlindsl/src/main/kotlin/io/github/jorelali/Main.kt diff --git a/examples/kotlindsl/src/main/kotlin/io/github/jorelali/SayHelloCommand.kt b/examples/bukkit/kotlindsl/src/main/kotlin/io/github/jorelali/SayHelloCommand.kt similarity index 100% rename from examples/kotlindsl/src/main/kotlin/io/github/jorelali/SayHelloCommand.kt rename to examples/bukkit/kotlindsl/src/main/kotlin/io/github/jorelali/SayHelloCommand.kt diff --git a/examples/kotlindsl/src/main/resources/plugin.yml b/examples/bukkit/kotlindsl/src/main/resources/plugin.yml similarity index 100% rename from examples/kotlindsl/src/main/resources/plugin.yml rename to examples/bukkit/kotlindsl/src/main/resources/plugin.yml From e64d0be6961d509aa8be80f80fdf62d8a4edcc6c Mon Sep 17 00:00:00 2001 From: DerEchtePilz Date: Wed, 23 Nov 2022 21:31:32 +0100 Subject: [PATCH 132/638] add a missing semicolon --- .../src/main/java/io/github/jorelali/Main.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java index acc5eda820..f04c8b38a7 100644 --- a/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java +++ b/examples/bukkit/maven-shaded-annotations/src/main/java/io/github/jorelali/Main.java @@ -32,6 +32,6 @@ public void onEnable() { // Register commands using a reference to their class CommandAPI.registerCommand(BreakCommand.class); CommandAPI.registerCommand(EffectCommand.class); - CommandAPI.registerCommand(WarpCommand.class) + CommandAPI.registerCommand(WarpCommand.class); } } From 5e92ee4f0bff9ae5cfc065fd2d6763a546634d60 Mon Sep 17 00:00:00 2001 From: DerEchtePilz Date: Wed, 23 Nov 2022 21:45:04 +0100 Subject: [PATCH 133/638] change commandapi-kotlin-bukkit packaging to jar --- .../commandapi-bukkit/commandapi-kotlin-bukkit/pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/pom.xml index 550624a367..28bc47687e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/pom.xml @@ -9,8 +9,7 @@ commandapi-bukkit 9.0.0-SNAPSHOT - - pom + commandapi-kotlin-bukkit From 64bbd263433e4c6f31a66c83a9bd099b45a01b2c Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 20:44:34 -0500 Subject: [PATCH 134/638] Build maven projects in examples folder recursively (maybe?) --- .github/workflows/build.yml | 4 +--- examples/build.sh | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 examples/build.sh diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 12bb189cd5..1335ce557f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,6 +57,4 @@ jobs: !commandapi-shade/target/*sources.jar !commandapi-shade/target/*javadoc.jar - name: build CommandAPI examples in examples/ - # TODO: Can this be a recursive scan through the examples folder, where directories - # without a pom.xml get their subdirectories looped through, while directories with a pom.xml get built? - run: for folder in examples/bukkit/*/; do ( cd $folder; mvn clean package ); done + run: ./examples/build.sh diff --git a/examples/build.sh b/examples/build.sh new file mode 100644 index 0000000000..7eedbd6899 --- /dev/null +++ b/examples/build.sh @@ -0,0 +1,14 @@ +#!/bin/sh +build() { + for folder in ./*/; do + echo $folder + cd $folder + if [ -f pom.xml ]; then + mvn clean package + else + build + fi + done +} + +build \ No newline at end of file From f91602b1a2a1aa2db0703030c07cba41aa7eb8f8 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 20:56:19 -0500 Subject: [PATCH 135/638] Give examples build script permission to run --- examples/build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/build.sh b/examples/build.sh index 7eedbd6899..0fd759efaa 100644 --- a/examples/build.sh +++ b/examples/build.sh @@ -1,4 +1,5 @@ #!/bin/sh + build() { for folder in ./*/; do echo $folder From db432f2220b210c1a313a3d9438773e25a587339 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 21:02:14 -0500 Subject: [PATCH 136/638] Actually give examples build script permission to run? --- examples/build.sh | 1 - 1 file changed, 1 deletion(-) mode change 100644 => 100755 examples/build.sh diff --git a/examples/build.sh b/examples/build.sh old mode 100644 new mode 100755 index 0fd759efaa..7eedbd6899 --- a/examples/build.sh +++ b/examples/build.sh @@ -1,5 +1,4 @@ #!/bin/sh - build() { for folder in ./*/; do echo $folder From ebd1dc2452e320cfcecf41b9d7dcb8075c3857a2 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 21:14:14 -0500 Subject: [PATCH 137/638] Make examples build actually only build example projects --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1335ce557f..df3958184b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -57,4 +57,4 @@ jobs: !commandapi-shade/target/*sources.jar !commandapi-shade/target/*javadoc.jar - name: build CommandAPI examples in examples/ - run: ./examples/build.sh + run: cd ./examples; ./build.sh; From 9c41519eb67866e3ebdc00ca0a15eb0c465c5946 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 23 Nov 2022 21:19:37 -0500 Subject: [PATCH 138/638] Fix examples build folder traversal --- examples/build.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/build.sh b/examples/build.sh index 7eedbd6899..83b1b4e265 100755 --- a/examples/build.sh +++ b/examples/build.sh @@ -8,6 +8,7 @@ build() { else build fi + cd .. done } From 3f1c76f0a151aa2c55854232578b9bdc843491cd Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 24 Nov 2022 10:39:26 -0500 Subject: [PATCH 139/638] Clean up after merge --- .../commandapi/examples/java/Examples.java | 141 ++++-------------- .../commandapi/examples/kotlin/Examples.kt | 96 ++++-------- .../arguments/ListArgumentCommon.java | 8 +- .../commandapi/arguments/WorldArgument.java | 19 ++- .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 119 +-------------- .../dev/jorel/commandapi/nms/NMS_1_13.java | 115 +------------- .../dev/jorel/commandapi/nms/NMS_1_14.java | 120 +-------------- .../dev/jorel/commandapi/nms/NMS_1_15.java | 122 +-------------- .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 130 +--------------- 9 files changed, 76 insertions(+), 794 deletions(-) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java (92%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java (79%) diff --git a/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java b/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java index 7b328df78f..2c3e1045e2 100644 --- a/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java +++ b/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java @@ -19,50 +19,40 @@ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *******************************************************************************/ -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Random; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ThreadLocalRandom; -import java.util.function.Predicate; +import com.mojang.brigadier.Message; +import com.mojang.brigadier.ParseResults; +import com.mojang.brigadier.builder.ArgumentBuilder; +import com.mojang.brigadier.context.StringRange; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.Suggestions; +import com.mojang.brigadier.tree.LiteralCommandNode; +import de.tr7zw.changeme.nbtapi.NBTContainer; import dev.jorel.commandapi.*; -import dev.jorel.commandapi.commandsenders.BukkitPlayer; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Chunk; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.NamespacedKey; -import org.bukkit.Server; -import org.bukkit.Sound; -import org.bukkit.World; +import dev.jorel.commandapi.arguments.*; +import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException; +import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder; +import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.executors.ExecutorType; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.*; +import net.kyori.adventure.inventory.Book; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; +import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.api.chat.TextComponent; +import org.bukkit.*; import org.bukkit.World.Environment; -import org.bukkit.WorldCreator; import org.bukkit.advancement.Advancement; import org.bukkit.advancement.AdvancementProgress; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.BlockState; -import org.bukkit.block.Chest; -import org.bukkit.block.Container; -import org.bukkit.block.Sign; +import org.bukkit.block.*; import org.bukkit.block.data.BlockData; import org.bukkit.command.CommandSender; import org.bukkit.command.ProxiedCommandSender; import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.ArmorStand; -import org.bukkit.entity.Entity; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.LivingEntity; -import org.bukkit.entity.Player; +import org.bukkit.entity.*; import org.bukkit.inventory.ComplexRecipe; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.Recipe; @@ -82,83 +72,10 @@ import org.bukkit.scoreboard.Team; import org.bukkit.util.EulerAngle; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.ParseResults; -import com.mojang.brigadier.builder.ArgumentBuilder; -import com.mojang.brigadier.context.StringRange; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.Suggestions; -import com.mojang.brigadier.tree.LiteralCommandNode; - -import de.tr7zw.changeme.nbtapi.NBTContainer; -import dev.jorel.commandapi.arguments.AdvancementArgument; -import dev.jorel.commandapi.arguments.AdventureChatArgument; -import dev.jorel.commandapi.arguments.AdventureChatComponentArgument; -import dev.jorel.commandapi.arguments.AngleArgument; -import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.ArgumentSuggestions; -import dev.jorel.commandapi.arguments.BiomeArgument; -import dev.jorel.commandapi.arguments.BlockPredicateArgument; -import dev.jorel.commandapi.arguments.BlockStateArgument; -import dev.jorel.commandapi.arguments.BooleanArgument; -import dev.jorel.commandapi.arguments.ChatArgument; -import dev.jorel.commandapi.arguments.ChatColorArgument; -import dev.jorel.commandapi.arguments.ChatComponentArgument; -import dev.jorel.commandapi.arguments.CustomArgument; -import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException; -import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder; -import dev.jorel.commandapi.arguments.EnchantmentArgument; -import dev.jorel.commandapi.arguments.EntitySelector; -import dev.jorel.commandapi.arguments.EntitySelectorArgument; -import dev.jorel.commandapi.arguments.EntityTypeArgument; -import dev.jorel.commandapi.arguments.EnvironmentArgument; -import dev.jorel.commandapi.arguments.FunctionArgument; -import dev.jorel.commandapi.arguments.GreedyStringArgument; -import dev.jorel.commandapi.arguments.IntegerArgument; -import dev.jorel.commandapi.arguments.IntegerRangeArgument; -import dev.jorel.commandapi.arguments.ItemStackArgument; -import dev.jorel.commandapi.arguments.ItemStackPredicateArgument; -import dev.jorel.commandapi.arguments.ListArgumentBuilder; -import dev.jorel.commandapi.arguments.LiteralArgument; -import dev.jorel.commandapi.arguments.LocationArgument; -import dev.jorel.commandapi.arguments.LocationType; -import dev.jorel.commandapi.arguments.LootTableArgument; -import dev.jorel.commandapi.arguments.MathOperationArgument; -import dev.jorel.commandapi.arguments.MultiLiteralArgument; -import dev.jorel.commandapi.arguments.NBTCompoundArgument; -import dev.jorel.commandapi.arguments.ObjectiveArgument; -import dev.jorel.commandapi.arguments.ObjectiveCriteriaArgument; -import dev.jorel.commandapi.arguments.ParticleArgument; -import dev.jorel.commandapi.arguments.PlayerArgument; -import dev.jorel.commandapi.arguments.PotionEffectArgument; -import dev.jorel.commandapi.arguments.RecipeArgument; -import dev.jorel.commandapi.arguments.RotationArgument; -import dev.jorel.commandapi.arguments.SafeSuggestions; -import dev.jorel.commandapi.arguments.ScoreHolderArgument; -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; -import dev.jorel.commandapi.arguments.ScoreboardSlotArgument; -import dev.jorel.commandapi.arguments.SoundArgument; -import dev.jorel.commandapi.arguments.StringArgument; -import dev.jorel.commandapi.arguments.TeamArgument; -import dev.jorel.commandapi.arguments.TextArgument; -import dev.jorel.commandapi.arguments.TimeArgument; -import dev.jorel.commandapi.arguments.WorldArgument; -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.executors.ExecutorType; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import net.kyori.adventure.inventory.Book; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; -import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.api.chat.TextComponent; - -// TODO: Make sure imports merged correctly +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ThreadLocalRandom; +import java.util.function.Predicate; public class Examples extends JavaPlugin { diff --git a/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt b/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt index 4e700c2655..6eac822e36 100644 --- a/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt +++ b/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt @@ -1,38 +1,36 @@ package dev.jorel.commandapi.examples.kotlin -import java.util.UUID -import java.util.concurrent.CompletableFuture -import java.util.function.Predicate - -import kotlin.random.Random - import com.mojang.brigadier.Message -import org.bukkit.Bukkit -import org.bukkit.ChatColor -import org.bukkit.GameMode -import org.bukkit.Location -import org.bukkit.Material -import org.bukkit.NamespacedKey -import org.bukkit.Server -import org.bukkit.Sound -import org.bukkit.World +import com.mojang.brigadier.ParseResults +import com.mojang.brigadier.context.StringRange +import com.mojang.brigadier.exceptions.CommandSyntaxException +import com.mojang.brigadier.suggestion.Suggestions +import com.mojang.brigadier.tree.LiteralCommandNode +import de.tr7zw.changeme.nbtapi.NBTContainer +import dev.jorel.commandapi.* +import dev.jorel.commandapi.arguments.* +import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException +import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder +import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException +import dev.jorel.commandapi.executors.* +import dev.jorel.commandapi.wrappers.* +import dev.jorel.commandapi.wrappers.Rotation +import net.kyori.adventure.inventory.Book +import net.kyori.adventure.text.Component +import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer +import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer +import net.md_5.bungee.api.chat.BaseComponent +import net.md_5.bungee.api.chat.TextComponent +import org.bukkit.* import org.bukkit.World.Environment -import org.bukkit.WorldCreator import org.bukkit.advancement.Advancement -import org.bukkit.block.Biome -import org.bukkit.block.Block -import org.bukkit.block.Chest -import org.bukkit.block.Container -import org.bukkit.block.Sign +import org.bukkit.block.* import org.bukkit.block.data.BlockData import org.bukkit.command.CommandSender import org.bukkit.command.ProxiedCommandSender import org.bukkit.enchantments.Enchantment -import org.bukkit.entity.ArmorStand -import org.bukkit.entity.Entity -import org.bukkit.entity.EntityType -import org.bukkit.entity.LivingEntity -import org.bukkit.entity.Player +import org.bukkit.entity.* import org.bukkit.inventory.ComplexRecipe import org.bukkit.inventory.ItemStack import org.bukkit.inventory.Recipe @@ -47,48 +45,10 @@ import org.bukkit.potion.PotionEffect import org.bukkit.potion.PotionEffectType import org.bukkit.scoreboard.DisplaySlot import org.bukkit.util.EulerAngle - -import com.mojang.brigadier.ParseResults -import com.mojang.brigadier.context.StringRange -import com.mojang.brigadier.exceptions.CommandSyntaxException -import com.mojang.brigadier.suggestion.Suggestions -import com.mojang.brigadier.tree.LiteralCommandNode - -import de.tr7zw.changeme.nbtapi.NBTContainer -import dev.jorel.commandapi.* -import dev.jorel.commandapi.arguments.* -import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException -import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType -import dev.jorel.commandapi.arguments.ScoreboardSlotArgument -import dev.jorel.commandapi.arguments.SoundArgument -import dev.jorel.commandapi.arguments.StringArgument -import dev.jorel.commandapi.arguments.TeamArgument -import dev.jorel.commandapi.arguments.TextArgument -import dev.jorel.commandapi.arguments.TimeArgument -import dev.jorel.commandapi.commandsenders.BukkitPlayer -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException -import dev.jorel.commandapi.executors.CommandBlockCommandExecutor -import dev.jorel.commandapi.executors.CommandExecutor -import dev.jorel.commandapi.executors.EntityCommandExecutor -import dev.jorel.commandapi.executors.ExecutorType -import dev.jorel.commandapi.executors.NativeCommandExecutor -import dev.jorel.commandapi.executors.PlayerCommandExecutor -import dev.jorel.commandapi.executors.ProxyCommandExecutor -import dev.jorel.commandapi.executors.ResultingCommandExecutor -import dev.jorel.commandapi.wrappers.FunctionWrapper -import dev.jorel.commandapi.wrappers.IntegerRange -import dev.jorel.commandapi.wrappers.MathOperation -import dev.jorel.commandapi.wrappers.ParticleData -import dev.jorel.commandapi.wrappers.Rotation -import dev.jorel.commandapi.wrappers.ScoreboardSlot -import net.kyori.adventure.inventory.Book -import net.kyori.adventure.text.Component -import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer -import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer -import net.md_5.bungee.api.chat.BaseComponent -import net.md_5.bungee.api.chat.TextComponent -// TODO: Make sure imports merged correctly +import java.util.* +import java.util.concurrent.CompletableFuture +import java.util.function.Predicate +import kotlin.random.Random class Examples : JavaPlugin() { diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java similarity index 92% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java index 9b7eb88f7a..a96d72fede 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java @@ -6,9 +6,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; +import dev.jorel.commandapi.AbstractPlatform; import dev.jorel.commandapi.IStringTooltip; import dev.jorel.commandapi.StringTooltip; -import dev.jorel.commandapi.nms.NMS; import org.bukkit.command.CommandSender; import java.util.*; @@ -102,11 +102,11 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public List parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public List parseArgument(AbstractPlatform, CommandSender, CommandListenerWrapper> nms, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the list of values which this can take Map values = new HashMap<>(); - for (T object : supplier.apply(nms.getCommandSenderFromCSS(cmdCtx.getSource()))) { + for (T object : supplier.apply(nms.getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource())) { values.put(mapper.apply(object), object); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java similarity index 79% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java index 27c2d34f3c..293bdcf2e5 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java @@ -20,15 +20,14 @@ *******************************************************************************/ package dev.jorel.commandapi.arguments; -import java.util.function.Function; - -import org.bukkit.World; - import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; +import org.bukkit.World; +import org.bukkit.command.CommandSender; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.nms.NMS; +import java.util.function.Function; /** * An argument that represents the Bukkit World object @@ -41,7 +40,7 @@ public class WorldArgument extends SafeOverrideableArgument { * @param nodeName the name of the node for this argument */ public WorldArgument(String nodeName) { - super(nodeName, CommandAPIHandler.getInstance().getNMS()._ArgumentDimension(), ((Function) World::getName).andThen(String::toLowerCase)); + super(nodeName, CommandAPIBukkit.get()._ArgumentDimension(), ((Function) World::getName).andThen(String::toLowerCase)); } @Override @@ -59,8 +58,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public World parseArgument(NMS nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return nms.getDimension(cmdCtx, key); + public World parseArgument(AbstractPlatform, CommandSender, CommandListenerWrapper> nms, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return ((CommandAPIBukkit) nms).getDimension(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index 323e160f65..04b700743d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -6,9 +6,9 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -30,29 +30,6 @@ import net.minecraft.server.v1_13_R2.CriterionConditionValue.c; import net.minecraft.server.v1_13_R2.EnumDirection.EnumAxis; import net.minecraft.server.v1_13_R2.IChatBaseComponent.ChatSerializer; -import java.io.File; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; import org.bukkit.Particle; import org.bukkit.*; import org.bukkit.World; @@ -90,98 +67,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.TimeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.exceptions.UnimplementedArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_13_R2.Advancement; -import net.minecraft.server.v1_13_R2.ArgumentBlockPredicate; -import net.minecraft.server.v1_13_R2.ArgumentChat; -import net.minecraft.server.v1_13_R2.ArgumentChatComponent; -import net.minecraft.server.v1_13_R2.ArgumentChatFormat; -import net.minecraft.server.v1_13_R2.ArgumentCriterionValue; -import net.minecraft.server.v1_13_R2.ArgumentDimension; -import net.minecraft.server.v1_13_R2.ArgumentEnchantment; -import net.minecraft.server.v1_13_R2.ArgumentEntity; -import net.minecraft.server.v1_13_R2.ArgumentEntitySummon; -import net.minecraft.server.v1_13_R2.ArgumentItemPredicate; -import net.minecraft.server.v1_13_R2.ArgumentItemStack; -import net.minecraft.server.v1_13_R2.ArgumentMathOperation; -import net.minecraft.server.v1_13_R2.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_13_R2.ArgumentMobEffect; -import net.minecraft.server.v1_13_R2.ArgumentNBTTag; -import net.minecraft.server.v1_13_R2.ArgumentParticle; -import net.minecraft.server.v1_13_R2.ArgumentPosition; -import net.minecraft.server.v1_13_R2.ArgumentProfile; -import net.minecraft.server.v1_13_R2.ArgumentRotation; -import net.minecraft.server.v1_13_R2.ArgumentRotationAxis; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardObjective; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardSlot; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardTeam; -import net.minecraft.server.v1_13_R2.ArgumentScoreholder; -import net.minecraft.server.v1_13_R2.ArgumentTag; -import net.minecraft.server.v1_13_R2.ArgumentTile; -import net.minecraft.server.v1_13_R2.ArgumentVec2; -import net.minecraft.server.v1_13_R2.ArgumentVec2I; -import net.minecraft.server.v1_13_R2.ArgumentVec3; -import net.minecraft.server.v1_13_R2.BlockPosition; -import net.minecraft.server.v1_13_R2.CommandListenerWrapper; -import net.minecraft.server.v1_13_R2.CompletionProviders; -import net.minecraft.server.v1_13_R2.CriterionConditionValue; -import net.minecraft.server.v1_13_R2.CriterionConditionValue.c; -import net.minecraft.server.v1_13_R2.CustomFunction; -import net.minecraft.server.v1_13_R2.CustomFunctionData; -import net.minecraft.server.v1_13_R2.DedicatedServer; -import net.minecraft.server.v1_13_R2.DimensionManager; -import net.minecraft.server.v1_13_R2.Entity; -import net.minecraft.server.v1_13_R2.EntityPlayer; -import net.minecraft.server.v1_13_R2.EntitySelector; -import net.minecraft.server.v1_13_R2.EnumDirection.EnumAxis; -import net.minecraft.server.v1_13_R2.IBlockData; -import net.minecraft.server.v1_13_R2.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_13_R2.ICompletionProvider; -import net.minecraft.server.v1_13_R2.IRegistry; -import net.minecraft.server.v1_13_R2.ItemStack; -import net.minecraft.server.v1_13_R2.LootTable; -import net.minecraft.server.v1_13_R2.LootTableRegistry; -import net.minecraft.server.v1_13_R2.MinecraftKey; -import net.minecraft.server.v1_13_R2.MinecraftServer; -import net.minecraft.server.v1_13_R2.ParticleParam; -import net.minecraft.server.v1_13_R2.ParticleParamBlock; -import net.minecraft.server.v1_13_R2.ParticleParamItem; -import net.minecraft.server.v1_13_R2.ParticleParamRedstone; -import net.minecraft.server.v1_13_R2.ShapeDetectorBlock; -import net.minecraft.server.v1_13_R2.Vec2F; -import net.minecraft.server.v1_13_R2.Vec3D; abstract class NMSWrapper_1_13_1 extends CommandAPIBukkit {} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index 7b3fd1e4e2..b7ad2c890f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -6,8 +6,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -25,29 +25,6 @@ import net.minecraft.server.v1_13_R1.CriterionConditionValue.c; import net.minecraft.server.v1_13_R1.EnumDirection.EnumAxis; import net.minecraft.server.v1_13_R1.IChatBaseComponent.ChatSerializer; -import java.io.File; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; import org.bukkit.Particle; import org.bukkit.*; import org.bukkit.World; @@ -85,96 +62,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.EnvironmentArgumentException; -import dev.jorel.commandapi.exceptions.TimeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.exceptions.UnimplementedArgumentException; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_13_R1.Advancement; -import net.minecraft.server.v1_13_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_13_R1.ArgumentChat; -import net.minecraft.server.v1_13_R1.ArgumentChatComponent; -import net.minecraft.server.v1_13_R1.ArgumentChatFormat; -import net.minecraft.server.v1_13_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_13_R1.ArgumentEnchantment; -import net.minecraft.server.v1_13_R1.ArgumentEntity; -import net.minecraft.server.v1_13_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_13_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_13_R1.ArgumentItemStack; -import net.minecraft.server.v1_13_R1.ArgumentMathOperation; -import net.minecraft.server.v1_13_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_13_R1.ArgumentMobEffect; -import net.minecraft.server.v1_13_R1.ArgumentNBTTag; -import net.minecraft.server.v1_13_R1.ArgumentParticle; -import net.minecraft.server.v1_13_R1.ArgumentPosition; -import net.minecraft.server.v1_13_R1.ArgumentProfile; -import net.minecraft.server.v1_13_R1.ArgumentRotation; -import net.minecraft.server.v1_13_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_13_R1.ArgumentScoreholder; -import net.minecraft.server.v1_13_R1.ArgumentTag; -import net.minecraft.server.v1_13_R1.ArgumentTile; -import net.minecraft.server.v1_13_R1.ArgumentVec2; -import net.minecraft.server.v1_13_R1.ArgumentVec3; -import net.minecraft.server.v1_13_R1.BlockPosition; -import net.minecraft.server.v1_13_R1.CommandListenerWrapper; -import net.minecraft.server.v1_13_R1.CompletionProviders; -import net.minecraft.server.v1_13_R1.CriterionConditionValue; -import net.minecraft.server.v1_13_R1.CriterionConditionValue.c; -import net.minecraft.server.v1_13_R1.CustomFunction; -import net.minecraft.server.v1_13_R1.CustomFunctionData; -import net.minecraft.server.v1_13_R1.DedicatedServer; -import net.minecraft.server.v1_13_R1.Entity; -import net.minecraft.server.v1_13_R1.EntityPlayer; -import net.minecraft.server.v1_13_R1.EntitySelector; -import net.minecraft.server.v1_13_R1.EntityTypes; -import net.minecraft.server.v1_13_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_13_R1.IBlockData; -import net.minecraft.server.v1_13_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_13_R1.ICompletionProvider; -import net.minecraft.server.v1_13_R1.ItemStack; -import net.minecraft.server.v1_13_R1.LootTable; -import net.minecraft.server.v1_13_R1.LootTableRegistry; -import net.minecraft.server.v1_13_R1.MinecraftKey; -import net.minecraft.server.v1_13_R1.MinecraftServer; -import net.minecraft.server.v1_13_R1.ParticleParam; -import net.minecraft.server.v1_13_R1.ParticleParamBlock; -import net.minecraft.server.v1_13_R1.ParticleParamItem; -import net.minecraft.server.v1_13_R1.ParticleParamRedstone; -import net.minecraft.server.v1_13_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_13_R1.Vec2F; -import net.minecraft.server.v1_13_R1.Vec3D; -// TODO: Make sure imports merged correctly /** * NMS implementation for Minecraft 1.13 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index 2eef740866..02bb760400 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -8,8 +8,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -29,31 +29,6 @@ import net.minecraft.server.v1_14_R1.*; import net.minecraft.server.v1_14_R1.EnumDirection.EnumAxis; import net.minecraft.server.v1_14_R1.IChatBaseComponent.ChatSerializer; -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; import org.bukkit.Particle; import org.bukkit.*; import org.bukkit.World; @@ -92,99 +67,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.exceptions.UnimplementedArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_14_R1.Advancement; -import net.minecraft.server.v1_14_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_14_R1.ArgumentChat; -import net.minecraft.server.v1_14_R1.ArgumentChatComponent; -import net.minecraft.server.v1_14_R1.ArgumentChatFormat; -import net.minecraft.server.v1_14_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_14_R1.ArgumentDimension; -import net.minecraft.server.v1_14_R1.ArgumentEnchantment; -import net.minecraft.server.v1_14_R1.ArgumentEntity; -import net.minecraft.server.v1_14_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_14_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_14_R1.ArgumentItemStack; -import net.minecraft.server.v1_14_R1.ArgumentMathOperation; -import net.minecraft.server.v1_14_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_14_R1.ArgumentMobEffect; -import net.minecraft.server.v1_14_R1.ArgumentNBTTag; -import net.minecraft.server.v1_14_R1.ArgumentParticle; -import net.minecraft.server.v1_14_R1.ArgumentPosition; -import net.minecraft.server.v1_14_R1.ArgumentProfile; -import net.minecraft.server.v1_14_R1.ArgumentRegistry; -import net.minecraft.server.v1_14_R1.ArgumentRotation; -import net.minecraft.server.v1_14_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_14_R1.ArgumentScoreholder; -import net.minecraft.server.v1_14_R1.ArgumentTag; -import net.minecraft.server.v1_14_R1.ArgumentTile; -import net.minecraft.server.v1_14_R1.ArgumentTime; -import net.minecraft.server.v1_14_R1.ArgumentVec2; -import net.minecraft.server.v1_14_R1.ArgumentVec2I; -import net.minecraft.server.v1_14_R1.ArgumentVec3; -import net.minecraft.server.v1_14_R1.BlockPosition; -import net.minecraft.server.v1_14_R1.BlockPosition2D; -import net.minecraft.server.v1_14_R1.CommandListenerWrapper; -import net.minecraft.server.v1_14_R1.CompletionProviders; -import net.minecraft.server.v1_14_R1.CriterionConditionValue; -import net.minecraft.server.v1_14_R1.CustomFunction; -import net.minecraft.server.v1_14_R1.CustomFunctionData; -import net.minecraft.server.v1_14_R1.DimensionManager; -import net.minecraft.server.v1_14_R1.Entity; -import net.minecraft.server.v1_14_R1.EntityPlayer; -import net.minecraft.server.v1_14_R1.EntitySelector; -import net.minecraft.server.v1_14_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_14_R1.IBlockData; -import net.minecraft.server.v1_14_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_14_R1.ICompletionProvider; -import net.minecraft.server.v1_14_R1.IRegistry; -import net.minecraft.server.v1_14_R1.ItemStack; -import net.minecraft.server.v1_14_R1.MinecraftKey; -import net.minecraft.server.v1_14_R1.MinecraftServer; -import net.minecraft.server.v1_14_R1.ParticleParam; -import net.minecraft.server.v1_14_R1.ParticleParamBlock; -import net.minecraft.server.v1_14_R1.ParticleParamItem; -import net.minecraft.server.v1_14_R1.ParticleParamRedstone; -import net.minecraft.server.v1_14_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_14_R1.Vec2F; -import net.minecraft.server.v1_14_R1.Vec3D; -// TODO: Make sure imports merged correctly /** * NMS implementation for Minecraft 1.14, 1.14.1 and 1.14.2 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index 53578ccc61..dc67320ca2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -8,8 +8,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -29,31 +29,6 @@ import net.minecraft.server.v1_15_R1.*; import net.minecraft.server.v1_15_R1.EnumDirection.EnumAxis; import net.minecraft.server.v1_15_R1.IChatBaseComponent.ChatSerializer; -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; import org.bukkit.Particle; import org.bukkit.*; import org.bukkit.World; @@ -92,101 +67,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.exceptions.UnimplementedArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_15_R1.Advancement; -import net.minecraft.server.v1_15_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_15_R1.ArgumentChat; -import net.minecraft.server.v1_15_R1.ArgumentChatComponent; -import net.minecraft.server.v1_15_R1.ArgumentChatFormat; -import net.minecraft.server.v1_15_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_15_R1.ArgumentDimension; -import net.minecraft.server.v1_15_R1.ArgumentEnchantment; -import net.minecraft.server.v1_15_R1.ArgumentEntity; -import net.minecraft.server.v1_15_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_15_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_15_R1.ArgumentItemStack; -import net.minecraft.server.v1_15_R1.ArgumentMathOperation; -import net.minecraft.server.v1_15_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_15_R1.ArgumentMobEffect; -import net.minecraft.server.v1_15_R1.ArgumentNBTTag; -import net.minecraft.server.v1_15_R1.ArgumentParticle; -import net.minecraft.server.v1_15_R1.ArgumentPosition; -import net.minecraft.server.v1_15_R1.ArgumentProfile; -import net.minecraft.server.v1_15_R1.ArgumentRegistry; -import net.minecraft.server.v1_15_R1.ArgumentRotation; -import net.minecraft.server.v1_15_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_15_R1.ArgumentScoreholder; -import net.minecraft.server.v1_15_R1.ArgumentTag; -import net.minecraft.server.v1_15_R1.ArgumentTile; -import net.minecraft.server.v1_15_R1.ArgumentTime; -import net.minecraft.server.v1_15_R1.ArgumentVec2; -import net.minecraft.server.v1_15_R1.ArgumentVec2I; -import net.minecraft.server.v1_15_R1.ArgumentVec3; -import net.minecraft.server.v1_15_R1.BlockPosition; -import net.minecraft.server.v1_15_R1.BlockPosition2D; -import net.minecraft.server.v1_15_R1.CommandListenerWrapper; -import net.minecraft.server.v1_15_R1.CompletionProviders; -import net.minecraft.server.v1_15_R1.CriterionConditionValue; -import net.minecraft.server.v1_15_R1.CustomFunction; -import net.minecraft.server.v1_15_R1.CustomFunctionData; -import net.minecraft.server.v1_15_R1.DimensionManager; -import net.minecraft.server.v1_15_R1.Entity; -import net.minecraft.server.v1_15_R1.EntityPlayer; -import net.minecraft.server.v1_15_R1.EntitySelector; -import net.minecraft.server.v1_15_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_15_R1.IBlockData; -import net.minecraft.server.v1_15_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_15_R1.ICompletionProvider; -import net.minecraft.server.v1_15_R1.IRecipe; -import net.minecraft.server.v1_15_R1.IRegistry; -import net.minecraft.server.v1_15_R1.ItemStack; -import net.minecraft.server.v1_15_R1.MinecraftKey; -import net.minecraft.server.v1_15_R1.MinecraftServer; -import net.minecraft.server.v1_15_R1.ParticleParam; -import net.minecraft.server.v1_15_R1.ParticleParamBlock; -import net.minecraft.server.v1_15_R1.ParticleParamItem; -import net.minecraft.server.v1_15_R1.ParticleParamRedstone; -import net.minecraft.server.v1_15_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_15_R1.Vec2F; -import net.minecraft.server.v1_15_R1.Vec3D; -// TODO: Make sure imports merged correctly /** * NMS implementation for Minecraft 1.15, 1.15.1 and 1.15.2 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index bd998431e6..e9c3a916a6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -9,8 +9,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -28,36 +28,6 @@ import net.minecraft.server.v1_16_R1.*; import net.minecraft.server.v1_16_R1.EnumDirection.EnumAxis; import net.minecraft.server.v1_16_R1.IChatBaseComponent.ChatSerializer; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; import org.bukkit.Particle; import org.bukkit.*; import org.bukkit.World; @@ -88,103 +58,6 @@ import org.bukkit.inventory.Recipe; import org.bukkit.potion.PotionEffectType; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_16_R1.Advancement; -import net.minecraft.server.v1_16_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_16_R1.ArgumentChat; -import net.minecraft.server.v1_16_R1.ArgumentChatComponent; -import net.minecraft.server.v1_16_R1.ArgumentChatFormat; -import net.minecraft.server.v1_16_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_16_R1.ArgumentDimension; -import net.minecraft.server.v1_16_R1.ArgumentEnchantment; -import net.minecraft.server.v1_16_R1.ArgumentEntity; -import net.minecraft.server.v1_16_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_16_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_16_R1.ArgumentItemStack; -import net.minecraft.server.v1_16_R1.ArgumentMathOperation; -import net.minecraft.server.v1_16_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_16_R1.ArgumentMobEffect; -import net.minecraft.server.v1_16_R1.ArgumentNBTTag; -import net.minecraft.server.v1_16_R1.ArgumentParticle; -import net.minecraft.server.v1_16_R1.ArgumentPosition; -import net.minecraft.server.v1_16_R1.ArgumentProfile; -import net.minecraft.server.v1_16_R1.ArgumentRegistry; -import net.minecraft.server.v1_16_R1.ArgumentRotation; -import net.minecraft.server.v1_16_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_16_R1.ArgumentScoreholder; -import net.minecraft.server.v1_16_R1.ArgumentTag; -import net.minecraft.server.v1_16_R1.ArgumentTile; -import net.minecraft.server.v1_16_R1.ArgumentTime; -import net.minecraft.server.v1_16_R1.ArgumentUUID; -import net.minecraft.server.v1_16_R1.ArgumentVec2; -import net.minecraft.server.v1_16_R1.ArgumentVec2I; -import net.minecraft.server.v1_16_R1.ArgumentVec3; -import net.minecraft.server.v1_16_R1.BlockPosition; -import net.minecraft.server.v1_16_R1.BlockPosition2D; -import net.minecraft.server.v1_16_R1.CommandListenerWrapper; -import net.minecraft.server.v1_16_R1.CompletionProviders; -import net.minecraft.server.v1_16_R1.CriterionConditionValue; -import net.minecraft.server.v1_16_R1.CustomFunction; -import net.minecraft.server.v1_16_R1.CustomFunctionData; -import net.minecraft.server.v1_16_R1.CustomFunctionManager; -import net.minecraft.server.v1_16_R1.DataPackResources; -import net.minecraft.server.v1_16_R1.Entity; -import net.minecraft.server.v1_16_R1.EntityPlayer; -import net.minecraft.server.v1_16_R1.EntitySelector; -import net.minecraft.server.v1_16_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_16_R1.IBlockData; -import net.minecraft.server.v1_16_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_16_R1.ICompletionProvider; -import net.minecraft.server.v1_16_R1.IRecipe; -import net.minecraft.server.v1_16_R1.IRegistry; -import net.minecraft.server.v1_16_R1.IReloadableResourceManager; -import net.minecraft.server.v1_16_R1.ItemStack; -import net.minecraft.server.v1_16_R1.MinecraftKey; -import net.minecraft.server.v1_16_R1.MinecraftServer; -import net.minecraft.server.v1_16_R1.ParticleParam; -import net.minecraft.server.v1_16_R1.ParticleParamBlock; -import net.minecraft.server.v1_16_R1.ParticleParamItem; -import net.minecraft.server.v1_16_R1.ParticleParamRedstone; -import net.minecraft.server.v1_16_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_16_R1.SystemUtils; -import net.minecraft.server.v1_16_R1.Unit; -import net.minecraft.server.v1_16_R1.Vec2F; -import net.minecraft.server.v1_16_R1.Vec3D; import java.io.File; import java.io.IOException; import java.io.PrintWriter; @@ -197,7 +70,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -// TODO: Make sure imports merged correctly /** * NMS implementation for Minecraft 1.16.1 From 1a2d73c8065a6d6f07f364a13a2d529aaff57f00 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 24 Nov 2022 10:54:53 -0500 Subject: [PATCH 140/638] Remove duplicate reference to commandapi-core from bukkit nms --- .../commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml | 7 ------- .../commandapi-bukkit-1.17-common/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml | 7 ------- .../commandapi-bukkit-1.19-common/pom.xml | 7 ------- .../commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml | 7 ------- .../commandapi-bukkit-nms-common/pom.xml | 7 ------- 17 files changed, 119 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml index faa5ca2653..cd76c7b4b1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/pom.xml @@ -60,13 +60,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml index 0376c5bbab..5925e87ee3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.2/pom.xml @@ -60,13 +60,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml index 001b36e0ce..7e98e98d0a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/pom.xml @@ -60,13 +60,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml index 44c918e244..eb8dcbe520 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.3/pom.xml @@ -60,13 +60,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml index 390a522706..ef7e5e8b9e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14.4/pom.xml @@ -60,13 +60,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml index b5784d2636..a6401e0412 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/pom.xml @@ -60,13 +60,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml index 58c5d2ae34..008452dd46 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/pom.xml @@ -60,13 +60,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml index ff2e12e588..95109b0450 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/pom.xml @@ -60,13 +60,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml index 8453e40925..de634febb0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/pom.xml @@ -60,13 +60,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml index dde89005d7..87c9a9af9e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/pom.xml @@ -60,13 +60,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml index d736c829db..067ab6c9b6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.5/pom.xml @@ -60,13 +60,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml index d8d022403e..46d85f2520 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/pom.xml @@ -74,13 +74,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml index e3d2ab5e9a..3686251378 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/pom.xml @@ -73,13 +73,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml index 6921b8cd8f..79e321e185 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/pom.xml @@ -74,13 +74,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml index bcabd57a9e..f4b5e35bdf 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/pom.xml @@ -74,13 +74,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml index 516ab385ad..9090385f4b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19/pom.xml @@ -73,13 +73,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml index cd6c27fa04..9566a079c3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml @@ -71,13 +71,6 @@ - - dev.jorel - commandapi-core - ${project.version} - compile - - dev.jorel commandapi-bukkit-core From 6d7d23ae1dc349c06dc36697973389076dcfbe35 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 24 Nov 2022 11:07:55 -0500 Subject: [PATCH 141/638] Move documentation code into main --- commandapi-documentation-code/pom.xml | 6 ++-- .../commandapi/examples/java/Examples.java | 0 .../commandapi/examples/kotlin/Examples.kt | 0 .../examples/kotlin/ExamplesKotlinDSL.kt | 0 docssrc/src/advancementargument.md | 4 +-- docssrc/src/adventurechatarguments.md | 8 ++--- docssrc/src/aliases.md | 4 +-- docssrc/src/arguments.md | 24 +++++++------- docssrc/src/asyncsuggestions.md | 4 +-- docssrc/src/biomeargument.md | 4 +-- docssrc/src/blockpredicateargs.md | 8 ++--- docssrc/src/blockstatearguments.md | 4 +-- docssrc/src/brigadier.md | 28 ++++++++-------- docssrc/src/brigadiersuggestions.md | 8 ++--- docssrc/src/chatarguments.md | 4 +-- docssrc/src/chatpreview.md | 8 ++--- docssrc/src/commandfailures.md | 4 +-- docssrc/src/commandregistration.md | 8 ++--- docssrc/src/commandtrees.md | 8 ++--- docssrc/src/conversion.md | 8 ++--- docssrc/src/customarguments.md | 8 ++--- docssrc/src/enchantmentargument.md | 4 +-- docssrc/src/entityarguments.md | 8 ++--- docssrc/src/environmentargs.md | 4 +-- docssrc/src/functionarguments.md | 4 +-- docssrc/src/functions.md | 4 +-- docssrc/src/functionwrapper.md | 4 +-- docssrc/src/help.md | 8 ++--- docssrc/src/itemstackarguments.md | 4 +-- docssrc/src/itemstackpredicateargs.md | 4 +-- docssrc/src/kotlindsl.md | 20 ++++++------ docssrc/src/listarguments.md | 4 +-- docssrc/src/listed.md | 4 +-- docssrc/src/literalarguments.md | 8 ++--- docssrc/src/locationargument.md | 4 +-- docssrc/src/loottableargument.md | 4 +-- docssrc/src/mathoperationarguments.md | 4 +-- docssrc/src/multilitargs.md | 4 +-- docssrc/src/native.md | 4 +-- docssrc/src/nbtarguments.md | 8 ++--- docssrc/src/normalexecutors.md | 16 +++++----- docssrc/src/objectivearguments.md | 8 ++--- docssrc/src/particlearguments.md | 8 ++--- docssrc/src/permissions.md | 16 +++++----- docssrc/src/potionarguments.md | 4 +-- docssrc/src/predicatetips.md | 20 ++++++------ docssrc/src/primitivearguments.md | 4 +-- docssrc/src/proxysender.md | 8 ++--- docssrc/src/rangedarguments.md | 4 +-- docssrc/src/recipeargument.md | 8 ++--- docssrc/src/requirements.md | 32 +++++++++---------- docssrc/src/resultingcommandexecutors.md | 12 +++---- docssrc/src/rotationargs.md | 4 +-- docssrc/src/safeargumentsuggestions.md | 28 ++++++++-------- docssrc/src/scoreboardarguments.md | 8 ++--- docssrc/src/shading.md | 8 ++--- docssrc/src/soundargument.md | 4 +-- docssrc/src/spigotchatarguments.md | 8 ++--- docssrc/src/stringarguments.md | 4 +-- docssrc/src/stringargumentsuggestions.md | 16 +++++----- docssrc/src/subcommands.md | 16 +++++----- docssrc/src/teamarguments.md | 4 +-- docssrc/src/timeargs.md | 4 +-- docssrc/src/tooltips.md | 24 +++++++------- 64 files changed, 262 insertions(+), 264 deletions(-) rename commandapi-documentation-code/src/{test => main}/dev/jorel/commandapi/examples/java/Examples.java (100%) rename commandapi-documentation-code/src/{test => main}/dev/jorel/commandapi/examples/kotlin/Examples.kt (100%) rename commandapi-documentation-code/src/{test => main}/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt (100%) diff --git a/commandapi-documentation-code/pom.xml b/commandapi-documentation-code/pom.xml index 19d40b6a19..b3cca91bd6 100644 --- a/commandapi-documentation-code/pom.xml +++ b/commandapi-documentation-code/pom.xml @@ -70,18 +70,16 @@ ${project.version} - + de.tr7zw item-nbt-api 2.10.0 - test org.jetbrains.kotlin kotlin-stdlib 1.7.10 - test @@ -100,7 +98,7 @@ - ${project.basedir}/src/test/kotlin + ${project.basedir}/src/main/dev/jorel/commandapi/examples/kotlin diff --git a/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java b/commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java similarity index 100% rename from commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java rename to commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java diff --git a/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt b/commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt similarity index 100% rename from commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt rename to commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt diff --git a/commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt b/commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt similarity index 100% rename from commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt rename to commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt diff --git a/docssrc/src/advancementargument.md b/docssrc/src/advancementargument.md index 1a859ebb5c..cbde40ac0c 100644 --- a/docssrc/src/advancementargument.md +++ b/docssrc/src/advancementargument.md @@ -19,11 +19,11 @@ Since we require a player, we will use the `PlayerArgument` for this example. Gi
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:advancementarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:advancementarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:advancementarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:advancementarguments}} ```
diff --git a/docssrc/src/adventurechatarguments.md b/docssrc/src/adventurechatarguments.md index 4678160d2e..2874965bb6 100644 --- a/docssrc/src/adventurechatarguments.md +++ b/docssrc/src/adventurechatarguments.md @@ -29,11 +29,11 @@ We can construct a book using the Adventure API's `Book.book(Component, Componen
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChatComponent}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChatComponent}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChatComponent}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChatComponent}} ```
@@ -61,11 +61,11 @@ In order to broadcast an Adventure `Component` to all players on the server, we
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChat}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChat}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChat}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChat}} ```
diff --git a/docssrc/src/aliases.md b/docssrc/src/aliases.md index c7b6118b68..b0e89d586d 100644 --- a/docssrc/src/aliases.md +++ b/docssrc/src/aliases.md @@ -11,11 +11,11 @@ In this example, we register the command `/getpos` that returns the command send
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:aliases}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:aliases}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:aliases}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:aliases}} ```
diff --git a/docssrc/src/arguments.md b/docssrc/src/arguments.md index 4f318dc437..d4a2e5c846 100644 --- a/docssrc/src/arguments.md +++ b/docssrc/src/arguments.md @@ -26,11 +26,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax1}} ```
@@ -38,11 +38,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax2}} ```
@@ -50,11 +50,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax3}} ```
@@ -68,11 +68,11 @@ To access arguments, they have to be casted to the type that the argument repres
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentcasting}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentcasting}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentcasting}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentcasting}} ```
@@ -163,11 +163,11 @@ We first register the first `/kill` command as normal:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd}} ```
@@ -177,11 +177,11 @@ Now we declare our command with arguments for our second command. Then, we can r
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd2}} ```
diff --git a/docssrc/src/asyncsuggestions.md b/docssrc/src/asyncsuggestions.md index c1d34fb608..8a6db5b314 100644 --- a/docssrc/src/asyncsuggestions.md +++ b/docssrc/src/asyncsuggestions.md @@ -66,11 +66,11 @@ We make use of the `ArgumentSuggestions.stringsAsync` method to provide asynchro
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:asyncreadfile}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:asyncreadfile}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:asyncreadfile}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:asyncreadfile}} ```
diff --git a/docssrc/src/biomeargument.md b/docssrc/src/biomeargument.md index 6ea33c1161..86481422e5 100644 --- a/docssrc/src/biomeargument.md +++ b/docssrc/src/biomeargument.md @@ -19,11 +19,11 @@ And we can set the biome of the current chunk as expected:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:biomearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:biomearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:biomearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:biomearguments}} ```
diff --git a/docssrc/src/blockpredicateargs.md b/docssrc/src/blockpredicateargs.md index 36f3318931..2c103cc549 100644 --- a/docssrc/src/blockpredicateargs.md +++ b/docssrc/src/blockpredicateargs.md @@ -23,11 +23,11 @@ First, we declare our arguments. We want to use the `BlockPredicateArgument` sin
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments}} ```
@@ -41,11 +41,11 @@ Lastly, we register our command as normal using the `register()` method.
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments2}} ```
diff --git a/docssrc/src/blockstatearguments.md b/docssrc/src/blockstatearguments.md index 2bda0e08c6..9ce63adae8 100644 --- a/docssrc/src/blockstatearguments.md +++ b/docssrc/src/blockstatearguments.md @@ -23,11 +23,11 @@ And then we can simply set our block using `setBlockData()`:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:blockstateargument}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:blockstateargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockstateargument}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockstateargument}} ```
diff --git a/docssrc/src/brigadier.md b/docssrc/src/brigadier.md index 6703b058a3..f98dc06f15 100644 --- a/docssrc/src/brigadier.md +++ b/docssrc/src/brigadier.md @@ -98,11 +98,11 @@ Now that we've established what we want, we can finally begin writing the code!
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:declareliteral}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:declareliteral}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareliteral}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareliteral}} ```
@@ -112,11 +112,11 @@ With that completed, we can now create our "argument" to this predicate. To do t
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:declarearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarearguments}} ```
@@ -126,11 +126,11 @@ Now we're going to get into the very nitty-gritty part - the predicate declarati
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:declareargumentbuilders}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:declareargumentbuilders}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareargumentbuilders}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareargumentbuilders}} ```
@@ -140,11 +140,11 @@ Now we'll define our predicate. Since this is sort of a "meta-command" (it direc
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarefork}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:declarefork}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarefork}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarefork}} ```
@@ -154,11 +154,11 @@ Finally, we can now link everything up. We know that `numerator` comes first, **
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:declarerandomchance}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:declarerandomchance}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarerandomchance}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarerandomchance}} ```
@@ -168,11 +168,11 @@ Finally, we "register" the command. In this case, we're actually just adding the
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:injectintoroot}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:injectintoroot}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:injectintoroot}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:injectintoroot}} ```
@@ -186,11 +186,11 @@ So, hopefully that wasn't too confusing! If you're still lost, here's the whole
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:brigadier}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:brigadier}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:brigadier}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:brigadier}} ```
diff --git a/docssrc/src/brigadiersuggestions.md b/docssrc/src/brigadiersuggestions.md index a7efca8a57..c5e1763427 100644 --- a/docssrc/src/brigadiersuggestions.md +++ b/docssrc/src/brigadiersuggestions.md @@ -25,11 +25,11 @@ For this command, we'll use a `GreedyStringArgument` because that allows users t
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions1}} ```
@@ -55,11 +55,11 @@ We use the command suggestions declared above by using the `replaceSuggestions`
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions2}} ```
diff --git a/docssrc/src/chatarguments.md b/docssrc/src/chatarguments.md index 8760fb2253..63eba98c6e 100644 --- a/docssrc/src/chatarguments.md +++ b/docssrc/src/chatarguments.md @@ -31,11 +31,11 @@ We then use the `ChatColorArgument` to change the player's name color:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatcolorarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatcolorarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcolorarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcolorarguments}} ```
diff --git a/docssrc/src/chatpreview.md b/docssrc/src/chatpreview.md index ce14f92316..af1516756f 100644 --- a/docssrc/src/chatpreview.md +++ b/docssrc/src/chatpreview.md @@ -110,11 +110,11 @@ For execution, we do the same procedure, because the text that the user enters s
```java,Spigot -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigot}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigot}} ``` ```java,Paper -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventure}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventure}} ```
@@ -136,11 +136,11 @@ By using `.usePreview(true)`, we don't have to re-translate `&` formatting codes
```java,Spigot -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigotusepreview}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigotusepreview}} ``` ```java,Paper -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventureusepreview}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventureusepreview}} ```
diff --git a/docssrc/src/commandfailures.md b/docssrc/src/commandfailures.md index a30aaf74ec..4252c506aa 100644 --- a/docssrc/src/commandfailures.md +++ b/docssrc/src/commandfailures.md @@ -22,11 +22,11 @@ Therefore, to gracefully handle this with a proper error message, we use one of
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandfailures}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:commandfailures}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandfailures}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandfailures}} ```
diff --git a/docssrc/src/commandregistration.md b/docssrc/src/commandregistration.md index 27dac84200..f192f3767f 100644 --- a/docssrc/src/commandregistration.md +++ b/docssrc/src/commandregistration.md @@ -7,11 +7,11 @@ I think the easiest way to explain it is with an example:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandregistration}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:commandregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandregistration}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandregistration}} ```
@@ -213,11 +213,11 @@ To replace a command, we can first unregister it and then register our implement
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:commandunregistration}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:commandunregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandunregistration}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandunregistration}} ```
diff --git a/docssrc/src/commandtrees.md b/docssrc/src/commandtrees.md index f677b07420..e1290a30d3 100644 --- a/docssrc/src/commandtrees.md +++ b/docssrc/src/commandtrees.md @@ -67,11 +67,11 @@ We can do this by adding a `PlayerArgument` to our command. As described above,
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_sayhi1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_sayhi1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_sayhi1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_sayhi1}} ```
@@ -102,11 +102,11 @@ Say we wanted to create a plugin to let a user edit signs. We have a single comm
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_signedit}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_signedit}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_signedit}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_signedit}} ```
diff --git a/docssrc/src/conversion.md b/docssrc/src/conversion.md index 4267a99c1b..3de609575d 100644 --- a/docssrc/src/conversion.md +++ b/docssrc/src/conversion.md @@ -42,11 +42,11 @@ As you can see, it declares 3 commands: `/gmc`, `/gms` and `/i`. We can now begi
```java,Java -public {{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:converter}} +public {{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:converter}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter}} ```
@@ -98,11 +98,11 @@ With the EssentialsX plugin, the `` value can only take numbers between 0
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:converter2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:converter2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter2}} ```
diff --git a/docssrc/src/customarguments.md b/docssrc/src/customarguments.md index 6a3f96fcfb..e2e9bcaad4 100644 --- a/docssrc/src/customarguments.md +++ b/docssrc/src/customarguments.md @@ -87,11 +87,11 @@ Say we want to create an argument to represents the list of available worlds on
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:customarguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:customarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments2}} ```
@@ -116,11 +116,11 @@ Since we have defined the method `worldArgument()` which automatically generates
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:customarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:customarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments}} ```
diff --git a/docssrc/src/enchantmentargument.md b/docssrc/src/enchantmentargument.md index 5e174b4410..b65645d8f9 100644 --- a/docssrc/src/enchantmentargument.md +++ b/docssrc/src/enchantmentargument.md @@ -19,11 +19,11 @@ Since most enchantment levels range between 1 and 5, we will also make use of th
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:enchantmentarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:enchantmentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:enchantmentarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:enchantmentarguments}} ```
diff --git a/docssrc/src/entityarguments.md b/docssrc/src/entityarguments.md index 0b633759c4..4fff8bfa47 100644 --- a/docssrc/src/entityarguments.md +++ b/docssrc/src/entityarguments.md @@ -32,11 +32,11 @@ Instead, we can combine all of these into one by using the `EntitySelectorArgume
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:entityselectorarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:entityselectorarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:entityselectorarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:entityselectorarguments}} ```
@@ -98,11 +98,11 @@ Since we're trying to specify an entity type, we will use the `EntityTypeArgumen
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:entitytypearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:entitytypearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:entitytypearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:entitytypearguments}} ```
diff --git a/docssrc/src/environmentargs.md b/docssrc/src/environmentargs.md index d8faeef79a..430b1e8b34 100644 --- a/docssrc/src/environmentargs.md +++ b/docssrc/src/environmentargs.md @@ -19,11 +19,11 @@ Using the world name and the environment of the world, we can use Bukkit's `Worl
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:environmentarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:environmentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:environmentarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:environmentarguments}} ```
diff --git a/docssrc/src/functionarguments.md b/docssrc/src/functionarguments.md index f3ce960312..c27e5f7c3b 100644 --- a/docssrc/src/functionarguments.md +++ b/docssrc/src/functionarguments.md @@ -21,11 +21,11 @@ When provided with a function, it will execute that function. If instead a tag i
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionarguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:functionarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments2}} ```
diff --git a/docssrc/src/functions.md b/docssrc/src/functions.md index c8c314b646..461bfaaab8 100644 --- a/docssrc/src/functions.md +++ b/docssrc/src/functions.md @@ -31,11 +31,11 @@ Say we have a command `/killall` that simply kills all entities in all worlds on
```java,Java -public {{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionregistration}} +public {{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:functionregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionregistration}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionregistration}} ```
diff --git a/docssrc/src/functionwrapper.md b/docssrc/src/functionwrapper.md index ac0d5b14ad..00d12678e0 100644 --- a/docssrc/src/functionwrapper.md +++ b/docssrc/src/functionwrapper.md @@ -35,11 +35,11 @@ The `run()` method runs the function. The command executor that runs this functi
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:functionarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:functionarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments}} ```
diff --git a/docssrc/src/help.md b/docssrc/src/help.md index 2f55c7e2ad..396c1c1110 100644 --- a/docssrc/src/help.md +++ b/docssrc/src/help.md @@ -48,11 +48,11 @@ In this simple example, we implement the above screenshot's help topic. We regis
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:help}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:help}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:help}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:help}} ```
@@ -62,11 +62,11 @@ We could also register this command using the `withHelp` method instead:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:help2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:help2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:help2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:help2}} ```
diff --git a/docssrc/src/itemstackarguments.md b/docssrc/src/itemstackarguments.md index ed14bed4e2..98793f6881 100644 --- a/docssrc/src/itemstackarguments.md +++ b/docssrc/src/itemstackarguments.md @@ -19,11 +19,11 @@ With this syntax, we can easily create our command:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:itemstackarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:itemstackarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackarguments}} ```
diff --git a/docssrc/src/itemstackpredicateargs.md b/docssrc/src/itemstackpredicateargs.md index 9ccde18213..18ed8569ea 100644 --- a/docssrc/src/itemstackpredicateargs.md +++ b/docssrc/src/itemstackpredicateargs.md @@ -17,11 +17,11 @@ We implement this with a simple for loop over the player's inventory and remove
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:itemstackpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:itemstackpredicatearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackpredicatearguments}} ```
diff --git a/docssrc/src/kotlindsl.md b/docssrc/src/kotlindsl.md index 01b7ab6137..4c0bb342ad 100644 --- a/docssrc/src/kotlindsl.md +++ b/docssrc/src/kotlindsl.md @@ -19,11 +19,11 @@ We can then use the following command registration:
```kotlin,CommandTree -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommand}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommand}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommand2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommand2}} ```
@@ -95,11 +95,11 @@ Below, the `sendMessageTo` command is adding a broadcast option which should onl
```kotlin,CommandTree -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommandRequirement}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommandRequirement}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommandRequirement2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommandRequirement2}} ```
@@ -113,11 +113,11 @@ You can also restrict the use of a whole command by using requirements:
```kotlin,CommandTree -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslCommandRequirements}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslCommandRequirements}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslCommandRequirements2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslCommandRequirements2}} ```
@@ -144,11 +144,11 @@ As with the Java method of registering commands, with a CommandTree you can decl
```kotlin,CommandTree -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:optionalArgument}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:optionalArgument}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:optionalArgument2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:optionalArgument2}} ```
@@ -170,11 +170,11 @@ We make use of the `argument()` method to provide an argument implementation and
```kotlin,CommandTree -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:replaceSuggestions}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:replaceSuggestions}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:replaceSuggestions2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:replaceSuggestions2}} ```
diff --git a/docssrc/src/listarguments.md b/docssrc/src/listarguments.md index 14e3e79318..409506549a 100644 --- a/docssrc/src/listarguments.md +++ b/docssrc/src/listarguments.md @@ -130,11 +130,11 @@ To do this, we create a command with an `IntegerArgument` to specify the amount
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ListArgument_MultiGive}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ListArgument_MultiGive}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ListArgument_MultiGive}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ListArgument_MultiGive}} ```
diff --git a/docssrc/src/listed.md b/docssrc/src/listed.md index 337d01d73b..bfe9c22d9e 100644 --- a/docssrc/src/listed.md +++ b/docssrc/src/listed.md @@ -25,11 +25,11 @@ Let's also say that in our implementation of this command, we don't actually per
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:listed}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:listed}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:listed}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:listed}} ```
diff --git a/docssrc/src/literalarguments.md b/docssrc/src/literalarguments.md index b4281bdacb..512f483490 100644 --- a/docssrc/src/literalarguments.md +++ b/docssrc/src/literalarguments.md @@ -47,11 +47,11 @@ As an example, let's declare the literal "hello" as a valid literal for this com
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:literalarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:literalarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments}} ```
@@ -89,11 +89,11 @@ This is a demonstration of how you could create a command similar to Minecraft's
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:literalarguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:literalarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments2}} ```
diff --git a/docssrc/src/locationargument.md b/docssrc/src/locationargument.md index bb87c193dc..70ffae392c 100644 --- a/docssrc/src/locationargument.md +++ b/docssrc/src/locationargument.md @@ -43,11 +43,11 @@ Simply put, given the coordinates provided to the command, "break" the block by
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:locationarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:locationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:locationarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:locationarguments}} ```
diff --git a/docssrc/src/loottableargument.md b/docssrc/src/loottableargument.md index 2538db1911..5079cf958a 100644 --- a/docssrc/src/loottableargument.md +++ b/docssrc/src/loottableargument.md @@ -19,11 +19,11 @@ We ensure that the location provided is a container (such as a chest or shulkerb
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:loottablearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:loottablearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:loottablearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:loottablearguments}} ```
diff --git a/docssrc/src/mathoperationarguments.md b/docssrc/src/mathoperationarguments.md index e4bcd2c1d7..b389844df1 100644 --- a/docssrc/src/mathoperationarguments.md +++ b/docssrc/src/mathoperationarguments.md @@ -63,11 +63,11 @@ As with any command, we declare our arguments, cast them properly and then we wr
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:mathoperationarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:mathoperationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:mathoperationarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:mathoperationarguments}} ```
diff --git a/docssrc/src/multilitargs.md b/docssrc/src/multilitargs.md index a900b33892..fbfe2076e6 100644 --- a/docssrc/src/multilitargs.md +++ b/docssrc/src/multilitargs.md @@ -15,11 +15,11 @@ In this example, we'll show how to use multi literals to declare Minecraft's `/g
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:multiliteralarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:multiliteralarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiliteralarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiliteralarguments}} ```
diff --git a/docssrc/src/native.md b/docssrc/src/native.md index 7a7c8da69d..83fa7e9314 100644 --- a/docssrc/src/native.md +++ b/docssrc/src/native.md @@ -53,11 +53,11 @@ As you can see, this command takes no arguments. This is fine, since our "argume
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:nativesender}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:nativesender}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nativesender}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:nativesender}} ```
diff --git a/docssrc/src/nbtarguments.md b/docssrc/src/nbtarguments.md index 4d8788bc30..cee467523f 100644 --- a/docssrc/src/nbtarguments.md +++ b/docssrc/src/nbtarguments.md @@ -40,11 +40,11 @@ Now, we can configure the CommandAPI using the `CommandAPI.onLoad()` method to u
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundargumentonload}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundargumentonload}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundargumentonload}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundargumentonload}} ```
@@ -66,11 +66,11 @@ Since the underlying implementation of the `NBTCompoundArgument` can change (e.g
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundarguments}} ```
diff --git a/docssrc/src/normalexecutors.md b/docssrc/src/normalexecutors.md index 30d889dac7..e607568bdf 100644 --- a/docssrc/src/normalexecutors.md +++ b/docssrc/src/normalexecutors.md @@ -36,11 +36,11 @@ We use an argument "message" to hold the message to broadcast, we provide some a
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3_1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3_1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3_1}} ```
@@ -80,11 +80,11 @@ Say we wanted to create a command `/suicide`, which kills the player that execut
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors}} ```
@@ -106,11 +106,11 @@ Extending on the suicide example above, we could write another implementation fo
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors2}} ```
@@ -158,11 +158,11 @@ Expanding on the suicide example above, we can restrict the command to only play
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3}} ```
diff --git a/docssrc/src/objectivearguments.md b/docssrc/src/objectivearguments.md index 4affbdc99b..f5e0c8fe72 100644 --- a/docssrc/src/objectivearguments.md +++ b/docssrc/src/objectivearguments.md @@ -30,11 +30,11 @@ Given that an objective has to be casted to a String, we have to find a way to c
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:objectiveargument}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:objectiveargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectiveargument}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectiveargument}} ```
@@ -62,11 +62,11 @@ To do this, we're going to take advantage of Bukkit's `Scoreboard.getObjectivesB
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:objectivecriteriaarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:objectivecriteriaarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectivecriteriaarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectivecriteriaarguments}} ```
diff --git a/docssrc/src/particlearguments.md b/docssrc/src/particlearguments.md index 27871e0967..0451a7faf9 100644 --- a/docssrc/src/particlearguments.md +++ b/docssrc/src/particlearguments.md @@ -50,11 +50,11 @@ With this, we can simply spawn the particle using the `World.spawnParticle(Parti
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:particlearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:particlearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments}} ```
@@ -78,11 +78,11 @@ In this case, we'll use the `World.spawnParticle(Particle particle, Location loc
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:particlearguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:particlearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments2}} ```
diff --git a/docssrc/src/permissions.md b/docssrc/src/permissions.md index 923f16f9c4..2f98eda353 100644 --- a/docssrc/src/permissions.md +++ b/docssrc/src/permissions.md @@ -30,11 +30,11 @@ Say we created a command `/god` that sets a player as being invulnerable. Since
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:permissions}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions}} ```
@@ -44,11 +44,11 @@ As stated above, it is possible to assign a permission using a String instead of
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:permissions2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions2}} ```
@@ -85,11 +85,11 @@ We first declare the command as normal. Nothing fancy is going on here:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions3_1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:permissions3_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_1}} ```
@@ -99,11 +99,11 @@ Now we declare our command with arguments. We use a `PlayerArgument` and apply t
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:permissions3_2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:permissions3_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_2}} ```
diff --git a/docssrc/src/potionarguments.md b/docssrc/src/potionarguments.md index f9393a0aea..6ec4c833ba 100644 --- a/docssrc/src/potionarguments.md +++ b/docssrc/src/potionarguments.md @@ -19,11 +19,11 @@ In this example, we utilize some of the other arguments that we've described ear
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:potioneffectarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:potioneffectarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:potioneffectarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:potioneffectarguments}} ```
diff --git a/docssrc/src/predicatetips.md b/docssrc/src/predicatetips.md index b4d7ae7f3e..05e11334af 100644 --- a/docssrc/src/predicatetips.md +++ b/docssrc/src/predicatetips.md @@ -5,11 +5,11 @@ In our [example for creating a party system](./requirements.md#example---a-party
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} ```
@@ -19,11 +19,11 @@ And for our party teleportation command, we had the following code:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirementstp}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirementstp}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementstp}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementstp}} ```
@@ -33,11 +33,11 @@ We can simplify this code by declaring the predicate:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:predicatetips}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips}} ```
@@ -47,11 +47,11 @@ Now, we can use the predicate `testIfPlayerHasParty` in our code for creating a
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:predicatetips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips2}} ```
@@ -61,11 +61,11 @@ And we can use it again for our code for teleporting to party members:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:predicatetips3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:predicatetips3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips3}} ```
diff --git a/docssrc/src/primitivearguments.md b/docssrc/src/primitivearguments.md index 044d92e832..2c815d4ba6 100644 --- a/docssrc/src/primitivearguments.md +++ b/docssrc/src/primitivearguments.md @@ -35,11 +35,11 @@ We first retrieve the keys from the configuration file using the typical Bukkit
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:booleanargs}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:booleanargs}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:booleanargs}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:booleanargs}} ```
diff --git a/docssrc/src/proxysender.md b/docssrc/src/proxysender.md index 6216dc346d..f7e99fc0f4 100644 --- a/docssrc/src/proxysender.md +++ b/docssrc/src/proxysender.md @@ -11,11 +11,11 @@ Say we have a command which kills the sender of a command. This is easily implem
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:proxysender}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:proxysender}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender}} ```
@@ -31,11 +31,11 @@ To handle this case, we can use the `.executesProxy()` method to ensure that the
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:proxysender2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:proxysender2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender2}} ```
diff --git a/docssrc/src/rangedarguments.md b/docssrc/src/rangedarguments.md index aa0c554df5..71b6d691a4 100644 --- a/docssrc/src/rangedarguments.md +++ b/docssrc/src/rangedarguments.md @@ -56,11 +56,11 @@ Now, we simply create our arguments using `IntegerRangeArgument` for our range a
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:rangedarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:rangedarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:rangedarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:rangedarguments}} ```
diff --git a/docssrc/src/recipeargument.md b/docssrc/src/recipeargument.md index 7e1153fdf7..47cdd9bfba 100644 --- a/docssrc/src/recipeargument.md +++ b/docssrc/src/recipeargument.md @@ -19,11 +19,11 @@ As such, we easily implement it by specifying the `RecipeArgument`, casting it a
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:recipearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:recipearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments}} ```
@@ -45,11 +45,11 @@ This is then implemented trivially as follows:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:recipearguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:recipearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments2}} ```
diff --git a/docssrc/src/requirements.md b/docssrc/src/requirements.md index 925deeac29..caa8b06483 100644 --- a/docssrc/src/requirements.md +++ b/docssrc/src/requirements.md @@ -38,11 +38,11 @@ We want to put a requirement on this command that the player needs to have at le
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements}} ```
@@ -75,11 +75,11 @@ To represent our party in code, we'll use a simple `Map` called `partyMembers` w
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirementsmap}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirementsmap}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementsmap}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementsmap}} ```
@@ -89,11 +89,11 @@ To begin with, let's create the `/party create ` command. First, we m
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} ```
@@ -105,11 +105,11 @@ Now that we've declared our arguments, we can now declare our main command `/par
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements3}} ```
@@ -121,11 +121,11 @@ So now we've added the ability to create a party if we're not already in it. Now
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements4}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements4}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements4}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements4}} ```
@@ -137,11 +137,11 @@ Once the arguments have been declared, we can now implement our party teleportat
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:requirements5}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements5}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements5}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements5}} ```
@@ -222,11 +222,11 @@ When a player creates a new party, we need to ensure that their requirements are
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:updatingrequirements}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:updatingrequirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:updatingrequirements}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:updatingrequirements}} ```
@@ -250,11 +250,11 @@ For example, you can apply multiple requirements for a command by calling the `w
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:multiplerequirements}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:multiplerequirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiplerequirements}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiplerequirements}} ```
diff --git a/docssrc/src/resultingcommandexecutors.md b/docssrc/src/resultingcommandexecutors.md index 0af060aba1..3b9a55e4be 100644 --- a/docssrc/src/resultingcommandexecutors.md +++ b/docssrc/src/resultingcommandexecutors.md @@ -27,11 +27,11 @@ Say we want a command that returns a random number as a result. This can then be
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor}} ```
@@ -58,11 +58,11 @@ Since we're declaring commands that are to be used in `/execute`, we must ensure
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor2}} ```
@@ -72,11 +72,11 @@ Now we write our implementation for `/givereward`. In this example, we use the `
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor3}} ```
diff --git a/docssrc/src/rotationargs.md b/docssrc/src/rotationargs.md index 15e0a0bfbc..1ec87071dc 100644 --- a/docssrc/src/rotationargs.md +++ b/docssrc/src/rotationargs.md @@ -28,11 +28,11 @@ To do this, we'll use the rotation from the `RotationArgument` and select an ent
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:rotationarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:rotationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:rotationarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:rotationarguments}} ```
diff --git a/docssrc/src/safeargumentsuggestions.md b/docssrc/src/safeargumentsuggestions.md index 5956b227e0..3697a54286 100644 --- a/docssrc/src/safeargumentsuggestions.md +++ b/docssrc/src/safeargumentsuggestions.md @@ -127,11 +127,11 @@ To do this, we first register our custom items:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments}} ```
@@ -141,11 +141,11 @@ Once we've done that, we can now include them in our command registration. To do
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments_2}} ```
@@ -167,11 +167,11 @@ Now say that we don't want non-op players to spawn bosses. To do this, we'll cre
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments}} ```
@@ -181,11 +181,11 @@ We then use our safe arguments to return an `EntityType[]` as the list of values
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_2}} ```
@@ -195,11 +195,11 @@ Now we register our command as normal:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_3}} ```
@@ -221,11 +221,11 @@ Now, we don't want to remove a potion effect that already exists on a player, so
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments}} ```
@@ -235,11 +235,11 @@ And then we can register our command as normal:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments_2}} ```
diff --git a/docssrc/src/scoreboardarguments.md b/docssrc/src/scoreboardarguments.md index 232e2e958d..224e9c2bc1 100644 --- a/docssrc/src/scoreboardarguments.md +++ b/docssrc/src/scoreboardarguments.md @@ -41,11 +41,11 @@ Note how we use `..9` to represent 9 or less deaths (since ranges are inclusive)
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:scoreholderargument}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:scoreholderargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreholderargument}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreholderargument}} ```
@@ -107,11 +107,11 @@ We implement this simply by using the `ScoreboardSlotArgument` as our argument,
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:scoreboardslotargument}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:scoreboardslotargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreboardslotargument}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreboardslotargument}} ```
diff --git a/docssrc/src/shading.md b/docssrc/src/shading.md index 650f576e41..6e6fd0e298 100644 --- a/docssrc/src/shading.md +++ b/docssrc/src/shading.md @@ -44,11 +44,11 @@ The `CommandAPIConfig` class follows a typical builder pattern (without you havi
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:CommandAPIConfigSilent}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:CommandAPIConfigSilent}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandAPIConfigSilent}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandAPIConfigSilent}} ```
@@ -66,11 +66,11 @@ The `onDisable()` method disables the CommandAPI gracefully. This should be plac
```java,Java -public {{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:shading}} +public {{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:shading}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:shading}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:shading}} ```
diff --git a/docssrc/src/soundargument.md b/docssrc/src/soundargument.md index 7c03131732..81acf32ef5 100644 --- a/docssrc/src/soundargument.md +++ b/docssrc/src/soundargument.md @@ -19,11 +19,11 @@ This command simply plays the provided sound to the current player:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:soundarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:soundarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:soundarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:soundarguments}} ```
diff --git a/docssrc/src/spigotchatarguments.md b/docssrc/src/spigotchatarguments.md index 454325699e..71fa8c0fc2 100644 --- a/docssrc/src/spigotchatarguments.md +++ b/docssrc/src/spigotchatarguments.md @@ -83,11 +83,11 @@ Now we can create our book command. We use the player as the main target by usin
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatcomponentarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatcomponentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcomponentarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcomponentarguments}} ```
@@ -125,11 +125,11 @@ _Bob_ would receive the message "Hello Bob", whereas _Michael_ would receive the
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:chatarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatarguments}} ```
diff --git a/docssrc/src/stringarguments.md b/docssrc/src/stringarguments.md index 99e21d0fd9..636b2b9c8f 100644 --- a/docssrc/src/stringarguments.md +++ b/docssrc/src/stringarguments.md @@ -93,11 +93,11 @@ This would be ideal for a greedy string, since it can consume all text after the
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:greedystringarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:greedystringarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:greedystringarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:greedystringarguments}} ```
diff --git a/docssrc/src/stringargumentsuggestions.md b/docssrc/src/stringargumentsuggestions.md index aa156caf27..eddf53969f 100644 --- a/docssrc/src/stringargumentsuggestions.md +++ b/docssrc/src/stringargumentsuggestions.md @@ -19,11 +19,11 @@ We then implement our warp teleporting command using `replaceSuggestions()` on t
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions1}} ```
@@ -53,11 +53,11 @@ Let's say we have a simple class to get the friends of a command sender:
```java,Java -public {{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_1}} +public {{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_1}} ```
@@ -67,11 +67,11 @@ We can then use this to generate our suggested list of friends:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_2}} ```
@@ -123,11 +123,11 @@ When run, this command will send a message to a target player within the provide
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestionsPrevious}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestionsPrevious}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestionsPrevious}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestionsPrevious}} ```
diff --git a/docssrc/src/subcommands.md b/docssrc/src/subcommands.md index 9a8106f954..756a089e35 100644 --- a/docssrc/src/subcommands.md +++ b/docssrc/src/subcommands.md @@ -33,11 +33,11 @@ We can implement this by creating a `CommandAPICommand` with the command name `a
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommandspart}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:subcommandspart}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandspart}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandspart}} ```
@@ -47,11 +47,11 @@ Similarly, we have another part `remove `. We can declar
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommands}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:subcommands}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands}} ```
@@ -61,11 +61,11 @@ Finally, we can link everything up together to the `perm` command and register t
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommandsend}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:subcommandsend}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandsend}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandsend}} ```
@@ -77,11 +77,11 @@ Another, more intuitive method, is to shove everything in one go without creatin
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:subcommands1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:subcommands1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands1}} ```
diff --git a/docssrc/src/teamarguments.md b/docssrc/src/teamarguments.md index 8e90ae1260..789c9afe74 100644 --- a/docssrc/src/teamarguments.md +++ b/docssrc/src/teamarguments.md @@ -17,11 +17,11 @@ To do this, given a team we want to use the `setAllowFriendlyFire(boolean)` func
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:teamarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:teamarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:teamarguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:teamarguments}} ```
diff --git a/docssrc/src/timeargs.md b/docssrc/src/timeargs.md index 85e3803099..9770ab7395 100644 --- a/docssrc/src/timeargs.md +++ b/docssrc/src/timeargs.md @@ -23,11 +23,11 @@ Say we have a command `bigmsg` that displays a title message to all players for
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:timearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:timearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:timearguments}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:timearguments}} ```
diff --git a/docssrc/src/tooltips.md b/docssrc/src/tooltips.md index 079e5558d4..84c717cb8b 100644 --- a/docssrc/src/tooltips.md +++ b/docssrc/src/tooltips.md @@ -47,11 +47,11 @@ First, we'll declare our arguments. Here, we'll use the `stringsWithTooltips` me
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:Tooltips1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips1}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips1}} ```
@@ -61,11 +61,11 @@ Finally, we declare our command as normal:
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:Tooltips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips2}} ```
@@ -98,11 +98,11 @@ Let's say we've created a simple plugin which has custom items. For a custom ite
```java,Java -public {{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips3}} +public {{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:Tooltips3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips3}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips3}} ```
@@ -114,11 +114,11 @@ Let's also say that our plugin has registered lots of `CustomItem`s and has this
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:Tooltips4}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:Tooltips4}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips4}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips4}} ```
@@ -169,11 +169,11 @@ First, we'll declare our arguments. Here, we use a `LocationArgument` and use th
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips}} ```
@@ -183,11 +183,11 @@ In the arguments declaration, we've casted the command sender to a player. To en
```java,Java -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/test/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips2}} +{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips2}} ```
From 02074ea2c1a7448b006037a78ae4478bb0f7e4c2 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 24 Nov 2022 11:10:36 -0500 Subject: [PATCH 142/638] Add kotlin DSL to documentation pom --- commandapi-documentation-code/pom.xml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/commandapi-documentation-code/pom.xml b/commandapi-documentation-code/pom.xml index b3cca91bd6..b8006c1d62 100644 --- a/commandapi-documentation-code/pom.xml +++ b/commandapi-documentation-code/pom.xml @@ -57,16 +57,15 @@ provided - + dev.jorel - commandapi-core + commandapi-bukkit-core ${project.version} - dev.jorel - commandapi-bukkit-core + commandapi-kotlin-bukkit ${project.version} From 98806dda3aa138a227f41927d3bbad920ec8bc71 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 24 Nov 2022 12:01:55 -0500 Subject: [PATCH 143/638] Fix kotlin documentation JVM version --- commandapi-documentation-code/pom.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/commandapi-documentation-code/pom.xml b/commandapi-documentation-code/pom.xml index b8006c1d62..0614fb4ffa 100644 --- a/commandapi-documentation-code/pom.xml +++ b/commandapi-documentation-code/pom.xml @@ -102,6 +102,9 @@ + + 16 + From e13f99dec3bb626dfd5b184befbebf83af293f2e Mon Sep 17 00:00:00 2001 From: willkroboth <46540330+willkroboth@users.noreply.github.com> Date: Thu, 24 Nov 2022 12:29:42 -0500 Subject: [PATCH 144/638] Fix greedyStringArgument name in Bukkit CommandTreeDSL --- .../kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt index 66e51992ca..7e18cf2f03 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt +++ b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt @@ -47,7 +47,7 @@ inline fun CommandTree.booleanArgument(nodeName: String, block: Argument<*>.() - // String arguments inline fun CommandTree.stringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(StringArgument(nodeName).apply(block)) inline fun CommandTree.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TextArgument(nodeName).apply(block)) -inline fun CommandTree.greedyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(GreedyStringArgument(nodeName).apply(block)) +inline fun CommandTree.greedyStringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(GreedyStringArgument(nodeName).apply(block)) // Positional arguments inline fun CommandTree.locationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LocationArgument(nodeName).apply(block)) @@ -141,7 +141,7 @@ inline fun Argument<*>.booleanArgument(nodeName: String, block: Argument<*>.() - // String arguments inline fun Argument<*>.stringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(StringArgument(nodeName).apply(block)) inline fun Argument<*>.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TextArgument(nodeName).apply(block)) -inline fun Argument<*>.greedyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(GreedyStringArgument(nodeName).apply(block)) +inline fun Argument<*>.greedyStringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(GreedyStringArgument(nodeName).apply(block)) // Positional arguments inline fun Argument<*>.locationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LocationArgument(nodeName).apply(block)) @@ -339,4 +339,4 @@ class CommandTreeExecution { return } } -} \ No newline at end of file +} From ed1434bc50c73d58a9090add772c0eda46f602e7 Mon Sep 17 00:00:00 2001 From: willkroboth <46540330+willkroboth@users.noreply.github.com> Date: Thu, 24 Nov 2022 12:31:45 -0500 Subject: [PATCH 145/638] Fix greedyStringArgument name in Velocity CommandTree DSL --- .../kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt index 507a905ad1..49aa014983 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt +++ b/commandapi-platforms/commandapi-velocity/commandapi-kotlin-velocity/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt @@ -40,7 +40,7 @@ inline fun CommandTree.booleanArgument(nodeName: String, block: Argument<*>.() - // String arguments inline fun CommandTree.stringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(StringArgument(nodeName).apply(block)) inline fun CommandTree.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TextArgument(nodeName).apply(block)) -inline fun CommandTree.greedyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(GreedyStringArgument(nodeName).apply(block)) +inline fun CommandTree.greedyStringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(GreedyStringArgument(nodeName).apply(block)) // Literal arguments inline fun CommandTree.literalArgument(literal: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LiteralArgument.of(literal).apply(block)) @@ -76,7 +76,7 @@ inline fun Argument<*>.booleanArgument(nodeName: String, block: Argument<*>.() - // String arguments inline fun Argument<*>.stringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(StringArgument(nodeName).apply(block)) inline fun Argument<*>.textArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TextArgument(nodeName).apply(block)) -inline fun Argument<*>.greedyArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(GreedyStringArgument(nodeName).apply(block)) +inline fun Argument<*>.greedyStringArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(GreedyStringArgument(nodeName).apply(block)) // Literal arguments inline fun Argument<*>.literalArgument(literal: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LiteralArgument.of(literal).apply(block)) @@ -158,4 +158,4 @@ class CommandTreeExecution { return } } -} \ No newline at end of file +} From c0eac167b105aa741d6b206e17609cf1293b4b48 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 24 Nov 2022 18:02:55 -0500 Subject: [PATCH 146/638] Clean up after merge --- .../commandapi/examples/java/Examples.java | 87 ------------------- 1 file changed, 87 deletions(-) diff --git a/commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java b/commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java index 44c5cb7015..e5cad525f6 100644 --- a/commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java +++ b/commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java @@ -76,93 +76,6 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ThreadLocalRandom; import java.util.function.Predicate; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.ParseResults; -import com.mojang.brigadier.builder.ArgumentBuilder; -import com.mojang.brigadier.context.StringRange; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.Suggestions; -import com.mojang.brigadier.tree.LiteralCommandNode; - -import de.tr7zw.changeme.nbtapi.NBTContainer; -import dev.jorel.commandapi.Brigadier; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPICommand; -import dev.jorel.commandapi.CommandAPIConfig; -import dev.jorel.commandapi.CommandPermission; -import dev.jorel.commandapi.CommandTree; -import dev.jorel.commandapi.Converter; -import dev.jorel.commandapi.IStringTooltip; -import dev.jorel.commandapi.StringTooltip; -import dev.jorel.commandapi.Tooltip; -import dev.jorel.commandapi.arguments.AdvancementArgument; -import dev.jorel.commandapi.arguments.AdventureChatArgument; -import dev.jorel.commandapi.arguments.AdventureChatComponentArgument; -import dev.jorel.commandapi.arguments.AngleArgument; -import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.ArgumentSuggestions; -import dev.jorel.commandapi.arguments.BiomeArgument; -import dev.jorel.commandapi.arguments.BlockPredicateArgument; -import dev.jorel.commandapi.arguments.BlockStateArgument; -import dev.jorel.commandapi.arguments.BooleanArgument; -import dev.jorel.commandapi.arguments.ChatArgument; -import dev.jorel.commandapi.arguments.ChatColorArgument; -import dev.jorel.commandapi.arguments.ChatComponentArgument; -import dev.jorel.commandapi.arguments.CommandArgument; -import dev.jorel.commandapi.arguments.CommandResult; -import dev.jorel.commandapi.arguments.CustomArgument; -import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException; -import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder; -import dev.jorel.commandapi.arguments.EnchantmentArgument; -import dev.jorel.commandapi.arguments.EntitySelector; -import dev.jorel.commandapi.arguments.EntitySelectorArgument; -import dev.jorel.commandapi.arguments.EntityTypeArgument; -import dev.jorel.commandapi.arguments.EnvironmentArgument; -import dev.jorel.commandapi.arguments.FunctionArgument; -import dev.jorel.commandapi.arguments.GreedyStringArgument; -import dev.jorel.commandapi.arguments.IntegerArgument; -import dev.jorel.commandapi.arguments.IntegerRangeArgument; -import dev.jorel.commandapi.arguments.ItemStackArgument; -import dev.jorel.commandapi.arguments.ItemStackPredicateArgument; -import dev.jorel.commandapi.arguments.ListArgumentBuilder; -import dev.jorel.commandapi.arguments.LiteralArgument; -import dev.jorel.commandapi.arguments.LocationArgument; -import dev.jorel.commandapi.arguments.LocationType; -import dev.jorel.commandapi.arguments.LootTableArgument; -import dev.jorel.commandapi.arguments.MathOperationArgument; -import dev.jorel.commandapi.arguments.MultiLiteralArgument; -import dev.jorel.commandapi.arguments.NBTCompoundArgument; -import dev.jorel.commandapi.arguments.ObjectiveArgument; -import dev.jorel.commandapi.arguments.ObjectiveCriteriaArgument; -import dev.jorel.commandapi.arguments.ParticleArgument; -import dev.jorel.commandapi.arguments.PlayerArgument; -import dev.jorel.commandapi.arguments.PotionEffectArgument; -import dev.jorel.commandapi.arguments.RecipeArgument; -import dev.jorel.commandapi.arguments.RotationArgument; -import dev.jorel.commandapi.arguments.SafeSuggestions; -import dev.jorel.commandapi.arguments.ScoreHolderArgument; -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; -import dev.jorel.commandapi.arguments.ScoreboardSlotArgument; -import dev.jorel.commandapi.arguments.SoundArgument; -import dev.jorel.commandapi.arguments.StringArgument; -import dev.jorel.commandapi.arguments.TeamArgument; -import dev.jorel.commandapi.arguments.TextArgument; -import dev.jorel.commandapi.arguments.TimeArgument; -import dev.jorel.commandapi.arguments.WorldArgument; -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.executors.ExecutorType; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import net.kyori.adventure.inventory.Book; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; -import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.api.chat.TextComponent; public class Examples extends JavaPlugin { From a6d1095c65a93e38de2f9ec393dd5d267029bf2e Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 24 Nov 2022 18:11:01 -0500 Subject: [PATCH 147/638] Fix documentation-code file structure --- commandapi-documentation-code/pom.xml | 2 +- .../commandapi/examples/java/Examples.java | 0 .../commandapi/examples/kotlin/Examples.kt | 0 .../examples/kotlin/ExamplesKotlinDSL.kt | 0 docssrc/src/advancementargument.md | 4 +-- docssrc/src/adventurechatarguments.md | 8 ++--- docssrc/src/aliases.md | 4 +-- docssrc/src/arguments.md | 24 +++++++------- docssrc/src/asyncsuggestions.md | 4 +-- docssrc/src/biomeargument.md | 4 +-- docssrc/src/blockpredicateargs.md | 8 ++--- docssrc/src/blockstatearguments.md | 4 +-- docssrc/src/brigadier.md | 28 ++++++++-------- docssrc/src/brigadiersuggestions.md | 8 ++--- docssrc/src/chatarguments.md | 4 +-- docssrc/src/chatpreview.md | 8 ++--- docssrc/src/commandfailures.md | 4 +-- docssrc/src/commandregistration.md | 8 ++--- docssrc/src/commandtrees.md | 8 ++--- docssrc/src/conversion.md | 8 ++--- docssrc/src/customarguments.md | 8 ++--- docssrc/src/enchantmentargument.md | 4 +-- docssrc/src/entityarguments.md | 8 ++--- docssrc/src/environmentargs.md | 4 +-- docssrc/src/functionarguments.md | 4 +-- docssrc/src/functions.md | 4 +-- docssrc/src/functionwrapper.md | 4 +-- docssrc/src/help.md | 8 ++--- docssrc/src/itemstackarguments.md | 4 +-- docssrc/src/itemstackpredicateargs.md | 4 +-- docssrc/src/kotlindsl.md | 20 ++++++------ docssrc/src/listarguments.md | 4 +-- docssrc/src/listed.md | 4 +-- docssrc/src/literalarguments.md | 8 ++--- docssrc/src/locationargument.md | 4 +-- docssrc/src/loottableargument.md | 4 +-- docssrc/src/mathoperationarguments.md | 4 +-- docssrc/src/multilitargs.md | 4 +-- docssrc/src/native.md | 4 +-- docssrc/src/nbtarguments.md | 8 ++--- docssrc/src/normalexecutors.md | 16 +++++----- docssrc/src/objectivearguments.md | 8 ++--- docssrc/src/particlearguments.md | 8 ++--- docssrc/src/permissions.md | 16 +++++----- docssrc/src/potionarguments.md | 4 +-- docssrc/src/predicatetips.md | 20 ++++++------ docssrc/src/primitivearguments.md | 4 +-- docssrc/src/proxysender.md | 8 ++--- docssrc/src/rangedarguments.md | 4 +-- docssrc/src/recipeargument.md | 8 ++--- docssrc/src/requirements.md | 32 +++++++++---------- docssrc/src/resultingcommandexecutors.md | 12 +++---- docssrc/src/rotationargs.md | 4 +-- docssrc/src/safeargumentsuggestions.md | 28 ++++++++-------- docssrc/src/scoreboardarguments.md | 8 ++--- docssrc/src/shading.md | 8 ++--- docssrc/src/soundargument.md | 4 +-- docssrc/src/spigotchatarguments.md | 8 ++--- docssrc/src/stringarguments.md | 4 +-- docssrc/src/stringargumentsuggestions.md | 16 +++++----- docssrc/src/subcommands.md | 16 +++++----- docssrc/src/teamarguments.md | 4 +-- docssrc/src/timeargs.md | 4 +-- docssrc/src/tooltips.md | 24 +++++++------- 64 files changed, 261 insertions(+), 261 deletions(-) rename commandapi-documentation-code/src/main/{ => java}/dev/jorel/commandapi/examples/java/Examples.java (100%) rename commandapi-documentation-code/src/main/{ => kotlin}/dev/jorel/commandapi/examples/kotlin/Examples.kt (100%) rename commandapi-documentation-code/src/main/{ => kotlin}/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt (100%) diff --git a/commandapi-documentation-code/pom.xml b/commandapi-documentation-code/pom.xml index 0614fb4ffa..af50e36a4a 100644 --- a/commandapi-documentation-code/pom.xml +++ b/commandapi-documentation-code/pom.xml @@ -97,7 +97,7 @@ - ${project.basedir}/src/main/dev/jorel/commandapi/examples/kotlin + ${project.basedir}/src/main/kotlin/ diff --git a/commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java b/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java similarity index 100% rename from commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java rename to commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java diff --git a/commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt similarity index 100% rename from commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt rename to commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt diff --git a/commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt similarity index 100% rename from commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt rename to commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt diff --git a/docssrc/src/advancementargument.md b/docssrc/src/advancementargument.md index cbde40ac0c..2973ab0a14 100644 --- a/docssrc/src/advancementargument.md +++ b/docssrc/src/advancementargument.md @@ -19,11 +19,11 @@ Since we require a player, we will use the `PlayerArgument` for this example. Gi
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:advancementarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:advancementarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:advancementarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:advancementarguments}} ```
diff --git a/docssrc/src/adventurechatarguments.md b/docssrc/src/adventurechatarguments.md index 2874965bb6..9e3b27c55c 100644 --- a/docssrc/src/adventurechatarguments.md +++ b/docssrc/src/adventurechatarguments.md @@ -29,11 +29,11 @@ We can construct a book using the Adventure API's `Book.book(Component, Componen
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChatComponent}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChatComponent}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChatComponent}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChatComponent}} ```
@@ -61,11 +61,11 @@ In order to broadcast an Adventure `Component` to all players on the server, we
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChat}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:ArgumentAdventureChat}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChat}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentAdventureChat}} ```
diff --git a/docssrc/src/aliases.md b/docssrc/src/aliases.md index b0e89d586d..fc3107feab 100644 --- a/docssrc/src/aliases.md +++ b/docssrc/src/aliases.md @@ -11,11 +11,11 @@ In this example, we register the command `/getpos` that returns the command send
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:aliases}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:aliases}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:aliases}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:aliases}} ```
diff --git a/docssrc/src/arguments.md b/docssrc/src/arguments.md index d4a2e5c846..f6b948d928 100644 --- a/docssrc/src/arguments.md +++ b/docssrc/src/arguments.md @@ -26,11 +26,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax1}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax1}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax1}} ```
@@ -38,11 +38,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax2}} ```
@@ -50,11 +50,11 @@ The CommandAPI is very flexible when it comes to registering arguments, and lets
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax3}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:argumentsyntax3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax3}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentsyntax3}} ```
@@ -68,11 +68,11 @@ To access arguments, they have to be casted to the type that the argument repres
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentcasting}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:argumentcasting}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentcasting}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentcasting}} ```
@@ -163,11 +163,11 @@ We first register the first `/kill` command as normal:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd}} ```
@@ -177,11 +177,11 @@ Now we declare our command with arguments for our second command. Then, we can r
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:argumentkillcmd2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:argumentkillcmd2}} ```
diff --git a/docssrc/src/asyncsuggestions.md b/docssrc/src/asyncsuggestions.md index 8a6db5b314..81311a9564 100644 --- a/docssrc/src/asyncsuggestions.md +++ b/docssrc/src/asyncsuggestions.md @@ -66,11 +66,11 @@ We make use of the `ArgumentSuggestions.stringsAsync` method to provide asynchro
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:asyncreadfile}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:asyncreadfile}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:asyncreadfile}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:asyncreadfile}} ```
diff --git a/docssrc/src/biomeargument.md b/docssrc/src/biomeargument.md index 86481422e5..e1b4cce3a9 100644 --- a/docssrc/src/biomeargument.md +++ b/docssrc/src/biomeargument.md @@ -19,11 +19,11 @@ And we can set the biome of the current chunk as expected:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:biomearguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:biomearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:biomearguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:biomearguments}} ```
diff --git a/docssrc/src/blockpredicateargs.md b/docssrc/src/blockpredicateargs.md index 2c103cc549..9d44f58406 100644 --- a/docssrc/src/blockpredicateargs.md +++ b/docssrc/src/blockpredicateargs.md @@ -23,11 +23,11 @@ First, we declare our arguments. We want to use the `BlockPredicateArgument` sin
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments}} ```
@@ -41,11 +41,11 @@ Lastly, we register our command as normal using the `register()` method.
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:blockpredicatearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockpredicatearguments2}} ```
diff --git a/docssrc/src/blockstatearguments.md b/docssrc/src/blockstatearguments.md index 9ce63adae8..65f595f45b 100644 --- a/docssrc/src/blockstatearguments.md +++ b/docssrc/src/blockstatearguments.md @@ -23,11 +23,11 @@ And then we can simply set our block using `setBlockData()`:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:blockstateargument}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:blockstateargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockstateargument}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:blockstateargument}} ```
diff --git a/docssrc/src/brigadier.md b/docssrc/src/brigadier.md index f98dc06f15..e64c46b625 100644 --- a/docssrc/src/brigadier.md +++ b/docssrc/src/brigadier.md @@ -98,11 +98,11 @@ Now that we've established what we want, we can finally begin writing the code!
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:declareliteral}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:declareliteral}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareliteral}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareliteral}} ```
@@ -112,11 +112,11 @@ With that completed, we can now create our "argument" to this predicate. To do t
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:declarearguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:declarearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarearguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarearguments}} ```
@@ -126,11 +126,11 @@ Now we're going to get into the very nitty-gritty part - the predicate declarati
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:declareargumentbuilders}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:declareargumentbuilders}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareargumentbuilders}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:declareargumentbuilders}} ```
@@ -140,11 +140,11 @@ Now we'll define our predicate. Since this is sort of a "meta-command" (it direc
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:declarefork}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:declarefork}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarefork}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarefork}} ```
@@ -154,11 +154,11 @@ Finally, we can now link everything up. We know that `numerator` comes first, **
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:declarerandomchance}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:declarerandomchance}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarerandomchance}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:declarerandomchance}} ```
@@ -168,11 +168,11 @@ Finally, we "register" the command. In this case, we're actually just adding the
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:injectintoroot}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:injectintoroot}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:injectintoroot}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:injectintoroot}} ```
@@ -186,11 +186,11 @@ So, hopefully that wasn't too confusing! If you're still lost, here's the whole
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:brigadier}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:brigadier}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:brigadier}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:brigadier}} ```
diff --git a/docssrc/src/brigadiersuggestions.md b/docssrc/src/brigadiersuggestions.md index c5e1763427..21b0ad29a9 100644 --- a/docssrc/src/brigadiersuggestions.md +++ b/docssrc/src/brigadiersuggestions.md @@ -25,11 +25,11 @@ For this command, we'll use a `GreedyStringArgument` because that allows users t
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions1}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions1}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions1}} ```
@@ -55,11 +55,11 @@ We use the command suggestions declared above by using the `replaceSuggestions`
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions2}} ```
diff --git a/docssrc/src/chatarguments.md b/docssrc/src/chatarguments.md index 63eba98c6e..4f99770ffa 100644 --- a/docssrc/src/chatarguments.md +++ b/docssrc/src/chatarguments.md @@ -31,11 +31,11 @@ We then use the `ChatColorArgument` to change the player's name color:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatcolorarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:chatcolorarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcolorarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcolorarguments}} ```
diff --git a/docssrc/src/chatpreview.md b/docssrc/src/chatpreview.md index af1516756f..52e36b71d3 100644 --- a/docssrc/src/chatpreview.md +++ b/docssrc/src/chatpreview.md @@ -110,11 +110,11 @@ For execution, we do the same procedure, because the text that the user enters s
```java,Spigot -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigot}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigot}} ``` ```java,Paper -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventure}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventure}} ```
@@ -136,11 +136,11 @@ By using `.usePreview(true)`, we don't have to re-translate `&` formatting codes
```java,Spigot -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigotusepreview}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewspigotusepreview}} ``` ```java,Paper -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventureusepreview}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:chatpreviewadventureusepreview}} ```
diff --git a/docssrc/src/commandfailures.md b/docssrc/src/commandfailures.md index 4252c506aa..819c9acfb5 100644 --- a/docssrc/src/commandfailures.md +++ b/docssrc/src/commandfailures.md @@ -22,11 +22,11 @@ Therefore, to gracefully handle this with a proper error message, we use one of
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:commandfailures}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:commandfailures}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandfailures}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandfailures}} ```
diff --git a/docssrc/src/commandregistration.md b/docssrc/src/commandregistration.md index f192f3767f..d28461681b 100644 --- a/docssrc/src/commandregistration.md +++ b/docssrc/src/commandregistration.md @@ -7,11 +7,11 @@ I think the easiest way to explain it is with an example:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:commandregistration}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:commandregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandregistration}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandregistration}} ```
@@ -213,11 +213,11 @@ To replace a command, we can first unregister it and then register our implement
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:commandunregistration}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:commandunregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandunregistration}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:commandunregistration}} ```
diff --git a/docssrc/src/commandtrees.md b/docssrc/src/commandtrees.md index e1290a30d3..b98b75434d 100644 --- a/docssrc/src/commandtrees.md +++ b/docssrc/src/commandtrees.md @@ -67,11 +67,11 @@ We can do this by adding a `PlayerArgument` to our command. As described above,
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_sayhi1}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_sayhi1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_sayhi1}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_sayhi1}} ```
@@ -102,11 +102,11 @@ Say we wanted to create a plugin to let a user edit signs. We have a single comm
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_signedit}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:CommandTree_signedit}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_signedit}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandTree_signedit}} ```
diff --git a/docssrc/src/conversion.md b/docssrc/src/conversion.md index 3de609575d..2eb5ab5d00 100644 --- a/docssrc/src/conversion.md +++ b/docssrc/src/conversion.md @@ -42,11 +42,11 @@ As you can see, it declares 3 commands: `/gmc`, `/gms` and `/i`. We can now begi
```java,Java -public {{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:converter}} +public {{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:converter}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter}} ```
@@ -98,11 +98,11 @@ With the EssentialsX plugin, the `` value can only take numbers between 0
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:converter2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:converter2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:converter2}} ```
diff --git a/docssrc/src/customarguments.md b/docssrc/src/customarguments.md index e2e9bcaad4..2415caf2c3 100644 --- a/docssrc/src/customarguments.md +++ b/docssrc/src/customarguments.md @@ -87,11 +87,11 @@ Say we want to create an argument to represents the list of available worlds on
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:customarguments2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:customarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments2}} ```
@@ -116,11 +116,11 @@ Since we have defined the method `worldArgument()` which automatically generates
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:customarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:customarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:customarguments}} ```
diff --git a/docssrc/src/enchantmentargument.md b/docssrc/src/enchantmentargument.md index b65645d8f9..16adf7dfae 100644 --- a/docssrc/src/enchantmentargument.md +++ b/docssrc/src/enchantmentargument.md @@ -19,11 +19,11 @@ Since most enchantment levels range between 1 and 5, we will also make use of th
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:enchantmentarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:enchantmentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:enchantmentarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:enchantmentarguments}} ```
diff --git a/docssrc/src/entityarguments.md b/docssrc/src/entityarguments.md index 4fff8bfa47..52559f707b 100644 --- a/docssrc/src/entityarguments.md +++ b/docssrc/src/entityarguments.md @@ -32,11 +32,11 @@ Instead, we can combine all of these into one by using the `EntitySelectorArgume
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:entityselectorarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:entityselectorarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:entityselectorarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:entityselectorarguments}} ```
@@ -98,11 +98,11 @@ Since we're trying to specify an entity type, we will use the `EntityTypeArgumen
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:entitytypearguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:entitytypearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:entitytypearguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:entitytypearguments}} ```
diff --git a/docssrc/src/environmentargs.md b/docssrc/src/environmentargs.md index 430b1e8b34..02b92bebdf 100644 --- a/docssrc/src/environmentargs.md +++ b/docssrc/src/environmentargs.md @@ -19,11 +19,11 @@ Using the world name and the environment of the world, we can use Bukkit's `Worl
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:environmentarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:environmentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:environmentarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:environmentarguments}} ```
diff --git a/docssrc/src/functionarguments.md b/docssrc/src/functionarguments.md index c27e5f7c3b..e70ee927d0 100644 --- a/docssrc/src/functionarguments.md +++ b/docssrc/src/functionarguments.md @@ -21,11 +21,11 @@ When provided with a function, it will execute that function. If instead a tag i
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:functionarguments2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:functionarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments2}} ```
diff --git a/docssrc/src/functions.md b/docssrc/src/functions.md index 461bfaaab8..7a7566cc70 100644 --- a/docssrc/src/functions.md +++ b/docssrc/src/functions.md @@ -31,11 +31,11 @@ Say we have a command `/killall` that simply kills all entities in all worlds on
```java,Java -public {{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:functionregistration}} +public {{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:functionregistration}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionregistration}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionregistration}} ```
diff --git a/docssrc/src/functionwrapper.md b/docssrc/src/functionwrapper.md index 00d12678e0..c29f8e5401 100644 --- a/docssrc/src/functionwrapper.md +++ b/docssrc/src/functionwrapper.md @@ -35,11 +35,11 @@ The `run()` method runs the function. The command executor that runs this functi
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:functionarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:functionarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:functionarguments}} ```
diff --git a/docssrc/src/help.md b/docssrc/src/help.md index 396c1c1110..9a09be93b8 100644 --- a/docssrc/src/help.md +++ b/docssrc/src/help.md @@ -48,11 +48,11 @@ In this simple example, we implement the above screenshot's help topic. We regis
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:help}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:help}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:help}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:help}} ```
@@ -62,11 +62,11 @@ We could also register this command using the `withHelp` method instead:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:help2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:help2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:help2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:help2}} ```
diff --git a/docssrc/src/itemstackarguments.md b/docssrc/src/itemstackarguments.md index 98793f6881..2385984d5f 100644 --- a/docssrc/src/itemstackarguments.md +++ b/docssrc/src/itemstackarguments.md @@ -19,11 +19,11 @@ With this syntax, we can easily create our command:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:itemstackarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:itemstackarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackarguments}} ```
diff --git a/docssrc/src/itemstackpredicateargs.md b/docssrc/src/itemstackpredicateargs.md index 18ed8569ea..bb8e6c430a 100644 --- a/docssrc/src/itemstackpredicateargs.md +++ b/docssrc/src/itemstackpredicateargs.md @@ -17,11 +17,11 @@ We implement this with a simple for loop over the player's inventory and remove
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:itemstackpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:itemstackpredicatearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackpredicatearguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:itemstackpredicatearguments}} ```
diff --git a/docssrc/src/kotlindsl.md b/docssrc/src/kotlindsl.md index 4c0bb342ad..8b130286ad 100644 --- a/docssrc/src/kotlindsl.md +++ b/docssrc/src/kotlindsl.md @@ -19,11 +19,11 @@ We can then use the following command registration:
```kotlin,CommandTree -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommand}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommand}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommand2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommand2}} ```
@@ -95,11 +95,11 @@ Below, the `sendMessageTo` command is adding a broadcast option which should onl
```kotlin,CommandTree -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommandRequirement}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommandRequirement}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommandRequirement2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslSendMessageToCommandRequirement2}} ```
@@ -113,11 +113,11 @@ You can also restrict the use of a whole command by using requirements:
```kotlin,CommandTree -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslCommandRequirements}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslCommandRequirements}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslCommandRequirements2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:dslCommandRequirements2}} ```
@@ -144,11 +144,11 @@ As with the Java method of registering commands, with a CommandTree you can decl
```kotlin,CommandTree -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:optionalArgument}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:optionalArgument}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:optionalArgument2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:optionalArgument2}} ```
@@ -170,11 +170,11 @@ We make use of the `argument()` method to provide an argument implementation and
```kotlin,CommandTree -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:replaceSuggestions}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:replaceSuggestions}} ``` ```kotlin,CommandAPICommand -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:replaceSuggestions2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt:replaceSuggestions2}} ```
diff --git a/docssrc/src/listarguments.md b/docssrc/src/listarguments.md index 409506549a..2ad75298d6 100644 --- a/docssrc/src/listarguments.md +++ b/docssrc/src/listarguments.md @@ -130,11 +130,11 @@ To do this, we create a command with an `IntegerArgument` to specify the amount
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ListArgument_MultiGive}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:ListArgument_MultiGive}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ListArgument_MultiGive}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:ListArgument_MultiGive}} ```
diff --git a/docssrc/src/listed.md b/docssrc/src/listed.md index bfe9c22d9e..37f1aad344 100644 --- a/docssrc/src/listed.md +++ b/docssrc/src/listed.md @@ -25,11 +25,11 @@ Let's also say that in our implementation of this command, we don't actually per
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:listed}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:listed}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:listed}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:listed}} ```
diff --git a/docssrc/src/literalarguments.md b/docssrc/src/literalarguments.md index 512f483490..4a64c0eee7 100644 --- a/docssrc/src/literalarguments.md +++ b/docssrc/src/literalarguments.md @@ -47,11 +47,11 @@ As an example, let's declare the literal "hello" as a valid literal for this com
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:literalarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:literalarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments}} ```
@@ -89,11 +89,11 @@ This is a demonstration of how you could create a command similar to Minecraft's
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:literalarguments2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:literalarguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments2}} ```
diff --git a/docssrc/src/locationargument.md b/docssrc/src/locationargument.md index 70ffae392c..a7e0600de9 100644 --- a/docssrc/src/locationargument.md +++ b/docssrc/src/locationargument.md @@ -43,11 +43,11 @@ Simply put, given the coordinates provided to the command, "break" the block by
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:locationarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:locationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:locationarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:locationarguments}} ```
diff --git a/docssrc/src/loottableargument.md b/docssrc/src/loottableargument.md index 5079cf958a..383fbf10d3 100644 --- a/docssrc/src/loottableargument.md +++ b/docssrc/src/loottableargument.md @@ -19,11 +19,11 @@ We ensure that the location provided is a container (such as a chest or shulkerb
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:loottablearguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:loottablearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:loottablearguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:loottablearguments}} ```
diff --git a/docssrc/src/mathoperationarguments.md b/docssrc/src/mathoperationarguments.md index b389844df1..fad5b13edb 100644 --- a/docssrc/src/mathoperationarguments.md +++ b/docssrc/src/mathoperationarguments.md @@ -63,11 +63,11 @@ As with any command, we declare our arguments, cast them properly and then we wr
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:mathoperationarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:mathoperationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:mathoperationarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:mathoperationarguments}} ```
diff --git a/docssrc/src/multilitargs.md b/docssrc/src/multilitargs.md index fbfe2076e6..fec7c2eab4 100644 --- a/docssrc/src/multilitargs.md +++ b/docssrc/src/multilitargs.md @@ -15,11 +15,11 @@ In this example, we'll show how to use multi literals to declare Minecraft's `/g
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:multiliteralarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:multiliteralarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiliteralarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiliteralarguments}} ```
diff --git a/docssrc/src/native.md b/docssrc/src/native.md index 83fa7e9314..c0141c2b2c 100644 --- a/docssrc/src/native.md +++ b/docssrc/src/native.md @@ -53,11 +53,11 @@ As you can see, this command takes no arguments. This is fine, since our "argume
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:nativesender}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:nativesender}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:nativesender}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:nativesender}} ```
diff --git a/docssrc/src/nbtarguments.md b/docssrc/src/nbtarguments.md index cee467523f..979a13713d 100644 --- a/docssrc/src/nbtarguments.md +++ b/docssrc/src/nbtarguments.md @@ -40,11 +40,11 @@ Now, we can configure the CommandAPI using the `CommandAPI.onLoad()` method to u
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundargumentonload}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundargumentonload}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundargumentonload}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundargumentonload}} ```
@@ -66,11 +66,11 @@ Since the underlying implementation of the `NBTCompoundArgument` can change (e.g
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:nbtcompoundarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:nbtcompoundarguments}} ```
diff --git a/docssrc/src/normalexecutors.md b/docssrc/src/normalexecutors.md index e607568bdf..299b70f7fa 100644 --- a/docssrc/src/normalexecutors.md +++ b/docssrc/src/normalexecutors.md @@ -36,11 +36,11 @@ We use an argument "message" to hold the message to broadcast, we provide some a
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3_1}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3_1}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3_1}} ```
@@ -80,11 +80,11 @@ Say we wanted to create a command `/suicide`, which kills the player that execut
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors}} ```
@@ -106,11 +106,11 @@ Extending on the suicide example above, we could write another implementation fo
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors2}} ```
@@ -158,11 +158,11 @@ Expanding on the suicide example above, we can restrict the command to only play
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:normalcommandexecutors3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:normalcommandexecutors3}} ```
diff --git a/docssrc/src/objectivearguments.md b/docssrc/src/objectivearguments.md index f5e0c8fe72..be9213b1e2 100644 --- a/docssrc/src/objectivearguments.md +++ b/docssrc/src/objectivearguments.md @@ -30,11 +30,11 @@ Given that an objective has to be casted to a String, we have to find a way to c
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:objectiveargument}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:objectiveargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectiveargument}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectiveargument}} ```
@@ -62,11 +62,11 @@ To do this, we're going to take advantage of Bukkit's `Scoreboard.getObjectivesB
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:objectivecriteriaarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:objectivecriteriaarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectivecriteriaarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:objectivecriteriaarguments}} ```
diff --git a/docssrc/src/particlearguments.md b/docssrc/src/particlearguments.md index 0451a7faf9..3f53a92881 100644 --- a/docssrc/src/particlearguments.md +++ b/docssrc/src/particlearguments.md @@ -50,11 +50,11 @@ With this, we can simply spawn the particle using the `World.spawnParticle(Parti
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:particlearguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:particlearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments}} ```
@@ -78,11 +78,11 @@ In this case, we'll use the `World.spawnParticle(Particle particle, Location loc
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:particlearguments2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:particlearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:particlearguments2}} ```
diff --git a/docssrc/src/permissions.md b/docssrc/src/permissions.md index 2f98eda353..4996bafffc 100644 --- a/docssrc/src/permissions.md +++ b/docssrc/src/permissions.md @@ -30,11 +30,11 @@ Say we created a command `/god` that sets a player as being invulnerable. Since
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:permissions}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:permissions}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions}} ```
@@ -44,11 +44,11 @@ As stated above, it is possible to assign a permission using a String instead of
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:permissions2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:permissions2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions2}} ```
@@ -85,11 +85,11 @@ We first declare the command as normal. Nothing fancy is going on here:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:permissions3_1}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:permissions3_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_1}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_1}} ```
@@ -99,11 +99,11 @@ Now we declare our command with arguments. We use a `PlayerArgument` and apply t
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:permissions3_2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:permissions3_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions3_2}} ```
diff --git a/docssrc/src/potionarguments.md b/docssrc/src/potionarguments.md index 6ec4c833ba..4bdbc81695 100644 --- a/docssrc/src/potionarguments.md +++ b/docssrc/src/potionarguments.md @@ -19,11 +19,11 @@ In this example, we utilize some of the other arguments that we've described ear
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:potioneffectarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:potioneffectarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:potioneffectarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:potioneffectarguments}} ```
diff --git a/docssrc/src/predicatetips.md b/docssrc/src/predicatetips.md index 05e11334af..a6792b7a84 100644 --- a/docssrc/src/predicatetips.md +++ b/docssrc/src/predicatetips.md @@ -5,11 +5,11 @@ In our [example for creating a party system](./requirements.md#example---a-party
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} ```
@@ -19,11 +19,11 @@ And for our party teleportation command, we had the following code:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirementstp}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:requirementstp}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementstp}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementstp}} ```
@@ -33,11 +33,11 @@ We can simplify this code by declaring the predicate:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:predicatetips}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:predicatetips}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips}} ```
@@ -47,11 +47,11 @@ Now, we can use the predicate `testIfPlayerHasParty` in our code for creating a
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:predicatetips2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:predicatetips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips2}} ```
@@ -61,11 +61,11 @@ And we can use it again for our code for teleporting to party members:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:predicatetips3}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:predicatetips3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips3}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:predicatetips3}} ```
diff --git a/docssrc/src/primitivearguments.md b/docssrc/src/primitivearguments.md index 2c815d4ba6..cf0d49e75c 100644 --- a/docssrc/src/primitivearguments.md +++ b/docssrc/src/primitivearguments.md @@ -35,11 +35,11 @@ We first retrieve the keys from the configuration file using the typical Bukkit
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:booleanargs}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:booleanargs}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:booleanargs}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:booleanargs}} ```
diff --git a/docssrc/src/proxysender.md b/docssrc/src/proxysender.md index f7e99fc0f4..95c673ec97 100644 --- a/docssrc/src/proxysender.md +++ b/docssrc/src/proxysender.md @@ -11,11 +11,11 @@ Say we have a command which kills the sender of a command. This is easily implem
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:proxysender}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:proxysender}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender}} ```
@@ -31,11 +31,11 @@ To handle this case, we can use the `.executesProxy()` method to ensure that the
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:proxysender2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:proxysender2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:proxysender2}} ```
diff --git a/docssrc/src/rangedarguments.md b/docssrc/src/rangedarguments.md index 71b6d691a4..9e9cbcc631 100644 --- a/docssrc/src/rangedarguments.md +++ b/docssrc/src/rangedarguments.md @@ -56,11 +56,11 @@ Now, we simply create our arguments using `IntegerRangeArgument` for our range a
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:rangedarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:rangedarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:rangedarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:rangedarguments}} ```
diff --git a/docssrc/src/recipeargument.md b/docssrc/src/recipeargument.md index 47cdd9bfba..8a66c578f4 100644 --- a/docssrc/src/recipeargument.md +++ b/docssrc/src/recipeargument.md @@ -19,11 +19,11 @@ As such, we easily implement it by specifying the `RecipeArgument`, casting it a
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:recipearguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:recipearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments}} ```
@@ -45,11 +45,11 @@ This is then implemented trivially as follows:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:recipearguments2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:recipearguments2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:recipearguments2}} ```
diff --git a/docssrc/src/requirements.md b/docssrc/src/requirements.md index caa8b06483..bf1af76203 100644 --- a/docssrc/src/requirements.md +++ b/docssrc/src/requirements.md @@ -38,11 +38,11 @@ We want to put a requirement on this command that the player needs to have at le
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:requirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements}} ```
@@ -75,11 +75,11 @@ To represent our party in code, we'll use a simple `Map` called `partyMembers` w
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirementsmap}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:requirementsmap}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementsmap}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirementsmap}} ```
@@ -89,11 +89,11 @@ To begin with, let's create the `/party create ` command. First, we m
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:requirements2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements2}} ```
@@ -105,11 +105,11 @@ Now that we've declared our arguments, we can now declare our main command `/par
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements3}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:requirements3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements3}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements3}} ```
@@ -121,11 +121,11 @@ So now we've added the ability to create a party if we're not already in it. Now
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements4}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:requirements4}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements4}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements4}} ```
@@ -137,11 +137,11 @@ Once the arguments have been declared, we can now implement our party teleportat
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:requirements5}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:requirements5}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements5}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:requirements5}} ```
@@ -222,11 +222,11 @@ When a player creates a new party, we need to ensure that their requirements are
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:updatingrequirements}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:updatingrequirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:updatingrequirements}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:updatingrequirements}} ```
@@ -250,11 +250,11 @@ For example, you can apply multiple requirements for a command by calling the `w
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:multiplerequirements}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:multiplerequirements}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiplerequirements}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:multiplerequirements}} ```
diff --git a/docssrc/src/resultingcommandexecutors.md b/docssrc/src/resultingcommandexecutors.md index 3b9a55e4be..692b063f3a 100644 --- a/docssrc/src/resultingcommandexecutors.md +++ b/docssrc/src/resultingcommandexecutors.md @@ -27,11 +27,11 @@ Say we want a command that returns a random number as a result. This can then be
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor}} ```
@@ -58,11 +58,11 @@ Since we're declaring commands that are to be used in `/execute`, we must ensure
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor2}} ```
@@ -72,11 +72,11 @@ Now we write our implementation for `/givereward`. In this example, we use the `
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor3}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:resultingcommandexecutor3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor3}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:resultingcommandexecutor3}} ```
diff --git a/docssrc/src/rotationargs.md b/docssrc/src/rotationargs.md index 1ec87071dc..19218cdba5 100644 --- a/docssrc/src/rotationargs.md +++ b/docssrc/src/rotationargs.md @@ -28,11 +28,11 @@ To do this, we'll use the rotation from the `RotationArgument` and select an ent
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:rotationarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:rotationarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:rotationarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:rotationarguments}} ```
diff --git a/docssrc/src/safeargumentsuggestions.md b/docssrc/src/safeargumentsuggestions.md index 3697a54286..e5ffde80f6 100644 --- a/docssrc/src/safeargumentsuggestions.md +++ b/docssrc/src/safeargumentsuggestions.md @@ -127,11 +127,11 @@ To do this, we first register our custom items:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments}} ```
@@ -141,11 +141,11 @@ Once we've done that, we can now include them in our command registration. To do
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:SafeRecipeArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeRecipeArguments_2}} ```
@@ -167,11 +167,11 @@ Now say that we don't want non-op players to spawn bosses. To do this, we'll cre
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments}} ```
@@ -181,11 +181,11 @@ We then use our safe arguments to return an `EntityType[]` as the list of values
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_2}} ```
@@ -195,11 +195,11 @@ Now we register our command as normal:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_3}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:SafeMobSpawnArguments_3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_3}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeMobSpawnArguments_3}} ```
@@ -221,11 +221,11 @@ Now, we don't want to remove a potion effect that already exists on a player, so
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments}} ```
@@ -235,11 +235,11 @@ And then we can register our command as normal:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:SafePotionArguments_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments_2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafePotionArguments_2}} ```
diff --git a/docssrc/src/scoreboardarguments.md b/docssrc/src/scoreboardarguments.md index 224e9c2bc1..29f5f2b879 100644 --- a/docssrc/src/scoreboardarguments.md +++ b/docssrc/src/scoreboardarguments.md @@ -41,11 +41,11 @@ Note how we use `..9` to represent 9 or less deaths (since ranges are inclusive)
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:scoreholderargument}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:scoreholderargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreholderargument}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreholderargument}} ```
@@ -107,11 +107,11 @@ We implement this simply by using the `ScoreboardSlotArgument` as our argument,
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:scoreboardslotargument}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:scoreboardslotargument}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreboardslotargument}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:scoreboardslotargument}} ```
diff --git a/docssrc/src/shading.md b/docssrc/src/shading.md index 6e6fd0e298..421607abe7 100644 --- a/docssrc/src/shading.md +++ b/docssrc/src/shading.md @@ -44,11 +44,11 @@ The `CommandAPIConfig` class follows a typical builder pattern (without you havi
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:CommandAPIConfigSilent}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:CommandAPIConfigSilent}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandAPIConfigSilent}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:CommandAPIConfigSilent}} ```
@@ -66,11 +66,11 @@ The `onDisable()` method disables the CommandAPI gracefully. This should be plac
```java,Java -public {{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:shading}} +public {{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:shading}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:shading}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:shading}} ```
diff --git a/docssrc/src/soundargument.md b/docssrc/src/soundargument.md index 81acf32ef5..0ad9ae08bb 100644 --- a/docssrc/src/soundargument.md +++ b/docssrc/src/soundargument.md @@ -19,11 +19,11 @@ This command simply plays the provided sound to the current player:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:soundarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:soundarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:soundarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:soundarguments}} ```
diff --git a/docssrc/src/spigotchatarguments.md b/docssrc/src/spigotchatarguments.md index 71fa8c0fc2..deb616eae1 100644 --- a/docssrc/src/spigotchatarguments.md +++ b/docssrc/src/spigotchatarguments.md @@ -83,11 +83,11 @@ Now we can create our book command. We use the player as the main target by usin
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatcomponentarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:chatcomponentarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcomponentarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatcomponentarguments}} ```
@@ -125,11 +125,11 @@ _Bob_ would receive the message "Hello Bob", whereas _Michael_ would receive the
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:chatarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:chatarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:chatarguments}} ```
diff --git a/docssrc/src/stringarguments.md b/docssrc/src/stringarguments.md index 636b2b9c8f..0a63c7436c 100644 --- a/docssrc/src/stringarguments.md +++ b/docssrc/src/stringarguments.md @@ -93,11 +93,11 @@ This would be ideal for a greedy string, since it can consume all text after the
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:greedystringarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:greedystringarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:greedystringarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:greedystringarguments}} ```
diff --git a/docssrc/src/stringargumentsuggestions.md b/docssrc/src/stringargumentsuggestions.md index eddf53969f..1d842d42e4 100644 --- a/docssrc/src/stringargumentsuggestions.md +++ b/docssrc/src/stringargumentsuggestions.md @@ -19,11 +19,11 @@ We then implement our warp teleporting command using `replaceSuggestions()` on t
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions1}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions1}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions1}} ```
@@ -53,11 +53,11 @@ Let's say we have a simple class to get the friends of a command sender:
```java,Java -public {{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_1}} +public {{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_1}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_1}} ```
@@ -67,11 +67,11 @@ We can then use this to generate our suggested list of friends:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestions2_2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestions2_2}} ```
@@ -123,11 +123,11 @@ When run, this command will send a message to a target player within the provide
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestionsPrevious}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:ArgumentSuggestionsPrevious}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestionsPrevious}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:ArgumentSuggestionsPrevious}} ```
diff --git a/docssrc/src/subcommands.md b/docssrc/src/subcommands.md index 756a089e35..00ea99d3e8 100644 --- a/docssrc/src/subcommands.md +++ b/docssrc/src/subcommands.md @@ -33,11 +33,11 @@ We can implement this by creating a `CommandAPICommand` with the command name `a
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:subcommandspart}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:subcommandspart}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandspart}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandspart}} ```
@@ -47,11 +47,11 @@ Similarly, we have another part `remove `. We can declar
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:subcommands}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:subcommands}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands}} ```
@@ -61,11 +61,11 @@ Finally, we can link everything up together to the `perm` command and register t
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:subcommandsend}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:subcommandsend}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandsend}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommandsend}} ```
@@ -77,11 +77,11 @@ Another, more intuitive method, is to shove everything in one go without creatin
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:subcommands1}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:subcommands1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands1}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:subcommands1}} ```
diff --git a/docssrc/src/teamarguments.md b/docssrc/src/teamarguments.md index 789c9afe74..2aad03ba9b 100644 --- a/docssrc/src/teamarguments.md +++ b/docssrc/src/teamarguments.md @@ -17,11 +17,11 @@ To do this, given a team we want to use the `setAllowFriendlyFire(boolean)` func
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:teamarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:teamarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:teamarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:teamarguments}} ```
diff --git a/docssrc/src/timeargs.md b/docssrc/src/timeargs.md index 9770ab7395..a769600fd2 100644 --- a/docssrc/src/timeargs.md +++ b/docssrc/src/timeargs.md @@ -23,11 +23,11 @@ Say we have a command `bigmsg` that displays a title message to all players for
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:timearguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:timearguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:timearguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:timearguments}} ```
diff --git a/docssrc/src/tooltips.md b/docssrc/src/tooltips.md index 84c717cb8b..7799a425f8 100644 --- a/docssrc/src/tooltips.md +++ b/docssrc/src/tooltips.md @@ -47,11 +47,11 @@ First, we'll declare our arguments. Here, we'll use the `stringsWithTooltips` me
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:Tooltips1}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:Tooltips1}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips1}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips1}} ```
@@ -61,11 +61,11 @@ Finally, we declare our command as normal:
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:Tooltips2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:Tooltips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips2}} ```
@@ -98,11 +98,11 @@ Let's say we've created a simple plugin which has custom items. For a custom ite
```java,Java -public {{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:Tooltips3}} +public {{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:Tooltips3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips3}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips3}} ```
@@ -114,11 +114,11 @@ Let's also say that our plugin has registered lots of `CustomItem`s and has this
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:Tooltips4}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:Tooltips4}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips4}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:Tooltips4}} ```
@@ -169,11 +169,11 @@ First, we'll declare our arguments. Here, we use a `LocationArgument` and use th
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips}} ```
@@ -183,11 +183,11 @@ In the arguments declaration, we've casted the command sender to a player. To en
```java,Java -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips2}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:SafeTooltips2}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-documentation-code/src/main/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips2}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:SafeTooltips2}} ```
From 620c94dbeddd3633a9893e2ed4b830b34273566c Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 30 Nov 2022 09:49:02 -0500 Subject: [PATCH 148/638] Rename AbstractPlatform.java to CommandAPIPlatform --- .../src/main/java/dev/jorel/commandapi/Brigadier.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/CommandAPI.java | 6 +++--- .../java/dev/jorel/commandapi/CommandAPIHandler.java | 6 +++--- .../{AbstractPlatform.java => CommandAPIPlatform.java} | 2 +- .../dev/jorel/commandapi/CommandAPIVersionHandler.java | 2 +- .../src/main/java/dev/jorel/commandapi/Execution.java | 2 +- .../jorel/commandapi/arguments/AbstractArgument.java | 4 ++-- .../java/dev/jorel/commandapi/CommandAPIBukkit.java | 2 +- .../commandapi/arguments/AdvancementArgument.java | 6 +++--- .../commandapi/arguments/AdventureChatArgument.java | 6 +++--- .../arguments/AdventureChatComponentArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/AngleArgument.java | 4 ++-- .../dev/jorel/commandapi/arguments/AxisArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/BiomeArgument.java | 6 +++--- .../commandapi/arguments/BlockPredicateArgument.java | 6 +++--- .../jorel/commandapi/arguments/BlockStateArgument.java | 6 +++--- .../jorel/commandapi/arguments/BooleanArgument.java | 4 ++-- .../dev/jorel/commandapi/arguments/ChatArgument.java | 6 +++--- .../jorel/commandapi/arguments/ChatColorArgument.java | 6 +++--- .../commandapi/arguments/ChatComponentArgument.java | 6 +++--- .../jorel/commandapi/arguments/CommandArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/CustomArgument.java | 10 +++++----- .../dev/jorel/commandapi/arguments/DoubleArgument.java | 4 ++-- .../commandapi/arguments/EnchantmentArgument.java | 6 +++--- .../commandapi/arguments/EntitySelectorArgument.java | 6 +++--- .../jorel/commandapi/arguments/EntityTypeArgument.java | 6 +++--- .../commandapi/arguments/EnvironmentArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/FloatArgument.java | 6 +++--- .../jorel/commandapi/arguments/FloatRangeArgument.java | 6 +++--- .../jorel/commandapi/arguments/FunctionArgument.java | 6 +++--- .../commandapi/arguments/GreedyStringArgument.java | 6 +++--- .../jorel/commandapi/arguments/IntegerArgument.java | 6 +++--- .../commandapi/arguments/IntegerRangeArgument.java | 6 +++--- .../jorel/commandapi/arguments/ItemStackArgument.java | 6 +++--- .../arguments/ItemStackPredicateArgument.java | 6 +++--- .../jorel/commandapi/arguments/ListArgumentCommon.java | 6 +++--- .../jorel/commandapi/arguments/LiteralArgument.java | 6 +++--- .../jorel/commandapi/arguments/Location2DArgument.java | 6 +++--- .../jorel/commandapi/arguments/LocationArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/LongArgument.java | 6 +++--- .../jorel/commandapi/arguments/LootTableArgument.java | 6 +++--- .../commandapi/arguments/MathOperationArgument.java | 6 +++--- .../commandapi/arguments/MultiLiteralArgument.java | 6 +++--- .../commandapi/arguments/NBTCompoundArgument.java | 6 +++--- .../commandapi/arguments/NamespacedKeyArgument.java | 6 +++--- .../jorel/commandapi/arguments/ObjectiveArgument.java | 6 +++--- .../arguments/ObjectiveCriteriaArgument.java | 6 +++--- .../commandapi/arguments/OfflinePlayerArgument.java | 6 +++--- .../jorel/commandapi/arguments/ParticleArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/PlayerArgument.java | 6 +++--- .../commandapi/arguments/PotionEffectArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/RecipeArgument.java | 6 +++--- .../jorel/commandapi/arguments/RotationArgument.java | 6 +++--- .../commandapi/arguments/ScoreHolderArgument.java | 6 +++--- .../commandapi/arguments/ScoreboardSlotArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/SoundArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/StringArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/TeamArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/TextArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/TimeArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/UUIDArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/WorldArgument.java | 6 +++--- .../dev/jorel/commandapi/CommandAPIVersionHandler.java | 2 +- .../dev/jorel/commandapi/CommandAPIVersionHandler.java | 2 +- .../java/dev/jorel/commandapi/CommandAPISponge.java | 2 +- .../dev/jorel/commandapi/CommandAPIVersionHandler.java | 2 +- .../jorel/commandapi/arguments/BooleanArgument.java | 4 ++-- .../dev/jorel/commandapi/arguments/DoubleArgument.java | 4 ++-- .../dev/jorel/commandapi/arguments/FloatArgument.java | 6 +++--- .../commandapi/arguments/GreedyStringArgument.java | 6 +++--- .../jorel/commandapi/arguments/IntegerArgument.java | 6 +++--- .../jorel/commandapi/arguments/LiteralArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/LongArgument.java | 6 +++--- .../commandapi/arguments/MultiLiteralArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/StringArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/TextArgument.java | 6 +++--- .../java/dev/jorel/commandapi/CommandAPIVelocity.java | 2 +- .../dev/jorel/commandapi/CommandAPIVersionHandler.java | 2 +- .../jorel/commandapi/arguments/BooleanArgument.java | 4 ++-- .../dev/jorel/commandapi/arguments/DoubleArgument.java | 4 ++-- .../dev/jorel/commandapi/arguments/FloatArgument.java | 6 +++--- .../commandapi/arguments/GreedyStringArgument.java | 6 +++--- .../jorel/commandapi/arguments/IntegerArgument.java | 6 +++--- .../jorel/commandapi/arguments/LiteralArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/LongArgument.java | 6 +++--- .../commandapi/arguments/MultiLiteralArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/StringArgument.java | 6 +++--- .../dev/jorel/commandapi/arguments/TextArgument.java | 6 +++--- 88 files changed, 237 insertions(+), 237 deletions(-) rename commandapi-core/src/main/java/dev/jorel/commandapi/{AbstractPlatform.java => CommandAPIPlatform.java} (98%) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index 02cdcffce5..4b5b2f029f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -207,7 +207,7 @@ Command fromCommand(AbstractCommandAPICommand comman * CommandSender */ public static Object getBrigadierSourceFromCommandSender(CommandSender sender) { - AbstractPlatform platform = (AbstractPlatform) CommandAPIHandler.getInstance().getPlatform(); + CommandAPIPlatform platform = (CommandAPIPlatform) CommandAPIHandler.getInstance().getPlatform(); return platform.getBrigadierSourceFromCommandSender(platform.wrapCommandSender(sender)); } @@ -219,7 +219,7 @@ public static Object getBrigadierSourceFromCommandSender(Command * @return a Bukkit CommandSender from the provided Brigadier CommandContext */ public static CommandSender getCommandSenderFromContext(CommandContext cmdCtx) { - AbstractPlatform platform = (AbstractPlatform) CommandAPIHandler.getInstance().getPlatform(); + CommandAPIPlatform platform = (CommandAPIPlatform) CommandAPIHandler.getInstance().getPlatform(); // For some reason putting this on one line doesn't work - very weird AbstractCommandSender abstractSender = platform.getSenderForCommand(cmdCtx, false); return abstractSender.getSource(); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index 646fba5eb7..bc0a4cddad 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -99,7 +99,7 @@ public static void onLoad(CommandAPIConfig config) { CommandAPI.config = new InternalConfig(config); // Initialize handlers - AbstractPlatform platform = CommandAPIVersionHandler.getPlatform(); + CommandAPIPlatform platform = CommandAPIVersionHandler.getPlatform(); new CommandAPIHandler<>(platform); // Log platform load @@ -107,7 +107,7 @@ public static void onLoad(CommandAPIConfig config) { { List platformClassHierarchyList = new ArrayList<>(); Class platformClass = platform.getClass(); - while (platformClass != AbstractPlatform.class) { + while (platformClass != CommandAPIPlatform.class) { platformClassHierarchyList.add(platformClass.getSimpleName()); platformClass = platformClass.getSuperclass(); } @@ -212,7 +212,7 @@ public static void reloadDatapacks() { * @param player the player whose requirements should be updated */ public static void updateRequirements(Player player) { - AbstractPlatform platform = (AbstractPlatform) CommandAPIHandler.getInstance().getPlatform(); + CommandAPIPlatform platform = (CommandAPIPlatform) CommandAPIHandler.getInstance().getPlatform(); platform.updateRequirements((AbstractPlayer) platform.wrapCommandSender(player)); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index bf68142ec4..38dd140fc5 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -100,13 +100,13 @@ public static String getRawArgumentInput(CommandContext FIELDS = new HashMap<>(); final TreeMap REGISTERED_PERMISSIONS = new TreeMap<>(); - final AbstractPlatform platform; + final CommandAPIPlatform platform; final List registeredCommands; // Keep track of what has been registered for type checking final Map, IPreviewable> previewableArguments; // Arguments with previewable chat private static CommandAPIHandler instance; - protected CommandAPIHandler(AbstractPlatform platform) { + protected CommandAPIHandler(CommandAPIPlatform platform) { this.platform = platform; this.registeredCommands = new ArrayList<>(); this.previewableArguments = new HashMap<>(); @@ -142,7 +142,7 @@ public void onDisable() { return instance; } - public AbstractPlatform getPlatform() { + public CommandAPIPlatform getPlatform() { return this.platform; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIPlatform.java similarity index 98% rename from commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIPlatform.java index 2a0225dd2c..843ba930c7 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractPlatform.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIPlatform.java @@ -18,7 +18,7 @@ * @param The class for running platforms commands * @param The class for running Brigadier commands */ -public abstract class AbstractPlatform, CommandSender, Source> { +public abstract class CommandAPIPlatform, CommandSender, Source> { // Platform-specific loading, enabling, and disabling tasks /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index 96788febf4..ffb0472122 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -12,7 +12,7 @@ public interface CommandAPIVersionHandler { * * @return an instance of AbstractPlatform which can run on the currently active server */ - static AbstractPlatform getPlatform() { + static CommandAPIPlatform getPlatform() { throw new RuntimeException("You have the wrong copy of the CommandAPI! If you're shading, did you use commandapi-core instead of commandapi-{platform}-shade?"); } } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java index 128d17bcc6..694a5dd52e 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java @@ -25,7 +25,7 @@ public Execution(List arguments, CommandAPIExecutor meta) { - AbstractPlatform platform = (AbstractPlatform) CommandAPIHandler.getInstance().getPlatform(); + CommandAPIPlatform platform = (CommandAPIPlatform) CommandAPIHandler.getInstance().getPlatform(); AbstractCommandAPICommand command = platform.newConcreteCommandAPICommand(meta); command.withArguments(arguments); command.setExecutor(executor); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java index 21c6dab8b6..671acf0159 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java @@ -104,8 +104,8 @@ public final String getNodeName() { * @return the parsed object represented by this argument * @throws CommandSyntaxException if parsing fails */ - public abstract T parseArgument(AbstractPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException; + public abstract T parseArgument(CommandAPIPlatform platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException; ///////////////// // Suggestions // diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java index 351a15bbfd..4f594be240 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java @@ -49,7 +49,7 @@ @RequireField(in = CommandNode.class, name = "children", ofType = Map.class) @RequireField(in = CommandNode.class, name = "literals", ofType = Map.class) @RequireField(in = CommandNode.class, name = "arguments", ofType = Map.class) -public abstract class CommandAPIBukkit extends AbstractPlatform, CommandSender, Source> implements NMS { +public abstract class CommandAPIBukkit extends CommandAPIPlatform, CommandSender, Source> implements NMS { // References to utility classes private static CommandAPIBukkit instance; private PaperImplementations paper; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java index 538d2eb0a8..e61064d9cd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.advancement.Advancement; import org.bukkit.command.CommandSender; @@ -58,8 +58,8 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public Advancement parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Advancement parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getAdvancement(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java index 8ea1878090..204320ab34 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.commandsenders.BukkitPlayer; @@ -72,8 +72,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Component parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Component parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { final CommandSender sender = ((CommandAPIBukkit) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); Component component = ((CommandAPIBukkit) platform).getAdventureChat(cmdCtx, key); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java index 353c6ced06..b5ffb5bded 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; import net.kyori.adventure.text.Component; @@ -60,8 +60,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Component parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Component parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getAdventureChatComponent(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java index bf1747f8e0..74b91b5e83 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; @@ -57,7 +57,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) + public Float parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getAngle(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java index b6ffa9319e..42e8ab2b6f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Axis; import org.bukkit.command.CommandSender; @@ -59,8 +59,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public EnumSet parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, - Object[] previousArgs) + public EnumSet parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, + Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getAxis(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java index d0d67d6453..78b3574500 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.block.Biome; import org.bukkit.command.CommandSender; @@ -62,8 +62,8 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public Biome parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public Biome parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getBiome(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java index 5cc9fafb81..d28c775da1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.block.Block; import org.bukkit.command.CommandSender; @@ -58,8 +58,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Predicate parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public Predicate parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getBlockPredicate(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java index 8ceb82eb83..e434d57c2a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.block.data.BlockData; import org.bukkit.command.CommandSender; @@ -55,8 +55,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BlockData parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public BlockData parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getBlockState(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java index 6197520175..9b8fad4f4e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.arguments.BoolArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import org.bukkit.command.CommandSender; /** @@ -52,7 +52,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Boolean parseArgument(AbstractPlatform, CommandSender, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Boolean parseArgument(CommandAPIPlatform, CommandSender, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java index c1eb1cf596..13b9d6d9be 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.commandsenders.BukkitPlayer; @@ -72,8 +72,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BaseComponent[] parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public BaseComponent[] parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { final CommandSender sender = ((CommandAPIBukkit) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); BaseComponent[] component = ((CommandAPIBukkit) platform).getChat(cmdCtx, key); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java index ab0751ba63..fde8665d64 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; @@ -57,8 +57,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ChatColor parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public ChatColor parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getChatColor(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java index f8c59a3e04..b6f3724e9a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; import net.md_5.bungee.api.chat.BaseComponent; @@ -64,8 +64,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BaseComponent[] parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public BaseComponent[] parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getChatComponent(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java index 08cb9a0738..848c138209 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java @@ -4,7 +4,7 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.SuggestionInfo; import org.bukkit.FluidCollisionMode; @@ -173,8 +173,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public CommandResult parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public CommandResult parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Extract information String command = cmdCtx.getArgument(key, String.class); CommandMap commandMap = ((CommandAPIBukkit) platform).getSimpleCommandMap(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index d1beb7d174..d88688d254 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -25,7 +25,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.CommandAPI; @@ -128,8 +128,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public T parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public T parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the raw input and parsed input final String customresult = CommandAPIHandler.getRawArgumentInput(cmdCtx, key); @@ -377,8 +377,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return keyed ? ((CommandAPIBukkit) platform).getMinecraftKey(cmdCtx, key).toString() : cmdCtx.getArgument(key, String.class); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java index d91884f654..43949333b5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.arguments.DoubleArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; import org.bukkit.command.CommandSender; @@ -77,7 +77,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Double parseArgument(AbstractPlatform, CommandSender, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Double parseArgument(CommandAPIPlatform, CommandSender, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java index df0946b55a..18a35528b7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.enchantments.Enchantment; @@ -53,8 +53,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Enchantment parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Enchantment parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getEnchantment(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java index c52828046b..f6bc4a8675 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; @@ -89,8 +89,8 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public T parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public T parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return (T) ((CommandAPIBukkit) platform).getEntitySelector(cmdCtx, key, selector); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java index fbd0c0d476..2ebb5478cb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; @@ -56,8 +56,8 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public EntityType parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public EntityType parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getEntityType(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java index d800f69f1f..c7c5b2684f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.World.Environment; import org.bukkit.command.CommandSender; @@ -59,8 +59,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Environment parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Environment parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getEnvironment(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java index 44feb81bb1..dfe514f7a7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.arguments.FloatArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; import org.bukkit.command.CommandSender; @@ -75,8 +75,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(AbstractPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Float parseArgument(CommandAPIPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java index 35d128d4d1..288c68a717 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.FloatRange; import org.bukkit.command.CommandSender; @@ -51,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public FloatRange parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public FloatRange parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getFloatRange(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java index e04e27c75c..e03616fcc7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.FunctionWrapper; import org.bukkit.NamespacedKey; @@ -59,8 +59,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public FunctionWrapper[] parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public FunctionWrapper[] parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getFunction(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java index c046ed64da..3a5645897b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import org.bukkit.command.CommandSender; /** @@ -50,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java index 0ce33a9dd8..c702f96fab 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.arguments.IntegerArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; import org.bukkit.command.CommandSender; @@ -79,8 +79,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(AbstractPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Integer parseArgument(CommandAPIPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java index ef5a9e21f8..9c86616eb1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.IntegerRange; import org.bukkit.command.CommandSender; @@ -51,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public IntegerRange parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public IntegerRange parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getIntRange(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java index 266bb49daf..991204e545 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.inventory.ItemStack; @@ -51,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ItemStack parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public ItemStack parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getItemStack(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java index 39a0145068..3c9745aaec 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.inventory.ItemStack; @@ -54,8 +54,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Predicate parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Predicate parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getItemStackPredicate(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java index b6c6b7be32..2ab39725fd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java @@ -6,7 +6,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.IStringTooltip; import dev.jorel.commandapi.StringTooltip; import org.bukkit.command.CommandSender; @@ -109,8 +109,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public List parseArgument(AbstractPlatform, CommandSender, CommandListenerWrapper> nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public List parseArgument(CommandAPIPlatform, CommandSender, CommandListenerWrapper> nms, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the list of values which this can take Map values = new HashMap<>(); for (T object : supplier.apply(nms.getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource())) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index 3eb6f7e0e6..aae5a8c036 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; import org.bukkit.command.CommandSender; @@ -102,8 +102,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return literal; } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java index 7d869f56ac..fd3ac90997 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.Location2D; import org.bukkit.Location; @@ -76,8 +76,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Location2D parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Location2D parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return isPrecise ? ((CommandAPIBukkit) platform).getLocation2DPrecise(cmdCtx, key) : ((CommandAPIBukkit) platform).getLocation2DBlock(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java index 9e21b2ecb3..ebdc3d8ba7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Location; import org.bukkit.command.CommandSender; @@ -76,8 +76,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Location parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Location parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return isPrecise ? ((CommandAPIBukkit) platform).getLocationPrecise(cmdCtx, key) : ((CommandAPIBukkit) platform).getLocationBlock(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java index 2ed0b83fb9..ff9d11cdb9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.arguments.LongArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; import org.bukkit.command.CommandSender; @@ -75,8 +75,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Long parseArgument(AbstractPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Long parseArgument(CommandAPIPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java index dfa617bec1..afd2dab013 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Keyed; import org.bukkit.command.CommandSender; @@ -57,8 +57,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public LootTable parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public LootTable parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getLootTable(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java index 30e132fae1..c6b2949c49 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.MathOperation; import org.bukkit.command.CommandSender; @@ -51,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public MathOperation parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public MathOperation parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getMathOperation(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index ab9168c416..62e5c5f121 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; import org.bukkit.command.CommandSender; @@ -67,8 +67,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { throw new IllegalStateException("Cannot parse MultiLiteralArgument"); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java index 55f2baf732..c0e6338f11 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.CommandAPI; import org.bukkit.command.CommandSender; @@ -59,8 +59,8 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public NBTContainer parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public NBTContainer parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return (NBTContainer) ((CommandAPIBukkit) platform).getNBTCompound(cmdCtx, key, CommandAPI.getConfiguration().getNBTContainerConstructor()); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java index f4ead706cf..9ba777c281 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.NamespacedKey; import org.bukkit.command.CommandSender; @@ -57,8 +57,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public NamespacedKey parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public NamespacedKey parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getMinecraftKey(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java index f9f4cf4f8b..c5f759b049 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.scoreboard.Objective; @@ -51,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getObjective(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java index 8450c4e19a..eac3864cb8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; @@ -50,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getObjectiveCriteria(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java index cc366c72d6..57374b5b7f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; @@ -53,8 +53,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public OfflinePlayer parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public OfflinePlayer parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getOfflinePlayer(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java index 019447782c..37414cf17c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.ParticleData; import org.bukkit.command.CommandSender; @@ -52,8 +52,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ParticleData parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public ParticleData parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getParticle(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java index f6abd30e9e..297d5e6add 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -53,8 +53,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Player parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Player parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getPlayer(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java index 809cbc7472..84d81f862b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.potion.PotionEffectType; @@ -51,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public PotionEffectType parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public PotionEffectType parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getPotionEffect(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java index 0529e5610a..1b4c1c9fc3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Keyed; import org.bukkit.command.CommandSender; @@ -57,8 +57,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Recipe parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Recipe parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getRecipe(cmdCtx, key); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java index 124ad2b378..6e4568a0b5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.Rotation; import org.bukkit.command.CommandSender; @@ -51,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Rotation parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Rotation parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getRotation(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java index d275d879ab..8fbed781da 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; @@ -75,8 +75,8 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public T parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public T parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return (T) (single ? ((CommandAPIBukkit) platform).getScoreHolderSingle(cmdCtx, key) : ((CommandAPIBukkit) platform).getScoreHolderMultiple(cmdCtx, key)); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java index a6c8cc4592..0af9fdcd50 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.ScoreboardSlot; import org.bukkit.command.CommandSender; @@ -51,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ScoreboardSlot parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public ScoreboardSlot parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getScoreboardSlot(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java index 58b1e20daa..1de9cc7eff 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Sound; import org.bukkit.command.CommandSender; @@ -56,8 +56,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Sound parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Sound parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getSound(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java index f687ee1ae0..a6d6895349 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import org.bukkit.command.CommandSender; /** @@ -49,8 +49,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java index 5b1a233458..284cab8b9c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; import org.bukkit.scoreboard.Team; @@ -51,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getTeam(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java index 662a18000f..a01b927d57 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import org.bukkit.command.CommandSender; /** @@ -50,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java index e1715c6f8b..805a117c89 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.Time; import org.bukkit.command.CommandSender; @@ -51,8 +51,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Integer parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getTime(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java index ed09febc94..0426faad3e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.command.CommandSender; @@ -52,8 +52,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public UUID parseArgument(AbstractPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public UUID parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) platform).getUUID(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java index 293bdcf2e5..3887cac5af 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java @@ -22,7 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.World; import org.bukkit.command.CommandSender; @@ -58,8 +58,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public World parseArgument(AbstractPlatform, CommandSender, CommandListenerWrapper> nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public World parseArgument(CommandAPIPlatform, CommandSender, CommandListenerWrapper> nms, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return ((CommandAPIBukkit) nms).getDimension(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index 5eab2fc0b3..2f487ca576 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -9,7 +9,7 @@ * replace this class with their own version that handles loads the correct class for thier version */ public interface CommandAPIVersionHandler { - static AbstractPlatform getPlatform() { + static CommandAPIPlatform getPlatform() { return new MockNMS(new NMS_1_19_1_R1()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index a7af6520ce..a9fb9f525d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-vh/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -48,7 +48,7 @@ public interface CommandAPIVersionHandler { * * @return an instance of NMS which can run on the specified Minecraft version */ - static AbstractPlatform getPlatform() { + static CommandAPIPlatform getPlatform() { if (CommandAPI.getConfiguration().shouldUseLatestNMSVersion()) { return new NMS_1_19_1_R1(); } else { diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPISponge.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPISponge.java index 9a6a35a063..691faea0e4 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPISponge.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPISponge.java @@ -19,7 +19,7 @@ // See https://docs.spongepowered.org/stable/en/plugin/migrating-from-7-to-8.html#command-creation-and-registration // TODO: How does Sponge send commands and interact with Brigadier? -public class CommandAPISponge extends AbstractPlatform, Object, Object> { +public class CommandAPISponge extends CommandAPIPlatform, Object, Object> { private CommandManager commandManager; private static CommandAPISponge instance; diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index e557b80989..7add067051 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -1,7 +1,7 @@ package dev.jorel.commandapi; public interface CommandAPIVersionHandler { - static AbstractPlatform getPlatform() { + static CommandAPIPlatform getPlatform() { return new CommandAPISponge(); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java index d03eefa182..ec544d3d53 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents primitive Java booleans @@ -52,7 +52,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Boolean parseArgument(AbstractPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Boolean parseArgument(CommandAPIPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java index 7eb6d1135f..1612b185ce 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -77,7 +77,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Double parseArgument(AbstractPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Double parseArgument(CommandAPIPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java index bc37d611d7..4127e31017 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +75,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Float parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java index 423f19d1db..2e2a86ebdb 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents arbitrary strings @@ -50,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java index 08596f8550..dc85e9565d 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +75,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Integer parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index ff99117b38..ad1ef2c3e2 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; /** @@ -78,8 +78,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return literal; } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java index 1e9d0b1701..440ed81294 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +75,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Long parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Long parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index 3e0d82e356..1066186ffd 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; /** @@ -67,8 +67,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { throw new IllegalStateException("Cannot parse MultiLiteralArgument"); } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java index 2408398489..b9771a983e 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents a simple String @@ -49,8 +49,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java index 8e6fee166d..59c3c9f196 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents text, encased in quotes @@ -50,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVelocity.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVelocity.java index 324728305e..b2b3b759cb 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVelocity.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVelocity.java @@ -20,7 +20,7 @@ import java.util.logging.Level; import java.util.logging.Logger; -public class CommandAPIVelocity extends AbstractPlatform, CommandSource, CommandSource> { +public class CommandAPIVelocity extends CommandAPIPlatform, CommandSource, CommandSource> { private CommandManager commandManager; private static CommandAPIVelocity instance; diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index ad32402399..9d0ae57a23 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -1,7 +1,7 @@ package dev.jorel.commandapi; public interface CommandAPIVersionHandler { - static AbstractPlatform getPlatform() { + static CommandAPIPlatform getPlatform() { return new CommandAPIVelocity(); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java index d03eefa182..ec544d3d53 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents primitive Java booleans @@ -52,7 +52,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Boolean parseArgument(AbstractPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Boolean parseArgument(CommandAPIPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java index 7eb6d1135f..1612b185ce 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -77,7 +77,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Double parseArgument(AbstractPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Double parseArgument(CommandAPIPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java index bc37d611d7..4127e31017 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +75,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Float parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java index 423f19d1db..2e2a86ebdb 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents arbitrary strings @@ -50,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java index 08596f8550..dc85e9565d 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +75,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Integer parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index 1f7092ff68..85d7ff9984 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; /** @@ -101,8 +101,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return literal; } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java index 1e9d0b1701..440ed81294 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +75,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Long parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Long parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index 3e0d82e356..1066186ffd 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -23,7 +23,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; /** @@ -67,8 +67,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { throw new IllegalStateException("Cannot parse MultiLiteralArgument"); } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java index 2408398489..b9771a983e 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents a simple String @@ -49,8 +49,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java index 8e6fee166d..59c3c9f196 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -24,7 +24,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.AbstractPlatform; +import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents text, encased in quotes @@ -50,8 +50,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(AbstractPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, + CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } From b8bed651d6c549d2c7e29b62e1fa8ee8ed8fe0a6 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 30 Nov 2022 10:01:25 -0500 Subject: [PATCH 149/638] Rename AbstractPlatform in comments --- .../commandapi/CommandAPIVersionHandler.java | 4 +-- .../jorel/commandapi/CommandAPIBukkit.java | 2 +- .../java/dev/jorel/commandapi/nms/NMS.java | 33 ------------------- 3 files changed, 3 insertions(+), 36 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index ffb0472122..809245a680 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -8,9 +8,9 @@ public interface CommandAPIVersionHandler { /** - * Returns an instance of the version's implementation of AbstractPlatform. + * Returns an instance of the version's implementation of CommandAPIPlatform. * - * @return an instance of AbstractPlatform which can run on the currently active server + * @return an instance of CommandAPIPlatform which can run on the currently active server */ static CommandAPIPlatform getPlatform() { throw new RuntimeException("You have the wrong copy of the CommandAPI! If you're shading, did you use commandapi-core instead of commandapi-{platform}-shade?"); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java index 4f594be240..c103c20c6b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java @@ -42,7 +42,7 @@ import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.*; -// CommandAPIBukkit is an AbstractPlatform, but also needs all of the methods from +// CommandAPIBukkit is an CommandAPIPlatform, but also needs all of the methods from // NMS, so it implements NMS. Our implementation of CommandAPIBukkit is now derived // using the version handler (and thus, deferred to our NMS-specific implementations) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java index 5204710778..75a064339a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/nms/NMS.java @@ -217,24 +217,6 @@ Predicate getBlockPredicate(CommandContext cmdCtx BaseComponent[] getChatComponent(CommandContext cmdCtx, String key); -// Replaced by AbstractPlatform#getBrigadierSourceFromCommandSender -// /** -// * Converts a CommandSender into a CLW -// * -// * @param sender the command sender to convert -// * @return a CLW. -// */ -// CommandListenerWrapper getCLWFromCommandSender(CommandSender sender); - -// Replaced by AbstractPlatform#getCommandSenderFromCommandSource -// /** -// * Returns a CommandSender of a given CommandListenerWrapper object -// * -// * @param clw The CommandListenerWrapper object -// * @return A CommandSender (not proxied) from the command listener wrapper -// */ -// CommandSender getCommandSenderFromCSS(CommandListenerWrapper clw); - World getDimension(CommandContext cmdCtx, String key) throws CommandSyntaxException; Environment getEnvironment(CommandContext cmdCtx, String key) throws CommandSyntaxException; @@ -310,21 +292,6 @@ Collection getScoreHolderMultiple(CommandContext String getScoreHolderSingle(CommandContext cmdCtx, String key) throws CommandSyntaxException; -// Replaced by AbstractPlatform#getSenderForCommand -// /** -// * Retrieves a CommandSender, given some CommandContext. This method should -// * handle Proxied CommandSenders for entities if a Proxy is being used. -// * -// * @param cmdCtx The -// * CommandContext<CommandListenerWrapper> -// * for a given command -// * @param forceNative whether or not the CommandSender should be a -// * NativeProxyCommandSender or not -// * @return A CommandSender instance (such as a ProxiedNativeCommandSender or -// * Player) -// */ - // CommandSender getSenderForCommand(CommandContext cmdCtx, boolean forceNative); - /** * Returns the Server's internal (OBC) CommandMap * From e9007d245c80be5556e154a805f126024382a03e Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 30 Nov 2022 12:53:34 -0500 Subject: [PATCH 150/638] Remove unnecessary Hungarian notation from IPlatformExecutable and IChainableBuilder --- .../{IChainableBuilder.java => ChainableBuilder.java} | 2 +- .../src/main/java/dev/jorel/commandapi/Executable.java | 2 +- .../{IPlatformExecutable.java => PlatformExecutable.java} | 2 +- .../java/dev/jorel/commandapi/arguments/ILiteralArgument.java | 4 ++-- .../dev/jorel/commandapi/arguments/IMultiLiteralArgument.java | 4 ++-- .../jorel/commandapi/arguments/ISafeOverrideableArgument.java | 4 ++-- .../src/main/java/dev/jorel/commandapi/BukkitExecutable.java | 2 +- .../src/main/java/dev/jorel/commandapi/SpongeExecutable.java | 2 +- .../main/java/dev/jorel/commandapi/VelocityExecutable.java | 2 +- 9 files changed, 12 insertions(+), 12 deletions(-) rename commandapi-core/src/main/java/dev/jorel/commandapi/{IChainableBuilder.java => ChainableBuilder.java} (85%) rename commandapi-core/src/main/java/dev/jorel/commandapi/{IPlatformExecutable.java => PlatformExecutable.java} (66%) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/IChainableBuilder.java b/commandapi-core/src/main/java/dev/jorel/commandapi/ChainableBuilder.java similarity index 85% rename from commandapi-core/src/main/java/dev/jorel/commandapi/IChainableBuilder.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/ChainableBuilder.java index 723d0eabb7..67197841ec 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/IChainableBuilder.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/ChainableBuilder.java @@ -4,7 +4,7 @@ * * @param The class extending this class, used as the return type for chain calls */ -public interface IChainableBuilder { +public interface ChainableBuilder { /** * Returns the instance of this class with the class Impl. Used for chaining builder methods. */ diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java index 4c3dd0a47c..ba82f16446 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Executable.java @@ -11,7 +11,7 @@ * @param The class extending this class, used as the return type for chain calls * @param The CommandSender class used by the class extending this class */ -abstract class Executable, CommandSender> implements IChainableBuilder { +abstract class Executable, CommandSender> implements ChainableBuilder { /** * The CommandAPIExecutor for this executable implementation diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java b/commandapi-core/src/main/java/dev/jorel/commandapi/PlatformExecutable.java similarity index 66% rename from commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java rename to commandapi-core/src/main/java/dev/jorel/commandapi/PlatformExecutable.java index cd43861c2d..ef22d5e781 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/IPlatformExecutable.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/PlatformExecutable.java @@ -2,7 +2,7 @@ import dev.jorel.commandapi.commandsenders.AbstractCommandSender; -public interface IPlatformExecutable, CommandSender> extends IChainableBuilder { +public interface PlatformExecutable, CommandSender> extends ChainableBuilder { // Automatically links to Executable#getExecutor (make sure it has the same signature) CommandAPIExecutor> getExecutor(); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ILiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ILiteralArgument.java index bf2daa70ce..fdcde961a0 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ILiteralArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ILiteralArgument.java @@ -1,8 +1,8 @@ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.IChainableBuilder; +import dev.jorel.commandapi.ChainableBuilder; -public interface ILiteralArgument> extends IChainableBuilder { +public interface ILiteralArgument> extends ChainableBuilder { // Literal specific information /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IMultiLiteralArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IMultiLiteralArgument.java index ef5d2b6681..0353c55ead 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IMultiLiteralArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/IMultiLiteralArgument.java @@ -1,8 +1,8 @@ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.IChainableBuilder; +import dev.jorel.commandapi.ChainableBuilder; -public interface IMultiLiteralArgument> extends IChainableBuilder { +public interface IMultiLiteralArgument> extends ChainableBuilder { // MultiLiteral specific information /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java index 505e4c2bda..0ebc156446 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/ISafeOverrideableArgument.java @@ -1,11 +1,11 @@ package dev.jorel.commandapi.arguments; -import dev.jorel.commandapi.IChainableBuilder; +import dev.jorel.commandapi.ChainableBuilder; import java.util.function.Function; public interface ISafeOverrideableArgument, - Argument extends AbstractArgument, CommandSender> extends IChainableBuilder { + Argument extends AbstractArgument, CommandSender> extends ChainableBuilder { // Links to methods in AbstractArgument (make sure they have the same signature) Impl replaceSuggestions(ArgumentSuggestions suggestions); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java index fd61248ad1..d746b9b8e7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java @@ -4,7 +4,7 @@ import dev.jorel.commandapi.executors.*; import org.bukkit.command.CommandSender; -public interface BukkitExecutable> extends IPlatformExecutable { +public interface BukkitExecutable> extends PlatformExecutable { // Regular command executor diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeExecutable.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeExecutable.java index 8228e92b1e..bb1fec5ce8 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeExecutable.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/SpongeExecutable.java @@ -6,7 +6,7 @@ import dev.jorel.commandapi.executors.ResultingCommandExecutor; // TODO: Replace CommandSource with the class Sponge uses to send commands -public interface SpongeExecutable> extends IPlatformExecutable { +public interface SpongeExecutable> extends PlatformExecutable { // Regular command executor /** diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java index aefba71c19..2dddab3c2d 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/VelocityExecutable.java @@ -4,7 +4,7 @@ import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.executors.*; -public interface VelocityExecutable> extends IPlatformExecutable { +public interface VelocityExecutable> extends PlatformExecutable { // Regular command executor /** From a49e41ecddeac5a68ff8c1c7c5ca0c209b359a86 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 1 Dec 2022 10:12:34 -0500 Subject: [PATCH 151/638] Remove platform from AbstractArgument#parseArgument in favor of using the static get method of the CommandAPIPlatform --- .../java/dev/jorel/commandapi/CommandAPIHandler.java | 2 +- .../jorel/commandapi/arguments/AbstractArgument.java | 4 +--- .../java/dev/jorel/commandapi/CommandAPIBukkit.java | 4 ++-- .../commandapi/arguments/AdvancementArgument.java | 7 ++----- .../commandapi/arguments/AdventureChatArgument.java | 8 +++----- .../arguments/AdventureChatComponentArgument.java | 7 ++----- .../dev/jorel/commandapi/arguments/AngleArgument.java | 6 ++---- .../dev/jorel/commandapi/arguments/AxisArgument.java | 6 ++---- .../dev/jorel/commandapi/arguments/BiomeArgument.java | 7 ++----- .../commandapi/arguments/BlockPredicateArgument.java | 7 ++----- .../commandapi/arguments/BlockStateArgument.java | 7 ++----- .../jorel/commandapi/arguments/BooleanArgument.java | 4 +--- .../dev/jorel/commandapi/arguments/ChatArgument.java | 8 +++----- .../jorel/commandapi/arguments/ChatColorArgument.java | 7 ++----- .../commandapi/arguments/ChatComponentArgument.java | 7 ++----- .../jorel/commandapi/arguments/CommandArgument.java | 8 +++----- .../jorel/commandapi/arguments/CustomArgument.java | 11 ++++------- .../jorel/commandapi/arguments/DoubleArgument.java | 4 +--- .../commandapi/arguments/EnchantmentArgument.java | 7 ++----- .../commandapi/arguments/EntitySelectorArgument.java | 7 ++----- .../commandapi/arguments/EntityTypeArgument.java | 7 ++----- .../commandapi/arguments/EnvironmentArgument.java | 7 ++----- .../dev/jorel/commandapi/arguments/FloatArgument.java | 5 +---- .../commandapi/arguments/FloatRangeArgument.java | 7 ++----- .../jorel/commandapi/arguments/FunctionArgument.java | 7 ++----- .../commandapi/arguments/GreedyStringArgument.java | 5 +---- .../jorel/commandapi/arguments/IntegerArgument.java | 5 +---- .../commandapi/arguments/IntegerRangeArgument.java | 7 ++----- .../jorel/commandapi/arguments/ItemStackArgument.java | 7 ++----- .../arguments/ItemStackPredicateArgument.java | 7 ++----- .../commandapi/arguments/ListArgumentCommon.java | 7 +++---- .../jorel/commandapi/arguments/LiteralArgument.java | 5 +---- .../commandapi/arguments/Location2DArgument.java | 9 ++++----- .../jorel/commandapi/arguments/LocationArgument.java | 9 ++++----- .../dev/jorel/commandapi/arguments/LongArgument.java | 5 +---- .../jorel/commandapi/arguments/LootTableArgument.java | 7 ++----- .../commandapi/arguments/MathOperationArgument.java | 7 ++----- .../commandapi/arguments/MultiLiteralArgument.java | 5 +---- .../commandapi/arguments/NBTCompoundArgument.java | 7 ++----- .../commandapi/arguments/NamespacedKeyArgument.java | 7 ++----- .../jorel/commandapi/arguments/ObjectiveArgument.java | 7 ++----- .../arguments/ObjectiveCriteriaArgument.java | 7 ++----- .../commandapi/arguments/OfflinePlayerArgument.java | 7 ++----- .../jorel/commandapi/arguments/ParticleArgument.java | 7 ++----- .../jorel/commandapi/arguments/PlayerArgument.java | 7 ++----- .../commandapi/arguments/PotionEffectArgument.java | 7 ++----- .../jorel/commandapi/arguments/RecipeArgument.java | 7 ++----- .../jorel/commandapi/arguments/RotationArgument.java | 7 ++----- .../commandapi/arguments/ScoreHolderArgument.java | 9 ++++----- .../commandapi/arguments/ScoreboardSlotArgument.java | 7 ++----- .../dev/jorel/commandapi/arguments/SoundArgument.java | 7 ++----- .../jorel/commandapi/arguments/StringArgument.java | 5 +---- .../dev/jorel/commandapi/arguments/TeamArgument.java | 7 ++----- .../dev/jorel/commandapi/arguments/TextArgument.java | 5 +---- .../dev/jorel/commandapi/arguments/TimeArgument.java | 7 ++----- .../dev/jorel/commandapi/arguments/UUIDArgument.java | 7 ++----- .../dev/jorel/commandapi/arguments/WorldArgument.java | 7 ++----- .../jorel/commandapi/arguments/BooleanArgument.java | 3 +-- .../jorel/commandapi/arguments/DoubleArgument.java | 3 +-- .../dev/jorel/commandapi/arguments/FloatArgument.java | 4 +--- .../commandapi/arguments/GreedyStringArgument.java | 4 +--- .../jorel/commandapi/arguments/IntegerArgument.java | 4 +--- .../jorel/commandapi/arguments/LiteralArgument.java | 4 +--- .../dev/jorel/commandapi/arguments/LongArgument.java | 4 +--- .../commandapi/arguments/MultiLiteralArgument.java | 4 +--- .../jorel/commandapi/arguments/StringArgument.java | 4 +--- .../dev/jorel/commandapi/arguments/TextArgument.java | 4 +--- .../jorel/commandapi/arguments/BooleanArgument.java | 4 +--- .../jorel/commandapi/arguments/DoubleArgument.java | 4 +--- .../dev/jorel/commandapi/arguments/FloatArgument.java | 5 +---- .../commandapi/arguments/GreedyStringArgument.java | 5 +---- .../jorel/commandapi/arguments/IntegerArgument.java | 5 +---- .../jorel/commandapi/arguments/LiteralArgument.java | 5 +---- .../dev/jorel/commandapi/arguments/LongArgument.java | 5 +---- .../commandapi/arguments/MultiLiteralArgument.java | 5 +---- .../jorel/commandapi/arguments/StringArgument.java | 5 +---- .../dev/jorel/commandapi/arguments/TextArgument.java | 5 +---- 77 files changed, 134 insertions(+), 329 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index 38dd140fc5..8ed6da911d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -233,7 +233,7 @@ Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) */ Object parseArgument(CommandContext cmdCtx, String key, Argument value, Object[] previousArgs) throws CommandSyntaxException { if (value.isListed()) { - return value.parseArgument(platform, cmdCtx, key, previousArgs); + return value.parseArgument(cmdCtx, key, previousArgs); } else { return null; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java index 671acf0159..013a57e97c 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/AbstractArgument.java @@ -97,15 +97,13 @@ public final String getNodeName() { * isn't expected to be used outside the CommandAPI * * @param the command source type - * @param platform a reference to the platform * @param cmdCtx the context which ran this command * @param key the name of the argument node * @param previousArgs an array of previously declared arguments * @return the parsed object represented by this argument * @throws CommandSyntaxException if parsing fails */ - public abstract T parseArgument(CommandAPIPlatform platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException; + public abstract T parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException; ///////////////// // Suggestions // diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java index c103c20c6b..c990c90ed1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java @@ -83,8 +83,8 @@ public CommandAPIBukkit() { instance = this; } - public static CommandAPIBukkit get() { - return instance; + public static CommandAPIBukkit get() { + return (CommandAPIBukkit) instance; } public PaperImplementations getPaper() { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java index e61064d9cd..e2f6f7e50b 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdvancementArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.advancement.Advancement; -import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Advancement object @@ -58,8 +56,7 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public Advancement parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getAdvancement(cmdCtx, key); + public Advancement parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getAdvancement(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java index 204320ab34..ae727e25ca 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatArgument.java @@ -22,7 +22,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.commandsenders.BukkitPlayer; @@ -72,10 +71,9 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Component parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - final CommandSender sender = ((CommandAPIBukkit) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); - Component component = ((CommandAPIBukkit) platform).getAdventureChat(cmdCtx, key); + public Component parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + final CommandSender sender = CommandAPIBukkit.get().getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); + Component component = CommandAPIBukkit.get().getAdventureChat(cmdCtx, key); if (this.usePreview && getPreview().isPresent() && sender instanceof Player player) { try { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java index b5ffb5bded..31cc39e1f0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AdventureChatComponentArgument.java @@ -22,11 +22,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.exceptions.PaperAdventureNotFoundException; import net.kyori.adventure.text.Component; -import org.bukkit.command.CommandSender; /** * An argument that represents raw JSON text @@ -60,8 +58,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Component parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getAdventureChatComponent(cmdCtx, key); + public Component parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getAdventureChatComponent(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java index 74b91b5e83..c7faa9e1a5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AngleArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; /** * An argument that represents a yaw angle, measured in degrees with float @@ -57,8 +55,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, Object[] previousArgs) + public Float parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getAngle(cmdCtx, key); + return CommandAPIBukkit.get().getAngle(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java index 42e8ab2b6f..4eedd021d7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/AxisArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Axis; -import org.bukkit.command.CommandSender; import java.util.EnumSet; @@ -59,9 +57,9 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public EnumSet parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, CommandContext cmdCtx, String key, + public EnumSet parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getAxis(cmdCtx, key); + return CommandAPIBukkit.get().getAxis(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java index 78b3574500..0da92ef539 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BiomeArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.block.Biome; -import org.bukkit.command.CommandSender; import java.util.function.Function; @@ -62,9 +60,8 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public Biome parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public Biome parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getBiome(cmdCtx, key); + return CommandAPIBukkit.get().getBiome(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java index d28c775da1..d2cd3e72de 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockPredicateArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.block.Block; -import org.bukkit.command.CommandSender; import java.util.function.Predicate; @@ -58,9 +56,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Predicate parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public Predicate parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getBlockPredicate(cmdCtx, key); + return CommandAPIBukkit.get().getBlockPredicate(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java index e434d57c2a..09d5f4ad01 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BlockStateArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.block.data.BlockData; -import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit BlockData object @@ -55,9 +53,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BlockData parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public BlockData parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getBlockState(cmdCtx, key); + return CommandAPIBukkit.get().getBlockState(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java index 9b8fad4f4e..d7c45c5034 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.BoolArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; -import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java booleans @@ -52,7 +50,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Boolean parseArgument(CommandAPIPlatform, CommandSender, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Boolean parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java index 13b9d6d9be..63879e82af 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatArgument.java @@ -22,7 +22,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.commandsenders.BukkitPlayer; @@ -72,10 +71,9 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BaseComponent[] parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - final CommandSender sender = ((CommandAPIBukkit) platform).getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); - BaseComponent[] component = ((CommandAPIBukkit) platform).getChat(cmdCtx, key); + public BaseComponent[] parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + final CommandSender sender = CommandAPIBukkit.get().getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(); + BaseComponent[] component = CommandAPIBukkit.get().getChat(cmdCtx, key); if (getPreview().isPresent() && sender instanceof Player player) { try { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java index fde8665d64..823050d505 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatColorArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.ChatColor; -import org.bukkit.command.CommandSender; import java.util.function.Function; @@ -57,8 +55,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ChatColor parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getChatColor(cmdCtx, key); + public ChatColor parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getChatColor(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java index b6f3724e9a..899e5f4610 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ChatComponentArgument.java @@ -22,11 +22,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.exceptions.SpigotNotFoundException; import net.md_5.bungee.api.chat.BaseComponent; -import org.bukkit.command.CommandSender; /** * An argument that represents raw JSON text @@ -64,9 +62,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public BaseComponent[] parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public BaseComponent[] parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getChatComponent(cmdCtx, key); + return CommandAPIBukkit.get().getChatComponent(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java index 848c138209..18e9a1f07d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandArgument.java @@ -4,7 +4,6 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.SuggestionInfo; import org.bukkit.FluidCollisionMode; @@ -173,12 +172,11 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public CommandResult parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public CommandResult parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Extract information String command = cmdCtx.getArgument(key, String.class); - CommandMap commandMap = ((CommandAPIBukkit) platform).getSimpleCommandMap(); - CommandSender sender = platform.getSenderForCommand(cmdCtx, false).getSource(); + CommandMap commandMap = CommandAPIBukkit.get().getSimpleCommandMap(); + CommandSender sender = CommandAPIBukkit.get().getSenderForCommand(cmdCtx, false).getSource(); StringReader context = new StringReader(command); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index d88688d254..de2b62df3d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -25,7 +25,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.CommandAPI; @@ -128,15 +127,14 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public T parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public T parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the raw input and parsed input final String customresult = CommandAPIHandler.getRawArgumentInput(cmdCtx, key); - final B parsedInput = base.parseArgument(platform, cmdCtx, key, previousArgs); + final B parsedInput = base.parseArgument(cmdCtx, key, previousArgs); try { - return infoParser.apply(new CustomArgumentInfo(platform.getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(), + return infoParser.apply(new CustomArgumentInfo(CommandAPIBukkit.get().getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource(), previousArgs, customresult, parsedInput)); } catch (CustomArgumentException e) { throw e.toCommandSyntax(customresult, cmdCtx); @@ -377,8 +375,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return keyed ? ((CommandAPIBukkit) platform).getMinecraftKey(cmdCtx, key).toString() : cmdCtx.getArgument(key, String.class); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java index 43949333b5..170f976991 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -23,9 +23,7 @@ import com.mojang.brigadier.arguments.DoubleArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; -import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java doubles @@ -77,7 +75,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Double parseArgument(CommandAPIPlatform, CommandSender, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Double parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java index 18a35528b7..1cac91e856 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnchantmentArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; import org.bukkit.enchantments.Enchantment; /** @@ -53,8 +51,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Enchantment parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getEnchantment(cmdCtx, key); + public Enchantment parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getEnchantment(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java index f6bc4a8675..4a893a9074 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; @@ -89,10 +87,9 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public T parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public T parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return (T) ((CommandAPIBukkit) platform).getEntitySelector(cmdCtx, key, selector); + return (T) CommandAPIBukkit.get().getEntitySelector(cmdCtx, key, selector); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java index 2ebb5478cb..f81850715c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntityTypeArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.EntityType; /** @@ -56,8 +54,7 @@ public SuggestionProviders getSuggestionProvider() { } @Override - public EntityType parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getEntityType(cmdCtx, key); + public EntityType parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getEntityType(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java index c7c5b2684f..cdcd64295a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EnvironmentArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.World.Environment; -import org.bukkit.command.CommandSender; import java.util.function.Function; @@ -59,8 +57,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Environment parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getEnvironment(cmdCtx, key); + public Environment parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getEnvironment(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java index dfe514f7a7..4a401391b2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -23,9 +23,7 @@ import com.mojang.brigadier.arguments.FloatArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; -import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java floats @@ -75,8 +73,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(CommandAPIPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Float parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java index 288c68a717..75d39de90c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FloatRangeArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.FloatRange; -import org.bukkit.command.CommandSender; /** * An argument that represents a range of float values @@ -51,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public FloatRange parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getFloatRange(cmdCtx, key); + public FloatRange parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getFloatRange(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java index e03616fcc7..deff5a1b7d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/FunctionArgument.java @@ -22,11 +22,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.FunctionWrapper; import org.bukkit.NamespacedKey; -import org.bukkit.command.CommandSender; /** * An argument that represents Minecraft functions and tags @@ -59,8 +57,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public FunctionWrapper[] parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getFunction(cmdCtx, key); + public FunctionWrapper[] parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getFunction(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java index 3a5645897b..147a73dfe8 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; -import org.bukkit.command.CommandSender; /** * An argument that represents arbitrary strings @@ -50,8 +48,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java index c702f96fab..c4751c7bcb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -23,9 +23,7 @@ import com.mojang.brigadier.arguments.IntegerArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; -import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java ints @@ -79,8 +77,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(CommandAPIPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Integer parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java index 9c86616eb1..c56c217ab2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/IntegerRangeArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.IntegerRange; -import org.bukkit.command.CommandSender; /** * An argument that represents a range of integer values @@ -51,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public IntegerRange parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getIntRange(cmdCtx, key); + public IntegerRange parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getIntRange(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java index 991204e545..195dd856ec 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; import org.bukkit.inventory.ItemStack; /** @@ -51,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ItemStack parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getItemStack(cmdCtx, key); + public ItemStack parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getItemStack(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java index 3c9745aaec..e5037d611d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ItemStackPredicateArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; import org.bukkit.inventory.ItemStack; import java.util.function.Predicate; @@ -54,8 +52,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Predicate parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getItemStackPredicate(cmdCtx, key); + public Predicate parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getItemStackPredicate(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java index 2ab39725fd..0dc682689a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ListArgumentCommon.java @@ -6,7 +6,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; -import dev.jorel.commandapi.CommandAPIPlatform; +import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.IStringTooltip; import dev.jorel.commandapi.StringTooltip; import org.bukkit.command.CommandSender; @@ -109,11 +109,10 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public List parseArgument(CommandAPIPlatform, CommandSender, CommandListenerWrapper> nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public List parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { // Get the list of values which this can take Map values = new HashMap<>(); - for (T object : supplier.apply(nms.getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource())) { + for (T object : supplier.apply(CommandAPIBukkit.get().getCommandSenderFromCommandSource(cmdCtx.getSource()).getSource())) { values.put(mapper.apply(object), object); } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index aae5a8c036..683973bc0d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; -import org.bukkit.command.CommandSender; /** * A pseudo-argument representing a single literal string @@ -102,8 +100,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return literal; } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java index fd3ac90997..318357dfcc 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/Location2DArgument.java @@ -22,11 +22,9 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.Location2D; import org.bukkit.Location; -import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit {@link Location} object in x and z directions @@ -76,8 +74,9 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Location2D parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return isPrecise ? ((CommandAPIBukkit) platform).getLocation2DPrecise(cmdCtx, key) : ((CommandAPIBukkit) platform).getLocation2DBlock(cmdCtx, key); + public Location2D parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return isPrecise ? + CommandAPIBukkit.get().getLocation2DPrecise(cmdCtx, key) : + CommandAPIBukkit.get().getLocation2DBlock(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java index ebdc3d8ba7..fd35fb87f6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LocationArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Location; -import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit {@link Location} object @@ -76,8 +74,9 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Location parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return isPrecise ? ((CommandAPIBukkit) platform).getLocationPrecise(cmdCtx, key) : ((CommandAPIBukkit) platform).getLocationBlock(cmdCtx, key); + public Location parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return isPrecise ? + CommandAPIBukkit.get().getLocationPrecise(cmdCtx, key) : + CommandAPIBukkit.get().getLocationBlock(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java index ff9d11cdb9..09f5a39601 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -23,9 +23,7 @@ import com.mojang.brigadier.arguments.LongArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; -import org.bukkit.command.CommandSender; /** * An argument that represents primitive Java longs @@ -75,8 +73,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Long parseArgument(CommandAPIPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Long parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java index afd2dab013..42d29f6992 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/LootTableArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Keyed; -import org.bukkit.command.CommandSender; import org.bukkit.loot.LootTable; /** @@ -57,8 +55,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public LootTable parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getLootTable(cmdCtx, key); + public LootTable parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getLootTable(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java index c6b2949c49..4c29ab784d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MathOperationArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.MathOperation; -import org.bukkit.command.CommandSender; /** * An argument that represents Minecraft scoreboard math operations @@ -51,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public MathOperation parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getMathOperation(cmdCtx, key); + public MathOperation parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getMathOperation(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index 62e5c5f121..ecf928656c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; -import org.bukkit.command.CommandSender; /** * An argument that represents multiple LiteralArguments @@ -67,8 +65,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { throw new IllegalStateException("Cannot parse MultiLiteralArgument"); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java index c0e6338f11..f05b31d3e3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NBTCompoundArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.CommandAPI; -import org.bukkit.command.CommandSender; /** * An argument that represents an NBTContainer from the NBT API @@ -59,9 +57,8 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public NBTContainer parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public NBTContainer parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return (NBTContainer) ((CommandAPIBukkit) platform).getNBTCompound(cmdCtx, key, CommandAPI.getConfiguration().getNBTContainerConstructor()); + return (NBTContainer) CommandAPIBukkit.get().getNBTCompound(cmdCtx, key, CommandAPI.getConfiguration().getNBTContainerConstructor()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java index 9ba777c281..dfd07daf4a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/NamespacedKeyArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.NamespacedKey; -import org.bukkit.command.CommandSender; /** * An argument that represents a Minecraft resource location (or namespaced key) @@ -57,9 +55,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public NamespacedKey parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) + public NamespacedKey parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getMinecraftKey(cmdCtx, key); + return CommandAPIBukkit.get().getMinecraftKey(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java index c5f759b049..56cf5cb9a3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; import org.bukkit.scoreboard.Objective; /** @@ -51,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getObjective(cmdCtx, key); + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getObjective(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java index eac3864cb8..ae2992bcd1 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ObjectiveCriteriaArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; /** * An argument that represents the name of an objective criteria @@ -50,8 +48,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getObjectiveCriteria(cmdCtx, key); + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getObjectiveCriteria(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java index 57374b5b7f..416cc637e7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/OfflinePlayerArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.OfflinePlayer; -import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Player object @@ -53,8 +51,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public OfflinePlayer parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getOfflinePlayer(cmdCtx, key); + public OfflinePlayer parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getOfflinePlayer(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java index 37414cf17c..2c62309d79 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ParticleArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.ParticleData; -import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Particle object @@ -52,8 +50,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ParticleData parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getParticle(cmdCtx, key); + public ParticleData parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getParticle(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java index 297d5e6add..e29ead8a36 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PlayerArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; /** @@ -53,8 +51,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Player parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getPlayer(cmdCtx, key); + public Player parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getPlayer(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java index 84d81f862b..c55e2ddb2a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/PotionEffectArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; import org.bukkit.potion.PotionEffectType; /** @@ -51,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public PotionEffectType parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getPotionEffect(cmdCtx, key); + public PotionEffectType parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getPotionEffect(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java index 1b4c1c9fc3..e5ef5bbc4a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RecipeArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Keyed; -import org.bukkit.command.CommandSender; import org.bukkit.inventory.Recipe; /** @@ -57,9 +55,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Recipe parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getRecipe(cmdCtx, key); + public Recipe parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getRecipe(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java index 6e4568a0b5..b1ceb381d9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/RotationArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.Rotation; -import org.bukkit.command.CommandSender; /** * An argument that represents rotation as pitch and yaw @@ -51,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Rotation parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getRotation(cmdCtx, key); + public Rotation parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getRotation(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java index 8fbed781da..3fd77b22b3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; import java.util.Collection; @@ -75,9 +73,10 @@ public CommandAPIArgumentType getArgumentType() { @SuppressWarnings("unchecked") @Override - public T parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return (T) (single ? ((CommandAPIBukkit) platform).getScoreHolderSingle(cmdCtx, key) : ((CommandAPIBukkit) platform).getScoreHolderMultiple(cmdCtx, key)); + public T parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return (T) (single ? + CommandAPIBukkit.get().getScoreHolderSingle(cmdCtx, key) : + CommandAPIBukkit.get().getScoreHolderMultiple(cmdCtx, key)); } /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java index 0af9fdcd50..aa93ce2b87 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreboardSlotArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit ScoreboardSlot object @@ -51,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public ScoreboardSlot parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getScoreboardSlot(cmdCtx, key); + public ScoreboardSlot parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getScoreboardSlot(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java index 1de9cc7eff..b6bc0ae587 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.Sound; -import org.bukkit.command.CommandSender; /** * An argument that represents the Bukkit Sound object @@ -56,8 +54,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Sound parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getSound(cmdCtx, key); + public Sound parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getSound(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java index a6d6895349..df4cc912e6 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; -import org.bukkit.command.CommandSender; /** * An argument that represents a simple String @@ -49,8 +47,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java index 284cab8b9c..0281ca6005 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TeamArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; import org.bukkit.scoreboard.Team; /** @@ -51,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getTeam(cmdCtx, key); + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getTeam(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java index a01b927d57..b6c2389374 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; -import org.bukkit.command.CommandSender; /** * An argument that represents text, encased in quotes @@ -50,8 +48,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSender, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java index 805a117c89..7212c24304 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/TimeArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.wrappers.Time; -import org.bukkit.command.CommandSender; /** * An argument that represents a duration of time in ticks @@ -51,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getTime(cmdCtx, key); + public Integer parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getTime(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java index 0426faad3e..a15cdfbf68 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/UUIDArgument.java @@ -22,9 +22,7 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; -import org.bukkit.command.CommandSender; import java.util.UUID; @@ -52,8 +50,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public UUID parseArgument(CommandAPIPlatform, CommandSender, CommandSourceStack> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) platform).getUUID(cmdCtx, key); + public UUID parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getUUID(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java index 3887cac5af..62432e30ce 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/WorldArgument.java @@ -22,10 +22,8 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.World; -import org.bukkit.command.CommandSender; import java.util.function.Function; @@ -58,8 +56,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public World parseArgument(CommandAPIPlatform, CommandSender, CommandListenerWrapper> nms, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return ((CommandAPIBukkit) nms).getDimension(cmdCtx, key); + public World parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getDimension(cmdCtx, key); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java index ec544d3d53..ae85e29331 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -24,7 +24,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents primitive Java booleans @@ -52,7 +51,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Boolean parseArgument(CommandAPIPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Boolean parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java index 1612b185ce..c3daa86a2f 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -24,7 +24,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -77,7 +76,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Double parseArgument(CommandAPIPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Double parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java index 4127e31017..02e2d8f808 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -24,7 +24,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +74,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Float parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java index 2e2a86ebdb..e905cf6d2b 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -24,7 +24,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents arbitrary strings @@ -50,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java index dc85e9565d..1aa08e3fe0 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -24,7 +24,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +74,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Integer parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index ad1ef2c3e2..7fddb5e308 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -23,7 +23,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; /** @@ -78,8 +77,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return literal; } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java index 440ed81294..76c247914b 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -24,7 +24,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +74,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Long parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Long parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index 1066186ffd..dca532a0a1 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -23,7 +23,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; /** @@ -67,8 +66,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { throw new IllegalStateException("Cannot parse MultiLiteralArgument"); } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java index b9771a983e..a438b7fdf5 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -24,7 +24,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents a simple String @@ -49,8 +48,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java index 59c3c9f196..261ef4fe5b 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -24,7 +24,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents text, encased in quotes @@ -50,8 +49,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java index ec544d3d53..8d7a1a60b5 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/BooleanArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.BoolArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents primitive Java booleans @@ -52,7 +50,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Boolean parseArgument(CommandAPIPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Boolean parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java index 1612b185ce..8913e1b0ab 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/DoubleArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.DoubleArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -77,7 +75,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Double parseArgument(CommandAPIPlatform, CommandSource, Source> platform, CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Double parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java index 4127e31017..ba31d4c207 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/FloatArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.FloatArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +73,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Float parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Float parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java index 2e2a86ebdb..147a73dfe8 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/GreedyStringArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents arbitrary strings @@ -50,8 +48,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java index dc85e9565d..bd468aaa8a 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/IntegerArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.IntegerArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +73,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Integer parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Integer parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java index 85d7ff9984..920a848dd2 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LiteralArgument.java @@ -22,8 +22,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; /** @@ -101,8 +99,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return literal; } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java index 440ed81294..09f5a39601 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/LongArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.LongArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.InvalidRangeException; /** @@ -75,8 +73,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public Long parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public Long parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java index 1066186ffd..81eb12fd42 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/MultiLiteralArgument.java @@ -22,8 +22,6 @@ import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; import dev.jorel.commandapi.exceptions.BadLiteralException; /** @@ -67,8 +65,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { throw new IllegalStateException("Cannot parse MultiLiteralArgument"); } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java index b9771a983e..df4cc912e6 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/StringArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents a simple String @@ -49,8 +47,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java index 59c3c9f196..b6c2389374 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-core/src/main/java/dev/jorel/commandapi/arguments/TextArgument.java @@ -23,8 +23,6 @@ import com.mojang.brigadier.arguments.StringArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.velocitypowered.api.command.CommandSource; -import dev.jorel.commandapi.CommandAPIPlatform; /** * An argument that represents text, encased in quotes @@ -50,8 +48,7 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public String parseArgument(CommandAPIPlatform, CommandSource, Source> platform, - CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { return cmdCtx.getArgument(key, getPrimitiveType()); } } From e6c85fad04a097b3e47e18d884b966a3aafe9ab2 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Thu, 1 Dec 2022 10:15:44 -0500 Subject: [PATCH 152/638] Fix Bukkit DummyArgument in CustomArgument --- .../java/dev/jorel/commandapi/arguments/CustomArgument.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java index de2b62df3d..3b038923a5 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CustomArgument.java @@ -377,7 +377,9 @@ public CommandAPIArgumentType getArgumentType() { @Override public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return keyed ? ((CommandAPIBukkit) platform).getMinecraftKey(cmdCtx, key).toString() : cmdCtx.getArgument(key, String.class); + return keyed ? + CommandAPIBukkit.get().getMinecraftKey(cmdCtx, key).toString() : + cmdCtx.getArgument(key, String.class); } } } From 52a34e515f297d4f19e4af66b677b524ce6cebad Mon Sep 17 00:00:00 2001 From: BuildTools Date: Sun, 4 Dec 2022 14:36:43 -0500 Subject: [PATCH 153/638] Clean up after merge --- .../commandapi/examples/java/Examples.java | 110 +----- .../commandapi/examples/kotlin/Examples.kt | 62 +--- .../commandapi/kotlindsl/CommandTreeDSL.kt | 349 ------------------ .../commandapi/arguments/CommandResult.java | 58 --- .../jorel/commandapi/arguments/SoundType.java | 7 +- .../commandapi/wrappers/CommandResult.java | 3 +- .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 86 ----- .../dev/jorel/commandapi/nms/NMS_1_13.java | 1 - .../dev/jorel/commandapi/nms/NMS_1_16_R2.java | 131 +------ .../jorel/commandapi/nms/NMS_1_16_4_R3.java | 131 +------ .../jorel/commandapi/nms/NMS_1_17_Common.java | 56 +-- .../dev/jorel/commandapi/nms/NMS_1_18_R2.java | 65 +--- .../dev/jorel/commandapi/nms/NMS_1_18_R1.java | 62 +--- .../jorel/commandapi/nms/NMS_1_19_Common.java | 66 +--- .../jorel/commandapi/test/ArgumentTests.java | 56 +-- .../commandapi/kotlindsl/CommandTreeDSL.kt | 8 +- docssrc/src/brigadiersuggestions.md | 4 +- docssrc/src/commandarguments.md | 16 +- docssrc/src/literalarguments.md | 4 +- docssrc/src/soundargument.md | 7 - docssrc/src/worldarguments.md | 4 +- pom.xml | 2 +- 22 files changed, 63 insertions(+), 1225 deletions(-) delete mode 100644 commandapi-kotlin/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt delete mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandResult.java rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/arguments/SoundType.java (82%) rename {commandapi-core => commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core}/src/main/java/dev/jorel/commandapi/wrappers/CommandResult.java (97%) diff --git a/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java b/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java index dd8e5bdd16..fa49a52cbb 100644 --- a/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java +++ b/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java @@ -19,20 +19,8 @@ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *******************************************************************************/ -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Random; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ThreadLocalRandom; -import java.util.function.Predicate; +import com.mojang.brigadier.LiteralMessage; import com.mojang.brigadier.Message; import com.mojang.brigadier.ParseResults; import com.mojang.brigadier.builder.ArgumentBuilder; @@ -85,101 +73,11 @@ import org.bukkit.scoreboard.Team; import org.bukkit.util.EulerAngle; -import com.mojang.brigadier.LiteralMessage; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.ParseResults; -import com.mojang.brigadier.builder.ArgumentBuilder; -import com.mojang.brigadier.context.StringRange; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.Suggestions; -import com.mojang.brigadier.tree.LiteralCommandNode; - -import de.tr7zw.changeme.nbtapi.NBTContainer; -import dev.jorel.commandapi.Brigadier; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPICommand; -import dev.jorel.commandapi.CommandAPIConfig; -import dev.jorel.commandapi.CommandPermission; -import dev.jorel.commandapi.CommandTree; -import dev.jorel.commandapi.Converter; -import dev.jorel.commandapi.IStringTooltip; -import dev.jorel.commandapi.StringTooltip; -import dev.jorel.commandapi.Tooltip; -import dev.jorel.commandapi.arguments.AdvancementArgument; -import dev.jorel.commandapi.arguments.AdventureChatArgument; -import dev.jorel.commandapi.arguments.AdventureChatComponentArgument; -import dev.jorel.commandapi.arguments.AngleArgument; -import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.ArgumentSuggestions; -import dev.jorel.commandapi.arguments.BiomeArgument; -import dev.jorel.commandapi.arguments.BlockPredicateArgument; -import dev.jorel.commandapi.arguments.BlockStateArgument; -import dev.jorel.commandapi.arguments.BooleanArgument; -import dev.jorel.commandapi.arguments.ChatArgument; -import dev.jorel.commandapi.arguments.ChatColorArgument; -import dev.jorel.commandapi.arguments.ChatComponentArgument; -import dev.jorel.commandapi.arguments.CommandArgument; -import dev.jorel.commandapi.wrappers.CommandResult; -import dev.jorel.commandapi.arguments.CustomArgument; -import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException; -import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder; -import dev.jorel.commandapi.arguments.EnchantmentArgument; -import dev.jorel.commandapi.arguments.EntitySelector; -import dev.jorel.commandapi.arguments.EntitySelectorArgument; -import dev.jorel.commandapi.arguments.EntityTypeArgument; -import dev.jorel.commandapi.arguments.EnvironmentArgument; -import dev.jorel.commandapi.arguments.FunctionArgument; -import dev.jorel.commandapi.arguments.GreedyStringArgument; -import dev.jorel.commandapi.arguments.IntegerArgument; -import dev.jorel.commandapi.arguments.IntegerRangeArgument; -import dev.jorel.commandapi.arguments.ItemStackArgument; -import dev.jorel.commandapi.arguments.ItemStackPredicateArgument; -import dev.jorel.commandapi.arguments.ListArgumentBuilder; -import dev.jorel.commandapi.arguments.LiteralArgument; -import dev.jorel.commandapi.arguments.LocationArgument; -import dev.jorel.commandapi.arguments.LocationType; -import dev.jorel.commandapi.arguments.LootTableArgument; -import dev.jorel.commandapi.arguments.MathOperationArgument; -import dev.jorel.commandapi.arguments.MultiLiteralArgument; -import dev.jorel.commandapi.arguments.NBTCompoundArgument; -import dev.jorel.commandapi.arguments.ObjectiveArgument; -import dev.jorel.commandapi.arguments.ObjectiveCriteriaArgument; -import dev.jorel.commandapi.arguments.ParticleArgument; -import dev.jorel.commandapi.arguments.PlayerArgument; -import dev.jorel.commandapi.arguments.PotionEffectArgument; -import dev.jorel.commandapi.arguments.RecipeArgument; -import dev.jorel.commandapi.arguments.RotationArgument; -import dev.jorel.commandapi.arguments.SafeSuggestions; -import dev.jorel.commandapi.arguments.ScoreHolderArgument; -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; -import dev.jorel.commandapi.arguments.ScoreboardSlotArgument; -import dev.jorel.commandapi.arguments.SoundArgument; -import dev.jorel.commandapi.arguments.SoundType; -import dev.jorel.commandapi.arguments.StringArgument; -import dev.jorel.commandapi.arguments.SuggestionsBranch; -import dev.jorel.commandapi.arguments.TeamArgument; -import dev.jorel.commandapi.arguments.TextArgument; -import dev.jorel.commandapi.arguments.TimeArgument; -import dev.jorel.commandapi.arguments.WorldArgument; -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.executors.ExecutorType; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import net.kyori.adventure.inventory.Book; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; -import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.api.chat.TextComponent; import java.util.*; +import java.util.Map.Entry; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ThreadLocalRandom; import java.util.function.Predicate; -// TODO: Clean up merged imports public class Examples extends JavaPlugin { @@ -2319,7 +2217,7 @@ public Sign getTargetSign(Player player) throws WrapperCommandSyntaxException { } { -// TODO: Make sure SuggestionsBranch still works with CommandSender parameter + /* ANCHOR: command_argument_branch_give */ SuggestionsBranch.suggest( ArgumentSuggestions.strings("give"), @@ -2349,7 +2247,7 @@ public Sign getTargetSign(Player player) throws WrapperCommandSyntaxException { /* ANCHOR: command_argument_branch */ new CommandArgument("command") .branchSuggestions( - SuggestionsBranch.suggest( + SuggestionsBranch.suggest( ArgumentSuggestions.strings("give"), ArgumentSuggestions.strings(info -> Bukkit.getOnlinePlayers().stream().map(Player::getName).toArray(String[]::new)) ).branch( diff --git a/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt index 595c3f8ba4..8ea31dccb6 100644 --- a/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt +++ b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt @@ -1,5 +1,6 @@ package dev.jorel.commandapi.examples.kotlin +import com.mojang.brigadier.LiteralMessage import com.mojang.brigadier.Message import com.mojang.brigadier.ParseResults import com.mojang.brigadier.context.StringRange @@ -23,22 +24,8 @@ import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer import net.md_5.bungee.api.chat.BaseComponent import net.md_5.bungee.api.chat.TextComponent import org.bukkit.* -import org.bukkit.Bukkit -import org.bukkit.ChatColor -import org.bukkit.GameMode -import org.bukkit.Location -import org.bukkit.Material -import org.bukkit.NamespacedKey -import org.bukkit.Server -import org.bukkit.Sound -import org.bukkit.World import org.bukkit.World.Environment import org.bukkit.advancement.Advancement -import org.bukkit.block.Biome -import org.bukkit.block.Block -import org.bukkit.block.Chest -import org.bukkit.block.Container -import org.bukkit.block.Sign import org.bukkit.block.* import org.bukkit.block.data.BlockData import org.bukkit.command.CommandSender @@ -59,51 +46,10 @@ import org.bukkit.potion.PotionEffect import org.bukkit.potion.PotionEffectType import org.bukkit.scoreboard.DisplaySlot import org.bukkit.util.EulerAngle - -import com.mojang.brigadier.ParseResults -import com.mojang.brigadier.context.StringRange -import com.mojang.brigadier.exceptions.CommandSyntaxException -import com.mojang.brigadier.suggestion.Suggestions -import com.mojang.brigadier.tree.LiteralCommandNode -import com.mojang.brigadier.LiteralMessage - -import de.tr7zw.changeme.nbtapi.NBTContainer -import dev.jorel.commandapi.Brigadier -import dev.jorel.commandapi.CommandAPI -import dev.jorel.commandapi.CommandAPICommand -import dev.jorel.commandapi.CommandAPIConfig -import dev.jorel.commandapi.CommandPermission -import dev.jorel.commandapi.CommandTree -import dev.jorel.commandapi.Converter -import dev.jorel.commandapi.IStringTooltip -import dev.jorel.commandapi.StringTooltip -import dev.jorel.commandapi.SuggestionInfo -import dev.jorel.commandapi.Tooltip -import dev.jorel.commandapi.arguments.* -import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException -import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException -import dev.jorel.commandapi.executors.CommandBlockCommandExecutor -import dev.jorel.commandapi.executors.CommandExecutor -import dev.jorel.commandapi.executors.EntityCommandExecutor -import dev.jorel.commandapi.executors.ExecutorType -import dev.jorel.commandapi.executors.NativeCommandExecutor -import dev.jorel.commandapi.executors.PlayerCommandExecutor -import dev.jorel.commandapi.executors.ProxyCommandExecutor -import dev.jorel.commandapi.executors.ResultingCommandExecutor -import dev.jorel.commandapi.wrappers.* -import net.kyori.adventure.inventory.Book -import net.kyori.adventure.text.Component -import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer -import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer -import net.md_5.bungee.api.chat.BaseComponent -import net.md_5.bungee.api.chat.TextComponent import java.util.* import java.util.concurrent.CompletableFuture import java.util.function.Predicate import kotlin.random.Random -// TODO: Clean up merged imports class Examples : JavaPlugin() { @@ -2195,7 +2141,7 @@ CommandAPICommand("sudo") fun giveCommandArgument() { /* ANCHOR: command_argument_branch_give */ -SuggestionsBranch.suggest( +SuggestionsBranch.suggest( ArgumentSuggestions.strings("give"), ArgumentSuggestions.strings { _ -> Bukkit.getOnlinePlayers().map{ it.name }.toTypedArray() } ).branch( @@ -2212,7 +2158,7 @@ SuggestionsBranch.suggest( /* ANCHOR_END: command_argument_branch_give */ /* ANCHOR: command_argument_branch_tp */ -SuggestionsBranch.suggest( +SuggestionsBranch.suggest( ArgumentSuggestions.strings("tp"), ArgumentSuggestions.strings { _ -> Bukkit.getOnlinePlayers().map{ it.name }.toTypedArray() }, ArgumentSuggestions.strings { _ -> Bukkit.getOnlinePlayers().map{ it.name }.toTypedArray() } @@ -2223,7 +2169,7 @@ SuggestionsBranch.suggest( /* ANCHOR: command_argument_branch */ CommandArgument("command") .branchSuggestions( - SuggestionsBranch.suggest( + SuggestionsBranch.suggest( ArgumentSuggestions.strings("give"), ArgumentSuggestions.strings { _ -> Bukkit.getOnlinePlayers().map{ it.name }.toTypedArray() } ).branch( diff --git a/commandapi-kotlin/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-kotlin/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt deleted file mode 100644 index 102da75501..0000000000 --- a/commandapi-kotlin/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt +++ /dev/null @@ -1,349 +0,0 @@ -// TODO: Update Sound and World in DSL -package dev.jorel.commandapi.kotlindsl - -import dev.jorel.commandapi.* -import dev.jorel.commandapi.arguments.* -import dev.jorel.commandapi.arguments.LiteralArgument.of -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType -import dev.jorel.commandapi.executors.* -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender -import org.bukkit.command.BlockCommandSender -import org.bukkit.command.CommandSender -import org.bukkit.command.ConsoleCommandSender -import org.bukkit.command.ProxiedCommandSender -import org.bukkit.entity.Entity -import org.bukkit.entity.Player -import org.bukkit.Sound -import java.util.function.Predicate - -inline fun commandTree(name: String, tree: CommandTree.() -> Unit = {}) = CommandTree(name).apply(tree).register() -inline fun commandTree(name: String, requirement: Predicate, tree: CommandTree.() -> Unit = {}) = CommandTree(name).withRequirement(requirement).apply(tree).register() - -// CommandTree start -inline fun CommandTree.argument(base: Argument<*>, block: ArgumentTree.() -> Unit = {}): CommandTree = then(base.apply(block)) - -// Integer arguments -inline fun CommandTree.integerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName).apply(block)) -inline fun CommandTree.integerArgument(nodeName: String, min: Int, block: ArgumentTree.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName, min).apply(block)) -inline fun CommandTree.integerArgument(nodeName: String, min: Int, max: Int, block: ArgumentTree.() -> Unit = {}): CommandTree = then(IntegerArgument(nodeName, min, max).apply(block)) -inline fun CommandTree.integerRangeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(IntegerRangeArgument(nodeName).apply(block)) - -// Float arguments -inline fun CommandTree.floatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName).apply(block)) -inline fun CommandTree.floatArgument(nodeName: String, min: Float, block: ArgumentTree.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName, min).apply(block)) -inline fun CommandTree.floatArgument(nodeName: String, min: Float, max: Float, block: ArgumentTree.() -> Unit = {}): CommandTree = then(FloatArgument(nodeName, min, max).apply(block)) -inline fun CommandTree.floatRangeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(FloatRangeArgument(nodeName).apply(block)) - -// Double arguments -inline fun CommandTree.doubleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName).apply(block)) -inline fun CommandTree.doubleArgument(nodeName: String, min: Double, block: ArgumentTree.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName, min).apply(block)) -inline fun CommandTree.doubleArgument(nodeName: String, min: Double, max: Double, block: ArgumentTree.() -> Unit = {}): CommandTree = then(DoubleArgument(nodeName, min, max).apply(block)) - -// Long arguments -inline fun CommandTree.longArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LongArgument(nodeName).apply(block)) -inline fun CommandTree.longArgument(nodeName: String, min: Long, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LongArgument(nodeName, min).apply(block)) -inline fun CommandTree.longArgument(nodeName: String, min: Long, max: Long, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LongArgument(nodeName, min, max).apply(block)) - -// Boolean argument -inline fun CommandTree.booleanArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(BooleanArgument(nodeName).apply(block)) - -// String arguments -inline fun CommandTree.stringArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(StringArgument(nodeName).apply(block)) -inline fun CommandTree.textArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(TextArgument(nodeName).apply(block)) -inline fun CommandTree.greedyStringArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(GreedyStringArgument(nodeName).apply(block)) - -// Positional arguments -inline fun CommandTree.locationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LocationArgument(nodeName).apply(block)) -inline fun CommandTree.locationArgument(nodeName: String, locationType: LocationType, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LocationArgument(nodeName, locationType).apply(block)) -inline fun CommandTree.location2DArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(Location2DArgument(nodeName).apply(block)) -inline fun CommandTree.location2DArgument(nodeName: String, locationType: LocationType, block: ArgumentTree.() -> Unit = {}): CommandTree = then(Location2DArgument(nodeName, locationType).apply(block)) -inline fun CommandTree.rotationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(RotationArgument(nodeName).apply(block)) -inline fun CommandTree.axisArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(AxisArgument(nodeName).apply(block)) - -// Chat arguments -inline fun CommandTree.chatColorArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ChatColorArgument(nodeName).apply(block)) -inline fun CommandTree.chatComponentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ChatComponentArgument(nodeName).apply(block)) -inline fun CommandTree.chatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ChatArgument(nodeName).apply(block)) -inline fun CommandTree.adventureChatComponentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(AdventureChatComponentArgument(nodeName).apply(block)) -inline fun CommandTree.adventureChatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(AdventureChatArgument(nodeName).apply(block)) - -// Entity & Player arguments -inline fun CommandTree.entitySelectorArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName).apply(block)) -inline fun CommandTree.entitySelectorArgument(nodeName: String, entitySelector: T, block: ArgumentTree.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) -inline fun CommandTree.playerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(PlayerArgument(nodeName).apply(block)) -inline fun CommandTree.offlinePlayerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(OfflinePlayerArgument(nodeName).apply(block)) -inline fun CommandTree.entityTypeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(EntityTypeArgument(nodeName).apply(block)) - -// Scoreboard arguments -inline fun CommandTree.scoreHolderArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName).apply(block)) -inline fun CommandTree.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) -inline fun CommandTree.scoreboardSlotArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ScoreboardSlotArgument(nodeName).apply(block)) -inline fun CommandTree.objectiveArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ObjectiveArgument(nodeName).apply(block)) -inline fun CommandTree.objectiveCriteriaArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ObjectiveCriteriaArgument(nodeName).apply(block)) -inline fun CommandTree.teamArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(TeamArgument(nodeName).apply(block)) - -// Miscellaneous arguments -inline fun CommandTree.angleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(AngleArgument(nodeName).apply(block)) -inline fun CommandTree.advancementArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(AdvancementArgument(nodeName).apply(block)) -inline fun CommandTree.biomeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(BiomeArgument(nodeName).apply(block)) -inline fun CommandTree.blockStateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(BlockStateArgument(nodeName).apply(block)) -inline fun CommandTree.commandArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(CommandArgument(nodeName).apply(block)) -inline fun CommandTree.enchantmentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(EnchantmentArgument(nodeName).apply(block)) -inline fun CommandTree.environmentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(EnvironmentArgument(nodeName).apply(block)) -inline fun CommandTree.itemStackArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ItemStackArgument(nodeName).apply(block)) -inline fun CommandTree.lootTableArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(LootTableArgument(nodeName).apply(block)) -inline fun CommandTree.mathOperationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(MathOperationArgument(nodeName).apply(block)) -inline fun CommandTree.namespacedKeyArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(NamespacedKeyArgument(nodeName).apply(block)) -inline fun CommandTree.particleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ParticleArgument(nodeName).apply(block)) -inline fun CommandTree.potionEffectArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(PotionEffectArgument(nodeName).apply(block)) -inline fun CommandTree.recipeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(RecipeArgument(nodeName).apply(block)) -inline fun CommandTree.soundArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName).apply(block)) -inline fun CommandTree.soundArgument(nodeName: String, soundType: SoundType, block: ArgumentTree.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName, soundType).apply(block)) -inline fun CommandTree.timeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(TimeArgument(nodeName).apply(block)) -inline fun CommandTree.uuidArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(UUIDArgument(nodeName).apply(block)) -inline fun CommandTree.worldArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(WorldArgument(nodeName).apply(block)) - -// Predicate arguments -inline fun CommandTree.blockPredicateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(BlockPredicateArgument(nodeName).apply(block)) -inline fun CommandTree.itemStackPredicateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(ItemStackPredicateArgument(nodeName).apply(block)) - -// NBT arguments -inline fun CommandTree.nbtCompoundArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(NBTCompoundArgument(nodeName).apply(block)) - -// Literal arguments -inline fun CommandTree.literalArgument(literal: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(of(literal).apply(block)) -inline fun CommandTree.multiLiteralArgument(vararg literals: String, block: ArgumentTree.() -> Unit = {}): CommandTree = then(MultiLiteralArgument(*literals).apply(block)) - - -// ArgumentTree start -inline fun ArgumentTree.argument(base: Argument<*>, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(base.apply(block)) - -// Integer arguments -inline fun ArgumentTree.integerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(IntegerArgument(nodeName).apply(block)) -inline fun ArgumentTree.integerArgument(nodeName: String, min: Int, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(IntegerArgument(nodeName, min).apply(block)) -inline fun ArgumentTree.integerArgument(nodeName: String, min: Int, max: Int, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(IntegerArgument(nodeName, min, max).apply(block)) -inline fun ArgumentTree.integerRangeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(IntegerRangeArgument(nodeName).apply(block)) - -// Float arguments -inline fun ArgumentTree.floatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(FloatArgument(nodeName).apply(block)) -inline fun ArgumentTree.floatArgument(nodeName: String, min: Float, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(FloatArgument(nodeName, min).apply(block)) -inline fun ArgumentTree.floatArgument(nodeName: String, min: Float, max: Float, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(FloatArgument(nodeName, min, max).apply(block)) -inline fun ArgumentTree.floatRangeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(FloatRangeArgument(nodeName).apply(block)) - -// Double arguments -inline fun ArgumentTree.doubleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(DoubleArgument(nodeName).apply(block)) -inline fun ArgumentTree.doubleArgument(nodeName: String, min: Double, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(DoubleArgument(nodeName, min).apply(block)) -inline fun ArgumentTree.doubleArgument(nodeName: String, min: Double, max: Double, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(DoubleArgument(nodeName, min, max).apply(block)) - -// Long arguments -inline fun ArgumentTree.longArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LongArgument(nodeName).apply(block)) -inline fun ArgumentTree.longArgument(nodeName: String, min: Long, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LongArgument(nodeName, min).apply(block)) -inline fun ArgumentTree.longArgument(nodeName: String, min: Long, max: Long, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LongArgument(nodeName, min, max).apply(block)) - -// Boolean argument -inline fun ArgumentTree.booleanArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(BooleanArgument(nodeName).apply(block)) - -// String arguments -inline fun ArgumentTree.stringArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(StringArgument(nodeName).apply(block)) -inline fun ArgumentTree.textArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(TextArgument(nodeName).apply(block)) -inline fun ArgumentTree.greedyStringArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(GreedyStringArgument(nodeName).apply(block)) - -// Positional arguments -inline fun ArgumentTree.locationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LocationArgument(nodeName).apply(block)) -inline fun ArgumentTree.locationArgument(nodeName: String, locationType: LocationType, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LocationArgument(nodeName, locationType).apply(block)) -inline fun ArgumentTree.location2DArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(Location2DArgument(nodeName).apply(block)) -inline fun ArgumentTree.location2DArgument(nodeName: String, locationType: LocationType, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(Location2DArgument(nodeName, locationType).apply(block)) -inline fun ArgumentTree.rotationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(RotationArgument(nodeName).apply(block)) -inline fun ArgumentTree.axisArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(AxisArgument(nodeName).apply(block)) - -// Chat arguments -inline fun ArgumentTree.chatColorArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ChatColorArgument(nodeName).apply(block)) -inline fun ArgumentTree.chatComponentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ChatComponentArgument(nodeName).apply(block)) -inline fun ArgumentTree.chatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ChatArgument(nodeName).apply(block)) -inline fun ArgumentTree.adventureChatComponentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(AdventureChatComponentArgument(nodeName).apply(block)) -inline fun ArgumentTree.adventureChatArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(AdventureChatArgument(nodeName).apply(block)) - -// Entity & Player arguments -inline fun ArgumentTree.entitySelectorArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(EntitySelectorArgument(nodeName).apply(block)) -inline fun ArgumentTree.entitySelectorArgument(nodeName: String, entitySelector: T, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) -inline fun ArgumentTree.playerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(PlayerArgument(nodeName).apply(block)) -inline fun ArgumentTree.offlinePlayerArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(OfflinePlayerArgument(nodeName).apply(block)) -inline fun ArgumentTree.entityTypeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(EntityTypeArgument(nodeName).apply(block)) - -// Scoreboard arguments -inline fun ArgumentTree.scoreHolderArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ScoreHolderArgument(nodeName).apply(block)) -inline fun ArgumentTree.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) -inline fun ArgumentTree.scoreboardSlotArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ScoreboardSlotArgument(nodeName).apply(block)) -inline fun ArgumentTree.objectiveArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ObjectiveArgument(nodeName).apply(block)) -inline fun ArgumentTree.objectiveCriteriaArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ObjectiveCriteriaArgument(nodeName).apply(block)) -inline fun ArgumentTree.teamArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(TeamArgument(nodeName).apply(block)) - -// Miscellaneous arguments -inline fun ArgumentTree.angleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(AngleArgument(nodeName).apply(block)) -inline fun ArgumentTree.advancementArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(AdvancementArgument(nodeName).apply(block)) -inline fun ArgumentTree.biomeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(BiomeArgument(nodeName).apply(block)) -inline fun ArgumentTree.blockStateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(BlockStateArgument(nodeName).apply(block)) -inline fun ArgumentTree.commandArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(CommandArgument(nodeName).apply(block)) -inline fun ArgumentTree.enchantmentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(EnchantmentArgument(nodeName).apply(block)) -inline fun ArgumentTree.environmentArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(EnvironmentArgument(nodeName).apply(block)) -inline fun ArgumentTree.itemStackArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ItemStackArgument(nodeName).apply(block)) -inline fun ArgumentTree.lootTableArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(LootTableArgument(nodeName).apply(block)) -inline fun ArgumentTree.mathOperationArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(MathOperationArgument(nodeName).apply(block)) -inline fun ArgumentTree.namespacedKeyArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(NamespacedKeyArgument(nodeName).apply(block)) -inline fun ArgumentTree.particleArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ParticleArgument(nodeName).apply(block)) -inline fun ArgumentTree.potionEffectArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(PotionEffectArgument(nodeName).apply(block)) -inline fun ArgumentTree.recipeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(RecipeArgument(nodeName).apply(block)) -inline fun ArgumentTree.soundArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(SoundArgument(nodeName).apply(block)) -inline fun ArgumentTree.soundArgument(nodeName: String, soundType: SoundType, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(SoundArgument(nodeName, soundType).apply(block)) -inline fun ArgumentTree.timeArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(TimeArgument(nodeName).apply(block)) -inline fun ArgumentTree.uuidArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(UUIDArgument(nodeName).apply(block)) -inline fun ArgumentTree.worldArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(WorldArgument(nodeName).apply(block)) - -// Predicate arguments -inline fun ArgumentTree.blockPredicateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(BlockPredicateArgument(nodeName).apply(block)) -inline fun ArgumentTree.itemStackPredicateArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(ItemStackPredicateArgument(nodeName).apply(block)) - -// NBT arguments -inline fun ArgumentTree.nbtCompoundArgument(nodeName: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(NBTCompoundArgument(nodeName).apply(block)) - -// Literal arguments -inline fun ArgumentTree.literalArgument(literal: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(of(literal).apply(block)) -inline fun ArgumentTree.multiLiteralArgument(vararg literals: String, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(MultiLiteralArgument(*literals).apply(block)) - -inline fun CommandTree.requirement(base: Argument<*>, predicate: Predicate, block: ArgumentTree.() -> Unit = {}): CommandTree = then(base.withRequirement(predicate).apply(block)) -inline fun ArgumentTree.requirement(base: Argument<*>, predicate: Predicate, block: ArgumentTree.() -> Unit = {}): ArgumentTree = then(base.withRequirement(predicate).apply(block)) - -// CommandTree execution -fun CommandTree.anyExecutor(any: (CommandSender, Array) -> Unit) = Executions().any(any).executes(this) -fun CommandTree.playerExecutor(player: (Player, Array) -> Unit) = Executions().player(player).executes(this) -fun CommandTree.consoleExecutor(console: (ConsoleCommandSender, Array) -> Unit) = Executions().console(console).executes(this) -fun CommandTree.commandBlockExecutor(block: (BlockCommandSender, Array) -> Unit) = Executions().block(block).executes(this) -fun CommandTree.proxyExecutor(proxy: (ProxiedCommandSender, Array) -> Unit) = Executions().proxy(proxy).executes(this) -fun CommandTree.nativeExecutor(native: (NativeProxyCommandSender, Array) -> Unit) = Executions().native(native).executes(this) - -// ArgumentTree execution -fun ArgumentTree.anyExecutor(any: (CommandSender, Array) -> Unit) = Executions().any(any).executes(this) -fun ArgumentTree.playerExecutor(player: (Player, Array) -> Unit) = Executions().player(player).executes(this) -fun ArgumentTree.consoleExecutor(console: (ConsoleCommandSender, Array) -> Unit) = Executions().console(console).executes(this) -fun ArgumentTree.commandBlockExecutor(block: (BlockCommandSender, Array) -> Unit) = Executions().block(block).executes(this) -fun ArgumentTree.proxyExecutor(proxy: (ProxiedCommandSender, Array) -> Unit) = Executions().proxy(proxy).executes(this) -fun ArgumentTree.nativeExecutor(native: (NativeProxyCommandSender, Array) -> Unit) = Executions().native(native).executes(this) - - -class Executions { - - private var any: ((CommandSender, Array) -> Unit)? = null - private var player: ((Player, Array) -> Unit)? = null - private var console: ((ConsoleCommandSender, Array) -> Unit)? = null - private var block: ((BlockCommandSender, Array) -> Unit)? = null - private var proxy: ((ProxiedCommandSender, Array) -> Unit)? = null - private var native: ((NativeProxyCommandSender, Array) -> Unit)? = null - - fun any(any: (CommandSender, Array) -> Unit): Executions { - this.any = any - return this - } - - fun player(player: (Player, Array) -> Unit): Executions { - this.player = player - return this - } - - fun console(console: (ConsoleCommandSender, Array) -> Unit): Executions { - this.console = console - return this - } - - fun block(block: (BlockCommandSender, Array) -> Unit): Executions { - this.block = block - return this - } - - fun proxy(proxy: (ProxiedCommandSender, Array) -> Unit): Executions { - this.proxy = proxy - return this - } - - fun native(native: (NativeProxyCommandSender, Array) -> Unit): Executions { - this.native = native - return this - } - - fun executes(tree: ArgumentTree) { - if (any != null) { - tree.executes(CommandExecutor { sender, args -> - any?.invoke(sender, args) - }) - return - } - if (player != null) { - tree.executesPlayer(PlayerCommandExecutor { player, args -> - this.player?.invoke(player, args) - }) - return - } - if (console != null) { - tree.executesConsole(ConsoleCommandExecutor { console, args -> - this.console?.invoke(console, args) - }) - return - } - if (block != null) { - tree.executesCommandBlock(CommandBlockCommandExecutor { block, args -> - this.block?.invoke(block, args) - }) - return - } - if (proxy != null) { - tree.executesProxy(ProxyCommandExecutor { proxy, args -> - this.proxy?.invoke(proxy, args) - }) - return - } - if (native != null) { - tree.executesNative(NativeCommandExecutor { native, args -> - this.native?.invoke(native, args) - }) - return - } - } - - fun executes(tree: CommandTree) { - if (any != null) { - tree.executes(CommandExecutor { sender, args -> - any?.invoke(sender, args) - }) - return - } - if (player != null) { - tree.executesPlayer(PlayerCommandExecutor { player, args -> - this.player?.invoke(player, args) - }) - return - } - if (console != null) { - tree.executesConsole(ConsoleCommandExecutor { console, args -> - this.console?.invoke(console, args) - }) - return - } - if (block != null) { - tree.executesCommandBlock(CommandBlockCommandExecutor { block, args -> - this.block?.invoke(block, args) - }) - return - } - if (proxy != null) { - tree.executesProxy(ProxyCommandExecutor { proxy, args -> - this.proxy?.invoke(proxy, args) - }) - return - } - if (native != null) { - tree.executesNative(NativeCommandExecutor { native, args -> - this.native?.invoke(native, args) - }) - return - } - } -} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandResult.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandResult.java deleted file mode 100644 index f260c97557..0000000000 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/CommandResult.java +++ /dev/null @@ -1,58 +0,0 @@ -package dev.jorel.commandapi.arguments; - -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; - -import java.util.Arrays; -import java.util.Objects; - -/** - * CommandResult represents an executable command. It contains the following - * methods: - *
    - *
  • {@link CommandResult#command} - the command which this - * {@code CommandResult} contains
  • - *
  • {@link CommandResult#args} - the arguments that were provided to this - * command
  • - *
- */ -public record CommandResult( - /** - * The executable Bukkit {@link Command} that this {@link CommandResult} - * contains. - */ - Command command, - - /** - * The arguments provided to this command. - */ - String[] args) { - - /** - * Executes this command with a provided {@link CommandSender}. This is - * analogous to running - * {@code result.command().execute(sender, command.getLabel(), result.args());} - * - * @param sender the command sender that will be used to execute this command - */ - public void execute(CommandSender sender) { - command.execute(sender, command.getLabel(), args); - } - - @Override - public boolean equals(Object o) { - if (this == o) - return true; - if (o == null || getClass() != o.getClass()) - return false; - CommandResult that = (CommandResult) o; - return command.equals(that.command) && Arrays.equals(args, that.args); - } - - @Override - public int hashCode() { - int result = Objects.hash(command); - result = 31 * result + Arrays.hashCode(args); - return result; - } -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SoundType.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundType.java similarity index 82% rename from commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SoundType.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundType.java index 9b810b938c..b8fb577a8d 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/arguments/SoundType.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/SoundType.java @@ -1,11 +1,10 @@ package dev.jorel.commandapi.arguments; -import java.util.function.Function; - +import dev.jorel.commandapi.CommandAPIBukkit; import org.bukkit.NamespacedKey; import org.bukkit.Sound; -import dev.jorel.commandapi.CommandAPIHandler; +import java.util.function.Function; /** * An enum that represents the type that a {@link SoundArgument} should return @@ -16,7 +15,7 @@ public enum SoundType { /** * Returns a Bukkit {@link Sound} object */ - SOUND(soundOrNamespacedKey -> CommandAPIHandler.getInstance().getNMS().convert((Sound) soundOrNamespacedKey)), + SOUND(soundOrNamespacedKey -> CommandAPIBukkit.get().convert((Sound) soundOrNamespacedKey)), /** * Returns a Bukkit {@link NamespacedKey} object. Can be used with diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/CommandResult.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/CommandResult.java similarity index 97% rename from commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/CommandResult.java rename to commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/CommandResult.java index c2bbcda6a0..3bc86c56c6 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/wrappers/CommandResult.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/wrappers/CommandResult.java @@ -1,4 +1,3 @@ -// TODO: Move updates for CommandResult package dev.jorel.commandapi.wrappers; import org.bukkit.command.Command; @@ -34,7 +33,7 @@ public record CommandResult( /** * Executes this command with a provided {@link CommandSender}. This is equivalent to running * {@code result.command().execute(sender, result.command().getLabel(), result.args());} - * + * * @param sender the command sender that will be used to execute this command */ public boolean execute(CommandSender sender) { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index 7e090e2b79..986ac31a8e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -68,92 +68,6 @@ import java.util.function.Predicate; import java.util.function.ToIntFunction; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.TimeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_13_R2.Advancement; -import net.minecraft.server.v1_13_R2.ArgumentBlockPredicate; -import net.minecraft.server.v1_13_R2.ArgumentChat; -import net.minecraft.server.v1_13_R2.ArgumentChatComponent; -import net.minecraft.server.v1_13_R2.ArgumentChatFormat; -import net.minecraft.server.v1_13_R2.ArgumentCriterionValue; -import net.minecraft.server.v1_13_R2.ArgumentDimension; -import net.minecraft.server.v1_13_R2.ArgumentEnchantment; -import net.minecraft.server.v1_13_R2.ArgumentEntity; -import net.minecraft.server.v1_13_R2.ArgumentEntitySummon; -import net.minecraft.server.v1_13_R2.ArgumentItemPredicate; -import net.minecraft.server.v1_13_R2.ArgumentItemStack; -import net.minecraft.server.v1_13_R2.ArgumentMathOperation; -import net.minecraft.server.v1_13_R2.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_13_R2.ArgumentMobEffect; -import net.minecraft.server.v1_13_R2.ArgumentNBTTag; -import net.minecraft.server.v1_13_R2.ArgumentParticle; -import net.minecraft.server.v1_13_R2.ArgumentPosition; -import net.minecraft.server.v1_13_R2.ArgumentProfile; -import net.minecraft.server.v1_13_R2.ArgumentRotation; -import net.minecraft.server.v1_13_R2.ArgumentRotationAxis; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardObjective; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardSlot; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardTeam; -import net.minecraft.server.v1_13_R2.ArgumentScoreholder; -import net.minecraft.server.v1_13_R2.ArgumentTag; -import net.minecraft.server.v1_13_R2.ArgumentTile; -import net.minecraft.server.v1_13_R2.ArgumentVec2; -import net.minecraft.server.v1_13_R2.ArgumentVec2I; -import net.minecraft.server.v1_13_R2.ArgumentVec3; -import net.minecraft.server.v1_13_R2.BlockPosition; -import net.minecraft.server.v1_13_R2.CommandListenerWrapper; -import net.minecraft.server.v1_13_R2.CompletionProviders; -import net.minecraft.server.v1_13_R2.CriterionConditionValue; -import net.minecraft.server.v1_13_R2.CriterionConditionValue.c; -import net.minecraft.server.v1_13_R2.CustomFunction; -import net.minecraft.server.v1_13_R2.CustomFunctionData; -import net.minecraft.server.v1_13_R2.DedicatedServer; -import net.minecraft.server.v1_13_R2.DimensionManager; -import net.minecraft.server.v1_13_R2.Entity; -import net.minecraft.server.v1_13_R2.EntityPlayer; -import net.minecraft.server.v1_13_R2.EntitySelector; -import net.minecraft.server.v1_13_R2.EnumDirection.EnumAxis; -import net.minecraft.server.v1_13_R2.IBlockData; -import net.minecraft.server.v1_13_R2.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_13_R2.ICompletionProvider; -import net.minecraft.server.v1_13_R2.IRegistry; -import net.minecraft.server.v1_13_R2.ItemStack; -import net.minecraft.server.v1_13_R2.LootTable; -import net.minecraft.server.v1_13_R2.LootTableRegistry; -import net.minecraft.server.v1_13_R2.MinecraftKey; -import net.minecraft.server.v1_13_R2.MinecraftServer; -import net.minecraft.server.v1_13_R2.ParticleParam; -import net.minecraft.server.v1_13_R2.ParticleParamBlock; -import net.minecraft.server.v1_13_R2.ParticleParamItem; -import net.minecraft.server.v1_13_R2.ParticleParamRedstone; -import net.minecraft.server.v1_13_R2.ShapeDetectorBlock; -import net.minecraft.server.v1_13_R2.Vec2F; -import net.minecraft.server.v1_13_R2.Vec3D; -// TODO: Clean up merged imports - abstract class NMSWrapper_1_13_1 extends CommandAPIBukkit {} /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index 54e63c080b..e8b0cdcdec 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -62,7 +62,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -// TODO: Make sure imports merged correctly /** * NMS implementation for Minecraft 1.13 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index de2ef51281..33fb160b15 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -9,8 +9,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -27,36 +27,6 @@ import net.minecraft.server.v1_16_R2.*; import net.minecraft.server.v1_16_R2.EnumDirection.EnumAxis; import net.minecraft.server.v1_16_R2.IChatBaseComponent.ChatSerializer; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; import org.bukkit.Particle; import org.bukkit.*; import org.bukkit.World; @@ -102,105 +72,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_16_R2.Advancement; -import net.minecraft.server.v1_16_R2.ArgumentAngle; -import net.minecraft.server.v1_16_R2.ArgumentBlockPredicate; -import net.minecraft.server.v1_16_R2.ArgumentChat; -import net.minecraft.server.v1_16_R2.ArgumentChatComponent; -import net.minecraft.server.v1_16_R2.ArgumentChatFormat; -import net.minecraft.server.v1_16_R2.ArgumentCriterionValue; -import net.minecraft.server.v1_16_R2.ArgumentDimension; -import net.minecraft.server.v1_16_R2.ArgumentEnchantment; -import net.minecraft.server.v1_16_R2.ArgumentEntity; -import net.minecraft.server.v1_16_R2.ArgumentEntitySummon; -import net.minecraft.server.v1_16_R2.ArgumentItemPredicate; -import net.minecraft.server.v1_16_R2.ArgumentItemStack; -import net.minecraft.server.v1_16_R2.ArgumentMathOperation; -import net.minecraft.server.v1_16_R2.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_16_R2.ArgumentMobEffect; -import net.minecraft.server.v1_16_R2.ArgumentNBTTag; -import net.minecraft.server.v1_16_R2.ArgumentParticle; -import net.minecraft.server.v1_16_R2.ArgumentPosition; -import net.minecraft.server.v1_16_R2.ArgumentProfile; -import net.minecraft.server.v1_16_R2.ArgumentRegistry; -import net.minecraft.server.v1_16_R2.ArgumentRotation; -import net.minecraft.server.v1_16_R2.ArgumentRotationAxis; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardObjective; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardSlot; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardTeam; -import net.minecraft.server.v1_16_R2.ArgumentScoreholder; -import net.minecraft.server.v1_16_R2.ArgumentTag; -import net.minecraft.server.v1_16_R2.ArgumentTile; -import net.minecraft.server.v1_16_R2.ArgumentTime; -import net.minecraft.server.v1_16_R2.ArgumentUUID; -import net.minecraft.server.v1_16_R2.ArgumentVec2; -import net.minecraft.server.v1_16_R2.ArgumentVec2I; -import net.minecraft.server.v1_16_R2.ArgumentVec3; -import net.minecraft.server.v1_16_R2.BlockPosition; -import net.minecraft.server.v1_16_R2.BlockPosition2D; -import net.minecraft.server.v1_16_R2.CommandListenerWrapper; -import net.minecraft.server.v1_16_R2.CompletionProviders; -import net.minecraft.server.v1_16_R2.CriterionConditionValue; -import net.minecraft.server.v1_16_R2.CustomFunction; -import net.minecraft.server.v1_16_R2.CustomFunctionData; -import net.minecraft.server.v1_16_R2.CustomFunctionManager; -import net.minecraft.server.v1_16_R2.DataPackResources; -import net.minecraft.server.v1_16_R2.Entity; -import net.minecraft.server.v1_16_R2.EntityPlayer; -import net.minecraft.server.v1_16_R2.EntitySelector; -import net.minecraft.server.v1_16_R2.EntityTypes; -import net.minecraft.server.v1_16_R2.EnumDirection.EnumAxis; -import net.minecraft.server.v1_16_R2.IBlockData; -import net.minecraft.server.v1_16_R2.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_16_R2.ICompletionProvider; -import net.minecraft.server.v1_16_R2.IRecipe; -import net.minecraft.server.v1_16_R2.IRegistry; -import net.minecraft.server.v1_16_R2.IReloadableResourceManager; -import net.minecraft.server.v1_16_R2.ItemStack; -import net.minecraft.server.v1_16_R2.MinecraftKey; -import net.minecraft.server.v1_16_R2.MinecraftServer; -import net.minecraft.server.v1_16_R2.ParticleParam; -import net.minecraft.server.v1_16_R2.ParticleParamBlock; -import net.minecraft.server.v1_16_R2.ParticleParamItem; -import net.minecraft.server.v1_16_R2.ParticleParamRedstone; -import net.minecraft.server.v1_16_R2.ShapeDetectorBlock; -import net.minecraft.server.v1_16_R2.SystemUtils; -import net.minecraft.server.v1_16_R2.Unit; -import net.minecraft.server.v1_16_R2.Vec2F; -import net.minecraft.server.v1_16_R2.Vec3D; -// TODO: Clean up merged imports /** * NMS implementation for Minecraft 1.16.2 and 1.16.3 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index 28f7cc8731..e375e0ba3a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -29,8 +29,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -47,36 +47,6 @@ import net.minecraft.server.v1_16_R3.*; import net.minecraft.server.v1_16_R3.EnumDirection.EnumAxis; import net.minecraft.server.v1_16_R3.IChatBaseComponent.ChatSerializer; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; import org.bukkit.Particle; import org.bukkit.*; import org.bukkit.World; @@ -122,105 +92,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import io.papermc.paper.text.PaperComponents; -import net.kyori.adventure.text.Component; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_16_R3.Advancement; -import net.minecraft.server.v1_16_R3.ArgumentAngle; -import net.minecraft.server.v1_16_R3.ArgumentBlockPredicate; -import net.minecraft.server.v1_16_R3.ArgumentChat; -import net.minecraft.server.v1_16_R3.ArgumentChatComponent; -import net.minecraft.server.v1_16_R3.ArgumentChatFormat; -import net.minecraft.server.v1_16_R3.ArgumentCriterionValue; -import net.minecraft.server.v1_16_R3.ArgumentDimension; -import net.minecraft.server.v1_16_R3.ArgumentEnchantment; -import net.minecraft.server.v1_16_R3.ArgumentEntity; -import net.minecraft.server.v1_16_R3.ArgumentEntitySummon; -import net.minecraft.server.v1_16_R3.ArgumentItemPredicate; -import net.minecraft.server.v1_16_R3.ArgumentItemStack; -import net.minecraft.server.v1_16_R3.ArgumentMathOperation; -import net.minecraft.server.v1_16_R3.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_16_R3.ArgumentMobEffect; -import net.minecraft.server.v1_16_R3.ArgumentNBTTag; -import net.minecraft.server.v1_16_R3.ArgumentParticle; -import net.minecraft.server.v1_16_R3.ArgumentPosition; -import net.minecraft.server.v1_16_R3.ArgumentProfile; -import net.minecraft.server.v1_16_R3.ArgumentRegistry; -import net.minecraft.server.v1_16_R3.ArgumentRotation; -import net.minecraft.server.v1_16_R3.ArgumentRotationAxis; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardObjective; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardSlot; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardTeam; -import net.minecraft.server.v1_16_R3.ArgumentScoreholder; -import net.minecraft.server.v1_16_R3.ArgumentTag; -import net.minecraft.server.v1_16_R3.ArgumentTile; -import net.minecraft.server.v1_16_R3.ArgumentTime; -import net.minecraft.server.v1_16_R3.ArgumentUUID; -import net.minecraft.server.v1_16_R3.ArgumentVec2; -import net.minecraft.server.v1_16_R3.ArgumentVec2I; -import net.minecraft.server.v1_16_R3.ArgumentVec3; -import net.minecraft.server.v1_16_R3.BlockPosition; -import net.minecraft.server.v1_16_R3.BlockPosition2D; -import net.minecraft.server.v1_16_R3.CommandListenerWrapper; -import net.minecraft.server.v1_16_R3.CompletionProviders; -import net.minecraft.server.v1_16_R3.CriterionConditionValue; -import net.minecraft.server.v1_16_R3.CustomFunction; -import net.minecraft.server.v1_16_R3.CustomFunctionData; -import net.minecraft.server.v1_16_R3.CustomFunctionManager; -import net.minecraft.server.v1_16_R3.DataPackResources; -import net.minecraft.server.v1_16_R3.Entity; -import net.minecraft.server.v1_16_R3.EntityPlayer; -import net.minecraft.server.v1_16_R3.EntitySelector; -import net.minecraft.server.v1_16_R3.EntityTypes; -import net.minecraft.server.v1_16_R3.EnumDirection.EnumAxis; -import net.minecraft.server.v1_16_R3.IBlockData; -import net.minecraft.server.v1_16_R3.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_16_R3.ICompletionProvider; -import net.minecraft.server.v1_16_R3.IRecipe; -import net.minecraft.server.v1_16_R3.IRegistry; -import net.minecraft.server.v1_16_R3.IReloadableResourceManager; -import net.minecraft.server.v1_16_R3.ItemStack; -import net.minecraft.server.v1_16_R3.MinecraftKey; -import net.minecraft.server.v1_16_R3.MinecraftServer; -import net.minecraft.server.v1_16_R3.ParticleParam; -import net.minecraft.server.v1_16_R3.ParticleParamBlock; -import net.minecraft.server.v1_16_R3.ParticleParamItem; -import net.minecraft.server.v1_16_R3.ParticleParamRedstone; -import net.minecraft.server.v1_16_R3.ShapeDetectorBlock; -import net.minecraft.server.v1_16_R3.SoundEffect; -import net.minecraft.server.v1_16_R3.SystemUtils; -import net.minecraft.server.v1_16_R3.Vec2F; -import net.minecraft.server.v1_16_R3.Vec3D; -// TODO: Clean up merged imports /** * NMS implementation for Minecraft 1.16.4 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java index 5cb6574b2b..c0f1e24efc 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.17-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_17_Common.java @@ -20,52 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Particle.DustTransition; -import org.bukkit.Vibration; -import org.bukkit.Vibration.Destination; -import org.bukkit.Vibration.Destination.BlockDestination; -import org.bukkit.Vibration.Destination.EntityDestination; -import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_17_R1.CraftLootTable; -import org.bukkit.craftbukkit.v1_17_R1.CraftParticle; -import org.bukkit.craftbukkit.v1_17_R1.CraftServer; -import org.bukkit.craftbukkit.v1_17_R1.CraftSound; -import org.bukkit.craftbukkit.v1_17_R1.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_17_R1.command.VanillaCommandWrapper; -import org.bukkit.craftbukkit.v1_17_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_17_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_17_R1.help.CustomHelpTopic; -import org.bukkit.craftbukkit.v1_17_R1.help.SimpleHelpMap; -import org.bukkit.craftbukkit.v1_17_R1.inventory.CraftItemStack; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.potion.PotionEffectType; - import com.google.common.io.Files; import com.google.gson.GsonBuilder; import com.mojang.brigadier.CommandDispatcher; @@ -73,8 +27,8 @@ import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; @@ -86,12 +40,6 @@ import net.minecraft.commands.CommandFunction.Entry; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.arguments.*; -import net.minecraft.commands.arguments.ComponentArgument; -import net.minecraft.commands.arguments.EntityArgument; -import net.minecraft.commands.arguments.EntitySummonArgument; -import net.minecraft.commands.arguments.MobEffectArgument; -import net.minecraft.commands.arguments.ParticleArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; import net.minecraft.commands.arguments.blocks.BlockPredicateArgument; import net.minecraft.commands.arguments.blocks.BlockStateArgument; import net.minecraft.commands.arguments.coordinates.BlockPosArgument; @@ -147,6 +95,7 @@ import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.help.HelpTopic; +import org.bukkit.potion.PotionEffectType; import java.io.File; import java.io.IOException; @@ -159,7 +108,6 @@ import java.util.Optional; import java.util.function.Predicate; import java.util.function.ToIntFunction; -// TODO: Clean up merged imports // Mojang-Mapped reflection /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java index de1be60727..13bd814d30 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java @@ -20,60 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Particle.DustTransition; -import org.bukkit.Vibration; -import org.bukkit.Vibration.Destination; -import org.bukkit.Vibration.Destination.BlockDestination; -import org.bukkit.Vibration.Destination.EntityDestination; -import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_18_R2.CraftLootTable; -import org.bukkit.craftbukkit.v1_18_R2.CraftParticle; -import org.bukkit.craftbukkit.v1_18_R2.CraftServer; -import org.bukkit.craftbukkit.v1_18_R2.CraftSound; -import org.bukkit.craftbukkit.v1_18_R2.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_18_R2.command.VanillaCommandWrapper; -import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_18_R2.help.CustomHelpTopic; -import org.bukkit.craftbukkit.v1_18_R2.help.SimpleHelpMap; -import org.bukkit.craftbukkit.v1_18_R2.inventory.CraftItemStack; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.inventory.Recipe; -import org.bukkit.potion.PotionEffectType; - import com.google.common.collect.ImmutableList; import com.google.common.io.Files; import com.google.gson.GsonBuilder; @@ -84,8 +30,8 @@ import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; import com.mojang.logging.LogUtils; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; @@ -99,13 +45,6 @@ import net.minecraft.commands.CommandFunction.Entry; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.arguments.*; -import net.minecraft.commands.arguments.ComponentArgument; -import net.minecraft.commands.arguments.EntityArgument; -import net.minecraft.commands.arguments.EntitySummonArgument; -import net.minecraft.commands.arguments.MobEffectArgument; -import net.minecraft.commands.arguments.ParticleArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; -import net.minecraft.commands.arguments.ResourceOrTagLocationArgument; import net.minecraft.commands.arguments.ResourceOrTagLocationArgument.Result; import net.minecraft.commands.arguments.blocks.BlockPredicateArgument; import net.minecraft.commands.arguments.blocks.BlockStateArgument; @@ -174,6 +113,7 @@ import org.bukkit.entity.Player; import org.bukkit.help.HelpTopic; import org.bukkit.inventory.Recipe; +import org.bukkit.potion.PotionEffectType; import java.io.File; import java.io.IOException; @@ -186,7 +126,6 @@ import java.util.concurrent.CompletableFuture; import java.util.function.Predicate; import java.util.function.ToIntFunction; -// TODO: Clean up merged imports // Mojang-Mapped reflection /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java index ede5ac75c3..52a7f86507 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R1.java @@ -20,58 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Particle.DustTransition; -import org.bukkit.Vibration; -import org.bukkit.Vibration.Destination; -import org.bukkit.Vibration.Destination.BlockDestination; -import org.bukkit.Vibration.Destination.EntityDestination; -import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_18_R1.CraftLootTable; -import org.bukkit.craftbukkit.v1_18_R1.CraftParticle; -import org.bukkit.craftbukkit.v1_18_R1.CraftServer; -import org.bukkit.craftbukkit.v1_18_R1.CraftSound; -import org.bukkit.craftbukkit.v1_18_R1.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_18_R1.command.VanillaCommandWrapper; -import org.bukkit.craftbukkit.v1_18_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_18_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_18_R1.help.CustomHelpTopic; -import org.bukkit.craftbukkit.v1_18_R1.help.SimpleHelpMap; -import org.bukkit.craftbukkit.v1_18_R1.inventory.CraftItemStack; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.inventory.Recipe; -import org.bukkit.potion.PotionEffectType; - import com.google.common.io.Files; import com.google.gson.GsonBuilder; import com.mojang.brigadier.CommandDispatcher; @@ -79,8 +27,8 @@ import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; @@ -95,12 +43,6 @@ import net.minecraft.commands.CommandFunction.Entry; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.arguments.*; -import net.minecraft.commands.arguments.ComponentArgument; -import net.minecraft.commands.arguments.EntityArgument; -import net.minecraft.commands.arguments.EntitySummonArgument; -import net.minecraft.commands.arguments.MobEffectArgument; -import net.minecraft.commands.arguments.ParticleArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; import net.minecraft.commands.arguments.blocks.BlockPredicateArgument; import net.minecraft.commands.arguments.blocks.BlockStateArgument; import net.minecraft.commands.arguments.coordinates.BlockPosArgument; @@ -159,6 +101,7 @@ import org.bukkit.entity.Player; import org.bukkit.help.HelpTopic; import org.bukkit.inventory.Recipe; +import org.bukkit.potion.PotionEffectType; import java.io.File; import java.io.IOException; @@ -171,7 +114,6 @@ import java.util.concurrent.CompletableFuture; import java.util.function.Predicate; import java.util.function.ToIntFunction; -// TODO: Clean up merged imports // Mojang-Mapped reflection /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java index 9684e15688..644c1d02ff 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java @@ -20,61 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Particle.DustTransition; -import org.bukkit.Vibration; -import org.bukkit.Vibration.Destination; -import org.bukkit.Vibration.Destination.BlockDestination; -import org.bukkit.Vibration.Destination.EntityDestination; -import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_19_R1.CraftLootTable; -import org.bukkit.craftbukkit.v1_19_R1.CraftParticle; -import org.bukkit.craftbukkit.v1_19_R1.CraftServer; -import org.bukkit.craftbukkit.v1_19_R1.CraftSound; -import org.bukkit.craftbukkit.v1_19_R1.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_19_R1.command.VanillaCommandWrapper; -import org.bukkit.craftbukkit.v1_19_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_19_R1.help.CustomHelpTopic; -import org.bukkit.craftbukkit.v1_19_R1.help.SimpleHelpMap; -import org.bukkit.craftbukkit.v1_19_R1.inventory.CraftItemStack; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.inventory.Recipe; -import org.bukkit.plugin.Plugin; -import org.bukkit.potion.PotionEffectType; - import com.google.common.collect.ImmutableList; import com.google.common.io.Files; import com.google.gson.GsonBuilder; @@ -86,8 +31,8 @@ import com.mojang.brigadier.exceptions.DynamicCommandExceptionType; import com.mojang.datafixers.util.Either; import com.mojang.logging.LogUtils; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; @@ -102,13 +47,6 @@ import net.minecraft.commands.CommandFunction.Entry; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.arguments.*; -import net.minecraft.commands.arguments.ComponentArgument; -import net.minecraft.commands.arguments.EntityArgument; -import net.minecraft.commands.arguments.EntitySummonArgument; -import net.minecraft.commands.arguments.MobEffectArgument; -import net.minecraft.commands.arguments.ParticleArgument; -import net.minecraft.commands.arguments.ResourceLocationArgument; -import net.minecraft.commands.arguments.ResourceOrTagLocationArgument; import net.minecraft.commands.arguments.ResourceOrTagLocationArgument.Result; import net.minecraft.commands.arguments.blocks.BlockPredicateArgument; import net.minecraft.commands.arguments.blocks.BlockStateArgument; @@ -179,6 +117,7 @@ import org.bukkit.help.HelpTopic; import org.bukkit.inventory.Recipe; import org.bukkit.plugin.Plugin; +import org.bukkit.potion.PotionEffectType; import java.io.File; import java.io.IOException; @@ -191,7 +130,6 @@ import java.util.concurrent.CompletableFuture; import java.util.function.Predicate; import java.util.function.ToIntFunction; -// TODO: Clean up merged imports // Mojang-Mapped reflection /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java index ae3c06f48b..4f57cc5b19 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java @@ -1,17 +1,21 @@ package dev.jorel.commandapi.test; -import java.io.IOException; -import java.nio.file.Files; -import java.util.Collection; -import java.util.List; -import java.util.concurrent.ThreadLocalRandom; -import java.util.stream.Collectors; - -import dev.jorel.commandapi.*; -import dev.jorel.commandapi.CommandAPIHandler; +import be.seeseemelk.mockbukkit.MockBukkit; +import be.seeseemelk.mockbukkit.WorldMock; +import be.seeseemelk.mockbukkit.entity.PlayerMock; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.CommandAPICommand; +import dev.jorel.commandapi.CommandTree; import dev.jorel.commandapi.arguments.*; import dev.jorel.commandapi.executors.CommandExecutor; import dev.jorel.commandapi.wrappers.CommandResult; +import dev.jorel.commandapi.wrappers.Location2D; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.advancement.Advancement; @@ -25,35 +29,15 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.RepeatedTest; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; -import com.mojang.brigadier.exceptions.CommandSyntaxException; +import java.io.IOException; +import java.nio.file.Files; +import java.util.Collection; +import java.util.List; +import java.util.concurrent.ThreadLocalRandom; +import java.util.stream.Collectors; -import be.seeseemelk.mockbukkit.MockBukkit; -import be.seeseemelk.mockbukkit.WorldMock; -import be.seeseemelk.mockbukkit.entity.PlayerMock; -import dev.jorel.commandapi.CommandAPICommand; -import dev.jorel.commandapi.arguments.AdvancementArgument; -import dev.jorel.commandapi.arguments.AdventureChatComponentArgument; -import dev.jorel.commandapi.arguments.BooleanArgument; -import dev.jorel.commandapi.arguments.ChatComponentArgument; -import dev.jorel.commandapi.arguments.EntitySelector; -import dev.jorel.commandapi.arguments.EntitySelectorArgument; -import dev.jorel.commandapi.arguments.GreedyStringArgument; -import dev.jorel.commandapi.arguments.IntegerArgument; -import dev.jorel.commandapi.arguments.ListArgumentBuilder; -import dev.jorel.commandapi.arguments.Location2DArgument; -import dev.jorel.commandapi.arguments.LocationArgument; -import dev.jorel.commandapi.arguments.LocationType; -import dev.jorel.commandapi.arguments.PlayerArgument; -import dev.jorel.commandapi.arguments.PotionEffectArgument; -import dev.jorel.commandapi.arguments.StringArgument; -import dev.jorel.commandapi.wrappers.Location2D; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -// TODO: Clean up merged imports +import static org.junit.jupiter.api.Assertions.*; /** * Tests for the 40+ arguments in dev.jorel.commandapi.arguments diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt index 7e18cf2f03..e65cd55cdb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt +++ b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt @@ -94,9 +94,11 @@ inline fun CommandTree.namespacedKeyArgument(nodeName: String, block: Argument<* inline fun CommandTree.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ParticleArgument(nodeName).apply(block)) inline fun CommandTree.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(PotionEffectArgument(nodeName).apply(block)) inline fun CommandTree.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(RecipeArgument(nodeName).apply(block)) -inline fun CommandTree.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName).apply(block)) +inline fun CommandTree.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName).apply(block)) +inline fun CommandTree.soundArgument(nodeName: String, soundType: SoundType, block: Argument<*>.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName, soundType).apply(block)) inline fun CommandTree.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TimeArgument(nodeName).apply(block)) inline fun CommandTree.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(UUIDArgument(nodeName).apply(block)) +inline fun CommandTree.worldArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(WorldArgument(nodeName).apply(block)) // Predicate arguments inline fun CommandTree.blockPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BlockPredicateArgument(nodeName).apply(block)) @@ -188,9 +190,11 @@ inline fun Argument<*>.namespacedKeyArgument(nodeName: String, block: Argument<* inline fun Argument<*>.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ParticleArgument(nodeName).apply(block)) inline fun Argument<*>.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(PotionEffectArgument(nodeName).apply(block)) inline fun Argument<*>.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(RecipeArgument(nodeName).apply(block)) -inline fun Argument<*>.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(SoundArgument(nodeName).apply(block)) +inline fun Argument<*>.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(SoundArgument(nodeName).apply(block)) +inline fun Argument<*>.soundArgument(nodeName: String, soundType: SoundType, block: Argument<*>.() -> Unit = {}): Argument<*> = then(SoundArgument(nodeName, soundType).apply(block)) inline fun Argument<*>.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TimeArgument(nodeName).apply(block)) inline fun Argument<*>.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(UUIDArgument(nodeName).apply(block)) +inline fun Argument<*>.worldArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(WorldArgument(nodeName).apply(block)) // Predicate arguments inline fun Argument<*>.blockPredicateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BlockPredicateArgument(nodeName).apply(block)) diff --git a/docssrc/src/brigadiersuggestions.md b/docssrc/src/brigadiersuggestions.md index f13943e9ff..9802eff02a 100644 --- a/docssrc/src/brigadiersuggestions.md +++ b/docssrc/src/brigadiersuggestions.md @@ -25,11 +25,11 @@ For this command, we'll use a `GreedyStringArgument` as if we were making a gene
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:BrigadierSuggestions3}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:BrigadierSuggestions3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:BrigadierSuggestions3}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:BrigadierSuggestions3}} ```
diff --git a/docssrc/src/commandarguments.md b/docssrc/src/commandarguments.md index d650dd3009..cc6053b035 100644 --- a/docssrc/src/commandarguments.md +++ b/docssrc/src/commandarguments.md @@ -81,11 +81,11 @@ In this example, we want to be able to run any arbitrary command, so we will sim
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:command_argument_sudo}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:command_argument_sudo}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:command_argument_sudo}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:command_argument_sudo}} ```
@@ -138,11 +138,11 @@ We can implement our `/tp` branch using the `SuggestionsBranch.suggest()` method
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:command_argument_branch_tp}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:command_argument_branch_tp}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:command_argument_branch_tp}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:command_argument_branch_tp}} ```
@@ -152,11 +152,11 @@ For the `/give` branch, we can use a similar thing, but we need to tell the Comm
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:command_argument_branch_give}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:command_argument_branch_give}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:command_argument_branch_give}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:command_argument_branch_give}} ```
@@ -166,11 +166,11 @@ Adding everything together, we get this fully completed CommandArgument:
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:command_argument_branch}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:command_argument_branch}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:command_argument_branch}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:command_argument_branch}} ```
diff --git a/docssrc/src/literalarguments.md b/docssrc/src/literalarguments.md index 4a64c0eee7..aacc5decbe 100644 --- a/docssrc/src/literalarguments.md +++ b/docssrc/src/literalarguments.md @@ -61,11 +61,11 @@ The `LiteralArgument` class also provides the `LiteralArgument.of()` and `Litera
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:literalarguments3}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:literalarguments3}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:literalarguments3}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:literalarguments3}} ```
diff --git a/docssrc/src/soundargument.md b/docssrc/src/soundargument.md index 7bf7b6895e..917c1fdd97 100644 --- a/docssrc/src/soundargument.md +++ b/docssrc/src/soundargument.md @@ -26,14 +26,7 @@ Say we want a simple command that plays a specific sound at your location. To do ``` This command simply plays the provided sound to the current player: -TODO: Make sure all docs reference Examples in the right place -``` -From {{#include ../../commandapi-core/src/test/java/Examples.java -To {{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java -From {{#include ../../commandapi-core/src/test/kotlin/Examples.kt -To {{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt -```
```java,Java_(Sound) diff --git a/docssrc/src/worldarguments.md b/docssrc/src/worldarguments.md index f9b201c44c..4ed24a03f3 100644 --- a/docssrc/src/worldarguments.md +++ b/docssrc/src/worldarguments.md @@ -19,11 +19,11 @@ Using the world from the `WorldArgument`, we can then unload the world safely us
```java,Java -{{#include ../../commandapi-core/src/test/java/Examples.java:worldarguments}} +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:worldarguments}} ``` ```kotlin,Kotlin -{{#include ../../commandapi-core/src/test/kotlin/Examples.kt:worldarguments}} +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:worldarguments}} ```
diff --git a/pom.xml b/pom.xml index 1a3ba8dcf7..eac83068ae 100644 --- a/pom.xml +++ b/pom.xml @@ -61,7 +61,7 @@ commandapi-core - + commandapi-platforms From 2088a02239583fb234442c8e1953b662a1fff34a Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 12 Dec 2022 18:13:42 -0500 Subject: [PATCH 154/638] Clean up after merge --- .../commandapi/examples/java/Examples.java | 89 ---------------- .../commandapi/nms/NMSWrapper_1_13_1.java | 7 +- .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 90 +--------------- .../dev/jorel/commandapi/nms/NMS_1_13.java | 91 +--------------- .../dev/jorel/commandapi/nms/NMS_1_14.java | 93 +--------------- .../dev/jorel/commandapi/nms/NMS_1_15.java | 95 +---------------- .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 99 +---------------- .../dev/jorel/commandapi/nms/NMS_1_16_R2.java | 100 +----------------- .../jorel/commandapi/nms/NMS_1_16_4_R3.java | 100 +----------------- .../dev/jorel/commandapi/nms/NMS_1_18_R2.java | 55 +--------- .../jorel/commandapi/nms/NMS_1_19_Common.java | 56 +--------- .../commandapi-bukkit-1.19.3/pom.xml | 4 +- .../jorel/commandapi/nms/NMS_1_19_3_R2.java | 17 +-- .../dev/jorel/commandapi/nms/NMS_Common.java | 45 +------- .../commandapi/CommandAPIVersionHandler.java | 4 +- .../dev/jorel/commandapi/CommandAPIMain.java | 3 + .../commandapi/kotlindsl/CommandTreeDSL.kt | 70 ++++++++++-- .../commandapi-bukkit/pom.xml | 2 +- .../dev/jorel/commandapi/CommandAPIMain.java | 3 + .../dev/jorel/commandapi/CommandAPIMain.java | 3 + 20 files changed, 104 insertions(+), 922 deletions(-) diff --git a/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java b/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java index 995b9c6848..2e3222c428 100644 --- a/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java +++ b/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java @@ -33,7 +33,6 @@ import dev.jorel.commandapi.arguments.*; import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException; import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder; -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.executors.ExecutorType; import dev.jorel.commandapi.wrappers.Rotation; @@ -78,94 +77,6 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ThreadLocalRandom; import java.util.function.Predicate; -import com.mojang.brigadier.LiteralMessage; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.ParseResults; -import com.mojang.brigadier.builder.ArgumentBuilder; -import com.mojang.brigadier.context.StringRange; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.Suggestions; -import com.mojang.brigadier.tree.LiteralCommandNode; - -import de.tr7zw.changeme.nbtapi.NBTContainer; -import dev.jorel.commandapi.Brigadier; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPICommand; -import dev.jorel.commandapi.CommandAPIConfig; -import dev.jorel.commandapi.CommandPermission; -import dev.jorel.commandapi.CommandTree; -import dev.jorel.commandapi.Converter; -import dev.jorel.commandapi.IStringTooltip; -import dev.jorel.commandapi.StringTooltip; -import dev.jorel.commandapi.Tooltip; -import dev.jorel.commandapi.arguments.AdvancementArgument; -import dev.jorel.commandapi.arguments.AdventureChatArgument; -import dev.jorel.commandapi.arguments.AdventureChatComponentArgument; -import dev.jorel.commandapi.arguments.AngleArgument; -import dev.jorel.commandapi.arguments.Argument; -import dev.jorel.commandapi.arguments.ArgumentSuggestions; -import dev.jorel.commandapi.arguments.BiomeArgument; -import dev.jorel.commandapi.arguments.BlockPredicateArgument; -import dev.jorel.commandapi.arguments.BlockStateArgument; -import dev.jorel.commandapi.arguments.BooleanArgument; -import dev.jorel.commandapi.arguments.ChatArgument; -import dev.jorel.commandapi.arguments.ChatColorArgument; -import dev.jorel.commandapi.arguments.ChatComponentArgument; -import dev.jorel.commandapi.arguments.CommandArgument; -import dev.jorel.commandapi.arguments.CustomArgument; -import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException; -import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder; -import dev.jorel.commandapi.arguments.EnchantmentArgument; -import dev.jorel.commandapi.arguments.EntitySelectorArgument; -import dev.jorel.commandapi.arguments.EntityTypeArgument; -import dev.jorel.commandapi.arguments.EnvironmentArgument; -import dev.jorel.commandapi.arguments.FunctionArgument; -import dev.jorel.commandapi.arguments.GreedyStringArgument; -import dev.jorel.commandapi.arguments.IntegerArgument; -import dev.jorel.commandapi.arguments.IntegerRangeArgument; -import dev.jorel.commandapi.arguments.ItemStackArgument; -import dev.jorel.commandapi.arguments.ItemStackPredicateArgument; -import dev.jorel.commandapi.arguments.ListArgumentBuilder; -import dev.jorel.commandapi.arguments.LiteralArgument; -import dev.jorel.commandapi.arguments.LocationArgument; -import dev.jorel.commandapi.arguments.LocationType; -import dev.jorel.commandapi.arguments.LootTableArgument; -import dev.jorel.commandapi.arguments.MathOperationArgument; -import dev.jorel.commandapi.arguments.MultiLiteralArgument; -import dev.jorel.commandapi.arguments.NBTCompoundArgument; -import dev.jorel.commandapi.arguments.ObjectiveArgument; -import dev.jorel.commandapi.arguments.ObjectiveCriteriaArgument; -import dev.jorel.commandapi.arguments.ParticleArgument; -import dev.jorel.commandapi.arguments.PlayerArgument; -import dev.jorel.commandapi.arguments.PotionEffectArgument; -import dev.jorel.commandapi.arguments.RecipeArgument; -import dev.jorel.commandapi.arguments.RotationArgument; -import dev.jorel.commandapi.arguments.SafeSuggestions; -import dev.jorel.commandapi.arguments.ScoreHolderArgument; -import dev.jorel.commandapi.arguments.ScoreboardSlotArgument; -import dev.jorel.commandapi.arguments.SoundArgument; -import dev.jorel.commandapi.arguments.StringArgument; -import dev.jorel.commandapi.arguments.SuggestionsBranch; -import dev.jorel.commandapi.arguments.TeamArgument; -import dev.jorel.commandapi.arguments.TextArgument; -import dev.jorel.commandapi.arguments.TimeArgument; -import dev.jorel.commandapi.arguments.WorldArgument; -import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.executors.ExecutorType; -import dev.jorel.commandapi.wrappers.CommandResult; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import net.kyori.adventure.inventory.Book; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; -import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.api.chat.TextComponent; -// TODO: Clean up merged imports public class Examples extends JavaPlugin { diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13_1.java index 18f5f048ba..e5dcafaf7c 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMSWrapper_1_13_1.java @@ -1,2 +1,7 @@ -package dev.jorel.commandapi.nms;public class NMSWrapper_1_13_1 { +package dev.jorel.commandapi.nms; + +import dev.jorel.commandapi.CommandAPIBukkit; +import net.minecraft.server.v1_13_R2.CommandListenerWrapper; + +abstract class NMSWrapper_1_13_1 extends CommandAPIBukkit { } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index a73e839d64..0825b55388 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -7,8 +7,8 @@ import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIBukkit; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -67,94 +67,6 @@ import java.util.function.Predicate; import java.util.function.ToIntFunction; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.TimeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_13_R2.Advancement; -import net.minecraft.server.v1_13_R2.ArgumentBlockPredicate; -import net.minecraft.server.v1_13_R2.ArgumentChat; -import net.minecraft.server.v1_13_R2.ArgumentChatComponent; -import net.minecraft.server.v1_13_R2.ArgumentChatFormat; -import net.minecraft.server.v1_13_R2.ArgumentCriterionValue; -import net.minecraft.server.v1_13_R2.ArgumentDimension; -import net.minecraft.server.v1_13_R2.ArgumentEnchantment; -import net.minecraft.server.v1_13_R2.ArgumentEntity; -import net.minecraft.server.v1_13_R2.ArgumentEntitySummon; -import net.minecraft.server.v1_13_R2.ArgumentItemPredicate; -import net.minecraft.server.v1_13_R2.ArgumentItemStack; -import net.minecraft.server.v1_13_R2.ArgumentMathOperation; -import net.minecraft.server.v1_13_R2.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_13_R2.ArgumentMobEffect; -import net.minecraft.server.v1_13_R2.ArgumentNBTTag; -import net.minecraft.server.v1_13_R2.ArgumentParticle; -import net.minecraft.server.v1_13_R2.ArgumentPosition; -import net.minecraft.server.v1_13_R2.ArgumentProfile; -import net.minecraft.server.v1_13_R2.ArgumentRotation; -import net.minecraft.server.v1_13_R2.ArgumentRotationAxis; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardObjective; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardSlot; -import net.minecraft.server.v1_13_R2.ArgumentScoreboardTeam; -import net.minecraft.server.v1_13_R2.ArgumentScoreholder; -import net.minecraft.server.v1_13_R2.ArgumentTag; -import net.minecraft.server.v1_13_R2.ArgumentTile; -import net.minecraft.server.v1_13_R2.ArgumentVec2; -import net.minecraft.server.v1_13_R2.ArgumentVec2I; -import net.minecraft.server.v1_13_R2.ArgumentVec3; -import net.minecraft.server.v1_13_R2.BlockPosition; -import net.minecraft.server.v1_13_R2.CommandListenerWrapper; -import net.minecraft.server.v1_13_R2.CompletionProviders; -import net.minecraft.server.v1_13_R2.CriterionConditionValue; -import net.minecraft.server.v1_13_R2.CriterionConditionValue.c; -import net.minecraft.server.v1_13_R2.CustomFunction; -import net.minecraft.server.v1_13_R2.CustomFunctionData; -import net.minecraft.server.v1_13_R2.DedicatedServer; -import net.minecraft.server.v1_13_R2.DimensionManager; -import net.minecraft.server.v1_13_R2.Entity; -import net.minecraft.server.v1_13_R2.EntityPlayer; -import net.minecraft.server.v1_13_R2.EntitySelector; -import net.minecraft.server.v1_13_R2.EnumDirection.EnumAxis; -import net.minecraft.server.v1_13_R2.IBlockData; -import net.minecraft.server.v1_13_R2.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_13_R2.ICompletionProvider; -import net.minecraft.server.v1_13_R2.IRegistry; -import net.minecraft.server.v1_13_R2.ItemStack; -import net.minecraft.server.v1_13_R2.LootTable; -import net.minecraft.server.v1_13_R2.LootTableRegistry; -import net.minecraft.server.v1_13_R2.MinecraftKey; -import net.minecraft.server.v1_13_R2.MinecraftServer; -import net.minecraft.server.v1_13_R2.ParticleParam; -import net.minecraft.server.v1_13_R2.ParticleParamBlock; -import net.minecraft.server.v1_13_R2.ParticleParamItem; -import net.minecraft.server.v1_13_R2.ParticleParamRedstone; -import net.minecraft.server.v1_13_R2.ShapeDetectorBlock; -import net.minecraft.server.v1_13_R2.Vec2F; -import net.minecraft.server.v1_13_R2.Vec3D; - -abstract class NMSWrapper_1_13_1 extends CommandAPIBukkit {} - /** * NMS implementation for Minecraft 1.13.1 */ diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index 77c5ab4aad..f30d466269 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -8,6 +8,7 @@ import com.mojang.brigadier.suggestion.Suggestions; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -61,96 +62,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.EnvironmentArgumentException; -import dev.jorel.commandapi.exceptions.TimeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.exceptions.UnimplementedArgumentException; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_13_R1.Advancement; -import net.minecraft.server.v1_13_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_13_R1.ArgumentChat; -import net.minecraft.server.v1_13_R1.ArgumentChatComponent; -import net.minecraft.server.v1_13_R1.ArgumentChatFormat; -import net.minecraft.server.v1_13_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_13_R1.ArgumentEnchantment; -import net.minecraft.server.v1_13_R1.ArgumentEntity; -import net.minecraft.server.v1_13_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_13_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_13_R1.ArgumentItemStack; -import net.minecraft.server.v1_13_R1.ArgumentMathOperation; -import net.minecraft.server.v1_13_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_13_R1.ArgumentMobEffect; -import net.minecraft.server.v1_13_R1.ArgumentNBTTag; -import net.minecraft.server.v1_13_R1.ArgumentParticle; -import net.minecraft.server.v1_13_R1.ArgumentPosition; -import net.minecraft.server.v1_13_R1.ArgumentProfile; -import net.minecraft.server.v1_13_R1.ArgumentRotation; -import net.minecraft.server.v1_13_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_13_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_13_R1.ArgumentScoreholder; -import net.minecraft.server.v1_13_R1.ArgumentTag; -import net.minecraft.server.v1_13_R1.ArgumentTile; -import net.minecraft.server.v1_13_R1.ArgumentVec2; -import net.minecraft.server.v1_13_R1.ArgumentVec3; -import net.minecraft.server.v1_13_R1.BlockPosition; -import net.minecraft.server.v1_13_R1.CommandListenerWrapper; -import net.minecraft.server.v1_13_R1.CompletionProviders; -import net.minecraft.server.v1_13_R1.CriterionConditionValue; -import net.minecraft.server.v1_13_R1.CriterionConditionValue.c; -import net.minecraft.server.v1_13_R1.CustomFunction; -import net.minecraft.server.v1_13_R1.CustomFunctionData; -import net.minecraft.server.v1_13_R1.DedicatedServer; -import net.minecraft.server.v1_13_R1.Entity; -import net.minecraft.server.v1_13_R1.EntityPlayer; -import net.minecraft.server.v1_13_R1.EntitySelector; -import net.minecraft.server.v1_13_R1.EntityTypes; -import net.minecraft.server.v1_13_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_13_R1.IBlockData; -import net.minecraft.server.v1_13_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_13_R1.ICompletionProvider; -import net.minecraft.server.v1_13_R1.ItemStack; -import net.minecraft.server.v1_13_R1.LootTable; -import net.minecraft.server.v1_13_R1.LootTableRegistry; -import net.minecraft.server.v1_13_R1.MinecraftKey; -import net.minecraft.server.v1_13_R1.MinecraftServer; -import net.minecraft.server.v1_13_R1.ParticleParam; -import net.minecraft.server.v1_13_R1.ParticleParamBlock; -import net.minecraft.server.v1_13_R1.ParticleParamItem; -import net.minecraft.server.v1_13_R1.ParticleParamRedstone; -import net.minecraft.server.v1_13_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_13_R1.Vec2F; -import net.minecraft.server.v1_13_R1.Vec3D; /** * NMS implementation for Minecraft 1.13 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index 0d0b89e752..5646985c77 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -10,6 +10,7 @@ import com.mojang.brigadier.suggestion.Suggestions; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -66,98 +67,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_14_R1.Advancement; -import net.minecraft.server.v1_14_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_14_R1.ArgumentChat; -import net.minecraft.server.v1_14_R1.ArgumentChatComponent; -import net.minecraft.server.v1_14_R1.ArgumentChatFormat; -import net.minecraft.server.v1_14_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_14_R1.ArgumentDimension; -import net.minecraft.server.v1_14_R1.ArgumentEnchantment; -import net.minecraft.server.v1_14_R1.ArgumentEntity; -import net.minecraft.server.v1_14_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_14_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_14_R1.ArgumentItemStack; -import net.minecraft.server.v1_14_R1.ArgumentMathOperation; -import net.minecraft.server.v1_14_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_14_R1.ArgumentMobEffect; -import net.minecraft.server.v1_14_R1.ArgumentNBTTag; -import net.minecraft.server.v1_14_R1.ArgumentParticle; -import net.minecraft.server.v1_14_R1.ArgumentPosition; -import net.minecraft.server.v1_14_R1.ArgumentProfile; -import net.minecraft.server.v1_14_R1.ArgumentRegistry; -import net.minecraft.server.v1_14_R1.ArgumentRotation; -import net.minecraft.server.v1_14_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_14_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_14_R1.ArgumentScoreholder; -import net.minecraft.server.v1_14_R1.ArgumentTag; -import net.minecraft.server.v1_14_R1.ArgumentTile; -import net.minecraft.server.v1_14_R1.ArgumentTime; -import net.minecraft.server.v1_14_R1.ArgumentVec2; -import net.minecraft.server.v1_14_R1.ArgumentVec2I; -import net.minecraft.server.v1_14_R1.ArgumentVec3; -import net.minecraft.server.v1_14_R1.BlockPosition; -import net.minecraft.server.v1_14_R1.BlockPosition2D; -import net.minecraft.server.v1_14_R1.CommandListenerWrapper; -import net.minecraft.server.v1_14_R1.CompletionProviders; -import net.minecraft.server.v1_14_R1.CriterionConditionValue; -import net.minecraft.server.v1_14_R1.CustomFunction; -import net.minecraft.server.v1_14_R1.CustomFunctionData; -import net.minecraft.server.v1_14_R1.DimensionManager; -import net.minecraft.server.v1_14_R1.Entity; -import net.minecraft.server.v1_14_R1.EntityPlayer; -import net.minecraft.server.v1_14_R1.EntitySelector; -import net.minecraft.server.v1_14_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_14_R1.IBlockData; -import net.minecraft.server.v1_14_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_14_R1.ICompletionProvider; -import net.minecraft.server.v1_14_R1.IRegistry; -import net.minecraft.server.v1_14_R1.ItemStack; -import net.minecraft.server.v1_14_R1.MinecraftKey; -import net.minecraft.server.v1_14_R1.MinecraftServer; -import net.minecraft.server.v1_14_R1.ParticleParam; -import net.minecraft.server.v1_14_R1.ParticleParamBlock; -import net.minecraft.server.v1_14_R1.ParticleParamItem; -import net.minecraft.server.v1_14_R1.ParticleParamRedstone; -import net.minecraft.server.v1_14_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_14_R1.Vec2F; -import net.minecraft.server.v1_14_R1.Vec3D; /** * NMS implementation for Minecraft 1.14, 1.14.1 and 1.14.2 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index 6c015f9cd2..05a40f1214 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -10,6 +10,7 @@ import com.mojang.brigadier.suggestion.Suggestions; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -66,100 +67,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_15_R1.Advancement; -import net.minecraft.server.v1_15_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_15_R1.ArgumentChat; -import net.minecraft.server.v1_15_R1.ArgumentChatComponent; -import net.minecraft.server.v1_15_R1.ArgumentChatFormat; -import net.minecraft.server.v1_15_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_15_R1.ArgumentDimension; -import net.minecraft.server.v1_15_R1.ArgumentEnchantment; -import net.minecraft.server.v1_15_R1.ArgumentEntity; -import net.minecraft.server.v1_15_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_15_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_15_R1.ArgumentItemStack; -import net.minecraft.server.v1_15_R1.ArgumentMathOperation; -import net.minecraft.server.v1_15_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_15_R1.ArgumentMobEffect; -import net.minecraft.server.v1_15_R1.ArgumentNBTTag; -import net.minecraft.server.v1_15_R1.ArgumentParticle; -import net.minecraft.server.v1_15_R1.ArgumentPosition; -import net.minecraft.server.v1_15_R1.ArgumentProfile; -import net.minecraft.server.v1_15_R1.ArgumentRegistry; -import net.minecraft.server.v1_15_R1.ArgumentRotation; -import net.minecraft.server.v1_15_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_15_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_15_R1.ArgumentScoreholder; -import net.minecraft.server.v1_15_R1.ArgumentTag; -import net.minecraft.server.v1_15_R1.ArgumentTile; -import net.minecraft.server.v1_15_R1.ArgumentTime; -import net.minecraft.server.v1_15_R1.ArgumentVec2; -import net.minecraft.server.v1_15_R1.ArgumentVec2I; -import net.minecraft.server.v1_15_R1.ArgumentVec3; -import net.minecraft.server.v1_15_R1.BlockPosition; -import net.minecraft.server.v1_15_R1.BlockPosition2D; -import net.minecraft.server.v1_15_R1.CommandListenerWrapper; -import net.minecraft.server.v1_15_R1.CompletionProviders; -import net.minecraft.server.v1_15_R1.CriterionConditionValue; -import net.minecraft.server.v1_15_R1.CustomFunction; -import net.minecraft.server.v1_15_R1.CustomFunctionData; -import net.minecraft.server.v1_15_R1.DimensionManager; -import net.minecraft.server.v1_15_R1.Entity; -import net.minecraft.server.v1_15_R1.EntityPlayer; -import net.minecraft.server.v1_15_R1.EntitySelector; -import net.minecraft.server.v1_15_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_15_R1.IBlockData; -import net.minecraft.server.v1_15_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_15_R1.ICompletionProvider; -import net.minecraft.server.v1_15_R1.IRecipe; -import net.minecraft.server.v1_15_R1.IRegistry; -import net.minecraft.server.v1_15_R1.ItemStack; -import net.minecraft.server.v1_15_R1.MinecraftKey; -import net.minecraft.server.v1_15_R1.MinecraftServer; -import net.minecraft.server.v1_15_R1.ParticleParam; -import net.minecraft.server.v1_15_R1.ParticleParamBlock; -import net.minecraft.server.v1_15_R1.ParticleParamItem; -import net.minecraft.server.v1_15_R1.ParticleParamRedstone; -import net.minecraft.server.v1_15_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_15_R1.Vec2F; -import net.minecraft.server.v1_15_R1.Vec3D; /** * NMS implementation for Minecraft 1.15, 1.15.1 and 1.15.2 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index 7b3094b91a..5d51ac661f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -11,6 +11,7 @@ import com.mojang.brigadier.suggestion.Suggestions; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -70,104 +71,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_16_R1.Advancement; -import net.minecraft.server.v1_16_R1.ArgumentBlockPredicate; -import net.minecraft.server.v1_16_R1.ArgumentChat; -import net.minecraft.server.v1_16_R1.ArgumentChatComponent; -import net.minecraft.server.v1_16_R1.ArgumentChatFormat; -import net.minecraft.server.v1_16_R1.ArgumentCriterionValue; -import net.minecraft.server.v1_16_R1.ArgumentDimension; -import net.minecraft.server.v1_16_R1.ArgumentEnchantment; -import net.minecraft.server.v1_16_R1.ArgumentEntity; -import net.minecraft.server.v1_16_R1.ArgumentEntitySummon; -import net.minecraft.server.v1_16_R1.ArgumentItemPredicate; -import net.minecraft.server.v1_16_R1.ArgumentItemStack; -import net.minecraft.server.v1_16_R1.ArgumentMathOperation; -import net.minecraft.server.v1_16_R1.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_16_R1.ArgumentMobEffect; -import net.minecraft.server.v1_16_R1.ArgumentNBTTag; -import net.minecraft.server.v1_16_R1.ArgumentParticle; -import net.minecraft.server.v1_16_R1.ArgumentPosition; -import net.minecraft.server.v1_16_R1.ArgumentProfile; -import net.minecraft.server.v1_16_R1.ArgumentRegistry; -import net.minecraft.server.v1_16_R1.ArgumentRotation; -import net.minecraft.server.v1_16_R1.ArgumentRotationAxis; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardObjective; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardSlot; -import net.minecraft.server.v1_16_R1.ArgumentScoreboardTeam; -import net.minecraft.server.v1_16_R1.ArgumentScoreholder; -import net.minecraft.server.v1_16_R1.ArgumentTag; -import net.minecraft.server.v1_16_R1.ArgumentTile; -import net.minecraft.server.v1_16_R1.ArgumentTime; -import net.minecraft.server.v1_16_R1.ArgumentUUID; -import net.minecraft.server.v1_16_R1.ArgumentVec2; -import net.minecraft.server.v1_16_R1.ArgumentVec2I; -import net.minecraft.server.v1_16_R1.ArgumentVec3; -import net.minecraft.server.v1_16_R1.BlockPosition; -import net.minecraft.server.v1_16_R1.BlockPosition2D; -import net.minecraft.server.v1_16_R1.CommandListenerWrapper; -import net.minecraft.server.v1_16_R1.CompletionProviders; -import net.minecraft.server.v1_16_R1.CriterionConditionValue; -import net.minecraft.server.v1_16_R1.CustomFunction; -import net.minecraft.server.v1_16_R1.CustomFunctionData; -import net.minecraft.server.v1_16_R1.CustomFunctionManager; -import net.minecraft.server.v1_16_R1.DataPackResources; -import net.minecraft.server.v1_16_R1.Entity; -import net.minecraft.server.v1_16_R1.EntityPlayer; -import net.minecraft.server.v1_16_R1.EntitySelector; -import net.minecraft.server.v1_16_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_16_R1.IBlockData; -import net.minecraft.server.v1_16_R1.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_16_R1.ICompletionProvider; -import net.minecraft.server.v1_16_R1.IRecipe; -import net.minecraft.server.v1_16_R1.IRegistry; -import net.minecraft.server.v1_16_R1.IReloadableResourceManager; -import net.minecraft.server.v1_16_R1.ItemStack; -import net.minecraft.server.v1_16_R1.MinecraftKey; -import net.minecraft.server.v1_16_R1.MinecraftServer; -import net.minecraft.server.v1_16_R1.ParticleParam; -import net.minecraft.server.v1_16_R1.ParticleParamBlock; -import net.minecraft.server.v1_16_R1.ParticleParamItem; -import net.minecraft.server.v1_16_R1.ParticleParamRedstone; -import net.minecraft.server.v1_16_R1.ShapeDetectorBlock; -import net.minecraft.server.v1_16_R1.SystemUtils; -import net.minecraft.server.v1_16_R1.Unit; -import net.minecraft.server.v1_16_R1.Vec2F; -import net.minecraft.server.v1_16_R1.Vec3D; /** * NMS implementation for Minecraft 1.16.1 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java index 8c45f12a3e..53b01aa7e9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R2.java @@ -11,6 +11,7 @@ import com.mojang.brigadier.suggestion.Suggestions; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -72,105 +73,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_16_R2.Advancement; -import net.minecraft.server.v1_16_R2.ArgumentAngle; -import net.minecraft.server.v1_16_R2.ArgumentBlockPredicate; -import net.minecraft.server.v1_16_R2.ArgumentChat; -import net.minecraft.server.v1_16_R2.ArgumentChatComponent; -import net.minecraft.server.v1_16_R2.ArgumentChatFormat; -import net.minecraft.server.v1_16_R2.ArgumentCriterionValue; -import net.minecraft.server.v1_16_R2.ArgumentDimension; -import net.minecraft.server.v1_16_R2.ArgumentEnchantment; -import net.minecraft.server.v1_16_R2.ArgumentEntity; -import net.minecraft.server.v1_16_R2.ArgumentEntitySummon; -import net.minecraft.server.v1_16_R2.ArgumentItemPredicate; -import net.minecraft.server.v1_16_R2.ArgumentItemStack; -import net.minecraft.server.v1_16_R2.ArgumentMathOperation; -import net.minecraft.server.v1_16_R2.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_16_R2.ArgumentMobEffect; -import net.minecraft.server.v1_16_R2.ArgumentNBTTag; -import net.minecraft.server.v1_16_R2.ArgumentParticle; -import net.minecraft.server.v1_16_R2.ArgumentPosition; -import net.minecraft.server.v1_16_R2.ArgumentProfile; -import net.minecraft.server.v1_16_R2.ArgumentRegistry; -import net.minecraft.server.v1_16_R2.ArgumentRotation; -import net.minecraft.server.v1_16_R2.ArgumentRotationAxis; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardObjective; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardSlot; -import net.minecraft.server.v1_16_R2.ArgumentScoreboardTeam; -import net.minecraft.server.v1_16_R2.ArgumentScoreholder; -import net.minecraft.server.v1_16_R2.ArgumentTag; -import net.minecraft.server.v1_16_R2.ArgumentTile; -import net.minecraft.server.v1_16_R2.ArgumentTime; -import net.minecraft.server.v1_16_R2.ArgumentUUID; -import net.minecraft.server.v1_16_R2.ArgumentVec2; -import net.minecraft.server.v1_16_R2.ArgumentVec2I; -import net.minecraft.server.v1_16_R2.ArgumentVec3; -import net.minecraft.server.v1_16_R2.BlockPosition; -import net.minecraft.server.v1_16_R2.BlockPosition2D; -import net.minecraft.server.v1_16_R2.CommandListenerWrapper; -import net.minecraft.server.v1_16_R2.CompletionProviders; -import net.minecraft.server.v1_16_R2.CriterionConditionValue; -import net.minecraft.server.v1_16_R2.CustomFunction; -import net.minecraft.server.v1_16_R2.CustomFunctionData; -import net.minecraft.server.v1_16_R2.CustomFunctionManager; -import net.minecraft.server.v1_16_R2.DataPackResources; -import net.minecraft.server.v1_16_R2.Entity; -import net.minecraft.server.v1_16_R2.EntityPlayer; -import net.minecraft.server.v1_16_R2.EntitySelector; -import net.minecraft.server.v1_16_R2.EntityTypes; -import net.minecraft.server.v1_16_R2.EnumDirection.EnumAxis; -import net.minecraft.server.v1_16_R2.IBlockData; -import net.minecraft.server.v1_16_R2.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_16_R2.ICompletionProvider; -import net.minecraft.server.v1_16_R2.IRecipe; -import net.minecraft.server.v1_16_R2.IRegistry; -import net.minecraft.server.v1_16_R2.IReloadableResourceManager; -import net.minecraft.server.v1_16_R2.ItemStack; -import net.minecraft.server.v1_16_R2.MinecraftKey; -import net.minecraft.server.v1_16_R2.MinecraftServer; -import net.minecraft.server.v1_16_R2.ParticleParam; -import net.minecraft.server.v1_16_R2.ParticleParamBlock; -import net.minecraft.server.v1_16_R2.ParticleParamItem; -import net.minecraft.server.v1_16_R2.ParticleParamRedstone; -import net.minecraft.server.v1_16_R2.ShapeDetectorBlock; -import net.minecraft.server.v1_16_R2.SystemUtils; -import net.minecraft.server.v1_16_R2.Unit; -import net.minecraft.server.v1_16_R2.Vec2F; -import net.minecraft.server.v1_16_R2.Vec3D; /** * NMS implementation for Minecraft 1.16.2 and 1.16.3 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java index dcecf7494d..c0b8c62e48 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.4/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_4_R3.java @@ -31,6 +31,7 @@ import com.mojang.brigadier.suggestion.Suggestions; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -92,105 +93,6 @@ import java.util.function.Function; import java.util.function.Predicate; import java.util.function.ToIntFunction; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; - -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; -import dev.jorel.commandapi.wrappers.FloatRange; -import dev.jorel.commandapi.wrappers.FunctionWrapper; -import dev.jorel.commandapi.wrappers.IntegerRange; -import dev.jorel.commandapi.wrappers.Location2D; -import dev.jorel.commandapi.wrappers.MathOperation; -import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; -import dev.jorel.commandapi.wrappers.ParticleData; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.ScoreboardSlot; -import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; -import io.papermc.paper.text.PaperComponents; -import net.kyori.adventure.text.Component; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_16_R3.Advancement; -import net.minecraft.server.v1_16_R3.ArgumentAngle; -import net.minecraft.server.v1_16_R3.ArgumentBlockPredicate; -import net.minecraft.server.v1_16_R3.ArgumentChat; -import net.minecraft.server.v1_16_R3.ArgumentChatComponent; -import net.minecraft.server.v1_16_R3.ArgumentChatFormat; -import net.minecraft.server.v1_16_R3.ArgumentCriterionValue; -import net.minecraft.server.v1_16_R3.ArgumentDimension; -import net.minecraft.server.v1_16_R3.ArgumentEnchantment; -import net.minecraft.server.v1_16_R3.ArgumentEntity; -import net.minecraft.server.v1_16_R3.ArgumentEntitySummon; -import net.minecraft.server.v1_16_R3.ArgumentItemPredicate; -import net.minecraft.server.v1_16_R3.ArgumentItemStack; -import net.minecraft.server.v1_16_R3.ArgumentMathOperation; -import net.minecraft.server.v1_16_R3.ArgumentMinecraftKeyRegistered; -import net.minecraft.server.v1_16_R3.ArgumentMobEffect; -import net.minecraft.server.v1_16_R3.ArgumentNBTTag; -import net.minecraft.server.v1_16_R3.ArgumentParticle; -import net.minecraft.server.v1_16_R3.ArgumentPosition; -import net.minecraft.server.v1_16_R3.ArgumentProfile; -import net.minecraft.server.v1_16_R3.ArgumentRegistry; -import net.minecraft.server.v1_16_R3.ArgumentRotation; -import net.minecraft.server.v1_16_R3.ArgumentRotationAxis; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardCriteria; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardObjective; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardSlot; -import net.minecraft.server.v1_16_R3.ArgumentScoreboardTeam; -import net.minecraft.server.v1_16_R3.ArgumentScoreholder; -import net.minecraft.server.v1_16_R3.ArgumentTag; -import net.minecraft.server.v1_16_R3.ArgumentTile; -import net.minecraft.server.v1_16_R3.ArgumentTime; -import net.minecraft.server.v1_16_R3.ArgumentUUID; -import net.minecraft.server.v1_16_R3.ArgumentVec2; -import net.minecraft.server.v1_16_R3.ArgumentVec2I; -import net.minecraft.server.v1_16_R3.ArgumentVec3; -import net.minecraft.server.v1_16_R3.BlockPosition; -import net.minecraft.server.v1_16_R3.BlockPosition2D; -import net.minecraft.server.v1_16_R3.CommandListenerWrapper; -import net.minecraft.server.v1_16_R3.CompletionProviders; -import net.minecraft.server.v1_16_R3.CriterionConditionValue; -import net.minecraft.server.v1_16_R3.CustomFunction; -import net.minecraft.server.v1_16_R3.CustomFunctionData; -import net.minecraft.server.v1_16_R3.CustomFunctionManager; -import net.minecraft.server.v1_16_R3.DataPackResources; -import net.minecraft.server.v1_16_R3.Entity; -import net.minecraft.server.v1_16_R3.EntityPlayer; -import net.minecraft.server.v1_16_R3.EntitySelector; -import net.minecraft.server.v1_16_R3.EntityTypes; -import net.minecraft.server.v1_16_R3.EnumDirection.EnumAxis; -import net.minecraft.server.v1_16_R3.IBlockData; -import net.minecraft.server.v1_16_R3.IChatBaseComponent.ChatSerializer; -import net.minecraft.server.v1_16_R3.ICompletionProvider; -import net.minecraft.server.v1_16_R3.IRecipe; -import net.minecraft.server.v1_16_R3.IRegistry; -import net.minecraft.server.v1_16_R3.IReloadableResourceManager; -import net.minecraft.server.v1_16_R3.ItemStack; -import net.minecraft.server.v1_16_R3.MinecraftKey; -import net.minecraft.server.v1_16_R3.MinecraftServer; -import net.minecraft.server.v1_16_R3.ParticleParam; -import net.minecraft.server.v1_16_R3.ParticleParamBlock; -import net.minecraft.server.v1_16_R3.ParticleParamItem; -import net.minecraft.server.v1_16_R3.ParticleParamRedstone; -import net.minecraft.server.v1_16_R3.ShapeDetectorBlock; -import net.minecraft.server.v1_16_R3.SoundEffect; -import net.minecraft.server.v1_16_R3.SystemUtils; -import net.minecraft.server.v1_16_R3.Vec2F; -import net.minecraft.server.v1_16_R3.Vec3D; /** * NMS implementation for Minecraft 1.16.4 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java index b5c996a98c..7eb4023fac 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.18.2/src/main/java/dev/jorel/commandapi/nms/NMS_1_18_R2.java @@ -20,59 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.concurrent.CompletableFuture; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Particle.DustTransition; -import org.bukkit.Vibration; -import org.bukkit.Vibration.Destination; -import org.bukkit.Vibration.Destination.BlockDestination; -import org.bukkit.Vibration.Destination.EntityDestination; -import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_18_R2.CraftLootTable; -import org.bukkit.craftbukkit.v1_18_R2.CraftParticle; -import org.bukkit.craftbukkit.v1_18_R2.CraftServer; -import org.bukkit.craftbukkit.v1_18_R2.CraftSound; -import org.bukkit.craftbukkit.v1_18_R2.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_18_R2.command.VanillaCommandWrapper; -import org.bukkit.craftbukkit.v1_18_R2.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_18_R2.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_18_R2.help.CustomHelpTopic; -import org.bukkit.craftbukkit.v1_18_R2.help.SimpleHelpMap; -import org.bukkit.craftbukkit.v1_18_R2.inventory.CraftItemStack; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.inventory.Recipe; -import org.bukkit.potion.PotionEffectType; - import com.google.common.collect.ImmutableList; import com.google.common.io.Files; import com.google.gson.GsonBuilder; @@ -85,10 +32,10 @@ import com.mojang.logging.LogUtils; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import dev.jorel.commandapi.arguments.ArgumentSubType; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.NMSMeta; import dev.jorel.commandapi.preprocessor.RequireField; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java index a0edc164ba..d742911b39 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19-common/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_Common.java @@ -20,60 +20,6 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.UUID; -import java.util.concurrent.CompletableFuture; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Bukkit; -import org.bukkit.Color; -import org.bukkit.Keyed; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.Particle; -import org.bukkit.Particle.DustOptions; -import org.bukkit.Particle.DustTransition; -import org.bukkit.Vibration; -import org.bukkit.Vibration.Destination; -import org.bukkit.Vibration.Destination.BlockDestination; -import org.bukkit.Vibration.Destination.EntityDestination; -import org.bukkit.World; -import org.bukkit.block.Biome; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_19_R1.CraftLootTable; -import org.bukkit.craftbukkit.v1_19_R1.CraftParticle; -import org.bukkit.craftbukkit.v1_19_R1.CraftServer; -import org.bukkit.craftbukkit.v1_19_R1.CraftSound; -import org.bukkit.craftbukkit.v1_19_R1.block.data.CraftBlockData; -import org.bukkit.craftbukkit.v1_19_R1.command.VanillaCommandWrapper; -import org.bukkit.craftbukkit.v1_19_R1.entity.CraftEntity; -import org.bukkit.craftbukkit.v1_19_R1.entity.CraftPlayer; -import org.bukkit.craftbukkit.v1_19_R1.help.CustomHelpTopic; -import org.bukkit.craftbukkit.v1_19_R1.help.SimpleHelpMap; -import org.bukkit.craftbukkit.v1_19_R1.inventory.CraftItemStack; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.inventory.Recipe; -import org.bukkit.plugin.Plugin; -import org.bukkit.potion.PotionEffectType; - import com.google.common.collect.ImmutableList; import com.google.common.io.Files; import com.google.gson.GsonBuilder; @@ -87,10 +33,10 @@ import com.mojang.logging.LogUtils; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import dev.jorel.commandapi.arguments.ArgumentSubType; import dev.jorel.commandapi.preprocessor.Differs; import dev.jorel.commandapi.preprocessor.RequireField; import dev.jorel.commandapi.wrappers.*; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/pom.xml index 08550721b0..ec9da5b18a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/pom.xml @@ -19,13 +19,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - commandapi-nms + commandapi-bukkit-nms dev.jorel 9.0.0-SNAPSHOT 4.0.0 - commandapi-1.19.3 + commandapi-bukkit-1.19.3 1.19.3-R0.1-SNAPSHOT diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_3_R2.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_3_R2.java index 53da5f2690..ee08656962 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_3_R2.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.19.3/src/main/java/dev/jorel/commandapi/nms/NMS_1_19_3_R2.java @@ -37,6 +37,9 @@ import java.util.function.Predicate; import java.util.function.ToIntFunction; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; import org.bukkit.Bukkit; import org.bukkit.Color; import org.bukkit.Keyed; @@ -379,8 +382,8 @@ public final com.mojang.brigadier.CommandDispatcher getBriga } @Override - public final CommandSourceStack getCLWFromCommandSender(CommandSender sender) { - return VanillaCommandWrapper.getListener(sender); + public CommandSourceStack getBrigadierSourceFromCommandSender(AbstractCommandSender sender) { + return VanillaCommandWrapper.getListener(sender.getSource()); } @Override @@ -393,7 +396,7 @@ public final Object getEntitySelector(CommandContext cmdCtx, // to be used by anyone that registers a command via the CommandAPI. EntitySelector argument = cmdCtx.getArgument(str, EntitySelector.class); try { - CommandAPIHandler.getInstance().getField(EntitySelector.class, "p").set(argument, false); + CommandAPIHandler.getField(EntitySelector.class, "p").set(argument, false); } catch (IllegalArgumentException | IllegalAccessException e1) { e1.printStackTrace(); } @@ -594,7 +597,7 @@ public PotionEffectType getPotionEffect(CommandContext cmdCt } @Override - public CommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { + public BukkitCommandSender getSenderForCommand(CommandContext cmdCtx, boolean isNative) { CommandSourceStack css = cmdCtx.getSource(); CommandSender sender = css.getBukkitSender(); @@ -606,9 +609,9 @@ public CommandSender getSenderForCommand(CommandContext cmdC Entity proxyEntity = css.getEntity(); CommandSender proxy = proxyEntity == null ? null : proxyEntity.getBukkitEntity(); if (isNative || (proxy != null && !sender.equals(proxy))) { - return new NativeProxyCommandSender(sender, proxy, location, world); + return new BukkitNativeProxyCommandSender(new NativeProxyCommandSender(sender, proxy, location, world)); } else { - return sender; + return wrapCommandSender(sender); } } @@ -674,7 +677,7 @@ public final void reloadDataPacks() { // Update the ServerFunctionLibrary's command dispatcher with the new one try { - CommandAPIHandler.getInstance().getField(ServerFunctionLibrary.class, "g") + CommandAPIHandler.getField(ServerFunctionLibrary.class, "g") .set(serverResources.managers().getFunctionLibrary(), getBrigadierDispatcher()); } catch (ReflectiveOperationException e) { e.printStackTrace(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java index d2fb5e3094..68ae27d26f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java @@ -20,57 +20,15 @@ *******************************************************************************/ package dev.jorel.commandapi.nms; -import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.NAME_CHANGED; -import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.REQUIRES_CRAFTBUKKIT; -import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.REQUIRES_CSS; -import static dev.jorel.commandapi.preprocessor.Unimplemented.REASON.VERSION_SPECIFIC_IMPLEMENTATION; - -import java.io.File; -import java.io.IOException; -import java.util.Collection; -import java.util.EnumSet; -import java.util.HashSet; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; - -import org.bukkit.Axis; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.Location; -import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; -import org.bukkit.Sound; -import org.bukkit.World; -import org.bukkit.World.Environment; -import org.bukkit.block.Block; -import org.bukkit.block.data.BlockData; -import org.bukkit.command.Command; -import org.bukkit.command.CommandSender; -import org.bukkit.command.SimpleCommandMap; -import org.bukkit.enchantments.Enchantment; -import org.bukkit.entity.EntityType; -import org.bukkit.entity.Player; -import org.bukkit.help.HelpTopic; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.Recipe; -import org.bukkit.loot.LootTable; -import org.bukkit.potion.PotionEffectType; - import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.arguments.ArgumentType; import com.mojang.brigadier.context.CommandContext; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.brigadier.suggestion.SuggestionProvider; import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.CommandAPIBukkit; +import dev.jorel.commandapi.CommandAPIHandler; import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.EntitySelector; import dev.jorel.commandapi.arguments.SuggestionProviders; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -98,7 +56,6 @@ import net.minecraft.world.phys.Vec2; import org.bukkit.*; import org.bukkit.World.Environment; -import org.bukkit.block.Biome; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; import org.bukkit.command.Command; diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java index 2f487ca576..d77bc059b3 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/main/java/dev/jorel/commandapi/CommandAPIVersionHandler.java @@ -1,6 +1,6 @@ package dev.jorel.commandapi; -import dev.jorel.commandapi.nms.NMS_1_19_1_R1; +import dev.jorel.commandapi.nms.NMS_1_19_3_R2; import dev.jorel.commandapi.test.MockNMS; /** @@ -10,6 +10,6 @@ */ public interface CommandAPIVersionHandler { static CommandAPIPlatform getPlatform() { - return new MockNMS(new NMS_1_19_1_R1()); + return new MockNMS(new NMS_1_19_3_R2()); } } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index 5a0f440664..b4a2d109a7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -35,6 +35,9 @@ import de.tr7zw.changeme.nbtapi.NBTContainer; import de.tr7zw.changeme.nbtapi.utils.MinecraftVersion; +/** + * Main CommandAPI plugin entrypoint + */ public class CommandAPIMain extends JavaPlugin { @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt index e65cd55cdb..8e02d521d9 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt +++ b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt @@ -65,15 +65,30 @@ inline fun CommandTree.adventureChatComponentArgument(nodeName: String, block: A inline fun CommandTree.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdventureChatArgument(nodeName).apply(block)) // Entity & Player arguments +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("entitySelectorArgumentOneEntity(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) inline fun CommandTree.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName).apply(block)) + +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("entitySelectorArgumentManyEntities(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) inline fun CommandTree.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) + +inline fun CommandTree.entitySelectorArgumentOneEntity(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument.OneEntity(nodeName).apply(block)) +inline fun CommandTree.entitySelectorArgumentManyEntities(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument.ManyEntities(nodeName).apply(block)) +inline fun CommandTree.entitySelectorArgumentOnePlayer(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument.OnePlayer(nodeName).apply(block)) +inline fun CommandTree.entitySelectorArgumentManyPlayers(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument.ManyPlayers(nodeName).apply(block)) inline fun CommandTree.playerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(PlayerArgument(nodeName).apply(block)) inline fun CommandTree.offlinePlayerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(OfflinePlayerArgument(nodeName).apply(block)) inline fun CommandTree.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntityTypeArgument(nodeName).apply(block)) // Scoreboard arguments +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("scoreHolderArgument(nodeName, single)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) inline fun CommandTree.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName).apply(block)) -inline fun CommandTree.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) + +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("scoreHolderArgument(nodeName, single)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) +inline fun CommandTree.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) + +inline fun CommandTree.scoreHolderArgument(nodeName: String, single: Boolean, block: Argument<*>.() -> Unit = {}): CommandTree = + if (single) then(ScoreHolderArgument.Single(nodeName).apply(block)) else then(ScoreHolderArgument.Multiple(nodeName).apply(block)) + inline fun CommandTree.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreboardSlotArgument(nodeName).apply(block)) inline fun CommandTree.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ObjectiveArgument(nodeName).apply(block)) inline fun CommandTree.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ObjectiveCriteriaArgument(nodeName).apply(block)) @@ -82,11 +97,20 @@ inline fun CommandTree.teamArgument(nodeName: String, block: Argument<*>.() -> U // Miscellaneous arguments inline fun CommandTree.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AngleArgument(nodeName).apply(block)) inline fun CommandTree.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdvancementArgument(nodeName).apply(block)) + +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("biomeArgument(nodeName, useNamespacedKey)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) inline fun CommandTree.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BiomeArgument(nodeName).apply(block)) + +inline fun CommandTree.biomeArgument(nodeName: String, useNamespacedKey: Boolean, block: Argument<*>.() -> Unit = {}): CommandTree = + if (useNamespacedKey) then(BiomeArgument.NamespacedKey(nodeName).apply(block)) else then(BiomeArgument(nodeName).apply(block)) + inline fun CommandTree.blockStateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BlockStateArgument(nodeName).apply(block)) inline fun CommandTree.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(CommandArgument(nodeName).apply(block)) inline fun CommandTree.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EnchantmentArgument(nodeName).apply(block)) + +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("worldArgument(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) inline fun CommandTree.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EnvironmentArgument(nodeName).apply(block)) + inline fun CommandTree.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ItemStackArgument(nodeName).apply(block)) inline fun CommandTree.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LootTableArgument(nodeName).apply(block)) inline fun CommandTree.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(MathOperationArgument(nodeName).apply(block)) @@ -94,8 +118,13 @@ inline fun CommandTree.namespacedKeyArgument(nodeName: String, block: Argument<* inline fun CommandTree.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ParticleArgument(nodeName).apply(block)) inline fun CommandTree.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(PotionEffectArgument(nodeName).apply(block)) inline fun CommandTree.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(RecipeArgument(nodeName).apply(block)) -inline fun CommandTree.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName).apply(block)) -inline fun CommandTree.soundArgument(nodeName: String, soundType: SoundType, block: Argument<*>.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName, soundType).apply(block)) + +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("soundArgument(nodeName, useNamespacedKey)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) +inline fun CommandTree.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName).apply(block)) + +inline fun CommandTree.soundArgument(nodeName: String, useNamespacedKey: Boolean, block: Argument<*>.() -> Unit = {}): CommandTree = + if (useNamespacedKey) then(SoundArgument.NamespacedKey(nodeName).apply(block)) else then(SoundArgument(nodeName).apply(block)) + inline fun CommandTree.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(TimeArgument(nodeName).apply(block)) inline fun CommandTree.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(UUIDArgument(nodeName).apply(block)) inline fun CommandTree.worldArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(WorldArgument(nodeName).apply(block)) @@ -161,15 +190,30 @@ inline fun Argument<*>.adventureChatComponentArgument(nodeName: String, block: A inline fun Argument<*>.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdventureChatArgument(nodeName).apply(block)) // Entity & Player arguments +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("entitySelectorArgumentOneEntity(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) inline fun Argument<*>.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument(nodeName).apply(block)) + +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("entitySelectorArgumentManyEntities(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) inline fun Argument<*>.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) + +inline fun Argument<*>.entitySelectorArgumentOneEntity(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument.OneEntity(nodeName).apply(block)) +inline fun Argument<*>.entitySelectorArgumentManyEntities(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument.ManyEntities(nodeName).apply(block)) +inline fun Argument<*>.entitySelectorArgumentOnePlayer(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument.OnePlayer(nodeName).apply(block)) +inline fun Argument<*>.entitySelectorArgumentManyPlayers(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument.ManyPlayers(nodeName).apply(block)) inline fun Argument<*>.playerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(PlayerArgument(nodeName).apply(block)) inline fun Argument<*>.offlinePlayerArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(OfflinePlayerArgument(nodeName).apply(block)) inline fun Argument<*>.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntityTypeArgument(nodeName).apply(block)) // Scoreboard arguments +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("scoreHolderArgument(nodeName, single)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) inline fun Argument<*>.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument(nodeName).apply(block)) -inline fun Argument<*>.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) + +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("scoreHolderArgument(nodeName, single)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) +inline fun Argument<*>.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) + +inline fun Argument<*>.scoreHolderArgument(nodeName: String, single: Boolean, block: Argument<*>.() -> Unit = {}): Argument<*> = + if (single) then(ScoreHolderArgument.Single(nodeName).apply(block)) else then(ScoreHolderArgument.Multiple(nodeName).apply(block)) + inline fun Argument<*>.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreboardSlotArgument(nodeName).apply(block)) inline fun Argument<*>.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ObjectiveArgument(nodeName).apply(block)) inline fun Argument<*>.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ObjectiveCriteriaArgument(nodeName).apply(block)) @@ -178,11 +222,20 @@ inline fun Argument<*>.teamArgument(nodeName: String, block: Argument<*>.() -> U // Miscellaneous arguments inline fun Argument<*>.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AngleArgument(nodeName).apply(block)) inline fun Argument<*>.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdvancementArgument(nodeName).apply(block)) + +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("biomeArgument(nodeName, useNamespacedKey)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) inline fun Argument<*>.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BiomeArgument(nodeName).apply(block)) + +inline fun Argument<*>.biomeArgument(nodeName: String, useNamespacedKey: Boolean, block: Argument<*>.() -> Unit = {}): Argument<*> = + if (useNamespacedKey) then(BiomeArgument.NamespacedKey(nodeName).apply(block)) else then(BiomeArgument(nodeName).apply(block)) + inline fun Argument<*>.blockStateArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BlockStateArgument(nodeName).apply(block)) inline fun Argument<*>.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(CommandArgument(nodeName).apply(block)) inline fun Argument<*>.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EnchantmentArgument(nodeName).apply(block)) + +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("worldArgument(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) inline fun Argument<*>.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EnvironmentArgument(nodeName).apply(block)) + inline fun Argument<*>.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ItemStackArgument(nodeName).apply(block)) inline fun Argument<*>.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LootTableArgument(nodeName).apply(block)) inline fun Argument<*>.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(MathOperationArgument(nodeName).apply(block)) @@ -190,8 +243,13 @@ inline fun Argument<*>.namespacedKeyArgument(nodeName: String, block: Argument<* inline fun Argument<*>.particleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ParticleArgument(nodeName).apply(block)) inline fun Argument<*>.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(PotionEffectArgument(nodeName).apply(block)) inline fun Argument<*>.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(RecipeArgument(nodeName).apply(block)) -inline fun Argument<*>.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(SoundArgument(nodeName).apply(block)) -inline fun Argument<*>.soundArgument(nodeName: String, soundType: SoundType, block: Argument<*>.() -> Unit = {}): Argument<*> = then(SoundArgument(nodeName, soundType).apply(block)) + +@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("soundArgument(nodeName, useNamespacedKey)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) +inline fun Argument<*>.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(SoundArgument(nodeName).apply(block)) + +inline fun Argument<*>.soundArgument(nodeName: String, useNamespacedKey: Boolean, block: Argument<*>.() -> Unit = {}): Argument<*> = + if (useNamespacedKey) then(SoundArgument.NamespacedKey(nodeName).apply(block)) else then(SoundArgument(nodeName).apply(block)) + inline fun Argument<*>.timeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(TimeArgument(nodeName).apply(block)) inline fun Argument<*>.uuidArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(UUIDArgument(nodeName).apply(block)) inline fun Argument<*>.worldArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(WorldArgument(nodeName).apply(block)) diff --git a/commandapi-platforms/commandapi-bukkit/pom.xml b/commandapi-platforms/commandapi-bukkit/pom.xml index 03db850a03..b2182f3d7a 100644 --- a/commandapi-platforms/commandapi-bukkit/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/pom.xml @@ -25,7 +25,7 @@ commandapi-bukkit-plugin - commandapi-bukkit-plugin-test + commandapi-bukkit-shade commandapi-kotlin-bukkit diff --git a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index b0cf39bde8..21e6cb99db 100644 --- a/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-sponge/commandapi-sponge-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -11,6 +11,9 @@ import com.google.inject.Inject; // TODO: Add plugin meta data, see: https://docs.spongepowered.org/stable/en/plugin/plugin-meta.html +/** + * Main CommandAPI plugin entrypoint + */ @Plugin("CommandAPI") public class CommandAPIMain implements CommandAPISpongePluginWrapper { diff --git a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java index bb2662c9a5..570b2e3aa6 100644 --- a/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java +++ b/commandapi-platforms/commandapi-velocity/commandapi-velocity-plugin/src/main/java/dev/jorel/commandapi/CommandAPIMain.java @@ -12,6 +12,9 @@ import com.velocitypowered.api.plugin.annotation.DataDirectory; import com.velocitypowered.api.proxy.ProxyServer; +/** + * Main CommandAPI plugin entrypoint + */ @Plugin( id = "commandapi-velocity", name = "CommandAPI", From 4dd29b46dc3bd9a494bca43911705301eb9d624d Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Mon, 12 Dec 2022 23:28:03 +0000 Subject: [PATCH 155/638] .gitignore .DS_Store --- .DS_Store | Bin 8196 -> 0 bytes .gitignore | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index da75030401c861212e25a4137e6341d15e2f1377..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHM&ubGw6n@ig+h9rzwwR(G_M~1Eig@r)y0-DI^dg87o0Rw?+YL#CUW7$F^j^=U zh<}I&!Gj2T@aRnuJozX1y_rce)6KS~hamLLGV><$-kbNmZ-4PNM5NYUG?s~$h^TTAeec6oIZM?Ec-$%cuOF^Qq+I)8=e&jyuS!j#(E6GW7DJAFs#X!Oi#i{^$O=9TSI} z|H*gp_)veCj{w&;XY5_W3%4F{rURXuL*?>(@mv4?vc4|5QF=G-Vp+$X>&FGp9jbdg zuUxu{=!Yy^47;U=@2>3Vdn98uybJQJTs*WMAsF89TeO3FI>t57;`8qzqKm&q*|?Z) zR0fzbd%64^W#{3dyNqiV&lr9NH8Yq>tM?A;T|CduJ?eAh?crj{v+;10zAz4H!oVaM zm^Q(dxcpYwJvSuC+t-8ag+&OO4bn7<4%fsmpQ5 i!5@a0hcIQI$ja16te{Q&Lx59G4L0HfM>P< diff --git a/.gitignore b/.gitignore index 82d30faf0c..b566ae34dd 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,5 @@ bin .settings target logs/latest.log -.vscode \ No newline at end of file +.vscode +.DS_Store \ No newline at end of file From e65aa9e618b6bdcfe9acfb4195e0b372b48b9a39 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Tue, 13 Dec 2022 12:02:08 +0000 Subject: [PATCH 156/638] Remove deprecated 8.7.0 methods and redundant exceptions - Removed deprecated constructors from BiomeArgument, EntitySelectorArgument and ScoreHolderArgument. - Removed the corresponding 'Type' classes for these (e.g. EntitySelector and ScoreHolder) - Removed argument-specific exceptions (e.g. UUIDArgumentException) in favour of the UnimplementedArgumentException - Implemented nested annotation classes for the annotation framework - Let my IDE expand all of the * imports in classes I touched (welp) --- .../commandapi/annotations/Annotations.java | 97 ++++----- .../arguments/AEntitySelectorArgument.java | 45 +++-- .../arguments/AEnvironmentArgument.java | 37 ---- .../arguments/AScoreHolderArgument.java | 24 ++- .../src/test/java/Test2Command.java | 7 +- .../commandapi/AbstractArgumentTree.java | 1 + .../java/dev/jorel/commandapi/CommandAPI.java | 1 + .../java/dev/jorel/commandapi/Execution.java | 1 + .../exceptions/AngleArgumentException.java | 16 -- .../exceptions/BiomeArgumentException.java | 16 -- .../EnvironmentArgumentException.java | 16 -- .../exceptions/GreedyArgumentException.java | 1 + .../exceptions/TimeArgumentException.java | 16 -- .../exceptions/UUIDArgumentException.java | 16 -- .../UnimplementedArgumentException.java | 1 + .../commandapi/examples/kotlin/Examples.kt | 3 +- .../jorel/commandapi/CommandAPIBukkit.java | 1 + .../commandapi/arguments/EntitySelector.java | 43 ---- .../arguments/EntitySelectorArgument.java | 98 +-------- .../arguments/ScoreHolderArgument.java | 91 ++------- .../commandapi/arguments/SoundArgument.java | 13 +- .../dev/jorel/commandapi/nms/NMS_1_13_1.java | 184 ++++++++++++----- .../dev/jorel/commandapi/nms/NMS_1_13.java | 180 ++++++++++++----- .../dev/jorel/commandapi/nms/NMS_1_14.java | 179 ++++++++++++----- .../dev/jorel/commandapi/nms/NMS_1_15.java | 181 ++++++++++++----- .../dev/jorel/commandapi/nms/NMS_1_16_R1.java | 186 +++++++++++++----- .../jorel/commandapi/AdvancedConverter.java | 83 ++++++-- .../kotlindsl/CommandAPICommandDSL.kt | 26 +-- .../commandapi/kotlindsl/CommandTreeDSL.kt | 53 +---- 29 files changed, 876 insertions(+), 740 deletions(-) delete mode 100644 commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AEnvironmentArgument.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java delete mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java delete mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelector.java diff --git a/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/Annotations.java b/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/Annotations.java index e2d97a9ab1..becde67d04 100644 --- a/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/Annotations.java +++ b/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/Annotations.java @@ -66,7 +66,6 @@ import dev.jorel.commandapi.annotations.arguments.AEnchantmentArgument; import dev.jorel.commandapi.annotations.arguments.AEntitySelectorArgument; import dev.jorel.commandapi.annotations.arguments.AEntityTypeArgument; -import dev.jorel.commandapi.annotations.arguments.AEnvironmentArgument; import dev.jorel.commandapi.annotations.arguments.AFloatArgument; import dev.jorel.commandapi.annotations.arguments.AFloatRangeArgument; import dev.jorel.commandapi.annotations.arguments.AFunctionArgument; @@ -101,10 +100,8 @@ import dev.jorel.commandapi.annotations.arguments.ATimeArgument; import dev.jorel.commandapi.annotations.arguments.AUUIDArgument; import dev.jorel.commandapi.annotations.arguments.Primitive; -import dev.jorel.commandapi.arguments.EntitySelector; import dev.jorel.commandapi.arguments.LocationType; import dev.jorel.commandapi.arguments.MultiLiteralArgument; -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; /** * The main annotation processor for annotation-based arguments @@ -113,19 +110,21 @@ public class Annotations extends AbstractProcessor { private final Class[] ARGUMENT_ANNOTATIONS = new Class[] { AAdvancementArgument.class, - AAdventureChatArgument.class, AAdventureChatComponentArgument.class, AAngleArgument.class, - AAxisArgument.class, ABiomeArgument.class, ABlockPredicateArgument.class, ABlockStateArgument.class, - ABooleanArgument.class, AChatArgument.class, AChatColorArgument.class, AChatComponentArgument.class, - ADoubleArgument.class, AEnchantmentArgument.class, AEntitySelectorArgument.class, AEntityTypeArgument.class, - AEnvironmentArgument.class, AFloatArgument.class, AFloatRangeArgument.class, AFunctionArgument.class, - AGreedyStringArgument.class, AIntegerArgument.class, AIntegerRangeArgument.class, AItemStackArgument.class, - AItemStackPredicateArgument.class, ALiteralArgument.class, ALocation2DArgument.class, - ALocationArgument.class, ALongArgument.class, ALootTableArgument.class, AMathOperationArgument.class, - AMultiLiteralArgument.class, ANamespacedKeyArgument.class, ANBTCompoundArgument.class, AObjectiveArgument.class, - AObjectiveCriteriaArgument.class, AOfflinePlayerArgument.class, AParticleArgument.class, APlayerArgument.class, - APotionEffectArgument.class, ARecipeArgument.class, ARotationArgument.class, AScoreboardSlotArgument.class, - AScoreHolderArgument.class, ASoundArgument.class, AStringArgument.class, ATeamArgument.class, - ATextArgument.class, ATimeArgument.class, AUUIDArgument.class }; + AAdventureChatArgument.class, AAdventureChatComponentArgument.class, AAngleArgument.class, + AAxisArgument.class, ABiomeArgument.class, ABlockPredicateArgument.class, ABlockStateArgument.class, + ABooleanArgument.class, AChatArgument.class, AChatColorArgument.class, AChatComponentArgument.class, + ADoubleArgument.class, AEnchantmentArgument.class, AEntitySelectorArgument.ManyEntities.class, + AEntitySelectorArgument.ManyPlayers.class, AEntitySelectorArgument.OneEntity.class, + AEntitySelectorArgument.OnePlayer.class, AEntityTypeArgument.class, + AFloatArgument.class, AFloatRangeArgument.class, AFunctionArgument.class, + AGreedyStringArgument.class, AIntegerArgument.class, AIntegerRangeArgument.class, AItemStackArgument.class, + AItemStackPredicateArgument.class, ALiteralArgument.class, ALocation2DArgument.class, + ALocationArgument.class, ALongArgument.class, ALootTableArgument.class, AMathOperationArgument.class, + AMultiLiteralArgument.class, ANamespacedKeyArgument.class, ANBTCompoundArgument.class, AObjectiveArgument.class, + AObjectiveCriteriaArgument.class, AOfflinePlayerArgument.class, AParticleArgument.class, APlayerArgument.class, + APotionEffectArgument.class, ARecipeArgument.class, ARotationArgument.class, AScoreboardSlotArgument.class, + AScoreHolderArgument.Single.class, AScoreHolderArgument.Multiple.class, ASoundArgument.class, AStringArgument.class, ATeamArgument.class, + ATextArgument.class, ATimeArgument.class, AUUIDArgument.class }; // List of stuff we can deal with @Override @@ -187,15 +186,20 @@ private SortedSet calculateImports(Element classElement) { if(methodElement instanceof ExecutableElement) { ExecutableElement method = (ExecutableElement) methodElement; for(VariableElement parameter : method.getParameters()) { - if(getArgument(parameter) != null) { - imports.addAll(Arrays.asList(getPrimitive(getArgument(parameter)).value())); - imports.add("dev.jorel.commandapi.arguments." + getArgument(parameter).annotationType().getSimpleName().substring(1)); - if(getArgument(parameter) instanceof ALocationArgument || getArgument(parameter) instanceof ALocation2DArgument) { + Annotation argument = getArgument(parameter); + if(argument != null) { + imports.addAll(Arrays.asList(getPrimitive(argument).value())); + + if(argument.annotationType().getEnclosingClass() == null) { + // Normal arguments + imports.add("dev.jorel.commandapi.arguments." + argument.annotationType().getSimpleName().substring(1)); + } else { + // Nested arguments, like EntitySelectorArgument + imports.add("dev.jorel.commandapi.arguments." + argument.annotationType().getEnclosingClass().getSimpleName().substring(1)); + } + + if(argument instanceof ALocationArgument || argument instanceof ALocation2DArgument) { imports.add(LocationType.class.getCanonicalName()); - } else if(getArgument(parameter) instanceof AScoreHolderArgument) { - imports.add(ScoreHolderType.class.getCanonicalName()); - } else if(getArgument(parameter) instanceof AEntitySelectorArgument) { - imports.add(EntitySelector.class.getCanonicalName()); } } @@ -303,22 +307,6 @@ private Map emitArgumentsAndGenerateArgu Primitive primitive = getPrimitive(argumentAnnotation); if(primitive.value().length == 1) { argumentMapping.put(i - 1, primitive.value()[0]); - } else { - if(argumentAnnotation instanceof AEntitySelectorArgument argument) { - switch(argument.value()) { - case MANY_ENTITIES -> argumentMapping.put(i - 1, primitive.value()[0]); - case MANY_PLAYERS -> argumentMapping.put(i - 1, primitive.value()[1]); - case ONE_ENTITY -> argumentMapping.put(i - 1, primitive.value()[2]); - case ONE_PLAYER -> argumentMapping.put(i - 1, primitive.value()[3]); - default -> throw new IllegalArgumentException("Unexpected value: " + argument.value()); - } - } else if (argumentAnnotation instanceof AScoreHolderArgument argument) { - switch(argument.value()) { - case MULTIPLE -> argumentMapping.put(i - 1, primitive.value()[0]); - case SINGLE -> argumentMapping.put(i - 1, primitive.value()[1]); - default -> throw new IllegalArgumentException("Unexpected value: " + argument.value()); - } - } } } @@ -492,7 +480,15 @@ private void processCommand(RoundEnvironment roundEnv, El private void emitArgument(PrintWriter out, T argumentAnnotation, VariableElement parameter, int indent) { out.print(indent(indent) + ".withArguments(new "); // We're assuming that the name of the argument MUST be "A" + the same name - out.print(argumentAnnotation.annotationType().getSimpleName().substring(1)); + if(argumentAnnotation.annotationType().getEnclosingClass() == null) { + // Normal arguments + out.print(argumentAnnotation.annotationType().getSimpleName().substring(1)); + } else { + // Nested arguments, like EntitySelectorArgument + out.print(argumentAnnotation.annotationType().getEnclosingClass().getSimpleName().substring(1)); + out.print("."); + out.print(argumentAnnotation.annotationType().getSimpleName()); + } // Node name if(argumentAnnotation instanceof AMultiLiteralArgument || argumentAnnotation instanceof ALiteralArgument) { @@ -521,10 +517,6 @@ else if(argumentAnnotation instanceof ALocation2DArgument argument) { out.print(", " + LocationType.class.getSimpleName() + "." + argument.value().toString()); } else if(argumentAnnotation instanceof ALocationArgument argument) { out.print(", " + LocationType.class.getSimpleName() + "." + argument.value().toString()); - } else if(argumentAnnotation instanceof AEntitySelectorArgument argument) { - out.print(", " + EntitySelector.class.getSimpleName() + "." + argument.value().toString()); - } else if(argumentAnnotation instanceof AScoreHolderArgument argument) { - out.print(", " + ScoreHolderType.class.getSimpleName() + "." + argument.value().toString()); } else if(argumentAnnotation instanceof AMultiLiteralArgument argument) { out.print(Arrays.stream(argument.value()).map(s -> "\"" + s + "\"").collect(Collectors.joining(", "))); } else if(argumentAnnotation instanceof ALiteralArgument argument) { @@ -557,11 +549,22 @@ private Primitive getPrimitive(T annotation) { private T getArgument(VariableElement tMirror) { for(AnnotationMirror mirror : tMirror.getAnnotationMirrors()) { if(isArgument(mirror)) { + T argumentAnnotation = null; + String mirrorCanonicalName = mirror.getAnnotationType().toString(); try { - return tMirror.getAnnotationsByType((Class) Class.forName(mirror.getAnnotationType().toString()))[0]; + argumentAnnotation = tMirror.getAnnotationsByType((Class) Class.forName(mirrorCanonicalName))[0]; } catch (ClassNotFoundException e) { - e.printStackTrace(); + // We might be in a nested class. Let's try accessing that + try { + // Replace final . with $ + mirrorCanonicalName = mirrorCanonicalName.substring(0, mirrorCanonicalName.lastIndexOf(".")) + "$" + mirrorCanonicalName.substring(mirrorCanonicalName.lastIndexOf(".") + 1); + argumentAnnotation = tMirror.getAnnotationsByType((Class) Class.forName(mirrorCanonicalName))[0]; + } catch (ClassNotFoundException e1) { + e1.printStackTrace(); + } } + + return argumentAnnotation; } } return null; diff --git a/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AEntitySelectorArgument.java b/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AEntitySelectorArgument.java index f458c55eca..29599d2bff 100644 --- a/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AEntitySelectorArgument.java +++ b/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AEntitySelectorArgument.java @@ -25,24 +25,41 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import dev.jorel.commandapi.arguments.EntitySelector; import dev.jorel.commandapi.arguments.EntitySelectorArgument; -/** - * Annotation equivalent of the {@link EntitySelectorArgument} - */ -@Primitive({ "java.util.Collection", // MANY_ENTITIES - "java.util.Collection", // MANY_PLAYERS - "org.bukkit.entity.Entity", // ONE_ENTITY - "org.bukkit.entity.Player" // ONE_PLAYER -}) -@Retention(RetentionPolicy.SOURCE) -@Target(ElementType.PARAMETER) -public @interface AEntitySelectorArgument { +public interface AEntitySelectorArgument { + + /** + * Annotation equivalent of the {@link EntitySelectorArgument} for one entity + */ + @Primitive("org.bukkit.entity.Entity") + @Retention(RetentionPolicy.SOURCE) + @Target(ElementType.PARAMETER) + public @interface OneEntity { } + + /** + * Annotation equivalent of the {@link EntitySelectorArgument} for one player + */ + @Primitive("org.bukkit.entity.Player") + @Retention(RetentionPolicy.SOURCE) + @Target(ElementType.PARAMETER) + public @interface OnePlayer { } /** - * @return the entity selector for this argument + * Annotation equivalent of the {@link EntitySelectorArgument} for many entities */ - EntitySelector value() default EntitySelector.ONE_ENTITY; + @Primitive("java.util.Collection") + @Retention(RetentionPolicy.SOURCE) + @Target(ElementType.PARAMETER) + public @interface ManyEntities { } + + /** + * Annotation equivalent of the {@link EntitySelectorArgument} for many players + */ + @Primitive("java.util.Collection") + @Retention(RetentionPolicy.SOURCE) + @Target(ElementType.PARAMETER) + public @interface ManyPlayers { } + } diff --git a/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AEnvironmentArgument.java b/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AEnvironmentArgument.java deleted file mode 100644 index 10f362366c..0000000000 --- a/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AEnvironmentArgument.java +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************************* - * Copyright 2018, 2020 Jorel Ali (Skepter) - MIT License - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of - * the Software, and to permit persons to whom the Software is furnished to do so, - * subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS - * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR - * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER - * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - *******************************************************************************/ -package dev.jorel.commandapi.annotations.arguments; - -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import dev.jorel.commandapi.arguments.EnvironmentArgument; - -/** - * Annotation equivalent of the {@link EnvironmentArgument} - */ -@Primitive("org.bukkit.World.Environment") -@Retention(RetentionPolicy.SOURCE) -@Target(ElementType.PARAMETER) -public @interface AEnvironmentArgument { -} diff --git a/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AScoreHolderArgument.java b/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AScoreHolderArgument.java index d9b1962a96..ece0483464 100644 --- a/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AScoreHolderArgument.java +++ b/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/arguments/AScoreHolderArgument.java @@ -26,22 +26,26 @@ import java.lang.annotation.Target; import dev.jorel.commandapi.arguments.ScoreHolderArgument; -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; /** * Annotation equivalent of the {@link ScoreHolderArgument} */ -@Primitive({ "java.util.Collection", // ScoreHolderType.MULTIPLE - "String" // ScoreHolderType.SINGLE -}) -@Retention(RetentionPolicy.SOURCE) -@Target(ElementType.PARAMETER) -public @interface AScoreHolderArgument { +public interface AScoreHolderArgument { /** - * @return whether this argument represents a single score holder or a - * collection of score holders + * Annotation equivalent of the {@link ScoreHolderArgument} for a single score holder */ - ScoreHolderType value() default ScoreHolderType.SINGLE; + @Primitive("String") + @Retention(RetentionPolicy.SOURCE) + @Target(ElementType.PARAMETER) + public @interface Single { } + + /** + * Annotation equivalent of the {@link ScoreHolderArgument} for multiple score holders + */ + @Primitive("java.util.Collection") + @Retention(RetentionPolicy.SOURCE) + @Target(ElementType.PARAMETER) + public @interface Multiple { } } diff --git a/commandapi-annotations/src/test/java/Test2Command.java b/commandapi-annotations/src/test/java/Test2Command.java index c0e3d39c24..09ad907f26 100644 --- a/commandapi-annotations/src/test/java/Test2Command.java +++ b/commandapi-annotations/src/test/java/Test2Command.java @@ -40,9 +40,7 @@ import dev.jorel.commandapi.annotations.arguments.ALongArgument; import dev.jorel.commandapi.annotations.arguments.AMultiLiteralArgument; import dev.jorel.commandapi.annotations.arguments.AScoreHolderArgument; -import dev.jorel.commandapi.arguments.EntitySelector; import dev.jorel.commandapi.arguments.LocationType; -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; /* ANCHOR: teleport_command */ @Command("teleport") @@ -112,13 +110,14 @@ public static void command(CommandSender sender, /* ANCHOR_END: literal_arguments */ +// TODO: EntitySelectorArgument and ScoreHolder argument have changed - these need updating in the documentation /* ANCHOR: other_arguments */ @Default public static void command(CommandSender sender, @ALocationArgument(LocationType.BLOCK_POSITION) Location location, @ALocation2DArgument(LocationType.PRECISE_POSITION) Location location2d, - @AEntitySelectorArgument(EntitySelector.MANY_ENTITIES) Collection entities, - @AScoreHolderArgument(ScoreHolderType.MULTIPLE) Collection scoreHolders + @AEntitySelectorArgument.ManyEntities Collection entities, + @AScoreHolderArgument.Multiple Collection scoreHolders ) { // Command implementation here } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java index 3862c55301..e95538e0b7 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/AbstractArgumentTree.java @@ -21,6 +21,7 @@ public abstract class AbstractArgumentTree) { this.argument = (Argument) this; diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java index bc0a4cddad..345a9d4a3f 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPI.java @@ -212,6 +212,7 @@ public static void reloadDatapacks() { * @param player the player whose requirements should be updated */ public static void updateRequirements(Player player) { + @SuppressWarnings("unchecked") CommandAPIPlatform platform = (CommandAPIPlatform) CommandAPIHandler.getInstance().getPlatform(); platform.updateRequirements((AbstractPlayer) platform.wrapCommandSender(player)); } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java index 694a5dd52e..2bf3f7d2b6 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Execution.java @@ -25,6 +25,7 @@ public Execution(List arguments, CommandAPIExecutor meta) { + @SuppressWarnings("unchecked") CommandAPIPlatform platform = (CommandAPIPlatform) CommandAPIHandler.getInstance().getPlatform(); AbstractCommandAPICommand command = platform.newConcreteCommandAPICommand(meta); command.withArguments(arguments); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java deleted file mode 100644 index c9fa5f17b1..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/AngleArgumentException.java +++ /dev/null @@ -1,16 +0,0 @@ -package dev.jorel.commandapi.exceptions; - -/** - * An exception that occurs when trying to use the AngleArgument on Minecraft version < 1.16.2 - */ -@SuppressWarnings("serial") -public class AngleArgumentException extends RuntimeException { - - /** - * Creates a AngleArgument - */ - public AngleArgumentException() { - super("The AngleArgument is only compatible with Minecraft 1.16.2 or later"); - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java deleted file mode 100644 index d9ae0e1b7e..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/BiomeArgumentException.java +++ /dev/null @@ -1,16 +0,0 @@ -package dev.jorel.commandapi.exceptions; - -/** - * An exception caused when using the BiomeArgument on Minecraft version < 1.16 - */ -@SuppressWarnings("serial") -public class BiomeArgumentException extends RuntimeException { - - /** - * Creates a BiomeArgumentException - */ - public BiomeArgumentException() { - super("The BiomeArgument is only compatible with Minecraft 1.16 or later"); - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java deleted file mode 100644 index 4be8238270..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/EnvironmentArgumentException.java +++ /dev/null @@ -1,16 +0,0 @@ -package dev.jorel.commandapi.exceptions; - -/** - * An exception caused when using the EnvironmentArgument on Minecraft version 1.13 - */ -@SuppressWarnings("serial") -public class EnvironmentArgumentException extends RuntimeException { - - /** - * Creates an EnvironmentArgumentException - */ - public EnvironmentArgumentException() { - super("The EnvironmentArgument is only compatible with Minecraft 1.13.1 or later"); - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java index 51b835b6f2..c48a3d7f27 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/GreedyArgumentException.java @@ -26,6 +26,7 @@ * An exception caused when a greedy argument is not declared at the end of a * List */ +@SuppressWarnings("serial") public class GreedyArgumentException extends RuntimeException { /** * Creates a GreedyArgumentException diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java deleted file mode 100644 index b6193404c8..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/TimeArgumentException.java +++ /dev/null @@ -1,16 +0,0 @@ -package dev.jorel.commandapi.exceptions; - -/** - * An exception that occurs when trying to use the TimeArgument on Minecraft version < 1.14 - */ -@SuppressWarnings("serial") -public class TimeArgumentException extends RuntimeException { - - /** - * Creates a TimeArgumentException - */ - public TimeArgumentException() { - super("The TimeArgument is only compatible with Minecraft 1.14 or later"); - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java deleted file mode 100644 index 950744b31d..0000000000 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UUIDArgumentException.java +++ /dev/null @@ -1,16 +0,0 @@ -package dev.jorel.commandapi.exceptions; - -/** - * An exception that occurs when trying to use the UUIDArgumentException on Minecraft version < 1.16 - */ -@SuppressWarnings("serial") -public class UUIDArgumentException extends RuntimeException { - - /** - * Creates a UUIDArgumentException - */ - public UUIDArgumentException() { - super("The UUIDArgument is only compatible with Minecraft 1.16 or later"); - } - -} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UnimplementedArgumentException.java b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UnimplementedArgumentException.java index 788838f8ae..bc911e80ac 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UnimplementedArgumentException.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/exceptions/UnimplementedArgumentException.java @@ -23,6 +23,7 @@ /** * An exception caused when using an argument which hasn't been implemented in this Minecraft version */ +@SuppressWarnings("serial") public class UnimplementedArgumentException extends RuntimeException { /** diff --git a/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt index ab99c8369a..2945fa27bc 100644 --- a/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt +++ b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt @@ -12,7 +12,6 @@ import dev.jorel.commandapi.* import dev.jorel.commandapi.arguments.* import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException import dev.jorel.commandapi.executors.* import dev.jorel.commandapi.wrappers.* @@ -384,7 +383,7 @@ CommandAPICommand("spawnmob") fun scoreholderargument() { /* ANCHOR: scoreholderargument */ CommandAPICommand("reward") - // We want multiple players, so we use ScoreHolderType.MULTIPLE in the constructor + // We want multiple players, so we use the ScoreHolderArgument.Multiple constructor .withArguments(ScoreHolderArgument.Multiple("players")) .executes(CommandExecutor { _, args -> // Get player names by casting to Collection diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java index c990c90ed1..c8d1396f69 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/CommandAPIBukkit.java @@ -83,6 +83,7 @@ public CommandAPIBukkit() { instance = this; } + @SuppressWarnings("unchecked") public static CommandAPIBukkit get() { return (CommandAPIBukkit) instance; } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelector.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelector.java deleted file mode 100644 index 03e1fb1940..0000000000 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelector.java +++ /dev/null @@ -1,43 +0,0 @@ -package dev.jorel.commandapi.arguments; - -import java.util.Collection; - -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; - -import dev.jorel.commandapi.arguments.EntitySelectorArgument.ManyEntities; -import dev.jorel.commandapi.arguments.EntitySelectorArgument.ManyPlayers; -import dev.jorel.commandapi.arguments.EntitySelectorArgument.OneEntity; -import dev.jorel.commandapi.arguments.EntitySelectorArgument.OnePlayer; - -/** - * An enum that represents single entities or players, as well as collections of - * entities or players - * - * @deprecated Use {@code EntitySelectorArgument.}{@link OneEntity}, - * {@code EntitySelectorArgument.}{@link OnePlayer}, - * {@code EntitySelectorArgument.}{@link ManyEntities} or - * {@code EntitySelectorArgument.}{@link ManyPlayers} - */ -@Deprecated(forRemoval = true, since = "8.7.0") -public enum EntitySelector { - /** - * A single entity. Returns a {@link Entity} - */ - ONE_ENTITY, - - /** - * A single player. Returns a {@link Player} - */ - ONE_PLAYER, - - /** - * Many entities. Returns a {@link Collection}{@code <}{@link Entity}{@code >} - */ - MANY_ENTITIES, - - /** - * Many players. Returns a {@link Collection}{@code <}{@link Player}{@code >} - */ - MANY_PLAYERS; -} \ No newline at end of file diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java index 2f65bdc1b4..3a007c4ec2 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/EntitySelectorArgument.java @@ -32,104 +32,8 @@ /** * An argument that represents a selection of entities - * - * @apiNote The return type depends on the provided {@link EntitySelector} */ -public class EntitySelectorArgument extends Argument { - - private final EntitySelector selector; - - /** - * An EntityType argument. Represents an entity specified by a selector. - * Defaults to using {@link EntitySelector#ONE_ENTITY} - * - * @param nodeName the name of the node for this argument - * @deprecated Use {@code EntitySelectorArgument.}{@link OneEntity} - */ - @Deprecated(forRemoval = true, since = "8.7.0") - public EntitySelectorArgument(String nodeName) { - this(nodeName, EntitySelector.ONE_ENTITY); - } - - /** - * An EntityType argument. Represents an entity specified by a selector - * - * @param nodeName the name of the node for this argument - * @param selector the entity selector for this argument - * @deprecated Use {@code EntitySelectorArgument.}{@link OneEntity}, - * {@code EntitySelectorArgument.}{@link OnePlayer}, - * {@code EntitySelectorArgument.}{@link ManyEntities} or - * {@code EntitySelectorArgument.}{@link ManyPlayers} - */ - @Deprecated(forRemoval = true, since = "8.7.0") - public EntitySelectorArgument(String nodeName, EntitySelector selector) { - super(nodeName, CommandAPIBukkit.get()._ArgumentEntity(switch(selector) { - case MANY_ENTITIES -> ArgumentSubType.ENTITYSELECTOR_MANY_ENTITIES; - case MANY_PLAYERS -> ArgumentSubType.ENTITYSELECTOR_MANY_PLAYERS; - case ONE_ENTITY -> ArgumentSubType.ENTITYSELECTOR_ONE_ENTITY; - case ONE_PLAYER -> ArgumentSubType.ENTITYSELECTOR_ONE_PLAYER; - })); - this.selector = selector; - } - - @SuppressWarnings("unchecked") - @Override - public Class getPrimitiveType() { - return (Class) switch (selector) { - case MANY_ENTITIES, MANY_PLAYERS -> Collection.class; - case ONE_ENTITY -> Entity.class; - case ONE_PLAYER -> Player.class; - default -> Collection.class; - }; - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.ENTITY_SELECTOR; - } - - @SuppressWarnings("unchecked") - @Override - public T parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) - throws CommandSyntaxException { - return (T) CommandAPIBukkit.get().getEntitySelector(cmdCtx, key, switch(selector) { - case MANY_ENTITIES -> ArgumentSubType.ENTITYSELECTOR_MANY_ENTITIES; - case MANY_PLAYERS -> ArgumentSubType.ENTITYSELECTOR_MANY_PLAYERS; - case ONE_ENTITY -> ArgumentSubType.ENTITYSELECTOR_ONE_ENTITY; - case ONE_PLAYER -> ArgumentSubType.ENTITYSELECTOR_ONE_PLAYER; - }); - } - - @Override - @Deprecated - public List getEntityNames(Object argument) { - return switch (selector) { - case MANY_ENTITIES: - @SuppressWarnings("unchecked") - List entities = (List) argument; - List entityNames = new ArrayList<>(); - for (Entity entity : entities) { - entityNames.add(entity.getName()); - } - yield entityNames; - case MANY_PLAYERS: - @SuppressWarnings("unchecked") - List players = (List) argument; - List playerNames = new ArrayList<>(); - for (Player player : players) { - playerNames.add(player.getName()); - } - yield playerNames; - case ONE_ENTITY: - Entity entity = (Entity) argument; - yield List.of(entity.getName()); - case ONE_PLAYER: - Player player = (Player) argument; - yield List.of(player.getName()); - default: - throw new IllegalStateException("Invalid selector " + selector.name()); - }; - } +public class EntitySelectorArgument { /** * An argument that represents a single entity diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java index c272d05cea..120ca2d731 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/arguments/ScoreHolderArgument.java @@ -29,74 +29,36 @@ /** * An argument that represents a scoreholder's name, or a collection of scoreholder names */ -public class ScoreHolderArgument extends Argument { - - private final boolean single; - - /** - * A Score Holder argument. Represents a single score holder or a collection of score holders. - * Defaults to using {@link ScoreHolderType#SINGLE} - * @param nodeName the name of the node for this argument - */ - public ScoreHolderArgument(String nodeName) { - this(nodeName, ScoreHolderType.SINGLE); - } - - /** - * A Score Holder argument. Represents a single score holder or a collection of score holders - * @param nodeName the name of the node for this argument - * @param type whether this argument represents a single score holder or a collection of score holders - * @deprecated Use {@code ScoreHolderArgument.}{@link Single} or {@code ScoreHolderArgument.}{@link Multiple} instead - */ - @Deprecated(forRemoval = true, since = "8.7.0") - public ScoreHolderArgument(String nodeName, ScoreHolderType type) { - super(nodeName, CommandAPIBukkit.get()._ArgumentScoreholder(ArgumentSubType.SCOREHOLDER_SINGLE)); - single = (type == ScoreHolderType.SINGLE); - } - - /** - * Returns whether this argument represents a single score holder or a collection of score holders - * @return true if this argument represents a single score holder - */ - public boolean isSingle() { - return this.single; - } - - @SuppressWarnings("unchecked") - @Override - public Class getPrimitiveType() { - return (Class) (single ? String.class : Collection.class); - } - - @Override - public CommandAPIArgumentType getArgumentType() { - return CommandAPIArgumentType.SCORE_HOLDER; - } - - @SuppressWarnings("unchecked") - @Override - public T parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return (T) (single ? - CommandAPIBukkit.get().getScoreHolderSingle(cmdCtx, key) : - CommandAPIBukkit.get().getScoreHolderMultiple(cmdCtx, key)); - } - - +public class ScoreHolderArgument { /** * An argument that represents a scoreholder's name * * @apiNote Returns a {@link String} object */ - // For feature parity, ScoreHolderArgument.Single() is equivalent to ScoreHolderArgument() - public static class Single extends ScoreHolderArgument { + public static class Single extends Argument { /** * A Score Holder argument. Represents a single score holder * @param nodeName the name of the node for this argument */ public Single(String nodeName) { - super(nodeName); + super(nodeName, CommandAPIBukkit.get()._ArgumentScoreholder(ArgumentSubType.SCOREHOLDER_SINGLE)); + } + + @Override + public Class getPrimitiveType() { + return String.class; + } + + @Override + public CommandAPIArgumentType getArgumentType() { + return CommandAPIArgumentType.SCORE_HOLDER; + } + + @Override + public String parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return CommandAPIBukkit.get().getScoreHolderSingle(cmdCtx, key); } } @@ -133,21 +95,4 @@ public Collection parseArgument(CommandContext implements ICustomProvidedArgument { +public class SoundArgument extends SafeOverrideableArgument implements ICustomProvidedArgument { /** * A Sound argument. Represents Bukkit's Sound object @@ -38,8 +41,8 @@ public SoundArgument(String nodeName) { } @Override - public Class getPrimitiveType() { - return org.bukkit.Sound.class; + public Class getPrimitiveType() { + return Sound.class; } @Override @@ -53,8 +56,8 @@ public CommandAPIArgumentType getArgumentType() { } @Override - public org.bukkit.Sound parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { - return (org.bukkit.Sound) CommandAPIBukkit.get().getSound(cmdCtx, key, ArgumentSubType.SOUND_SOUND); + public Sound parseArgument(CommandContext cmdCtx, String key, Object[] previousArgs) throws CommandSyntaxException { + return (Sound) CommandAPIBukkit.get().getSound(cmdCtx, key, ArgumentSubType.SOUND_SOUND); } /** diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java index 0825b55388..bd93608deb 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_13_1.java @@ -1,44 +1,45 @@ package dev.jorel.commandapi.nms; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.commandsenders.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.TimeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.*; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_13_R2.*; -import net.minecraft.server.v1_13_R2.CriterionConditionValue.c; -import net.minecraft.server.v1_13_R2.EnumDirection.EnumAxis; -import net.minecraft.server.v1_13_R2.IChatBaseComponent.ChatSerializer; +import java.io.File; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.util.ArrayList; +import java.util.Collection; +import java.util.EnumSet; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; + +import org.bukkit.Axis; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Color; +import org.bukkit.Location; +import org.bukkit.NamespacedKey; +import org.bukkit.OfflinePlayer; import org.bukkit.Particle; -import org.bukkit.*; -import org.bukkit.World; import org.bukkit.Particle.DustOptions; +import org.bukkit.Sound; +import org.bukkit.World; import org.bukkit.World.Environment; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; -import org.bukkit.command.*; -import org.bukkit.craftbukkit.v1_13_R2.*; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.ConsoleCommandSender; +import org.bukkit.command.RemoteConsoleCommandSender; +import org.bukkit.command.SimpleCommandMap; +import org.bukkit.craftbukkit.v1_13_R2.CraftLootTable; +import org.bukkit.craftbukkit.v1_13_R2.CraftParticle; +import org.bukkit.craftbukkit.v1_13_R2.CraftServer; +import org.bukkit.craftbukkit.v1_13_R2.CraftSound; +import org.bukkit.craftbukkit.v1_13_R2.CraftWorld; import org.bukkit.craftbukkit.v1_13_R2.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_13_R2.command.CraftBlockCommandSender; import org.bukkit.craftbukkit.v1_13_R2.command.ProxiedNativeCommandSender; @@ -59,13 +60,98 @@ import org.bukkit.inventory.Recipe; import org.bukkit.potion.PotionEffectType; -import java.io.File; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.util.*; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; +import com.mojang.brigadier.Message; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; + +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.exceptions.UnimplementedArgumentException; +import dev.jorel.commandapi.preprocessor.Differs; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.FloatRange; +import dev.jorel.commandapi.wrappers.FunctionWrapper; +import dev.jorel.commandapi.wrappers.IntegerRange; +import dev.jorel.commandapi.wrappers.Location2D; +import dev.jorel.commandapi.wrappers.MathOperation; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import dev.jorel.commandapi.wrappers.ParticleData; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.ScoreboardSlot; +import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_13_R2.Advancement; +import net.minecraft.server.v1_13_R2.ArgumentBlockPredicate; +import net.minecraft.server.v1_13_R2.ArgumentChat; +import net.minecraft.server.v1_13_R2.ArgumentChatComponent; +import net.minecraft.server.v1_13_R2.ArgumentChatFormat; +import net.minecraft.server.v1_13_R2.ArgumentCriterionValue; +import net.minecraft.server.v1_13_R2.ArgumentDimension; +import net.minecraft.server.v1_13_R2.ArgumentEnchantment; +import net.minecraft.server.v1_13_R2.ArgumentEntity; +import net.minecraft.server.v1_13_R2.ArgumentEntitySummon; +import net.minecraft.server.v1_13_R2.ArgumentItemPredicate; +import net.minecraft.server.v1_13_R2.ArgumentItemStack; +import net.minecraft.server.v1_13_R2.ArgumentMathOperation; +import net.minecraft.server.v1_13_R2.ArgumentMinecraftKeyRegistered; +import net.minecraft.server.v1_13_R2.ArgumentMobEffect; +import net.minecraft.server.v1_13_R2.ArgumentNBTTag; +import net.minecraft.server.v1_13_R2.ArgumentParticle; +import net.minecraft.server.v1_13_R2.ArgumentPosition; +import net.minecraft.server.v1_13_R2.ArgumentProfile; +import net.minecraft.server.v1_13_R2.ArgumentRotation; +import net.minecraft.server.v1_13_R2.ArgumentRotationAxis; +import net.minecraft.server.v1_13_R2.ArgumentScoreboardCriteria; +import net.minecraft.server.v1_13_R2.ArgumentScoreboardObjective; +import net.minecraft.server.v1_13_R2.ArgumentScoreboardSlot; +import net.minecraft.server.v1_13_R2.ArgumentScoreboardTeam; +import net.minecraft.server.v1_13_R2.ArgumentScoreholder; +import net.minecraft.server.v1_13_R2.ArgumentTag; +import net.minecraft.server.v1_13_R2.ArgumentTile; +import net.minecraft.server.v1_13_R2.ArgumentVec2; +import net.minecraft.server.v1_13_R2.ArgumentVec2I; +import net.minecraft.server.v1_13_R2.ArgumentVec3; +import net.minecraft.server.v1_13_R2.BlockPosition; +import net.minecraft.server.v1_13_R2.CommandListenerWrapper; +import net.minecraft.server.v1_13_R2.CompletionProviders; +import net.minecraft.server.v1_13_R2.CriterionConditionValue; +import net.minecraft.server.v1_13_R2.CriterionConditionValue.c; +import net.minecraft.server.v1_13_R2.CustomFunction; +import net.minecraft.server.v1_13_R2.CustomFunctionData; +import net.minecraft.server.v1_13_R2.DedicatedServer; +import net.minecraft.server.v1_13_R2.DimensionManager; +import net.minecraft.server.v1_13_R2.Entity; +import net.minecraft.server.v1_13_R2.EntityPlayer; +import net.minecraft.server.v1_13_R2.EntitySelector; +import net.minecraft.server.v1_13_R2.EnumDirection.EnumAxis; +import net.minecraft.server.v1_13_R2.IBlockData; +import net.minecraft.server.v1_13_R2.IChatBaseComponent.ChatSerializer; +import net.minecraft.server.v1_13_R2.ICompletionProvider; +import net.minecraft.server.v1_13_R2.IRegistry; +import net.minecraft.server.v1_13_R2.ItemStack; +import net.minecraft.server.v1_13_R2.LootTable; +import net.minecraft.server.v1_13_R2.LootTableRegistry; +import net.minecraft.server.v1_13_R2.MinecraftKey; +import net.minecraft.server.v1_13_R2.MinecraftServer; +import net.minecraft.server.v1_13_R2.ParticleParam; +import net.minecraft.server.v1_13_R2.ParticleParamBlock; +import net.minecraft.server.v1_13_R2.ParticleParamItem; +import net.minecraft.server.v1_13_R2.ParticleParamRedstone; +import net.minecraft.server.v1_13_R2.ShapeDetectorBlock; +import net.minecraft.server.v1_13_R2.Vec2F; +import net.minecraft.server.v1_13_R2.Vec3D; /** * NMS implementation for Minecraft 1.13.1 @@ -123,7 +209,7 @@ protected static NamespacedKey fromMinecraftKey(MinecraftKey key) { @Override public ArgumentType _ArgumentAngle() { - throw new AngleArgumentException(); + throw new UnimplementedArgumentException("AngleArgument", "1.16.2"); } @Override @@ -286,7 +372,7 @@ public final ArgumentType _ArgumentScoreholder(ArgumentSubType subType) { @Override public ArgumentType _ArgumentSyntheticBiome() { - throw new BiomeArgumentException(); + throw new UnimplementedArgumentException("BiomeArgument", "1.16"); } @Override @@ -296,12 +382,12 @@ public ArgumentType _ArgumentTag() { @Override public ArgumentType _ArgumentTime() { - throw new TimeArgumentException(); + throw new UnimplementedArgumentException("TimeArgument", "1.14"); } @Override public ArgumentType _ArgumentUUID() { - throw new UUIDArgumentException(); + throw new UnimplementedArgumentException("UUIDArgument", "1.16"); } @Override @@ -386,7 +472,7 @@ public Component getAdventureChatComponent(CommandContext cmdCtx, String key) { - throw new AngleArgumentException(); + throw new UnimplementedArgumentException("AngleArgument", "1.16.2"); } @Override @@ -405,7 +491,7 @@ public EnumSet getAxis(CommandContext cmdCtx, Stri @Override public Object getBiome(CommandContext cmdCtx, String key, ArgumentSubType subType) throws CommandSyntaxException { - throw new BiomeArgumentException(); + throw new UnimplementedArgumentException("BiomeArgument", "1.16"); } @Override @@ -835,12 +921,12 @@ public Set getTags() { @Override public int getTime(CommandContext cmdCtx, String key) { - throw new TimeArgumentException(); + throw new UnimplementedArgumentException("TimeArgument", "1.14"); } @Override public UUID getUUID(CommandContext cmdCtx, String key) { - throw new UUIDArgumentException(); + throw new UnimplementedArgumentException("UUIDArgument", "1.16"); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java index f30d466269..33e206a28a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.13/src/main/java/dev/jorel/commandapi/nms/NMS_1_13.java @@ -1,40 +1,45 @@ package dev.jorel.commandapi.nms; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.commandsenders.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import dev.jorel.commandapi.exceptions.*; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.*; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_13_R1.*; -import net.minecraft.server.v1_13_R1.CriterionConditionValue.c; -import net.minecraft.server.v1_13_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_13_R1.IChatBaseComponent.ChatSerializer; +import java.io.File; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.util.ArrayList; +import java.util.Collection; +import java.util.EnumSet; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; + +import org.bukkit.Axis; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Color; +import org.bukkit.Location; +import org.bukkit.NamespacedKey; +import org.bukkit.OfflinePlayer; import org.bukkit.Particle; -import org.bukkit.*; -import org.bukkit.World; import org.bukkit.Particle.DustOptions; +import org.bukkit.Sound; +import org.bukkit.World; import org.bukkit.World.Environment; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; -import org.bukkit.command.*; -import org.bukkit.craftbukkit.v1_13_R1.*; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.command.ConsoleCommandSender; +import org.bukkit.command.RemoteConsoleCommandSender; +import org.bukkit.command.SimpleCommandMap; +import org.bukkit.craftbukkit.v1_13_R1.CraftLootTable; +import org.bukkit.craftbukkit.v1_13_R1.CraftParticle; +import org.bukkit.craftbukkit.v1_13_R1.CraftServer; +import org.bukkit.craftbukkit.v1_13_R1.CraftSound; +import org.bukkit.craftbukkit.v1_13_R1.CraftWorld; import org.bukkit.craftbukkit.v1_13_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_13_R1.command.CraftBlockCommandSender; import org.bukkit.craftbukkit.v1_13_R1.command.ProxiedNativeCommandSender; @@ -55,13 +60,94 @@ import org.bukkit.inventory.Recipe; import org.bukkit.potion.PotionEffectType; -import java.io.File; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.util.*; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; +import com.mojang.brigadier.Message; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; + +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.exceptions.UnimplementedArgumentException; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.FloatRange; +import dev.jorel.commandapi.wrappers.FunctionWrapper; +import dev.jorel.commandapi.wrappers.IntegerRange; +import dev.jorel.commandapi.wrappers.Location2D; +import dev.jorel.commandapi.wrappers.MathOperation; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import dev.jorel.commandapi.wrappers.ParticleData; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.ScoreboardSlot; +import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_13_R1.Advancement; +import net.minecraft.server.v1_13_R1.ArgumentBlockPredicate; +import net.minecraft.server.v1_13_R1.ArgumentChat; +import net.minecraft.server.v1_13_R1.ArgumentChatComponent; +import net.minecraft.server.v1_13_R1.ArgumentChatFormat; +import net.minecraft.server.v1_13_R1.ArgumentCriterionValue; +import net.minecraft.server.v1_13_R1.ArgumentEnchantment; +import net.minecraft.server.v1_13_R1.ArgumentEntity; +import net.minecraft.server.v1_13_R1.ArgumentEntitySummon; +import net.minecraft.server.v1_13_R1.ArgumentItemPredicate; +import net.minecraft.server.v1_13_R1.ArgumentItemStack; +import net.minecraft.server.v1_13_R1.ArgumentMathOperation; +import net.minecraft.server.v1_13_R1.ArgumentMinecraftKeyRegistered; +import net.minecraft.server.v1_13_R1.ArgumentMobEffect; +import net.minecraft.server.v1_13_R1.ArgumentNBTTag; +import net.minecraft.server.v1_13_R1.ArgumentParticle; +import net.minecraft.server.v1_13_R1.ArgumentPosition; +import net.minecraft.server.v1_13_R1.ArgumentProfile; +import net.minecraft.server.v1_13_R1.ArgumentRotation; +import net.minecraft.server.v1_13_R1.ArgumentRotationAxis; +import net.minecraft.server.v1_13_R1.ArgumentScoreboardCriteria; +import net.minecraft.server.v1_13_R1.ArgumentScoreboardObjective; +import net.minecraft.server.v1_13_R1.ArgumentScoreboardSlot; +import net.minecraft.server.v1_13_R1.ArgumentScoreboardTeam; +import net.minecraft.server.v1_13_R1.ArgumentScoreholder; +import net.minecraft.server.v1_13_R1.ArgumentTag; +import net.minecraft.server.v1_13_R1.ArgumentTile; +import net.minecraft.server.v1_13_R1.ArgumentVec2; +import net.minecraft.server.v1_13_R1.ArgumentVec3; +import net.minecraft.server.v1_13_R1.BlockPosition; +import net.minecraft.server.v1_13_R1.CommandListenerWrapper; +import net.minecraft.server.v1_13_R1.CompletionProviders; +import net.minecraft.server.v1_13_R1.CriterionConditionValue; +import net.minecraft.server.v1_13_R1.CriterionConditionValue.c; +import net.minecraft.server.v1_13_R1.CustomFunction; +import net.minecraft.server.v1_13_R1.CustomFunctionData; +import net.minecraft.server.v1_13_R1.DedicatedServer; +import net.minecraft.server.v1_13_R1.Entity; +import net.minecraft.server.v1_13_R1.EntityPlayer; +import net.minecraft.server.v1_13_R1.EntitySelector; +import net.minecraft.server.v1_13_R1.EntityTypes; +import net.minecraft.server.v1_13_R1.EnumDirection.EnumAxis; +import net.minecraft.server.v1_13_R1.IBlockData; +import net.minecraft.server.v1_13_R1.IChatBaseComponent.ChatSerializer; +import net.minecraft.server.v1_13_R1.ICompletionProvider; +import net.minecraft.server.v1_13_R1.ItemStack; +import net.minecraft.server.v1_13_R1.LootTable; +import net.minecraft.server.v1_13_R1.LootTableRegistry; +import net.minecraft.server.v1_13_R1.MinecraftKey; +import net.minecraft.server.v1_13_R1.MinecraftServer; +import net.minecraft.server.v1_13_R1.ParticleParam; +import net.minecraft.server.v1_13_R1.ParticleParamBlock; +import net.minecraft.server.v1_13_R1.ParticleParamItem; +import net.minecraft.server.v1_13_R1.ParticleParamRedstone; +import net.minecraft.server.v1_13_R1.ShapeDetectorBlock; +import net.minecraft.server.v1_13_R1.Vec2F; +import net.minecraft.server.v1_13_R1.Vec3D; /** * NMS implementation for Minecraft 1.13 @@ -119,7 +205,7 @@ private static NamespacedKey fromMinecraftKey(MinecraftKey key) { @Override public ArgumentType _ArgumentAngle() { - throw new AngleArgumentException(); + throw new UnimplementedArgumentException("AngleArgument", "1.16.2"); } @Override @@ -159,7 +245,7 @@ public ArgumentType _ArgumentDimension() { @Override public ArgumentType _ArgumentEnvironment() { - throw new EnvironmentArgumentException(); + throw new UnimplementedArgumentException("EnvironmentArgument", "1.13.1"); } @Override @@ -279,7 +365,7 @@ public final ArgumentType _ArgumentScoreholder(ArgumentSubType subType) { @Override public ArgumentType _ArgumentSyntheticBiome() { - throw new BiomeArgumentException(); + throw new UnimplementedArgumentException("BiomeArgument", "1.16"); } @Override @@ -289,12 +375,12 @@ public ArgumentType _ArgumentTag() { @Override public ArgumentType _ArgumentTime() { - throw new TimeArgumentException(); + throw new UnimplementedArgumentException("TimeArgument", "1.14"); } @Override public ArgumentType _ArgumentUUID() { - throw new UUIDArgumentException(); + throw new UnimplementedArgumentException("UUIDArgument", "1.16"); } @Override @@ -379,7 +465,7 @@ public Component getAdventureChatComponent(CommandContext cmdCtx, String key) { - throw new AngleArgumentException(); + throw new UnimplementedArgumentException("AngleArgument", "1.16.2"); } @Override @@ -398,7 +484,7 @@ public EnumSet getAxis(CommandContext cmdCtx, Stri @Override public Object getBiome(CommandContext cmdCtx, String key, ArgumentSubType subType) throws CommandSyntaxException { - throw new BiomeArgumentException(); + throw new UnimplementedArgumentException("BiomeArgument", "1.16"); } @Override @@ -470,7 +556,7 @@ public World getDimension(CommandContext cmdCtx, String @Override public Environment getEnvironment(CommandContext cmdCtx, String key) { - throw new EnvironmentArgumentException(); + throw new UnimplementedArgumentException("EnvironmentArgument", "1.13.1"); } @Override @@ -815,12 +901,12 @@ public String getTeam(CommandContext cmdCtx, String key) @Override public int getTime(CommandContext cmdCtx, String key) { - throw new TimeArgumentException(); + throw new UnimplementedArgumentException("TimeArgument", "1.14"); } @Override public UUID getUUID(CommandContext cmdCtx, String key) { - throw new UUIDArgumentException(); + throw new UnimplementedArgumentException("UUIDArgument", "1.16"); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java index 5646985c77..fb21b3381f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.14/src/main/java/dev/jorel/commandapi/nms/NMS_1_14.java @@ -1,46 +1,45 @@ package dev.jorel.commandapi.nms; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.commandsenders.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.*; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_14_R1.*; -import net.minecraft.server.v1_14_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_14_R1.IChatBaseComponent.ChatSerializer; +import java.io.File; +import java.io.IOException; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Collection; +import java.util.EnumSet; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; + +import org.bukkit.Axis; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Color; +import org.bukkit.Location; +import org.bukkit.NamespacedKey; +import org.bukkit.OfflinePlayer; import org.bukkit.Particle; -import org.bukkit.*; -import org.bukkit.World; import org.bukkit.Particle.DustOptions; +import org.bukkit.Sound; +import org.bukkit.World; import org.bukkit.World.Environment; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_14_R1.*; +import org.bukkit.craftbukkit.v1_14_R1.CraftLootTable; +import org.bukkit.craftbukkit.v1_14_R1.CraftParticle; +import org.bukkit.craftbukkit.v1_14_R1.CraftServer; +import org.bukkit.craftbukkit.v1_14_R1.CraftSound; +import org.bukkit.craftbukkit.v1_14_R1.CraftWorld; import org.bukkit.craftbukkit.v1_14_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_14_R1.command.VanillaCommandWrapper; import org.bukkit.craftbukkit.v1_14_R1.enchantments.CraftEnchantment; @@ -58,15 +57,99 @@ import org.bukkit.inventory.Recipe; import org.bukkit.potion.PotionEffectType; -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.*; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; +import com.google.common.io.Files; +import com.google.gson.GsonBuilder; +import com.mojang.brigadier.Message; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; + +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.exceptions.UnimplementedArgumentException; +import dev.jorel.commandapi.preprocessor.Differs; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.FloatRange; +import dev.jorel.commandapi.wrappers.FunctionWrapper; +import dev.jorel.commandapi.wrappers.IntegerRange; +import dev.jorel.commandapi.wrappers.Location2D; +import dev.jorel.commandapi.wrappers.MathOperation; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import dev.jorel.commandapi.wrappers.ParticleData; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.ScoreboardSlot; +import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_14_R1.Advancement; +import net.minecraft.server.v1_14_R1.ArgumentBlockPredicate; +import net.minecraft.server.v1_14_R1.ArgumentChat; +import net.minecraft.server.v1_14_R1.ArgumentChatComponent; +import net.minecraft.server.v1_14_R1.ArgumentChatFormat; +import net.minecraft.server.v1_14_R1.ArgumentCriterionValue; +import net.minecraft.server.v1_14_R1.ArgumentDimension; +import net.minecraft.server.v1_14_R1.ArgumentEnchantment; +import net.minecraft.server.v1_14_R1.ArgumentEntity; +import net.minecraft.server.v1_14_R1.ArgumentEntitySummon; +import net.minecraft.server.v1_14_R1.ArgumentItemPredicate; +import net.minecraft.server.v1_14_R1.ArgumentItemStack; +import net.minecraft.server.v1_14_R1.ArgumentMathOperation; +import net.minecraft.server.v1_14_R1.ArgumentMinecraftKeyRegistered; +import net.minecraft.server.v1_14_R1.ArgumentMobEffect; +import net.minecraft.server.v1_14_R1.ArgumentNBTTag; +import net.minecraft.server.v1_14_R1.ArgumentParticle; +import net.minecraft.server.v1_14_R1.ArgumentPosition; +import net.minecraft.server.v1_14_R1.ArgumentProfile; +import net.minecraft.server.v1_14_R1.ArgumentRegistry; +import net.minecraft.server.v1_14_R1.ArgumentRotation; +import net.minecraft.server.v1_14_R1.ArgumentRotationAxis; +import net.minecraft.server.v1_14_R1.ArgumentScoreboardCriteria; +import net.minecraft.server.v1_14_R1.ArgumentScoreboardObjective; +import net.minecraft.server.v1_14_R1.ArgumentScoreboardSlot; +import net.minecraft.server.v1_14_R1.ArgumentScoreboardTeam; +import net.minecraft.server.v1_14_R1.ArgumentScoreholder; +import net.minecraft.server.v1_14_R1.ArgumentTag; +import net.minecraft.server.v1_14_R1.ArgumentTile; +import net.minecraft.server.v1_14_R1.ArgumentTime; +import net.minecraft.server.v1_14_R1.ArgumentVec2; +import net.minecraft.server.v1_14_R1.ArgumentVec2I; +import net.minecraft.server.v1_14_R1.ArgumentVec3; +import net.minecraft.server.v1_14_R1.BlockPosition; +import net.minecraft.server.v1_14_R1.BlockPosition2D; +import net.minecraft.server.v1_14_R1.CommandListenerWrapper; +import net.minecraft.server.v1_14_R1.CompletionProviders; +import net.minecraft.server.v1_14_R1.CriterionConditionValue; +import net.minecraft.server.v1_14_R1.CustomFunction; +import net.minecraft.server.v1_14_R1.CustomFunctionData; +import net.minecraft.server.v1_14_R1.DimensionManager; +import net.minecraft.server.v1_14_R1.Entity; +import net.minecraft.server.v1_14_R1.EntityPlayer; +import net.minecraft.server.v1_14_R1.EntitySelector; +import net.minecraft.server.v1_14_R1.EnumDirection.EnumAxis; +import net.minecraft.server.v1_14_R1.IBlockData; +import net.minecraft.server.v1_14_R1.IChatBaseComponent.ChatSerializer; +import net.minecraft.server.v1_14_R1.ICompletionProvider; +import net.minecraft.server.v1_14_R1.IRegistry; +import net.minecraft.server.v1_14_R1.ItemStack; +import net.minecraft.server.v1_14_R1.MinecraftKey; +import net.minecraft.server.v1_14_R1.MinecraftServer; +import net.minecraft.server.v1_14_R1.ParticleParam; +import net.minecraft.server.v1_14_R1.ParticleParamBlock; +import net.minecraft.server.v1_14_R1.ParticleParamItem; +import net.minecraft.server.v1_14_R1.ParticleParamRedstone; +import net.minecraft.server.v1_14_R1.ShapeDetectorBlock; +import net.minecraft.server.v1_14_R1.Vec2F; +import net.minecraft.server.v1_14_R1.Vec3D; /** * NMS implementation for Minecraft 1.14, 1.14.1 and 1.14.2 @@ -118,7 +201,7 @@ protected NamespacedKey fromMinecraftKey(MinecraftKey key) { @Override public ArgumentType _ArgumentAngle() { - throw new AngleArgumentException(); + throw new UnimplementedArgumentException("AngleArgument", "1.16.2"); } @Override @@ -279,7 +362,7 @@ public final ArgumentType _ArgumentScoreholder(ArgumentSubType subType) { @Override public ArgumentType _ArgumentSyntheticBiome() { - throw new BiomeArgumentException(); + throw new UnimplementedArgumentException("BiomeArgument", "1.16"); } @Override @@ -295,7 +378,7 @@ public ArgumentType _ArgumentTime() { @Override public ArgumentType _ArgumentUUID() { - throw new UUIDArgumentException(); + throw new UnimplementedArgumentException("UUIDArgument", "1.16"); } @Override @@ -382,7 +465,7 @@ public Component getAdventureChatComponent(CommandContext cmdCtx, String key) { - throw new AngleArgumentException(); + throw new UnimplementedArgumentException("AngleArgument", "1.16.2"); } @Override @@ -401,7 +484,7 @@ public EnumSet getAxis(CommandContext cmdCtx, Stri @Override public Object getBiome(CommandContext cmdCtx, String key, ArgumentSubType subType) throws CommandSyntaxException { - throw new BiomeArgumentException(); + throw new UnimplementedArgumentException("BiomeArgument", "1.16"); } @Override @@ -817,7 +900,7 @@ public int getTime(CommandContext cmdCtx, String key) { @Override public UUID getUUID(CommandContext cmdCtx, String key) { - throw new UUIDArgumentException(); + throw new UnimplementedArgumentException("UUIDArgument", "1.16"); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java index 05a40f1214..ad8a052054 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.15/src/main/java/dev/jorel/commandapi/nms/NMS_1_15.java @@ -1,46 +1,45 @@ package dev.jorel.commandapi.nms; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.commandsenders.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.exceptions.BiomeArgumentException; -import dev.jorel.commandapi.exceptions.UUIDArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.*; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_15_R1.*; -import net.minecraft.server.v1_15_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_15_R1.IChatBaseComponent.ChatSerializer; +import java.io.File; +import java.io.IOException; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Collection; +import java.util.EnumSet; +import java.util.HashSet; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; + +import org.bukkit.Axis; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Color; +import org.bukkit.Location; +import org.bukkit.NamespacedKey; +import org.bukkit.OfflinePlayer; import org.bukkit.Particle; -import org.bukkit.*; -import org.bukkit.World; import org.bukkit.Particle.DustOptions; +import org.bukkit.Sound; +import org.bukkit.World; import org.bukkit.World.Environment; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_15_R1.*; +import org.bukkit.craftbukkit.v1_15_R1.CraftLootTable; +import org.bukkit.craftbukkit.v1_15_R1.CraftParticle; +import org.bukkit.craftbukkit.v1_15_R1.CraftServer; +import org.bukkit.craftbukkit.v1_15_R1.CraftSound; +import org.bukkit.craftbukkit.v1_15_R1.CraftWorld; import org.bukkit.craftbukkit.v1_15_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_15_R1.command.VanillaCommandWrapper; import org.bukkit.craftbukkit.v1_15_R1.enchantments.CraftEnchantment; @@ -58,15 +57,101 @@ import org.bukkit.inventory.ComplexRecipe; import org.bukkit.potion.PotionEffectType; -import java.io.File; -import java.io.IOException; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.*; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; +import com.google.common.io.Files; +import com.google.gson.GsonBuilder; +import com.mojang.brigadier.Message; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; + +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.exceptions.UnimplementedArgumentException; +import dev.jorel.commandapi.preprocessor.Differs; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; +import dev.jorel.commandapi.wrappers.FloatRange; +import dev.jorel.commandapi.wrappers.FunctionWrapper; +import dev.jorel.commandapi.wrappers.IntegerRange; +import dev.jorel.commandapi.wrappers.Location2D; +import dev.jorel.commandapi.wrappers.MathOperation; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import dev.jorel.commandapi.wrappers.ParticleData; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.ScoreboardSlot; +import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_15_R1.Advancement; +import net.minecraft.server.v1_15_R1.ArgumentBlockPredicate; +import net.minecraft.server.v1_15_R1.ArgumentChat; +import net.minecraft.server.v1_15_R1.ArgumentChatComponent; +import net.minecraft.server.v1_15_R1.ArgumentChatFormat; +import net.minecraft.server.v1_15_R1.ArgumentCriterionValue; +import net.minecraft.server.v1_15_R1.ArgumentDimension; +import net.minecraft.server.v1_15_R1.ArgumentEnchantment; +import net.minecraft.server.v1_15_R1.ArgumentEntity; +import net.minecraft.server.v1_15_R1.ArgumentEntitySummon; +import net.minecraft.server.v1_15_R1.ArgumentItemPredicate; +import net.minecraft.server.v1_15_R1.ArgumentItemStack; +import net.minecraft.server.v1_15_R1.ArgumentMathOperation; +import net.minecraft.server.v1_15_R1.ArgumentMinecraftKeyRegistered; +import net.minecraft.server.v1_15_R1.ArgumentMobEffect; +import net.minecraft.server.v1_15_R1.ArgumentNBTTag; +import net.minecraft.server.v1_15_R1.ArgumentParticle; +import net.minecraft.server.v1_15_R1.ArgumentPosition; +import net.minecraft.server.v1_15_R1.ArgumentProfile; +import net.minecraft.server.v1_15_R1.ArgumentRegistry; +import net.minecraft.server.v1_15_R1.ArgumentRotation; +import net.minecraft.server.v1_15_R1.ArgumentRotationAxis; +import net.minecraft.server.v1_15_R1.ArgumentScoreboardCriteria; +import net.minecraft.server.v1_15_R1.ArgumentScoreboardObjective; +import net.minecraft.server.v1_15_R1.ArgumentScoreboardSlot; +import net.minecraft.server.v1_15_R1.ArgumentScoreboardTeam; +import net.minecraft.server.v1_15_R1.ArgumentScoreholder; +import net.minecraft.server.v1_15_R1.ArgumentTag; +import net.minecraft.server.v1_15_R1.ArgumentTile; +import net.minecraft.server.v1_15_R1.ArgumentTime; +import net.minecraft.server.v1_15_R1.ArgumentVec2; +import net.minecraft.server.v1_15_R1.ArgumentVec2I; +import net.minecraft.server.v1_15_R1.ArgumentVec3; +import net.minecraft.server.v1_15_R1.BlockPosition; +import net.minecraft.server.v1_15_R1.BlockPosition2D; +import net.minecraft.server.v1_15_R1.CommandListenerWrapper; +import net.minecraft.server.v1_15_R1.CompletionProviders; +import net.minecraft.server.v1_15_R1.CriterionConditionValue; +import net.minecraft.server.v1_15_R1.CustomFunction; +import net.minecraft.server.v1_15_R1.CustomFunctionData; +import net.minecraft.server.v1_15_R1.DimensionManager; +import net.minecraft.server.v1_15_R1.Entity; +import net.minecraft.server.v1_15_R1.EntityPlayer; +import net.minecraft.server.v1_15_R1.EntitySelector; +import net.minecraft.server.v1_15_R1.EnumDirection.EnumAxis; +import net.minecraft.server.v1_15_R1.IBlockData; +import net.minecraft.server.v1_15_R1.IChatBaseComponent.ChatSerializer; +import net.minecraft.server.v1_15_R1.ICompletionProvider; +import net.minecraft.server.v1_15_R1.IRecipe; +import net.minecraft.server.v1_15_R1.IRegistry; +import net.minecraft.server.v1_15_R1.ItemStack; +import net.minecraft.server.v1_15_R1.MinecraftKey; +import net.minecraft.server.v1_15_R1.MinecraftServer; +import net.minecraft.server.v1_15_R1.ParticleParam; +import net.minecraft.server.v1_15_R1.ParticleParamBlock; +import net.minecraft.server.v1_15_R1.ParticleParamItem; +import net.minecraft.server.v1_15_R1.ParticleParamRedstone; +import net.minecraft.server.v1_15_R1.ShapeDetectorBlock; +import net.minecraft.server.v1_15_R1.Vec2F; +import net.minecraft.server.v1_15_R1.Vec3D; /** * NMS implementation for Minecraft 1.15, 1.15.1 and 1.15.2 @@ -118,7 +203,7 @@ private static NamespacedKey fromMinecraftKey(MinecraftKey key) { @Override public ArgumentType _ArgumentAngle() { - throw new AngleArgumentException(); + throw new UnimplementedArgumentException("AngleArgument", "1.16.2"); } @Override @@ -278,7 +363,7 @@ public final ArgumentType _ArgumentScoreholder(ArgumentSubType subType) { @Override public ArgumentType _ArgumentSyntheticBiome() { - throw new BiomeArgumentException(); + throw new UnimplementedArgumentException("BiomeArgument", "1.16"); } @Override @@ -293,7 +378,7 @@ public ArgumentType _ArgumentTime() { @Override public ArgumentType _ArgumentUUID() { - throw new UUIDArgumentException(); + throw new UnimplementedArgumentException("UUIDArgument", "1.16"); } @Override @@ -379,7 +464,7 @@ public Component getAdventureChatComponent(CommandContext cmdCtx, String key) { - throw new AngleArgumentException(); + throw new UnimplementedArgumentException("AngleArgument", "1.16.2"); } @Override @@ -398,7 +483,7 @@ public EnumSet getAxis(CommandContext cmdCtx, Stri @Override public Object getBiome(CommandContext cmdCtx, String key, ArgumentSubType subType) throws CommandSyntaxException { - throw new BiomeArgumentException(); + throw new UnimplementedArgumentException("BiomeArgument", "1.16"); } @Override @@ -818,7 +903,7 @@ public int getTime(CommandContext cmdCtx, String key) { @Override public UUID getUUID(CommandContext cmdCtx, String key) { - throw new UUIDArgumentException(); + throw new UnimplementedArgumentException("UUIDArgument", "1.16"); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java index 5d51ac661f..5be690c1a0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-1.16.1/src/main/java/dev/jorel/commandapi/nms/NMS_1_16_R1.java @@ -1,38 +1,39 @@ package dev.jorel.commandapi.nms; -import com.google.common.io.Files; -import com.google.gson.GsonBuilder; -import com.mojang.brigadier.CommandDispatcher; -import com.mojang.brigadier.Message; -import com.mojang.brigadier.arguments.ArgumentType; -import com.mojang.brigadier.context.CommandContext; -import com.mojang.brigadier.exceptions.CommandSyntaxException; -import com.mojang.brigadier.suggestion.SuggestionProvider; -import com.mojang.brigadier.suggestion.Suggestions; -import dev.jorel.commandapi.CommandAPI; -import dev.jorel.commandapi.CommandAPIHandler; -import dev.jorel.commandapi.arguments.ArgumentSubType; -import dev.jorel.commandapi.arguments.SuggestionProviders; -import dev.jorel.commandapi.commandsenders.AbstractCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitCommandSender; -import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; -import dev.jorel.commandapi.exceptions.AngleArgumentException; -import dev.jorel.commandapi.preprocessor.Differs; -import dev.jorel.commandapi.preprocessor.NMSMeta; -import dev.jorel.commandapi.preprocessor.RequireField; -import dev.jorel.commandapi.wrappers.Rotation; -import dev.jorel.commandapi.wrappers.*; -import net.kyori.adventure.text.Component; -import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; -import net.md_5.bungee.api.chat.BaseComponent; -import net.md_5.bungee.chat.ComponentSerializer; -import net.minecraft.server.v1_16_R1.*; -import net.minecraft.server.v1_16_R1.EnumDirection.EnumAxis; -import net.minecraft.server.v1_16_R1.IChatBaseComponent.ChatSerializer; +import java.io.File; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.invoke.MethodHandles; +import java.lang.invoke.VarHandle; +import java.nio.charset.StandardCharsets; +import java.util.ArrayList; +import java.util.Collection; +import java.util.EnumSet; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.CompletableFuture; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.function.ToIntFunction; + +import org.bukkit.Axis; +import org.bukkit.Bukkit; +import org.bukkit.ChatColor; +import org.bukkit.Color; +import org.bukkit.Keyed; +import org.bukkit.Location; +import org.bukkit.NamespacedKey; +import org.bukkit.OfflinePlayer; import org.bukkit.Particle; -import org.bukkit.*; -import org.bukkit.World; import org.bukkit.Particle.DustOptions; +import org.bukkit.Sound; +import org.bukkit.World; import org.bukkit.World.Environment; import org.bukkit.block.Biome; import org.bukkit.block.Block; @@ -40,7 +41,11 @@ import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.SimpleCommandMap; -import org.bukkit.craftbukkit.v1_16_R1.*; +import org.bukkit.craftbukkit.v1_16_R1.CraftLootTable; +import org.bukkit.craftbukkit.v1_16_R1.CraftParticle; +import org.bukkit.craftbukkit.v1_16_R1.CraftServer; +import org.bukkit.craftbukkit.v1_16_R1.CraftSound; +import org.bukkit.craftbukkit.v1_16_R1.CraftWorld; import org.bukkit.craftbukkit.v1_16_R1.block.data.CraftBlockData; import org.bukkit.craftbukkit.v1_16_R1.command.VanillaCommandWrapper; import org.bukkit.craftbukkit.v1_16_R1.enchantments.CraftEnchantment; @@ -59,18 +64,107 @@ import org.bukkit.inventory.Recipe; import org.bukkit.potion.PotionEffectType; -import java.io.File; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.lang.invoke.MethodHandles; -import java.lang.invoke.VarHandle; -import java.nio.charset.StandardCharsets; -import java.util.*; -import java.util.concurrent.CompletableFuture; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.function.ToIntFunction; +import com.google.common.io.Files; +import com.google.gson.GsonBuilder; +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.Message; +import com.mojang.brigadier.arguments.ArgumentType; +import com.mojang.brigadier.context.CommandContext; +import com.mojang.brigadier.exceptions.CommandSyntaxException; +import com.mojang.brigadier.suggestion.SuggestionProvider; +import com.mojang.brigadier.suggestion.Suggestions; + +import dev.jorel.commandapi.CommandAPI; +import dev.jorel.commandapi.CommandAPIHandler; +import dev.jorel.commandapi.arguments.ArgumentSubType; +import dev.jorel.commandapi.arguments.SuggestionProviders; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.exceptions.UnimplementedArgumentException; +import dev.jorel.commandapi.preprocessor.Differs; +import dev.jorel.commandapi.preprocessor.NMSMeta; +import dev.jorel.commandapi.preprocessor.RequireField; +import dev.jorel.commandapi.wrappers.ComplexRecipeImpl; +import dev.jorel.commandapi.wrappers.FloatRange; +import dev.jorel.commandapi.wrappers.FunctionWrapper; +import dev.jorel.commandapi.wrappers.IntegerRange; +import dev.jorel.commandapi.wrappers.Location2D; +import dev.jorel.commandapi.wrappers.MathOperation; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; +import dev.jorel.commandapi.wrappers.ParticleData; +import dev.jorel.commandapi.wrappers.Rotation; +import dev.jorel.commandapi.wrappers.ScoreboardSlot; +import dev.jorel.commandapi.wrappers.SimpleFunctionWrapper; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.chat.ComponentSerializer; +import net.minecraft.server.v1_16_R1.Advancement; +import net.minecraft.server.v1_16_R1.ArgumentBlockPredicate; +import net.minecraft.server.v1_16_R1.ArgumentChat; +import net.minecraft.server.v1_16_R1.ArgumentChatComponent; +import net.minecraft.server.v1_16_R1.ArgumentChatFormat; +import net.minecraft.server.v1_16_R1.ArgumentCriterionValue; +import net.minecraft.server.v1_16_R1.ArgumentDimension; +import net.minecraft.server.v1_16_R1.ArgumentEnchantment; +import net.minecraft.server.v1_16_R1.ArgumentEntity; +import net.minecraft.server.v1_16_R1.ArgumentEntitySummon; +import net.minecraft.server.v1_16_R1.ArgumentItemPredicate; +import net.minecraft.server.v1_16_R1.ArgumentItemStack; +import net.minecraft.server.v1_16_R1.ArgumentMathOperation; +import net.minecraft.server.v1_16_R1.ArgumentMinecraftKeyRegistered; +import net.minecraft.server.v1_16_R1.ArgumentMobEffect; +import net.minecraft.server.v1_16_R1.ArgumentNBTTag; +import net.minecraft.server.v1_16_R1.ArgumentParticle; +import net.minecraft.server.v1_16_R1.ArgumentPosition; +import net.minecraft.server.v1_16_R1.ArgumentProfile; +import net.minecraft.server.v1_16_R1.ArgumentRegistry; +import net.minecraft.server.v1_16_R1.ArgumentRotation; +import net.minecraft.server.v1_16_R1.ArgumentRotationAxis; +import net.minecraft.server.v1_16_R1.ArgumentScoreboardCriteria; +import net.minecraft.server.v1_16_R1.ArgumentScoreboardObjective; +import net.minecraft.server.v1_16_R1.ArgumentScoreboardSlot; +import net.minecraft.server.v1_16_R1.ArgumentScoreboardTeam; +import net.minecraft.server.v1_16_R1.ArgumentScoreholder; +import net.minecraft.server.v1_16_R1.ArgumentTag; +import net.minecraft.server.v1_16_R1.ArgumentTile; +import net.minecraft.server.v1_16_R1.ArgumentTime; +import net.minecraft.server.v1_16_R1.ArgumentUUID; +import net.minecraft.server.v1_16_R1.ArgumentVec2; +import net.minecraft.server.v1_16_R1.ArgumentVec2I; +import net.minecraft.server.v1_16_R1.ArgumentVec3; +import net.minecraft.server.v1_16_R1.BlockPosition; +import net.minecraft.server.v1_16_R1.BlockPosition2D; +import net.minecraft.server.v1_16_R1.CommandListenerWrapper; +import net.minecraft.server.v1_16_R1.CompletionProviders; +import net.minecraft.server.v1_16_R1.CriterionConditionValue; +import net.minecraft.server.v1_16_R1.CustomFunction; +import net.minecraft.server.v1_16_R1.CustomFunctionData; +import net.minecraft.server.v1_16_R1.CustomFunctionManager; +import net.minecraft.server.v1_16_R1.DataPackResources; +import net.minecraft.server.v1_16_R1.Entity; +import net.minecraft.server.v1_16_R1.EntityPlayer; +import net.minecraft.server.v1_16_R1.EntitySelector; +import net.minecraft.server.v1_16_R1.EnumDirection.EnumAxis; +import net.minecraft.server.v1_16_R1.IBlockData; +import net.minecraft.server.v1_16_R1.IChatBaseComponent.ChatSerializer; +import net.minecraft.server.v1_16_R1.ICompletionProvider; +import net.minecraft.server.v1_16_R1.IRecipe; +import net.minecraft.server.v1_16_R1.IRegistry; +import net.minecraft.server.v1_16_R1.IReloadableResourceManager; +import net.minecraft.server.v1_16_R1.ItemStack; +import net.minecraft.server.v1_16_R1.MinecraftKey; +import net.minecraft.server.v1_16_R1.MinecraftServer; +import net.minecraft.server.v1_16_R1.ParticleParam; +import net.minecraft.server.v1_16_R1.ParticleParamBlock; +import net.minecraft.server.v1_16_R1.ParticleParamItem; +import net.minecraft.server.v1_16_R1.ParticleParamRedstone; +import net.minecraft.server.v1_16_R1.ShapeDetectorBlock; +import net.minecraft.server.v1_16_R1.SystemUtils; +import net.minecraft.server.v1_16_R1.Unit; +import net.minecraft.server.v1_16_R1.Vec2F; +import net.minecraft.server.v1_16_R1.Vec3D; /** * NMS implementation for Minecraft 1.16.1 @@ -129,7 +223,7 @@ private static NamespacedKey fromMinecraftKey(MinecraftKey key) { @Override public ArgumentType _ArgumentAngle() { - throw new AngleArgumentException(); + throw new UnimplementedArgumentException("AngleArgument", "1.16.2"); } @Override @@ -393,7 +487,7 @@ public Component getAdventureChatComponent(CommandContext cmdCtx, String key) { - throw new AngleArgumentException(); + throw new UnimplementedArgumentException("AngleArgument", "1.16.2"); } @Override diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java index fd0e4b8de8..7fa9f45986 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/java/dev/jorel/commandapi/AdvancedConverter.java @@ -20,21 +20,70 @@ *******************************************************************************/ package dev.jorel.commandapi; -import de.tr7zw.changeme.nbtapi.NBTContainer; -import dev.jorel.commandapi.arguments.*; -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType; -import dev.jorel.commandapi.exceptions.InvalidNumberException; -import dev.jorel.commandapi.exceptions.UnknownArgumentException; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; -import org.bukkit.plugin.java.JavaPlugin; - import java.util.ArrayList; -import java.util.Collection; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.bukkit.plugin.java.JavaPlugin; + +import de.tr7zw.changeme.nbtapi.NBTContainer; +import dev.jorel.commandapi.arguments.AdvancementArgument; +import dev.jorel.commandapi.arguments.AdventureChatArgument; +import dev.jorel.commandapi.arguments.AdventureChatComponentArgument; +import dev.jorel.commandapi.arguments.AngleArgument; +import dev.jorel.commandapi.arguments.Argument; +import dev.jorel.commandapi.arguments.AxisArgument; +import dev.jorel.commandapi.arguments.BiomeArgument; +import dev.jorel.commandapi.arguments.BlockPredicateArgument; +import dev.jorel.commandapi.arguments.BlockStateArgument; +import dev.jorel.commandapi.arguments.BooleanArgument; +import dev.jorel.commandapi.arguments.ChatArgument; +import dev.jorel.commandapi.arguments.ChatColorArgument; +import dev.jorel.commandapi.arguments.ChatComponentArgument; +import dev.jorel.commandapi.arguments.CommandAPIArgumentType; +import dev.jorel.commandapi.arguments.CommandArgument; +import dev.jorel.commandapi.arguments.DoubleArgument; +import dev.jorel.commandapi.arguments.EnchantmentArgument; +import dev.jorel.commandapi.arguments.EntitySelectorArgument; +import dev.jorel.commandapi.arguments.EntityTypeArgument; +import dev.jorel.commandapi.arguments.EnvironmentArgument; +import dev.jorel.commandapi.arguments.FloatArgument; +import dev.jorel.commandapi.arguments.FloatRangeArgument; +import dev.jorel.commandapi.arguments.FunctionArgument; +import dev.jorel.commandapi.arguments.GreedyStringArgument; +import dev.jorel.commandapi.arguments.IntegerArgument; +import dev.jorel.commandapi.arguments.IntegerRangeArgument; +import dev.jorel.commandapi.arguments.ItemStackArgument; +import dev.jorel.commandapi.arguments.ItemStackPredicateArgument; +import dev.jorel.commandapi.arguments.Location2DArgument; +import dev.jorel.commandapi.arguments.LocationArgument; +import dev.jorel.commandapi.arguments.LocationType; +import dev.jorel.commandapi.arguments.LongArgument; +import dev.jorel.commandapi.arguments.LootTableArgument; +import dev.jorel.commandapi.arguments.MathOperationArgument; +import dev.jorel.commandapi.arguments.MultiLiteralArgument; +import dev.jorel.commandapi.arguments.NBTCompoundArgument; +import dev.jorel.commandapi.arguments.NamespacedKeyArgument; +import dev.jorel.commandapi.arguments.ObjectiveArgument; +import dev.jorel.commandapi.arguments.ObjectiveCriteriaArgument; +import dev.jorel.commandapi.arguments.OfflinePlayerArgument; +import dev.jorel.commandapi.arguments.ParticleArgument; +import dev.jorel.commandapi.arguments.PlayerArgument; +import dev.jorel.commandapi.arguments.PotionEffectArgument; +import dev.jorel.commandapi.arguments.RecipeArgument; +import dev.jorel.commandapi.arguments.RotationArgument; +import dev.jorel.commandapi.arguments.ScoreHolderArgument; +import dev.jorel.commandapi.arguments.ScoreboardSlotArgument; +import dev.jorel.commandapi.arguments.SoundArgument; +import dev.jorel.commandapi.arguments.StringArgument; +import dev.jorel.commandapi.arguments.TeamArgument; +import dev.jorel.commandapi.arguments.TextArgument; +import dev.jorel.commandapi.arguments.TimeArgument; +import dev.jorel.commandapi.arguments.UUIDArgument; +import dev.jorel.commandapi.exceptions.InvalidNumberException; +import dev.jorel.commandapi.exceptions.UnknownArgumentException; + /** * A command parsing system that converts string arguments into something way * more useful @@ -198,9 +247,9 @@ private Argument parseDefinedArgumentType(String argumentType, String nodeNam case CHAT_COMPONENT -> new ChatComponentArgument(nodeName); case COMMAND -> new CommandArgument(nodeName); case ENCHANTMENT -> new EnchantmentArgument(nodeName); - case ENTITY_SELECTOR -> new EntitySelectorArgument(nodeName, EntitySelector.ONE_ENTITY); + case ENTITY_SELECTOR -> new EntitySelectorArgument.OneEntity(nodeName); case ENTITY_TYPE -> new EntityTypeArgument(nodeName); - case ENVIRONMENT -> new EnvironmentArgument(nodeName); + // Byeeeeeeee~ case ENVIRONMENT -> new EnvironmentArgument(nodeName); case FLOAT_RANGE -> new FloatRangeArgument(nodeName); case FUNCTION -> new FunctionArgument(nodeName); case INT_RANGE -> new IntegerRangeArgument(nodeName); @@ -221,7 +270,7 @@ private Argument parseDefinedArgumentType(String argumentType, String nodeNam case RECIPE -> new RecipeArgument(nodeName); case ROTATION -> new RotationArgument(nodeName); case SCOREBOARD_SLOT -> new ScoreboardSlotArgument(nodeName); - case SCORE_HOLDER -> new ScoreHolderArgument(nodeName, ScoreHolderType.SINGLE); + case SCORE_HOLDER -> new ScoreHolderArgument.Single(nodeName); case SOUND -> new SoundArgument(nodeName); case TEAM -> new TeamArgument(nodeName); case TIME -> new TimeArgument(nodeName); @@ -257,10 +306,10 @@ private Argument parseArgument(String argument) throws UnknownArgumentExcepti } else { // We have a few edge cases to handle return switch (argumentType) { - case "api:entity" -> new EntitySelectorArgument(nodeName, EntitySelector.ONE_ENTITY); - case "api:entities" -> new EntitySelectorArgument>(nodeName, EntitySelector.MANY_ENTITIES); - case "api:player" -> new EntitySelectorArgument(nodeName, EntitySelector.ONE_PLAYER); - case "api:players" -> new EntitySelectorArgument>(nodeName, EntitySelector.MANY_PLAYERS); + case "api:entity" -> new EntitySelectorArgument.OneEntity(nodeName); + case "api:entities" -> new EntitySelectorArgument.ManyEntities(nodeName); + case "api:player" -> new EntitySelectorArgument.OnePlayer(nodeName); + case "api:players" -> new EntitySelectorArgument.ManyPlayers(nodeName); case "minecraft:vec3" -> new LocationArgument(nodeName, LocationType.PRECISE_POSITION); case "minecraft:vec2" -> new Location2DArgument(nodeName, LocationType.PRECISE_POSITION); default -> parseDefinedArgumentType(argumentType, nodeName); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt index 3ff6fe72fb..24b5c2b03e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt +++ b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt @@ -70,12 +70,6 @@ inline fun CommandAPICommand.adventureChatComponentArgument(nodeName: String, bl inline fun CommandAPICommand.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AdventureChatArgument(nodeName).apply(block)) // Entity & Player arguments -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("entitySelectorArgumentOneEntity(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandAPICommand.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntitySelectorArgument(nodeName).apply(block)) - -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("entitySelectorArgumentManyEntities(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandAPICommand.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntitySelectorArgument(nodeName, entitySelector).apply(block)) - inline fun CommandAPICommand.entitySelectorArgumentOneEntity(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntitySelectorArgument.OneEntity(nodeName).apply(block)) inline fun CommandAPICommand.entitySelectorArgumentManyEntities(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntitySelectorArgument.ManyEntities(nodeName).apply(block)) inline fun CommandAPICommand.entitySelectorArgumentOnePlayer(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntitySelectorArgument.OnePlayer(nodeName).apply(block)) @@ -85,15 +79,8 @@ inline fun CommandAPICommand.offlinePlayerArgument(nodeName: String, block: Argu inline fun CommandAPICommand.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EntityTypeArgument(nodeName).apply(block)) // Scoreboard arguments -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("scoreHolderArgument(nodeName, single)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandAPICommand.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ScoreHolderArgument(nodeName).apply(block)) - -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("scoreHolderArgument(nodeName, single)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandAPICommand.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) - -inline fun CommandAPICommand.scoreHolderArgument(nodeName: String, single: Boolean, block: Argument<*>.() -> Unit = {}): CommandAPICommand = - if (single) withArguments(ScoreHolderArgument.Single(nodeName).apply(block)) else withArguments(ScoreHolderArgument.Multiple(nodeName).apply(block)) - +inline fun CommandAPICommand.scoreHolderArgumentSingle(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ScoreHolderArgument.Single(nodeName).apply(block)) +inline fun CommandAPICommand.scoreHolderArgumentMultiple(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ScoreHolderArgument.Multiple(nodeName).apply(block)) inline fun CommandAPICommand.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ScoreboardSlotArgument(nodeName).apply(block)) inline fun CommandAPICommand.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ObjectiveArgument(nodeName).apply(block)) inline fun CommandAPICommand.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ObjectiveCriteriaArgument(nodeName).apply(block)) @@ -103,9 +90,6 @@ inline fun CommandAPICommand.teamArgument(nodeName: String, block: Argument<*>.( inline fun CommandAPICommand.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AngleArgument(nodeName).apply(block)) inline fun CommandAPICommand.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(AdvancementArgument(nodeName).apply(block)) -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("biomeArgument(nodeName, useNamespacedKey)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandAPICommand.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(BiomeArgument(nodeName).apply(block)) - inline fun CommandAPICommand.biomeArgument(nodeName: String, useNamespacedKey: Boolean, block: Argument<*>.() -> Unit = {}): CommandAPICommand = if (useNamespacedKey) withArguments(BiomeArgument.NamespacedKey(nodeName).apply(block)) else withArguments(BiomeArgument(nodeName).apply(block)) @@ -113,9 +97,6 @@ inline fun CommandAPICommand.blockStateArgument(nodeName: String, block: Argumen inline fun CommandAPICommand.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(CommandArgument(nodeName).apply(block)) inline fun CommandAPICommand.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EnchantmentArgument(nodeName).apply(block)) -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("worldArgument(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandAPICommand.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(EnvironmentArgument(nodeName).apply(block)) - inline fun CommandAPICommand.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(ItemStackArgument(nodeName).apply(block)) inline fun CommandAPICommand.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(LootTableArgument(nodeName).apply(block)) inline fun CommandAPICommand.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(MathOperationArgument(nodeName).apply(block)) @@ -124,9 +105,6 @@ inline fun CommandAPICommand.particleArgument(nodeName: String, block: Argument< inline fun CommandAPICommand.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(PotionEffectArgument(nodeName).apply(block)) inline fun CommandAPICommand.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(RecipeArgument(nodeName).apply(block)) -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("soundArgument(nodeName, useNamespacedKey)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandAPICommand.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(SoundArgument(nodeName).apply(block)) - inline fun CommandAPICommand.soundArgument(nodeName: String, useNamespacedKey: Boolean, block: Argument<*>.() -> Unit = {}): CommandAPICommand = if (useNamespacedKey) withArguments(SoundArgument.NamespacedKey(nodeName).apply(block)) else withArguments(SoundArgument(nodeName).apply(block)) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt index 8e02d521d9..85e89c3a84 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt +++ b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt @@ -2,7 +2,6 @@ package dev.jorel.commandapi.kotlindsl import dev.jorel.commandapi.* import dev.jorel.commandapi.arguments.* -import dev.jorel.commandapi.arguments.ScoreHolderArgument.ScoreHolderType import dev.jorel.commandapi.executors.* import dev.jorel.commandapi.wrappers.NativeProxyCommandSender import org.bukkit.command.BlockCommandSender @@ -65,12 +64,6 @@ inline fun CommandTree.adventureChatComponentArgument(nodeName: String, block: A inline fun CommandTree.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdventureChatArgument(nodeName).apply(block)) // Entity & Player arguments -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("entitySelectorArgumentOneEntity(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandTree.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName).apply(block)) - -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("entitySelectorArgumentManyEntities(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandTree.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) - inline fun CommandTree.entitySelectorArgumentOneEntity(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument.OneEntity(nodeName).apply(block)) inline fun CommandTree.entitySelectorArgumentManyEntities(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument.ManyEntities(nodeName).apply(block)) inline fun CommandTree.entitySelectorArgumentOnePlayer(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntitySelectorArgument.OnePlayer(nodeName).apply(block)) @@ -80,15 +73,8 @@ inline fun CommandTree.offlinePlayerArgument(nodeName: String, block: Argument<* inline fun CommandTree.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EntityTypeArgument(nodeName).apply(block)) // Scoreboard arguments -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("scoreHolderArgument(nodeName, single)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandTree.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName).apply(block)) - -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("scoreHolderArgument(nodeName, single)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandTree.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) - -inline fun CommandTree.scoreHolderArgument(nodeName: String, single: Boolean, block: Argument<*>.() -> Unit = {}): CommandTree = - if (single) then(ScoreHolderArgument.Single(nodeName).apply(block)) else then(ScoreHolderArgument.Multiple(nodeName).apply(block)) - +inline fun CommandTree.scoreHolderArgumentSingle(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument.Single(nodeName).apply(block)) +inline fun CommandTree.scoreHolderArgumentMultiple(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreHolderArgument.Multiple(nodeName).apply(block)) inline fun CommandTree.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ScoreboardSlotArgument(nodeName).apply(block)) inline fun CommandTree.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ObjectiveArgument(nodeName).apply(block)) inline fun CommandTree.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ObjectiveCriteriaArgument(nodeName).apply(block)) @@ -98,9 +84,6 @@ inline fun CommandTree.teamArgument(nodeName: String, block: Argument<*>.() -> U inline fun CommandTree.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AngleArgument(nodeName).apply(block)) inline fun CommandTree.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(AdvancementArgument(nodeName).apply(block)) -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("biomeArgument(nodeName, useNamespacedKey)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandTree.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(BiomeArgument(nodeName).apply(block)) - inline fun CommandTree.biomeArgument(nodeName: String, useNamespacedKey: Boolean, block: Argument<*>.() -> Unit = {}): CommandTree = if (useNamespacedKey) then(BiomeArgument.NamespacedKey(nodeName).apply(block)) else then(BiomeArgument(nodeName).apply(block)) @@ -108,9 +91,6 @@ inline fun CommandTree.blockStateArgument(nodeName: String, block: Argument<*>.( inline fun CommandTree.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(CommandArgument(nodeName).apply(block)) inline fun CommandTree.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EnchantmentArgument(nodeName).apply(block)) -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("worldArgument(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandTree.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(EnvironmentArgument(nodeName).apply(block)) - inline fun CommandTree.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(ItemStackArgument(nodeName).apply(block)) inline fun CommandTree.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(LootTableArgument(nodeName).apply(block)) inline fun CommandTree.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(MathOperationArgument(nodeName).apply(block)) @@ -119,9 +99,6 @@ inline fun CommandTree.particleArgument(nodeName: String, block: Argument<*>.() inline fun CommandTree.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(PotionEffectArgument(nodeName).apply(block)) inline fun CommandTree.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(RecipeArgument(nodeName).apply(block)) -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("soundArgument(nodeName, useNamespacedKey)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun CommandTree.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): CommandTree = then(SoundArgument(nodeName).apply(block)) - inline fun CommandTree.soundArgument(nodeName: String, useNamespacedKey: Boolean, block: Argument<*>.() -> Unit = {}): CommandTree = if (useNamespacedKey) then(SoundArgument.NamespacedKey(nodeName).apply(block)) else then(SoundArgument(nodeName).apply(block)) @@ -190,12 +167,6 @@ inline fun Argument<*>.adventureChatComponentArgument(nodeName: String, block: A inline fun Argument<*>.adventureChatArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdventureChatArgument(nodeName).apply(block)) // Entity & Player arguments -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("entitySelectorArgumentOneEntity(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun Argument<*>.entitySelectorArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument(nodeName).apply(block)) - -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("entitySelectorArgumentManyEntities(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun Argument<*>.entitySelectorArgument(nodeName: String, entitySelector: T, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument(nodeName, entitySelector).apply(block)) - inline fun Argument<*>.entitySelectorArgumentOneEntity(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument.OneEntity(nodeName).apply(block)) inline fun Argument<*>.entitySelectorArgumentManyEntities(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument.ManyEntities(nodeName).apply(block)) inline fun Argument<*>.entitySelectorArgumentOnePlayer(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntitySelectorArgument.OnePlayer(nodeName).apply(block)) @@ -205,15 +176,8 @@ inline fun Argument<*>.offlinePlayerArgument(nodeName: String, block: Argument<* inline fun Argument<*>.entityTypeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EntityTypeArgument(nodeName).apply(block)) // Scoreboard arguments -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("scoreHolderArgument(nodeName, single)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun Argument<*>.scoreHolderArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument(nodeName).apply(block)) - -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("scoreHolderArgument(nodeName, single)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun Argument<*>.scoreHolderArgument(nodeName: String, scoreHolderType: T, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument(nodeName, scoreHolderType).apply(block)) - -inline fun Argument<*>.scoreHolderArgument(nodeName: String, single: Boolean, block: Argument<*>.() -> Unit = {}): Argument<*> = - if (single) then(ScoreHolderArgument.Single(nodeName).apply(block)) else then(ScoreHolderArgument.Multiple(nodeName).apply(block)) - +inline fun Argument<*>.scoreHolderArgumentSingle(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument.Single(nodeName).apply(block)) +inline fun Argument<*>.scoreHolderArgumentMultiple(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreHolderArgument.Multiple(nodeName).apply(block)) inline fun Argument<*>.scoreboardSlotArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ScoreboardSlotArgument(nodeName).apply(block)) inline fun Argument<*>.objectiveArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ObjectiveArgument(nodeName).apply(block)) inline fun Argument<*>.objectiveCriteriaArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ObjectiveCriteriaArgument(nodeName).apply(block)) @@ -223,9 +187,6 @@ inline fun Argument<*>.teamArgument(nodeName: String, block: Argument<*>.() -> U inline fun Argument<*>.angleArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AngleArgument(nodeName).apply(block)) inline fun Argument<*>.advancementArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(AdvancementArgument(nodeName).apply(block)) -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("biomeArgument(nodeName, useNamespacedKey)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun Argument<*>.biomeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(BiomeArgument(nodeName).apply(block)) - inline fun Argument<*>.biomeArgument(nodeName: String, useNamespacedKey: Boolean, block: Argument<*>.() -> Unit = {}): Argument<*> = if (useNamespacedKey) then(BiomeArgument.NamespacedKey(nodeName).apply(block)) else then(BiomeArgument(nodeName).apply(block)) @@ -233,9 +194,6 @@ inline fun Argument<*>.blockStateArgument(nodeName: String, block: Argument<*>.( inline fun Argument<*>.commandArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(CommandArgument(nodeName).apply(block)) inline fun Argument<*>.enchantmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EnchantmentArgument(nodeName).apply(block)) -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("worldArgument(nodeName)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun Argument<*>.environmentArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(EnvironmentArgument(nodeName).apply(block)) - inline fun Argument<*>.itemStackArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(ItemStackArgument(nodeName).apply(block)) inline fun Argument<*>.lootTableArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(LootTableArgument(nodeName).apply(block)) inline fun Argument<*>.mathOperationArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(MathOperationArgument(nodeName).apply(block)) @@ -244,9 +202,6 @@ inline fun Argument<*>.particleArgument(nodeName: String, block: Argument<*>.() inline fun Argument<*>.potionEffectArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(PotionEffectArgument(nodeName).apply(block)) inline fun Argument<*>.recipeArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(RecipeArgument(nodeName).apply(block)) -@Deprecated("This method has been deprecated since version 8.7.0", ReplaceWith("soundArgument(nodeName, useNamespacedKey)", "dev.jorel.commandapi.kotlindsl.*"), DeprecationLevel.WARNING) -inline fun Argument<*>.soundArgument(nodeName: String, block: Argument<*>.() -> Unit = {}): Argument<*> = then(SoundArgument(nodeName).apply(block)) - inline fun Argument<*>.soundArgument(nodeName: String, useNamespacedKey: Boolean, block: Argument<*>.() -> Unit = {}): Argument<*> = if (useNamespacedKey) then(SoundArgument.NamespacedKey(nodeName).apply(block)) else then(SoundArgument(nodeName).apply(block)) From f498d6b4c8f3dfcefd878252d67648a60e28be7d Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Tue, 13 Dec 2022 13:08:36 +0000 Subject: [PATCH 157/638] Update plugin.yml authors accordingly --- .../src/main/resources/plugin.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/resources/plugin.yml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/resources/plugin.yml index 8106eb322a..b0c1af7912 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/resources/plugin.yml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/src/main/resources/plugin.yml @@ -2,7 +2,11 @@ name: CommandAPI main: dev.jorel.commandapi.CommandAPIMain version: ${project.version} description: An API to use Minecraft 1.13s new command UI -author: Skepter +authors: + - Skepter + - Will Kroboth + - DerEchtePilz website: https://www.jorel.dev/CommandAPI/ -softdepend: [NBTAPI] -api-version: 1.13 \ No newline at end of file +softdepend: + - NBTAPI +api-version: 1.13 From 458288f2d95307936e98eddf9842b07707c35a55 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Wed, 14 Dec 2022 13:13:45 +0000 Subject: [PATCH 158/638] Update build paths for CommandAPI bukkit plugin --- .github/workflows/build.yml | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index df3958184b..275e08dcb4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,34 +27,16 @@ jobs: distribution: temurin java-version: ${{ matrix.java }} cache: maven - - name: build CommandAPI using maven + - name: build CommandAPI (Bukkit) using maven run: mvn clean install --batch-mode -PPlatform.Bukkit - - name: CommandAPI plugin artifact + - name: CommandAPI (Bukkit) plugin artifact if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS uses: actions/upload-artifact@v2 with: name: CommandAPI (plugin) path: | - commandapi-plugin/target/CommandAPI*.jar - !commandapi-plugin/target/*sources.jar - !commandapi-plugin/target/*javadoc.jar - - name: CommandAPI core artifact - if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS - uses: actions/upload-artifact@v2 - with: - name: CommandAPI (core) - path: | - commandapi-core/target/CommandAPI*.jar - !commandapi-core/target/*sources.jar - !commandapi-core/target/*javadoc.jar - - name: CommandAPI shade artifact - if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS - uses: actions/upload-artifact@v2 - with: - name: CommandAPI (shade) - path: | - commandapi-shade/target/CommandAPI*.jar - !commandapi-shade/target/*sources.jar - !commandapi-shade/target/*javadoc.jar + commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/target/CommandAPI*.jar + !commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/target/*sources.jar + !commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/target/*javadoc.jar - name: build CommandAPI examples in examples/ run: cd ./examples; ./build.sh; From c703f69622fa930b1b8897cb8a3fa3ee25085c96 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Wed, 14 Dec 2022 13:27:03 +0000 Subject: [PATCH 159/638] Adds Markdown Linter to build script I just hope this works, I have no clue --- .github/workflows/build.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 275e08dcb4..d0d5242724 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,7 +4,7 @@ # against bad commits. name: build -on: [push] +on: [push, pull_request] jobs: build: @@ -40,3 +40,7 @@ jobs: !commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin/target/*javadoc.jar - name: build CommandAPI examples in examples/ run: cd ./examples; ./build.sh; + - name: docssrc markdown linter + uses: DavidAnson/markdownlint-cli2-action@v8 + with: + globs: 'docssrc/src/*.md' From f7834c66203300ea0159165d8f90e7635f1143a8 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Wed, 14 Dec 2022 13:28:08 +0000 Subject: [PATCH 160/638] Update upload-artifact to v3 --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d0d5242724..71e82b4c28 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,7 +31,7 @@ jobs: run: mvn clean install --batch-mode -PPlatform.Bukkit - name: CommandAPI (Bukkit) plugin artifact if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: CommandAPI (plugin) path: | From d2124961fee84f4b0984f42bd0b9596ed39ed6e5 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 14 Dec 2022 10:03:36 -0500 Subject: [PATCH 161/638] Fix some errors and warnings in the examples --- .../java/io/github/jorelali/BetterBossBarsCommand.java | 7 +++---- .../src/main/kotlin/io/github/jorelali/SayHelloCommand.kt | 2 +- examples/bukkit/maven/pom.xml | 1 + 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/bukkit/commandtrees/src/main/java/io/github/jorelali/BetterBossBarsCommand.java b/examples/bukkit/commandtrees/src/main/java/io/github/jorelali/BetterBossBarsCommand.java index 9da146f1a4..f4f3cab4ee 100644 --- a/examples/bukkit/commandtrees/src/main/java/io/github/jorelali/BetterBossBarsCommand.java +++ b/examples/bukkit/commandtrees/src/main/java/io/github/jorelali/BetterBossBarsCommand.java @@ -21,7 +21,6 @@ import dev.jorel.commandapi.CommandTree; import dev.jorel.commandapi.arguments.BooleanArgument; import dev.jorel.commandapi.arguments.ChatComponentArgument; -import dev.jorel.commandapi.arguments.EntitySelector; import dev.jorel.commandapi.arguments.EntitySelectorArgument; import dev.jorel.commandapi.arguments.IntegerArgument; import dev.jorel.commandapi.arguments.LiteralArgument; @@ -61,7 +60,7 @@ public void registerBetterBossBarCommand() { .then(new LiteralArgument("set") .then(new NamespacedKeyArgument("id") .then(new LiteralArgument("players") - .then(new EntitySelectorArgument>("targets", EntitySelector.MANY_PLAYERS) + .then(new EntitySelectorArgument.ManyPlayers("targets") .executes(this::setPlayers) ) ) @@ -139,7 +138,7 @@ private void setStyle(CommandSender sender, Object[] args) throws WrapperCommand case "notched_12" -> BarStyle.SEGMENTED_12; case "notched_20" -> BarStyle.SEGMENTED_20; case "progress" -> BarStyle.SOLID; - default -> throw CommandAPI.fail(style + " is an invalid bossbar style"); + default -> throw CommandAPI.failWithString(style + " is an invalid bossbar style"); }); } @@ -206,7 +205,7 @@ private void addBossbar(CommandSender sender, Object[] args) { } private void list(CommandSender sender, Object[] args) { - Iterable bossBars = () -> Bukkit.getBossBars(); + Iterable bossBars = Bukkit::getBossBars; sender.sendMessage("List of custom bossbars: " + StreamSupport .stream(bossBars.spliterator(), false) diff --git a/examples/bukkit/kotlindsl/src/main/kotlin/io/github/jorelali/SayHelloCommand.kt b/examples/bukkit/kotlindsl/src/main/kotlin/io/github/jorelali/SayHelloCommand.kt index cbe9ac2eaf..0259cf8b97 100644 --- a/examples/bukkit/kotlindsl/src/main/kotlin/io/github/jorelali/SayHelloCommand.kt +++ b/examples/bukkit/kotlindsl/src/main/kotlin/io/github/jorelali/SayHelloCommand.kt @@ -17,7 +17,7 @@ class SayHelloCommand { commandAPICommand("suicide") { literalArgument("confirm") - playerExecutor { player, args -> + playerExecutor { player, _ -> player.health = 0.0 } } diff --git a/examples/bukkit/maven/pom.xml b/examples/bukkit/maven/pom.xml index 89edf12fd0..2311334eea 100644 --- a/examples/bukkit/maven/pom.xml +++ b/examples/bukkit/maven/pom.xml @@ -47,6 +47,7 @@ org.apache.maven.plugins maven-compiler-plugin + 3.10.1 8 8 From 1a57017d81117316fa9d46b1def3ac20f5ca63d8 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 14 Dec 2022 10:08:41 -0500 Subject: [PATCH 162/638] Fix use of deprecated CommandAPI#fail in Examples.kt --- .../kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt index 2945fa27bc..cb68929245 100644 --- a/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt +++ b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt @@ -1166,7 +1166,7 @@ CommandAPICommand("getfruit") // Do something with inputFruit } else { // The sender's input is not in the list of fruit - throw CommandAPI.fail("That fruit doesn't exist!") + throw CommandAPI.failWithString("That fruit doesn't exist!") } }) .register() From e8b82d4f6f261a49138463260427cd3ff9b564f8 Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 14 Dec 2022 10:19:46 -0500 Subject: [PATCH 163/638] Make all examples compile with Java 16 --- examples/bukkit/maven-annotations/pom.xml | 3 +-- examples/bukkit/maven/pom.xml | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/examples/bukkit/maven-annotations/pom.xml b/examples/bukkit/maven-annotations/pom.xml index d8784703d0..a0f34ac2bd 100644 --- a/examples/bukkit/maven-annotations/pom.xml +++ b/examples/bukkit/maven-annotations/pom.xml @@ -66,8 +66,7 @@ 8.5.1 - 8 - 8 + 16 diff --git a/examples/bukkit/maven/pom.xml b/examples/bukkit/maven/pom.xml index 2311334eea..331758f3f4 100644 --- a/examples/bukkit/maven/pom.xml +++ b/examples/bukkit/maven/pom.xml @@ -49,8 +49,7 @@ maven-compiler-plugin 3.10.1 - 8 - 8 + 16 From 45ff540ce8e1d39fe5fb7b007852ba0363c52a0c Mon Sep 17 00:00:00 2001 From: BuildTools Date: Wed, 14 Dec 2022 11:59:51 -0500 Subject: [PATCH 164/638] Fix dependency information in example projects --- examples/bukkit/kotlindsl/README.md | 33 +++++++++++++++++++ examples/bukkit/kotlindsl/pom.xml | 3 ++ examples/bukkit/maven-annotations/README.md | 2 +- examples/bukkit/maven-annotations/pom.xml | 2 +- .../bukkit/maven-shaded-annotations/README.md | 5 ++- .../bukkit/maven-shaded-annotations/pom.xml | 5 ++- examples/bukkit/maven-shaded/README.md | 2 +- update.sh | 14 ++++++++ 8 files changed, 57 insertions(+), 9 deletions(-) diff --git a/examples/bukkit/kotlindsl/README.md b/examples/bukkit/kotlindsl/README.md index 2d9a6df8d4..43794e83ce 100644 --- a/examples/bukkit/kotlindsl/README.md +++ b/examples/bukkit/kotlindsl/README.md @@ -6,3 +6,36 @@ Key points: - You do not need to use the `.register()` method - You do not need to initialise any arguments. +- Add the `commandapi-kotlin-bukkit` dependency to your project +```xml + + dev.jorel + commandapi-kotlin-bukkit + 9.0.0-SNAPSHOT + +``` +- Shade the Kotlin DSL into your plugin jar +```xml + + org.apache.maven.plugins + maven-shade-plugin + 3.3.1-SNAPSHOT + + + package + + shade + + + false + + + dev.jorel.commandapi.kotlindsl + io.github.jorelali.commandapi.kotlindsl + + + + + + +``` \ No newline at end of file diff --git a/examples/bukkit/kotlindsl/pom.xml b/examples/bukkit/kotlindsl/pom.xml index 90547b767d..bef81b4d2c 100644 --- a/examples/bukkit/kotlindsl/pom.xml +++ b/examples/bukkit/kotlindsl/pom.xml @@ -54,6 +54,7 @@ src/main/kotlin + org.apache.maven.plugins maven-shade-plugin @@ -76,6 +77,8 @@ + + org.jetbrains.kotlin kotlin-maven-plugin diff --git a/examples/bukkit/maven-annotations/README.md b/examples/bukkit/maven-annotations/README.md index aeaea1c15f..ee490cab11 100644 --- a/examples/bukkit/maven-annotations/README.md +++ b/examples/bukkit/maven-annotations/README.md @@ -34,7 +34,7 @@ Key points: dev.jorel commandapi-annotations - 8.5.1 + 9.0.0-SNAPSHOT diff --git a/examples/bukkit/maven-annotations/pom.xml b/examples/bukkit/maven-annotations/pom.xml index a0f34ac2bd..b9d3e2a3a2 100644 --- a/examples/bukkit/maven-annotations/pom.xml +++ b/examples/bukkit/maven-annotations/pom.xml @@ -63,7 +63,7 @@ dev.jorel commandapi-annotations - 8.5.1 + 9.0.0-SNAPSHOT 16 diff --git a/examples/bukkit/maven-shaded-annotations/README.md b/examples/bukkit/maven-shaded-annotations/README.md index c4fb67bce4..2011278080 100644 --- a/examples/bukkit/maven-shaded-annotations/README.md +++ b/examples/bukkit/maven-shaded-annotations/README.md @@ -9,9 +9,8 @@ Key points: dev.jorel - commandapi-bukkit-plugin + commandapi-bukkit-shade 9.0.0-SNAPSHOT - provided dev.jorel @@ -34,7 +33,7 @@ Key points: dev.jorel commandapi-annotations - 8.5.1 + 9.0.0-SNAPSHOT diff --git a/examples/bukkit/maven-shaded-annotations/pom.xml b/examples/bukkit/maven-shaded-annotations/pom.xml index f7c58fe82e..f0274bbefb 100644 --- a/examples/bukkit/maven-shaded-annotations/pom.xml +++ b/examples/bukkit/maven-shaded-annotations/pom.xml @@ -62,11 +62,10 @@ dev.jorel commandapi-annotations - 8.5.1 + 9.0.0-SNAPSHOT - 16 - 16 + 16 diff --git a/examples/bukkit/maven-shaded/README.md b/examples/bukkit/maven-shaded/README.md index f478dc9114..fb318033ee 100644 --- a/examples/bukkit/maven-shaded/README.md +++ b/examples/bukkit/maven-shaded/README.md @@ -4,7 +4,7 @@ A simple example of shading the CommandAPI with Maven. Key points: -- The `commandapi-bukit-shaded` dependency is used +- The `commandapi-bukit-shade` dependency is used ```xml dev.jorel diff --git a/update.sh b/update.sh index 7cf545011f..21c6bcd794 100755 --- a/update.sh +++ b/update.sh @@ -23,6 +23,20 @@ sed -i "s/PROJECT_NUMBER = $oldVer/PROJECT_NUMBER = $newVer/" Do sed -i "s/$oldVer/$newVer/" docssrc/book.toml sed -i "s/$oldVer/$newVer/" docs/latest.html +# Example projects +sed -i "s/$oldVer<\/version>/$newVer<\/version>/" examples/bukkit/kotlindsl/README.md +sed -i "s/$oldVer<\/version>/$newVer<\/version>/" examples/bukkit/maven/README.md +sed -i "s/$oldVer<\/version>/$newVer<\/version>/" examples/bukkit/maven-annotations/README.md +sed -i "s/$oldVer<\/version>/$newVer<\/version>/" examples/bukkit/maven-shaded/README.md +sed -i "s/$oldVer<\/version>/$newVer<\/version>/" examples/bukkit/maven-shaded-annotations/README.md + +sed -i "s/$oldVer<\/version>/$newVer<\/version>/" examples/bukkit/commandtrees/pom.xml +sed -i "s/$oldVer<\/version>/$newVer<\/version>/" examples/bukkit/kotlindsl/pom.xml +sed -i "s/$oldVer<\/version>/$newVer<\/version>/" examples/bukkit/maven/pom.xml +sed -i "s/$oldVer<\/version>/$newVer<\/version>/" examples/bukkit/maven-annotations/pom.xml +sed -i "s/$oldVer<\/version>/$newVer<\/version>/" examples/bukkit/maven-shaded/pom.xml +sed -i "s/$oldVer<\/version>/$newVer<\/version>/" examples/bukkit/maven-shaded-annotations/pom.xml + # Set version in pom.xml using Maven mvn versions:set -DnewVersion=$newVer mvn versions:commit From 7122c834ea475bfed6ef9a367e61dbb944ec4cc3 Mon Sep 17 00:00:00 2001 From: AkaGiant <33662915+AkaGiant@users.noreply.github.com> Date: Wed, 14 Dec 2022 17:22:01 +0000 Subject: [PATCH 165/638] Draft Implementation of Child Permissions. (#379) * Draft Implementation of Child Permissions. You can use the plugin.yml to handle child permissions which drastically reduces the complexity of the code needed to write commands that may have multiple permission nodes that can access this command. * Fix Typos Fix Missing Full Stops Fix missing permissions in command key example Updated indentation to use 4 spaces not 2. * Fix for Typos Fix for incorrect "economy" permission to "economy.self" in plugin.yml * Fix type and moved examples to respective classes. * typo childeren -> children * Fix Intelij auto-complete refactor * Fix Intelij auto-complete refactor * Fix anchor end for permissions4_2 Removal of duplicate comment grammatical fixes removal of tabs for 4 spaces in Examples.kt and Examples.java * Update to introduction for Child-based permissions.md * Grammatical fixes... * Grammatical fixes... * Fix for illegal start of expression build failure. * objects -> args as required * Fix Kotlin arguments * Fix Formatting for header and sub header of Child-based permissions. * Fix for trailing spaces, 184 & 192 * tabs -> spaces * tabs -> spaces colon header indentation of comment * Removal of secondary example * formatting, blanks around fences and single trailing newline. * formatting, single-trailing-newline at end of file. --- .../commandapi/examples/java/Examples.java | 45 +++++++++++++ .../commandapi/examples/kotlin/Examples.kt | 44 ++++++++++++ docssrc/src/permissions.md | 67 +++++++++++++++++++ 3 files changed, 156 insertions(+) diff --git a/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java b/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java index 2e3222c428..ca72f6015f 100644 --- a/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java +++ b/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java @@ -1064,6 +1064,51 @@ public Argument worldArgument(String nodeName) { /* ANCHOR_END: permissions3_2 */ } + +{ +/* ANCHOR: permissions4 */ +// /economy - requires the permission "economy.self" to execute +new CommandAPICommand("economy") + .withPermission("economy.self") // The important part of this example + .executesPlayer((player, args) -> { + // send the executor their own balance here. + }) + .register(); + +// /economy - requires the permission "economy.other" to execute +new CommandAPICommand("economy") + .withPermission("economy.other") // The important part of this example + .withArguments(new PlayerArgument("target")) + .executesPlayer((player, args) -> { + Player target = (Player) args[0]; + // Send executor, the targets balance here. + }) + .register(); + +// /economy give - requires the permission "economy.admin.give" to execute +new CommandAPICommand("economy") + .withPermission("economy.admin.give") // The important part of this example + .withArguments(new PlayerArgument("target")) + .withArguments(new DoubleArgument("amount")) + .executesPlayer((player, args) -> { + Player target = (Player) args[0]; + double amount = (Double) args[1]; + // Update player balance here + }) + .register(); + +// /economy reset - requires the permission "economy.admin.reset" to execute +new CommandAPICommand("economy") + .withPermission("economy.admin.reset") // The important part of this example + .withArguments(new PlayerArgument("target")) + .executesPlayer((player, args) -> { + Player target = (Player) args[0]; + // Reset target balance here + }) + .register(); +/* ANCHOR_END: permissions4 */ +} + { /* ANCHOR: aliases */ new CommandAPICommand("getpos") diff --git a/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt index cb68929245..2d9f6acc53 100644 --- a/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt +++ b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt @@ -1005,6 +1005,50 @@ CommandAPICommand("kill") /* ANCHOR_END: permissions3_2 */ } +fun permissions4() { +/* ANCHOR: permissions4 */ +// /economy - requires the permission "economy.self" to exectue +CommandAPICommand("economy") + .withPermission("economy.self") + .executesPlayer(PlayerCommandExecutor { player, _ -> + // send the executor their own balance here. + }) + .register() + +// /economy - requires the permission "economy.other" to execute +CommandAPICommand("economy") + .withPermission("economy.other") // The important part of this example + .withArguments(PlayerArgument("target")) + .executesPlayer(PlayerCommandExecutor { player, args -> + val target = args.get(0) as Player + // send the executor the targets balance here. + }) + .register() + +// /economy give - requires the permission "economy.admin.give" to execute +CommandAPICommand("economy") + .withPermission("economy.admin.give") // The important part of this example + .withArguments(PlayerArgument("target")) + .withArguments(DoubleArgument("amount")) + .executesPlayer(PlayerCommandExecutor { player, args -> + val target = args.get(0) as Player + val amount = args.get(1) as Double + // update the targets balance here + }) + .register() + +// /economy reset - requires the permission "economy.admin.reset" to execute +CommandAPICommand("economy") + .withPermission("economy.admin.reset") // The important part of this example + .withArguments(PlayerArgument("target")) + .executesPlayer(PlayerCommandExecutor { player, args -> + val target = args.get(0) as Player + // reset the targets balance here + }) + .register() +/* ANCHOR_END: permissions4 */ +} + fun aliases() { /* ANCHOR: aliases */ CommandAPICommand("getpos") diff --git a/docssrc/src/permissions.md b/docssrc/src/permissions.md index 4996bafffc..7fbea4ec2d 100644 --- a/docssrc/src/permissions.md +++ b/docssrc/src/permissions.md @@ -117,3 +117,70 @@ Now we declare our command with arguments. We use a `PlayerArgument` and apply t > As you can see, there are multiple ways of applying permissions to commands with arguments. In the `/god` command shown above, the permission was applied to the whole command. In the `/kill` command shown above, the permission was applied to the argument. > > There's not really much difference between the two methods, but I personally would use _argument permissions_ as it has greater control over arguments. + +----- + +## Child-based permissions + +Child-based permissions allow you to group permissions together. +We achieve this by laying out our permission groups in the `plugin.yml` file which Bukkit registers as valid permissions. +When the CommandAPI checks if our player has a permission, Bukkit considers if they have the child of a permission as well. +This not only keeps permissions easier to manage, it also makes your code cleaner and gives you a nice place to lay out all of your permissions, +detailing what they do and what other permissions inherit them. + +### Example - /economy command with argument permissions + +For example, say we're registering a command `/economy`: + +```mccmd +/economy - shows your own balance | economy.self +/economy - shows you another players balance | economy.other +/economy give - gives the target a set amount of money | economy.admin.give +/economy reset - resets the targets balance | economy.admin.reset +``` + +We first declare the command as normal. Nothing fancy is going on here: + +
+ +```java,Java +{{#include ../../commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java:permissions4}} +``` + +```kotlin,Kotlin +{{#include ../../commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/Examples.kt:permissions4}} +``` + +
+ +In our **plugin.yml** we can also set up our permissions for example... + +```yml +permissions: + economy.*: + description: Gives the user full access to the economy commands + children: + economy.other: true + economy.admin.*: true + + economy.self: + description: Allows the user to view their own balance + economy.other: + description: Allows the user to another players balance + children: + economy.self: true + + economy.admin.*: + description: Gives the user access to all of the admin commands + children: + economy.admin.give: true + economy.admin.reset: true + economy.admin.give: + description: Gives the user access to /economy give + economy.admin.reset: + description: Gives the user access to /economy reset +``` + +This setup of children allows us to give a player less permissions, but have them access more features. +Since `economy.*` inherits `economy.admin.*` which inherits `economy.admin.give`, a player with the permission `economy.*` will be able to execute `/economy give ` without them directly having the `economy.admin.give` permission node. +This also works with `economy.other`, if a player has `economy.other` they will **inherit** `economy`. From fd594420ea02c620453d0764984b7a8e06d31e37 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Fri, 16 Dec 2022 17:22:43 +0000 Subject: [PATCH 166/638] Fix no JavaDocs appearing in IDEs if you use "commandapi-shade" --- .../commandapi-bukkit/commandapi-bukkit-shade/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml index 12d3a8286f..874baf2872 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-shade/pom.xml @@ -65,6 +65,7 @@ true + true From 340902c467a6a5e1051d08895fbfe1f89f1eb2a8 Mon Sep 17 00:00:00 2001 From: DerEchtePilz <81232921+DerEchtePilz@users.noreply.github.com> Date: Sat, 17 Dec 2022 20:41:14 +0100 Subject: [PATCH 167/638] adding #360 (#369) * adding #360 * provide ExecutionInfo with a record * fixing JavaDocs * fixing some things * adding a CommandArguments class to hold provided arguments * remove method parameters, fix documentation code to match new syntax * fix Kotlin DSL to match new syntax * fixing Converter * fix some more documentation issues * fixing some annotation examples to match new syntax * fix annotation generation to match new syntax * handle String[] for converted commands correctly * parse arguments only once * Make argsToObjectArr return a CommandArguments object. Change name of argsToObjectArr to argsToCommandArgs * fixing generateCommand method * fix Brigadier#parseArguments method * add Javadocs to ExecutionInfo * Remove test command thingy from CommandAPIMain. Add Javadocs to CommandArguments * clean up after merge * fixing a method call in Brigadier#parseArguments * fixing CommandTree DSL * optimizing some imports * fixing some formatting issues * fixing documentation example code * fix commands not being executable * fixing build error --- .../commandapi/annotations/Annotations.java | 4 +- .../src/test/java/WarpCommand.java | 4 +- .../java/dev/jorel/commandapi/Brigadier.java | 2 +- .../jorel/commandapi/CommandAPIExecutor.java | 53 ++-- .../jorel/commandapi/CommandAPIHandler.java | 63 ++++- .../executors/AbstractExecutionInfo.java | 27 ++ .../executors/CommandArguments.java | 50 ++++ .../commandapi/executors/IExecutorNormal.java | 17 +- .../executors/IExecutorResulting.java | 17 +- .../commandapi/executors/IExecutorTyped.java | 9 +- .../commandapi/examples/java/Examples.java | 235 +++++++-------- .../examples/kotlin/ExamplesKotlinDSL.kt | 1 - .../jorel/commandapi/BukkitExecutable.java | 267 ++++++++++++++++-- .../java/dev/jorel/commandapi/Converter.java | 23 +- .../executors/BukkitExecutionInfo.java | 28 ++ .../CommandBlockCommandExecutor.java | 20 +- .../executors/CommandBlockExecutionInfo.java | 28 ++ .../CommandBlockResultingCommandExecutor.java | 23 +- .../CommandBlockResultingExecutionInfo.java | 27 ++ .../executors/CommandExecutionInfo.java | 29 ++ .../commandapi/executors/CommandExecutor.java | 21 +- .../executors/ConsoleCommandExecutor.java | 21 +- .../executors/ConsoleExecutionInfo.java | 28 ++ .../ConsoleResultingCommandExecutor.java | 22 +- .../ConsoleResultingExecutionInfo.java | 26 ++ .../executors/EntityCommandExecutor.java | 24 +- .../executors/EntityExecutionInfo.java | 28 ++ .../EntityResultingCommandExecutor.java | 24 +- .../EntityResultingExecutionInfo.java | 27 ++ .../executors/NativeCommandExecutor.java | 21 +- .../executors/NativeExecutionInfo.java | 28 ++ .../NativeResultingCommandExecutor.java | 21 +- .../NativeResultingExecutionInfo.java | 26 ++ .../executors/PlayerCommandExecutor.java | 23 +- .../executors/PlayerExecutionInfo.java | 27 ++ .../PlayerResultingCommandExecutor.java | 25 +- .../PlayerResultingExecutionInfo.java | 24 ++ .../executors/ProxyCommandExecutor.java | 21 +- .../executors/ProxyExecutionInfo.java | 28 ++ .../ProxyResultingCommandExecutor.java | 22 +- .../ProxyResultingExecutionInfo.java | 27 ++ .../ResultingCommandExecutionInfo.java | 27 ++ .../executors/ResultingCommandExecutor.java | 23 +- .../jorel/commandapi/test/ArgumentTests.java | 66 ++--- .../jorel/commandapi/test/CommandTests.java | 14 +- .../kotlindsl/CommandAPICommandDSL.kt | 37 +-- .../commandapi/kotlindsl/CommandTreeDSL.kt | 48 ++-- 47 files changed, 1260 insertions(+), 396 deletions(-) create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/executors/AbstractExecutionInfo.java create mode 100644 commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandArguments.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/BukkitExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingExecutionInfo.java create mode 100644 commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutionInfo.java diff --git a/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/Annotations.java b/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/Annotations.java index becde67d04..30a85ea943 100644 --- a/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/Annotations.java +++ b/commandapi-annotations/src/main/java/dev/jorel/commandapi/annotations/Annotations.java @@ -353,9 +353,9 @@ private int emitExecutes(PrintWriter out, Map argumentMapping, } else { out.print(simpleFromQualified(fromArgumentMap)); } - out.print(") args["); + out.print(") args.get("); out.print(i); - out.print("]"); + out.print(")"); } //populate stuff here diff --git a/commandapi-annotations/src/test/java/WarpCommand.java b/commandapi-annotations/src/test/java/WarpCommand.java index 8a71cd7a44..eba3b10538 100644 --- a/commandapi-annotations/src/test/java/WarpCommand.java +++ b/commandapi-annotations/src/test/java/WarpCommand.java @@ -124,7 +124,7 @@ class Examples { warps.keySet().toArray(new String[0]) ))) .executesPlayer((player, args) -> { - player.teleport(warps.get((String) args[0])); + player.teleport(warps.get((String) args.get(0))); }) .register(); @@ -135,7 +135,7 @@ class Examples { .withPermission("warps.create") .withArguments(new StringArgument("warpname")) .executesPlayer((player, args) -> { - warps.put((String) args[0], player.getLocation()); + warps.put((String) args.get(0), player.getLocation()); }) ) .register(); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java index 4b5b2f029f..3e4f08f8a0 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/Brigadier.java @@ -193,7 +193,7 @@ Command fromCommand(AbstractCommandAPICommand comman */ public static > Object[] parseArguments(CommandContext cmdCtx, List args) throws CommandSyntaxException { CommandAPIHandler handler = (CommandAPIHandler) CommandAPIHandler.getInstance(); - return handler.argsToObjectArr(cmdCtx, (Argument[]) args.toArray(AbstractArgument[]::new)); + return handler.argsToCommandArgs(cmdCtx, (Argument[]) args.toArray(AbstractArgument[]::new)).args(); } /** diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIExecutor.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIExecutor.java index 8cf8e1b680..deefb5c39c 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIExecutor.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIExecutor.java @@ -25,10 +25,7 @@ import com.mojang.brigadier.exceptions.SimpleCommandExceptionType; import dev.jorel.commandapi.commandsenders.*; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; -import dev.jorel.commandapi.executors.ExecutorType; -import dev.jorel.commandapi.executors.IExecutorNormal; -import dev.jorel.commandapi.executors.IExecutorResulting; -import dev.jorel.commandapi.executors.IExecutorTyped; +import dev.jorel.commandapi.executors.*; import java.util.ArrayList; import java.util.List; @@ -63,13 +60,13 @@ public void addResultingExecutor(IExecutorResulting executor) { this.resultingExecutors.add((IExecutorResulting) executor); } - public int execute(WrapperType sender, Object[] arguments) throws CommandSyntaxException { + public int execute(AbstractExecutionInfo info) throws CommandSyntaxException { // Parse executor type if (!resultingExecutors.isEmpty()) { // Run resulting executor try { - return execute(resultingExecutors, sender, arguments); + return execute(resultingExecutors, info); } catch (WrapperCommandSyntaxException e) { throw e.getException(); } catch (Exception e) { @@ -79,7 +76,7 @@ public int execute(WrapperType sender, Object[] arguments) throws CommandSyntaxE } else { // Run normal executor try { - return execute(normalExecutors, sender, arguments); + return execute(normalExecutors, info); } catch (WrapperCommandSyntaxException e) { throw e.getException(); } catch (Exception e) { @@ -89,35 +86,35 @@ public int execute(WrapperType sender, Object[] arguments) throws CommandSyntaxE } } - private int execute(List> executors, WrapperType sender, Object[] args) + private int execute(List> executors, AbstractExecutionInfo info) throws WrapperCommandSyntaxException { if (isForceNative()) { - return execute(executors, sender, args, ExecutorType.NATIVE); - } else if (sender instanceof AbstractPlayer && matches(executors, ExecutorType.PLAYER)) { - return execute(executors, sender, args, ExecutorType.PLAYER); - } else if (sender instanceof AbstractEntity && matches(executors, ExecutorType.ENTITY)) { - return execute(executors, sender, args, ExecutorType.ENTITY); - } else if (sender instanceof AbstractConsoleCommandSender && matches(executors, ExecutorType.CONSOLE)) { - return execute(executors, sender, args, ExecutorType.CONSOLE); - } else if (sender instanceof AbstractBlockCommandSender && matches(executors, ExecutorType.BLOCK)) { - return execute(executors, sender, args, ExecutorType.BLOCK); - } else if (sender instanceof AbstractProxiedCommandSender && matches(executors, ExecutorType.PROXY)) { - return execute(executors, sender, args, ExecutorType.PROXY); + return execute(executors, info, ExecutorType.NATIVE); + } else if (info.senderWrapper() instanceof AbstractPlayer && matches(executors, ExecutorType.PLAYER)) { + return execute(executors, info, ExecutorType.PLAYER); + } else if (info.senderWrapper() instanceof AbstractEntity && matches(executors, ExecutorType.ENTITY)) { + return execute(executors, info, ExecutorType.ENTITY); + } else if (info.senderWrapper() instanceof AbstractConsoleCommandSender && matches(executors, ExecutorType.CONSOLE)) { + return execute(executors, info, ExecutorType.CONSOLE); + } else if (info.senderWrapper() instanceof AbstractBlockCommandSender && matches(executors, ExecutorType.BLOCK)) { + return execute(executors, info, ExecutorType.BLOCK); + } else if (info.senderWrapper() instanceof AbstractProxiedCommandSender && matches(executors, ExecutorType.PROXY)) { + return execute(executors, info, ExecutorType.PROXY); } else if (matches(executors, ExecutorType.ALL)) { - return execute(executors, sender, args, ExecutorType.ALL); + return execute(executors, info, ExecutorType.ALL); } else { throw new WrapperCommandSyntaxException(new SimpleCommandExceptionType( new LiteralMessage(CommandAPI.getConfiguration().getMissingImplementationMessage() - .replace("%s", sender.getClass().getSimpleName().toLowerCase()) - .replace("%S", sender.getClass().getSimpleName()))).create()); + .replace("%s", info.sender().getClass().getSimpleName().toLowerCase()) + .replace("%S", info.sender().getClass().getSimpleName()))).create()); } } - private int execute(List> executors, WrapperType sender, Object[] args, - ExecutorType type) throws WrapperCommandSyntaxException { - for (IExecutorTyped executor : executors) { + private int execute(List> executors, + AbstractExecutionInfo info, ExecutorType type) throws WrapperCommandSyntaxException { + for (IExecutorTyped executor : executors) { if (executor.getType() == type) { - return executor.executeWith(sender, args); + return executor.executeWith(info); } } throw new NoSuchElementException("Executor had no valid executors for type " + type.toString()); @@ -139,8 +136,8 @@ public boolean isForceNative() { return matches(normalExecutors, ExecutorType.NATIVE) || matches(resultingExecutors, ExecutorType.NATIVE); } - private boolean matches(List> executors, ExecutorType type) { - for (IExecutorTyped executor : executors) { + private boolean matches(List> executors, ExecutorType type) { + for (IExecutorTyped executor : executors) { if (executor.getType() == type) { return true; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index 8ed6da911d..73dc087b58 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -34,6 +34,8 @@ import com.mojang.brigadier.tree.LiteralCommandNode; import dev.jorel.commandapi.arguments.*; import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.executors.AbstractExecutionInfo; +import dev.jorel.commandapi.executors.CommandArguments; import dev.jorel.commandapi.preprocessor.RequireField; import dev.jorel.commandapi.wrappers.PreviewableFunction; @@ -42,8 +44,8 @@ import java.lang.invoke.MethodHandles; import java.lang.invoke.VarHandle; import java.lang.reflect.Field; -import java.util.List; import java.util.*; +import java.util.List; import java.util.concurrent.CompletableFuture; import java.util.function.Predicate; @@ -161,13 +163,46 @@ Command generateCommand(Argument[] args, CommandAPIExecutor { AbstractCommandSender sender = platform.getSenderForCommand(cmdCtx, executor.isForceNative()); + CommandArguments commandArguments = argsToCommandArgs(cmdCtx, args); + AbstractExecutionInfo> executionInfo = new AbstractExecutionInfo<>() { + @Override + public CommandSender sender() { + return sender.getSource(); + } + + @Override + public AbstractCommandSender senderWrapper() { + return sender; + } + + @Override + public CommandArguments args() { + return commandArguments; + } + }; if (converted) { - Object[] argObjs = argsToObjectArr(cmdCtx, args); int resultValue = 0; // Return a String[] of arguments for converted commands String[] argsAndCmd = cmdCtx.getRange().get(cmdCtx.getInput()).split(" "); String[] result = new String[argsAndCmd.length - 1]; + AbstractExecutionInfo> convertedExecutionInfo = new AbstractExecutionInfo<>() { + @Override + public CommandSender sender() { + return sender.getSource(); + } + + @Override + public AbstractCommandSender senderWrapper() { + return sender; + } + + @Override + public CommandArguments args() { + return new CommandArguments(result, new LinkedHashMap<>()); + } + }; + System.arraycopy(argsAndCmd, 1, result, 0, argsAndCmd.length - 1); // As stupid as it sounds, it's more performant and safer to use @@ -175,7 +210,7 @@ Command generateCommand(Argument[] args, CommandAPIExecutor[] entityNamesForArgs = new List[args.length]; for (int i = 0; i < args.length; i++) { - entityNamesForArgs[i] = args[i].getEntityNames(argObjs[i]); + entityNamesForArgs[i] = args[i].getEntityNames(commandArguments.get(i)); } List> product = CartesianProduct.getDescartes(Arrays.asList(entityNamesForArgs)); @@ -189,12 +224,12 @@ Command generateCommand(Argument[] args, CommandAPIExecutor generateCommand(Argument[] args, CommandAPIExecutor - * @throws CommandSyntaxException when an argument isn't formatted correctly + * @return an CommandArguments object which can be used in (sender, args) -> + * @throws CommandSyntaxException */ - Object[] argsToObjectArr(CommandContext cmdCtx, Argument[] args) + CommandArguments argsToCommandArgs(CommandContext cmdCtx, Argument[] args) throws CommandSyntaxException { // Array for arguments for executor List argList = new ArrayList<>(); + // LinkedHashMap for arguments for executor + Map argsMap = new LinkedHashMap<>(); + // Populate array for (Argument argument : args) { if (argument.isListed()) { - argList.add(parseArgument(cmdCtx, argument.getNodeName(), argument, argList.toArray())); + Object parsedArgument = parseArgument(cmdCtx, argument.getNodeName(), argument, argList.toArray()); + argList.add(parsedArgument); + argsMap.put(argument.getNodeName(), parsedArgument); } } - return argList.toArray(); + return new CommandArguments(argList.toArray(), argsMap); } /** @@ -633,8 +673,7 @@ LiteralArgumentBuilder getLiteralArgumentBuilder(String commandName) { * @param permission the permission required to use this literal * @return a brigadier LiteralArgumentBuilder representing a literal */ - LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandName, - CommandPermission permission, Predicate requirements) { + LiteralArgumentBuilder getLiteralArgumentBuilderArgument(String commandName, CommandPermission permission, Predicate requirements) { LiteralArgumentBuilder builder = LiteralArgumentBuilder.literal(commandName); return builder.requires((Source css) -> permissionCheck(platform.getCommandSenderFromCommandSource(css), permission, requirements)); diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/AbstractExecutionInfo.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/AbstractExecutionInfo.java new file mode 100644 index 0000000000..143c719b63 --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/AbstractExecutionInfo.java @@ -0,0 +1,27 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; + +/** + * This interface represents an AbstractExecutionInfo for a command. It provides the sender of a command, as well as it's arguments + * + * @param The type of the sender of a command this AbstractExecutionInfo belongs to + */ +public interface AbstractExecutionInfo> { + + /** + * @return The sender of this command + */ + Sender sender(); + + /** + * @return The wrapper type of this command + */ + WrapperType senderWrapper(); + + /** + * @return The arguments of this command + */ + CommandArguments args(); + +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandArguments.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandArguments.java new file mode 100644 index 0000000000..39274a63fa --- /dev/null +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandArguments.java @@ -0,0 +1,50 @@ +package dev.jorel.commandapi.executors; + +import java.util.Map; + +/** + * This class stores the arguments for this command + */ +public class CommandArguments { + + private final Object[] args; + private final Map argsMap; + + /** + * Constructs a new CommandArguments instance + * + * @param args The arguments for this command + * @param argsMap The arguments for this command mapped to the node names. This is an ordered map + */ + public CommandArguments(Object[] args, Map argsMap) { + this.args = args; + this.argsMap = argsMap; + } + + /** + * @return The complete argument array of this command + */ + public Object[] args() { + return args; + } + + /** + * Returns an argument by its position + * + * @param index The position of this argument + * @return an argument which is placed at the given index + */ + public Object get(int index) { + return args[index]; + } + + /** + * Returns an argument by its node name + * + * @param nodeName The node name of this argument. This was set when initializing an argument + * @return an argument which has the given node name + */ + public Object get(String nodeName) { + return argsMap.get(nodeName); + } +} diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java index 1c84319468..5c58615590 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorNormal.java @@ -28,27 +28,24 @@ * @param The CommandSender for this executor * @param The AbstractCommandSender that wraps the CommandSender */ -public interface IExecutorNormal> extends IExecutorTyped { - +public interface IExecutorNormal> extends IExecutorTyped { /** * Executes the command executor with the provided command sender and the provided arguments. - * @param sender the command sender for this command - * @param args the arguments provided to this command + * @param info The AbstractExecutionInfo for this command * @return 1 if the command succeeds, 0 if the command fails * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ @Override - default int executeWith(WrapperType sender, Object[] args) throws WrapperCommandSyntaxException { - this.run(sender.getSource(), args); + default int executeWith(AbstractExecutionInfo info) throws WrapperCommandSyntaxException { + this.run(info); return 1; } - + /** * Executes the command. - * @param sender the command sender for this command - * @param args the arguments provided to this command + * @param info The AbstractExecutionInfo for this command * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException; + void run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java index 8eec3cd173..88aba3e210 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorResulting.java @@ -28,27 +28,24 @@ * @param The CommandSender for this executor * @param The AbstractCommandSender that wraps the CommandSender */ -public interface IExecutorResulting> extends IExecutorTyped { - +public interface IExecutorResulting> extends IExecutorTyped { + /** * Executes the command executor with the provided command sender and the provided arguments. - * @param sender the command sender for this command - * @param args the arguments provided to this command + * @param info The AbstractExecutionInfo for this command * @return the value returned by this command if the command succeeds, 0 if the command fails * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ @Override - default int executeWith(WrapperType sender, Object[] args) throws WrapperCommandSyntaxException { - return this.run(sender.getSource(), args); + default int executeWith(AbstractExecutionInfo info) throws WrapperCommandSyntaxException { + return this.run(info); } /** * Executes the command. - * @param sender the command sender for this command - * @param args the arguments provided to this command + * @param info The AbstractExecutionInfo for this command * @return the value returned by this command * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - int run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException; - + int run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; } diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java index 10bd044890..4e6d85ccb6 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/IExecutorTyped.java @@ -29,7 +29,7 @@ * sender and arguments * @param The AbstractCommandSenderClass for this executor */ -public interface IExecutorTyped> { +public interface IExecutorTyped> { /** * Returns the type of the sender of the current executor. @@ -38,14 +38,13 @@ public interface IExecutorTyped> { default ExecutorType getType() { return ExecutorType.ALL; } - + /** * Executes the command executor with the provided command sender and the provided arguments. - * @param sender the command sender for this command - * @param args the arguments provided to this command + * @param info The AbstractExecutionInfo for this command * @return the value returned by this command if the command succeeds, 0 if the command fails * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command */ - int executeWith(WrapperType sender, Object[] args) throws WrapperCommandSyntaxException; + int executeWith(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; } diff --git a/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java b/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java index ca72f6015f..61ef3307bc 100644 --- a/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java +++ b/commandapi-documentation-code/src/main/java/dev/jorel/commandapi/examples/java/Examples.java @@ -34,6 +34,7 @@ import dev.jorel.commandapi.arguments.CustomArgument.CustomArgumentException; import dev.jorel.commandapi.arguments.CustomArgument.MessageBuilder; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.executors.CommandArguments; import dev.jorel.commandapi.executors.ExecutorType; import dev.jorel.commandapi.wrappers.Rotation; import dev.jorel.commandapi.wrappers.*; @@ -99,7 +100,7 @@ public void commandRegistration() { .withAliases("broadcast", "broadcastmessage") // Command aliases .withPermission(CommandPermission.OP) // Required permissions .executes((sender, args) -> { - String message = (String) args[0]; + String message = (String) args.get(0); Bukkit.getServer().broadcastMessage(message); }) .register(); @@ -131,7 +132,7 @@ public void commandRegistration() { .withArguments(new BooleanArgument("value")) .executes((sender, args) -> { // Update the config with the boolean argument - getConfig().set((String) args[0], (boolean) args[1]); + getConfig().set((String) args.get(0), (boolean) args.get(1)); }) .register(); } @@ -144,8 +145,8 @@ public void commandRegistration() { .withArguments(new ItemStackArgument("item")) // The item to search for .executesPlayer((player, args) -> { // Retrieve the range from the arguments - IntegerRange range = (IntegerRange) args[0]; - ItemStack itemStack = (ItemStack) args[1]; + IntegerRange range = (IntegerRange) args.get(0); + ItemStack itemStack = (ItemStack) args.get(1); // Store the locations of chests with certain items List locations = new ArrayList<>(); @@ -196,7 +197,7 @@ public void commandRegistration() { .withArguments(new PlayerArgument("target")) .withArguments(new GreedyStringArgument("message")) .executes((sender, args) -> { - ((Player) args[0]).sendMessage((String) args[1]); + ((Player) args.get(0)).sendMessage((String) args.get(1)); }) .register(); /* ANCHOR_END: greedystringarguments */ @@ -208,7 +209,7 @@ public void commandRegistration() { // We want to target blocks in particular, so use BLOCK_POSITION .withArguments(new LocationArgument("block", LocationType.BLOCK_POSITION)) .executesPlayer((player, args) -> { - ((Location) args[0]).getBlock().setType(Material.AIR); + ((Location) args.get(0)).getBlock().setType(Material.AIR); }) .register(); /* ANCHOR_END: locationarguments */ @@ -220,8 +221,8 @@ public void commandRegistration() { .withArguments(new RotationArgument("rotation")) .withArguments(new EntitySelectorArgument.OneEntity("target")) .executes((sender, args) -> { - Rotation rotation = (Rotation) args[0]; - Entity target = (Entity) args[1]; + Rotation rotation = (Rotation) args.get(0); + Entity target = (Entity) args.get(1); if (target instanceof ArmorStand armorStand) { armorStand.setHeadPose(new EulerAngle(Math.toRadians(rotation.getPitch()), Math.toRadians(rotation.getYaw() - 90), 0)); @@ -237,7 +238,7 @@ void chatcolorarguments(){ new CommandAPICommand("namecolor") .withArguments(new ChatColorArgument("chatcolor")) .executesPlayer((player, args) -> { - ChatColor color = (ChatColor) args[0]; + ChatColor color = (ChatColor) args.get(0); player.setDisplayName(color + player.getName()); }) .register(); @@ -251,8 +252,8 @@ void chatcomponentarguments(){ .withArguments(new PlayerArgument("player")) .withArguments(new ChatComponentArgument("contents")) .executes((sender, args) -> { - Player player = (Player) args[0]; - BaseComponent[] arr = (BaseComponent[]) args[1]; + Player player = (Player) args.get(0); + BaseComponent[] arr = (BaseComponent[]) args.get(1); // Create book ItemStack is = new ItemStack(Material.WRITTEN_BOOK); @@ -275,7 +276,7 @@ void chatarguments() { new CommandAPICommand("pbroadcast") .withArguments(new ChatArgument("message")) .executes((sender, args) -> { - BaseComponent[] message = (BaseComponent[]) args[0]; + BaseComponent[] message = (BaseComponent[]) args.get(0); // Broadcast the message to everyone on the server Bukkit.getServer().spigot().broadcast(message); @@ -295,7 +296,7 @@ void chatarguments() { .executesPlayer((player, args) -> { // The user still entered legacy text. We need to properly convert this // to a BaseComponent[] by converting to plain text then to BaseComponent[] - String plainText = BaseComponent.toPlainText((BaseComponent[]) args[0]); + String plainText = BaseComponent.toPlainText((BaseComponent[]) args.get(0)); Bukkit.spigot().broadcast(TextComponent.fromLegacyText(ChatColor.translateAlternateColorCodes('&', plainText))); }) .register(); @@ -313,7 +314,7 @@ void chatarguments() { .executesPlayer((player, args) -> { // The user still entered legacy text. We need to properly convert this // to a Component by converting to plain text then to Component - String plainText = PlainTextComponentSerializer.plainText().serialize((Component) args[0]); + String plainText = PlainTextComponentSerializer.plainText().serialize((Component) args.get(0)); Bukkit.broadcast(LegacyComponentSerializer.legacyAmpersand().deserialize(plainText)); }) .register(); @@ -329,7 +330,7 @@ void chatarguments() { return TextComponent.fromLegacyText(ChatColor.translateAlternateColorCodes('&', plainText)); })) .executesPlayer((player, args) -> { - Bukkit.spigot().broadcast((BaseComponent[]) args[0]); + Bukkit.spigot().broadcast((BaseComponent[]) args.get(0)); }) .register(); /* ANCHOR_END: chatpreviewspigotusepreview */ @@ -344,7 +345,7 @@ void chatarguments() { return LegacyComponentSerializer.legacyAmpersand().deserialize(plainText); })) .executesPlayer((player, args) -> { - Bukkit.broadcast((Component) args[0]); + Bukkit.broadcast((Component) args.get(0)); }) .register(); /* ANCHOR_END: chatpreviewadventureusepreview */ @@ -359,10 +360,10 @@ void chatarguments() { .withArguments(new StringArgument("author")) .withArguments(new AdventureChatComponentArgument("contents")) .executes((sender, args) -> { - Player target = (Player) args[0]; - String title = (String) args[1]; - String author = (String) args[2]; - Component content = (Component) args[3]; + Player target = (Player) args.get(0); + String title = (String) args.get(1); + String author = (String) args.get(2); + Component content = (Component) args.get(3); // Create a book and show it to the user (Requires Paper) Book mybook = Book.book(Component.text(title), Component.text(author), content); @@ -377,7 +378,7 @@ void chatarguments() { new CommandAPICommand("pbroadcast") .withArguments(new AdventureChatArgument("message")) .executes((sender, args) -> { - Component message = (Component) args[0]; + Component message = (Component) args.get(0); // Broadcast the message to everyone with broadcast permissions. Bukkit.getServer().broadcast(message, Server.BROADCAST_CHANNEL_USERS); @@ -395,7 +396,7 @@ void chatarguments() { .executes((sender, args) -> { // Parse the argument as a collection of entities (as stated above in the documentation) @SuppressWarnings("unchecked") - Collection entities = (Collection) args[0]; + Collection entities = (Collection) args.get(0); sender.sendMessage("Removed " + entities.size() + " entities"); for (Entity e : entities) { @@ -411,9 +412,9 @@ void chatarguments() { new CommandAPICommand("spawnmob") .withArguments(new EntityTypeArgument("entity")) .withArguments(new IntegerArgument("amount", 1, 100)) // Prevent spawning too many entities - .executesPlayer((Player player, Object[] args) -> { - for (int i = 0; i < (int) args[1]; i++) { - player.getWorld().spawnEntity(player.getLocation(), (EntityType) args[0]); + .executesPlayer((Player player, CommandArguments args) -> { + for (int i = 0; i < (int) args.get(1); i++) { + player.getWorld().spawnEntity(player.getLocation(), (EntityType) args.get(0)); } }) .register(); @@ -428,7 +429,7 @@ void chatarguments() { .executes((sender, args) -> { // Get player names by casting to Collection @SuppressWarnings("unchecked") - Collection players = (Collection) args[0]; + Collection players = (Collection) args.get(0); for (String playerName : players) { Bukkit.getPlayer(playerName).getInventory().addItem(new ItemStack(Material.DIAMOND, 3)); @@ -463,7 +464,7 @@ void chatarguments() { .withArguments(new ScoreboardSlotArgument("slot")) .executes((sender, args) -> { Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard(); - DisplaySlot slot = ((ScoreboardSlot) args[0]).getDisplaySlot(); + DisplaySlot slot = ((ScoreboardSlot) args.get(0)).getDisplaySlot(); scoreboard.clearSlot(slot); }) .register(); @@ -476,7 +477,7 @@ void chatarguments() { .withArguments(new ObjectiveArgument("objective")) .executes((sender, args) -> { // The ObjectArgument must be casted to a String - String objectiveName = (String) args[0]; + String objectiveName = (String) args.get(0); // An objective name can be turned into an Objective using getObjective(String) Objective objective = Bukkit.getScoreboardManager().getMainScoreboard().getObjective(objectiveName); @@ -494,7 +495,7 @@ public void objectiveCriteriaArguments() { new CommandAPICommand("unregisterall") .withArguments(new ObjectiveCriteriaArgument("objective criteria")) .executes((sender, args) -> { - String objectiveCriteria = (String) args[0]; + String objectiveCriteria = (String) args.get(0); Set objectives = Bukkit.getScoreboardManager().getMainScoreboard().getObjectivesByCriteria(objectiveCriteria); // Unregister the objectives @@ -512,7 +513,7 @@ public void objectiveCriteriaArguments() { .withArguments(new TeamArgument("team")) .executes((sender, args) -> { // The TeamArgument must be casted to a String - String teamName = (String) args[0]; + String teamName = (String) args.get(0); // A team name can be turned into a Team using getTeam(String) Team team = Bukkit.getScoreboardManager().getMainScoreboard().getTeam(teamName); @@ -530,8 +531,8 @@ public void objectiveCriteriaArguments() { .withArguments(new PlayerArgument("player")) .withArguments(new AdvancementArgument("advancement")) .executes((sender, args) -> { - Player target = (Player) args[0]; - Advancement advancement = (Advancement) args[1]; + Player target = (Player) args.get(0); + Advancement advancement = (Advancement) args.get(1); // Award all criteria for the advancement AdvancementProgress progress = target.getAdvancementProgress(advancement); @@ -548,7 +549,7 @@ public void objectiveCriteriaArguments() { new CommandAPICommand("setbiome") .withArguments(new BiomeArgument("biome")) .executesPlayer((player, args) -> { - Biome biome = (Biome) args[0]; + Biome biome = (Biome) args.get(0); Chunk chunk = player.getLocation().getChunk(); player.getWorld().setBiome(chunk.getX(), player.getLocation().getBlockY(), chunk.getZ(), biome); @@ -562,7 +563,7 @@ public void objectiveCriteriaArguments() { new CommandAPICommand("set") .withArguments(new BlockStateArgument("block")) .executesPlayer((player, args) -> { - BlockData blockdata = (BlockData) args[0]; + BlockData blockdata = (BlockData) args.get(0); Block targetBlock = player.getTargetBlockExact(256); // Set the block, along with its data @@ -579,8 +580,8 @@ public void objectiveCriteriaArguments() { .withArguments(new EnchantmentArgument("enchantment")) .withArguments(new IntegerArgument("level", 1, 5)) .executesPlayer((player, args) -> { - Enchantment enchantment = (Enchantment) args[0]; - int level = (int) args[1]; + Enchantment enchantment = (Enchantment) args.get(0); + int level = (int) args.get(1); // Add the enchantment player.getInventory().getItemInMainHand().addEnchantment(enchantment, level); @@ -595,8 +596,8 @@ public void objectiveCriteriaArguments() { .withArguments(new StringArgument("worldname")) .withArguments(new EnvironmentArgument("type")) .executes((sender, args) -> { - String worldName = (String) args[0]; - Environment environment = (Environment) args[1]; + String worldName = (String) args.get(0); + Environment environment = (Environment) args.get(1); // Create a new world with the specific world name and environment Bukkit.getServer().createWorld(new WorldCreator(worldName).environment(environment)); @@ -611,7 +612,7 @@ public void objectiveCriteriaArguments() { new CommandAPICommand("unloadworld") .withArguments(new WorldArgument("world")) .executes((sender, args) -> { - World world = (World) args[0]; + World world = (World) args.get(0); // Unload the world (and save the world's chunks) Bukkit.getServer().unloadWorld(world, true); @@ -625,7 +626,7 @@ public void objectiveCriteriaArguments() { new CommandAPICommand("item") .withArguments(new ItemStackArgument("itemstack")) .executesPlayer((player, args) -> { - player.getInventory().addItem((ItemStack) args[0]); + player.getInventory().addItem((ItemStack) args.get(0)); }) .register(); /* ANCHOR_END: itemstackarguments */ @@ -637,8 +638,8 @@ public void objectiveCriteriaArguments() { .withArguments(new LootTableArgument("loottable")) .withArguments(new LocationArgument("location", LocationType.BLOCK_POSITION)) .executes((sender, args) -> { - LootTable lootTable = (LootTable) args[0]; - Location location = (Location) args[1]; + LootTable lootTable = (LootTable) args.get(0); + Location location = (Location) args.get(1); BlockState state = location.getBlock().getState(); @@ -660,9 +661,9 @@ public void objectiveCriteriaArguments() { .withArguments(new MathOperationArgument("operation")) .withArguments(new IntegerArgument("value")) .executes((sender, args) -> { - Player target = (Player) args[0]; - MathOperation op = (MathOperation) args[1]; - int value = (int) args[2]; + Player target = (Player) args.get(0); + MathOperation op = (MathOperation) args.get(1); + int value = (int) args.get(2); target.setLevel(op.apply(target.getLevel(), value)); }) @@ -675,7 +676,7 @@ public void objectiveCriteriaArguments() { new CommandAPICommand("showparticle") .withArguments(new ParticleArgument("particle")) .executesPlayer((player, args) -> { - ParticleData particleData = (ParticleData) args[0]; + ParticleData particleData = (ParticleData) args.get(0); player.getWorld().spawnParticle(particleData.particle(), player.getLocation(), 1); }) .register(); @@ -685,7 +686,7 @@ public void objectiveCriteriaArguments() { new CommandAPICommand("showparticle") .withArguments(new ParticleArgument("particle")) .executesPlayer((player, args) -> { - ParticleData particleData = (ParticleData) args[0]; + ParticleData particleData = (ParticleData) args.get(0); player.getWorld().spawnParticle(particleData.particle(), player.getLocation(), 1, particleData.data()); }) .register(); @@ -700,10 +701,10 @@ public void objectiveCriteriaArguments() { .withArguments(new TimeArgument("duration")) .withArguments(new IntegerArgument("strength")) .executes((sender, args) -> { - Player target = (Player) args[0]; - PotionEffectType potion = (PotionEffectType) args[1]; - int duration = (int) args[2]; - int strength = (int) args[3]; + Player target = (Player) args.get(0); + PotionEffectType potion = (PotionEffectType) args.get(1); + int duration = (int) args.get(2); + int strength = (int) args.get(3); // Add the potion effect to the target player target.addPotionEffect(new PotionEffect(potion, duration, strength)); @@ -717,7 +718,7 @@ public void objectiveCriteriaArguments() { new CommandAPICommand("giverecipe") .withArguments(new RecipeArgument("recipe")) .executesPlayer((player, args) -> { - ComplexRecipe recipe = (ComplexRecipe) args[0]; + ComplexRecipe recipe = (ComplexRecipe) args.get(0); player.getInventory().addItem(recipe.getResult()); }) .register(); @@ -730,8 +731,8 @@ public void objectiveCriteriaArguments() { .withArguments(new PlayerArgument("player")) .withArguments(new RecipeArgument("recipe")) .executes((sender, args) -> { - Player target = (Player) args[0]; - ComplexRecipe recipe = (ComplexRecipe) args[1]; + Player target = (Player) args.get(0); + ComplexRecipe recipe = (ComplexRecipe) args.get(1); target.discoverRecipe(recipe.getKey()); }) @@ -744,7 +745,7 @@ public void objectiveCriteriaArguments() { new CommandAPICommand("sound") .withArguments(new SoundArgument("sound")) .executesPlayer((player, args) -> { - player.getWorld().playSound(player.getLocation(), (Sound) args[0], 100.0f, 1.0f); + player.getWorld().playSound(player.getLocation(), (Sound) args.get(0), 100.0f, 1.0f); }) .register(); /* ANCHOR_END: soundarguments */ @@ -753,7 +754,7 @@ public void objectiveCriteriaArguments() { new CommandAPICommand("sound") .withArguments(new SoundArgument.NamespacedKey("sound")) .executesPlayer((player, args) -> { - player.getWorld().playSound(player.getLocation(), ((NamespacedKey) args[0]).asString(), 100.0f, 1.0f); + player.getWorld().playSound(player.getLocation(), ((NamespacedKey) args.get(0)).asString(), 100.0f, 1.0f); }) .register(); /* ANCHOR_END: soundarguments2 */ @@ -768,8 +769,8 @@ void timearg() { .withArguments(new GreedyStringArgument("message")) .executes((sender, args) -> { // Duration in ticks - int duration = (int) args[0]; - String message = (String) args[1]; + int duration = (int) args.get(0); + String message = (String) args.get(1); for (Player player : Bukkit.getOnlinePlayers()) { // Display the message to all players, with the default fade in/out times (10 and 20). @@ -795,10 +796,10 @@ void timearg() { .executesPlayer((player, args) -> { // Parse the arguments - int radius = (int) args[0]; + int radius = (int) args.get(0); @SuppressWarnings("unchecked") - Predicate predicate = (Predicate) args[1]; - BlockData blockData = (BlockData) args[2]; + Predicate predicate = (Predicate) args.get(1); + BlockData blockData = (BlockData) args.get(2); // Find a (solid) sphere of blocks around the player with a given radius Location center = player.getLocation(); @@ -832,7 +833,7 @@ void timearg() { // Get our predicate @SuppressWarnings("unchecked") - Predicate predicate = (Predicate) args[0]; + Predicate predicate = (Predicate) args.get(0); for (ItemStack item : player.getInventory()) { if (predicate.test(item)) { @@ -863,7 +864,7 @@ void b(){ new CommandAPICommand("award") .withArguments(new NBTCompoundArgument("nbt")) .executes((sender, args) -> { - NBTContainer nbt = (NBTContainer) args[0]; + NBTContainer nbt = (NBTContainer) args.get(0); // Do something with "nbt" here... }) @@ -879,7 +880,7 @@ void c(){ .withArguments(new TextArgument("text")) .executes((sender, args) -> { // This gives the variable "text" the contents of the TextArgument, and not the literal "hello" - String text = (String) args[0]; + String text = (String) args.get(0); }) .register(); /* ANCHOR_END: literalarguments */ @@ -917,7 +918,7 @@ void d(){ .withArguments(new TextArgument("text")) .executes((sender, args) -> { // This gives the variable "text" the contents of the TextArgument, and not the literal "hello" - String text = (String) args[0]; + String text = (String) args.get(0); }) .register(); @@ -926,7 +927,7 @@ void d(){ .withArguments(new TextArgument("text")) .executes((sender, args) -> { // This gives the variable "text" the contents of the TextArgument, and not the literal "hello" - String text = (String) args[0]; + String text = (String) args.get(0); }) .register(); /* ANCHOR_END: literalarguments3 */ @@ -938,7 +939,7 @@ void d(){ .withArguments(new MultiLiteralArgument("adventure", "creative", "spectator", "survival")) .executesPlayer((player, args) -> { // The literal string that the player enters IS available in the args[] - switch((String) args[0]) { + switch((String) args.get(0)) { case "adventure": player.setGameMode(GameMode.ADVENTURE); break; @@ -962,7 +963,7 @@ void d(){ new CommandAPICommand("tpworld") .withArguments(worldArgument("world")) .executesPlayer((player, args) -> { - player.teleport(((World) args[0]).getSpawnLocation()); + player.teleport(((World) args.get(0)).getSpawnLocation()); }) .register(); /* ANCHOR_END: customarguments */ @@ -994,7 +995,7 @@ public Argument worldArgument(String nodeName) { new CommandAPICommand("runfunc") .withArguments(new FunctionArgument("function")) .executes((sender, args) -> { - FunctionWrapper[] functions = (FunctionWrapper[]) args[0]; + FunctionWrapper[] functions = (FunctionWrapper[]) args.get(0); for (FunctionWrapper function : functions) { function.run(); // The command executor in this case is 'sender' } @@ -1008,7 +1009,7 @@ public Argument worldArgument(String nodeName) { new CommandAPICommand("runfunction") .withArguments(new FunctionArgument("function")) .executes((sender, args) -> { - FunctionWrapper[] functions = (FunctionWrapper[]) args[0]; + FunctionWrapper[] functions = (FunctionWrapper[]) args.get(0); // Run all functions in our FunctionWrapper[] for (FunctionWrapper function : functions) { @@ -1058,7 +1059,7 @@ public Argument worldArgument(String nodeName) { new CommandAPICommand("kill") .withArguments(new PlayerArgument("target").withPermission(CommandPermission.OP)) .executesPlayer((player, args) -> { - ((Player) args[0]).setHealth(0); + ((Player) args.get(0)).setHealth(0); }) .register(); /* ANCHOR_END: permissions3_2 */ @@ -1080,7 +1081,7 @@ public Argument worldArgument(String nodeName) { .withPermission("economy.other") // The important part of this example .withArguments(new PlayerArgument("target")) .executesPlayer((player, args) -> { - Player target = (Player) args[0]; + Player target = (Player) args.get(0); // Send executor, the targets balance here. }) .register(); @@ -1091,8 +1092,8 @@ public Argument worldArgument(String nodeName) { .withArguments(new PlayerArgument("target")) .withArguments(new DoubleArgument("amount")) .executesPlayer((player, args) -> { - Player target = (Player) args[0]; - double amount = (Double) args[1]; + Player target = (Player) args.get(0); + double amount = (Double) args.get(1); // Update player balance here }) .register(); @@ -1102,7 +1103,7 @@ public Argument worldArgument(String nodeName) { .withPermission("economy.admin.reset") // The important part of this example .withArguments(new PlayerArgument("target")) .executesPlayer((player, args) -> { - Player target = (Player) args[0]; + Player target = (Player) args.get(0); // Reset target balance here }) .register(); @@ -1185,7 +1186,7 @@ void normalcommandexecutors3() { .withAliases("broadcast", "broadcastmessage") // Command aliases .withPermission(CommandPermission.OP) // Required permissions .executes((sender, args) -> { - String message = (String) args[0]; + String message = (String) args.get(0); Bukkit.getServer().broadcastMessage(message); }) .register(); @@ -1259,7 +1260,7 @@ void resultingcommandexecutor3(){ new CommandAPICommand("givereward") .withArguments(new EntitySelectorArgument.OnePlayer("target")) .executes((sender, args) -> { - Player player = (Player) args[0]; + Player player = (Player) args.get(0); player.getInventory().addItem(new ItemStack(Material.DIAMOND, 64)); Bukkit.broadcastMessage(player.getName() + " won a rare 64 diamonds from a loot box!"); }) @@ -1276,7 +1277,7 @@ void resultingcommandexecutor3(){ new CommandAPICommand("getfruit") .withArguments(new StringArgument("item").replaceSuggestions(ArgumentSuggestions.strings(fruit))) .executes((sender, args) -> { - String inputFruit = (String) args[0]; + String inputFruit = (String) args.get(0); if (Arrays.stream(fruit).anyMatch(inputFruit::equals)) { // Do something with inputFruit @@ -1333,7 +1334,7 @@ void resultingcommandexecutor3(){ new CommandAPICommand("kill") .withArguments(new PlayerArgument("target")) .executesPlayer((player, args) -> { - ((Player) args[0]).setHealth(0); + ((Player) args.get(0)).setHealth(0); }) .register(); /* ANCHOR_END: argumentkillcmd2 */ @@ -1350,9 +1351,9 @@ public void argumentCasting() { new CommandAPICommand("cmd") .withArguments(arguments) .executes((sender, args) -> { - String stringArg = (String) args[0]; - PotionEffectType potionArg = (PotionEffectType) args[1]; - Location locationArg = (Location) args[2]; + String stringArg = (String) args.get(0); + PotionEffectType potionArg = (PotionEffectType) args.get(1); + Location locationArg = (Location) args.get(2); }) .register(); /* ANCHOR_END: argumentcasting */ @@ -1401,7 +1402,7 @@ public void argumentCasting() { .executesPlayer((player, args) -> { // Get the name of the party to create - String partyName = (String) args[0]; + String partyName = (String) args.get(0); partyMembers.put(player.getUniqueId(), partyName); }) @@ -1450,7 +1451,7 @@ public void argumentCasting() { new CommandAPICommand("party") .withArguments(arguments) .executesPlayer((player, args) -> { - Player target = (Player) args[0]; + Player target = (Player) args.get(0); player.teleport(target); }) .register(); @@ -1462,7 +1463,7 @@ public void argumentCasting() { .executesPlayer((player, args) -> { // Get the name of the party to create - String partyName = (String) args[0]; + String partyName = (String) args.get(0); partyMembers.put(player.getUniqueId(), partyName); @@ -1671,7 +1672,7 @@ void help() { .withArguments(new AngleArgument("amount")) .executesPlayer((player, args) -> { Location newLocation = player.getLocation(); - newLocation.setYaw((float) args[0]); + newLocation.setYaw((float) args.get(0)); player.teleport(newLocation); }) .register(); @@ -1686,8 +1687,8 @@ void help() { .withArguments(new GreedyStringArgument("message")) .executes((sender, args) -> { // args == [player, message] - Player player = (Player) args[0]; - String message = (String) args[1]; // Note that this is args[1] and NOT args[2] + Player player = (Player) args.get(0); + String message = (String) args.get(1); // Note that this is args.get(1) and NOT args.get(2) player.sendMessage(message); }) .register(); @@ -1712,8 +1713,8 @@ void help() { new CommandAPICommand("emote") .withArguments(arguments) .executesPlayer((player, args) -> { - String emote = (String) args[0]; - Player target = (Player) args[1]; + String emote = (String) args.get(0); + Player target = (Player) args.get(1); switch(emote) { case "wave": @@ -1741,7 +1742,7 @@ void help() { new CommandAPICommand("giveitem") .withArguments(new StringArgument("item").replaceSuggestions(ArgumentSuggestions.stringsWithTooltips(customItems))) // We use customItems[] as the input for our suggestions with tooltips .executesPlayer((player, args) -> { - String itemName = (String) args[0]; + String itemName = (String) args.get(0); // Give them the item for (CustomItem item : customItems) { @@ -1773,7 +1774,7 @@ void help() { new CommandAPICommand("warp") .withArguments(arguments) .executesPlayer((player, args) -> { - player.teleport((Location) args[0]); + player.teleport((Location) args.get(0)); }) .register(); /* ANCHOR_END: SafeTooltips2 */ @@ -1809,8 +1810,8 @@ void help() { new CommandAPICommand("localmsg") .withArguments(arguments) .executesPlayer((player, args) -> { - Player target = (Player) args[1]; - String message = (String) args[2]; + Player target = (Player) args.get(1); + String message = (String) args.get(2); target.sendMessage(message); }) .register(); @@ -1827,7 +1828,7 @@ void help() { new CommandAPICommand("friendtp") .withArguments(arguments) .executesPlayer((player, args) -> { - Player target = (Player) args[0]; + Player target = (Player) args.get(0); player.teleport(target); }) .register(); @@ -1845,7 +1846,7 @@ void help() { new CommandAPICommand("warp") .withArguments(arguments) .executesPlayer((player, args) -> { - String warp = (String) args[0]; + String warp = (String) args.get(0); player.teleport(warps.get(warp)); // Look up the warp in a map, for example }) .register(); @@ -1888,7 +1889,7 @@ void SafeRecipeArguments() { new CommandAPICommand("giverecipe") .withArguments(arguments) .executesPlayer((player, args) -> { - Recipe recipe = (Recipe) args[0]; + Recipe recipe = (Recipe) args.get(0); player.getInventory().addItem(recipe.getResult()); }) .register(); @@ -1921,7 +1922,7 @@ void SafeRecipeArguments() { new CommandAPICommand("spawnmob") .withArguments(arguments) .executesPlayer((player, args) -> { - EntityType entityType = (EntityType) args[0]; + EntityType entityType = (EntityType) args.get(0); player.getWorld().spawnEntity(player.getLocation(), entityType); }) .register(); @@ -1948,8 +1949,8 @@ void SafeRecipeArguments() { new CommandAPICommand("removeeffect") .withArguments(arguments) .executesPlayer((player, args) -> { - Player target = (Player) args[0]; - PotionEffectType potionEffect = (PotionEffectType) args[1]; + Player target = (Player) args.get(0); + PotionEffectType potionEffect = (PotionEffectType) args.get(1); target.removePotionEffect(potionEffect); }) .register(); @@ -2003,8 +2004,8 @@ void SafeRecipeArguments() { }))) .withArguments(new TextArgument("value")) .executes((sender, args) -> { - String key = (String) args[0]; - String value = (String) args[1]; + String key = (String) args.get(0); + String value = (String) args.get(1); plugin.getConfig().set(key, value); }) .register(); @@ -2024,8 +2025,8 @@ void listargument() { .buildGreedy() ) .executesPlayer((player, args) -> { - int amount = (int) args[0]; - List theList = (List) args[1]; + int amount = (int) args.get(0); + List theList = (List) args.get(1); for (Material item : theList) { player.getInventory().addItem(new ItemStack(item, amount)); @@ -2085,7 +2086,7 @@ void brigadierargs() { .withArguments(new GreedyStringArgument("command").replaceSuggestions(commandSuggestions)) .executes((sender, args) -> { // Run the command using Bukkit.dispatchCommand() - Bukkit.dispatchCommand(sender, (String) args[0]); + Bukkit.dispatchCommand(sender, (String) args.get(0)); }).register(); /* ANCHOR_END: BrigadierSuggestions2 */ @@ -2137,7 +2138,7 @@ void emojis() { new CommandAPICommand("emoji") .withArguments(messageArgument) .executes((sender, args) -> { - Bukkit.broadcastMessage((String) args[0]); + Bukkit.broadcastMessage((String) args.get(0)); }) .register(); /* ANCHOR_END: BrigadierSuggestions3 */ @@ -2159,21 +2160,21 @@ void emojis() { }) // Create a further branch starting with an integer argument, which executes a command .then(new IntegerArgument("integer").executes((sender, args) -> { - sender.sendMessage("Integer Branch with integer argument: " + args[0]); + sender.sendMessage("Integer Branch with integer argument: " + args.get(0)); }))) .then(new LiteralArgument("biome") .executes((sender, args) -> { sender.sendMessage("Biome Branch with no arguments"); }) .then(new BiomeArgument("biome").executes((sender, args) -> { - sender.sendMessage("Biome Branch with biome argument: " + args[0]); + sender.sendMessage("Biome Branch with biome argument: " + args.get(0)); }))) .then(new LiteralArgument("string") .executes((sender, args) -> { sender.sendMessage("String Branch with no arguments"); }) .then(new StringArgument("string").executes((sender, args) -> { - sender.sendMessage("String Branch with string argument: " + args[0]); + sender.sendMessage("String Branch with string argument: " + args.get(0)); }))) // Call register to finish as you normally would .register(); @@ -2185,7 +2186,7 @@ void emojis() { }) .then(new PlayerArgument("target") .executes((sender, args) -> { - Player target = (Player) args[0]; + Player target = (Player) args.get(0); target.sendMessage("Hi"); })) .register(); @@ -2203,8 +2204,8 @@ public void signedit(){ .executesPlayer((player, args) -> { // /signedit set Sign sign = getTargetSign(player); - int line_number = (int) args[0]; - String text = (String) args[1]; + int line_number = (int) args.get(0); + String text = (String) args.get(1); sign.setLine(line_number - 1, text); sign.update(true); })))) @@ -2213,7 +2214,7 @@ public void signedit(){ .executesPlayer((player, args) -> { // /signedit clear Sign sign = getTargetSign(player); - int line_number = (int) args[0]; + int line_number = (int) args.get(0); sign.setLine(line_number - 1, ""); sign.update(true); }))) @@ -2222,7 +2223,7 @@ public void signedit(){ .executesPlayer((player, args) -> { // /signedit copy Sign sign = getTargetSign(player); - int line_number = (int) args[0]; + int line_number = (int) args.get(0); player.setMetadata("copied_sign_text", new FixedMetadataValue(this, sign.getLine(line_number - 1))); }))) .then(new LiteralArgument("paste") @@ -2230,7 +2231,7 @@ public void signedit(){ .executesPlayer((player, args) -> { // /signedit copy Sign sign = getTargetSign(player); - int line_number = (int) args[0]; + int line_number = (int) args.get(0); sign.setLine(line_number - 1, player.getMetadata("copied_sign_text").get(0).asString()); sign.update(true); }))) @@ -2253,8 +2254,8 @@ public Sign getTargetSign(Player player) throws WrapperCommandSyntaxException { .withArguments(new PlayerArgument("target")) .withArguments(new CommandArgument("command")) .executes((sender, args) -> { - Player target = (Player) args[0]; - CommandResult command = (CommandResult) args[1]; + Player target = (Player) args.get(0); + CommandResult command = (CommandResult) args.get(1); command.execute(target); }) diff --git a/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt index 6ad38c7b72..01fd2dbb5f 100644 --- a/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt +++ b/commandapi-documentation-code/src/main/kotlin/dev/jorel/commandapi/examples/kotlin/ExamplesKotlinDSL.kt @@ -1,4 +1,3 @@ -import dev.jorel.commandapi.* import dev.jorel.commandapi.kotlindsl.* import dev.jorel.commandapi.arguments.ArgumentSuggestions import dev.jorel.commandapi.arguments.LiteralArgument.of diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java index d746b9b8e7..b4b422794d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/BukkitExecutable.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; import dev.jorel.commandapi.executors.*; import org.bukkit.command.CommandSender; @@ -23,8 +24,28 @@ default Impl executes(CommandExecutor executor, ExecutorType... types) { getExecutor().addNormalExecutor(new CommandExecutor() { @Override - public void run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - executor.executeWith(CommandAPIBukkit.get().wrapCommandSender(sender), args); + public void run(AbstractExecutionInfo> info) throws WrapperCommandSyntaxException { + run(info.sender(), info.args()); + } + + @Override + public void run(CommandSender sender, CommandArguments args) throws WrapperCommandSyntaxException { + executor.executeWith(new BukkitExecutionInfo<>(sender, new BukkitCommandSender() { + @Override + public boolean hasPermission(String permissionNode) { + return sender.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + return sender.isOp(); + } + + @Override + public CommandSender getSource() { + return sender; + } + }, args)); } @Override @@ -40,7 +61,36 @@ public ExecutorType getType() { /** * Adds an executor to the current command builder * - * @param executor A lambda of type (CommandSender, Object[]) -> int that will be executed when the command is run + * @param executor A lambda of type (CommandSender, CommandArguments) -> () that will be executed when the command is run + * @param types A list of executor types to use this executes method for. + * @return this command builder + */ + default Impl executes(CommandExecutionInfo executor, ExecutorType... types) { + if (types == null || types.length == 0) { + getExecutor().addNormalExecutor(executor); + } else { + for (ExecutorType type : types) { + getExecutor().addNormalExecutor(new CommandExecutionInfo() { + + @Override + public void run(AbstractExecutionInfo> info) throws WrapperCommandSyntaxException { + executor.executeWith(info); + } + + @Override + public ExecutorType getType() { + return type; + } + }); + } + } + return instance(); + } + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (CommandSender, CommandArguments) -> int that will be executed when the command is run * @param types A list of executor types to use this executes method for. * @return this command builder */ @@ -52,8 +102,54 @@ default Impl executes(ResultingCommandExecutor executor, ExecutorType... types) getExecutor().addResultingExecutor(new ResultingCommandExecutor() { @Override - public int run(CommandSender sender, Object[] args) throws WrapperCommandSyntaxException { - return executor.executeWith(CommandAPIBukkit.get().wrapCommandSender(sender), args); + public int run(CommandSender sender, CommandArguments args) throws WrapperCommandSyntaxException { + executor.executeWith(new BukkitExecutionInfo<>(sender, new BukkitCommandSender<>() { + @Override + public boolean hasPermission(String permissionNode) { + return sender.hasPermission(permissionNode); + } + + @Override + public boolean isOp() { + return sender.isOp(); + } + + @Override + public CommandSender getSource() { + return sender; + } + }, args)); + return 1; + } + + @Override + public ExecutorType getType() { + return type; + } + }); + } + } + return instance(); + } + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (CommandSender, CommandArguments) -> int that will be executed when the command is run + * @param types A list of executor types to use this executes method for. + * @return this command builder + */ + default Impl executes(ResultingCommandExecutionInfo executor, ExecutorType... types) { + if (types == null || types.length == 0) { + getExecutor().addResultingExecutor(executor); + } else { + for (ExecutorType type : types) { + getExecutor().addResultingExecutor(new ResultingCommandExecutionInfo() { + + @Override + public int run(AbstractExecutionInfo> info) throws WrapperCommandSyntaxException { + executor.executeWith(info); + return 1; } @Override @@ -66,12 +162,13 @@ public ExecutorType getType() { return instance(); } + // Player command executor /** * Adds an executor to the current command builder * - * @param executor A lambda of type (Player, Object[]) -> () that will be executed when the command is run + * @param executor A lambda of type (Player, CommandArguments) -> () that will be executed when the command is run * @return this command builder */ default Impl executesPlayer(PlayerCommandExecutor executor) { @@ -82,7 +179,18 @@ default Impl executesPlayer(PlayerCommandExecutor executor) { /** * Adds an executor to the current command builder * - * @param executor A lambda of type (Player, Object[]) -> int that will be executed when the command is run + * @param info A lambda of type (ExecutionInfo) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesPlayer(PlayerExecutionInfo info) { + getExecutor().addNormalExecutor(info); + return instance(); + } + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (Player, CommandArguments) -> int that will be executed when the command is run * @return this command builder */ default Impl executesPlayer(PlayerResultingCommandExecutor executor) { @@ -90,12 +198,23 @@ default Impl executesPlayer(PlayerResultingCommandExecutor executor) { return instance(); } + /** + * Adds an executor to the current command builder + * + * @param info A lambda of type (ExecutionInfo) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesPlayer(PlayerResultingExecutionInfo info) { + getExecutor().addResultingExecutor(info); + return instance(); + } + // Entity command executor /** * Adds an executor to the current command builder * - * @param executor A lambda of type (Entity, Object[]) -> () that will be executed when the command is run + * @param executor A lambda of type (Entity, CommandArguments) -> () that will be executed when the command is run * @return this command builder */ default Impl executesEntity(EntityCommandExecutor executor) { @@ -106,7 +225,18 @@ default Impl executesEntity(EntityCommandExecutor executor) { /** * Adds an executor to the current command builder * - * @param executor A lambda of type (Entity, Object[]) -> int that will be executed when the command is run + * @param info A lambda of type (ExecutionInfo) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesEntity(EntityExecutionInfo info) { + getExecutor().addNormalExecutor(info); + return instance(); + } + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (Entity, CommandArguments) -> int that will be executed when the command is run * @return this command builder */ default Impl executesEntity(EntityResultingCommandExecutor executor) { @@ -114,12 +244,23 @@ default Impl executesEntity(EntityResultingCommandExecutor executor) { return instance(); } + /** + * Adds an executor to the current command builder + * + * @param info A lambda of type (ExecutionInfo) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesEntity(EntityResultingExecutionInfo info) { + getExecutor().addResultingExecutor(info); + return instance(); + } + // Proxy command executor /** * Adds an executor to the current command builder * - * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> () that will be executed when the command is run + * @param executor A lambda of type (Entity, CommandArguments) -> () that will be executed when the command is run * @return this command builder */ default Impl executesProxy(ProxyCommandExecutor executor) { @@ -130,7 +271,18 @@ default Impl executesProxy(ProxyCommandExecutor executor) { /** * Adds an executor to the current command builder * - * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> int that will be executed when the command is run + * @param info A lambda of type (ExecutionInfo) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesProxy(ProxyExecutionInfo info) { + getExecutor().addNormalExecutor(info); + return instance(); + } + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (Entity, CommandArguments) -> int that will be executed when the command is run * @return this command builder */ default Impl executesProxy(ProxyResultingCommandExecutor executor) { @@ -138,12 +290,23 @@ default Impl executesProxy(ProxyResultingCommandExecutor executor) { return instance(); } + /** + * Adds an executor to the current command builder + * + * @param info A lambda of type (ExecutionInfo) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesProxy(ProxyResultingExecutionInfo info) { + getExecutor().addResultingExecutor(info); + return instance(); + } + // Command block command sender /** * Adds an executor to the current command builder * - * @param executor A lambda of type (BlockCommandSender, Object[]) -> () that will be executed when the command is run + * @param executor A lambda of type (BlockCommandSender, CommandArguments) -> () that will be executed when the command is run * @return this command builder */ default Impl executesCommandBlock(CommandBlockCommandExecutor executor) { @@ -154,7 +317,18 @@ default Impl executesCommandBlock(CommandBlockCommandExecutor executor) { /** * Adds an executor to the current command builder * - * @param executor A lambda of type (BlockCommandSender, Object[]) -> int that will be executed when the command is run + * @param info A lambda of type (ExecutionInfo) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesCommandBlock(CommandBlockExecutionInfo info) { + getExecutor().addNormalExecutor(info); + return instance(); + } + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (BlockCommandSender, CommandArguments) -> int that will be executed when the command is run * @return this command builder */ default Impl executesCommandBlock(CommandBlockResultingCommandExecutor executor) { @@ -162,12 +336,23 @@ default Impl executesCommandBlock(CommandBlockResultingCommandExecutor executor) return instance(); } + /** + * Adds an executor to the current command builder + * + * @param info A lambda of type (ExecutionInfo) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesCommandBlock(CommandBlockResultingExecutionInfo info) { + getExecutor().addResultingExecutor(info); + return instance(); + } + // Console command sender /** * Adds an executor to the current command builder * - * @param executor A lambda of type (ConsoleCommandSender, Object[]) -> () that will be executed when the command is run + * @param executor A lambda of type (ConsoleCommandSender, CommandArguments) -> () that will be executed when the command is run * @return this command builder */ default Impl executesConsole(ConsoleCommandExecutor executor) { @@ -178,7 +363,18 @@ default Impl executesConsole(ConsoleCommandExecutor executor) { /** * Adds an executor to the current command builder * - * @param executor A lambda of type (ConsoleCommandSender, Object[]) -> int that will be executed when the command is run + * @param info A lambda of type (ExecutionInfo) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesConsole(ConsoleExecutionInfo info) { + getExecutor().addNormalExecutor(info); + return instance(); + } + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (ConsoleCommandSender, CommandArguments) -> int that will be executed when the command is run * @return this command builder */ default Impl executesConsole(ConsoleResultingCommandExecutor executor) { @@ -189,7 +385,20 @@ default Impl executesConsole(ConsoleResultingCommandExecutor executor) { /** * Adds an executor to the current command builder * - * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> () that will be executed when the command is run + * @param info A lambda of type (ExecutionInfo) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesConsole(ConsoleResultingExecutionInfo info) { + getExecutor().addResultingExecutor(info); + return instance(); + } + + // Native command sender + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (NativeCommandExecutor, CommandArguments) -> () that will be executed when the command is run * @return this command builder */ default Impl executesNative(NativeCommandExecutor executor) { @@ -200,11 +409,35 @@ default Impl executesNative(NativeCommandExecutor executor) { /** * Adds an executor to the current command builder * - * @param executor A lambda of type (NativeProxyCommandSender, Object[]) -> int that will be executed when the command is run + * @param info A lambda of type (ExecutionInfo) -> () that will be executed when the command is run + * @return this command builder + */ + default Impl executesNative(NativeExecutionInfo info) { + getExecutor().addNormalExecutor(info); + return instance(); + } + + /** + * Adds an executor to the current command builder + * + * @param executor A lambda of type (NativeCommandExecutor, CommandArguments) -> int that will be executed when the command is run * @return this command builder */ default Impl executesNative(NativeResultingCommandExecutor executor) { getExecutor().addResultingExecutor(executor); return instance(); } + + /** + * Adds an executor to the current command builder + * + * @param info A lambda of type (ExecutionInfo) -> int that will be executed when the command is run + * @return this command builder + */ + default Impl executesNative(NativeResultingExecutionInfo info) { + getExecutor().addResultingExecutor(info); + return instance(); + } + + } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java index c8bdd1b4cc..85bd8a403e 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/Converter.java @@ -23,6 +23,8 @@ import dev.jorel.commandapi.arguments.Argument; import dev.jorel.commandapi.arguments.GreedyStringArgument; import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.executors.AbstractExecutionInfo; +import dev.jorel.commandapi.executors.CommandArguments; import dev.jorel.commandapi.executors.NativeCommandExecutor; import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; import org.bukkit.Bukkit; @@ -134,7 +136,7 @@ private static void convertCommand(String commandName, List> argumen // We know the args are a String[] because that's how converted things are // handled in generateCommand() CommandSender proxiedSender = mergeProxySender(sender); - Bukkit.dispatchCommand(proxiedSender, commandName + " " + String.join(" ", (String[]) args)); + Bukkit.dispatchCommand(proxiedSender, commandName + " " + String.join(" ", (String[]) args.args())); }); multiArgs.setConverted(true); @@ -197,7 +199,7 @@ private static void convertPluginCommand(JavaPlugin plugin, String commandName, ? sender.getCallee() : mergeProxySender(sender); - command.execute(proxiedSender, commandName, (String[]) args); + command.execute(proxiedSender, commandName, (String[]) args.args()); }; // No arguments @@ -206,7 +208,22 @@ private static void convertPluginCommand(JavaPlugin plugin, String commandName, .withAliases(aliases) .withFullDescription(fullDescription) .executesNative((sender, args) -> { - executor.executeWith(new BukkitNativeProxyCommandSender(sender), new String[0]); + executor.executeWith(new AbstractExecutionInfo<>() { + @Override + public NativeProxyCommandSender sender() { + return sender; + } + + @Override + public BukkitNativeProxyCommandSender senderWrapper() { + return new BukkitNativeProxyCommandSender(sender); + } + + @Override + public CommandArguments args() { + return args; + } + }); }) .register(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/BukkitExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/BukkitExecutionInfo.java new file mode 100644 index 0000000000..92e0077acd --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/BukkitExecutionInfo.java @@ -0,0 +1,28 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; + +/** + * This record represents a BukkitExecutionInfo for a command. It provides the sender of a command, as well as it's arguments + * + * @param The type of the sender of a command this BukkitExecutionInfo belongs to + */ +public record BukkitExecutionInfo( + + /** + * @return The sender of this command + */ + Sender sender, + + /** + * @return The wrapper type of this command + */ + BukkitCommandSender senderWrapper, + + /** + * @return The arguments of this command + */ + CommandArguments args + +) implements AbstractExecutionInfo> { +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java index 5e888c52be..24e1ddef90 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockCommandExecutor.java @@ -34,14 +34,20 @@ public interface CommandBlockCommandExecutor extends IExecutorNormal info) throws WrapperCommandSyntaxException { + this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockExecutionInfo.java new file mode 100644 index 0000000000..00c42f6d3d --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockExecutionInfo.java @@ -0,0 +1,28 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitBlockCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.command.BlockCommandSender; + +@FunctionalInterface +public interface CommandBlockExecutionInfo extends IExecutorNormal { + + /** + * Executes the command. + * + * @param info The AbstractExecutionInfo for this command + * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command + */ + void run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.BLOCK; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java index 033fb55abe..7b3d67728d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingCommandExecutor.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import org.bukkit.command.BlockCommandSender; import dev.jorel.commandapi.commandsenders.BukkitBlockCommandSender; @@ -34,16 +35,24 @@ public interface CommandBlockResultingCommandExecutor extends IExecutorResulting /** * The code to run when this command is performed * - * @param sender - * The sender of this command (a player, the console etc.) - * @param args - * The arguments given to this command. The objects are - * determined by the hashmap of arguments IN THE ORDER of - * insertion into the hashmap + * @param sender The sender of this command (a player, the console etc.) + * @param args The arguments given to this command. * * @return the result of this command */ - int run(BlockCommandSender sender, Object[] args) throws WrapperCommandSyntaxException; + int run(BlockCommandSender sender, CommandArguments args) throws WrapperCommandSyntaxException; + + /** + * The code to run when this command is performed + * + * @param info The AbstractExecutionInfo for this command + * + * @return the result of this command + */ + @Override + default int run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException { + return this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingExecutionInfo.java new file mode 100644 index 0000000000..e028d850bb --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandBlockResultingExecutionInfo.java @@ -0,0 +1,27 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitBlockCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.command.BlockCommandSender; + +@FunctionalInterface +public interface CommandBlockResultingExecutionInfo extends IExecutorResulting { + + /** + * The code to run when this command is performed + * + * @param info The AbstractExecutionInfo for this command + * @return the result of this command + */ + int run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.BLOCK; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutionInfo.java new file mode 100644 index 0000000000..b09ee4411e --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutionInfo.java @@ -0,0 +1,29 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.command.CommandSender; + +@FunctionalInterface +public interface CommandExecutionInfo extends IExecutorNormal> { + + /** + * Executes the command. + * + * @param info The AbstractExecutionInfo for this command + * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command + */ + void run(AbstractExecutionInfo> info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.ALL; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java index bf8643e601..558bd80d01 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/CommandExecutor.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import org.bukkit.command.CommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -34,14 +35,20 @@ public interface CommandExecutor extends IExecutorNormal> info) throws WrapperCommandSyntaxException { + this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java index 1461620885..f2a2755314 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleCommandExecutor.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import org.bukkit.command.ConsoleCommandSender; import dev.jorel.commandapi.commandsenders.BukkitConsoleCommandSender; @@ -34,14 +35,20 @@ public interface ConsoleCommandExecutor extends IExecutorNormal info) throws WrapperCommandSyntaxException { + this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleExecutionInfo.java new file mode 100644 index 0000000000..0139776c7b --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleExecutionInfo.java @@ -0,0 +1,28 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitConsoleCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.command.ConsoleCommandSender; + +@FunctionalInterface +public interface ConsoleExecutionInfo extends IExecutorNormal { + + /** + * Executes the command. + * + * @param info The AbstractExecutionInfo for this command + * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command + */ + void run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.CONSOLE; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java index e5e5e939ce..8298928b31 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingCommandExecutor.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import org.bukkit.command.ConsoleCommandSender; import dev.jorel.commandapi.commandsenders.BukkitConsoleCommandSender; @@ -34,15 +35,22 @@ public interface ConsoleResultingCommandExecutor extends IExecutorResulting info) throws WrapperCommandSyntaxException { + return this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingExecutionInfo.java new file mode 100644 index 0000000000..a2da37bede --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ConsoleResultingExecutionInfo.java @@ -0,0 +1,26 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitConsoleCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.command.ConsoleCommandSender; + +@FunctionalInterface +public interface ConsoleResultingExecutionInfo extends IExecutorResulting { + + /** + * The code to run when this command is performed + * + * @param info The AbstractExecutionInfo for this command + * @return the result of this command + */ + int run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.CONSOLE; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java index 9ea6fa96f3..df9fa6e544 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityCommandExecutor.java @@ -20,10 +20,9 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import org.bukkit.entity.Entity; - import dev.jorel.commandapi.commandsenders.BukkitEntity; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.entity.Entity; /** * A normal command executor for an Entity @@ -34,14 +33,21 @@ public interface EntityCommandExecutor extends IExecutorNormal info) throws WrapperCommandSyntaxException { + this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityExecutionInfo.java new file mode 100644 index 0000000000..05d1ae7f8f --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityExecutionInfo.java @@ -0,0 +1,28 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitEntity; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.entity.Entity; + +@FunctionalInterface +public interface EntityExecutionInfo extends IExecutorNormal { + + /** + * Executes the command. + * + * @param info The AbstractExecutionInfo for this command + * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command + */ + void run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.ENTITY; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java index 1fc2bd2bbc..7acb56dd5f 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingCommandExecutor.java @@ -20,10 +20,9 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import org.bukkit.entity.Entity; - import dev.jorel.commandapi.commandsenders.BukkitEntity; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.entity.Entity; /** * A resulting command executor for an Entity @@ -34,15 +33,22 @@ public interface EntityResultingCommandExecutor extends IExecutorResulting info) throws WrapperCommandSyntaxException { + return this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingExecutionInfo.java new file mode 100644 index 0000000000..2210122050 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/EntityResultingExecutionInfo.java @@ -0,0 +1,27 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitEntity; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.entity.Entity; + +@FunctionalInterface +public interface EntityResultingExecutionInfo extends IExecutorResulting { + + /** + * The code to run when this command is performed + * + * @param info The AbstractExecutionInfo for this command + * @return the result of this command + */ + int run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.ENTITY; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java index 80ca9c896b..28a90dffdd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeCommandExecutor.java @@ -33,14 +33,21 @@ public interface NativeCommandExecutor extends IExecutorNormal info) throws WrapperCommandSyntaxException { + this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeExecutionInfo.java new file mode 100644 index 0000000000..cb9827fecd --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeExecutionInfo.java @@ -0,0 +1,28 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; + +@FunctionalInterface +public interface NativeExecutionInfo extends IExecutorNormal { + + /** + * Executes the command. + * + * @param info The AbstractExecutionInfo for this command + * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command + */ + void run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.NATIVE; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java index ab1e426525..fef400b462 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingCommandExecutor.java @@ -33,15 +33,22 @@ public interface NativeResultingCommandExecutor extends IExecutorResulting info) throws WrapperCommandSyntaxException { + return this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingExecutionInfo.java new file mode 100644 index 0000000000..80a5c67de7 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/NativeResultingExecutionInfo.java @@ -0,0 +1,26 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; + +public interface NativeResultingExecutionInfo extends IExecutorResulting { + + /** + * The code to run when this command is performed + * + * @param info The AbstractExecutionInfo for this command + * @return the result of this command + */ + int run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.NATIVE; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java index 0e4138fd41..9b14214641 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerCommandExecutor.java @@ -20,10 +20,9 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import org.bukkit.entity.Player; - import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.entity.Player; /** * A normal command executor for a Player @@ -34,14 +33,20 @@ public interface PlayerCommandExecutor extends IExecutorNormal info) throws WrapperCommandSyntaxException { + this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerExecutionInfo.java new file mode 100644 index 0000000000..4489b42250 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerExecutionInfo.java @@ -0,0 +1,27 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitPlayer; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.entity.Player; + +@FunctionalInterface +public interface PlayerExecutionInfo extends IExecutorNormal { + + /** + * Executes the command. + * + * @param info The AbstractExecutionInfo for this command + * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command + */ + void run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.PLAYER; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java index 880ace2830..55c7a3d5b7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingCommandExecutor.java @@ -20,10 +20,9 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; -import org.bukkit.entity.Player; - import dev.jorel.commandapi.commandsenders.BukkitPlayer; import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.entity.Player; /** * A resulting command executor for a Player @@ -34,15 +33,23 @@ public interface PlayerResultingCommandExecutor extends IExecutorResulting info) throws WrapperCommandSyntaxException { + return this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingExecutionInfo.java new file mode 100644 index 0000000000..a67d6f34d3 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/PlayerResultingExecutionInfo.java @@ -0,0 +1,24 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitPlayer; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.entity.Player; + +public interface PlayerResultingExecutionInfo extends IExecutorResulting { + + /** + * @param info The AbstractExecutionInfo for this command + * @return the result of this command + * @throws WrapperCommandSyntaxException + */ + int run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.PLAYER; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java index 7a1ec9208c..03a3c9c129 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyCommandExecutor.java @@ -33,14 +33,21 @@ public interface ProxyCommandExecutor extends IExecutorNormal info) throws WrapperCommandSyntaxException { + this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyExecutionInfo.java new file mode 100644 index 0000000000..abc8d82074 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyExecutionInfo.java @@ -0,0 +1,28 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; + +@FunctionalInterface +public interface ProxyExecutionInfo extends IExecutorNormal { + + /** + * Executes the command. + * + * @param info The AbstractExecutionInfo for this command + * @throws WrapperCommandSyntaxException if an error occurs during the execution of this command + */ + void run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.PROXY; + } + +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java index 1f80f9d96c..ffc79bc9e7 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingCommandExecutor.java @@ -33,15 +33,23 @@ public interface ProxyResultingCommandExecutor extends IExecutorResulting info) throws WrapperCommandSyntaxException { + return this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingExecutionInfo.java new file mode 100644 index 0000000000..e8270b5e8b --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ProxyResultingExecutionInfo.java @@ -0,0 +1,27 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitNativeProxyCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import dev.jorel.commandapi.wrappers.NativeProxyCommandSender; + +@FunctionalInterface +public interface ProxyResultingExecutionInfo extends IExecutorResulting { + + /** + * The code to run when this command is performed + * + * @param info The AbstractExecutionInfo for this command + * @return the command result + * @throws WrapperCommandSyntaxException + */ + int run(AbstractExecutionInfo info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.PROXY; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutionInfo.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutionInfo.java new file mode 100644 index 0000000000..8475c86aa0 --- /dev/null +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutionInfo.java @@ -0,0 +1,27 @@ +package dev.jorel.commandapi.executors; + +import dev.jorel.commandapi.commandsenders.BukkitCommandSender; +import dev.jorel.commandapi.exceptions.WrapperCommandSyntaxException; +import org.bukkit.command.CommandSender; + +@FunctionalInterface +public interface ResultingCommandExecutionInfo extends IExecutorResulting> { + + /** + * The code to run when this command is performed + * + * @param info The AbstractExecutionInfo for this command + * @return the result of this command + * @throws WrapperCommandSyntaxException + */ + int run(AbstractExecutionInfo> info) throws WrapperCommandSyntaxException; + + /** + * Returns the type of the sender of the current executor. + * @return the type of the sender of the current executor + */ + @Override + default ExecutorType getType() { + return ExecutorType.ALL; + } +} diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java index c4d5dbdb4b..c050ad29bd 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-core/src/main/java/dev/jorel/commandapi/executors/ResultingCommandExecutor.java @@ -20,6 +20,7 @@ *******************************************************************************/ package dev.jorel.commandapi.executors; +import dev.jorel.commandapi.commandsenders.AbstractCommandSender; import org.bukkit.command.CommandSender; import dev.jorel.commandapi.commandsenders.BukkitCommandSender; @@ -34,15 +35,23 @@ public interface ResultingCommandExecutor extends IExecutorResulting> info) throws WrapperCommandSyntaxException { + return this.run(info.sender(), info.args()); + } /** * Returns the type of the sender of the current executor. diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java index 4f57cc5b19..b7de32c2db 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/ArgumentTests.java @@ -101,7 +101,7 @@ public void executionTestWithStringArgument() { new CommandAPICommand("test") .withArguments(new StringArgument("value")) .executesPlayer((player, args) -> { - String value = (String) args[0]; + String value = (String) args.get(0); player.sendMessage("success " + value); }) .register(); @@ -299,7 +299,7 @@ public void executionTestWithBooleanArgument() { new CommandAPICommand("test") .withArguments(new BooleanArgument("value")) .executesPlayer((player, args) -> { - boolean value = (boolean) args[0]; + boolean value = (boolean) args.get(0); player.sendMessage("success " + value); }) .register(); @@ -317,7 +317,7 @@ public void executionTestWithAdvancementArgument() { new CommandAPICommand("adv") .withArguments(new AdvancementArgument("value")) .executesPlayer((player, args) -> { - Advancement advancement = (Advancement) args[0]; + Advancement advancement = (Advancement) args.get(0); player.sendMessage(advancement.getKey().asString()); }) .register(); @@ -338,7 +338,7 @@ public void executionTestWithLocationArgument() { new CommandAPICommand("loc3") .withArguments(new LocationArgument("value", LocationType.PRECISE_POSITION)) .executesPlayer((player, args) -> { - Location value = (Location) args[0]; + Location value = (Location) args.get(0); player.sendMessage(value.getX() + ", " + value.getY() + ", " + value.getZ()); }) .register(); @@ -346,7 +346,7 @@ public void executionTestWithLocationArgument() { new CommandAPICommand("loc3b") .withArguments(new LocationArgument("value", LocationType.BLOCK_POSITION)) .executesPlayer((player, args) -> { - Location value = (Location) args[0]; + Location value = (Location) args.get(0); player.sendMessage(value.getX() + ", " + value.getY() + ", " + value.getZ()); }) .register(); @@ -354,7 +354,7 @@ public void executionTestWithLocationArgument() { new CommandAPICommand("loc2") .withArguments(new Location2DArgument("value", LocationType.PRECISE_POSITION)) .executesPlayer((player, args) -> { - Location2D value = (Location2D) args[0]; + Location2D value = (Location2D) args.get(0); player.sendMessage(value.getX() + ", " + value.getZ()); }) .register(); @@ -362,7 +362,7 @@ public void executionTestWithLocationArgument() { new CommandAPICommand("loc2b") .withArguments(new Location2DArgument("value", LocationType.BLOCK_POSITION)) .executesPlayer((player, args) -> { - Location2D value = (Location2D) args[0]; + Location2D value = (Location2D) args.get(0); player.sendMessage(value.getX() + ", " + value.getZ()); }) .register(); @@ -394,7 +394,7 @@ public void executionTestWithEntitySelectorArgument() { new CommandAPICommand("test") .withArguments(new EntitySelectorArgument("value", EntitySelector.ONE_PLAYER)) .executesPlayer((player, args) -> { - Player value = (Player) args[0]; + Player value = (Player) args.get(0); player.sendMessage(value.getName()); }) .register(); @@ -403,7 +403,7 @@ public void executionTestWithEntitySelectorArgument() { .withArguments(new EntitySelectorArgument>("value", EntitySelector.MANY_PLAYERS)) .executesPlayer((player, args) -> { @SuppressWarnings("unchecked") - Collection value = (Collection) args[0]; + Collection value = (Collection) args.get(0); player.sendMessage(value.stream().map(Player::getName).collect(Collectors.joining(", "))); }) .register(); @@ -427,7 +427,7 @@ public void executionTestWithGreedyStringArgument() { new CommandAPICommand("test") .withArguments(new GreedyStringArgument("value")) .executesPlayer((player, args) -> { - String value = (String) args[0]; + String value = (String) args.get(0); player.sendMessage(value); }) .register(); @@ -450,7 +450,7 @@ public void executionTestWithPotionEffectArgument() { new CommandAPICommand("test") .withArguments(new PotionEffectArgument("potion")) .executesPlayer((player, args) -> { - type.set((PotionEffectType) args[0]); + type.set((PotionEffectType) args.get(0)); }) .register(); @@ -479,7 +479,7 @@ public void executionTestWithListArgument() { .withStringMapper() .build()) .executesPlayer((player, args) -> { - type.set((List) args[0]); + type.set((List) args.get(0)); }) .register(); @@ -498,7 +498,7 @@ public void executionTestWithListArgument() { .withStringMapper() .build()) .executesPlayer((player, args) -> { - type.set((List) args[0]); + type.set((List) args.get(0)); }) .register(); @@ -515,7 +515,7 @@ public void executionTestWithListArgument() { .withStringMapper() .build()) .executesPlayer((player, args) -> { - type.set((List) args[0]); + type.set((List) args.get(0)); }) .register(); @@ -533,7 +533,7 @@ public void executionTestWithListArgument() { .withStringMapper() .build()) .executesPlayer((player, args) -> { - type.set((List) args[0]); + type.set((List) args.get(0)); }) .register(); @@ -561,7 +561,7 @@ public void executionTestWithListTextArgument() { .withStringMapper() .buildText()) .executesPlayer((player, args) -> { - type.set((List) args[0]); + type.set((List) args.get(0)); }) .register(); @@ -580,7 +580,7 @@ public void executionTestWithListTextArgument() { .withStringMapper() .buildText()) .executesPlayer((player, args) -> { - type.set((List) args[0]); + type.set((List) args.get(0)); }) .register(); @@ -597,7 +597,7 @@ public void executionTestWithListTextArgument() { .withStringMapper() .buildText()) .executesPlayer((player, args) -> { - type.set((List) args[0]); + type.set((List) args.get(0)); }) .register(); @@ -615,7 +615,7 @@ public void executionTestWithListTextArgument() { .withStringMapper() .buildText()) .executesPlayer((player, args) -> { - type.set((List) args[0]); + type.set((List) args.get(0)); }) .register(); @@ -639,8 +639,8 @@ public void executionTestWithListTextArgument() { .withStringMapper() .buildText()) .executesPlayer((player, args) -> { - type.set((List) args[0]); - type.set((List) args[1]); + type.set((List) args.get(0)); + type.set((List) args.get(1)); }) .register(); @@ -657,7 +657,7 @@ public void executionTestWithPlayerArgument() { new CommandAPICommand("test") .withArguments(new PlayerArgument("target")) .executesPlayer((player, args) -> { - type.set((Player) args[0]); + type.set((Player) args.get(0)); }) .register(); @@ -676,14 +676,14 @@ public void executionTestWithChatComponentArgument() { new CommandAPICommand("spigot") .withArguments(new ChatComponentArgument("text")) .executesPlayer((player, args) -> { - spigot.set((BaseComponent[]) args[0]); + spigot.set((BaseComponent[]) args.get(0)); }) .register(); new CommandAPICommand("adventure") .withArguments(new AdventureChatComponentArgument("text")) .executesPlayer((player, args) -> { - adventure.set((Component) args[0]); + adventure.set((Component) args.get(0)); }) .register(); @@ -750,7 +750,7 @@ public boolean execute(@NotNull CommandSender commandSender, @NotNull String s, new CommandAPICommand("commandargument") .withArguments(new CommandArgument("command")) .executesPlayer((sender, args) -> { - results.set((CommandResult) args[0]); + results.set((CommandResult) args.get(0)); }).register(); assertStoresResult(player, "commandargument version", @@ -766,7 +766,7 @@ public boolean execute(@NotNull CommandSender commandSender, @NotNull String s, ArgumentSuggestions.empty() ) ).executesPlayer((sender, args) -> { - results.set((CommandResult) args[0]); + results.set((CommandResult) args.get(0)); }).register(); server.addPlayer("BPlayer"); @@ -813,7 +813,7 @@ public boolean execute(@NotNull CommandSender commandSender, @NotNull String s, ) ) ).executes((sender, args) -> { - results.set((CommandResult) args[0]); + results.set((CommandResult) args.get(0)); }).register(); // Valid commands @@ -856,14 +856,14 @@ public void executionTwoCommandsSameArgumentDifferentName() { new CommandAPICommand("test") .withArguments(new StringArgument("str_1")) .executesPlayer((player, args) -> { - str1.set((String) args[0]); + str1.set((String) args.get(0)); }) .register(); new CommandAPICommand("test") .withArguments(new StringArgument("str_2")) .executesPlayer((player, args) -> { - str2.set((String) args[0]); + str2.set((String) args.get(0)); }) .register(); @@ -882,14 +882,14 @@ public void executionTwoCommandsSameArgumentDifferentNameDifferentImplementation new CommandAPICommand("test") .withArguments(new IntegerArgument("int_1", 1, 10)) .executesPlayer((player, args) -> { - int1.set((int) args[0]); + int1.set((int) args.get(0)); }) .register(); new CommandAPICommand("test") .withArguments(new IntegerArgument("str_2", 50, 100)) .executesPlayer((player, args) -> { - int2.set((int) args[0]); + int2.set((int) args.get(0)); }) .register(); @@ -908,14 +908,14 @@ public void executionTwoCommandsSameArgumentDifferentNameDifferentImplementation new CommandAPICommand("test") .withArguments(new IntegerArgument("int_1", 1, 100)) .executesPlayer((player, args) -> { - int1.set((int) args[0]); + int1.set((int) args.get(0)); }) .register(); new CommandAPICommand("test") .withArguments(new IntegerArgument("str_2", 50, 100)) .executesPlayer((player, args) -> { - int2.set((int) args[0]); + int2.set((int) args.get(0)); }) .register(); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CommandTests.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CommandTests.java index f6c3462d95..6d65ba8bfa 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CommandTests.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-plugin-test/src/test/java/dev/jorel/commandapi/test/CommandTests.java @@ -56,8 +56,8 @@ public void testGreedyStringArgumentNotAtEnd() { .withArguments(new StringArgument("arg1")) .withArguments(new GreedyStringArgument("arg2")) .executes((sender, args) -> { - String arg1 = (String) args[0]; - String arg2 = (String) args[0]; + String arg1 = (String) args.get(0); + String arg2 = (String) args.get(0); }) .register(); }); @@ -67,8 +67,8 @@ public void testGreedyStringArgumentNotAtEnd() { .withArguments(new GreedyStringArgument("arg1")) .withArguments(new StringArgument("arg2")) .executes((sender, args) -> { - String arg1 = (String) args[0]; - String arg2 = (String) args[0]; + String arg1 = (String) args.get(0); + String arg2 = (String) args.get(0); }) .register(); }); @@ -80,7 +80,7 @@ public void testInvalidCommandName() { new CommandAPICommand((String) null) .withArguments(new StringArgument("arg1")) .executes((sender, args) -> { - String arg1 = (String) args[0]; + String arg1 = (String) args.get(0); }) .register(); }); @@ -89,7 +89,7 @@ public void testInvalidCommandName() { new CommandAPICommand("") .withArguments(new StringArgument("arg1")) .executes((sender, args) -> { - String arg1 = (String) args[0]; + String arg1 = (String) args.get(0); }) .register(); }); @@ -98,7 +98,7 @@ public void testInvalidCommandName() { new CommandAPICommand("my command") .withArguments(new StringArgument("arg1")) .executes((sender, args) -> { - String arg1 = (String) args[0]; + String arg1 = (String) args.get(0); }) .register(); }); diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt index 24b5c2b03e..be8db6fba0 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt +++ b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandAPICommandDSL.kt @@ -2,6 +2,7 @@ package dev.jorel.commandapi.kotlindsl import dev.jorel.commandapi.* import dev.jorel.commandapi.arguments.* +import dev.jorel.commandapi.executors.CommandArguments import dev.jorel.commandapi.executors.CommandBlockCommandExecutor import dev.jorel.commandapi.executors.CommandExecutor import dev.jorel.commandapi.executors.ConsoleCommandExecutor @@ -127,48 +128,48 @@ inline fun CommandAPICommand.multiLiteralArgument(vararg literals: String, block inline fun CommandAPICommand.requirement(base: Argument<*>, predicate: Predicate, block: Argument<*>.() -> Unit = {}): CommandAPICommand = withArguments(base.withRequirement(predicate).apply(block)) // Command execution -fun CommandAPICommand.anyExecutor(any: (CommandSender, Array) -> Unit) = CommandAPICommandExecution().any(any).executes(this) -fun CommandAPICommand.playerExecutor(player: (Player, Array) -> Unit) = CommandAPICommandExecution().player(player).executes(this) -fun CommandAPICommand.consoleExecutor(console: (ConsoleCommandSender, Array) -> Unit) = CommandAPICommandExecution().console(console).executes(this) -fun CommandAPICommand.commandBlockExecutor(block: (BlockCommandSender, Array) -> Unit) = CommandAPICommandExecution().block(block).executes(this) -fun CommandAPICommand.proxyExecutor(proxy: (ProxiedCommandSender, Array) -> Unit) = CommandAPICommandExecution().proxy(proxy).executes(this) -fun CommandAPICommand.nativeExecutor(native: (NativeProxyCommandSender, Array) -> Unit) = CommandAPICommandExecution().native(native).executes(this) +fun CommandAPICommand.anyExecutor(any: (CommandSender, CommandArguments) -> Unit) = CommandAPICommandExecution().any(any).executes(this) +fun CommandAPICommand.playerExecutor(player: (Player, CommandArguments) -> Unit) = CommandAPICommandExecution().player(player).executes(this) +fun CommandAPICommand.consoleExecutor(console: (ConsoleCommandSender, CommandArguments) -> Unit) = CommandAPICommandExecution().console(console).executes(this) +fun CommandAPICommand.commandBlockExecutor(block: (BlockCommandSender, CommandArguments) -> Unit) = CommandAPICommandExecution().block(block).executes(this) +fun CommandAPICommand.proxyExecutor(proxy: (ProxiedCommandSender, CommandArguments) -> Unit) = CommandAPICommandExecution().proxy(proxy).executes(this) +fun CommandAPICommand.nativeExecutor(native: (NativeProxyCommandSender, CommandArguments) -> Unit) = CommandAPICommandExecution().native(native).executes(this) class CommandAPICommandExecution { - private var any: ((CommandSender, Array) -> Unit)? = null - private var player: ((Player, Array) -> Unit)? = null - private var console: ((ConsoleCommandSender, Array) -> Unit)? = null - private var block: ((BlockCommandSender, Array) -> Unit)? = null - private var proxy: ((ProxiedCommandSender, Array) -> Unit)? = null - private var native: ((NativeProxyCommandSender, Array) -> Unit)? = null + private var any: ((CommandSender, CommandArguments) -> Unit)? = null + private var player: ((Player, CommandArguments) -> Unit)? = null + private var console: ((ConsoleCommandSender, CommandArguments) -> Unit)? = null + private var block: ((BlockCommandSender, CommandArguments) -> Unit)? = null + private var proxy: ((ProxiedCommandSender, CommandArguments) -> Unit)? = null + private var native: ((NativeProxyCommandSender, CommandArguments) -> Unit)? = null - fun any(any: (CommandSender, Array) -> Unit): CommandAPICommandExecution { + fun any(any: (CommandSender, CommandArguments) -> Unit): CommandAPICommandExecution { this.any = any return this } - fun player(player: (Player, Array) -> Unit): CommandAPICommandExecution { + fun player(player: (Player, CommandArguments) -> Unit): CommandAPICommandExecution { this.player = player return this } - fun console(console: (ConsoleCommandSender, Array) -> Unit): CommandAPICommandExecution { + fun console(console: (ConsoleCommandSender, CommandArguments) -> Unit): CommandAPICommandExecution { this.console = console return this } - fun block(block: (BlockCommandSender, Array) -> Unit): CommandAPICommandExecution { + fun block(block: (BlockCommandSender, CommandArguments) -> Unit): CommandAPICommandExecution { this.block = block return this } - fun proxy(proxy: (ProxiedCommandSender, Array) -> Unit): CommandAPICommandExecution { + fun proxy(proxy: (ProxiedCommandSender, CommandArguments) -> Unit): CommandAPICommandExecution { this.proxy = proxy return this } - fun native(native: (NativeProxyCommandSender, Array) -> Unit): CommandAPICommandExecution { + fun native(native: (NativeProxyCommandSender, CommandArguments) -> Unit): CommandAPICommandExecution { this.native = native return this } diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt index 85e89c3a84..e938e7d88d 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt +++ b/commandapi-platforms/commandapi-bukkit/commandapi-kotlin-bukkit/src/main/kotlin/dev/jorel/commandapi/kotlindsl/CommandTreeDSL.kt @@ -224,57 +224,57 @@ inline fun CommandTree.requirement(base: Argument<*>, predicate: Predicate.requirement(base: Argument<*>, predicate: Predicate, block: Argument<*>.() -> Unit = {}): Argument<*> = then(base.withRequirement(predicate).apply(block)) // CommandTree execution -fun CommandTree.anyExecutor(any: (CommandSender, Array) -> Unit) = CommandTreeExecution().any(any).executes(this) -fun CommandTree.playerExecutor(player: (Player, Array) -> Unit) = CommandTreeExecution().player(player).executes(this) -fun CommandTree.consoleExecutor(console: (ConsoleCommandSender, Array) -> Unit) = CommandTreeExecution().console(console).executes(this) -fun CommandTree.commandBlockExecutor(block: (BlockCommandSender, Array) -> Unit) = CommandTreeExecution().block(block).executes(this) -fun CommandTree.proxyExecutor(proxy: (ProxiedCommandSender, Array) -> Unit) = CommandTreeExecution().proxy(proxy).executes(this) -fun CommandTree.nativeExecutor(native: (NativeProxyCommandSender, Array) -> Unit) = CommandTreeExecution().native(native).executes(this) +fun CommandTree.anyExecutor(any: (CommandSender, CommandArguments) -> Unit) = CommandTreeExecution().any(any).executes(this) +fun CommandTree.playerExecutor(player: (Player, CommandArguments) -> Unit) = CommandTreeExecution().player(player).executes(this) +fun CommandTree.consoleExecutor(console: (ConsoleCommandSender, CommandArguments) -> Unit) = CommandTreeExecution().console(console).executes(this) +fun CommandTree.commandBlockExecutor(block: (BlockCommandSender, CommandArguments) -> Unit) = CommandTreeExecution().block(block).executes(this) +fun CommandTree.proxyExecutor(proxy: (ProxiedCommandSender, CommandArguments) -> Unit) = CommandTreeExecution().proxy(proxy).executes(this) +fun CommandTree.nativeExecutor(native: (NativeProxyCommandSender, CommandArguments) -> Unit) = CommandTreeExecution().native(native).executes(this) // ArgumentTree execution -fun Argument<*>.anyExecutor(any: (CommandSender, Array) -> Unit) = CommandTreeExecution().any(any).executes(this) -fun Argument<*>.playerExecutor(player: (Player, Array) -> Unit) = CommandTreeExecution().player(player).executes(this) -fun Argument<*>.consoleExecutor(console: (ConsoleCommandSender, Array) -> Unit) = CommandTreeExecution().console(console).executes(this) -fun Argument<*>.commandBlockExecutor(block: (BlockCommandSender, Array) -> Unit) = CommandTreeExecution().block(block).executes(this) -fun Argument<*>.proxyExecutor(proxy: (ProxiedCommandSender, Array) -> Unit) = CommandTreeExecution().proxy(proxy).executes(this) -fun Argument<*>.nativeExecutor(native: (NativeProxyCommandSender, Array) -> Unit) = CommandTreeExecution().native(native).executes(this) +fun Argument<*>.anyExecutor(any: (CommandSender, CommandArguments) -> Unit) = CommandTreeExecution().any(any).executes(this) +fun Argument<*>.playerExecutor(player: (Player, CommandArguments) -> Unit) = CommandTreeExecution().player(player).executes(this) +fun Argument<*>.consoleExecutor(console: (ConsoleCommandSender, CommandArguments) -> Unit) = CommandTreeExecution().console(console).executes(this) +fun Argument<*>.commandBlockExecutor(block: (BlockCommandSender, CommandArguments) -> Unit) = CommandTreeExecution().block(block).executes(this) +fun Argument<*>.proxyExecutor(proxy: (ProxiedCommandSender, CommandArguments) -> Unit) = CommandTreeExecution().proxy(proxy).executes(this) +fun Argument<*>.nativeExecutor(native: (NativeProxyCommandSender, CommandArguments) -> Unit) = CommandTreeExecution().native(native).executes(this) class CommandTreeExecution { - private var any: ((CommandSender, Array) -> Unit)? = null - private var player: ((Player, Array) -> Unit)? = null - private var console: ((ConsoleCommandSender, Array) -> Unit)? = null - private var block: ((BlockCommandSender, Array) -> Unit)? = null - private var proxy: ((ProxiedCommandSender, Array) -> Unit)? = null - private var native: ((NativeProxyCommandSender, Array) -> Unit)? = null + private var any: ((CommandSender, CommandArguments) -> Unit)? = null + private var player: ((Player, CommandArguments) -> Unit)? = null + private var console: ((ConsoleCommandSender, CommandArguments) -> Unit)? = null + private var block: ((BlockCommandSender, CommandArguments) -> Unit)? = null + private var proxy: ((ProxiedCommandSender, CommandArguments) -> Unit)? = null + private var native: ((NativeProxyCommandSender, CommandArguments) -> Unit)? = null - fun any(any: (CommandSender, Array) -> Unit): CommandTreeExecution { + fun any(any: (CommandSender, CommandArguments) -> Unit): CommandTreeExecution { this.any = any return this } - fun player(player: (Player, Array) -> Unit): CommandTreeExecution { + fun player(player: (Player, CommandArguments) -> Unit): CommandTreeExecution { this.player = player return this } - fun console(console: (ConsoleCommandSender, Array) -> Unit): CommandTreeExecution { + fun console(console: (ConsoleCommandSender, CommandArguments) -> Unit): CommandTreeExecution { this.console = console return this } - fun block(block: (BlockCommandSender, Array) -> Unit): CommandTreeExecution { + fun block(block: (BlockCommandSender, CommandArguments) -> Unit): CommandTreeExecution { this.block = block return this } - fun proxy(proxy: (ProxiedCommandSender, Array) -> Unit): CommandTreeExecution { + fun proxy(proxy: (ProxiedCommandSender, CommandArguments) -> Unit): CommandTreeExecution { this.proxy = proxy return this } - fun native(native: (NativeProxyCommandSender, Array) -> Unit): CommandTreeExecution { + fun native(native: (NativeProxyCommandSender, CommandArguments) -> Unit): CommandTreeExecution { this.native = native return this } From 2b541be45865cef7e2a5b5d327d20f340460ec43 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Sat, 17 Dec 2022 19:45:38 +0000 Subject: [PATCH 168/638] Bump documentation version to 9.0.0. --- Doxyfile | 2 +- docs/latest.html | 4 ++-- docssrc/book.toml | 4 ++-- docssrc/src/annotationsetup.md | 12 ++++++------ docssrc/src/kotlinintro.md | 10 +++++----- docssrc/src/quickstart.md | 4 ++-- docssrc/src/shading.md | 10 +++++----- 7 files changed, 23 insertions(+), 23 deletions(-) diff --git a/Doxyfile b/Doxyfile index d1ad912ff0..69de8aea0a 100644 --- a/Doxyfile +++ b/Doxyfile @@ -38,7 +38,7 @@ PROJECT_NAME = CommandAPI # could be handy for archiving the generated documentation or if some version # control system is used. -PROJECT_NUMBER = 8.7.0 +PROJECT_NUMBER = 9.0.0 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer a diff --git a/docs/latest.html b/docs/latest.html index 59e2957e1e..f9c64d5917 100644 --- a/docs/latest.html +++ b/docs/latest.html @@ -1,8 +1,8 @@ - + -

Whoops! Looks like you're lost! Try going to this link here!

+

Whoops! Looks like you're lost! Try going to this link here!

\ No newline at end of file diff --git a/docssrc/book.toml b/docssrc/book.toml index e310498967..615f471fe9 100644 --- a/docssrc/book.toml +++ b/docssrc/book.toml @@ -2,10 +2,10 @@ authors = ["JorelAli"] multilingual = false src = "src" -title = "CommandAPI Documentation v8.7.0" +title = "CommandAPI Documentation v9.0.0" [build] -build-dir = "./../docs/8.7.0" +build-dir = "./../docs/9.0.0" [output.html] git-repository-url = "https://github.com/JorelAli/CommandAPI" diff --git a/docssrc/src/annotationsetup.md b/docssrc/src/annotationsetup.md index db0de09879..5eaf56b56d 100644 --- a/docssrc/src/annotationsetup.md +++ b/docssrc/src/annotationsetup.md @@ -15,7 +15,7 @@ The annotation system effectively needs to be added twice: Once for compilation dev.jorel commandapi-annotations - 8.7.0 + 9.0.0 provided @@ -35,7 +35,7 @@ The annotation system effectively needs to be added twice: Once for compilation dev.jorel commandapi-annotations - 8.7.0 + 9.0.0 @@ -74,15 +74,15 @@ The annotation system effectively needs to be added twice: Once for compilation ```groovy,build.gradle dependencies { - compileOnly "dev.jorel:commandapi-annotations:8.7.0" - annotationProcessor "dev.jorel:commandapi-annotations:8.7.0" + compileOnly "dev.jorel:commandapi-annotations:9.0.0" + annotationProcessor "dev.jorel:commandapi-annotations:9.0.0" } ``` ```kotlin,build.gradle.kts dependencies { - compileOnly("dev.jorel:commandapi-annotations:8.7.0") - annotationProcessor("dev.jorel:commandapi-annotations:8.7.0") + compileOnly("dev.jorel:commandapi-annotations:9.0.0") + annotationProcessor("dev.jorel:commandapi-annotations:9.0.0") } ``` diff --git a/docssrc/src/kotlinintro.md b/docssrc/src/kotlinintro.md index aa4b6750e8..5f727240ce 100644 --- a/docssrc/src/kotlinintro.md +++ b/docssrc/src/kotlinintro.md @@ -17,7 +17,7 @@ To install the DSL, you need to add the `commandapi-kotlin` dependency into your dev.jorel commandapi-kotlin - 8.7.0 + 9.0.0 ``` @@ -125,13 +125,13 @@ Next, you need to add the dependency: ```groovy,build.gradle dependencies { - implementation "dev.jorel:commandapi-kotlin:8.7.0" + implementation "dev.jorel:commandapi-kotlin:9.0.0" } ``` ```kotlin,build.gradle.kts dependencies { - implementation("dev.jorel:commandapi-kotlin:8.7.0") + implementation("dev.jorel:commandapi-kotlin:9.0.0") } ``` @@ -144,7 +144,7 @@ Finally, you need to add it to the `shadowJar` configuration task and relocate i ```groovy,build.gradle shadowJar { dependencies { - include dependency("dev.jorel:commandapi-kotlin:8.7.0") + include dependency("dev.jorel:commandapi-kotlin:9.0.0") } // TODO: Change this to my own package name @@ -155,7 +155,7 @@ shadowJar { ```kotlin,build.gradle.kts shadowJar { dependencies { - include dependency("dev.jorel:commandapi-kotlin:8.7.0") + include dependency("dev.jorel:commandapi-kotlin:9.0.0") } // TODO: Change this to my own package name diff --git a/docssrc/src/quickstart.md b/docssrc/src/quickstart.md index 0212d143fb..058f683528 100644 --- a/docssrc/src/quickstart.md +++ b/docssrc/src/quickstart.md @@ -32,7 +32,7 @@ depend: [CommandAPI] dev.jorel commandapi-core - 8.7.0 + 9.0.0 provided @@ -53,6 +53,6 @@ depend: [CommandAPI] ```gradle dependencies { - compileOnly "dev.jorel:commandapi-core:8.7.0" + compileOnly "dev.jorel:commandapi-core:9.0.0" } ``` diff --git a/docssrc/src/shading.md b/docssrc/src/shading.md index 32e12fc0bd..15682b852a 100644 --- a/docssrc/src/shading.md +++ b/docssrc/src/shading.md @@ -100,7 +100,7 @@ Add the CommandAPI shade dependency: dev.jorel commandapi-shade - 8.7.0 + 9.0.0 ``` @@ -194,13 +194,13 @@ Next, we declare our dependencies: ```groovy,build.gradle dependencies { - implementation "dev.jorel:commandapi-shade:8.7.0" + implementation "dev.jorel:commandapi-shade:9.0.0" } ``` ```kotlin,build.gradle.kts dependencies { - implementation("dev.jorel:commandapi-shade:8.7.0") + implementation("dev.jorel:commandapi-shade:9.0.0") } ``` @@ -213,7 +213,7 @@ Then we add it to the `shadowJar` task configuration and relocate the CommandAPI ```groovy,build.gradle shadowJar { dependencies { - include dependency("dev.jorel:commandapi-shade:8.7.0") + include dependency("dev.jorel:commandapi-shade:9.0.0") } // TODO: Change this to my own package name @@ -224,7 +224,7 @@ shadowJar { ```kotlin,build.gradle.kts shadowJar { dependencies { - include dependency("dev.jorel:commandapi-shade:8.7.0") + include dependency("dev.jorel:commandapi-shade:9.0.0") } // TODO: Change this to my own package name From 6675fd759a694dbfd51fb12eb879423fd6ab0aa8 Mon Sep 17 00:00:00 2001 From: DerEchtePilz Date: Sat, 17 Dec 2022 21:01:55 +0100 Subject: [PATCH 169/638] modifying JavaDocs of BukkitExecutionInfo#senderWrapper() and AbstractExecutionInfo#senderWrapper() to indicate they are only used internally --- .../dev/jorel/commandapi/executors/AbstractExecutionInfo.java | 2 ++ .../dev/jorel/commandapi/executors/BukkitExecutionInfo.java | 2 ++ 2 files changed, 4 insertions(+) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/AbstractExecutionInfo.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/AbstractExecutionInfo.java index 143c719b63..36aefadbec 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/AbstractExecutionInfo.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/AbstractExecutionInfo.java @@ -15,6 +15,8 @@ public interface AbstractExecutionInfo( Sender sender, /** + * This is not intended for public use and is only used internally. The {@link BukkitExecutionInfo#sender()} method should be used instead! + * * @return The wrapper type of this command */ BukkitCommandSender senderWrapper, From ecd0c4ca85da37c6c02ec5a27ac8106e0591f167 Mon Sep 17 00:00:00 2001 From: DerEchtePilz Date: Sat, 17 Dec 2022 21:04:57 +0100 Subject: [PATCH 170/638] modifying JavaDocs of CommandArguments#get(String) to indicate it can be null --- .../java/dev/jorel/commandapi/executors/CommandArguments.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandArguments.java b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandArguments.java index 39274a63fa..492cda5f86 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandArguments.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/executors/CommandArguments.java @@ -1,5 +1,6 @@ package dev.jorel.commandapi.executors; +import javax.annotation.Nullable; import java.util.Map; /** @@ -42,8 +43,9 @@ public Object get(int index) { * Returns an argument by its node name * * @param nodeName The node name of this argument. This was set when initializing an argument - * @return an argument which has the given node name + * @return An argument which has the given node name. Can be null if nodeName was not found. */ + @Nullable public Object get(String nodeName) { return argsMap.get(nodeName); } From a387b498d7706f552ada17e74835406438ecba33 Mon Sep 17 00:00:00 2001 From: Jorel Ali Date: Sat, 17 Dec 2022 20:29:46 +0000 Subject: [PATCH 171/638] Adds a TODO about #310 due to an NPE with redirected commands I'm not entirely sure what the best thing to return here is, but I thought I'd put a TODO so this doesn't go unnoticed for 9.0.0's release. --- .../dev/jorel/commandapi/CommandAPIHandler.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java index 73dc087b58..da73856f3a 100644 --- a/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java +++ b/commandapi-core/src/main/java/dev/jorel/commandapi/CommandAPIHandler.java @@ -91,9 +91,18 @@ public class CommandAPIHandler String getRawArgumentInput(CommandContext cmdCtx, String key) { - StringRange range = ((Map>) COMMANDCONTEXT_ARGUMENTS.get(cmdCtx)) - .get(key).getRange(); - return cmdCtx.getInput().substring(range.getStart(), range.getEnd()); + final Map> commandContextArgs = (Map>) COMMANDCONTEXT_ARGUMENTS.get(cmdCtx); + final ParsedArgument parsedArgument = commandContextArgs.get(key); + + // TODO: Issue #310: Parsing this argument via /execute run doesn't have the value in + // the arguments for this command context (most likely because it's a redirected command). + // We need to figure out how to handle this case. + if(parsedArgument != null) { + StringRange range = parsedArgument.getRange(); + return cmdCtx.getInput().substring(range.getStart(), range.getEnd()); + } else { + return ""; + } } // TODO: Need to ensure this can be safely "disposed of" when we're done (e.g. on reloads). From b7e2b6ba4d57e2615a0f3e69529498598a3cbbca Mon Sep 17 00:00:00 2001 From: BuildTools Date: Mon, 19 Dec 2022 09:07:25 +0100 Subject: [PATCH 172/638] Fix GitHub actions NMS_Common test build --- .github/workflows/build.yml | 7 +++++++ .../commandapi-bukkit-nms-common/pom.xml | 12 ++++++++++++ .../java/dev/jorel/commandapi/nms/NMS_Common.java | 1 + 3 files changed, 20 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 71e82b4c28..800f582246 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,6 +29,13 @@ jobs: cache: maven - name: build CommandAPI (Bukkit) using maven run: mvn clean install --batch-mode -PPlatform.Bukkit + - name: check NMS Common works on all versions + run: | + mvn clean package -pl :commandapi-bukkit-nms-common -P Spigot_1_17_R1 + mvn clean package -pl :commandapi-bukkit-nms-common -P Spigot_1_18_R1 + mvn clean package -pl :commandapi-bukkit-nms-common -P Spigot_1_18_2_R2 + mvn clean package -pl :commandapi-bukkit-nms-common -P Spigot_1_19_R1 + mvn clean package -pl :commandapi-bukkit-nms-common -P Spigot_1_19_3_R2; - name: CommandAPI (Bukkit) plugin artifact if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS uses: actions/upload-artifact@v3 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml index 9566a079c3..269fdfd3de 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/pom.xml @@ -133,6 +133,18 @@ + + Spigot_1_19_3_R2 + + + org.spigotmc + spigot + 1.19.3-R0.1-SNAPSHOT + remapped-mojang + provided + + + Spigot_1_19_R1 diff --git a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java index 68ae27d26f..efd71cf81a 100644 --- a/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java +++ b/commandapi-platforms/commandapi-bukkit/commandapi-bukkit-nms/commandapi-bukkit-nms-common/src/main/java/dev/jorel/commandapi/nms/NMS_Common.java @@ -85,6 +85,7 @@ * compiling this code against all of the declared Maven profiles specified in * this submodule's pom.xml file, by running the following commands: *