Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.remigio07_.core;
- import java.math.BigDecimal;
- import java.util.ArrayList;
- import java.util.HashMap;
- import org.bukkit.Bukkit;
- import org.bukkit.command.Command;
- import org.bukkit.command.CommandExecutor;
- import org.bukkit.command.CommandSender;
- import org.bukkit.entity.Player;
- 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>
- private static final String TEAMS_PFX = "§8[§f§lTeams§8] §r";
- private static HashMap<Player, Team> pendingRequests = new HashMap<Player, Team>();
- @Override
- public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- if (!(sender instanceof Player)) {
- sender.sendMessage("Devi essere un player per eseguire questo comando.");
- return true;
- } Player player = (Player) sender;
- switch (command.getName()) {
- case "spawn":
- if (player.hasPermission("spawnplugin.self")) {
- if (args.length > 0) {
- if (player.hasPermission("spawnplugin.others")) {
- if (Bukkit.getPlayer(args[0]) != null) {
- Core.teleportToSpawn(Bukkit.getPlayer(args[0]));
- player.sendMessage("§aIl giocatore è stato teletrasportato allo spawn.");
- return true;
- } else {
- player.sendMessage(args[0] + " §cnon è online.");
- return true;
- }
- } else {
- player.sendMessage("§cNon hai il permesso per eseguire questo comando.");
- return true;
- }
- }
- } Core.teleportToSpawn(player);
- return true;
- case "team":
- if (args.length == 1) {
- if (args[0].equalsIgnoreCase("list")) {
- ArrayList<String> teams = new ArrayList<>();
- if (Team.getTeams().equals(null)) {
- player.sendMessage(TEAMS_PFX + "§cNon ci sono ancora teams caricati sul server.");
- return true;
- } Team.getTeams().keySet().forEach(id -> teams.add(id));
- StringBuilder sb = new StringBuilder();
- teams.forEach(team -> sb.append(team + "\n"));
- player.sendMessage(TEAMS_PFX + "§eEcco la lista di tutti i teams presenti sul server:\n§f" + sb.toString().trim());
- } else if (args[0].equalsIgnoreCase("leave")) {
- if (Team.getTeam(player) != null) {
- Team team = Team.getTeam(player);
- if (team.getOwner().equals(player.getName())) {
- team.getMembers().forEach(member -> {
- Team.removeMember(team.getId(), member);
- if (Bukkit.getPlayer(member) != null) {
- Bukkit.getPlayer(member).sendMessage(TEAMS_PFX + "§cIl team a cui appartenevi è stato sciolto.");
- }
- });
- Team.removeTeam(team.getId());
- player.sendMessage(TEAMS_PFX + "§aNon sei più membro di quel team.");
- player.sendMessage(TEAMS_PFX + "§aIl team è stato sciolto.");
- } else {
- Team.removeMember(team.getId(), player.getName());
- player.sendMessage(TEAMS_PFX + "§aNon sei più membro di quel team.");
- }
- } else player.sendMessage(TEAMS_PFX + "§cNon sei in un team.");
- } else if (args[0].equalsIgnoreCase("chat")) {
- } else if (args[0].equalsIgnoreCase("reload")) {
- if (player.hasPermission("teams.admin")) {
- Core.getInstance().reloadConfig();
- Team.initialize(Core.getInstance().getConfig());
- Team.loadTeams();
- player.sendMessage(TEAMS_PFX + "§aI teams in config.yml sono stati reloaddati.");
- } else player.sendMessage(TEAMS_PFX + "§cNon hai il permesso per eseguire questo comando.");
- } else if (args[0].equalsIgnoreCase("help")) {
- } else player.sendMessage(TEAMS_PFX + "§cLa sintassi del comando è errata. Utilizza §f/team help§c.");
- } else if (args.length == 2) {
- Team team = Team.getTeam(args[1].toLowerCase());
- switch (args[0].toLowerCase()) {
- case "create":
- if (!pendingRequests.containsKey(player)) {
- if (Team.getTeam(player) == null) {
- if (team == null) {
- if (Core.getUser(player).getMoney().doubleValue() >= 100) {
- Core.getUser(player).takeMoney(new BigDecimal(100));
- Team.addTeam(args[1], player.getName());
- player.sendMessage(TEAMS_PFX + "§aHai creato il team con successo.");
- } else player.sendMessage(TEAMS_PFX + "§Non hai abbastanza soldi per creare un team. In totale hai bisogno di §f$100§c.");
- } else player.sendMessage(TEAMS_PFX + "§cEsiste già un team con quell'ID. Prova con un altro.");
- } else player.sendMessage(TEAMS_PFX + "§cSei già in un team. Per crearne uno nuovo, devi prima uscire.");
- } else player.sendMessage(TEAMS_PFX + "§cHai una richiesta in sospeso per entrare a far parte di un altro team.");
- break;
- case "join":
- if (!pendingRequests.containsKey(player)) {
- if (team != null) {
- if (!team.getOwner().equals(player.getName()) && !team.getMembers().contains(player.getName().toLowerCase())) {
- if (Bukkit.getPlayer(team.getOwner()) != null) {
- 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.");
- player.sendMessage(TEAMS_PFX + "§aHai inviato all'owner di quel team la richiesta per entrare. Conoscerai l'esito entro 120 secondi.");
- newRequest(player, team);
- } else player.sendMessage(TEAMS_PFX + "§cL'owner di quel team (§f" + team.getOwner() + "§c) non è online al momento. Riprova più tardi.");
- } else player.sendMessage(TEAMS_PFX + "§cSei già in quel team.");
- } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
- } else player.sendMessage(TEAMS_PFX + "§cHai già una richiesta in sospeso.");
- break;
- case "leave":
- if (team != null) {
- if (team == Team.getTeam(player)) {
- if (team.getOwner().equals(player.getName())) {
- team.getMembers().forEach(member -> {
- Team.removeMember(team.getId(), member);
- if (Bukkit.getPlayer(member) != null) {
- Bukkit.getPlayer(member).sendMessage(TEAMS_PFX + "§cIl team a cui appartenevi è stato sciolto.");
- }
- });
- Team.removeTeam(team.getId());
- player.sendMessage(TEAMS_PFX + "§aNon sei più membro di quel team.");
- player.sendMessage(TEAMS_PFX + "§aIl team è stato sciolto.");
- } else {
- Team.removeMember(team.getId(), player.getName());
- player.sendMessage(TEAMS_PFX + "§aNon sei più membro di quel team.");
- }
- } else player.sendMessage(TEAMS_PFX + "§cNon sei in quel team.");
- } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
- break;
- case "info":
- if (team != null) {
- StringBuilder sb = new StringBuilder();
- team.getMembers().forEach(member -> {
- sb.append(member + "\n");
- });
- 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());
- } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
- break;
- case "delete":
- if (player.hasPermission("teams.admin")) {
- if (team != null) {
- player.sendMessage(TEAMS_PFX + "§aIl team è stato rimosso con successo.");
- Bukkit.getPlayer(team.getOwner()).sendMessage(TEAMS_PFX + "§cIl team a cui appartenevi è stato sciolto.");
- team.getMembers().forEach(member -> {
- Team.removeMember(team.getId(), member);
- if (Bukkit.getPlayer(member) != null) {
- Bukkit.getPlayer(member).sendMessage(TEAMS_PFX + "§cIl team a cui appartenevi è stato sciolto.");
- }
- });
- Team.removeTeam(team.getId());
- } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
- } else player.sendMessage(TEAMS_PFX + "§cNon hai il permesso per eseguire questo comando.");
- break;
- case "accept":
- if (Team.getTeam(player) != null) {
- Team t = Team.getTeam(player);
- if (t.getOwner().equals(player.getName())) {
- if (Bukkit.getPlayer(args[1]) != null) {
- Player player2 = Bukkit.getPlayer(args[1]);
- if (pendingRequests.containsKey(player2) && pendingRequests.get(player2).equals(t)) {
- player2.sendMessage(TEAMS_PFX + "§aOra fai parte del team §f" + t.getId() + "§a.");
- player.sendMessage(TEAMS_PFX + "§aOra il giocatore fa parte del team.");
- Team.addMember(t.getId(), player2.getName());
- pendingRequests.remove(player2);
- } else player.sendMessage(TEAMS_PFX + "§cNon hai richieste in sospeso da parte di quel giocatore.");
- } else player.sendMessage(TEAMS_PFX + "§cQuel giocatore non è online.");
- } else player.sendMessage(TEAMS_PFX + "§cNon sei l'owner del team.");
- } else player.sendMessage(TEAMS_PFX + "§cNon sei in un team.");
- break;
- case "kick":
- if (Team.getTeam(player) != null) {
- Team t = Team.getTeam(player);
- if (t.getOwner().equals(player.getName())) {
- if (t.getMembers().contains(args[1].toLowerCase())) {
- Team.removeMember(t.getId(), args[1].toLowerCase());
- player.sendMessage(TEAMS_PFX + "§aHai espulso il giocatore dal team.");
- if (Bukkit.getPlayer(args[1]) != null) {
- Bukkit.getPlayer(args[1]).sendMessage(TEAMS_PFX + "§cSei stato/a espulso/a dal tuo team.");
- }
- } else player.sendMessage(TEAMS_PFX + "§cQuel giocatore non fa parte del tuo team o è l'owner.");
- } else player.sendMessage(TEAMS_PFX + "§cNon sei l'owner di quel team.");
- } else player.sendMessage(TEAMS_PFX + "§cNon sei in un team.");
- break;
- default:
- player.sendMessage(TEAMS_PFX + "§cLa sintassi del comando è errata. Utilizza §f/team help§c.");
- break;
- }
- } else if (args.length >= 3) {
- if (args[0].equalsIgnoreCase("desc")) {
- Team team = Team.getTeam(args[1].toLowerCase());
- if (team != null) {
- if (Team.getTeam(player) == team) {
- if (team.getOwner().equals(player.getName())) {
- StringBuilder sb = new StringBuilder();
- for (int i = 0; i < args.length; i++) {
- if (i == 0 || i == 1)
- continue;
- sb.append(args[i] + " ");
- } Team.setDesc(team.getId(), sb.toString().trim());
- player.sendMessage(TEAMS_PFX + "§aHai modificato la descrizione con successo.");
- } else player.sendMessage(TEAMS_PFX + "§cNon sei l'owner di quel team.");
- } else if (player.hasPermission("teams.admin")) {
- Team.setDesc(team.getId(), args[2]);
- player.sendMessage(TEAMS_PFX + "§aHai modificato la descrizione con successo.");
- } else player.sendMessage(TEAMS_PFX + "§cNon sei in un team.");
- } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
- } else if (args[0].equalsIgnoreCase("name")) {
- Team team = Team.getTeam(args[1].toLowerCase());
- if (team != null) {
- if (Team.getTeam(player) == team) {
- if (team.getOwner().equals(player.getName())) {
- Team.setName(team.getId(), args[2]);
- player.sendMessage(TEAMS_PFX + "§aHai modificato il nome del team con successo.");
- } else player.sendMessage(TEAMS_PFX + "§cNon sei l'owner di quel team.");
- } else if (player.hasPermission("teams.admin")) {
- Team.setName(team.getId(), args[2]);
- player.sendMessage(TEAMS_PFX + "§aHai modificato il nome del team con successo.");
- } else player.sendMessage(TEAMS_PFX + "§cNon sei in un team.");
- } else player.sendMessage(TEAMS_PFX + "§cQuel team non esiste.");
- } else player.sendMessage(TEAMS_PFX + "§cLa sintassi del comando è errata. Utilizza §f/team help§c.");
- } else player.sendMessage(TEAMS_PFX + "§cLa sintassi del comando è errata. Utilizza §f/team help§c.");
- break;
- } return true;
- }
- private static void newRequest(Player player, Team team) {
- pendingRequests.put(player, team);
- Bukkit.getScheduler().runTaskLater(Core.getInstance(), new Runnable() {
- @Override
- public void run() {
- pendingRequests.remove(player);
- }
- }, 2400L);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement