Advertisement
Guest User

Untitled

a guest
Jul 15th, 2019
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.50 KB | None | 0 0
  1. package me.nursimon.Main;
  2.  
  3. import java.util.Arrays;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import org.bukkit.Bukkit;
  7. import org.bukkit.Material;
  8. import org.bukkit.command.Command;
  9. import org.bukkit.command.CommandExecutor;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.configuration.file.FileConfiguration;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.event.EventHandler;
  14. import org.bukkit.event.Listener;
  15. import org.bukkit.event.inventory.InventoryClickEvent;
  16. import org.bukkit.inventory.Inventory;
  17. import org.bukkit.inventory.ItemStack;
  18. import org.bukkit.inventory.meta.ItemMeta;
  19. import org.bukkit.inventory.meta.SkullMeta;
  20.  
  21. public class Report
  22. implements CommandExecutor, Listener
  23. {
  24. public static HashMap<Player, String> reports = new HashMap();
  25. public static HashMap<Player, Player> whoreported = new HashMap();
  26. public static HashMap<Player, String> zwischenSpeicher = new HashMap();
  27. List<String> reasons = ReportSystem.m.getConfig().getStringList("report.reasons");
  28.  
  29. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
  30. {
  31. if (cmd.getName().equalsIgnoreCase("report"))
  32. {
  33. if (!(sender instanceof Player))
  34. {
  35. sender.sendMessage("Du musst ein Spieler sein");
  36. }
  37. else
  38. {
  39. Player p = (Player)sender;
  40. if (args.length == 2)
  41. {
  42. Player target = Bukkit.getPlayer(args[0]);
  43. if (target != null)
  44. {
  45. String reason = args[1];
  46. boolean done = report(p, target, reason);
  47. if (done) {
  48. } else {
  49. p.sendMessage("§4Es gab einen Fehler");
  50. }
  51. }
  52. else
  53. {
  54. p.sendMessage("§7[§4Report§7] §4Der Spieler ist nicht online");
  55. }
  56. }
  57. else if (args.length == 0)
  58. {
  59. if (p.hasPermission("report.help"))
  60. {
  61. p.sendMessage("§7[§4Report§7] §8» §7Bitte nutze §3/report §8<§3Name§8> §eHacking§8, §eBeleidigung§8, §eBugusing§8, §eSonstiges§8");
  62. }
  63. }
  64. else if ((args.length == 1) &&
  65. (args[0].equalsIgnoreCase("reasons")))
  66. {
  67. p.sendMessage("§7[§4Report§7] Es gib folgende Gründe");
  68. for (int i = 0; i < this.reasons.size(); i++) {
  69. p.sendMessage("§7-§4" + (String)this.reasons.get(i));
  70. }
  71. }
  72. }
  73. }
  74. else if (cmd.getName().equalsIgnoreCase("reports"))
  75. {
  76. if (!(sender instanceof Player))
  77. {
  78. sender.sendMessage("Du musst ein Spieler sein");
  79. }
  80. else if (args.length == 0)
  81. {
  82. Player p = (Player)sender;
  83. if ((p.isOp()) || (p.hasPermission("report.list"))) {
  84. onReportsOpen(p);
  85. } else {
  86. p.sendMessage("§7[§4Report§7] §4Du hast nicht die nötigen Rechte dazu");
  87. }
  88. }
  89. else if (args.length != 1)
  90. {
  91. if (args.length == 2)
  92. {
  93. Player p = (Player)sender;
  94. if ((p.isOp()) || (p.hasPermission("report.accept")))
  95. {
  96. if (args[0].equalsIgnoreCase("accept"))
  97. {
  98. Player target = Bukkit.getPlayer(args[1]);
  99. if (reports.containsKey(target))
  100. {
  101. p.sendMessage("§7[§4Report§7] §aDu hast den Report angenommen");
  102. zwischenSpeicher.put(p, target.getName());
  103. reportMenuOpen(p);
  104. }
  105. else
  106. {
  107. p.sendMessage("§7[§4Report§7] §4Dieser Spieler wurde nicht reportet");
  108. }
  109. }
  110. else
  111. {
  112. p.sendMessage("§7[§4Report§7] §4Ungültige Syntax");
  113. }
  114. }
  115. else {
  116. p.sendMessage("§7[§4Report§7] §4Du hast nicht die nötigen Rechte dazu");
  117. }
  118. }
  119. }
  120. }
  121. return false;
  122. }
  123.  
  124. public boolean report(Player p, Player target, String reason)
  125. {
  126. if (this.reasons.contains(reason)) {
  127. for (int i = 0; i < this.reasons.size(); i++) {
  128. if (reason.equalsIgnoreCase((String)this.reasons.get(i))) {
  129. if (target.isOp())
  130. {
  131. if (ReportSystem.m.getConfig().getBoolean("report.opsareallowed"))
  132. {
  133. p.sendMessage("§7[§4Report§7] §4Du kannst keine Teammitglieder reporten");
  134. }
  135. else
  136. {
  137. reason = (String)this.reasons.get(i);
  138. String msg = ReportSystem.m.getConfig().getString("report.reportmsg");
  139. String rmsg = ReportSystem.m.getConfig().getString("report.reportermsg");
  140. msg = msg.replaceAll("&", "�");
  141. msg = msg.replaceAll("%Player%", target.getName());
  142. msg = msg.replaceAll("%reason%", reason);
  143. msg = msg.replaceAll("%reporter", p.getName());
  144. rmsg = rmsg.replaceAll("&", "�");
  145. rmsg = rmsg.replaceAll("%Player%", target.getName());
  146. rmsg = rmsg.replaceAll("%reason%", reason);
  147. p.sendMessage("§7[§4Report§7]" + rmsg);
  148. whoreported.put(target, p);
  149. reports.put(target, reason);
  150. for (Player all : Bukkit.getOnlinePlayers()) {
  151. if (all.hasPermission("report.view")) {
  152. all.sendMessage("§7[§4Report§7]" + msg);
  153. }
  154. }
  155. }
  156. }
  157. else
  158. {
  159. reason = (String)this.reasons.get(i);
  160. String msg = ReportSystem.m.getConfig().getString("report.reportmsg");
  161. String rmsg = ReportSystem.m.getConfig().getString("report.reportermsg");
  162. msg = msg.replaceAll("&", "�");
  163. msg = msg.replaceAll("%Player%", target.getName());
  164. msg = msg.replaceAll("%reason%", reason);
  165. msg = msg.replaceAll("%reporter%", p.getName());
  166. rmsg = rmsg.replaceAll("&", "�");
  167. rmsg = rmsg.replaceAll("%Player%", target.getName());
  168. rmsg = rmsg.replaceAll("%reason%", reason);
  169. p.sendMessage("§7[§4Report§7]" + rmsg);
  170. whoreported.put(target, p);
  171. reports.put(target, reason);
  172. for (Player all : Bukkit.getOnlinePlayers()) {
  173. if (all.hasPermission("report.view")) {
  174. all.sendMessage("§7[§4Report§7]" + msg);
  175. }
  176. }
  177. }
  178. }
  179. }
  180. } else {
  181. p.sendMessage("§7[§4Report§7] §4 Ungültiger Grund");
  182. }
  183. return true;
  184. }
  185.  
  186. @EventHandler
  187. public void onInvKlick(InventoryClickEvent e)
  188. {
  189. Player p = (Player)e.getWhoClicked();
  190. if (e.getClickedInventory().getName().equalsIgnoreCase("§4Reports"))
  191. {
  192. e.setCancelled(true);
  193. if (e.getCurrentItem().getType() == Material.SKULL_ITEM)
  194. {
  195. Player reported = Bukkit.getPlayer(e.getCurrentItem().getItemMeta().getDisplayName());
  196. zwischenSpeicher.put(p, reported.getName());
  197. reportMenuOpen(p);
  198. }
  199. }
  200. else if (e.getClickedInventory().getName().equalsIgnoreCase("§4ReportMenu"))
  201. {
  202. e.setCancelled(true);
  203. Player reported = Bukkit.getPlayer((String)zwischenSpeicher.get(p));
  204. if (e.getCurrentItem().getType() == Material.ENDER_PEARL)
  205. {
  206. p.teleport(reported);
  207. }
  208. else if (e.getCurrentItem().getType() == Material.GOLD_INGOT)
  209. {
  210. String kickMsg = ReportSystem.m.getConfig().getString("report.kickmsg");
  211. kickMsg = kickMsg.replaceAll("&", "§");
  212. reported.kickPlayer(kickMsg);
  213. zwischenSpeicher.remove(p);
  214. }
  215. else if (e.getCurrentItem().getType() == Material.DIAMOND)
  216. {
  217. String banMsg = ReportSystem.m.getConfig().getString("report.banmsg");
  218. banMsg = banMsg.replaceAll("&", "§");
  219. reported.kickPlayer(banMsg);
  220. reported.setBanned(true);
  221. zwischenSpeicher.remove(p);
  222. }
  223. else if (e.getCurrentItem().getType() == Material.PAPER)
  224. {
  225. p.sendMessage("§7[§4Report§7] §4Spieler aus der Liste entfernt");
  226. reports.remove(reported);
  227. zwischenSpeicher.remove(p);
  228. p.closeInventory();
  229. }
  230. else if (e.getCurrentItem().getType() == Material.BLAZE_POWDER)
  231. {
  232. p.closeInventory();
  233. zwischenSpeicher.remove(p);
  234. }
  235. }
  236. }
  237.  
  238. public void onReportsOpen(Player p)
  239. {
  240. Inventory inv = Bukkit.createInventory(null, 54, "§4Reports");
  241. for (Player all : Bukkit.getOnlinePlayers()) {
  242. if (reports.containsKey(all))
  243. {
  244. ItemStack is = new ItemStack(Material.SKULL_ITEM);
  245. SkullMeta meta = (SkullMeta)is.getItemMeta();
  246. meta.setDisplayName(all.getName());
  247. meta.setLore(Arrays.asList(new String[] { "§bgemeldet von §c " + ((Player)whoreported.get(all)).getName() + "§b wegen " + "§c" + (String)reports.get(all) }));
  248. is.setItemMeta(meta);
  249.  
  250. inv.addItem(new ItemStack[] { is });
  251. }
  252. }
  253. p.openInventory(inv);
  254. }
  255.  
  256. public void reportMenuOpen(Player p)
  257. {
  258. Inventory inv = Bukkit.createInventory(null, 9, "§4ReportMenu");
  259.  
  260. ItemStack teleport = new ItemStack(Material.ENDER_PEARL);
  261. ItemMeta teleportMeta = teleport.getItemMeta();
  262. teleportMeta.setDisplayName("§5Teleport zum Spieler");
  263. teleport.setItemMeta(teleportMeta);
  264.  
  265. ItemStack remove = new ItemStack(Material.PAPER);
  266. ItemMeta removeMeta = teleport.getItemMeta();
  267. removeMeta.setDisplayName("§bRemovt den Spieler aus der ReportList");
  268. remove.setItemMeta(removeMeta);
  269.  
  270. ItemStack back = new ItemStack(Material.BLAZE_POWDER);
  271. ItemMeta backMeta = teleport.getItemMeta();
  272. backMeta.setDisplayName("§6Zurück");
  273. back.setItemMeta(backMeta);
  274.  
  275. inv.setItem(0, teleport);
  276. inv.setItem(4, remove);
  277. inv.setItem(8, back);
  278. p.openInventory(inv);
  279. }
  280. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement