Advertisement
Guest User

Untitled

a guest
Dec 20th, 2017
693
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.58 KB | None | 0 0
  1. package me.TheTealViper.glower;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8.  
  9. import org.bukkit.Bukkit;
  10. import org.bukkit.ChatColor;
  11. import org.bukkit.command.Command;
  12. import org.bukkit.command.CommandSender;
  13. import org.bukkit.configuration.ConfigurationSection;
  14. import org.bukkit.entity.Player;
  15. import org.bukkit.event.EventHandler;
  16. import org.bukkit.event.Listener;
  17. import org.bukkit.event.player.PlayerJoinEvent;
  18. import org.bukkit.plugin.java.JavaPlugin;
  19. import org.inventivetalent.glow.GlowAPI;
  20.  
  21. import me.TheTealViper.glower.Utils.EnableShit;
  22. import me.TheTealViper.glower.Utils.PluginFile;
  23.  
  24. public class Glower extends JavaPlugin implements Listener{
  25. List<Group> groups = new ArrayList<Group>();
  26. Map<Player, List<String>> colorData = new HashMap<Player, List<String>>();
  27. Map<Player, Integer> specialData = new HashMap<Player, Integer>();
  28.  
  29. public void onEnable(){
  30. EnableShit.handleOnEnable(this, this, "-1");
  31.  
  32. reloadGroups();
  33. }
  34.  
  35. public void onDisable(){
  36. getLogger().info("Glower from TheTealViper shutting down. Bshzzzzzz");
  37. }
  38.  
  39. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
  40. if(sender instanceof Player){
  41. Player p = (Player) sender;
  42. boolean explain = false;
  43. if(args.length == 0)
  44. explain = true;
  45. else if(args.length == 1){
  46. if(args[0].equalsIgnoreCase("toggle")){
  47. PluginFile pf = new PluginFile(this, "playerdata/" + p.getUniqueId().toString() + ".data");
  48. boolean toggle = pf.getBoolean("toggle");
  49. pf.set("toggle", !toggle);
  50. pf.save();
  51. if(toggle)
  52. p.sendMessage("You can no longer see player glows!");
  53. else
  54. p.sendMessage("You can again see player glows!");
  55. }else if(args[0].equalsIgnoreCase("christmas")){
  56. List<Boolean> dummy = new ArrayList<Boolean>();
  57. dummy.add(true);
  58. glowPlayer(p, "RED", true);
  59. specialData.put(p, Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {public void run() {
  60. boolean bool = dummy.get(0);
  61. if(bool){
  62. glowPlayer(p, "GREEN", false);
  63. dummy.clear();
  64. dummy.add(false);
  65. }else{
  66. glowPlayer(p, "RED", false);
  67. dummy.clear();
  68. dummy.add(true);
  69. }
  70. }}, 0, 20));
  71. p.sendMessage("Merry Christmas!");
  72. }else if(args[0].equalsIgnoreCase("rainbow")){
  73. List<Integer> dummy = new ArrayList<Integer>();
  74. dummy.add(-1);
  75. glowPlayer(p, "NONE", true);
  76. /*# AQUA
  77. # BLACK
  78. # BLUE
  79. # DARK_AQUA
  80. # DARK_BLUE
  81. # DARK_GRAY
  82. # DARK_GREEN
  83. # DARK_PURPLE
  84. # DARK_RED
  85. # GOLD
  86. # GRAY
  87. # GREEN
  88. # NONE
  89. # PURPLE
  90. # RED
  91. # WHITE
  92. # YELLOW*/
  93. specialData.put(p, Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {public void run() {
  94. int temp = dummy.get(0);
  95. switch (temp){
  96. case -1:
  97. glowPlayer(p, "AQUA", false);
  98. dummy.clear();
  99. dummy.add(1);
  100. break;
  101. case 0:
  102. glowPlayer(p, "BLACK", false);
  103. dummy.clear();
  104. dummy.add(1);
  105. break;
  106. case 1:
  107. glowPlayer(p, "BLUE", false);
  108. dummy.clear();
  109. dummy.add(2);
  110. break;
  111. case 2:
  112. glowPlayer(p, "DARK_AQUA", false);
  113. dummy.clear();
  114. dummy.add(3);
  115. break;
  116. case 3:
  117. glowPlayer(p, "DARK_BLUE", false);
  118. dummy.clear();
  119. dummy.add(4);
  120. break;
  121. case 4:
  122. glowPlayer(p, "DARK_GRAY", false);
  123. dummy.clear();
  124. dummy.add(5);
  125. break;
  126. case 5:
  127. glowPlayer(p, "DARK_GREEN", false);
  128. dummy.clear();
  129. dummy.add(6);
  130. break;
  131. case 6:
  132. glowPlayer(p, "DARK_PURPLE", false);
  133. dummy.clear();
  134. dummy.add(7);
  135. break;
  136. case 7:
  137. glowPlayer(p, "DARK_RED", false);
  138. dummy.clear();
  139. dummy.add(8);
  140. break;
  141. case 8:
  142. glowPlayer(p, "GOLD", false);
  143. dummy.clear();
  144. dummy.add(9);
  145. break;
  146. case 9:
  147. glowPlayer(p, "GRAY", false);
  148. dummy.clear();
  149. dummy.add(10);
  150. break;
  151. case 10:
  152. glowPlayer(p, "GREEN", false);
  153. dummy.clear();
  154. dummy.add(11);
  155. break;
  156. case 11:
  157. glowPlayer(p, "PURPLE", false);
  158. dummy.clear();
  159. dummy.add(12);
  160. break;
  161. case 12:
  162. glowPlayer(p, "RED", false);
  163. dummy.clear();
  164. dummy.add(13);
  165. break;
  166. case 13:
  167. glowPlayer(p, "WHITE", false);
  168. dummy.clear();
  169. dummy.add(14);
  170. break;
  171. case 14:
  172. glowPlayer(p, "YELLOW", false);
  173. dummy.clear();
  174. dummy.add(0);
  175. break;
  176. }
  177. }}, 0, 20));
  178. p.sendMessage("Taste the rainbow!");
  179. }else{
  180. String color = args[0].toUpperCase();
  181. if(colorData.get(p).contains(color)){
  182. if(color.equalsIgnoreCase("none")){
  183. glowPlayer(p, color, true);
  184. p.sendMessage("You are no longer glowing.");
  185. }else{
  186. glowPlayer(p, color, true);
  187. p.sendMessage("You are now glowing " + color.toLowerCase() + ".");
  188. }
  189. }else{
  190. p.sendMessage("You don't have access to that color. Your colors options are: ");
  191. for(String s : colorData.get(p))
  192. p.sendMessage("- " + s);
  193. }
  194. }
  195. }
  196. if(explain){
  197. p.sendMessage("/glow toggleview - Toggles your view of other players' glows.");
  198. p.sendMessage("/glow <color> - Sets your glow color. 'none' is off.");
  199. }
  200. }
  201. return false;
  202. }
  203.  
  204. @EventHandler
  205. public void onJoin(PlayerJoinEvent e){
  206. Player p = e.getPlayer();
  207. PluginFile pf = new PluginFile(this, "playerdata/" + p.getUniqueId().toString() + ".data");
  208. if(!pf.contains("toggle")){
  209. pf.set("toggle", true);
  210. pf.save();
  211. }
  212.  
  213. for(Group g : groups){
  214. if(p.hasPermission(g.permission)){
  215. List<String> playerColors = colorData.containsKey(p) ? colorData.get(p) : new ArrayList<String>();
  216. for(String color : g.colors){
  217. if(!color.equalsIgnoreCase("all")){
  218. if(!playerColors.contains(color.toUpperCase()))
  219. playerColors.add(color.toUpperCase());
  220. }else if(color.equalsIgnoreCase("all")){
  221. List<String> allColors = new ArrayList<String>();
  222. allColors.add("AQUA");
  223. allColors.add("BLACK");
  224. allColors.add("BLUE");
  225. allColors.add("DARK_AQUA");
  226. allColors.add("DARK_BLUE");
  227. allColors.add("DARK_GRAY");
  228. allColors.add("DARK_GREEN");
  229. allColors.add("DARK_PURPLE");
  230. allColors.add("DARK_RED");
  231. allColors.add("GOLD");
  232. allColors.add("GRAY");
  233. allColors.add("GREEN");
  234. allColors.add("NONE");
  235. allColors.add("PURPLE");
  236. allColors.add("RED");
  237. allColors.add("WHITE");
  238. allColors.add("YELLOW");
  239. allColors.add("CHRISTMAS");
  240. allColors.add("RAINBOW");
  241. for(String col : allColors){
  242. if(!playerColors.contains(col))
  243. playerColors.add(col);
  244. }
  245. }
  246. }
  247. colorData.put(p, playerColors);
  248. }
  249. }
  250. List<String> playerColors = colorData.containsKey(p) ? colorData.get(p) : new ArrayList<String>();
  251. String[] dummy = playerColors.toArray(new String[playerColors.size()]);
  252. Arrays.sort(dummy);
  253. playerColors = Arrays.asList(dummy);
  254. colorData.put(p, playerColors);
  255. }
  256.  
  257. public void glowPlayer(Player p, String color, boolean stopSpecial){
  258. if(specialData.containsKey(p) && stopSpecial){
  259. Bukkit.getScheduler().cancelTask(specialData.get(p));
  260. specialData.remove(p);
  261. }
  262.  
  263. List<Player> players = new ArrayList<Player>();
  264. for(Player player : Bukkit.getOnlinePlayers()){
  265. PluginFile pf = new PluginFile(this, "playerdata/" + p.getUniqueId().toString() + ".data");
  266. boolean toggle = pf.getBoolean("toggle");
  267. if(toggle)
  268. players.add(player);
  269. }
  270. if(color.equalsIgnoreCase("none"))
  271. GlowAPI.setGlowing(p, false, players);
  272. else
  273. GlowAPI.setGlowing(p, GlowAPI.Color.valueOf(color), players);
  274. }
  275.  
  276. private void reloadGroups(){
  277. groups.clear();
  278. ConfigurationSection sec = getConfig().getConfigurationSection("Permission_Groups");
  279. for(String groupName : sec.getKeys(false)){
  280. String permission = sec.getString(groupName + ".permission");
  281. List<String> colors = sec.getStringList(groupName + ".colors");
  282. groups.add(new Group(permission, colors));
  283. }
  284. }
  285.  
  286. public static String makeColors(String s){
  287. String replaced = s
  288. .replaceAll("&0", "" + ChatColor.BLACK)
  289. .replaceAll("&1", "" + ChatColor.DARK_BLUE)
  290. .replaceAll("&2", "" + ChatColor.DARK_GREEN)
  291. .replaceAll("&3", "" + ChatColor.DARK_AQUA)
  292. .replaceAll("&4", "" + ChatColor.DARK_RED)
  293. .replaceAll("&5", "" + ChatColor.DARK_PURPLE)
  294. .replaceAll("&6", "" + ChatColor.GOLD)
  295. .replaceAll("&7", "" + ChatColor.GRAY)
  296. .replaceAll("&8", "" + ChatColor.DARK_GRAY)
  297. .replaceAll("&9", "" + ChatColor.BLUE)
  298. .replaceAll("&a", "" + ChatColor.GREEN)
  299. .replaceAll("&b", "" + ChatColor.AQUA)
  300. .replaceAll("&c", "" + ChatColor.RED)
  301. .replaceAll("&d", "" + ChatColor.LIGHT_PURPLE)
  302. .replaceAll("&e", "" + ChatColor.YELLOW)
  303. .replaceAll("&f", "" + ChatColor.WHITE)
  304. .replaceAll("&r", "" + ChatColor.RESET)
  305. .replaceAll("&l", "" + ChatColor.BOLD)
  306. .replaceAll("&o", "" + ChatColor.ITALIC)
  307. .replaceAll("&k", "" + ChatColor.MAGIC)
  308. .replaceAll("&m", "" + ChatColor.STRIKETHROUGH)
  309. .replaceAll("&n", "" + ChatColor.UNDERLINE)
  310. .replaceAll("\\\\", " ");
  311. return replaced;
  312. }
  313.  
  314. public static class Group{
  315. String permission = "";
  316. List<String> colors = null;
  317.  
  318. public Group(String p, List<String> c){
  319. permission = p;
  320. colors = c;
  321. }
  322. }
  323. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement