From 1a0119c1e571b4795dfa75010f89489dc57ca5d1 Mon Sep 17 00:00:00 2001 From: KLxier-2 Date: Sun, 3 May 2026 18:11:28 +0800 Subject: [PATCH 1/2] KnockBack Manager PLugin support (Using AI) https://www.minebbs.com/resources/knockbackmanager.13860/ --- README.md | 1 + core/build.gradle.kts | 1 + .../api/knockback/KnockbackHandler.java | 2 + impl/knockbackmanager/build.gradle.kts | 12 +++++ .../KnockbackManagerHook.java | 49 +++++++++++++++++++ settings.gradle.kts | 2 + 6 files changed, 67 insertions(+) create mode 100644 impl/knockbackmanager/build.gradle.kts create mode 100644 impl/knockbackmanager/src/main/java/xyz/refinedev/api/knockback/knockbackmanager/KnockbackManagerHook.java diff --git a/README.md b/README.md index 087251c..a7ee957 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@ Please note that these spigots are supported through public APIs. - ImanitySpigot - AzuriteSpigot - FoxSpigot +- KnockbackManager (Plugin) - Uses me.dw1e.kbm.KnockbackManager API ## Installation diff --git a/core/build.gradle.kts b/core/build.gradle.kts index b4c1d9d..85a0005 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -48,6 +48,7 @@ dependencies { implementation(project(":impl:carbon-legacy")) implementation(project(":impl:imanity")) implementation(project(":impl:foxspigot")) + implementation(project(":impl:knockbackmanager")) implementation(project(":impl:azurite")) } diff --git a/core/src/main/java/xyz/refinedev/api/knockback/KnockbackHandler.java b/core/src/main/java/xyz/refinedev/api/knockback/KnockbackHandler.java index d7e904c..d1ea326 100644 --- a/core/src/main/java/xyz/refinedev/api/knockback/KnockbackHandler.java +++ b/core/src/main/java/xyz/refinedev/api/knockback/KnockbackHandler.java @@ -10,6 +10,7 @@ import xyz.refinedev.api.knockback.carbon.CarbonLegacyHook; import xyz.refinedev.api.knockback.foxspigot.FoxSpigotHook; import xyz.refinedev.api.knockback.imanity.ImanityHook; +import xyz.refinedev.api.knockback.knockbackmanager.KnockbackManagerHook; import java.util.HashSet; import java.util.Set; @@ -37,6 +38,7 @@ public void init() { this.registerHook(new ImanityHook()); this.registerHook(new AzuriteHook()); this.registerHook(new FoxSpigotHook()); + this.registerHook(new KnockbackManagerHook()); this.hook = this.detect(); if (this.hook == null) { diff --git a/impl/knockbackmanager/build.gradle.kts b/impl/knockbackmanager/build.gradle.kts new file mode 100644 index 0000000..5e2f387 --- /dev/null +++ b/impl/knockbackmanager/build.gradle.kts @@ -0,0 +1,12 @@ +plugins { + id("java") +} + +group = "xyz.refinedev.api" +version = "1.0.0" + +dependencies { + compileOnly(project(":api")) + // KnockbackManager API dependency + compileOnly(files("../../../../../KnockbackManager-1.13.4.jar")) +} \ No newline at end of file diff --git a/impl/knockbackmanager/src/main/java/xyz/refinedev/api/knockback/knockbackmanager/KnockbackManagerHook.java b/impl/knockbackmanager/src/main/java/xyz/refinedev/api/knockback/knockbackmanager/KnockbackManagerHook.java new file mode 100644 index 0000000..69c11d5 --- /dev/null +++ b/impl/knockbackmanager/src/main/java/xyz/refinedev/api/knockback/knockbackmanager/KnockbackManagerHook.java @@ -0,0 +1,49 @@ +package xyz.refinedev.api.knockback.knockbackmanager; + +import me.dw1e.kbm.KnockbackManager; +import me.dw1e.kbm.api.KnockbackManagerAPI; + +import org.bukkit.entity.Player; + +import org.jetbrains.annotations.NotNull; + +import xyz.refinedev.api.knockback.KnockbackHook; + +/** + *

+ * This code is the property of Refine Development.
+ * Copyright © 2025, All Rights Reserved.
+ *

+ * + * @author Drizzy + * @version KnockbackAPI + * @since 9/26/2025 + */ +public class KnockbackManagerHook implements KnockbackHook { + + @Override + public String getName() { + return "KnockbackManager"; + } + + @Override + public boolean isApplicable() { + return applicable; + } + + @Override + public void setKnockback(@NotNull Player player, @NotNull String knockbackProfile) { + KnockbackManagerAPI kbmAPI = KnockbackManager.getInstance().getAPI(); + kbmAPI.setKBFile(player, knockbackProfile); + } + + private static boolean applicable; + static { + try { + Class.forName("me.dw1e.kbm.KnockbackManager"); + applicable = true; + } catch (ClassNotFoundException e) { + applicable = false; + } + } +} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index cfc915b..6eeec62 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -18,3 +18,5 @@ include("impl:carbon") findProject(":impl:carbon")?.name = "carbon" include("impl:carbon-legacy") findProject(":impl:carbon-legacy")?.name = "carbon-legacy" +include("impl:knockbackmanager") +findProject(":impl:knockbackmanager")?.name = "knockbackmanager" From a5c36ee6012a262cb9804b3e87a98f4a33f02ab3 Mon Sep 17 00:00:00 2001 From: KLxier-2 Date: Sun, 3 May 2026 20:54:24 +0800 Subject: [PATCH 2/2] Worong Fix Remove "- Uses me.dw1e.kbm.KnockbackManager API" Add kbm plugin in commit. Modify the copyright warning to the correct date and author. --- README.md | 2 +- impl/knockbackmanager/build.gradle.kts | 2 +- .../lib/KnockbackManager-1.13.4.jar | Bin 0 -> 25513 bytes .../knockbackmanager/KnockbackManagerHook.java | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 impl/knockbackmanager/lib/KnockbackManager-1.13.4.jar diff --git a/README.md b/README.md index a7ee957..a15b249 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Please note that these spigots are supported through public APIs. - ImanitySpigot - AzuriteSpigot - FoxSpigot -- KnockbackManager (Plugin) - Uses me.dw1e.kbm.KnockbackManager API +- KnockbackManager (Plugin) ## Installation diff --git a/impl/knockbackmanager/build.gradle.kts b/impl/knockbackmanager/build.gradle.kts index 5e2f387..aee11e8 100644 --- a/impl/knockbackmanager/build.gradle.kts +++ b/impl/knockbackmanager/build.gradle.kts @@ -8,5 +8,5 @@ version = "1.0.0" dependencies { compileOnly(project(":api")) // KnockbackManager API dependency - compileOnly(files("../../../../../KnockbackManager-1.13.4.jar")) + compileOnly(files("../lib/KnockbackManager-1.13.4.jar")) } \ No newline at end of file diff --git a/impl/knockbackmanager/lib/KnockbackManager-1.13.4.jar b/impl/knockbackmanager/lib/KnockbackManager-1.13.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..93c354d4f83eacebcb0561971d322990ff9512cd GIT binary patch literal 25513 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 *

* - * @author Drizzy + * @author KLxier (Refinedev.org: thehale_dc) * @version KnockbackAPI - * @since 9/26/2025 + * @since 2026/5/3 */ public class KnockbackManagerHook implements KnockbackHook {