package it.zerotwo.meridianacore.commands.command; import co.aikar.commands.BaseCommand; import co.aikar.commands.annotation.*; import it.zerotwo.meridianacore.Meridiana; import it.zerotwo.meridianacore.Utils.Invite; import it.zerotwo.meridianacore.Utils.Party; import it.zerotwo.meridianacore.Utils.PartyUtils; import net.md_5.bungee.api.chat.ClickEvent; import net.md_5.bungee.api.chat.HoverEvent; import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.chat.hover.content.Text; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.entity.Player; @CommandAlias("gang|Gang|gangs|Gangs|party") @Description("Meridiana Main") public class GangCommand extends BaseCommand { //provide the plugin private static final Meridiana plugin = Meridiana.getInstance(); @Default public void onCommand(Player player) { player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cUsage: /party [invite, leave, join] ")); } @Subcommand("invite") @CommandCompletion("@users") public void onCinese(Player player, @Single String otherPlayer) { plugin.getLogger().info(otherPlayer); Player mention = Bukkit.getPlayer(otherPlayer); if(mention == null) { player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&cQuesto player non esiste")); return; } if(mention == player) { player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&cNon puoi invitare te stesso")); return; } if (PartyUtils.isInParty(player.getUniqueId())) { if (PartyUtils.findParty(player.getUniqueId()) == PartyUtils.findParty(mention.getUniqueId())) { player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cGia questo player e nel tuo party!")); return; } } Invite invite = new Invite(mention.getUniqueId(), player.getUniqueId()); if (invite.isInvited()) { player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cGia hai invitato questo player!")); return; } else { int seconds = plugin.fetchConfig().getConfig().getInt("invite-expiry"); mention.sendMessage(ChatColor.translateAlternateColorCodes('&', String.format("&bSei stato Invitato &3%s &b Gang, Hai %s secondi per entrare!", mention.getName(), seconds))); TextComponent inviteMessage = new TextComponent(ChatColor.translateAlternateColorCodes('&', String.format( "&7&m-------------------------------------------\n" + "&3%s &bSei stato invitato a joinare la gang! \n&bPer &3%ss&b entrare scrivi &3/gang join %s" + "\n&7&m-------------------------------------------", player.getName(), seconds, player.getName()) )); inviteMessage.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/gang join " + player.getName())); inviteMessage.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new Text(ChatColor.translateAlternateColorCodes('&', "&3Clicca per entrare &b" + player.getName() + "'s &3Party")))); mention.spigot().sendMessage(inviteMessage); invite.create(); } } @Subcommand("join") @CommandCompletion("@users") public void onCinesev2(Player player, @Single String otherPlayer) { Player mentioned = Bukkit.getPlayer(otherPlayer); if(mentioned == null) { player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&cQuesto player non esiste")); return; } Invite invite2 = Invite.findInvite(mentioned.getUniqueId(), player.getUniqueId()); // Already in party if (PartyUtils.isInParty(player.getUniqueId())) { if (PartyUtils.findParty(player.getUniqueId()).getMembers().contains(mentioned.getUniqueId())) { player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&cSei gia in una gang fai /party leave!")); return; } } // If not invited if (invite2 == null) { player.sendMessage(ChatColor.translateAlternateColorCodes('&',"&cNon sei stato invitato in questa gang!")); return; } invite2.accepted(); } @Subcommand("leave") public void ilovechinese(Player player) { if (!PartyUtils.isInParty(player.getUniqueId())) { player.sendMessage(ChatColor.translateAlternateColorCodes('&', "&cDevi essere in un party per poter uscire!")); } Party p = PartyUtils.findParty(player.getUniqueId()); String leaderName = Bukkit.getOfflinePlayer(p.getLeader()).getName(); player.sendMessage(ChatColor.translateAlternateColorCodes('&',String.format("&aHa lasciato &d%s il party di &6!", leaderName))); p.message(ChatColor.translateAlternateColorCodes('&', String.format("&3%s Ha lasciato il &6&oParty!", player.getName())), true); p.leaveParty(player.getUniqueId()); } }