2021-05-22 04:26:48 +00:00
|
|
|
package me.totalfreedom.tfguilds.command;
|
|
|
|
|
2021-11-07 08:50:13 +00:00
|
|
|
import java.util.HashMap;
|
2021-05-22 04:26:48 +00:00
|
|
|
import me.totalfreedom.tfguilds.Common;
|
2021-11-07 08:50:13 +00:00
|
|
|
import me.totalfreedom.tfguilds.TFGuilds;
|
2021-05-22 04:26:48 +00:00
|
|
|
import me.totalfreedom.tfguilds.guild.Guild;
|
|
|
|
import org.bukkit.ChatColor;
|
|
|
|
import org.bukkit.command.CommandSender;
|
|
|
|
import org.bukkit.entity.Player;
|
2021-11-07 08:50:13 +00:00
|
|
|
import org.bukkit.scheduler.BukkitRunnable;
|
2021-05-22 04:26:48 +00:00
|
|
|
|
|
|
|
public class LeaveSubCommand extends Common implements SubCommand
|
|
|
|
{
|
|
|
|
|
2021-11-07 08:50:13 +00:00
|
|
|
private final HashMap<CommandSender, Boolean> confirm = new HashMap<>();
|
|
|
|
|
2021-05-22 04:26:48 +00:00
|
|
|
@Override
|
|
|
|
public void execute(CommandSender sender, Player playerSender, String[] args)
|
|
|
|
{
|
|
|
|
if (!(sender instanceof Player))
|
|
|
|
{
|
|
|
|
sender.sendMessage(IN_GAME_ONLY);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
Guild guild = Guild.getGuild(playerSender);
|
|
|
|
if (guild == null)
|
|
|
|
{
|
|
|
|
sender.sendMessage(NOT_IN_GUILD);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (guild.getOwner().equals(playerSender.getUniqueId()))
|
|
|
|
{
|
|
|
|
sender.sendMessage(PREFIX + "You may not leave your guild as the owner, please disband the guild instead.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2021-11-07 08:50:13 +00:00
|
|
|
if (!confirm.containsKey(sender))
|
|
|
|
{
|
|
|
|
sender.sendMessage(WARN + "Are you sure you want to leave "
|
|
|
|
+ ChatColor.GOLD + guild.getName() + ChatColor.GRAY + "? Type "
|
|
|
|
+ ChatColor.GOLD + "/g leave"
|
|
|
|
+ ChatColor.GRAY + " again within 10 seconds to confirm.");
|
|
|
|
confirm.put(sender, true);
|
|
|
|
new BukkitRunnable()
|
|
|
|
{
|
|
|
|
@Override
|
|
|
|
public void run()
|
|
|
|
{
|
|
|
|
confirm.remove(sender);
|
|
|
|
}
|
|
|
|
}.runTaskLater(TFGuilds.getPlugin(), 10 * 20);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
confirm.remove(sender);
|
|
|
|
guild.removeMember(playerSender);
|
|
|
|
guild.broadcast(PREFIX + ChatColor.GOLD + sender.getName() + ChatColor.GRAY + " has left the guild.");
|
|
|
|
sender.sendMessage(PREFIX + "You have left the guild.");
|
|
|
|
}
|
2021-05-22 04:26:48 +00:00
|
|
|
}
|
|
|
|
}
|