Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.nursimon.Main;
- import java.util.Arrays;
- import java.util.HashMap;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.Material;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.configuration.file.FileConfiguration;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.inventory.InventoryClickEvent;
- import org.bukkit.inventory.Inventory;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.inventory.meta.SkullMeta;
- public class Report
- implements CommandExecutor, Listener
- {
- public static HashMap<Player, String> reports = new HashMap();
- public static HashMap<Player, Player> whoreported = new HashMap();
- public static HashMap<Player, String> zwischenSpeicher = new HashMap();
- List<String> reasons = ReportSystem.m.getConfig().getStringList("report.reasons");
- public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)
- {
- if (cmd.getName().equalsIgnoreCase("report"))
- {
- if (!(sender instanceof Player))
- {
- sender.sendMessage("Du musst ein Spieler sein");
- }
- else
- {
- Player p = (Player)sender;
- if (args.length == 2)
- {
- Player target = Bukkit.getPlayer(args[0]);
- if (target != null)
- {
- String reason = args[1];
- boolean done = report(p, target, reason);
- if (done) {
- } else {
- p.sendMessage("§4Es gab einen Fehler");
- }
- }
- else
- {
- p.sendMessage("§7[§4Report§7] §4Der Spieler ist nicht online");
- }
- }
- else if (args.length == 0)
- {
- if (p.hasPermission("report.help"))
- {
- p.sendMessage("§7[§4Report§7] §8» §7Bitte nutze §3/report §8<§3Name§8> §eHacking§8, §eBeleidigung§8, §eBugusing§8, §eSonstiges§8");
- }
- }
- else if ((args.length == 1) &&
- (args[0].equalsIgnoreCase("reasons")))
- {
- p.sendMessage("§7[§4Report§7] Es gib folgende Gründe");
- for (int i = 0; i < this.reasons.size(); i++) {
- p.sendMessage("§7-§4" + (String)this.reasons.get(i));
- }
- }
- }
- }
- else if (cmd.getName().equalsIgnoreCase("reports"))
- {
- if (!(sender instanceof Player))
- {
- sender.sendMessage("Du musst ein Spieler sein");
- }
- else if (args.length == 0)
- {
- Player p = (Player)sender;
- if ((p.isOp()) || (p.hasPermission("report.list"))) {
- onReportsOpen(p);
- } else {
- p.sendMessage("§7[§4Report§7] §4Du hast nicht die nötigen Rechte dazu");
- }
- }
- else if (args.length != 1)
- {
- if (args.length == 2)
- {
- Player p = (Player)sender;
- if ((p.isOp()) || (p.hasPermission("report.accept")))
- {
- if (args[0].equalsIgnoreCase("accept"))
- {
- Player target = Bukkit.getPlayer(args[1]);
- if (reports.containsKey(target))
- {
- p.sendMessage("§7[§4Report§7] §aDu hast den Report angenommen");
- zwischenSpeicher.put(p, target.getName());
- reportMenuOpen(p);
- }
- else
- {
- p.sendMessage("§7[§4Report§7] §4Dieser Spieler wurde nicht reportet");
- }
- }
- else
- {
- p.sendMessage("§7[§4Report§7] §4Ungültige Syntax");
- }
- }
- else {
- p.sendMessage("§7[§4Report§7] §4Du hast nicht die nötigen Rechte dazu");
- }
- }
- }
- }
- return false;
- }
- public boolean report(Player p, Player target, String reason)
- {
- if (this.reasons.contains(reason)) {
- for (int i = 0; i < this.reasons.size(); i++) {
- if (reason.equalsIgnoreCase((String)this.reasons.get(i))) {
- if (target.isOp())
- {
- if (ReportSystem.m.getConfig().getBoolean("report.opsareallowed"))
- {
- p.sendMessage("§7[§4Report§7] §4Du kannst keine Teammitglieder reporten");
- }
- else
- {
- reason = (String)this.reasons.get(i);
- String msg = ReportSystem.m.getConfig().getString("report.reportmsg");
- String rmsg = ReportSystem.m.getConfig().getString("report.reportermsg");
- msg = msg.replaceAll("&", "�");
- msg = msg.replaceAll("%Player%", target.getName());
- msg = msg.replaceAll("%reason%", reason);
- msg = msg.replaceAll("%reporter", p.getName());
- rmsg = rmsg.replaceAll("&", "�");
- rmsg = rmsg.replaceAll("%Player%", target.getName());
- rmsg = rmsg.replaceAll("%reason%", reason);
- p.sendMessage("§7[§4Report§7]" + rmsg);
- whoreported.put(target, p);
- reports.put(target, reason);
- for (Player all : Bukkit.getOnlinePlayers()) {
- if (all.hasPermission("report.view")) {
- all.sendMessage("§7[§4Report§7]" + msg);
- }
- }
- }
- }
- else
- {
- reason = (String)this.reasons.get(i);
- String msg = ReportSystem.m.getConfig().getString("report.reportmsg");
- String rmsg = ReportSystem.m.getConfig().getString("report.reportermsg");
- msg = msg.replaceAll("&", "�");
- msg = msg.replaceAll("%Player%", target.getName());
- msg = msg.replaceAll("%reason%", reason);
- msg = msg.replaceAll("%reporter%", p.getName());
- rmsg = rmsg.replaceAll("&", "�");
- rmsg = rmsg.replaceAll("%Player%", target.getName());
- rmsg = rmsg.replaceAll("%reason%", reason);
- p.sendMessage("§7[§4Report§7]" + rmsg);
- whoreported.put(target, p);
- reports.put(target, reason);
- for (Player all : Bukkit.getOnlinePlayers()) {
- if (all.hasPermission("report.view")) {
- all.sendMessage("§7[§4Report§7]" + msg);
- }
- }
- }
- }
- }
- } else {
- p.sendMessage("§7[§4Report§7] §4 Ungültiger Grund");
- }
- return true;
- }
- @EventHandler
- public void onInvKlick(InventoryClickEvent e)
- {
- Player p = (Player)e.getWhoClicked();
- if (e.getClickedInventory().getName().equalsIgnoreCase("§4Reports"))
- {
- e.setCancelled(true);
- if (e.getCurrentItem().getType() == Material.SKULL_ITEM)
- {
- Player reported = Bukkit.getPlayer(e.getCurrentItem().getItemMeta().getDisplayName());
- zwischenSpeicher.put(p, reported.getName());
- reportMenuOpen(p);
- }
- }
- else if (e.getClickedInventory().getName().equalsIgnoreCase("§4ReportMenu"))
- {
- e.setCancelled(true);
- Player reported = Bukkit.getPlayer((String)zwischenSpeicher.get(p));
- if (e.getCurrentItem().getType() == Material.ENDER_PEARL)
- {
- p.teleport(reported);
- }
- else if (e.getCurrentItem().getType() == Material.GOLD_INGOT)
- {
- String kickMsg = ReportSystem.m.getConfig().getString("report.kickmsg");
- kickMsg = kickMsg.replaceAll("&", "§");
- reported.kickPlayer(kickMsg);
- zwischenSpeicher.remove(p);
- }
- else if (e.getCurrentItem().getType() == Material.DIAMOND)
- {
- String banMsg = ReportSystem.m.getConfig().getString("report.banmsg");
- banMsg = banMsg.replaceAll("&", "§");
- reported.kickPlayer(banMsg);
- reported.setBanned(true);
- zwischenSpeicher.remove(p);
- }
- else if (e.getCurrentItem().getType() == Material.PAPER)
- {
- p.sendMessage("§7[§4Report§7] §4Spieler aus der Liste entfernt");
- reports.remove(reported);
- zwischenSpeicher.remove(p);
- p.closeInventory();
- }
- else if (e.getCurrentItem().getType() == Material.BLAZE_POWDER)
- {
- p.closeInventory();
- zwischenSpeicher.remove(p);
- }
- }
- }
- public void onReportsOpen(Player p)
- {
- Inventory inv = Bukkit.createInventory(null, 54, "§4Reports");
- for (Player all : Bukkit.getOnlinePlayers()) {
- if (reports.containsKey(all))
- {
- ItemStack is = new ItemStack(Material.SKULL_ITEM);
- SkullMeta meta = (SkullMeta)is.getItemMeta();
- meta.setDisplayName(all.getName());
- meta.setLore(Arrays.asList(new String[] { "§bgemeldet von §c " + ((Player)whoreported.get(all)).getName() + "§b wegen " + "§c" + (String)reports.get(all) }));
- is.setItemMeta(meta);
- inv.addItem(new ItemStack[] { is });
- }
- }
- p.openInventory(inv);
- }
- public void reportMenuOpen(Player p)
- {
- Inventory inv = Bukkit.createInventory(null, 9, "§4ReportMenu");
- ItemStack teleport = new ItemStack(Material.ENDER_PEARL);
- ItemMeta teleportMeta = teleport.getItemMeta();
- teleportMeta.setDisplayName("§5Teleport zum Spieler");
- teleport.setItemMeta(teleportMeta);
- ItemStack remove = new ItemStack(Material.PAPER);
- ItemMeta removeMeta = teleport.getItemMeta();
- removeMeta.setDisplayName("§bRemovt den Spieler aus der ReportList");
- remove.setItemMeta(removeMeta);
- ItemStack back = new ItemStack(Material.BLAZE_POWDER);
- ItemMeta backMeta = teleport.getItemMeta();
- backMeta.setDisplayName("§6Zurück");
- back.setItemMeta(backMeta);
- inv.setItem(0, teleport);
- inv.setItem(4, remove);
- inv.setItem(8, back);
- p.openInventory(inv);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement