From d1ca106d014faaf5fb6a4e26d81c68c62bfa9ad2 Mon Sep 17 00:00:00 2001 From: SirBlobman Date: Mon, 5 Jul 2021 02:13:31 -0400 Subject: [PATCH] Create CombatLogX V11 hook class. --- .../antigrief/AntigriefCombatLogX_V11.java | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 eco-core/core-plugin/src/main/java/com/willfp/eco/spigot/integrations/antigrief/AntigriefCombatLogX_V11.java diff --git a/eco-core/core-plugin/src/main/java/com/willfp/eco/spigot/integrations/antigrief/AntigriefCombatLogX_V11.java b/eco-core/core-plugin/src/main/java/com/willfp/eco/spigot/integrations/antigrief/AntigriefCombatLogX_V11.java new file mode 100644 index 00000000..f49bd694 --- /dev/null +++ b/eco-core/core-plugin/src/main/java/com/willfp/eco/spigot/integrations/antigrief/AntigriefCombatLogX_V11.java @@ -0,0 +1,82 @@ +package com.willfp.eco.spigot.integrations.antigrief; + +import java.util.Optional; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.block.Block; +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Player; + +import com.github.sirblobman.combatlogx.api.ICombatLogX; +import com.github.sirblobman.combatlogx.api.expansion.Expansion; +import com.github.sirblobman.combatlogx.api.expansion.ExpansionManager; + +import com.willfp.eco.core.integrations.antigrief.AntigriefWrapper; +import combatlogx.expansion.newbie.helper.NewbieHelperExpansion; +import combatlogx.expansion.newbie.helper.manager.PVPManager; +import combatlogx.expansion.newbie.helper.manager.ProtectionManager; +import org.jetbrains.annotations.NotNull; + +public class AntigriefCombatLogX_V11 implements AntigriefWrapper { + /** + * Instance of CombatLogX. + */ + private final ICombatLogX instance; + + /** + * Create new CombatLogX antigrief. + */ + public AntigriefCombatLogX_V11() { + this.instance = (ICombatLogX) Bukkit.getPluginManager().getPlugin("CombatLogX"); + } + + @Override + public boolean canBreakBlock(@NotNull final Player player, + @NotNull final Block block) { + return true; + } + + @Override + public boolean canCreateExplosion(@NotNull final Player player, + @NotNull final Location location) { + return true; + } + + @Override + public boolean canPlaceBlock(@NotNull final Player player, + @NotNull final Block block) { + return true; + } + + @Override + public boolean canInjure(@NotNull final Player player, + @NotNull final LivingEntity victim) { + if (!(victim instanceof Player)) { + return true; + } + + ExpansionManager expansionManager = this.instance.getExpansionManager(); + Optional optionalExpansion = expansionManager.getExpansion("NewbieHelper"); + if(optionalExpansion.isPresent()) { + Expansion expansion = optionalExpansion.get(); + NewbieHelperExpansion newbieHelperExpansion = (NewbieHelperExpansion) expansion; + + ProtectionManager protectionManager = newbieHelperExpansion.getProtectionManager(); + PVPManager pvpManager = newbieHelperExpansion.getPVPManager(); + + Player victimPlayer = (Player) victim; + boolean victimProtected = protectionManager.isProtected(victimPlayer); + boolean victimDisabledPvP = pvpManager.isDisabled(victimPlayer); + boolean playerDisabledPvp = pvpManager.isDisabled(player); + return (!victimProtected && !victimDisabledPvP && !playerDisabledPvp); + } + + return true; + } + + @Override + public String getPluginName() { + return "CombatLogX"; + } +}