mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-29 16:46:45 +01:00
Added nicer plot listing, info and visit
This commit is contained in:
parent
f31b33bbde
commit
699906476c
@ -142,22 +142,25 @@ public class BukkitMain extends JavaPlugin implements Listener, IPlotMain {
|
|||||||
public static BukkitMain THIS = null;
|
public static BukkitMain THIS = null;
|
||||||
public static PlotSquared MAIN = null;
|
public static PlotSquared MAIN = null;
|
||||||
|
|
||||||
public static boolean checkVersion(final int major, final int minor, final int minor2) {
|
private int[] version;
|
||||||
try {
|
|
||||||
final String[] version = Bukkit.getBukkitVersion().split("-")[0].split("\\.");
|
@Override
|
||||||
final int a = Integer.parseInt(version[0]);
|
public boolean checkVersion(final int major, final int minor, final int minor2) {
|
||||||
final int b = Integer.parseInt(version[1]);
|
if (version == null) {
|
||||||
int c = 0;
|
try {
|
||||||
if (version.length == 3) {
|
version = new int[3];
|
||||||
c = Integer.parseInt(version[2]);
|
final String[] split = Bukkit.getBukkitVersion().split("-")[0].split("\\.");
|
||||||
|
version[0] = Integer.parseInt(split[0]);
|
||||||
|
version[1] = Integer.parseInt(split[1]);
|
||||||
|
if (version.length == 3) {
|
||||||
|
version[2] = Integer.parseInt(split[2]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((a > major) || ((a == major) && (b > minor)) || ((a == major) && (b == minor) && (c >= minor2))) {
|
catch (Exception e) {
|
||||||
return true;
|
return false;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
} catch (final Exception e) {
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
return (version[0] > major) || ((version[0] == major) && (version[1] > minor)) || ((version[0] == major) && (version[1] == minor) && (version[2] >= minor2));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -74,4 +74,6 @@ public interface IPlotMain {
|
|||||||
public void registerWorldEvents();
|
public void registerWorldEvents();
|
||||||
|
|
||||||
public PlayerManager initPlayerManager();
|
public PlayerManager initPlayerManager();
|
||||||
|
|
||||||
|
public boolean checkVersion(int major, int minor, int minor2);
|
||||||
}
|
}
|
||||||
|
@ -870,6 +870,7 @@ public class PlotSquared {
|
|||||||
|
|
||||||
// Misc
|
// Misc
|
||||||
options.put("console.color", Settings.CONSOLE_COLOR);
|
options.put("console.color", Settings.CONSOLE_COLOR);
|
||||||
|
options.put("chat.fancy", Settings.FANCY_CHAT);
|
||||||
options.put("metrics", true);
|
options.put("metrics", true);
|
||||||
options.put("debug", true);
|
options.put("debug", true);
|
||||||
options.put("auto_update", false);
|
options.put("auto_update", false);
|
||||||
@ -961,6 +962,14 @@ public class PlotSquared {
|
|||||||
log(C.PREFIX.s() + "&6Debug Mode Enabled (Default). Edit the config to turn this off.");
|
log(C.PREFIX.s() + "&6Debug Mode Enabled (Default). Edit the config to turn this off.");
|
||||||
}
|
}
|
||||||
Settings.CONSOLE_COLOR = config.getBoolean("console.color");
|
Settings.CONSOLE_COLOR = config.getBoolean("console.color");
|
||||||
|
if (!config.getBoolean("chat.fancy") || !IMP.checkVersion(1, 7, 0)) {
|
||||||
|
System.out.print("FANCY CHAT =======================================");
|
||||||
|
System.out.print("FANCY CHAT =======================================");
|
||||||
|
System.out.print("FANCY CHAT =======================================");
|
||||||
|
System.out.print(!config.getBoolean("chat.fancy"));
|
||||||
|
System.out.print(!IMP.checkVersion(1, 7, 0));
|
||||||
|
Settings.FANCY_CHAT = false;
|
||||||
|
}
|
||||||
Settings.METRICS = config.getBoolean("metrics");
|
Settings.METRICS = config.getBoolean("metrics");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,11 +70,11 @@ public class Home extends SubCommand {
|
|||||||
MainUtil.sendMessage(plr, C.NOT_YOUR_PLOT);
|
MainUtil.sendMessage(plr, C.NOT_YOUR_PLOT);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
MainUtil.sendMessage(plr, C.NOT_VALID_NUMBER);
|
MainUtil.sendMessage(plr, C.NOT_VALID_NUMBER, "(1, " + plots.size() + ")");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if ((id > (plots.size())) || (id < 1)) {
|
if ((id > (plots.size())) || (id < 1)) {
|
||||||
MainUtil.sendMessage(plr, C.NOT_VALID_NUMBER);
|
MainUtil.sendMessage(plr, C.NOT_VALID_NUMBER, "(1, " + plots.size() + ")");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
MainUtil.teleportPlayer(plr, plr.getLocation(), plots.get(id - 1));
|
MainUtil.teleportPlayer(plr, plr.getLocation(), plots.get(id - 1));
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
@ -53,46 +54,35 @@ public class Info extends SubCommand {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean execute(final PlotPlayer player, String... args) {
|
public boolean execute(final PlotPlayer player, String... args) {
|
||||||
Plot plot;
|
String arg = null;
|
||||||
String world;
|
if (args.length > 0) arg = args[0] + "";
|
||||||
if (player != null) {
|
switch (arg) {
|
||||||
final Location loc = player.getLocation();
|
case "trusted":
|
||||||
world = loc.getWorld();
|
case "alias":
|
||||||
if (!PlotSquared.isPlotWorld(world)) {
|
case "biome":
|
||||||
MainUtil.sendMessage(player, C.NOT_IN_PLOT_WORLD);
|
case "denied":
|
||||||
|
case "flags":
|
||||||
|
case "id":
|
||||||
|
case "size":
|
||||||
|
case "members":
|
||||||
|
case "owner":
|
||||||
|
case "rating":
|
||||||
|
arg = null;
|
||||||
|
}
|
||||||
|
Plot plot = MainUtil.getPlotFromString(player, arg, true);
|
||||||
|
if (plot == null) {
|
||||||
|
if (player == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
plot = MainUtil.getPlot(loc);
|
MainUtil.sendMessage(player, C.NOT_IN_PLOT);
|
||||||
if (plot == null) {
|
return false;
|
||||||
return !sendMessage(player, C.NOT_IN_PLOT);
|
}
|
||||||
|
if (arg != null) {
|
||||||
|
if (args.length == 1) {
|
||||||
|
args = new String[0];
|
||||||
}
|
}
|
||||||
} else {
|
else {
|
||||||
if (args.length < 2) {
|
args = new String[] { args[1] };
|
||||||
MainUtil.sendMessage(null, C.INFO_SYNTAX_CONSOLE);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
final PlotWorld plotworld = PlotSquared.getPlotWorld(args[0]);
|
|
||||||
if (plotworld == null) {
|
|
||||||
MainUtil.sendMessage(player, C.NOT_VALID_WORLD);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
final String[] split = args[1].split(";");
|
|
||||||
final PlotId id = new PlotId(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
|
|
||||||
plot = MainUtil.getPlot(plotworld.worldname, id);
|
|
||||||
if (plot == null) {
|
|
||||||
MainUtil.sendMessage(player, C.NOT_VALID_PLOT_ID);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
world = args[0];
|
|
||||||
if (args.length == 3) {
|
|
||||||
args = new String[] { args[2] };
|
|
||||||
} else {
|
|
||||||
args = new String[0];
|
|
||||||
}
|
|
||||||
} catch (final Exception e) {
|
|
||||||
MainUtil.sendMessage(player, C.INFO_SYNTAX_CONSOLE);
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((args.length == 1) && args[0].equalsIgnoreCase("inv")) {
|
if ((args.length == 1) && args[0].equalsIgnoreCase("inv")) {
|
||||||
@ -127,7 +117,7 @@ public class Info extends SubCommand {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
formatAndSend(info, world, plot, player);
|
formatAndSend(info, plot.world, plot, player);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,10 +199,10 @@ public class Info extends SubCommand {
|
|||||||
MainUtil.sendMessage(player, info, false);
|
MainUtil.sendMessage(player, info, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getPlayerList(final Collection<UUID> uuids) {
|
public static String getPlayerList(final Collection<UUID> uuids) {
|
||||||
ArrayList<UUID> l = new ArrayList<>(uuids);
|
ArrayList<UUID> l = new ArrayList<>(uuids);
|
||||||
if ((l == null) || (l.size() < 1)) {
|
if ((l == null) || (l.size() < 1)) {
|
||||||
return " none";
|
return C.NONE.s();
|
||||||
}
|
}
|
||||||
final String c = C.PLOT_USER_LIST.s();
|
final String c = C.PLOT_USER_LIST.s();
|
||||||
final StringBuilder list = new StringBuilder();
|
final StringBuilder list = new StringBuilder();
|
||||||
@ -226,7 +216,7 @@ public class Info extends SubCommand {
|
|||||||
return list.toString();
|
return list.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getPlayerName(final UUID uuid) {
|
public static String getPlayerName(final UUID uuid) {
|
||||||
if (uuid == null) {
|
if (uuid == null) {
|
||||||
return "unknown";
|
return "unknown";
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ public class RegenAllRoads extends SubCommand {
|
|||||||
height = Integer.parseInt(args[1]);
|
height = Integer.parseInt(args[1]);
|
||||||
}
|
}
|
||||||
catch (NumberFormatException e) {
|
catch (NumberFormatException e) {
|
||||||
sendMessage(player, C.NOT_VALID_NUMBER);
|
sendMessage(player, C.NOT_VALID_NUMBER, "(0, 256)");
|
||||||
sendMessage(player, C.COMMAND_SYNTAX, "/plot regenallroads <world> [height]");
|
sendMessage(player, C.COMMAND_SYNTAX, "/plot regenallroads <world> [height]");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -27,8 +27,10 @@ import java.util.UUID;
|
|||||||
import com.intellectualcrafters.plot.PlotSquared;
|
import com.intellectualcrafters.plot.PlotSquared;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
|
import com.intellectualcrafters.plot.object.PlotId;
|
||||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
import com.intellectualcrafters.plot.util.MainUtil;
|
import com.intellectualcrafters.plot.util.MainUtil;
|
||||||
|
import com.intellectualcrafters.plot.util.Permissions;
|
||||||
import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
|
import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
|
||||||
|
|
||||||
public class Visit extends SubCommand {
|
public class Visit extends SubCommand {
|
||||||
@ -49,31 +51,105 @@ public class Visit extends SubCommand {
|
|||||||
@Override
|
@Override
|
||||||
public boolean execute(final PlotPlayer plr, final String... args) {
|
public boolean execute(final PlotPlayer plr, final String... args) {
|
||||||
if (args.length < 1) {
|
if (args.length < 1) {
|
||||||
return sendMessage(plr, C.NEED_USER);
|
return sendMessage(plr, C.COMMAND_SYNTAX, "/plot visit <player|alias|world|id> [#]");
|
||||||
}
|
}
|
||||||
final String username = args[0];
|
ArrayList<Plot> plots = new ArrayList<>();
|
||||||
final UUID uuid = UUIDHandler.getUUID(username);
|
UUID user = UUIDHandler.getUUID(args[0]);
|
||||||
List<Plot> plots = null;
|
if (user != null ) {
|
||||||
if (uuid != null) {
|
// do plots by username
|
||||||
plots = PlotSquared.sortPlotsByWorld(getPlots(uuid));
|
plots.addAll(PlotSquared.getPlots(user));
|
||||||
}
|
}
|
||||||
if ((uuid == null) || plots.isEmpty()) {
|
else if (PlotSquared.isPlotWorld(args[0])) {
|
||||||
return sendMessage(plr, C.FOUND_NO_PLOTS);
|
// do plots by world
|
||||||
|
plots.addAll(PlotSquared.getPlots(args[0]).values());
|
||||||
}
|
}
|
||||||
if (args.length < 2) {
|
else {
|
||||||
MainUtil.teleportPlayer(plr, plr.getLocation(), plots.get(0));
|
Plot plot = MainUtil.getPlotFromString(plr, args[0], false);
|
||||||
return true;
|
if (plot == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
plots.add(plot);
|
||||||
}
|
}
|
||||||
int i;
|
if (plots.size() == 0) {
|
||||||
try {
|
sendMessage(plr, C.FOUND_NO_PLOTS);
|
||||||
i = Integer.parseInt(args[1]);
|
return false;
|
||||||
} catch (final Exception e) {
|
|
||||||
return sendMessage(plr, C.NOT_VALID_NUMBER);
|
|
||||||
}
|
}
|
||||||
if ((i < 1) || (i > plots.size())) {
|
int index = 0;
|
||||||
return sendMessage(plr, C.NOT_VALID_NUMBER);
|
if (args.length == 2) {
|
||||||
|
try {
|
||||||
|
index = Integer.parseInt(args[1]) - 1;
|
||||||
|
if (index < 0 || index >= plots.size()) {
|
||||||
|
sendMessage(plr, C.NOT_VALID_NUMBER, "(1, " + plots.size() + ")");
|
||||||
|
sendMessage(plr, C.COMMAND_SYNTAX, "/plot visit " + args[0] + " [#]");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e) {
|
||||||
|
sendMessage(plr, C.NOT_VALID_NUMBER, "(1, " + plots.size() + ")");
|
||||||
|
sendMessage(plr, C.COMMAND_SYNTAX, "/plot visit " + args[0] + " [#]");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
MainUtil.teleportPlayer(plr, plr.getLocation(), plots.get(i - 1));
|
|
||||||
|
Plot plot = plots.get(index);
|
||||||
|
if (!plot.hasOwner()) {
|
||||||
|
if (!Permissions.hasPermission(plr, "plots.visit.unowned")) {
|
||||||
|
sendMessage(plr, C.NO_PERMISSION, "plots.visit.unowned");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (plot.isOwner(plr.getUUID())) {
|
||||||
|
if (!Permissions.hasPermission(plr, "plots.visit.owned") && !Permissions.hasPermission(plr, "plots.home")) {
|
||||||
|
sendMessage(plr, C.NO_PERMISSION, "plots.visit.unowned, plots.home");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (plot.isAdded(plr.getUUID())) {
|
||||||
|
if (!Permissions.hasPermission(plr, "plots.visit.shared")) {
|
||||||
|
sendMessage(plr, C.NO_PERMISSION, "plots.visit.shared");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (!Permissions.hasPermission(plr, "plots.visit.other")) {
|
||||||
|
sendMessage(plr, C.NO_PERMISSION, "plots.visit.other");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MainUtil.teleportPlayer(plr, plr.getLocation(), plots.get(index));
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
//
|
||||||
|
// // from alias
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// id = PlotId.fromString(args[0]);
|
||||||
|
//
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// final String username = args[0];
|
||||||
|
// final UUID uuid = UUIDHandler.getUUID(username);
|
||||||
|
// List<Plot> plots = null;
|
||||||
|
// if (uuid != null) {
|
||||||
|
// plots = PlotSquared.sortPlotsByWorld(getPlots(uuid));
|
||||||
|
// }
|
||||||
|
// if ((uuid == null) || plots.isEmpty()) {
|
||||||
|
// return sendMessage(plr, C.FOUND_NO_PLOTS);
|
||||||
|
// }
|
||||||
|
// if (args.length < 2) {
|
||||||
|
// MainUtil.teleportPlayer(plr, plr.getLocation(), plots.get(0));
|
||||||
|
// return true;
|
||||||
|
// }
|
||||||
|
// int i;
|
||||||
|
// try {
|
||||||
|
// i = Integer.parseInt(args[1]);
|
||||||
|
// } catch (final Exception e) {
|
||||||
|
// return sendMessage(plr, C.NOT_VALID_NUMBER);
|
||||||
|
// }
|
||||||
|
// if ((i < 1) || (i > plots.size())) {
|
||||||
|
// return sendMessage(plr, C.NOT_VALID_NUMBER);
|
||||||
|
// }
|
||||||
|
// MainUtil.teleportPlayer(plr, plr.getLocation(), plots.get(i - 1));
|
||||||
|
// return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,10 +27,15 @@ import java.util.List;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotSquared;
|
import com.intellectualcrafters.plot.PlotSquared;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
|
import com.intellectualcrafters.plot.config.Settings;
|
||||||
import com.intellectualcrafters.plot.flag.Flag;
|
import com.intellectualcrafters.plot.flag.Flag;
|
||||||
import com.intellectualcrafters.plot.flag.FlagManager;
|
import com.intellectualcrafters.plot.flag.FlagManager;
|
||||||
|
import com.intellectualcrafters.plot.object.BukkitPlayer;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
import com.intellectualcrafters.plot.util.EconHandler;
|
import com.intellectualcrafters.plot.util.EconHandler;
|
||||||
@ -38,6 +43,7 @@ import com.intellectualcrafters.plot.util.MainUtil;
|
|||||||
import com.intellectualcrafters.plot.util.Permissions;
|
import com.intellectualcrafters.plot.util.Permissions;
|
||||||
import com.intellectualcrafters.plot.util.StringComparison;
|
import com.intellectualcrafters.plot.util.StringComparison;
|
||||||
import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
|
import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
|
||||||
|
import com.intellectualcrafters.plot.util.bukkit.chat.FancyMessage;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -239,11 +245,11 @@ public class list extends SubCommand {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
displayPlots(plr, plots, 12, page, world);
|
displayPlots(plr, plots, 12, page, world, args);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void displayPlots(PlotPlayer player, Collection<Plot> oldPlots, int pageSize, int page, String world) {
|
public void displayPlots(PlotPlayer player, Collection<Plot> oldPlots, int pageSize, int page, String world, String[] args) {
|
||||||
List<Plot> plots;
|
List<Plot> plots;
|
||||||
if (world != null) {
|
if (world != null) {
|
||||||
plots = PlotSquared.sortPlots(oldPlots, world);
|
plots = PlotSquared.sortPlots(oldPlots, world);
|
||||||
@ -264,20 +270,179 @@ public class list extends SubCommand {
|
|||||||
max = plots.size();
|
max = plots.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
plots = plots.subList(page * pageSize, max);
|
List<Plot> subList = plots.subList(page * pageSize, max);
|
||||||
|
|
||||||
|
// Header
|
||||||
|
String header = C.PLOT_LIST_HEADER_PAGED.s()
|
||||||
final StringBuilder string = new StringBuilder();
|
.replaceAll("%cur", page + 1 + "")
|
||||||
string.append(C.PLOT_LIST_HEADER_PAGED.s().replaceAll("%cur", page + 1 + "").replaceAll("%max", totalPages + 1 + "").replaceAll("%word%", "all")).append("\n");
|
.replaceAll("%max", totalPages + 1 + "")
|
||||||
Plot p;
|
.replaceAll("%amount%", plots.size() + "")
|
||||||
// This might work xD
|
.replaceAll("%word%", "all");
|
||||||
for (int x = (page * 12); x < max; x++) {
|
MainUtil.sendMessage(player, header);
|
||||||
p = (Plot) plots.toArray()[x];
|
|
||||||
string.append(C.PLOT_LIST_ITEM_ORDERED.s().replaceAll("%in", x + 1 + "").replaceAll("%id", p.id.toString()).replaceAll("%world", p.world).replaceAll("%owner", getName(p.owner))).append("\n");
|
int i = page * pageSize;
|
||||||
|
for (Plot plot : subList) {
|
||||||
|
if (plot.settings.isMerged()) {
|
||||||
|
if (!MainUtil.getBottomPlot(plot).equals(plot)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
if (Settings.FANCY_CHAT) {
|
||||||
|
ChatColor color;
|
||||||
|
if (player == null) {
|
||||||
|
color = ChatColor.GOLD;
|
||||||
|
}
|
||||||
|
else if (plot.isOwner(player.getUUID())) {
|
||||||
|
color = ChatColor.BLUE;
|
||||||
|
}
|
||||||
|
else if (plot.isAdded(player.getUUID())) {
|
||||||
|
color = ChatColor.DARK_GREEN;
|
||||||
|
}
|
||||||
|
else if (plot.isDenied(player.getUUID())) {
|
||||||
|
color = ChatColor.RED;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
color = ChatColor.GOLD;
|
||||||
|
}
|
||||||
|
FancyMessage trusted =
|
||||||
|
new FancyMessage(
|
||||||
|
ChatColor.stripColor(
|
||||||
|
ChatColor.translateAlternateColorCodes('&',
|
||||||
|
C.PLOT_INFO_TRUSTED.s().replaceAll("%trusted%", Info.getPlayerList(plot.trusted)))))
|
||||||
|
.color(ChatColor.GOLD);
|
||||||
|
|
||||||
|
FancyMessage members =
|
||||||
|
new FancyMessage(
|
||||||
|
ChatColor.stripColor(
|
||||||
|
ChatColor.translateAlternateColorCodes('&',
|
||||||
|
C.PLOT_INFO_MEMBERS.s().replaceAll("%members%", Info.getPlayerList(plot.members)))))
|
||||||
|
.color(ChatColor.GOLD);
|
||||||
|
String strFlags = StringUtils.join(plot.settings.flags.values(), ",");
|
||||||
|
if (strFlags.length() == 0) {
|
||||||
|
strFlags = C.NONE.s();
|
||||||
|
}
|
||||||
|
FancyMessage flags =
|
||||||
|
new FancyMessage(
|
||||||
|
ChatColor.stripColor(
|
||||||
|
ChatColor.translateAlternateColorCodes('&',
|
||||||
|
C.PLOT_INFO_FLAGS.s().replaceAll("%flags%", strFlags))))
|
||||||
|
.color(ChatColor.GOLD);
|
||||||
|
|
||||||
|
FancyMessage message = new FancyMessage("")
|
||||||
|
.then("[")
|
||||||
|
.color(ChatColor.DARK_GRAY)
|
||||||
|
.then(i + "")
|
||||||
|
.command("/plot visit " + plot.toString())
|
||||||
|
.tooltip("/plot visit " + plot.toString())
|
||||||
|
.color(ChatColor.GOLD)
|
||||||
|
.then("]")
|
||||||
|
|
||||||
|
// teleport tooltip
|
||||||
|
|
||||||
|
.color(ChatColor.DARK_GRAY)
|
||||||
|
.then(" " + plot.toString())
|
||||||
|
|
||||||
|
.formattedTooltip(trusted, members, flags)
|
||||||
|
.command("/plot info " + plot.toString())
|
||||||
|
|
||||||
|
.color(color)
|
||||||
|
.then(" - ")
|
||||||
|
.color(ChatColor.GRAY);
|
||||||
|
String prefix = "";
|
||||||
|
for (UUID uuid : plot.getOwners()) {
|
||||||
|
String name = UUIDHandler.getName(uuid);
|
||||||
|
if (name == null) {
|
||||||
|
message = message
|
||||||
|
.then(prefix)
|
||||||
|
.color(ChatColor.DARK_GRAY)
|
||||||
|
.then("unknown")
|
||||||
|
.color(ChatColor.GRAY)
|
||||||
|
.tooltip(uuid.toString())
|
||||||
|
.suggest(uuid.toString());
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PlotPlayer pp = UUIDHandler.getPlayer(uuid);
|
||||||
|
if (pp != null) {
|
||||||
|
message = message
|
||||||
|
.then(prefix)
|
||||||
|
.color(ChatColor.DARK_GRAY)
|
||||||
|
.then(name).color(ChatColor.GOLD)
|
||||||
|
.formattedTooltip(new FancyMessage("Online").color(ChatColor.DARK_GREEN));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
message = message
|
||||||
|
.then(prefix)
|
||||||
|
.color(ChatColor.DARK_GRAY)
|
||||||
|
.then(name).color(ChatColor.GOLD)
|
||||||
|
.formattedTooltip(new FancyMessage("Offline").color(ChatColor.RED));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
prefix = ", ";
|
||||||
|
}
|
||||||
|
message.send(((BukkitPlayer) player).player);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
String message = C.PLOT_LIST_ITEM.s()
|
||||||
|
.replaceAll("%in", i + 1 + "")
|
||||||
|
.replaceAll("%id", plot.id.toString())
|
||||||
|
.replaceAll("%world", plot.world)
|
||||||
|
.replaceAll("%owner", getName(plot.owner))
|
||||||
|
|
||||||
|
// Unused
|
||||||
|
|
||||||
|
.replaceAll("%trusted%", "")
|
||||||
|
.replaceAll("%members%", "")
|
||||||
|
.replaceAll("%tp%", "");
|
||||||
|
MainUtil.sendMessage(player, message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Settings.FANCY_CHAT) {
|
||||||
|
if (page < totalPages && page > 0) {
|
||||||
|
// back | next
|
||||||
|
new FancyMessage("")
|
||||||
|
.then("<-")
|
||||||
|
.color(ChatColor.GOLD)
|
||||||
|
.command("/plot list " + args[0] + " " + (page))
|
||||||
|
.then(" | ")
|
||||||
|
.color(ChatColor.DARK_GRAY)
|
||||||
|
.then("->")
|
||||||
|
.color(ChatColor.GOLD)
|
||||||
|
.command("/plot list " + args[0] + " " + (page + 2))
|
||||||
|
.send(((BukkitPlayer) player).player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (page == 0) {
|
||||||
|
// next
|
||||||
|
new FancyMessage("")
|
||||||
|
.then("<-")
|
||||||
|
.color(ChatColor.DARK_GRAY)
|
||||||
|
.then(" | ")
|
||||||
|
.color(ChatColor.DARK_GRAY)
|
||||||
|
.then("->")
|
||||||
|
.color(ChatColor.GOLD)
|
||||||
|
.command("/plot list " + args[0] + " " + (page + 2))
|
||||||
|
.send(((BukkitPlayer) player).player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (page == totalPages) {
|
||||||
|
// back
|
||||||
|
new FancyMessage("")
|
||||||
|
.then("<-")
|
||||||
|
.color(ChatColor.GOLD)
|
||||||
|
.command("/plot list " + args[0] + " " + (page))
|
||||||
|
.then(" | ")
|
||||||
|
.color(ChatColor.DARK_GRAY)
|
||||||
|
.then("->")
|
||||||
|
.color(ChatColor.DARK_GRAY)
|
||||||
|
.send(((BukkitPlayer) player).player);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
String footer = C.PLOT_LIST_FOOTER.s().replaceAll("%word%", "There is").replaceAll("%num%", plots.size() + "").replaceAll("%plot%", plots.size() == 1 ? "plot" : "plots");
|
||||||
|
MainUtil.sendMessage(player, footer);
|
||||||
}
|
}
|
||||||
string.append(C.PLOT_LIST_FOOTER.s().replaceAll("%word%", "There is").replaceAll("%num%", plots.size() + "").replaceAll("%plot%", plots.size() == 1 ? "plot" : "plots"));
|
|
||||||
MainUtil.sendMessage(player, string.toString());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getArgumentList(final String[] strings) {
|
private String getArgumentList(final String[] strings) {
|
||||||
|
@ -322,7 +322,7 @@ public enum C {
|
|||||||
*/
|
*/
|
||||||
NOT_VALID_DATA("$2That's not a valid data id.", "Invalid"),
|
NOT_VALID_DATA("$2That's not a valid data id.", "Invalid"),
|
||||||
NOT_VALID_BLOCK("$2That's not a valid block.", "Invalid"),
|
NOT_VALID_BLOCK("$2That's not a valid block.", "Invalid"),
|
||||||
NOT_VALID_NUMBER("$2That's not a valid number", "Invalid"),
|
NOT_VALID_NUMBER("$2That's not a valid number within the range: %s", "Invalid"),
|
||||||
NOT_VALID_PLOT_ID("$2That's not a valid plot id.", "Invalid"),
|
NOT_VALID_PLOT_ID("$2That's not a valid plot id.", "Invalid"),
|
||||||
PLOT_ID_FORM("$2The plot id must be in the form: $1X;Y $2e.g. $1-5;7", "Invalid"),
|
PLOT_ID_FORM("$2The plot id must be in the form: $1X;Y $2e.g. $1-5;7", "Invalid"),
|
||||||
NOT_YOUR_PLOT("$2That is not your plot.", "Invalid"),
|
NOT_YOUR_PLOT("$2That is not your plot.", "Invalid"),
|
||||||
@ -345,6 +345,7 @@ public enum C {
|
|||||||
/*
|
/*
|
||||||
* Info
|
* Info
|
||||||
*/
|
*/
|
||||||
|
NONE("None", "Info"),
|
||||||
PLOT_UNOWNED("$2The current plot must have an owner to perform this action", "Info"),
|
PLOT_UNOWNED("$2The current plot must have an owner to perform this action", "Info"),
|
||||||
PLOT_INFO_UNCLAIMED("$2Plot $1%s$2 is not yet claimed", "Info"),
|
PLOT_INFO_UNCLAIMED("$2Plot $1%s$2 is not yet claimed", "Info"),
|
||||||
PLOT_INFO_HEADER("$3====== $1INFO $3======", false, "Info"),
|
PLOT_INFO_HEADER("$3====== $1INFO $3======", false, "Info"),
|
||||||
@ -360,7 +361,7 @@ public enum C {
|
|||||||
PLOT_INFO_ALIAS("$1Alias:$2 %alias%", "Info"),
|
PLOT_INFO_ALIAS("$1Alias:$2 %alias%", "Info"),
|
||||||
PLOT_INFO_SIZE("$1Size:$2 %size%", "Info"),
|
PLOT_INFO_SIZE("$1Size:$2 %size%", "Info"),
|
||||||
PLOT_USER_LIST(" $1%user%$2,", "Info"),
|
PLOT_USER_LIST(" $1%user%$2,", "Info"),
|
||||||
INFO_SYNTAX_CONSOLE("$2/plot info <world> X;Y", "Info"),
|
INFO_SYNTAX_CONSOLE("$2/plot info X;Y", "Info"),
|
||||||
/*
|
/*
|
||||||
* Generating
|
* Generating
|
||||||
*/
|
*/
|
||||||
@ -379,7 +380,7 @@ public enum C {
|
|||||||
/*
|
/*
|
||||||
* List
|
* List
|
||||||
*/
|
*/
|
||||||
PLOT_LIST_HEADER_PAGED("$2(Page $1%cur$2/$1%max$2) $1List of %word% plots", "List"),
|
PLOT_LIST_HEADER_PAGED("$2(Page $1%cur$2/$1%max$2) $1List of %amount% plots", "List"),
|
||||||
PLOT_LIST_HEADER("$1List of %word% plots", "List"),
|
PLOT_LIST_HEADER("$1List of %word% plots", "List"),
|
||||||
PLOT_LIST_ITEM("$2>> $1%id$2:$1%world $2- $1%owner", "List"),
|
PLOT_LIST_ITEM("$2>> $1%id$2:$1%world $2- $1%owner", "List"),
|
||||||
PLOT_LIST_ITEM_ORDERED("$2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner", "List"),
|
PLOT_LIST_ITEM_ORDERED("$2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner", "List"),
|
||||||
|
@ -137,6 +137,10 @@ public class Settings {
|
|||||||
* Have colored console messages?
|
* Have colored console messages?
|
||||||
*/
|
*/
|
||||||
public static boolean CONSOLE_COLOR = true;
|
public static boolean CONSOLE_COLOR = true;
|
||||||
|
/**
|
||||||
|
* Fancy chat e.g. for /plot list
|
||||||
|
*/
|
||||||
|
public static boolean FANCY_CHAT = true;
|
||||||
/**
|
/**
|
||||||
* The delay (in seconds) before teleportation commences
|
* The delay (in seconds) before teleportation commences
|
||||||
*/
|
*/
|
||||||
|
@ -262,7 +262,7 @@ public class Plot implements Cloneable {
|
|||||||
public void removeTrusted(final UUID uuid) {
|
public void removeTrusted(final UUID uuid) {
|
||||||
this.members.remove(uuid);
|
this.members.remove(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(final Object obj) {
|
public boolean equals(final Object obj) {
|
||||||
if (this == obj) {
|
if (this == obj) {
|
||||||
|
@ -232,7 +232,7 @@ public class ExpireManager {
|
|||||||
final String worldname = Bukkit.getWorlds().get(0).getName();
|
final String worldname = Bukkit.getWorlds().get(0).getName();
|
||||||
String foldername;
|
String foldername;
|
||||||
String filename = null;
|
String filename = null;
|
||||||
if (BukkitMain.checkVersion(1, 7, 5)) {
|
if (PlotSquared.IMP.checkVersion(1, 7, 5)) {
|
||||||
foldername = "playerdata";
|
foldername = "playerdata";
|
||||||
try {
|
try {
|
||||||
final OfflinePlotPlayer op = UUIDHandler.uuidWrapper.getOfflinePlayer(uuid);
|
final OfflinePlotPlayer op = UUIDHandler.uuidWrapper.getOfflinePlayer(uuid);
|
||||||
|
@ -73,6 +73,63 @@ public class MainUtil {
|
|||||||
return new Location(plot.world, bot.getX() + (top.getX() - bot.getX()) / 2, 0, bot.getZ() + (top.getZ() - bot.getZ()) / 2);
|
return new Location(plot.world, bot.getX() + (top.getX() - bot.getX()) / 2, 0, bot.getZ() + (top.getZ() - bot.getZ()) / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Plot getPlotFromString(PlotPlayer player, String arg, boolean message) {
|
||||||
|
if (arg == null) {
|
||||||
|
if (player == null) {
|
||||||
|
if (message) MainUtil.sendMessage(player, C.NOT_VALID_PLOT_WORLD);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return getPlot(player.getLocation());
|
||||||
|
}
|
||||||
|
String worldname = null;
|
||||||
|
PlotId id = null;
|
||||||
|
if (player != null) {
|
||||||
|
worldname = player.getLocation().getWorld();
|
||||||
|
}
|
||||||
|
String[] split = arg.split(";|,");
|
||||||
|
if (split.length == 3) {
|
||||||
|
worldname = split[0];
|
||||||
|
id = PlotId.fromString(split[1] + ";" + split[2]);
|
||||||
|
}
|
||||||
|
else if (split.length == 2) {
|
||||||
|
id = PlotId.fromString(arg);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (worldname == null) {
|
||||||
|
if (PlotSquared.getPlotWorlds().size() == 0) {
|
||||||
|
if (message) MainUtil.sendMessage(player, C.NOT_VALID_PLOT_WORLD);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
worldname = PlotSquared.getPlotWorlds().iterator().next();
|
||||||
|
}
|
||||||
|
for (Plot p : PlotSquared.getPlots(worldname).values()) {
|
||||||
|
String name = p.settings.getAlias();
|
||||||
|
if (name.length() != 0 && name.equalsIgnoreCase(arg)) {
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (String world : PlotSquared.getPlotWorlds()) {
|
||||||
|
if (!world.endsWith(worldname)) {
|
||||||
|
for (Plot p : PlotSquared.getPlots(world).values()) {
|
||||||
|
String name = p.settings.getAlias();
|
||||||
|
if (name.length() != 0 && name.equalsIgnoreCase(arg)) {
|
||||||
|
return p;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (worldname == null || !PlotSquared.isPlotWorld(worldname)) {
|
||||||
|
if (message) MainUtil.sendMessage(player, C.NOT_VALID_PLOT_WORLD);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (id == null) {
|
||||||
|
if (message) MainUtil.sendMessage(player, C.NOT_VALID_PLOT_ID);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return getPlot(worldname, id);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Merges all plots in the arraylist (with cost)
|
* Merges all plots in the arraylist (with cost)
|
||||||
*
|
*
|
||||||
|
@ -222,19 +222,24 @@ public class UUIDHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static String getName(final UUID uuid) {
|
public static String getName(final UUID uuid) {
|
||||||
|
System.out.print(uuid);
|
||||||
if (uuid == null) {
|
if (uuid == null) {
|
||||||
|
System.out.print(1);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
// check online
|
// check online
|
||||||
final PlotPlayer player = UUIDHandler.getPlayer(uuid);
|
final PlotPlayer player = UUIDHandler.getPlayer(uuid);
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
|
System.out.print(2);
|
||||||
return player.getName();
|
return player.getName();
|
||||||
}
|
}
|
||||||
// check cache
|
// check cache
|
||||||
final StringWrapper name = UUIDHandler.uuidMap.inverse().get(uuid);
|
final StringWrapper name = UUIDHandler.uuidMap.inverse().get(uuid);
|
||||||
if (name != null) {
|
if (name != null) {
|
||||||
|
System.out.print(3);
|
||||||
return name.value;
|
return name.value;
|
||||||
}
|
}
|
||||||
|
System.out.print(4);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user