From 129fb6e63f4d4e7b1e4200ee48dcb4f685fb4282 Mon Sep 17 00:00:00 2001 From: Magnus Ulf Date: Tue, 18 Dec 2018 15:52:14 +0100 Subject: [PATCH] Remove HeroChat integration --- pom.xml | 12 - .../herochat/ChannelFactionsAbstract.java | 371 ------------------ .../herochat/ChannelFactionsAllies.java | 41 -- .../herochat/ChannelFactionsFaction.java | 42 -- .../integration/herochat/EngineHerochat.java | 53 --- .../herochat/IntegrationHerochat.java | 29 -- 6 files changed, 548 deletions(-) delete mode 100644 src/com/massivecraft/factions/integration/herochat/ChannelFactionsAbstract.java delete mode 100644 src/com/massivecraft/factions/integration/herochat/ChannelFactionsAllies.java delete mode 100644 src/com/massivecraft/factions/integration/herochat/ChannelFactionsFaction.java delete mode 100644 src/com/massivecraft/factions/integration/herochat/EngineHerochat.java delete mode 100644 src/com/massivecraft/factions/integration/herochat/IntegrationHerochat.java diff --git a/pom.xml b/pom.xml index 441940fa..0cc8c75b 100644 --- a/pom.xml +++ b/pom.xml @@ -19,13 +19,6 @@ ${massiveColorInfo}${project.name} allows the players to team up and claim land as their own and start wars with other factions. This way we hope to inspire politics, intrigue, and team spirit. ${massiveDescriptionSuffix} ${massiveBaseUrl}/factions - - - sk89q-repo - http://maven.sk89q.com/repo/ - - - @@ -53,11 +46,6 @@ net.milkbowl.vault Vault - - - com.dthielke.herochat - Herochat - com.griefcraft diff --git a/src/com/massivecraft/factions/integration/herochat/ChannelFactionsAbstract.java b/src/com/massivecraft/factions/integration/herochat/ChannelFactionsAbstract.java deleted file mode 100644 index 51277b92..00000000 --- a/src/com/massivecraft/factions/integration/herochat/ChannelFactionsAbstract.java +++ /dev/null @@ -1,371 +0,0 @@ -package com.massivecraft.factions.integration.herochat; - -import com.dthielke.herochat.Channel; -import com.dthielke.herochat.ChannelChatEvent; -import com.dthielke.herochat.ChannelStorage; -import com.dthielke.herochat.ChatCompleteEvent; -import com.dthielke.herochat.Chatter; -import com.dthielke.herochat.Herochat; -import com.dthielke.herochat.MessageFormatSupplier; -import com.dthielke.herochat.MessageNotFoundException; -import com.massivecraft.factions.Rel; -import com.massivecraft.factions.entity.Faction; -import com.massivecraft.factions.entity.MPlayer; -import com.massivecraft.massivecore.mixin.MixinMessage; -import com.massivecraft.massivecore.util.MUtil; -import net.milkbowl.vault.chat.Chat; -import org.bukkit.Bukkit; -import org.bukkit.ChatColor; -import org.bukkit.World; -import org.bukkit.entity.Player; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Iterator; -import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public abstract class ChannelFactionsAbstract implements Channel -{ - private static final Pattern msgPattern = Pattern.compile("(.*)<(.*)%1\\$s(.*)> %2\\$s"); - private final ChannelStorage storage = Herochat.getChannelManager().getStorage(); - private final MessageFormatSupplier formatSupplier = Herochat.getChannelManager(); - - @Override - public boolean addMember(Chatter chatter, boolean announce, boolean flagUpdate) - { - if (chatter.hasChannel(this)) return false; - - if ((announce) && (this.isVerbose())) - { - try - { - this.announce(Herochat.getMessage("channel_join").replace("$1", chatter.getPlayer().getDisplayName())); - } - catch (MessageNotFoundException e) - { - Herochat.severe("Messages.properties is missing: channel_join"); - } - } - - chatter.addChannel(this, announce, flagUpdate); - return true; - } - - @Override - public boolean kickMember(Chatter chatter, boolean announce) - { - if (!chatter.hasChannel(this)) return false; - this.removeMember(chatter, false, true); - - if (announce) - { - try - { - announce(Herochat.getMessage("channel_kick").replace("$1", chatter.getPlayer().getDisplayName())); - } - catch (MessageNotFoundException e) - { - Herochat.severe("Messages.properties is missing: channel_kick"); - } - } - - return true; - } - - @Override - public boolean removeMember(Chatter chatter, boolean announce, boolean flagUpdate) - { - if (!chatter.hasChannel(this)) return false; - chatter.removeChannel(this, announce, flagUpdate); - - if (announce && this.isVerbose()) - { - try - { - this.announce(Herochat.getMessage("channel_leave").replace("$1", chatter.getPlayer().getDisplayName())); - } - catch (MessageNotFoundException e) - { - Herochat.severe("Messages.properties is missing: channel_leave"); - } - } - - return true; - } - - @Override - public Set getMembers() - { - Set ret = new HashSet<>(); - for (Chatter chatter : Herochat.getChatterManager().getChatters()) - { - if(chatter.hasChannel(this)) ret.add(chatter); - } - return ret; - } - - @Override - public void announce(String message) - { - String colorized = message.replaceAll("(?i)&([a-fklmno0-9])", "§$1"); - message = applyFormat(this.getFormatSupplier().getAnnounceFormat(), "").replace("%2$s", colorized); - for (Chatter member : this.getMembers()) - { - Player player = member.getPlayer(); - MixinMessage.get().messageOne(player, message); - } - Herochat.logChat(ChatColor.stripColor(message)); - } - - @Override - public String applyFormat(String format, String originalFormat) - { - format = format.replace("{default}", this.getFormatSupplier().getStandardFormat()); - format = format.replace("{name}", this.getName()); - format = format.replace("{nick}", this.getNick()); - format = format.replace("{color}", this.getColor().toString()); - format = format.replace("{msg}", "%2$s"); - - Matcher matcher = msgPattern.matcher(originalFormat); - if (matcher.matches() && matcher.groupCount() == 3) - { - format = format.replace("{sender}", matcher.group(1) + matcher.group(2) + "%1$s" + matcher.group(3)); - } - else - { - format = format.replace("{sender}", "%1$s"); - } - - format = format.replaceAll("(?i)&([a-fklmnor0-9])", "§$1"); - return format; - } - - @Override - public String applyFormat(String format, String originalFormat, Player sender) - { - format = this.applyFormat(format, originalFormat); - format = format.replace("{plainsender}", sender.getName()); - format = format.replace("{world}", sender.getWorld().getName()); - Chat chat = Herochat.getChatService(); - if (chat != null) - { - try - { - String prefix = chat.getPlayerPrefix(sender); - if (prefix == null || prefix == "") - { - prefix = chat.getPlayerPrefix((String)null, sender.getName()); - } - String suffix = chat.getPlayerSuffix(sender); - if (suffix == null || suffix == "") - { - suffix = chat.getPlayerSuffix((String)null, sender.getName()); - } - String group = chat.getPrimaryGroup(sender); - String groupPrefix = group == null ? "" : chat.getGroupPrefix(sender.getWorld(), group); - if (group != null && (groupPrefix == null || groupPrefix == "")) - { - groupPrefix = chat.getGroupPrefix((String)null, group); - } - String groupSuffix = group == null ? "" : chat.getGroupSuffix(sender.getWorld(), group); - if (group != null && (groupSuffix == null || groupSuffix == "")) - { - groupSuffix = chat.getGroupSuffix((String)null, group); - } - format = format.replace("{prefix}", prefix == null ? "" : prefix.replace("%", "%%")); - format = format.replace("{suffix}", suffix == null ? "" : suffix.replace("%", "%%")); - format = format.replace("{group}", group == null ? "" : group.replace("%", "%%")); - format = format.replace("{groupprefix}", groupPrefix == null ? "" : groupPrefix.replace("%", "%%")); - format = format.replace("{groupsuffix}", groupSuffix == null ? "" : groupSuffix.replace("%", "%%")); - } - catch (UnsupportedOperationException ignored) - { - - } - } - else - { - format = format.replace("{prefix}", ""); - format = format.replace("{suffix}", ""); - format = format.replace("{group}", ""); - format = format.replace("{groupprefix}", ""); - format = format.replace("{groupsuffix}", ""); - } - format = format.replaceAll("(?i)&([a-fklmno0-9])", "§$1"); - return format; - } - - @Override - public void emote(Chatter sender, String message) - { - message = this.applyFormat(this.getFormatSupplier().getEmoteFormat(), "").replace("%2$s", message); - - Set recipients = new HashSet<>(); - for (Chatter member : this.getMembers()) - { - recipients.add(member.getPlayer()); - } - - this.trimRecipients(recipients, sender); - - for (Player recipient : recipients) - { - MixinMessage.get().messageOne(recipient, message); - } - } - - @Override - public boolean isMuted(String name) - { - if (this.isMuted()) return true; - return this.getMutes().contains(name.toLowerCase()); - } - - public abstract Set getTargetRelations(); - - public Set getRecipients(Player sender) - { - Set ret = new HashSet<>(); - - MPlayer fsender = MPlayer.get(sender); - Faction faction = fsender.getFaction(); - - for (Player player : MUtil.getOnlinePlayers()) - { - MPlayer frecipient = MPlayer.get(player); - if (!this.getTargetRelations().contains(faction.getRelationTo(frecipient))) continue; - ret.add(player); - } - - return ret; - } - - @Override - public void processChat(ChannelChatEvent event) - { - Player player = event.getSender().getPlayer(); - - String format = this.applyFormat(event.getFormat(), event.getBukkitFormat(), player); - - Chatter sender = Herochat.getChatterManager().getChatter(player); - - // NOTE: This line is not standard deobfuscation. It's altered to achieve the recipient limitations. - Set recipients = this.getRecipients(player); - - this.trimRecipients(recipients, sender); - String msg = String.format(format, new Object[] { player.getDisplayName(), event.getMessage() }); - for (Player recipient : recipients) - { - MixinMessage.get().messageOne(recipient, msg); - } - - Bukkit.getPluginManager().callEvent(new ChatCompleteEvent(sender, this, msg)); - Herochat.logChat(msg); - } - - public boolean isMessageHeard(Set recipients, Chatter sender) - { - if (!isLocal()) return true; - - Player senderPlayer = sender.getPlayer(); - for (Player recipient : recipients) - { - if (recipient.equals(senderPlayer)) continue; - if (recipient.hasPermission("herochat.admin.stealth")) continue; - return true; - } - - return false; - } - - public void trimRecipients(Set recipients, Chatter sender) - { - World world = sender.getPlayer().getWorld(); - - Set members = this.getMembers(); - Iterator iterator = recipients.iterator(); - while(iterator.hasNext()) - { - Chatter recipient = Herochat.getChatterManager().getChatter(iterator.next()); - if (recipient == null) continue; - World recipientWorld = recipient.getPlayer().getWorld(); - - if (!members.contains(recipient)) - iterator.remove(); - else if ((isLocal()) && (!sender.isInRange(recipient, this.getDistance()))) - iterator.remove(); - else if (!hasWorld(recipientWorld)) - iterator.remove(); - else if (recipient.isIgnoring(sender)) - iterator.remove(); - else if ((!this.isCrossWorld()) && (!world.equals(recipientWorld))) - iterator.remove(); - } - } - - public boolean equals(Object other) - { - if (other == this) return true; - if (other == null) return false; - if (!(other instanceof Channel)) return false; - Channel channel = (Channel)other; - return (this.getName().equalsIgnoreCase(channel.getName())) || (this.getName().equalsIgnoreCase(channel.getNick())); - } - - public int hashCode() - { - int prime = 31; - int result = 1; - result = prime * result + (this.getName() == null ? 0 : this.getName().toLowerCase().hashCode()); - result = prime * result + (this.getNick() == null ? 0 : this.getNick().toLowerCase().hashCode()); - return result; - } - - @Override public boolean isTransient() { return false; } - @Override public String getPassword() { return ""; } - @Override public void setPassword(String password) {} - @Override public boolean isVerbose() { return false; } - @Override public void setVerbose(boolean verbose) {} - @Override public boolean isHidden() { return false; } - @Override public boolean isLocal() { return this.getDistance() != 0; } - @Override public void attachStorage(ChannelStorage storage) { } - @Override public boolean banMember(Chatter chatter, boolean announce) { return false; } - @Override public Set getBans() { return Collections.emptySet(); } - @Override public Set getModerators() { return Collections.emptySet(); } - @Override public Set getMutes() { return Collections.emptySet(); } - @Override public ChannelStorage getStorage() { return this.storage; } - @Override public boolean hasWorld(String world) { return (this.getWorlds().isEmpty()) || (this.getWorlds().contains(world)); } - @Override public boolean hasWorld(World world) { return this.hasWorld(world.getName()); } - @Override public boolean isBanned(String name) { return this.getBans().contains(name.toLowerCase()); } - @Override public boolean isMember(Chatter chatter) { return this.getMembers().contains(chatter); } - @Override public boolean isModerator(String name) { return this.getModerators().contains(name.toLowerCase()); } - - @Override public void onFocusGain(Chatter chatter) {} - @Override public void onFocusLoss(Chatter chatter) {} - - @Override public void removeWorld(String world) { this.getWorlds().remove(world); } - @Override public void setBanned(String name, boolean banned) {} - @Override public void setBans(Set bans) {} - @Override public void setModerator(String name, boolean moderator) {} - @Override public void setModerators(Set moderators) { } - @Override public void setMuted(String name, boolean muted) {} - @Override public void setMutes(Set mutes) {} - - @Override - public MessageFormatSupplier getFormatSupplier() - { - return this.formatSupplier; - } - - @Override - public void sendRawMessage(String rawMessage) - { - for (Chatter member : this.getMembers()) - { - Player player = member.getPlayer(); - MixinMessage.get().messageOne(player, rawMessage); - } - } -} diff --git a/src/com/massivecraft/factions/integration/herochat/ChannelFactionsAllies.java b/src/com/massivecraft/factions/integration/herochat/ChannelFactionsAllies.java deleted file mode 100644 index b93fc91b..00000000 --- a/src/com/massivecraft/factions/integration/herochat/ChannelFactionsAllies.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.massivecraft.factions.integration.herochat; - -import com.massivecraft.factions.Rel; -import com.massivecraft.factions.entity.MConf; -import org.bukkit.ChatColor; - -import java.util.EnumSet; -import java.util.Set; - -public class ChannelFactionsAllies extends ChannelFactionsAbstract -{ - public static final Set targetRelations = EnumSet.of(Rel.MEMBER, Rel.RECRUIT, Rel.ALLY); - @Override public Set getTargetRelations() { return targetRelations; } - - @Override public String getName() { return MConf.get().herochatAlliesName; } - - @Override public String getNick() { return MConf.get().herochatAlliesNick; } - @Override public void setNick(String nick) { MConf.get().herochatAlliesNick = nick; } - - @Override public String getFormat() { return MConf.get().herochatAlliesFormat; } - @Override public void setFormat(String format) { MConf.get().herochatAlliesFormat = format; } - - @Override public ChatColor getColor() { return MConf.get().herochatAlliesColor; } - @Override public void setColor(ChatColor color) { MConf.get().herochatAlliesColor = color; } - - @Override public int getDistance() { return MConf.get().herochatAlliesDistance; } - @Override public void setDistance(int distance) { MConf.get().herochatAlliesDistance = distance; } - - @Override public void addWorld(String world) { MConf.get().herochatAlliesWorlds.add(world); } - @Override public Set getWorlds() { return MConf.get().herochatAlliesWorlds; } - @Override public void setWorlds(Set worlds) { MConf.get().herochatAlliesWorlds = worlds; } - - @Override public boolean isShortcutAllowed() { return MConf.get().herochatAlliesIsShortcutAllowed; } - @Override public void setShortcutAllowed(boolean shortcutAllowed) { MConf.get().herochatAlliesIsShortcutAllowed = shortcutAllowed; } - - @Override public boolean isCrossWorld() { return MConf.get().herochatAlliesCrossWorld; } - @Override public void setCrossWorld(boolean crossWorld) { MConf.get().herochatAlliesCrossWorld = crossWorld; } - - @Override public boolean isMuted() { return MConf.get().herochatAlliesMuted; } - @Override public void setMuted(boolean value) { MConf.get().herochatAlliesMuted = value; } -} diff --git a/src/com/massivecraft/factions/integration/herochat/ChannelFactionsFaction.java b/src/com/massivecraft/factions/integration/herochat/ChannelFactionsFaction.java deleted file mode 100644 index ce2d002e..00000000 --- a/src/com/massivecraft/factions/integration/herochat/ChannelFactionsFaction.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.massivecraft.factions.integration.herochat; - -import com.massivecraft.factions.Rel; -import com.massivecraft.factions.entity.MConf; -import org.bukkit.ChatColor; - -import java.util.EnumSet; -import java.util.HashSet; -import java.util.Set; - -public class ChannelFactionsFaction extends ChannelFactionsAbstract -{ - public static final Set targetRelations = EnumSet.of(Rel.MEMBER, Rel.RECRUIT); - @Override public Set getTargetRelations() { return targetRelations; } - - @Override public String getName() { return MConf.get().herochatFactionName; } - - @Override public String getNick() { return MConf.get().herochatFactionNick; } - @Override public void setNick(String nick) { MConf.get().herochatFactionNick = nick; } - - @Override public String getFormat() { return MConf.get().herochatFactionFormat; } - @Override public void setFormat(String format) { MConf.get().herochatFactionFormat = format; } - - @Override public ChatColor getColor() { return MConf.get().herochatFactionColor; } - @Override public void setColor(ChatColor color) { MConf.get().herochatFactionColor = color; } - - @Override public int getDistance() { return MConf.get().herochatFactionDistance; } - @Override public void setDistance(int distance) { MConf.get().herochatFactionDistance = distance; } - - @Override public void addWorld(String world) { MConf.get().herochatFactionWorlds.add(world); } - @Override public Set getWorlds() { return new HashSet<>(MConf.get().herochatFactionWorlds); } - @Override public void setWorlds(Set worlds) { MConf.get().herochatFactionWorlds = worlds; } - - @Override public boolean isShortcutAllowed() { return MConf.get().herochatFactionIsShortcutAllowed; } - @Override public void setShortcutAllowed(boolean shortcutAllowed) { MConf.get().herochatFactionIsShortcutAllowed = shortcutAllowed; } - - @Override public boolean isCrossWorld() { return MConf.get().herochatFactionCrossWorld; } - @Override public void setCrossWorld(boolean crossWorld) { MConf.get().herochatFactionCrossWorld = crossWorld; } - - @Override public boolean isMuted() { return MConf.get().herochatFactionMuted; } - @Override public void setMuted(boolean value) { MConf.get().herochatFactionMuted = value; } -} diff --git a/src/com/massivecraft/factions/integration/herochat/EngineHerochat.java b/src/com/massivecraft/factions/integration/herochat/EngineHerochat.java deleted file mode 100644 index 8dcc49c9..00000000 --- a/src/com/massivecraft/factions/integration/herochat/EngineHerochat.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.massivecraft.factions.integration.herochat; - -import com.dthielke.herochat.ChannelChatEvent; -import com.dthielke.herochat.Herochat; -import com.massivecraft.factions.chat.ChatFormatter; -import com.massivecraft.factions.entity.MConf; -import com.massivecraft.massivecore.Engine; -import org.bukkit.event.EventHandler; -import org.bukkit.event.EventPriority; - -public class EngineHerochat extends Engine -{ - // -------------------------------------------- // - // INSTANCE & CONSTRUCT - // -------------------------------------------- // - - private static EngineHerochat i = new EngineHerochat(); - public static EngineHerochat get() { return i; } - - // -------------------------------------------- // - // ACTIVATE & DEACTIVATE - // -------------------------------------------- // - - @Override - public void setActiveInner(boolean active) - { - if ( ! active) return; - - Herochat.getChannelManager().addChannel(new ChannelFactionsFaction()); - Herochat.getChannelManager().addChannel(new ChannelFactionsAllies()); - } - - // -------------------------------------------- // - // LISTENER - // -------------------------------------------- // - - @EventHandler(priority = EventPriority.NORMAL) - public void onChannelChatEvent(ChannelChatEvent event) - { - // Should we even parse? - if ( ! MConf.get().chatParseTags) return; - - String format = event.getFormat(); - - // We trigger a replace of HeroChats tag {default} here - // This way we can replace faction tags hidden withing {default} as well. - format = format.replace("{default}", event.getChannel().getFormatSupplier().getStandardFormat()); - - format = ChatFormatter.format(format, event.getSender().getPlayer(), null); - event.setFormat(format); - } - -} diff --git a/src/com/massivecraft/factions/integration/herochat/IntegrationHerochat.java b/src/com/massivecraft/factions/integration/herochat/IntegrationHerochat.java deleted file mode 100644 index ec2f8c68..00000000 --- a/src/com/massivecraft/factions/integration/herochat/IntegrationHerochat.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.massivecraft.factions.integration.herochat; - -import com.massivecraft.massivecore.Engine; -import com.massivecraft.massivecore.Integration; - -public class IntegrationHerochat extends Integration -{ - // -------------------------------------------- // - // INSTANCE & CONSTRUCT - // -------------------------------------------- // - - private static IntegrationHerochat i = new IntegrationHerochat(); - public static IntegrationHerochat get() { return i; } - private IntegrationHerochat() - { - this.setPluginName("Herochat"); - } - - // -------------------------------------------- // - // OVERRIDE - // -------------------------------------------- // - - @Override - public Engine getEngine() - { - return EngineHerochat.get(); - } - -}