TFGuilds/src/main/java/me/totalfreedom/tfguilds/command/InviteSubcommand.java

93 lines
3.1 KiB
Java
Raw Normal View History

2020-07-13 00:40:11 +00:00
package me.totalfreedom.tfguilds.command;
import me.totalfreedom.tfguilds.Common;
import me.totalfreedom.tfguilds.guild.Guild;
import me.totalfreedom.tfguilds.guild.GuildState;
import me.totalfreedom.tfguilds.util.GUtil;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitRunnable;
public class InviteSubcommand extends Common implements CommandExecutor
{
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
{
if (sender instanceof ConsoleCommandSender)
{
sender.sendMessage(NO_PERMS);
return true;
}
2020-07-15 00:20:25 +00:00
if (args.length != 2)
{
sender.sendMessage(tl(PREFIX + "Proper usage: /g invite <player>"));
return true;
}
Player player = (Player)sender;
2020-07-13 00:40:11 +00:00
Guild guild = Guild.getGuild(player);
Player invitee = Bukkit.getPlayer(args[1]);
2020-08-26 18:23:26 +00:00
if (invitee == null || plugin.bridge.isVanished(invitee))
2020-07-13 00:40:11 +00:00
{
sender.sendMessage(PNF);
return true;
}
2020-07-13 00:40:11 +00:00
if (Guild.getGuild(invitee) != null)
{
sender.sendMessage(ChatColor.RED + "This player is already in another guild!");
2020-07-15 01:35:02 +00:00
return true;
2020-07-13 00:40:11 +00:00
}
2020-07-13 00:40:11 +00:00
if (guild == null)
{
sender.sendMessage(ChatColor.RED + "You aren't in a guild!");
return true;
}
2020-07-13 00:40:11 +00:00
if (guild.getState() == GuildState.CLOSED)
{
sender.sendMessage(ChatColor.RED + "The guild is currently closed!");
return true;
}
2020-07-13 00:40:11 +00:00
if (guild.getState() == GuildState.OPEN)
{
sender.sendMessage(ChatColor.RED + "The guild is open! Tell your friend to join using \"/g join\"!");
return true;
}
2020-07-13 00:40:11 +00:00
if (INVITES.containsKey(invitee))
{
sender.sendMessage(ChatColor.RED + "They have already been invited to your guild!");
return true;
}
2020-07-13 00:40:11 +00:00
INVITES.put(invitee, guild);
2020-07-16 12:05:07 +00:00
invitee.sendMessage(tl("%p%You have been invited to join %s%" + GUtil.colorize(guild.getName()) + "%p% through %s%" + player.getName() + "%p%'s invite!"));
2020-07-13 00:40:11 +00:00
invitee.sendMessage(tl("%p%Do %s%/g join " + ChatColor.stripColor(GUtil.colorize(guild.getName())) + "%p% to join!"));
invitee.sendMessage(tl("%p%This invite will expire in 90 seconds."));
sender.sendMessage(tl("%p%Invite sent!"));
new BukkitRunnable()
{
public void run()
{
if (!INVITES.containsKey(invitee))
{
2020-07-13 00:40:11 +00:00
return;
}
2020-07-13 00:40:11 +00:00
INVITES.remove(player);
invitee.sendMessage(ChatColor.RED + "Invite expired.");
2020-07-30 02:51:40 +00:00
sender.sendMessage(ChatColor.RED + "It has been 90 seconds and " + invitee.getName() + " did not accept your invitation.");
2020-07-13 00:40:11 +00:00
}
}.runTaskLater(plugin, 20 * 90);
return true;
}
2020-07-30 02:51:40 +00:00
}