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

138 lines
4.7 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 = Info.java
* >> Generated by: Citymonstret at 2014-08-09 01:41
*/
package com.intellectualcrafters.plot.commands;
2014-10-08 16:26:46 +02:00
import com.intellectualcrafters.plot.*;
import com.intellectualcrafters.plot.database.DBFunc;
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-08 16:26:46 +02:00
import java.util.ArrayList;
import java.util.UUID;
2014-09-22 13:02:14 +02:00
/**
*
* @author Citymonstret
*
2014-09-22 13:02:14 +02:00
*/
public class Info extends SubCommand {
2014-09-22 13:02:14 +02:00
public Info() {
super(Command.INFO, "Display plot info", "info", CommandCategory.INFO);
}
2014-09-22 13:02:14 +02:00
@Override
public boolean execute(Player player, String... args) {
if (!PlayerFunctions.isInPlot(player)) {
PlayerFunctions.sendMessage(player, C.NOT_IN_PLOT);
return true;
}
2014-09-22 13:02:14 +02:00
// ||
Plot plot = PlayerFunctions.getCurrentPlot(player);
2014-09-22 13:02:14 +02:00
boolean hasOwner = plot.hasOwner();
boolean containsEveryone;
2014-10-01 18:01:41 +10:00
boolean trustedEveryone;
2014-09-22 13:02:14 +02:00
// Wildcard player {added}
{
if (plot.helpers == null) {
2014-09-22 13:02:14 +02:00
containsEveryone = false;
} else {
containsEveryone = plot.helpers.contains(DBFunc.everyone);
}
2014-10-01 18:01:41 +10:00
if (plot.trusted == null) {
trustedEveryone = false;
} else {
trustedEveryone = plot.trusted.contains(DBFunc.everyone);
}
2014-09-22 13:02:14 +02:00
}
// Unclaimed?
2014-10-01 18:01:41 +10:00
if (!hasOwner && !containsEveryone && !trustedEveryone) {
PlayerFunctions.sendMessage(player, C.PLOT_INFO_UNCLAIMED, plot.id.x + ";" + plot.id.y);
2014-09-22 13:02:14 +02:00
return true;
}
new StringBuilder();
2014-09-22 13:02:14 +02:00
String owner = "none";
if (plot.owner != null) {
owner = Bukkit.getOfflinePlayer(plot.owner).getName();
}
if (owner == null) {
owner = plot.owner.toString();
}
2014-09-22 13:02:14 +02:00
String info = C.PLOT_INFO.s();
info = info.replaceAll("%alias%", plot.settings.getAlias().length() > 0 ? plot.settings.getAlias() : "none");
2014-10-08 16:07:35 +11:00
info = info.replaceAll("%id%", plot.id.toString());
info = info.replaceAll("%biome%", getBiomeAt(plot).toString());
info = info.replaceAll("%owner%", owner);
info = info.replaceAll("%time%", plot.settings.getChangeTime() ? plot.settings.getTime() + "" : "default");
info = info.replaceAll("%weather%", plot.settings.getRain() ? "rain" : "default");
info = info.replaceAll("%helpers%", getPlayerList(plot.helpers));
2014-10-01 18:01:41 +10:00
info = info.replaceAll("%trusted%", getPlayerList(plot.trusted));
info = info.replaceAll("%denied%", getPlayerList(plot.denied));
2014-10-02 17:38:31 +02:00
info = info.replaceAll("%rating%", "" + DBFunc.getRatings(plot));
info = info.replaceAll("%flags%", StringUtils.join(plot.settings.getFlags(), "").length() > 0 ? StringUtils.join(plot.settings.getFlags(), ",") : "none");
// 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()) {
list.append(c.replace("%user%", getPlayerName(l.get(x))).replace(",", ""));
} else {
list.append(c.replace("%user%", getPlayerName(l.get(x))));
}
}
return list.toString();
}
private String getPlayerName(UUID uuid) {
if (uuid == null) {
return "unknown";
}
if (uuid.equals(DBFunc.everyone) || uuid.toString().equalsIgnoreCase(DBFunc.everyone.toString())) {
2014-09-22 13:02:14 +02:00
return "everyone";
}
2014-10-08 16:26:46 +02:00
/*
OfflinePlayer plr = Bukkit.getOfflinePlayer(uuid);
2014-10-01 22:35:08 +10:00
if (plr.getName() == null) {
return "unknown";
}
2014-10-08 16:26:46 +02:00
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
}