package tv.mineinthebox.essentials.commands;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import tv.mineinthebox.essentials.xEssentials;
import tv.mineinthebox.essentials.enums.PermissionKey;
import tv.mineinthebox.essentials.interfaces.CommandTemplate;
import tv.mineinthebox.essentials.interfaces.XPlayer;
public class CmdFly extends CommandTemplate {
private final xEssentials pl;
public CmdFly(xEssentials pl, Command cmd, CommandSender sender) {
super(pl, cmd, sender);
this.pl = pl;
}
public boolean execute(CommandSender sender, Command cmd, String[] args) {
if(cmd.getName().equalsIgnoreCase("fly")) {
if(sender.hasPermission(PermissionKey.CMD_FLY.getPermission())) {
if(args.length == 0) {
if(sender instanceof Player) {
if(pl.getManagers().getPlayerManager().isOnline(sender.getName())) {
XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(sender.getName());
if(xp.isFlying()) {
sendMessage("successfully disabled fly mode");
xp.setFlying(false);
} else {
sendMessage("successfully enabled fly mode");
xp.setFlying(true);
}
} else {
sendMessage("something went wrong, please reload pl");
}
} else {
getWarning(WarningType.PLAYER_ONLY);
}
} else if(args.length == 1 ) {
if(sender.hasPermission(PermissionKey.IS_ADMIN.getPermission())) {
if(pl.getManagers().getPlayerManager().isEssentialsPlayer(args[0])) {
if(pl.getManagers().getPlayerManager().isOnline(args[0])) {
XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(args[0]);
if(xp.isFlying()) {
sendMessage("you successfully disabled fly for player " + xp.getName());
sendMessageTo(xp.getBukkitPlayer(), sender.getName() + " disabled your fly mode");
xp.setFlying(false);
} else {
sendMessage("you successfully enabled fly for player " + xp.getName());
sendMessageTo(xp.getBukkitPlayer(), sender.getName() + " enabled your fly mode");
xp.setFlying(true);
}
} else {
sendMessage("player not online!");
}
} else {
sendMessage("player does not exist!");
}
}
}
} else {
getWarning(WarningType.NO_PERMISSION);
}
}
return false;
}
}