This commit is contained in:
Lemon 2017-11-27 12:04:53 +05:00 committed by GitHub
parent a1a0894eb5
commit 336a2de231
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -20,8 +20,6 @@ import java.util.Set;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import me.totalfreedom.totalfreedommod.config.ConfigEntry; import me.totalfreedom.totalfreedommod.config.ConfigEntry;
import static me.totalfreedom.totalfreedommod.util.FUtil.CHAT_RAINBOW;
import static me.totalfreedom.totalfreedommod.util.FUtil.FOUNDER;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -34,39 +32,38 @@ import org.bukkit.scheduler.BukkitTask;
public class FUtil public class FUtil
{ {
private static final Random RANDOM;
public static final String SAVED_FLAGS_FILENAME = "savedflags.dat";
public static final List<String> DEVELOPERS;
public static final List<String> FOUNDER;
public static String DATE_STORAGE_FORMAT;
public static final Map<String, ChatColor> CHAT_COLOR_NAMES;
public static final Map<String, ChatColor> CHAT_RAINBOW_NAMES;
public static List<String> BLOCKED_CODES;
public static final List<ChatColor> CHAT_COLOR_POOL;
public static final List<ChatColor> CHAT_RAINBOW;
private static Iterator<ChatColor> color;
static { private static final Random RANDOM = new Random();
RANDOM = new Random(); //
DEVELOPERS = Arrays.asList("Madgeek1450", "Prozza", "WickedGamingUK", "aggelosQQ", "OxLemonxO", "Commodore64x", "Wild1145", "marcocorriero"); public static final String SAVED_FLAGS_FILENAME = "savedflags.dat";
FOUNDER = Arrays.asList("markbyron"); // See https://github.com/TotalFreedom/License - None of the listed names may be removed.
FUtil.DATE_STORAGE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z"; public static final DEVELOPERS = Arrays.asList("Madgeek1450", "Prozza", "WickedGamingUK", "aggelosQQ", "OxLemonxO", "Commodore64x", "Wild1145", "marcocorriero");
CHAT_COLOR_NAMES = new HashMap<String, ChatColor>(); public static String DATE_STORAGE_FORMAT = "EEE, d MMM yyyy HH:mm:ss Z";
CHAT_RAINBOW_NAMES = new HashMap<String, ChatColor>(); public static final Map<String, ChatColor> CHAT_COLOR_NAMES = new HashMap<>();
FUtil.BLOCKED_CODES = new ArrayList<String>(); public static final List<ChatColor> CHAT_COLOR_POOL = Arrays.asList(
CHAT_COLOR_POOL = Arrays.asList(ChatColor.DARK_BLUE, ChatColor.DARK_GREEN, ChatColor.DARK_AQUA, ChatColor.DARK_RED, ChatColor.DARK_PURPLE, ChatColor.GOLD, ChatColor.BLUE, ChatColor.GREEN, ChatColor.AQUA, ChatColor.RED, ChatColor.LIGHT_PURPLE, ChatColor.YELLOW); ChatColor.DARK_RED,
CHAT_RAINBOW = Arrays.asList(ChatColor.DARK_RED, ChatColor.RED, ChatColor.GOLD, ChatColor.YELLOW, ChatColor.GREEN, ChatColor.DARK_GREEN, ChatColor.AQUA, ChatColor.DARK_AQUA, ChatColor.BLUE, ChatColor.DARK_BLUE, ChatColor.DARK_PURPLE, ChatColor.LIGHT_PURPLE); ChatColor.RED,
for (final ChatColor chatColor : FUtil.CHAT_COLOR_POOL) { ChatColor.GOLD,
FUtil.CHAT_COLOR_NAMES.put(chatColor.name().toLowerCase().replace("_", ""), chatColor); ChatColor.YELLOW,
ChatColor.GREEN,
ChatColor.DARK_GREEN,
ChatColor.AQUA,
ChatColor.DARK_AQUA,
ChatColor.BLUE,
ChatColor.DARK_BLUE,
ChatColor.DARK_PURPLE,
ChatColor.LIGHT_PURPLE);
private static Iterator<ChatColor> CHAT_COLOR_ITERATOR;
static
{
for (ChatColor chatColor : CHAT_COLOR_POOL)
{
CHAT_COLOR_NAMES.put(chatColor.name().toLowerCase().replace("_", ""), chatColor);
} }
for (final ChatColor chatColor : FUtil.CHAT_RAINBOW) {
FUtil.CHAT_RAINBOW_NAMES.put(chatColor.name().toLowerCase().replace("_", ""), chatColor);
}
FUtil.color = FUtil.CHAT_RAINBOW.iterator();
} }
private FUtil()
private FUtil()
{ {
} }
@ -147,7 +144,7 @@ private FUtil()
final File[] coreDumps = new File(".").listFiles(new FileFilter() final File[] coreDumps = new File(".").listFiles(new FileFilter()
{ {
@Override @Override
public boolean accept(File file) public boolean accept(File file)
{ {
return file.getName().startsWith("java.core"); return file.getName().startsWith("java.core");
} }
@ -348,7 +345,7 @@ private FUtil()
//getField: Borrowed from WorldEdit //getField: Borrowed from WorldEdit
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public static <T> T getField(Object from, String name) public static <T> T getField(Object from, String name)
{ {
Class<?> checkClass = from.getClass(); Class<?> checkClass = from.getClass();
do do
@ -359,29 +356,38 @@ private FUtil()
field.setAccessible(true); field.setAccessible(true);
return (T) field.get(from); return (T) field.get(from);
}
}
catch (NoSuchFieldException | IllegalAccessException ex) catch (NoSuchFieldException | IllegalAccessException ex)
{ {
} }
} while (checkClass.getSuperclass() != Object.class } while (checkClass.getSuperclass() != Object.class
&& ((checkClass = checkClass.getSuperclass()) != null));
&& ((checkClass = checkClass.getSuperclass()) != null));
return null; return null;
} }
public static ChatColor randomChatColor() { public static ChatColor randomChatColor()
return FUtil.CHAT_COLOR_POOL.get(FUtil.RANDOM.nextInt(FUtil.CHAT_COLOR_POOL.size())); {
return CHAT_COLOR_POOL.get(RANDOM.nextInt(CHAT_COLOR_POOL.size()));
} }
public static ChatColor rainbowChatColor() { public static String rainbowify(String string)
if (FUtil.color.hasNext()) { {
return FUtil.color.next(); CHAT_COLOR_ITERATOR = CHAT_COLOR_POOL.iterator();
final StringBuilder newString = new StringBuilder();
final char[] chars = string.toCharArray();
for (char c : chars)
{
if (!CHAT_COLOR_ITERATOR.hasNext())
{
CHAT_COLOR_ITERATOR = CHAT_COLOR_POOL.iterator(); //Restart from first colour if there are no more colours in iterator.
}
newString.append(CHAT_COLOR_ITERATOR.next()).append(c);
} }
FUtil.color = FUtil.CHAT_RAINBOW.iterator();
return FUtil.color.next(); return newString.toString();
} }
public static String colorize(String string) public static String colorize(String string)