2014-09-22 13:02:14 +02:00
|
|
|
/*
|
|
|
|
* Copyright (c) IntellectualCrafters - 2014.
|
|
|
|
* You are not allowed to distribute and/or monetize any of our intellectual property.
|
|
|
|
* IntellectualCrafters is not affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
|
|
|
*
|
|
|
|
* >> File = Helpers.java
|
|
|
|
* >> Generated by: Citymonstret at 2014-08-09 01:41
|
|
|
|
*/
|
|
|
|
|
|
|
|
package com.intellectualcrafters.plot.commands;
|
|
|
|
|
2014-09-24 22:21:43 +10:00
|
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
import org.bukkit.Bukkit;
|
|
|
|
import org.bukkit.OfflinePlayer;
|
|
|
|
import org.bukkit.entity.Player;
|
|
|
|
|
2014-09-22 13:02:14 +02:00
|
|
|
import com.intellectualcrafters.plot.C;
|
|
|
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
|
|
import com.intellectualcrafters.plot.Plot;
|
|
|
|
import com.intellectualcrafters.plot.database.DBFunc;
|
|
|
|
import com.intellectualcrafters.plot.events.PlayerPlotHelperEvent;
|
|
|
|
|
|
|
|
@SuppressWarnings("deprecation")
|
2014-09-24 22:21:43 +10:00
|
|
|
public class Helpers extends SubCommand {
|
2014-09-22 13:02:14 +02:00
|
|
|
|
|
|
|
public Helpers() {
|
|
|
|
super(Command.HELPERS, "Manage plot helpers", "helpers {add|remove} {player}", CommandCategory.ACTIONS);
|
|
|
|
}
|
|
|
|
|
|
|
|
private boolean hasBeenOnServer(String name) {
|
2014-10-08 16:07:35 +11:00
|
|
|
Player plr = Bukkit.getPlayer(name);
|
2014-10-06 20:47:43 +11:00
|
|
|
if (plr == null) {
|
2014-09-22 13:02:14 +02:00
|
|
|
OfflinePlayer oplr = Bukkit.getOfflinePlayer(name);
|
2014-09-24 22:21:43 +10:00
|
|
|
if (oplr == null) {
|
|
|
|
return false;
|
|
|
|
} else {
|
|
|
|
return oplr.hasPlayedBefore();
|
|
|
|
}
|
2014-09-22 13:02:14 +02:00
|
|
|
} else {
|
2014-09-24 22:21:43 +10:00
|
|
|
if (plr.isOnline()) {
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return plr.hasPlayedBefore();
|
|
|
|
}
|
2014-09-22 13:02:14 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-09-24 22:21:43 +10:00
|
|
|
@Override
|
|
|
|
public boolean execute(Player plr, String... args) {
|
|
|
|
if (args.length < 2) {
|
2014-09-22 13:02:14 +02:00
|
|
|
PlayerFunctions.sendMessage(plr, C.HELPER_NEED_ARGUMENT);
|
|
|
|
return true;
|
|
|
|
}
|
2014-09-24 22:21:43 +10:00
|
|
|
if (!PlayerFunctions.isInPlot(plr)) {
|
2014-09-22 13:02:14 +02:00
|
|
|
PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
Plot plot = PlayerFunctions.getCurrentPlot(plr);
|
2014-09-24 22:21:43 +10:00
|
|
|
if ((plot.owner == null) || !plot.hasRights(plr)) {
|
2014-09-22 13:02:14 +02:00
|
|
|
PlayerFunctions.sendMessage(plr, C.NO_PERMISSION);
|
|
|
|
return true;
|
|
|
|
}
|
2014-09-24 22:21:43 +10:00
|
|
|
if (args[0].equalsIgnoreCase("add")) {
|
|
|
|
if (args[1].equalsIgnoreCase("*")) {
|
2014-09-22 13:02:14 +02:00
|
|
|
UUID uuid = DBFunc.everyone;
|
|
|
|
plot.addHelper(uuid);
|
|
|
|
DBFunc.setHelper(plr.getWorld().getName(), plot, Bukkit.getOfflinePlayer(args[1]));
|
|
|
|
PlayerFunctions.sendMessage(plr, C.HELPER_ADDED);
|
|
|
|
return true;
|
|
|
|
}
|
2014-09-24 22:21:43 +10:00
|
|
|
if (!hasBeenOnServer(args[1])) {
|
2014-09-22 13:02:14 +02:00
|
|
|
PlayerFunctions.sendMessage(plr, C.PLAYER_HAS_NOT_BEEN_ON);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
UUID uuid = null;
|
2014-10-08 16:07:35 +11:00
|
|
|
if ((Bukkit.getPlayer(args[1]) != null)) {
|
|
|
|
uuid = Bukkit.getPlayer(args[1]).getUniqueId();
|
2014-09-24 22:21:43 +10:00
|
|
|
} else {
|
2014-09-22 13:02:14 +02:00
|
|
|
uuid = Bukkit.getOfflinePlayer(args[1]).getUniqueId();
|
2014-09-24 22:21:43 +10:00
|
|
|
}
|
2014-10-06 20:47:43 +11:00
|
|
|
if (uuid == null) {
|
|
|
|
PlayerFunctions.sendMessage(plr, C.PLAYER_HAS_NOT_BEEN_ON);
|
|
|
|
return true;
|
|
|
|
}
|
2014-09-22 13:02:14 +02:00
|
|
|
plot.addHelper(uuid);
|
|
|
|
DBFunc.setHelper(plr.getWorld().getName(), plot, Bukkit.getOfflinePlayer(args[1]));
|
|
|
|
PlayerPlotHelperEvent event = new PlayerPlotHelperEvent(plr, plot, uuid, true);
|
|
|
|
Bukkit.getPluginManager().callEvent(event);
|
|
|
|
PlayerFunctions.sendMessage(plr, C.HELPER_ADDED);
|
2014-09-24 22:21:43 +10:00
|
|
|
} else if (args[0].equalsIgnoreCase("remove")) {
|
|
|
|
if (args[1].equalsIgnoreCase("*")) {
|
2014-09-22 13:02:14 +02:00
|
|
|
UUID uuid = DBFunc.everyone;
|
2014-09-24 22:21:43 +10:00
|
|
|
if (!plot.helpers.contains(uuid)) {
|
2014-09-22 13:02:14 +02:00
|
|
|
PlayerFunctions.sendMessage(plr, C.WAS_NOT_ADDED);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
plot.removeHelper(uuid);
|
|
|
|
DBFunc.removeHelper(plr.getWorld().getName(), plot, Bukkit.getOfflinePlayer(args[1]));
|
|
|
|
PlayerFunctions.sendMessage(plr, C.HELPER_REMOVED);
|
|
|
|
return true;
|
|
|
|
}
|
2014-09-24 22:21:43 +10:00
|
|
|
if (!hasBeenOnServer(args[1])) {
|
2014-09-22 13:02:14 +02:00
|
|
|
PlayerFunctions.sendMessage(plr, C.PLAYER_HAS_NOT_BEEN_ON);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
UUID uuid = null;
|
2014-10-08 16:07:35 +11:00
|
|
|
if (Bukkit.getPlayer(args[1]) != null) {
|
|
|
|
uuid = Bukkit.getPlayer(args[1]).getUniqueId();
|
2014-09-24 22:21:43 +10:00
|
|
|
} else {
|
2014-09-22 13:02:14 +02:00
|
|
|
uuid = Bukkit.getOfflinePlayer(args[1]).getUniqueId();
|
2014-09-24 22:21:43 +10:00
|
|
|
}
|
2014-10-06 20:47:43 +11:00
|
|
|
if (uuid == null) {
|
|
|
|
PlayerFunctions.sendMessage(plr, C.PLAYER_HAS_NOT_BEEN_ON);
|
|
|
|
return true;
|
|
|
|
}
|
2014-09-24 22:21:43 +10:00
|
|
|
if (!plot.helpers.contains(uuid)) {
|
2014-09-22 13:02:14 +02:00
|
|
|
PlayerFunctions.sendMessage(plr, C.WAS_NOT_ADDED);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
plot.removeHelper(uuid);
|
|
|
|
DBFunc.removeHelper(plr.getWorld().getName(), plot, Bukkit.getOfflinePlayer(args[1]));
|
|
|
|
PlayerPlotHelperEvent event = new PlayerPlotHelperEvent(plr, plot, uuid, false);
|
|
|
|
Bukkit.getPluginManager().callEvent(event);
|
|
|
|
PlayerFunctions.sendMessage(plr, C.HELPER_REMOVED);
|
|
|
|
} else {
|
|
|
|
PlayerFunctions.sendMessage(plr, C.HELPER_NEED_ARGUMENT);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
}
|