From d9e356dd1d87d6138ab0d4d34337aa46fa2f437d Mon Sep 17 00:00:00 2001 From: Techcable Date: Tue, 11 Nov 2014 10:36:19 -0700 Subject: [PATCH] Add Authme Hook to Fix #1 --- pom.xml | 11 ++ .../CombatTag/CombatTagIncompatibles.java | 123 ------------------ .../NoPvpPlayerListener.java | 3 +- .../combattag/PluginCompatibility.java | 26 ++++ 4 files changed, 39 insertions(+), 124 deletions(-) delete mode 100644 src/main/java/com/trc202/CombatTag/CombatTagIncompatibles.java create mode 100644 src/main/java/techcable/minecraft/combattag/PluginCompatibility.java diff --git a/pom.xml b/pom.xml index ac76092..c2bf0ab 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,10 @@ metrics-repo http://repo.mcstats.org/content/repositories/public + + authme-repo + http://repository-authme.forge.cloudbees.com/snapshot/ + @@ -67,6 +71,13 @@ provided + + fr.xephi.authme.AuthMe + AuthMe + 4.0-SNAPSHOT + provided + true + diff --git a/src/main/java/com/trc202/CombatTag/CombatTagIncompatibles.java b/src/main/java/com/trc202/CombatTag/CombatTagIncompatibles.java deleted file mode 100644 index 4512322..0000000 --- a/src/main/java/com/trc202/CombatTag/CombatTagIncompatibles.java +++ /dev/null @@ -1,123 +0,0 @@ -package com.trc202.CombatTag; - -/* -Temporarily Disable -import static com.sk89q.worldguard.bukkit.BukkitUtil.toVector; -import net.slipcor.pvparena.PVPArena; -import net.slipcor.pvparena.api.PVPArenaAPI; - -import org.bukkit.Location; -import org.bukkit.entity.Player; -import org.bukkit.event.Listener; -import org.bukkit.plugin.Plugin; -import org.bukkit.plugin.PluginManager; - -import com.shampaggon.crackshot.CSDirector; -import com.shampaggon.crackshot.events.WeaponDamageEntityEvent; -import com.sk89q.worldedit.Vector; -import com.sk89q.worldguard.bukkit.WorldGuardPlugin; -import com.sk89q.worldguard.protection.ApplicableRegionSet; -import com.sk89q.worldguard.protection.flags.DefaultFlag; -import com.sk89q.worldguard.protection.managers.RegionManager; -import com.tommytony.war.Warzone; - -public class CombatTagIncompatibles { - - CombatTag plugin; - - public CombatTagIncompatibles(CombatTag combatTag) { - this.plugin = combatTag; - } - - public boolean PvPArenaHook(Player plr) { - Plugin pvparena = this.plugin.getServer().getPluginManager().getPlugin("pvparena"); - boolean notInArena = true; - if (pvparena != null && (pvparena instanceof PVPArena)) { - notInArena = "".equals(PVPArenaAPI.getArenaName(plr)); - } - return notInArena; - } - - public boolean WarArenaHook(Player plr) { - boolean notInArena = true; - if (plugin.getServer().getPluginManager().getPlugin("War") != null) { - notInArena = Warzone.getZoneByPlayerName(plr.getName()) == null; - } - return notInArena; - } - - public WorldGuardPlugin getWorldGuard() { - Plugin wg = plugin.getServer().getPluginManager().getPlugin("WorldGuard"); - - // WorldGuard may not be loaded - if (wg == null || !(wg instanceof WorldGuardPlugin)) { - return null; - } - - return (WorldGuardPlugin) wg; - } - - public boolean InWGCheck(Player plr) { - WorldGuardPlugin wg = getWorldGuard(); - if (wg != null) { - Location plrLoc = plr.getLocation(); - Vector pt = toVector(plrLoc); - - RegionManager regionManager = wg.getRegionManager(plr.getWorld()); - ApplicableRegionSet set = regionManager.getApplicableRegions(pt); - if (set != null) { - return set.allows(DefaultFlag.PVP) && !set.allows(DefaultFlag.INVINCIBILITY); - } else { - return true; - } - } - return true; - } - - public boolean notInArena(Player player) { - return WarArenaHook(player) && PvPArenaHook(player); - } - - public void startup(PluginManager pm) { - if (crackShotCheck() != null) { - pm.registerEvents(new CrackShotListener(), plugin); - } - } - - private Plugin crackShotCheck() { - Plugin cs = plugin.getServer().getPluginManager().getPlugin("CrackShot"); - - // CrackShot may not be loaded - if (cs == null || !(cs instanceof CSDirector)) { - return null; - } - - return (Plugin) cs; - } - - public class CrackShotListener implements Listener { - - public void crackShotEventListener(WeaponDamageEntityEvent e) { - if (e.isCancelled() || (e.getDamage() == 0)) { - return; - } - Player dmgr = e.getPlayer(); - - if (e.getVictim() instanceof Player) { - Player tagged = (Player) e.getVictim(); - - if (plugin.npcm.isNPC(tagged) || plugin.entityListener.disallowedWorld(tagged.getWorld().getName())) { - return; - } //If the damaged player is an npc do nothing - - if ((dmgr instanceof Player) && plugin.settings.playerTag()) { - Player damagerPlayer = (Player) dmgr; - if (damagerPlayer != tagged) { - plugin.entityListener.onPlayerDamageByPlayer(damagerPlayer, tagged); - } - } - } - } - } -} -*/ \ No newline at end of file diff --git a/src/main/java/com/trc202/CombatTagListeners/NoPvpPlayerListener.java b/src/main/java/com/trc202/CombatTagListeners/NoPvpPlayerListener.java index 28ea3a5..be45da8 100644 --- a/src/main/java/com/trc202/CombatTagListeners/NoPvpPlayerListener.java +++ b/src/main/java/com/trc202/CombatTagListeners/NoPvpPlayerListener.java @@ -24,6 +24,7 @@ import com.trc202.CombatTag.CombatTag; import com.trc202.CombatTagEvents.NpcDespawnReason; +import techcable.minecraft.combattag.PluginCompatibility; import techcable.minecraft.combattag.Utils; public class NoPvpPlayerListener implements Listener { @@ -66,7 +67,7 @@ public void onPlayerQuit(PlayerQuitEvent e) { plugin.entityListener.onPlayerDeath(quitPlr); return; } - if (plugin.isInCombat(playerUUID)) { + if (plugin.isInCombat(playerUUID) && PluginCompatibility.isAuthenticated(quitPlr)) { //Player has logged out before the pvp battle is considered over by the plugin alertPlayers(quitPlr); if (plugin.settings.isInstaKill()) { diff --git a/src/main/java/techcable/minecraft/combattag/PluginCompatibility.java b/src/main/java/techcable/minecraft/combattag/PluginCompatibility.java new file mode 100644 index 0000000..93c0968 --- /dev/null +++ b/src/main/java/techcable/minecraft/combattag/PluginCompatibility.java @@ -0,0 +1,26 @@ +package techcable.minecraft.combattag; + +import org.bukkit.entity.Player; + +import fr.xephi.authme.api.API; + +import lombok.*; + +@Getter +public class PluginCompatibility { + private PluginCompatibility() {} + + public static boolean isAuthenticated(Player player) { + if (!hasAuthme()) return true; + return API.isAuthenticated(player); + } + + public static boolean hasAuthme() { + try { + Class.forName("fr.xephi.authme.AuthMe"); + } catch (ClassNotFoundException ex) { + return false; + } + return true; + } +}