Advertisement
crafter2345

Untitled

Sep 19th, 2018
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.95 KB | None | 0 0
  1. package eu.crafter.test.main;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.ChatColor;
  5. import org.bukkit.craftbukkit.v1_8_R3.entity.CraftPlayer;
  6. import org.bukkit.entity.Player;
  7. import org.bukkit.event.EventHandler;
  8. import org.bukkit.event.Listener;
  9. import org.bukkit.event.player.AsyncPlayerChatEvent;
  10. import org.bukkit.event.player.PlayerJoinEvent;
  11. import org.bukkit.event.player.PlayerQuitEvent;
  12. import org.bukkit.scheduler.BukkitTask;
  13. import org.bukkit.scoreboard.DisplaySlot;
  14. import org.bukkit.scoreboard.Objective;
  15. import org.bukkit.scoreboard.Scoreboard;
  16. import org.bukkit.scoreboard.Team;
  17.  
  18. import eu.crafter.test.main.Main;
  19. import net.minecraft.server.v1_8_R3.IChatBaseComponent;
  20. import net.minecraft.server.v1_8_R3.PacketPlayOutPlayerListHeaderFooter;
  21.  
  22. import java.lang.reflect.Field;
  23. import java.util.LinkedHashMap;
  24. import java.util.Map;
  25.  
  26. public class Rang implements Listener {
  27.  
  28. private Main Plugin;
  29.  
  30. private final Map<Player, Scoreboard> Scoreboard = new LinkedHashMap<>();
  31.  
  32. private final Map<Player, BukkitTask> BukkitTask = new LinkedHashMap<>();
  33.  
  34. public Rang(final Main Plugin) {
  35. this.setPlugin(Plugin);
  36. }
  37.  
  38. @EventHandler
  39. public void on(PlayerJoinEvent e) {
  40. final Player p = e.getPlayer();
  41.  
  42. this.setScoreboard(p);
  43. this.getBukkitTask().put(p, this.getPlugin().getServer().getScheduler().runTaskTimerAsynchronously(this.getPlugin(), () -> {
  44. final Scoreboard Board = p.getScoreboard();
  45.  
  46. final Team Team = Board.getTeam("Team");
  47. Team.setPrefix("§7Level§8: §e"+ Main.getPlugin().Manager.getLevel(p).getLvl());
  48. Team.setSuffix(" "+ Main.getPlugin().Manager.getProgress(p));
  49. }, 20L, 5L));
  50. }
  51.  
  52. @EventHandler
  53. public void on(PlayerQuitEvent e) {
  54. final Player p = e.getPlayer();
  55.  
  56. this.getBukkitTask().get(p).cancel();
  57. this.getBukkitTask().remove(p);
  58. }
  59.  
  60. private void setScoreboard(final Player p) {
  61. final Scoreboard Board = Bukkit.getScoreboardManager().getNewScoreboard();
  62. Board.registerNewObjective("Board", "dummy");
  63.  
  64. Board.registerNewTeam("00Admin").setPrefix("§4Admin §7|§4 ");
  65. Board.registerNewTeam("01SrMod").setPrefix("§cSrMod §7|§c ");
  66. Board.registerNewTeam("02Mod").setPrefix("§cMod §7|§c ");
  67. Board.registerNewTeam("03Sup").setPrefix("§9Sup §7|§9 ");
  68. Board.registerNewTeam("04Dev").setPrefix("§bDev §7|§b ");
  69. Board.registerNewTeam("05YT").setPrefix("§5YT §7|§5 ");
  70. Board.registerNewTeam("06Ultra").setPrefix("§e |§e ");
  71. Board.registerNewTeam("07Premium").setPrefix("§6 |§6 ");
  72. Board.registerNewTeam("08Spieler").setPrefix("§a |§a ");
  73.  
  74. final Objective Obj = Board.getObjective("Board");
  75. Obj.setDisplayName("CrafterMC");
  76. Obj.setDisplaySlot(DisplaySlot.SIDEBAR);
  77.  
  78. Obj.getScore("").setScore(3);
  79. Obj.getScore("§0§8------------").setScore(2);
  80.  
  81. final Team Team = Board.registerNewTeam("Team");
  82. Team.setPrefix("§7Level§8: §e"+ Main.getPlugin().Manager.getLevel(p).getLvl());
  83. Team.setSuffix(" "+ Main.getPlugin().Manager.getProgress(p));
  84. Team.addEntry(ChatColor.AQUA.toString());
  85.  
  86. Obj.getScore(ChatColor.AQUA.toString()).setScore(1);
  87. Obj.getScore("§1§8------------").setScore(0);
  88.  
  89. p.setScoreboard(Board);
  90. this.loadTeam();
  91.  
  92. this.getScoreboard().put(p, Board);
  93. }
  94.  
  95. public void sendTablistHeaderAndFooter(Player p, String header, String footer) {
  96. if(header == null) header = "";
  97. if(footer == null) footer = "";
  98.  
  99. IChatBaseComponent tabHeader = IChatBaseComponent.ChatSerializer.a("{text:" + header + "}");
  100. IChatBaseComponent tabFooter = IChatBaseComponent.ChatSerializer.a("{text:" + footer + "}");
  101.  
  102. PacketPlayOutPlayerListHeaderFooter headerPacket = new PacketPlayOutPlayerListHeaderFooter(tabHeader);
  103. try {
  104. Field field = headerPacket.getClass().getDeclaredField("b");
  105. field.setAccessible(true);
  106. field.set(headerPacket, tabFooter);
  107. } catch(Exception e) {
  108. e.printStackTrace();
  109. } finally {
  110. ((CraftPlayer)p).getHandle().playerConnection.sendPacket(headerPacket);
  111. }
  112. }
  113.  
  114. @EventHandler
  115. public void onChat(AsyncPlayerChatEvent e) {
  116. Player p = e.getPlayer();
  117. e.setCancelled(true);
  118.  
  119. if (p.hasPermission("Tab.Admin")) {
  120. Bukkit.broadcastMessage("");
  121. } else if (p.hasPermission("Tab.SrMod")) {
  122. Bukkit.broadcastMessage("");
  123. } else if (p.hasPermission("Tab.Mod")) {
  124. Bukkit.broadcastMessage("");
  125. } else if (p.hasPermission("Tab.Sup")) {
  126. Bukkit.broadcastMessage("");
  127. } else if (p.hasPermission("Tab.Dev")) {
  128. Bukkit.broadcastMessage("");
  129. } else if (p.hasPermission("Tab.YT")) {
  130. Bukkit.broadcastMessage("");
  131. } else if (p.hasPermission("Tab.Ultra")) {
  132. Bukkit.broadcastMessage("");
  133. } else if (p.hasPermission("Tab.Premium")) {
  134. Bukkit.broadcastMessage("");
  135. } else {
  136. Bukkit.broadcastMessage("");
  137. }
  138. }
  139.  
  140. private void loadTeam() {
  141. for(Player p : Bukkit.getOnlinePlayers()) {
  142. final Scoreboard Board = p.getScoreboard();
  143.  
  144. for(Player all : Bukkit.getOnlinePlayers()) {
  145. if (all.hasPermission("Tab.Admin")) {
  146. Board.getTeam("00Admin").addEntry(all.getName());
  147. } else if (all.hasPermission("Tab.SrMod")) {
  148. Board.getTeam("01SrMod").addEntry(all.getName());
  149. } else if (all.hasPermission("Tab.Mod")) {
  150. Board.getTeam("02Mod").addEntry(all.getName());
  151. } else if (all.hasPermission("Tab.Sup")) {
  152. Board.getTeam("03Sup").addEntry(all.getName());
  153. } else if (all.hasPermission("Tab.Dev")) {
  154. Board.getTeam("04Dev").addEntry(all.getName());
  155. } else if (all.hasPermission("Tab.YT")) {
  156. Board.getTeam("05YT").addEntry(all.getName());
  157. } else if (all.hasPermission("Tab.Ultra")) {
  158. Board.getTeam("06Ultra").addEntry(all.getName());
  159. } else if (all.hasPermission("Tab.Premium")) {
  160. Board.getTeam("07Premium").addEntry(all.getName());
  161. } else {
  162. Board.getTeam("08Spieler").addEntry(all.getName());
  163. }
  164. }
  165. p.setScoreboard(Board);
  166. }
  167. }
  168.  
  169. public Map<Player, Scoreboard> getScoreboard() { return this.Scoreboard; }
  170.  
  171. public Map<Player, org.bukkit.scheduler.BukkitTask> getBukkitTask() { return this.BukkitTask; }
  172.  
  173. public Main getPlugin() { return this.Plugin; }
  174. public void setPlugin(final Main Plugin) { this.Plugin = Plugin; }
  175. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement