From c4f7d6b7563a437e17076eb564f845aacf10f4fc Mon Sep 17 00:00:00 2001 From: drtshock Date: Sat, 5 Apr 2014 15:42:01 -0500 Subject: [PATCH] Remove spout features, add worldguard and worldedit. --- README.md | 2 +- pom.xml | 31 ++++- .../java/com/massivecraft/factions/Conf.java | 3 +- .../com/massivecraft/factions/FPlayer.java | 6 +- .../com/massivecraft/factions/Faction.java | 4 +- .../java/com/massivecraft/factions/P.java | 7 +- .../massivecraft/factions/cmd/CmdLock.java | 2 +- .../integration/EssentialsFeatures.java | 27 ----- .../EssentialsOldVersionFeatures.java | 47 -------- .../factions/integration/Worldguard.java | 2 +- .../integration/capi/CapiFeatures.java | 15 --- .../integration/capi/PluginCapiListener.java | 109 ------------------ .../factions/zcore/util/TextUtil.java | 2 +- .../factions/zcore/util/WorldUtil.java | 2 +- src/main/resources/plugin.yml | 2 +- 15 files changed, 47 insertions(+), 214 deletions(-) delete mode 100644 src/main/java/com/massivecraft/factions/integration/EssentialsOldVersionFeatures.java delete mode 100644 src/main/java/com/massivecraft/factions/integration/capi/CapiFeatures.java delete mode 100644 src/main/java/com/massivecraft/factions/integration/capi/PluginCapiListener.java diff --git a/README.md b/README.md index d35ba159..f2737497 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Factions - Guilding and user-controlled antigrief plugin for Minecraft +Factions - Guilding and user-controlled antigrief plugin for Minecraft - Now working with UUIDs ==================== This plugin will allow the players on the server to create factions/guilds. The factions can claim territory that will be protected from non-members. Factions can forge alliances and declare themselves enemies with others. Land may be taken from other factions through war. diff --git a/pom.xml b/pom.xml index 335f512e..3c2f2cac 100644 --- a/pom.xml +++ b/pom.xml @@ -2,13 +2,12 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.minetime + com.massivecraft Factions 1.6.9.5-SNAPSHOT jar Factions - http://maven.apache.org UTF-8 @@ -61,6 +60,26 @@ lwc 4.4.0-SNAPSHOT + + net.ess3 + Essentials + 2.x-SNAPSHOT + + + net.ess3 + EssentialsChat + 2.x-SNAPSHOT + + + com.sk89q + worldguard + 5.8.1-SNAPSHOT + + + com.sk89q + worldedit + 5.6.1 + @@ -77,5 +96,13 @@ mcstats.org releases http://repo.mcstats.org/content/repositories/ + + essrel + http://repo.ess3.net/content/repositories/essrel + + + maven.sk89q.com + http://maven.sk89q.com/repo/ + diff --git a/src/main/java/com/massivecraft/factions/Conf.java b/src/main/java/com/massivecraft/factions/Conf.java index febbe3db..d6d7a4bd 100644 --- a/src/main/java/com/massivecraft/factions/Conf.java +++ b/src/main/java/com/massivecraft/factions/Conf.java @@ -1,6 +1,7 @@ package com.massivecraft.factions; -import org.bukkit.*; +import org.bukkit.ChatColor; +import org.bukkit.Material; import org.bukkit.entity.EntityType; import java.util.*; diff --git a/src/main/java/com/massivecraft/factions/FPlayer.java b/src/main/java/com/massivecraft/factions/FPlayer.java index a4c2d431..23c883dd 100644 --- a/src/main/java/com/massivecraft/factions/FPlayer.java +++ b/src/main/java/com/massivecraft/factions/FPlayer.java @@ -342,7 +342,7 @@ public class FPlayer extends PlayerEntity implements EconomyParticipator { } /*public String getNameAndTag(Faction faction) - { + { return this.getRelationColor(faction)+this.getNameAndTag(); } public String getNameAndTag(FPlayer fplayer) @@ -351,9 +351,9 @@ public class FPlayer extends PlayerEntity implements EconomyParticipator { }*/ // TODO: REmovded for refactoring. - + /*public String getNameAndRelevant(Faction faction) - { + { // Which relation? Relation rel = this.getRelationTo(faction); diff --git a/src/main/java/com/massivecraft/factions/Faction.java b/src/main/java/com/massivecraft/factions/Faction.java index 40855313..393ae35a 100644 --- a/src/main/java/com/massivecraft/factions/Faction.java +++ b/src/main/java/com/massivecraft/factions/Faction.java @@ -7,7 +7,9 @@ import com.massivecraft.factions.integration.LWCFeatures; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.struct.Relation; import com.massivecraft.factions.struct.Role; -import com.massivecraft.factions.util.*; +import com.massivecraft.factions.util.LazyLocation; +import com.massivecraft.factions.util.MiscUtil; +import com.massivecraft.factions.util.RelationUtil; import com.massivecraft.factions.zcore.persist.Entity; import org.bukkit.ChatColor; import org.bukkit.Location; diff --git a/src/main/java/com/massivecraft/factions/P.java b/src/main/java/com/massivecraft/factions/P.java index d603278e..e61fbb18 100644 --- a/src/main/java/com/massivecraft/factions/P.java +++ b/src/main/java/com/massivecraft/factions/P.java @@ -2,8 +2,10 @@ package com.massivecraft.factions; import com.massivecraft.factions.cmd.CmdAutoHelp; import com.massivecraft.factions.cmd.FCmdRoot; -import com.massivecraft.factions.integration.*; -import com.massivecraft.factions.integration.capi.CapiFeatures; +import com.massivecraft.factions.integration.Econ; +import com.massivecraft.factions.integration.EssentialsFeatures; +import com.massivecraft.factions.integration.LWCFeatures; +import com.massivecraft.factions.integration.Worldguard; import com.massivecraft.factions.listeners.*; import com.massivecraft.factions.struct.ChatMode; import com.massivecraft.factions.util.AutoLeaveTask; @@ -99,7 +101,6 @@ public class P extends MPlugin { EssentialsFeatures.setup(); Econ.setup(); - CapiFeatures.setup(); LWCFeatures.setup(); if (Conf.worldGuardChecking || Conf.worldGuardBuildPriority) { diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdLock.java b/src/main/java/com/massivecraft/factions/cmd/CmdLock.java index aadf09c9..b015e823 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdLock.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdLock.java @@ -6,7 +6,7 @@ public class CmdLock extends FCommand { // TODO: This solution needs refactoring. /* - factions.lock: + factions.lock: description: use the /f lock [on/off] command to temporarily lock the data files from being overwritten default: op */ diff --git a/src/main/java/com/massivecraft/factions/integration/EssentialsFeatures.java b/src/main/java/com/massivecraft/factions/integration/EssentialsFeatures.java index 09768984..de9a6ae8 100644 --- a/src/main/java/com/massivecraft/factions/integration/EssentialsFeatures.java +++ b/src/main/java/com/massivecraft/factions/integration/EssentialsFeatures.java @@ -4,16 +4,12 @@ import com.earth2me.essentials.IEssentials; import com.earth2me.essentials.Teleport; import com.earth2me.essentials.Trade; import com.earth2me.essentials.chat.EssentialsChat; -import com.earth2me.essentials.chat.EssentialsLocalChatEvent; import com.massivecraft.factions.Conf; import com.massivecraft.factions.P; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; -import org.bukkit.event.Listener; import org.bukkit.plugin.Plugin; @@ -50,20 +46,11 @@ public class EssentialsFeatures { Class.forName("com.earth2me.essentials.chat.EssentialsLocalChatEvent"); integrateChat(essChat); } catch (ClassNotFoundException ex) { - // no? try older Essentials 2.x integration method - try { - EssentialsOldVersionFeatures.integrateChat(essChat); - } catch (NoClassDefFoundError ex2) { /* no known integration method, then */ } } } public static void unhookChat() { if (essChat == null) return; - - try { - EssentialsOldVersionFeatures.unhookChat(); - } catch (NoClassDefFoundError ex) { - } } @@ -85,7 +72,6 @@ public class EssentialsFeatures { public static void integrateChat(EssentialsChat instance) { essChat = instance; try { - Bukkit.getServer().getPluginManager().registerEvents(new LocalChatListener(), P.p); P.p.log("Found and will integrate chat with newer " + essChat.getDescription().getFullName()); // curly braces used to be accepted by the format string EssentialsChat but no longer are, so... deal with chatTagReplaceString which might need updating @@ -97,17 +83,4 @@ public class EssentialsFeatures { essChat = null; } } - - private static class LocalChatListener implements Listener { - @SuppressWarnings("unused") - @EventHandler(priority = EventPriority.NORMAL) - public void onPlayerChat(EssentialsLocalChatEvent event) { - Player speaker = event.getPlayer(); - String format = event.getFormat(); - format = format.replace(Conf.chatTagReplaceString, P.p.getPlayerFactionTag(speaker)).replace("[FACTION_TITLE]", P.p.getPlayerTitle(speaker)); - event.setFormat(format); - // NOTE: above doesn't do relation coloring. if/when we can get a local recipient list from EssentialsLocalChatEvent, we'll probably - // want to pass it on to FactionsPlayerListener.onPlayerChat(PlayerChatEvent event) rather than duplicating code - } - } } diff --git a/src/main/java/com/massivecraft/factions/integration/EssentialsOldVersionFeatures.java b/src/main/java/com/massivecraft/factions/integration/EssentialsOldVersionFeatures.java deleted file mode 100644 index f1e4ac17..00000000 --- a/src/main/java/com/massivecraft/factions/integration/EssentialsOldVersionFeatures.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.massivecraft.factions.integration; - -import com.earth2me.essentials.chat.EssentialsChat; -import com.earth2me.essentials.chat.IEssentialsChatListener; -import com.massivecraft.factions.Conf; -import com.massivecraft.factions.P; -import org.bukkit.entity.Player; -import org.bukkit.event.player.AsyncPlayerChatEvent; - - -/* - * This Essentials integration handler is for older 2.x.x versions of Essentials which have "IEssentialsChatListener" - */ - -public class EssentialsOldVersionFeatures { - private static EssentialsChat essChat; - - public static void integrateChat(EssentialsChat instance) { - essChat = instance; - try { - essChat.addEssentialsChatListener("Factions", new IEssentialsChatListener() { - public boolean shouldHandleThisChat(AsyncPlayerChatEvent event) { - return P.p.shouldLetFactionsHandleThisChat(event); - } - - public String modifyMessage(AsyncPlayerChatEvent event, Player target, String message) { - return message.replace(Conf.chatTagReplaceString, P.p.getPlayerFactionTagRelation(event.getPlayer(), target)).replace("[FACTION_TITLE]", P.p.getPlayerTitle(event.getPlayer())); - } - }); - P.p.log("Found and will integrate chat with " + essChat.getDescription().getFullName()); - - // As of Essentials 2.8+, curly braces are not accepted and are instead replaced with square braces, so... deal with it - if (essChat.getDescription().getVersion().startsWith("2.8.") && Conf.chatTagReplaceString.contains("{")) { - Conf.chatTagReplaceString = Conf.chatTagReplaceString.replace("{", "[").replace("}", "]"); - P.p.log("NOTE: as of Essentials 2.8+, we've had to switch the default chat replacement tag from \"{FACTION}\" to \"[FACTION]\". This has automatically been updated for you."); - } - } catch (NoSuchMethodError ex) { - essChat = null; - } - } - - public static void unhookChat() { - if (essChat != null) { - essChat.removeEssentialsChatListener("Factions"); - } - } -} diff --git a/src/main/java/com/massivecraft/factions/integration/Worldguard.java b/src/main/java/com/massivecraft/factions/integration/Worldguard.java index 18f6cade..0c3d7b53 100644 --- a/src/main/java/com/massivecraft/factions/integration/Worldguard.java +++ b/src/main/java/com/massivecraft/factions/integration/Worldguard.java @@ -19,7 +19,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import static com.sk89q.worldguard.bukkit.BukkitUtil.*; +import static com.sk89q.worldguard.bukkit.BukkitUtil.toVector; /* * Worldguard Region Checking diff --git a/src/main/java/com/massivecraft/factions/integration/capi/CapiFeatures.java b/src/main/java/com/massivecraft/factions/integration/capi/CapiFeatures.java deleted file mode 100644 index e95ced40..00000000 --- a/src/main/java/com/massivecraft/factions/integration/capi/CapiFeatures.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.massivecraft.factions.integration.capi; - -import com.massivecraft.factions.P; -import org.bukkit.Bukkit; -import org.bukkit.plugin.Plugin; - -public class CapiFeatures { - public static void setup() { - Plugin plug = Bukkit.getServer().getPluginManager().getPlugin("capi"); - if (plug != null && plug.getClass().getName().equals("com.massivecraft.capi.P")) { - P.p.log("Integration with the CAPI plugin was successful"); - Bukkit.getPluginManager().registerEvents(new PluginCapiListener(P.p), P.p); - } - } -} diff --git a/src/main/java/com/massivecraft/factions/integration/capi/PluginCapiListener.java b/src/main/java/com/massivecraft/factions/integration/capi/PluginCapiListener.java deleted file mode 100644 index 548addf3..00000000 --- a/src/main/java/com/massivecraft/factions/integration/capi/PluginCapiListener.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.massivecraft.factions.integration.capi; - -import com.massivecraft.capi.Channel; -import com.massivecraft.capi.Channels; -import com.massivecraft.capi.events.CAPIListChannelsEvent; -import com.massivecraft.capi.events.CAPIMessageToChannelEvent; -import com.massivecraft.capi.events.CAPIMessageToPlayerEvent; -import com.massivecraft.capi.events.CAPISelectChannelEvent; -import com.massivecraft.factions.FPlayer; -import com.massivecraft.factions.FPlayers; -import com.massivecraft.factions.Faction; -import com.massivecraft.factions.P; -import com.massivecraft.factions.struct.Relation; -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 java.util.LinkedHashSet; -import java.util.Set; - -public class PluginCapiListener implements Listener { - P p; - - Set myChannelIds = new LinkedHashSet(); - - public PluginCapiListener(P p) { - this.p = p; - - myChannelIds.add("faction"); - myChannelIds.add("allies"); - } - - private String replacePlayerTags(String format, FPlayer me, FPlayer you) { - String meFactionTag = me.getChatTag(you); - format = format.replace("{ME_FACTIONTAG}", meFactionTag.length() == 0 ? "" : meFactionTag); - format = format.replace("{ME_FACTIONTAG_PADR}", meFactionTag.length() == 0 ? "" : meFactionTag + " "); - format = format.replace("{ME_FACTIONTAG_PADL}", meFactionTag.length() == 0 ? "" : " " + meFactionTag); - format = format.replace("{ME_FACTIONTAG_PADB}", meFactionTag.length() == 0 ? "" : " " + meFactionTag + " "); - - String youFactionTag = you.getChatTag(me); - format = format.replace("{YOU_FACTIONTAG}", youFactionTag.length() == 0 ? "" : youFactionTag); - format = format.replace("{YOU_FACTIONTAG_PADR}", youFactionTag.length() == 0 ? "" : youFactionTag + " "); - format = format.replace("{YOU_FACTIONTAG_PADL}", youFactionTag.length() == 0 ? "" : " " + youFactionTag); - format = format.replace("{YOU_FACTIONTAG_PADB}", youFactionTag.length() == 0 ? "" : " " + youFactionTag + " "); - - return format; - } - - @EventHandler(priority = EventPriority.NORMAL) - public void onListChannelsEvent(CAPIListChannelsEvent event) { - for (Channel c : Channels.i.getAll()) { - if (myChannelIds.contains(c.getId())) { - event.getChannels().add(c); - } - } - } - - @EventHandler(priority = EventPriority.NORMAL) - public void onMessageToChannel(CAPIMessageToChannelEvent event) { - if (event.isCancelled()) return; - if (!myChannelIds.contains(event.getChannel().getId())) return; - - Player me = event.getMe(); - FPlayer fme = FPlayers.i.get(me); - Faction myFaction = fme.getFaction(); - - if (event.getChannel().getId().equals("faction") && myFaction.isNormal()) { - event.getThem().addAll(myFaction.getOnlinePlayers()); - - // Send to any players who are spying chat... could probably be implemented better than this - for (FPlayer fplayer : FPlayers.i.getOnline()) { - if (fplayer.isSpyingChat() && fplayer.getFaction() != myFaction) - fplayer.sendMessage("[FCspy] " + myFaction.getTag() + ": " + event.getMessage()); - } - } else if (event.getChannel().getId().equals("allies")) { - for (Player somePlayer : Bukkit.getServer().getOnlinePlayers()) { - FPlayer someFPlayer = FPlayers.i.get(somePlayer); - if (someFPlayer.getRelationTo(fme).isAtLeast(Relation.ALLY)) - event.getThem().add(somePlayer); - // Send to any players who are spying chat - else if (someFPlayer.isSpyingChat()) - someFPlayer.sendMessage("[ACspy]: " + event.getMessage()); - } - } - } - - @EventHandler(priority = EventPriority.NORMAL) - public void onMessageToPlayer(CAPIMessageToPlayerEvent event) { - if (event.isCancelled()) return; - event.setFormat(this.replacePlayerTags(event.getFormat(), FPlayers.i.get(event.getMe()), FPlayers.i.get(event.getYou()))); - } - - @EventHandler(priority = EventPriority.NORMAL) - public void onSelectChannel(CAPISelectChannelEvent event) { - if (event.isCancelled()) return; - String channelId = event.getChannel().getId(); - if (!myChannelIds.contains(channelId)) return; - - Player me = event.getMe(); - FPlayer fme = FPlayers.i.get(me); - - if (!fme.hasFaction()) { - event.setFailMessage(p.txt.parse("You must be member in a faction to use this channel.")); - event.setCancelled(true); - } - } -} diff --git a/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java b/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java index 60d4c570..35d342b0 100644 --- a/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java +++ b/src/main/java/com/massivecraft/factions/zcore/util/TextUtil.java @@ -245,7 +245,7 @@ public class TextUtil { // -------------------------------------------- // /*private static int commonStartLength(String a, String b) - { + { int len = a.length() < b.length() ? a.length() : b.length(); int i; for (i = 0; i < len; i++) diff --git a/src/main/java/com/massivecraft/factions/zcore/util/WorldUtil.java b/src/main/java/com/massivecraft/factions/zcore/util/WorldUtil.java index 5778ee82..0931d906 100644 --- a/src/main/java/com/massivecraft/factions/zcore/util/WorldUtil.java +++ b/src/main/java/com/massivecraft/factions/zcore/util/WorldUtil.java @@ -8,7 +8,7 @@ public class WorldUtil { // Previously We had crappy support for multiworld management. // This should however be handled by an external plugin! /*public static boolean load(String name) { - if (isWorldLoaded(name)) { + if (isWorldLoaded(name)) { return true; } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 33306998..5f19ae90 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: Factions version: 1.6.9.5 main: com.massivecraft.factions.P -authors: [Olof Larsson, Brett Flannigan] +authors: [Olof Larsson, Brett Flannigan, drtshock] softdepend: [PermissionsEx, Permissions, Essentials, EssentialsChat, HeroChat, iChat, LocalAreaChat, LWC, nChat, ChatManager, CAPI, AuthMe, Vault, Spout, WorldEdit, WorldGuard, AuthDB, CaptureThePoints, CombatTag] commands: factions: