TF-PlotSquared/PlotSquared/src/com/intellectualcrafters/plot/commands/Helpers.java

133 lines
5 KiB
Java
Raw Normal View History

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;
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")
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);
if (oplr == null) {
return false;
} else {
return oplr.hasPlayedBefore();
}
2014-09-22 13:02:14 +02:00
} else {
if (plr.isOnline()) {
return true;
} else {
return plr.hasPlayedBefore();
}
2014-09-22 13:02:14 +02: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;
}
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);
if ((plot.owner == null) || !plot.hasRights(plr)) {
2014-09-22 13:02:14 +02:00
PlayerFunctions.sendMessage(plr, C.NO_PERMISSION);
return true;
}
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;
}
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();
} else {
2014-09-22 13:02:14 +02:00
uuid = Bukkit.getOfflinePlayer(args[1]).getUniqueId();
}
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);
} else if (args[0].equalsIgnoreCase("remove")) {
if (args[1].equalsIgnoreCase("*")) {
2014-09-22 13:02:14 +02:00
UUID uuid = DBFunc.everyone;
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;
}
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();
} else {
2014-09-22 13:02:14 +02:00
uuid = Bukkit.getOfflinePlayer(args[1]).getUniqueId();
}
2014-10-06 20:47:43 +11:00
if (uuid == null) {
PlayerFunctions.sendMessage(plr, C.PLAYER_HAS_NOT_BEEN_ON);
return true;
}
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;
}
}