2014-09-22 13:02:14 +02:00
|
|
|
/*
|
2014-10-12 00:37:36 -07: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 = Info.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
2014-09-22 13:02:14 +02:00
|
|
|
*/
|
|
|
|
|
|
|
|
package com.intellectualcrafters.plot.commands;
|
|
|
|
|
2014-10-19 10:19:38 +02:00
|
|
|
import com.intellectualcrafters.plot.*;
|
|
|
|
import com.intellectualcrafters.plot.database.DBFunc;
|
2014-09-23 12:08:31 +10:00
|
|
|
import org.apache.commons.lang.StringUtils;
|
2014-09-22 13:02:14 +02:00
|
|
|
import org.bukkit.Bukkit;
|
|
|
|
import org.bukkit.Location;
|
|
|
|
import org.bukkit.World;
|
|
|
|
import org.bukkit.block.Biome;
|
|
|
|
import org.bukkit.entity.Player;
|
|
|
|
|
2014-10-19 10:19:38 +02:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.UUID;
|
2014-09-22 13:02:14 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Citymonstret
|
|
|
|
*/
|
2014-09-24 22:21:43 +10:00
|
|
|
public class Info extends SubCommand {
|
2014-09-22 13:02:14 +02:00
|
|
|
|
2014-10-11 00:33:10 -07:00
|
|
|
public Info() {
|
2014-10-18 11:06:29 -07:00
|
|
|
super(Command.INFO, "Display plot info", "info", CommandCategory.INFO, false);
|
2014-10-11 00:33:10 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean execute(Player player, String... args) {
|
2014-10-18 11:06:29 -07:00
|
|
|
|
|
|
|
Plot plot;
|
|
|
|
if (player!=null) {
|
|
|
|
if (!PlayerFunctions.isInPlot(player)) {
|
|
|
|
PlayerFunctions.sendMessage(player, C.NOT_IN_PLOT);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
plot = PlayerFunctions.getCurrentPlot(player);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
if (args.length!=2) {
|
|
|
|
PlayerFunctions.sendMessage(player, C.INFO_SYNTAX_CONSOLE);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
PlotWorld plotworld = PlotMain.getWorldSettings(args[0]);
|
|
|
|
if (plotworld==null) {
|
|
|
|
PlayerFunctions.sendMessage(player, C.NOT_VALID_WORLD);
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
try {
|
|
|
|
String[] split = args[1].split(";");
|
|
|
|
PlotId id = new PlotId(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
|
|
|
|
plot = PlotHelper.getPlot(Bukkit.getWorld(plotworld.worldname), id);
|
|
|
|
if (plot==null) {
|
|
|
|
PlayerFunctions.sendMessage(player, C.NOT_VALID_PLOT_ID);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
catch (Exception e) {
|
|
|
|
PlayerFunctions.sendMessage(player, C.INFO_SYNTAX_CONSOLE);
|
|
|
|
return false;
|
|
|
|
}
|
2014-10-11 00:33:10 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
boolean hasOwner = plot.hasOwner();
|
|
|
|
boolean containsEveryone;
|
|
|
|
boolean trustedEveryone;
|
|
|
|
|
|
|
|
// Wildcard player {added}
|
|
|
|
{
|
|
|
|
if (plot.helpers == null) {
|
|
|
|
containsEveryone = false;
|
2014-10-12 00:37:36 -07:00
|
|
|
}
|
|
|
|
else {
|
2014-10-11 00:33:10 -07:00
|
|
|
containsEveryone = plot.helpers.contains(DBFunc.everyone);
|
|
|
|
}
|
|
|
|
if (plot.trusted == null) {
|
|
|
|
trustedEveryone = false;
|
2014-10-12 00:37:36 -07:00
|
|
|
}
|
|
|
|
else {
|
2014-10-11 00:33:10 -07:00
|
|
|
trustedEveryone = plot.trusted.contains(DBFunc.everyone);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Unclaimed?
|
|
|
|
if (!hasOwner && !containsEveryone && !trustedEveryone) {
|
2014-10-12 00:37:36 -07:00
|
|
|
PlayerFunctions.sendMessage(player, C.PLOT_INFO_UNCLAIMED, plot.id.x + ";" + plot.id.y);
|
2014-10-11 00:33:10 -07:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
new StringBuilder();
|
|
|
|
|
|
|
|
String owner = "none";
|
|
|
|
if (plot.owner != null) {
|
|
|
|
owner = Bukkit.getOfflinePlayer(plot.owner).getName();
|
|
|
|
}
|
|
|
|
if (owner == null) {
|
|
|
|
owner = plot.owner.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
String info = C.PLOT_INFO.s();
|
2014-10-12 00:37:36 -07:00
|
|
|
info = info.replaceAll("%alias%", plot.settings.getAlias().length() > 0 ? plot.settings.getAlias() : "none");
|
2014-10-11 00:33:10 -07:00
|
|
|
info = info.replaceAll("%id%", plot.id.toString());
|
|
|
|
info = info.replaceAll("%biome%", getBiomeAt(plot).toString());
|
|
|
|
info = info.replaceAll("%owner%", owner);
|
|
|
|
info = info.replaceAll("%helpers%", getPlayerList(plot.helpers));
|
|
|
|
info = info.replaceAll("%trusted%", getPlayerList(plot.trusted));
|
|
|
|
info = info.replaceAll("%denied%", getPlayerList(plot.denied));
|
|
|
|
info = info.replaceAll("%rating%", "" + DBFunc.getRatings(plot));
|
2014-10-12 00:37:36 -07:00
|
|
|
info =
|
|
|
|
info.replaceAll("%flags%", StringUtils.join(plot.settings.getFlags(), "").length() > 0
|
|
|
|
? StringUtils.join(plot.settings.getFlags(), ",") : "none");
|
2014-10-11 00:33:10 -07:00
|
|
|
// PlayerFunctions.sendMessage(player,
|
|
|
|
// PlayerFunctions.getTopPlot(player.getWorld(), plot).id.toString());
|
|
|
|
// PlayerFunctions.sendMessage(player,
|
|
|
|
// PlayerFunctions.getBottomPlot(player.getWorld(),
|
|
|
|
// plot).id.toString());
|
|
|
|
PlayerFunctions.sendMessage(player, info);
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
private String getPlayerList(ArrayList<UUID> l) {
|
|
|
|
if ((l == null) || (l.size() < 1)) {
|
|
|
|
return " none";
|
|
|
|
}
|
|
|
|
String c = C.PLOT_USER_LIST.s();
|
|
|
|
StringBuilder list = new StringBuilder();
|
|
|
|
for (int x = 0; x < l.size(); x++) {
|
|
|
|
if ((x + 1) == l.size()) {
|
2014-10-12 00:37:36 -07:00
|
|
|
list.append(c.replace("%user%", getPlayerName(l.get(x))).replace(",", ""));
|
|
|
|
}
|
|
|
|
else {
|
2014-10-11 00:33:10 -07:00
|
|
|
list.append(c.replace("%user%", getPlayerName(l.get(x))));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return list.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
private String getPlayerName(UUID uuid) {
|
|
|
|
if (uuid == null) {
|
|
|
|
return "unknown";
|
|
|
|
}
|
2014-10-12 00:37:36 -07:00
|
|
|
if (uuid.equals(DBFunc.everyone) || uuid.toString().equalsIgnoreCase(DBFunc.everyone.toString())) {
|
2014-10-11 00:33:10 -07:00
|
|
|
return "everyone";
|
|
|
|
}
|
|
|
|
/*
|
|
|
|
* OfflinePlayer plr = Bukkit.getOfflinePlayer(uuid); if (plr.getName()
|
|
|
|
* == null) { return "unknown"; } return plr.getName();
|
|
|
|
*/
|
|
|
|
return UUIDHandler.getName(uuid);
|
|
|
|
}
|
|
|
|
|
|
|
|
private Biome getBiomeAt(Plot plot) {
|
|
|
|
World w = Bukkit.getWorld(plot.world);
|
|
|
|
Location bl = PlotHelper.getPlotTopLoc(w, plot.id);
|
|
|
|
return bl.getBlock().getBiome();
|
|
|
|
}
|
2014-09-22 13:02:14 +02:00
|
|
|
}
|