package admincommands;
import org.apache.commons.lang3.math.NumberUtils;
import com.aionemu.gameserver.model.gameobjects.player.Player;
import com.aionemu.gameserver.services.RiftService;
import com.aionemu.gameserver.utils.PacketSendUtility;
import com.aionemu.gameserver.utils.chathandlers.AdminCommand;
public class Rift extends AdminCommand {
private static final String COMMAND_OPEN = "open";
private static final String COMMAND_CLOSE = "close";
public Rift() {
super("rift");
}
@Override
public void execute(Player player, String... params) {
if (params.length == 0) {
showHelp(player);
return;
}
if (COMMAND_CLOSE.equalsIgnoreCase(params[0]) || COMMAND_OPEN.equalsIgnoreCase(params[0])) {
handleRift(player, params);
}
}
protected void handleRift(Player player, String... params) {
if (params.length < 2 || !NumberUtils.isDigits(params[1])) {
showHelp(player);
return;
}
int id = NumberUtils.toInt(params[1]);
boolean result;
if (!isValidId(player, id)) {
showHelp(player);
return;
}
if (COMMAND_OPEN.equalsIgnoreCase(params[0])) {
boolean guards = Boolean.parseBoolean(params[2]);
result = RiftService.getInstance().openRifts(id, guards);
PacketSendUtility.sendMessage(player, result ? "Rifts is opened!" : "Rifts was already opened");
} else if (COMMAND_CLOSE.equalsIgnoreCase(params[0])) {
result = RiftService.getInstance().closeRifts(id);
PacketSendUtility.sendMessage(player, result ? "Rifts is closed!" : "Rifts was already closed");
}
}
protected boolean isValidId(Player player, int id) {
if (!RiftService.getInstance().isValidId(id)) {
PacketSendUtility.sendMessage(player, "Id " + id + " is invalid");
return false;
}
return true;
}
protected void showHelp(Player player) {
PacketSendUtility.sendMessage(player, "AdminCommand //rift open|close <Id|worldId> (open with boolean for guards)");
}
}