Advertisement
Guest User

Untitled

a guest
Apr 7th, 2020
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.15 KB | None | 0 0
  1. package me.remigio07_.core;
  2.  
  3. import java.math.BigDecimal;
  4. import java.util.ArrayList;
  5. import java.util.HashMap;
  6.  
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.command.Command;
  9. import org.bukkit.command.CommandExecutor;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.entity.Player;
  12.  
  13. public class CmdExecutor implements CommandExecutor { //team <join|leave|info|delete> <team> | /team <invite|accept> <player> | /team list | /team desc <team> <desc> | /team name <team> <name>
  14.  
  15.     private static final String TEAMS_PFX = "§8[§f§lTeams§8] §r";
  16.     private static HashMap<Player, Team> pendingRequests = new HashMap<Player, Team>();
  17.    
  18.     @Override
  19.     public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
  20.         if (!(sender instanceof Player)) {
  21.             sender.sendMessage("Devi essere un player per eseguire questo comando.");
  22.             return true;
  23.         } Player player = (Player) sender;
  24.        
  25.         switch (command.getName()) {
  26.         case "spawn":
  27.             if (player.hasPermission("spawnplugin.self")) {
  28.                 if (args.length > 0) {
  29.                     if (player.hasPermission("spawnplugin.others")) {
  30.                         if (Bukkit.getPlayer(args[0]) != null) {
  31.                             Core.teleportToSpawn(Bukkit.getPlayer(args[0]));
  32.                             player.sendMessage("§aIl giocatore è stato teletrasportato allo spawn.");
  33.                             return true;
  34.                         } else {
  35.                             player.sendMessage(args[0] + " §cnon è online.");
  36.                             return true;
  37.                         }
  38.                     } else {
  39.                         player.sendMessage("§cNon hai il permesso per eseguire questo comando.");
  40.                         return true;
  41.                     }
  42.                 }
  43.             } Core.teleportToSpawn(player);
  44.             return true;
  45.         case "team":
  46.             if (args.length == 1) {
  47.                 if (args[0].equalsIgnoreCase("list")) {
  48.                     ArrayList<String> teams = new ArrayList<>();
  49.                     if (Team.getTeams().equals(null)) {
  50.                         player.sendMessage(TEAMS_PFX + "§cNon ci sono ancora teams caricati sul server.");
  51.                         return true;
  52.                     } Team.getTeams().keySet().forEach(id -> teams.add(id));
  53.                     StringBuilder sb = new StringBuilder();
  54.                     teams.forEach(team -> sb.append(team + "\n"));
  55.                     player.sendMessage(TEAMS_PFX + "§eEcco la lista di tutti i teams presenti sul server:\n§f" + sb.toString().trim());
  56.                 } else if (args[0].equalsIgnoreCase("leave")) {
  57.                     if (Team.getTeam(player) != null) {
  58.                         Team team = Team.getTeam(player);
  59.                         if (team.getOwner().equals(player.getName())) {
  60.                             team.getMembers().forEach(member -> {
  61.                                 Team.removeMember(team.getId(), member);
  62.                                 if (Bukkit.getPlayer(member) != null) {
  63.                                     Bukkit.getPlayer(member).sendMessage(TEAMS_PFX + "§cIl team a cui appartenevi è stato sciolto.");
  64.                                 }
  65.                             });
  66.                             Team.removeTeam(team.getId());
  67.                             player.sendMessage(TEAMS_PFX + "§aNon sei più membro di quel team.");
  68.                             player.sendMessage(TEAMS_PFX + "§aIl team è stato sciolto.");
  69.                         } else {
  70.                             Team.removeMember(team.getId(), player.getName());
  71.                             player.sendMessage(TEAMS_PFX + "§aNon sei più membro di quel team.");
  72.                         }
  73.                     } else player.sendMessage(TEAMS_PFX + "§cNon sei in un team.");
  74.                 } else if (args[0].equalsIgnoreCase("chat")) {
  75.                    
  76.                 } else if (args[0].equalsIgnoreCase("reload")) {
  77.                     if (player.hasPermission("teams.admin")) {
  78.                         Core.getInstance().reloadConfig();
  79.                         Team.initialize(Core.getInstance().getConfig());
  80.                         Team.loadTeams();
  81.                         player.sendMessage(TEAMS_PFX + "§aI teams in config.yml sono stati reloaddati.");
  82.                     } else player.sendMessage(TEAMS_PFX + "§cNon hai il permesso per eseguire questo comando.");
  83.                 } else if (args[0].equalsIgnoreCase("help")) {
  84.                    
  85.                 } else player.sendMessage(TEAMS_PFX + "§cLa sintassi del comando è errata. Utilizza §f/team help§c.");
  86.             } else if (args.length == 2) {
  87.                 Team team = Team.getTeam(args[1].toLowerCase());
  88.                 switch (args[0].toLowerCase()) {
  89.                 case "create":
  90.                     if (!pendingRequests.containsKey(player)) {
  91.                         if (Team.getTeam(player) == null) {
  92.                             if (team == null) {
  93.                                 if (Core.getUser(player).getMoney().doubleValue() >= 100) {
  94.                                     Core.getUser(player).takeMoney(new BigDecimal(100));
  95.                                     Team.addTeam(args[1], player.getName());
  96.                                     player.sendMessage(TEAMS_PFX + "§aHai creato il team con successo.");
  97.                                 } else player.sendMessage(TEAMS_PFX + "§Non hai abbastanza soldi per creare un team. In totale hai bisogno di §f$100§c.");
  98.                             } else player.sendMessage(TEAMS_PFX + "§cEsiste già un team con quell'ID. Prova con un altro.");
  99.                         } else player.sendMessage(TEAMS_PFX + "§cSei già in un team. Per crearne uno nuovo, devi prima uscire.");
  100.                     } else player.sendMessage(TEAMS_PFX + "§cHai una richiesta in sospeso per entrare a far parte di un altro team.");
  101.                     break;
  102.                 case "join":
  103.                     if (!pendingRequests.containsKey(player)) {
  104.                         if (team != null) {
  105.                             if (!team.getOwner().equals(player.getName()) && !team.getMembers().contains(player.getName().toLowerCase())) {
  106.                                 if (Bukkit.getPlayer(team.getOwner()) != null) {
  107.                                     Bukkit.getPlayer(team.getOwner()).sendMessage(TEAMS_PFX + player.getName() + " §evorrebbe entrare nel tuo team. Digita §f/team accept " + player.getName() + " §eper lasciarlo/a entrare. Hai 120 secondi per farlo, o la richiesta verrà ignorata.");
  108.                                     player.sendMessage(TEAMS_PFX + "§aHai inviato all'owner di quel team la richiesta per entrare. Conoscerai l'esito entro 120 secondi.");
  109.                                     newRequest(player, team);
  110.                                 } else player.sendMessage(TEAMS_PFX + "§cL'owner di quel team (§f" + team.getOwner() + "§c) non è online al momento. Riprova più tardi.");
  111.                             } else player.sendMessage(TEAMS_PFX + "§cSei già in quel team.");
  112.                         } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
  113.                     } else player.sendMessage(TEAMS_PFX + "§cHai già una richiesta in sospeso.");
  114.                     break;
  115.                 case "leave":
  116.                     if (team != null) {
  117.                         if (team == Team.getTeam(player)) {
  118.                             if (team.getOwner().equals(player.getName())) {
  119.                                 team.getMembers().forEach(member -> {
  120.                                     Team.removeMember(team.getId(), member);
  121.                                     if (Bukkit.getPlayer(member) != null) {
  122.                                         Bukkit.getPlayer(member).sendMessage(TEAMS_PFX + "§cIl team a cui appartenevi è stato sciolto.");
  123.                                     }
  124.                                 });
  125.                                 Team.removeTeam(team.getId());
  126.                                 player.sendMessage(TEAMS_PFX + "§aNon sei più membro di quel team.");
  127.                                 player.sendMessage(TEAMS_PFX + "§aIl team è stato sciolto.");
  128.                             } else {
  129.                                 Team.removeMember(team.getId(), player.getName());
  130.                                 player.sendMessage(TEAMS_PFX + "§aNon sei più membro di quel team.");
  131.                             }
  132.                         } else player.sendMessage(TEAMS_PFX + "§cNon sei in quel team.");
  133.                     } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
  134.                     break;
  135.                 case "info":
  136.                     if (team != null) {
  137.                         StringBuilder sb = new StringBuilder();
  138.                         team.getMembers().forEach(member -> {
  139.                             sb.append(member + "\n");
  140.                         });
  141.                         player.sendMessage(TEAMS_PFX + "§eEcco le informazioni del team:\nID: §f" + team.getId() + "\n§eNome: §f" + team.getName() + "\n§eOwner: §f" + team.getOwner() + "\n§eDescrizione: §f" + team.getDesc() + "\n§eMembri:\n§f" + sb.toString());
  142.                     } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
  143.                     break;
  144.                 case "delete":
  145.                     if (player.hasPermission("teams.admin")) {
  146.                         if (team != null) {
  147.                             player.sendMessage(TEAMS_PFX + "§aIl team è stato rimosso con successo.");
  148.                             Bukkit.getPlayer(team.getOwner()).sendMessage(TEAMS_PFX + "§cIl team a cui appartenevi è stato sciolto.");
  149.                             team.getMembers().forEach(member -> {
  150.                                 Team.removeMember(team.getId(), member);
  151.                                 if (Bukkit.getPlayer(member) != null) {
  152.                                     Bukkit.getPlayer(member).sendMessage(TEAMS_PFX + "§cIl team a cui appartenevi è stato sciolto.");
  153.                                 }
  154.                             });
  155.                             Team.removeTeam(team.getId());
  156.                         } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
  157.                     } else player.sendMessage(TEAMS_PFX + "§cNon hai il permesso per eseguire questo comando.");
  158.                     break;
  159.                 case "accept":
  160.                     if (Team.getTeam(player) != null) {
  161.                         Team t = Team.getTeam(player);
  162.                         if (t.getOwner().equals(player.getName())) {
  163.                             if (Bukkit.getPlayer(args[1]) != null) {
  164.                                 Player player2 = Bukkit.getPlayer(args[1]);
  165.                                 if (pendingRequests.containsKey(player2) && pendingRequests.get(player2).equals(t)) {
  166.                                     player2.sendMessage(TEAMS_PFX + "§aOra fai parte del team §f" + t.getId() + "§a.");
  167.                                     player.sendMessage(TEAMS_PFX + "§aOra il giocatore fa parte del team.");
  168.                                     Team.addMember(t.getId(), player2.getName());
  169.                                     pendingRequests.remove(player2);
  170.                                 } else player.sendMessage(TEAMS_PFX + "§cNon hai richieste in sospeso da parte di quel giocatore.");
  171.                             } else player.sendMessage(TEAMS_PFX + "§cQuel giocatore non è online.");
  172.                         } else player.sendMessage(TEAMS_PFX + "§cNon sei l'owner del team.");
  173.                     } else player.sendMessage(TEAMS_PFX + "§cNon sei in un team.");
  174.                     break;
  175.                 case "kick":
  176.                     if (Team.getTeam(player) != null) {
  177.                         Team t = Team.getTeam(player);
  178.                         if (t.getOwner().equals(player.getName())) {
  179.                             if (t.getMembers().contains(args[1].toLowerCase())) {
  180.                                 Team.removeMember(t.getId(), args[1].toLowerCase());
  181.                                 player.sendMessage(TEAMS_PFX + "§aHai espulso il giocatore dal team.");
  182.                                 if (Bukkit.getPlayer(args[1]) != null) {
  183.                                     Bukkit.getPlayer(args[1]).sendMessage(TEAMS_PFX + "§cSei stato/a espulso/a dal tuo team.");
  184.                                 }
  185.                             } else player.sendMessage(TEAMS_PFX + "§cQuel giocatore non fa parte del tuo team o è l'owner.");
  186.                         } else player.sendMessage(TEAMS_PFX + "§cNon sei l'owner di quel team.");
  187.                     } else player.sendMessage(TEAMS_PFX + "§cNon sei in un team.");
  188.                     break;
  189.                 default:
  190.                     player.sendMessage(TEAMS_PFX + "§cLa sintassi del comando è errata. Utilizza §f/team help§c.");
  191.                     break;
  192.                 }
  193.             } else if (args.length >= 3) {
  194.                 if (args[0].equalsIgnoreCase("desc")) {
  195.                     Team team = Team.getTeam(args[1].toLowerCase());
  196.                     if (team != null) {
  197.                         if (Team.getTeam(player) == team) {
  198.                             if (team.getOwner().equals(player.getName())) {
  199.                                 StringBuilder sb = new StringBuilder();
  200.                                 for (int i = 0; i < args.length; i++) {
  201.                                     if (i == 0 || i == 1)
  202.                                         continue;
  203.                                     sb.append(args[i] + " ");
  204.                                 } Team.setDesc(team.getId(), sb.toString().trim());
  205.                                 player.sendMessage(TEAMS_PFX + "§aHai modificato la descrizione con successo.");
  206.                             } else player.sendMessage(TEAMS_PFX + "§cNon sei l'owner di quel team.");
  207.                         } else if (player.hasPermission("teams.admin")) {
  208.                             Team.setDesc(team.getId(), args[2]);
  209.                             player.sendMessage(TEAMS_PFX + "§aHai modificato la descrizione con successo.");
  210.                         } else player.sendMessage(TEAMS_PFX + "§cNon sei in un team.");
  211.                     } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
  212.                 } else if (args[0].equalsIgnoreCase("name")) {
  213.                     Team team = Team.getTeam(args[1].toLowerCase());
  214.                     if (team != null) {
  215.                         if (Team.getTeam(player) == team) {
  216.                             if (team.getOwner().equals(player.getName())) {
  217.                                 Team.setName(team.getId(), args[2]);
  218.                                 player.sendMessage(TEAMS_PFX + "§aHai modificato il nome del team con successo.");
  219.                             } else player.sendMessage(TEAMS_PFX + "§cNon sei l'owner di quel team.");
  220.                         } else if (player.hasPermission("teams.admin")) {
  221.                             Team.setName(team.getId(), args[2]);
  222.                             player.sendMessage(TEAMS_PFX + "§aHai modificato il nome del team con successo.");
  223.                         } else player.sendMessage(TEAMS_PFX + "§cNon sei in un team.");
  224.                     } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
  225.                 } else player.sendMessage(TEAMS_PFX + "§cLa sintassi del comando è errata. Utilizza §f/team help§c.");
  226.             } else player.sendMessage(TEAMS_PFX + "§cLa sintassi del comando è errata. Utilizza §f/team help§c.");
  227.             break;
  228.         } return true;
  229.     }
  230.  
  231.     private static void newRequest(Player player, Team team) {
  232.         pendingRequests.put(player, team);
  233.         Bukkit.getScheduler().runTaskLater(Core.getInstance(), new Runnable() {
  234.            
  235.             @Override
  236.             public void run() {
  237.                 pendingRequests.remove(player);
  238.             }
  239.         }, 2400L);
  240.     }
  241.    
  242. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement