Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.TheTealViper.glower;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandSender;
- import org.bukkit.configuration.ConfigurationSection;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.inventivetalent.glow.GlowAPI;
- import me.TheTealViper.glower.Utils.EnableShit;
- import me.TheTealViper.glower.Utils.PluginFile;
- public class Glower extends JavaPlugin implements Listener{
- List<Group> groups = new ArrayList<Group>();
- Map<Player, List<String>> colorData = new HashMap<Player, List<String>>();
- Map<Player, Integer> specialData = new HashMap<Player, Integer>();
- public void onEnable(){
- EnableShit.handleOnEnable(this, this, "-1");
- reloadGroups();
- }
- public void onDisable(){
- getLogger().info("Glower from TheTealViper shutting down. Bshzzzzzz");
- }
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
- if(sender instanceof Player){
- Player p = (Player) sender;
- boolean explain = false;
- if(args.length == 0)
- explain = true;
- else if(args.length == 1){
- if(args[0].equalsIgnoreCase("toggle")){
- PluginFile pf = new PluginFile(this, "playerdata/" + p.getUniqueId().toString() + ".data");
- boolean toggle = pf.getBoolean("toggle");
- pf.set("toggle", !toggle);
- pf.save();
- if(toggle)
- p.sendMessage("You can no longer see player glows!");
- else
- p.sendMessage("You can again see player glows!");
- }else if(args[0].equalsIgnoreCase("christmas")){
- List<Boolean> dummy = new ArrayList<Boolean>();
- dummy.add(true);
- glowPlayer(p, "RED", true);
- specialData.put(p, Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {public void run() {
- boolean bool = dummy.get(0);
- if(bool){
- glowPlayer(p, "GREEN", false);
- dummy.clear();
- dummy.add(false);
- }else{
- glowPlayer(p, "RED", false);
- dummy.clear();
- dummy.add(true);
- }
- }}, 0, 20));
- p.sendMessage("Merry Christmas!");
- }else if(args[0].equalsIgnoreCase("rainbow")){
- List<Integer> dummy = new ArrayList<Integer>();
- dummy.add(-1);
- glowPlayer(p, "NONE", true);
- /*# AQUA
- # BLACK
- # BLUE
- # DARK_AQUA
- # DARK_BLUE
- # DARK_GRAY
- # DARK_GREEN
- # DARK_PURPLE
- # DARK_RED
- # GOLD
- # GRAY
- # GREEN
- # NONE
- # PURPLE
- # RED
- # WHITE
- # YELLOW*/
- specialData.put(p, Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {public void run() {
- int temp = dummy.get(0);
- switch (temp){
- case -1:
- glowPlayer(p, "AQUA", false);
- dummy.clear();
- dummy.add(1);
- break;
- case 0:
- glowPlayer(p, "BLACK", false);
- dummy.clear();
- dummy.add(1);
- break;
- case 1:
- glowPlayer(p, "BLUE", false);
- dummy.clear();
- dummy.add(2);
- break;
- case 2:
- glowPlayer(p, "DARK_AQUA", false);
- dummy.clear();
- dummy.add(3);
- break;
- case 3:
- glowPlayer(p, "DARK_BLUE", false);
- dummy.clear();
- dummy.add(4);
- break;
- case 4:
- glowPlayer(p, "DARK_GRAY", false);
- dummy.clear();
- dummy.add(5);
- break;
- case 5:
- glowPlayer(p, "DARK_GREEN", false);
- dummy.clear();
- dummy.add(6);
- break;
- case 6:
- glowPlayer(p, "DARK_PURPLE", false);
- dummy.clear();
- dummy.add(7);
- break;
- case 7:
- glowPlayer(p, "DARK_RED", false);
- dummy.clear();
- dummy.add(8);
- break;
- case 8:
- glowPlayer(p, "GOLD", false);
- dummy.clear();
- dummy.add(9);
- break;
- case 9:
- glowPlayer(p, "GRAY", false);
- dummy.clear();
- dummy.add(10);
- break;
- case 10:
- glowPlayer(p, "GREEN", false);
- dummy.clear();
- dummy.add(11);
- break;
- case 11:
- glowPlayer(p, "PURPLE", false);
- dummy.clear();
- dummy.add(12);
- break;
- case 12:
- glowPlayer(p, "RED", false);
- dummy.clear();
- dummy.add(13);
- break;
- case 13:
- glowPlayer(p, "WHITE", false);
- dummy.clear();
- dummy.add(14);
- break;
- case 14:
- glowPlayer(p, "YELLOW", false);
- dummy.clear();
- dummy.add(0);
- break;
- }
- }}, 0, 20));
- p.sendMessage("Taste the rainbow!");
- }else{
- String color = args[0].toUpperCase();
- if(colorData.get(p).contains(color)){
- if(color.equalsIgnoreCase("none")){
- glowPlayer(p, color, true);
- p.sendMessage("You are no longer glowing.");
- }else{
- glowPlayer(p, color, true);
- p.sendMessage("You are now glowing " + color.toLowerCase() + ".");
- }
- }else{
- p.sendMessage("You don't have access to that color. Your colors options are: ");
- for(String s : colorData.get(p))
- p.sendMessage("- " + s);
- }
- }
- }
- if(explain){
- p.sendMessage("/glow toggleview - Toggles your view of other players' glows.");
- p.sendMessage("/glow <color> - Sets your glow color. 'none' is off.");
- }
- }
- return false;
- }
- @EventHandler
- public void onJoin(PlayerJoinEvent e){
- Player p = e.getPlayer();
- PluginFile pf = new PluginFile(this, "playerdata/" + p.getUniqueId().toString() + ".data");
- if(!pf.contains("toggle")){
- pf.set("toggle", true);
- pf.save();
- }
- for(Group g : groups){
- if(p.hasPermission(g.permission)){
- List<String> playerColors = colorData.containsKey(p) ? colorData.get(p) : new ArrayList<String>();
- for(String color : g.colors){
- if(!color.equalsIgnoreCase("all")){
- if(!playerColors.contains(color.toUpperCase()))
- playerColors.add(color.toUpperCase());
- }else if(color.equalsIgnoreCase("all")){
- List<String> allColors = new ArrayList<String>();
- allColors.add("AQUA");
- allColors.add("BLACK");
- allColors.add("BLUE");
- allColors.add("DARK_AQUA");
- allColors.add("DARK_BLUE");
- allColors.add("DARK_GRAY");
- allColors.add("DARK_GREEN");
- allColors.add("DARK_PURPLE");
- allColors.add("DARK_RED");
- allColors.add("GOLD");
- allColors.add("GRAY");
- allColors.add("GREEN");
- allColors.add("NONE");
- allColors.add("PURPLE");
- allColors.add("RED");
- allColors.add("WHITE");
- allColors.add("YELLOW");
- allColors.add("CHRISTMAS");
- allColors.add("RAINBOW");
- for(String col : allColors){
- if(!playerColors.contains(col))
- playerColors.add(col);
- }
- }
- }
- colorData.put(p, playerColors);
- }
- }
- List<String> playerColors = colorData.containsKey(p) ? colorData.get(p) : new ArrayList<String>();
- String[] dummy = playerColors.toArray(new String[playerColors.size()]);
- Arrays.sort(dummy);
- playerColors = Arrays.asList(dummy);
- colorData.put(p, playerColors);
- }
- public void glowPlayer(Player p, String color, boolean stopSpecial){
- if(specialData.containsKey(p) && stopSpecial){
- Bukkit.getScheduler().cancelTask(specialData.get(p));
- specialData.remove(p);
- }
- List<Player> players = new ArrayList<Player>();
- for(Player player : Bukkit.getOnlinePlayers()){
- PluginFile pf = new PluginFile(this, "playerdata/" + p.getUniqueId().toString() + ".data");
- boolean toggle = pf.getBoolean("toggle");
- if(toggle)
- players.add(player);
- }
- if(color.equalsIgnoreCase("none"))
- GlowAPI.setGlowing(p, false, players);
- else
- GlowAPI.setGlowing(p, GlowAPI.Color.valueOf(color), players);
- }
- private void reloadGroups(){
- groups.clear();
- ConfigurationSection sec = getConfig().getConfigurationSection("Permission_Groups");
- for(String groupName : sec.getKeys(false)){
- String permission = sec.getString(groupName + ".permission");
- List<String> colors = sec.getStringList(groupName + ".colors");
- groups.add(new Group(permission, colors));
- }
- }
- public static String makeColors(String s){
- String replaced = s
- .replaceAll("&0", "" + ChatColor.BLACK)
- .replaceAll("&1", "" + ChatColor.DARK_BLUE)
- .replaceAll("&2", "" + ChatColor.DARK_GREEN)
- .replaceAll("&3", "" + ChatColor.DARK_AQUA)
- .replaceAll("&4", "" + ChatColor.DARK_RED)
- .replaceAll("&5", "" + ChatColor.DARK_PURPLE)
- .replaceAll("&6", "" + ChatColor.GOLD)
- .replaceAll("&7", "" + ChatColor.GRAY)
- .replaceAll("&8", "" + ChatColor.DARK_GRAY)
- .replaceAll("&9", "" + ChatColor.BLUE)
- .replaceAll("&a", "" + ChatColor.GREEN)
- .replaceAll("&b", "" + ChatColor.AQUA)
- .replaceAll("&c", "" + ChatColor.RED)
- .replaceAll("&d", "" + ChatColor.LIGHT_PURPLE)
- .replaceAll("&e", "" + ChatColor.YELLOW)
- .replaceAll("&f", "" + ChatColor.WHITE)
- .replaceAll("&r", "" + ChatColor.RESET)
- .replaceAll("&l", "" + ChatColor.BOLD)
- .replaceAll("&o", "" + ChatColor.ITALIC)
- .replaceAll("&k", "" + ChatColor.MAGIC)
- .replaceAll("&m", "" + ChatColor.STRIKETHROUGH)
- .replaceAll("&n", "" + ChatColor.UNDERLINE)
- .replaceAll("\\\\", " ");
- return replaced;
- }
- public static class Group{
- String permission = "";
- List<String> colors = null;
- public Group(String p, List<String> c){
- permission = p;
- colors = c;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement