Maven Attempt 1
This commit is contained in:
		@@ -1,97 +0,0 @@
 | 
			
		||||
package com.massivecraft.factions.util;
 | 
			
		||||
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
 | 
			
		||||
public class AsciiCompass
 | 
			
		||||
{
 | 
			
		||||
	public enum Point
 | 
			
		||||
	{
 | 
			
		||||
		N('N'),
 | 
			
		||||
		NE('/'),
 | 
			
		||||
		E('E'),
 | 
			
		||||
		SE('\\'),
 | 
			
		||||
		S('S'),
 | 
			
		||||
		SW('/'),
 | 
			
		||||
		W('W'),
 | 
			
		||||
		NW('\\');
 | 
			
		||||
		
 | 
			
		||||
		public final char asciiChar;
 | 
			
		||||
		
 | 
			
		||||
		private Point(final char asciiChar)
 | 
			
		||||
		{
 | 
			
		||||
			this.asciiChar = asciiChar;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		@Override
 | 
			
		||||
		public String toString()
 | 
			
		||||
		{
 | 
			
		||||
			return String.valueOf(this.asciiChar);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public String toString(boolean isActive, ChatColor colorActive, String colorDefault)
 | 
			
		||||
		{
 | 
			
		||||
			return (isActive ? colorActive : colorDefault)+String.valueOf(this.asciiChar);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static AsciiCompass.Point getCompassPointForDirection(double inDegrees)
 | 
			
		||||
	{
 | 
			
		||||
		double degrees = (inDegrees - 180) % 360 ;
 | 
			
		||||
		if (degrees < 0)
 | 
			
		||||
			degrees += 360;
 | 
			
		||||
		
 | 
			
		||||
		if (0 <= degrees && degrees < 22.5)
 | 
			
		||||
			return AsciiCompass.Point.N;
 | 
			
		||||
		else if (22.5 <= degrees && degrees < 67.5)
 | 
			
		||||
			return AsciiCompass.Point.NE;
 | 
			
		||||
		else if (67.5 <= degrees && degrees < 112.5)
 | 
			
		||||
			return AsciiCompass.Point.E;
 | 
			
		||||
		else if (112.5 <= degrees && degrees < 157.5)
 | 
			
		||||
			return AsciiCompass.Point.SE;
 | 
			
		||||
		else if (157.5 <= degrees && degrees < 202.5)
 | 
			
		||||
			return AsciiCompass.Point.S;
 | 
			
		||||
		else if (202.5 <= degrees && degrees < 247.5)
 | 
			
		||||
			return AsciiCompass.Point.SW;
 | 
			
		||||
		else if (247.5 <= degrees && degrees < 292.5)
 | 
			
		||||
			return AsciiCompass.Point.W;
 | 
			
		||||
		else if (292.5 <= degrees && degrees < 337.5)
 | 
			
		||||
			return AsciiCompass.Point.NW;
 | 
			
		||||
		else if (337.5 <= degrees && degrees < 360.0)
 | 
			
		||||
			return AsciiCompass.Point.N;
 | 
			
		||||
		else
 | 
			
		||||
			return null;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<String> getAsciiCompass(Point point, ChatColor colorActive, String colorDefault)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<String> ret = new ArrayList<String>();
 | 
			
		||||
		String row;
 | 
			
		||||
		
 | 
			
		||||
		row = "";
 | 
			
		||||
		row += Point.NW.toString(Point.NW == point, colorActive, colorDefault);
 | 
			
		||||
		row += Point.N.toString(Point.N == point, colorActive, colorDefault);
 | 
			
		||||
		row += Point.NE.toString(Point.NE == point, colorActive, colorDefault);
 | 
			
		||||
		ret.add(row);
 | 
			
		||||
		
 | 
			
		||||
		row = "";
 | 
			
		||||
		row += Point.W.toString(Point.W == point, colorActive, colorDefault);
 | 
			
		||||
		row += colorDefault+"+";
 | 
			
		||||
		row += Point.E.toString(Point.E == point, colorActive, colorDefault);
 | 
			
		||||
		ret.add(row);
 | 
			
		||||
		
 | 
			
		||||
		row = "";
 | 
			
		||||
		row += Point.SW.toString(Point.SW == point, colorActive, colorDefault);
 | 
			
		||||
		row += Point.S.toString(Point.S == point, colorActive, colorDefault);
 | 
			
		||||
		row += Point.SE.toString(Point.SE == point, colorActive, colorDefault);
 | 
			
		||||
		ret.add(row);
 | 
			
		||||
 | 
			
		||||
		return ret;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<String> getAsciiCompass(double inDegrees, ChatColor colorActive, String colorDefault)
 | 
			
		||||
	{
 | 
			
		||||
		return getAsciiCompass(getCompassPointForDirection(inDegrees), colorActive, colorDefault);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,52 +0,0 @@
 | 
			
		||||
package com.massivecraft.factions.util;
 | 
			
		||||
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.HashSet;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
 | 
			
		||||
public class MiscUtil
 | 
			
		||||
{	
 | 
			
		||||
	// Inclusive range
 | 
			
		||||
	public static long[] range(long start, long end) {
 | 
			
		||||
		long[] values = new long[(int) Math.abs(end - start) + 1];
 | 
			
		||||
		
 | 
			
		||||
		if (end < start) {
 | 
			
		||||
			long oldstart = start;
 | 
			
		||||
			start = end;
 | 
			
		||||
			end = oldstart;
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
		for (long i = start; i <= end; i++) {
 | 
			
		||||
			values[(int) (i - start)] = i;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		return values;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static HashSet<String> substanceChars = new HashSet<String>(Arrays.asList(new String []{
 | 
			
		||||
	"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", 
 | 
			
		||||
	"I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", 
 | 
			
		||||
	"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", 
 | 
			
		||||
	"s", "t", "u", "v", "w", "x", "y", "z"
 | 
			
		||||
	}));
 | 
			
		||||
			
 | 
			
		||||
	public static String getComparisonString(String str)
 | 
			
		||||
	{
 | 
			
		||||
		String ret = "";
 | 
			
		||||
		
 | 
			
		||||
		str = ChatColor.stripColor(str);
 | 
			
		||||
		str = str.toLowerCase();
 | 
			
		||||
		
 | 
			
		||||
		for (char c : str.toCharArray())
 | 
			
		||||
		{
 | 
			
		||||
			if (substanceChars.contains(String.valueOf(c)))
 | 
			
		||||
			{
 | 
			
		||||
				ret += c;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return ret.toLowerCase();
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -1,148 +0,0 @@
 | 
			
		||||
package com.massivecraft.factions.util;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.ChatColor;
 | 
			
		||||
 | 
			
		||||
import com.massivecraft.factions.FFlag;
 | 
			
		||||
import com.massivecraft.factions.Rel;
 | 
			
		||||
import com.massivecraft.factions.RelationParticipator;
 | 
			
		||||
import com.massivecraft.factions.entity.UPlayer;
 | 
			
		||||
import com.massivecraft.factions.entity.Faction;
 | 
			
		||||
import com.massivecraft.factions.entity.MConf;
 | 
			
		||||
import com.massivecraft.massivecore.util.Txt;
 | 
			
		||||
 | 
			
		||||
public class RelationUtil
 | 
			
		||||
{
 | 
			
		||||
	public static String describeThatToMe(RelationParticipator that, RelationParticipator me, boolean ucfirst)
 | 
			
		||||
	{
 | 
			
		||||
		String ret = "";
 | 
			
		||||
 | 
			
		||||
		if (that == null)
 | 
			
		||||
		{
 | 
			
		||||
			return "A server admin";
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		Faction thatFaction = getFaction(that);
 | 
			
		||||
		if (thatFaction == null) return "ERROR"; // ERROR
 | 
			
		||||
 | 
			
		||||
		Faction myFaction = getFaction(me);
 | 
			
		||||
//		if (myFaction == null) return thatFaction.getTag(); // no relation, but can show basic name or tag
 | 
			
		||||
 | 
			
		||||
		if (that instanceof Faction)
 | 
			
		||||
		{
 | 
			
		||||
			if (me instanceof UPlayer && myFaction == thatFaction)
 | 
			
		||||
			{
 | 
			
		||||
				ret = "your faction";
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				ret = thatFaction.getName();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		else if (that instanceof UPlayer)
 | 
			
		||||
		{
 | 
			
		||||
			UPlayer uplayerthat = (UPlayer) that;
 | 
			
		||||
			if (that == me)
 | 
			
		||||
			{
 | 
			
		||||
				ret = "you";
 | 
			
		||||
			}
 | 
			
		||||
			else if (thatFaction == myFaction)
 | 
			
		||||
			{
 | 
			
		||||
				ret = uplayerthat.getNameAndTitle(myFaction);
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				ret = uplayerthat.getNameAndFactionName();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (ucfirst)
 | 
			
		||||
		{
 | 
			
		||||
			ret = Txt.upperCaseFirst(ret);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return "" + getColorOfThatToMe(that, me) + ret;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static String describeThatToMe(RelationParticipator that, RelationParticipator me)
 | 
			
		||||
	{
 | 
			
		||||
		return describeThatToMe(that, me, false);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static Rel getRelationOfThatToMe(RelationParticipator that, RelationParticipator me)
 | 
			
		||||
	{
 | 
			
		||||
		return getRelationOfThatToMe(that, me, false);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static Rel getRelationOfThatToMe(RelationParticipator that, RelationParticipator me, boolean ignorePeaceful)
 | 
			
		||||
	{
 | 
			
		||||
		Rel ret = null;
 | 
			
		||||
		
 | 
			
		||||
		Faction myFaction = getFaction(me);
 | 
			
		||||
		if (myFaction == null) return Rel.NEUTRAL; // ERROR
 | 
			
		||||
 | 
			
		||||
		Faction thatFaction = getFaction(that);
 | 
			
		||||
		if (thatFaction == null) return Rel.NEUTRAL; // ERROR
 | 
			
		||||
		
 | 
			
		||||
		// The faction with the lowest wish "wins"
 | 
			
		||||
		if (thatFaction.getRelationWish(myFaction).isLessThan(myFaction.getRelationWish(thatFaction)))
 | 
			
		||||
		{
 | 
			
		||||
			ret = thatFaction.getRelationWish(myFaction);
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			ret = myFaction.getRelationWish(thatFaction);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (myFaction.equals(thatFaction))
 | 
			
		||||
		{
 | 
			
		||||
			ret = Rel.MEMBER;
 | 
			
		||||
			// Do officer and leader check
 | 
			
		||||
			//P.p.log("getRelationOfThatToMe the factions are the same for "+that.getClass().getSimpleName()+" and observer "+me.getClass().getSimpleName());
 | 
			
		||||
			if (that instanceof UPlayer)
 | 
			
		||||
			{
 | 
			
		||||
				ret = ((UPlayer)that).getRole();
 | 
			
		||||
				//P.p.log("getRelationOfThatToMe it was a player and role is "+ret);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		else if (!ignorePeaceful && (thatFaction.getFlag(FFlag.PEACEFUL) || myFaction.getFlag(FFlag.PEACEFUL)))
 | 
			
		||||
		{
 | 
			
		||||
			ret = Rel.TRUCE;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return ret;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static Faction getFaction(RelationParticipator rp)
 | 
			
		||||
	{
 | 
			
		||||
		if (rp instanceof Faction)
 | 
			
		||||
		{
 | 
			
		||||
			return (Faction) rp;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (rp instanceof UPlayer)
 | 
			
		||||
		{
 | 
			
		||||
			return ((UPlayer) rp).getFaction();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// ERROR
 | 
			
		||||
		return null;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static ChatColor getColorOfThatToMe(RelationParticipator that, RelationParticipator me)
 | 
			
		||||
	{
 | 
			
		||||
		Faction thatFaction = getFaction(that);
 | 
			
		||||
		if (thatFaction != null && thatFaction != getFaction(me))
 | 
			
		||||
		{
 | 
			
		||||
			if (thatFaction.getFlag(FFlag.FRIENDLYFIRE) == true)
 | 
			
		||||
			{
 | 
			
		||||
				return MConf.get().colorFriendlyFire;
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			if (thatFaction.getFlag(FFlag.PVP) == false)
 | 
			
		||||
			{
 | 
			
		||||
				return MConf.get().colorNoPVP;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return getRelationOfThatToMe(that, me).getColor();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,110 +0,0 @@
 | 
			
		||||
package com.massivecraft.factions.util;
 | 
			
		||||
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.HashSet;
 | 
			
		||||
import java.util.Map;
 | 
			
		||||
import java.util.Map.Entry;
 | 
			
		||||
import java.util.Set;
 | 
			
		||||
import java.util.UUID;
 | 
			
		||||
 | 
			
		||||
import org.bukkit.Location;
 | 
			
		||||
import org.bukkit.block.Block;
 | 
			
		||||
import org.bukkit.entity.Player;
 | 
			
		||||
 | 
			
		||||
// TODO: Only send blocks in visual range
 | 
			
		||||
// TODO: Only send blocks that where changed when clearing?
 | 
			
		||||
// TODO: Create packed queue to avoid freezes. 
 | 
			
		||||
 | 
			
		||||
public class VisualizeUtil
 | 
			
		||||
{
 | 
			
		||||
	protected static Map<UUID, Set<Location>> playerLocations = new HashMap<UUID, Set<Location>>();
 | 
			
		||||
	public static Set<Location> getPlayerLocations(Player player)
 | 
			
		||||
	{
 | 
			
		||||
		return getPlayerLocations(player.getUniqueId());
 | 
			
		||||
	}
 | 
			
		||||
	public static Set<Location> getPlayerLocations(UUID uuid)
 | 
			
		||||
	{
 | 
			
		||||
		Set<Location> ret = playerLocations.get(uuid);
 | 
			
		||||
		if (ret == null)
 | 
			
		||||
		{
 | 
			
		||||
			ret = new HashSet<Location>();
 | 
			
		||||
			playerLocations.put(uuid, ret);
 | 
			
		||||
		}
 | 
			
		||||
		return ret;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	// -------------------------------------------- //
 | 
			
		||||
	// SINGLE
 | 
			
		||||
	// -------------------------------------------- //
 | 
			
		||||
	
 | 
			
		||||
	@SuppressWarnings("deprecation")
 | 
			
		||||
	public static void addLocation(Player player, Location location, int typeId, byte data)
 | 
			
		||||
	{
 | 
			
		||||
		getPlayerLocations(player).add(location);
 | 
			
		||||
		player.sendBlockChange(location, typeId, data);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@SuppressWarnings("deprecation")
 | 
			
		||||
	public static void addLocation(Player player, Location location, int typeId)
 | 
			
		||||
	{
 | 
			
		||||
		getPlayerLocations(player).add(location);
 | 
			
		||||
		player.sendBlockChange(location, typeId, (byte) 0);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	// -------------------------------------------- //
 | 
			
		||||
	// MANY
 | 
			
		||||
	// -------------------------------------------- //
 | 
			
		||||
	
 | 
			
		||||
	@SuppressWarnings("deprecation")
 | 
			
		||||
	public static void addLocations(Player player, Map<Location, Integer> locationMaterialIds)
 | 
			
		||||
	{
 | 
			
		||||
		Set<Location> ploc = getPlayerLocations(player);
 | 
			
		||||
		for (Entry<Location, Integer> entry : locationMaterialIds.entrySet())
 | 
			
		||||
		{
 | 
			
		||||
			ploc.add(entry.getKey());
 | 
			
		||||
			player.sendBlockChange(entry.getKey(), entry.getValue(), (byte) 0);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@SuppressWarnings("deprecation")
 | 
			
		||||
	public static void addLocations(Player player, Collection<Location> locations, int typeId)
 | 
			
		||||
	{
 | 
			
		||||
		Set<Location> ploc = getPlayerLocations(player);
 | 
			
		||||
		for (Location location : locations)
 | 
			
		||||
		{
 | 
			
		||||
			ploc.add(location);
 | 
			
		||||
			player.sendBlockChange(location, typeId, (byte) 0);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@SuppressWarnings("deprecation")
 | 
			
		||||
	public static void addBlocks(Player player, Collection<Block> blocks, int typeId)
 | 
			
		||||
	{
 | 
			
		||||
		Set<Location> ploc = getPlayerLocations(player);
 | 
			
		||||
		for (Block block : blocks)
 | 
			
		||||
		{
 | 
			
		||||
			Location location = block.getLocation();
 | 
			
		||||
			ploc.add(location);
 | 
			
		||||
			player.sendBlockChange(location, typeId, (byte) 0);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	// -------------------------------------------- //
 | 
			
		||||
	// CLEAR
 | 
			
		||||
	// -------------------------------------------- //
 | 
			
		||||
	
 | 
			
		||||
	@SuppressWarnings("deprecation")
 | 
			
		||||
	public static void clear(Player player)
 | 
			
		||||
	{
 | 
			
		||||
		Set<Location> locations = getPlayerLocations(player);
 | 
			
		||||
		if (locations == null) return;
 | 
			
		||||
		for (Location location : locations)
 | 
			
		||||
		{
 | 
			
		||||
			Block block = location.getWorld().getBlockAt(location);
 | 
			
		||||
			player.sendBlockChange(location, block.getTypeId(), block.getData());
 | 
			
		||||
		}
 | 
			
		||||
		locations.clear();
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user