Fix crash when HeroChat was not present.
This commit is contained in:
parent
e3bfaec642
commit
b588d355b4
@ -1,110 +1,19 @@
|
||||
package com.massivecraft.factions.integration.herochat;
|
||||
|
||||
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 org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.dthielke.herochat.ChannelChatEvent;
|
||||
import com.dthielke.herochat.Herochat;
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.FPlayers;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.listeners.FactionsChatListener;
|
||||
|
||||
public class HerochatFeatures implements Listener
|
||||
{
|
||||
P p;
|
||||
public HerochatFeatures(P p)
|
||||
{
|
||||
this.p = p;
|
||||
}
|
||||
|
||||
public static void setup()
|
||||
{
|
||||
Plugin plug = Bukkit.getServer().getPluginManager().getPlugin("Herochat");
|
||||
if (plug == null) return;
|
||||
if (!plug.getClass().getName().equals("com.dthielke.herochat.Herochat")) return;
|
||||
Bukkit.getPluginManager().registerEvents(new HerochatFeatures(P.p), P.p);
|
||||
Herochat.getChannelManager().addChannel(new FactionChannel());
|
||||
Herochat.getChannelManager().addChannel(new AlliesChannel());
|
||||
Bukkit.getPluginManager().registerEvents(new HerochatListener(P.p), P.p);
|
||||
P.p.log("Integration with Herochat successful");
|
||||
}
|
||||
|
||||
/**
|
||||
* Due to limitations in the new version of Herochat we can not offer relation colored tags.
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
public void onChannelChatEvent(ChannelChatEvent event)
|
||||
{
|
||||
// Should we even parse?
|
||||
if ( ! Conf.chatParseTags) return;
|
||||
if (Conf.chatTagHandledByAnotherPlugin) return;
|
||||
|
||||
Player from = event.getSender().getPlayer();
|
||||
FPlayer fpfrom = FPlayers.i.get(from);
|
||||
String format = event.getFormat();
|
||||
|
||||
format = format.replaceAll("&r", "§r");
|
||||
|
||||
String formatWithoutColor = FactionsChatListener.parseTags(format, from, fpfrom);
|
||||
|
||||
event.setFormat(formatWithoutColor);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
public static Chatter getChatter(Player player)
|
||||
{
|
||||
ChatterManager chatterManager = Herochat.getChatterManager();
|
||||
if (!chatterManager.hasChatter(player)) chatterManager.addChatter(player);
|
||||
Chatter ret = chatterManager.getChatter(player);
|
||||
if (ret == null) throw new RuntimeException("Chatter (" + player.getName() + ") not found.");
|
||||
return ret;
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.LOW)
|
||||
public void onAsyncPlayerChatEvent(AsyncPlayerChatEvent event)
|
||||
{
|
||||
Player player = event.getPlayer();
|
||||
Chatter sender = getChatter(player);
|
||||
Channel ch = sender.getActiveChannel();
|
||||
if (ch == null) return;
|
||||
|
||||
boolean isFactionChat = ch.getName().equals(Conf.herochatFactionChannelName);
|
||||
boolean isAllyChat = ch.getName().equals(Conf.herochatAllyChannelName);
|
||||
if ( ! isFactionChat && ! isAllyChat) return;
|
||||
|
||||
// Do common setup
|
||||
Player sender = event.getSender().getPlayer();
|
||||
FPlayer fpsender = FPlayers.i.get(sender);
|
||||
|
||||
event.getRecipients().clear();
|
||||
|
||||
if ( ! fpsender.hasFaction())
|
||||
{
|
||||
sender.sendMessage(ChatColor.YELLOW.toString()+"You must join a faction to use the "+ch.getColor().toString()+ch.getName()+ChatColor.YELLOW.toString()+"-channel.");
|
||||
event.getBukkitEvent().setCancelled(true);
|
||||
return;
|
||||
}
|
||||
|
||||
Faction faction = fpsender.getFaction();
|
||||
event.getBukkitEvent().getRecipients().addAll(faction.getOnlinePlayers());
|
||||
|
||||
if (isAllyChat)
|
||||
{
|
||||
for (FPlayer fplayer : FPlayers.i.getOnline())
|
||||
{
|
||||
if(faction.getRelationTo(fplayer) == Rel.ALLY)
|
||||
{
|
||||
event.getBukkitEvent().getRecipients().add(fplayer.getPlayer());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
||||
|
@ -0,0 +1,46 @@
|
||||
package com.massivecraft.factions.integration.herochat;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import com.dthielke.herochat.ChannelChatEvent;
|
||||
import com.dthielke.herochat.Herochat;
|
||||
import com.massivecraft.factions.Conf;
|
||||
import com.massivecraft.factions.FPlayer;
|
||||
import com.massivecraft.factions.FPlayers;
|
||||
import com.massivecraft.factions.P;
|
||||
import com.massivecraft.factions.listeners.FactionsChatListener;
|
||||
|
||||
public class HerochatListener implements Listener
|
||||
{
|
||||
P p;
|
||||
public HerochatListener(P p)
|
||||
{
|
||||
this.p = p;
|
||||
Herochat.getChannelManager().addChannel(new FactionChannel());
|
||||
Herochat.getChannelManager().addChannel(new AlliesChannel());
|
||||
}
|
||||
|
||||
/**
|
||||
* Due to limitations in the new version of Herochat we can not offer relation colored tags.
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.NORMAL)
|
||||
public void onChannelChatEvent(ChannelChatEvent event)
|
||||
{
|
||||
// Should we even parse?
|
||||
if ( ! Conf.chatParseTags) return;
|
||||
if (Conf.chatTagHandledByAnotherPlugin) return;
|
||||
|
||||
Player from = event.getSender().getPlayer();
|
||||
FPlayer fpfrom = FPlayers.i.get(from);
|
||||
String format = event.getFormat();
|
||||
|
||||
format = format.replaceAll("&r", "§r");
|
||||
|
||||
String formatWithoutColor = FactionsChatListener.parseTags(format, from, fpfrom);
|
||||
|
||||
event.setFormat(formatWithoutColor);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user