diff --git a/build.gradle.kts b/build.gradle.kts index 201aaae8..e1461c49 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -76,6 +76,7 @@ allprojects { compileOnly("com.mineinabyss:looty:0.8.67") compileOnly("com.sk89q.worldguard:worldguard-bukkit:7.1.0-SNAPSHOT") compileOnly("it.unimi.dsi:fastutil:8.5.11") + compileOnly("com.github.LeonMangler:SuperVanish:6.2.6-4") } } @@ -163,7 +164,7 @@ bukkit { apiVersion = "1.17" authors = listOf("LoJoSho") depend = listOf("ProtocolLib") - softDepend = listOf("ModelEngine", "Oraxen", "ItemsAdder", "Looty", "HMCColor", "WorldGuard", "MythicMobs", "PlaceholderAPI") + softDepend = listOf("ModelEngine", "Oraxen", "ItemsAdder", "Looty", "HMCColor", "WorldGuard", "MythicMobs", "PlaceholderAPI", "SuperVanish", "PremiumVanish") version = "${project.version}" commands { diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 29a50499..060ffef5 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -18,6 +18,7 @@ dependencies { compileOnly("com.sk89q.worldguard:worldguard-bukkit:7.1.0-SNAPSHOT") compileOnly("it.unimi.dsi:fastutil:8.5.11") compileOnly("io.lumine:Mythic-Dist:5.2.1") + compileOnly("com.github.LeonMangler:SuperVanish:6.2.6-4") //compileOnly("com.github.Fisher2911:FisherLib:master-SNAPSHOT") implementation("net.kyori:adventure-api:4.12.0") diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/Hooks.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/Hooks.java index 84a204d8..5c0b6be2 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/Hooks.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/Hooks.java @@ -2,6 +2,8 @@ package com.hibiscusmc.hmccosmetics.hooks; import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; import com.hibiscusmc.hmccosmetics.hooks.items.*; +import com.hibiscusmc.hmccosmetics.hooks.misc.HookPremiumVanish; +import com.hibiscusmc.hmccosmetics.hooks.misc.HookSuperVanish; import com.hibiscusmc.hmccosmetics.hooks.placeholders.HookPlaceholderAPI; import org.bukkit.Bukkit; import org.bukkit.Material; @@ -17,6 +19,8 @@ public class Hooks { private static HookMythic MYTHIC_HOOK = new HookMythic(); private static HookHMCCosmetics HMCCOSMETIC_HOOK = new HookHMCCosmetics(); private static HookPlaceholderAPI PAPI_HOOK = new HookPlaceholderAPI(); + private static HookPremiumVanish PREMIUM_VANISH_HOOK = new HookPremiumVanish(); + private static HookSuperVanish SUPER_VANISH_HOOK = new HookSuperVanish(); public static Hook getHook(String id) { return hooks.get(id.toLowerCase()); diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/misc/HookPremiumVanish.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/misc/HookPremiumVanish.java new file mode 100644 index 00000000..072d348a --- /dev/null +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/misc/HookPremiumVanish.java @@ -0,0 +1,36 @@ +package com.hibiscusmc.hmccosmetics.hooks.misc; + +import com.hibiscusmc.hmccosmetics.hooks.Hook; +import com.hibiscusmc.hmccosmetics.user.CosmeticUser; +import com.hibiscusmc.hmccosmetics.user.CosmeticUsers; +import de.myzelyam.api.vanish.PlayerHideEvent; +import de.myzelyam.api.vanish.PlayerShowEvent; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +public class HookPremiumVanish extends Hook implements Listener { + + // NOTE: Supervanish and Premium Vanish both use the same api + + public HookPremiumVanish() { + super("PremiumVanish"); + } + + @EventHandler + public void onPlayerVanish(PlayerHideEvent event) { + Player player = event.getPlayer(); + CosmeticUser user = CosmeticUsers.getUser(player); + if (user == null) return; + user.hideCosmetics(CosmeticUser.HiddenReason.PLUGIN); + } + + @EventHandler + public void onPlayerShow(PlayerShowEvent event) { + Player player = event.getPlayer(); + CosmeticUser user = CosmeticUsers.getUser(player); + if (user == null) return; + user.showCosmetics(); + } + +} diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/misc/HookSuperVanish.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/misc/HookSuperVanish.java new file mode 100644 index 00000000..d7a39e0c --- /dev/null +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/misc/HookSuperVanish.java @@ -0,0 +1,35 @@ +package com.hibiscusmc.hmccosmetics.hooks.misc; + +import com.hibiscusmc.hmccosmetics.hooks.Hook; +import com.hibiscusmc.hmccosmetics.user.CosmeticUser; +import com.hibiscusmc.hmccosmetics.user.CosmeticUsers; +import de.myzelyam.api.vanish.PlayerHideEvent; +import de.myzelyam.api.vanish.PlayerShowEvent; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +public class HookSuperVanish extends Hook implements Listener { + + // NOTE: Supervanish and Premium Vanish both use the same api + + public HookSuperVanish() { + super("SuperVanish"); + } + + @EventHandler + public void onPlayerVanish(PlayerHideEvent event) { + Player player = event.getPlayer(); + CosmeticUser user = CosmeticUsers.getUser(player); + if (user == null) return; + user.hideCosmetics(CosmeticUser.HiddenReason.PLUGIN); + } + + @EventHandler + public void onPlayerShow(PlayerShowEvent event) { + Player player = event.getPlayer(); + CosmeticUser user = CosmeticUsers.getUser(player); + if (user == null) return; + user.showCosmetics(); + } +}