mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-26 12:35:15 +01:00
main
This commit is contained in:
parent
0c58c9da37
commit
9a41a989de
@ -21,6 +21,7 @@ import org.bukkit.plugin.Plugin;
|
|||||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.commands.BukkitCommand;
|
||||||
import com.intellectualcrafters.plot.commands.Buy;
|
import com.intellectualcrafters.plot.commands.Buy;
|
||||||
import com.intellectualcrafters.plot.commands.MainCommand;
|
import com.intellectualcrafters.plot.commands.MainCommand;
|
||||||
import com.intellectualcrafters.plot.commands.WE_Anywhere;
|
import com.intellectualcrafters.plot.commands.WE_Anywhere;
|
||||||
@ -36,6 +37,7 @@ import com.intellectualcrafters.plot.listeners.PlayerEvents_1_8;
|
|||||||
import com.intellectualcrafters.plot.listeners.PlotPlusListener;
|
import com.intellectualcrafters.plot.listeners.PlotPlusListener;
|
||||||
import com.intellectualcrafters.plot.listeners.WorldEditListener;
|
import com.intellectualcrafters.plot.listeners.WorldEditListener;
|
||||||
import com.intellectualcrafters.plot.object.PlotId;
|
import com.intellectualcrafters.plot.object.PlotId;
|
||||||
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
import com.intellectualcrafters.plot.util.ConsoleColors;
|
import com.intellectualcrafters.plot.util.ConsoleColors;
|
||||||
import com.intellectualcrafters.plot.util.MainUtil;
|
import com.intellectualcrafters.plot.util.MainUtil;
|
||||||
import com.intellectualcrafters.plot.util.TaskManager;
|
import com.intellectualcrafters.plot.util.TaskManager;
|
||||||
@ -145,10 +147,11 @@ public class BukkitMain extends JavaPlugin implements Listener, IPlotMain {
|
|||||||
@Override
|
@Override
|
||||||
public void registerCommands() {
|
public void registerCommands() {
|
||||||
final MainCommand command = new MainCommand();
|
final MainCommand command = new MainCommand();
|
||||||
|
final BukkitCommand bcmd = new BukkitCommand();
|
||||||
final PluginCommand plotCommand = getCommand("plots");
|
final PluginCommand plotCommand = getCommand("plots");
|
||||||
plotCommand.setExecutor(command);
|
plotCommand.setExecutor(bcmd);
|
||||||
plotCommand.setAliases(Arrays.asList("p", "ps", "plotme", "plot"));
|
plotCommand.setAliases(Arrays.asList("p", "ps", "plotme", "plot"));
|
||||||
plotCommand.setTabCompleter(command);
|
plotCommand.setTabCompleter(bcmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -42,8 +42,4 @@ public interface IPlotMain {
|
|||||||
public void getGenerator(String world, String name);
|
public void getGenerator(String world, String name);
|
||||||
|
|
||||||
public boolean callRemovePlot(String world, PlotId id);
|
public boolean callRemovePlot(String world, PlotId id);
|
||||||
|
|
||||||
public boolean hasPermission(final PlotPlayer player, final String permission);
|
|
||||||
|
|
||||||
public void sendMessage(final PlotPlayer player, final String message);
|
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,66 @@
|
|||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
import org.bukkit.command.TabCommandExecutor;
|
||||||
|
import org.bukkit.command.TabCompleter;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
|
import com.intellectualcrafters.plot.util.bukkit.BukkitUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created 2015-02-20 for PlotSquared
|
* Created 2015-02-20 for PlotSquared
|
||||||
*
|
*
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
*/
|
*/
|
||||||
public class BukkitCommand implements CommandExecutor {
|
public class BukkitCommand implements CommandExecutor, TabCompleter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender commandSender, Command command, String s, String[] strings) {
|
public boolean onCommand(CommandSender commandSender, Command command, String commandLabel, String[] args) {
|
||||||
MainCommand
|
Player player = null;
|
||||||
return false;
|
if (commandSender instanceof Player) {
|
||||||
|
player = (Player) commandSender;
|
||||||
|
}
|
||||||
|
return MainCommand.onCommand(BukkitUtil.getPlayer(player), commandLabel, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<String> onTabComplete(final CommandSender commandSender, final Command command, final String s, final String[] strings) {
|
||||||
|
if (!(commandSender instanceof Player)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
final PlotPlayer player = BukkitUtil.getPlayer((Player) commandSender);
|
||||||
|
if (strings.length < 1) {
|
||||||
|
if ((strings.length == 0) || "plots".startsWith(s)) {
|
||||||
|
return Arrays.asList("plots");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (strings.length > 1) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (!command.getLabel().equalsIgnoreCase("plots")) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
final List<String> tabOptions = new ArrayList<>();
|
||||||
|
final String arg = strings[0].toLowerCase();
|
||||||
|
for (final SubCommand cmd : MainCommand.subCommands) {
|
||||||
|
if (cmd.permission.hasPermission(player)) {
|
||||||
|
if (cmd.cmd.startsWith(arg)) {
|
||||||
|
tabOptions.add(cmd.cmd);
|
||||||
|
} else if (cmd.alias.get(0).startsWith(arg)) {
|
||||||
|
tabOptions.add(cmd.alias.get(0));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tabOptions.size() > 0) {
|
||||||
|
return tabOptions;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,6 +22,7 @@ package com.intellectualcrafters.plot.commands;
|
|||||||
|
|
||||||
import com.intellectualcrafters.plot.BukkitMain;
|
import com.intellectualcrafters.plot.BukkitMain;
|
||||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
|
import com.intellectualcrafters.plot.util.Permissions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Citymonstret on 2014-08-03.
|
* Created by Citymonstret on 2014-08-03.
|
||||||
@ -47,6 +48,6 @@ public class CommandPermission {
|
|||||||
* @return true of player has the required permission node
|
* @return true of player has the required permission node
|
||||||
*/
|
*/
|
||||||
public boolean hasPermission(final PlotPlayer player) {
|
public boolean hasPermission(final PlotPlayer player) {
|
||||||
return Permissions.hasPermission(BukkitUtil.getPlayer(player), this.permission);
|
return Permissions.hasPermission(player, this.permission);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,15 +24,12 @@ import java.util.ArrayList;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.Command;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.BukkitMain;
|
import com.intellectualcrafters.plot.BukkitMain;
|
||||||
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.PlotPlayer;
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
|
import com.intellectualcrafters.plot.util.MainUtil;
|
||||||
|
import com.intellectualcrafters.plot.util.Permissions;
|
||||||
import com.intellectualcrafters.plot.util.StringComparison;
|
import com.intellectualcrafters.plot.util.StringComparison;
|
||||||
import com.intellectualcrafters.plot.util.bukkit.BukkitPlayerFunctions;
|
import com.intellectualcrafters.plot.util.bukkit.BukkitPlayerFunctions;
|
||||||
|
|
||||||
@ -53,7 +50,7 @@ public class MainCommand {
|
|||||||
};
|
};
|
||||||
|
|
||||||
public static boolean no_permission(final PlotPlayer player, final String permission) {
|
public static boolean no_permission(final PlotPlayer player, final String permission) {
|
||||||
MainUtil.sendMessage(BukkitUtil.getPlayer(player), C.NO_PERMISSION, permission);
|
MainUtil.sendMessage(player, C.NO_PERMISSION, permission);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,11 +103,11 @@ public class MainCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static String t(final String s) {
|
private static String t(final String s) {
|
||||||
return ChatColor.translateAlternateColorCodes('&', s);
|
return MainUtil.colorise('&', s);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean onCommand(final PlotPlayer player, final String cmd, final String... args) {
|
public static boolean onCommand(final PlotPlayer player, final String cmd, final String... args) {
|
||||||
if (!Permissions.hasPermission(BukkitUtil.getPlayer(player), PlotSquared.MAIN_PERMISSION)) {
|
if (!Permissions.hasPermission(player, PlotSquared.MAIN_PERMISSION)) {
|
||||||
return no_permission(player, PlotSquared.MAIN_PERMISSION);
|
return no_permission(player, PlotSquared.MAIN_PERMISSION);
|
||||||
}
|
}
|
||||||
if ((args.length < 1) || ((args.length >= 1) && (args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("he")))) {
|
if ((args.length < 1) || ((args.length >= 1) && (args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("he")))) {
|
||||||
@ -121,7 +118,7 @@ public class MainCommand {
|
|||||||
builder.append("\n").append(C.HELP_INFO_ITEM.s().replaceAll("%category%", category.toString().toLowerCase()).replaceAll("%category_desc%", category.toString()));
|
builder.append("\n").append(C.HELP_INFO_ITEM.s().replaceAll("%category%", category.toString().toLowerCase()).replaceAll("%category_desc%", category.toString()));
|
||||||
}
|
}
|
||||||
builder.append("\n").append(C.HELP_INFO_ITEM.s().replaceAll("%category%", "all").replaceAll("%category_desc%", "Display all commands"));
|
builder.append("\n").append(C.HELP_INFO_ITEM.s().replaceAll("%category%", "all").replaceAll("%category_desc%", "Display all commands"));
|
||||||
return MainUtil.sendMessage(BukkitUtil.getPlayer(player), builder.toString());
|
return MainUtil.sendMessage(player, builder.toString());
|
||||||
}
|
}
|
||||||
final String cat = args[1];
|
final String cat = args[1];
|
||||||
SubCommand.CommandCategory cato = null;
|
SubCommand.CommandCategory cato = null;
|
||||||
@ -137,7 +134,7 @@ public class MainCommand {
|
|||||||
for (final SubCommand.CommandCategory category : SubCommand.CommandCategory.values()) {
|
for (final SubCommand.CommandCategory category : SubCommand.CommandCategory.values()) {
|
||||||
builder.append("\n").append(C.HELP_INFO_ITEM.s().replaceAll("%category%", category.toString().toLowerCase()).replaceAll("%category_desc%", category.toString()));
|
builder.append("\n").append(C.HELP_INFO_ITEM.s().replaceAll("%category%", category.toString().toLowerCase()).replaceAll("%category_desc%", category.toString()));
|
||||||
}
|
}
|
||||||
return MainUtil.sendMessage(BukkitUtil.getPlayer(player), builder.toString(), false);
|
return MainUtil.sendMessage(player, builder.toString(), false);
|
||||||
}
|
}
|
||||||
final StringBuilder help = new StringBuilder();
|
final StringBuilder help = new StringBuilder();
|
||||||
int page = 0;
|
int page = 0;
|
||||||
@ -163,7 +160,7 @@ public class MainCommand {
|
|||||||
for (final String string : helpMenu(player, cato, page)) {
|
for (final String string : helpMenu(player, cato, page)) {
|
||||||
help.append(string).append("\n");
|
help.append(string).append("\n");
|
||||||
}
|
}
|
||||||
player.sendMessage(ChatColor.translateAlternateColorCodes('&', help.toString()));
|
player.sendMessage(MainUtil.colorise('&', help.toString()));
|
||||||
// return PlayerFunctions.sendMessage(player, help.toString());
|
// return PlayerFunctions.sendMessage(player, help.toString());
|
||||||
} else {
|
} else {
|
||||||
for (final SubCommand command : subCommands) {
|
for (final SubCommand command : subCommands) {
|
||||||
@ -174,58 +171,24 @@ public class MainCommand {
|
|||||||
if ((player != null) || !command.isPlayer) {
|
if ((player != null) || !command.isPlayer) {
|
||||||
return command.execute(player, arguments);
|
return command.execute(player, arguments);
|
||||||
} else {
|
} else {
|
||||||
return !BukkitPlayerFunctions.sendMessage(null, C.IS_CONSOLE);
|
return !MainUtil.sendMessage(null, C.IS_CONSOLE);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return no_permission(player, command.permission.permission.toLowerCase());
|
return no_permission(player, command.permission.permission.toLowerCase());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
MainUtil.sendMessage(BukkitUtil.getPlayer(player), C.NOT_VALID_SUBCOMMAND);
|
MainUtil.sendMessage(player, C.NOT_VALID_SUBCOMMAND);
|
||||||
final String[] commands = new String[subCommands.size()];
|
final String[] commands = new String[subCommands.size()];
|
||||||
for (int x = 0; x < subCommands.size(); x++) {
|
for (int x = 0; x < subCommands.size(); x++) {
|
||||||
commands[x] = subCommands.get(x).cmd;
|
commands[x] = subCommands.get(x).cmd;
|
||||||
}
|
}
|
||||||
/* Let's try to get a proper usage string */
|
/* Let's try to get a proper usage string */
|
||||||
final String command = new StringComparison(args[0], commands).getBestMatch();
|
final String command = new StringComparison(args[0], commands).getBestMatch();
|
||||||
return MainUtil.sendMessage(BukkitUtil.getPlayer(player), C.DID_YOU_MEAN, "/plot " + command);
|
return MainUtil.sendMessage(player, C.DID_YOU_MEAN, "/plot " + command);
|
||||||
// PlayerFunctions.sendMessage(player, C.DID_YOU_MEAN, new
|
// PlayerFunctions.sendMessage(player, C.DID_YOU_MEAN, new
|
||||||
// StringComparsion(args[0], commands).getBestMatch());
|
// StringComparsion(args[0], commands).getBestMatch());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public List<String> onTabComplete(final CommandSender commandSender, final Command command, final String s, final String[] strings) {
|
|
||||||
if (!(commandSender instanceof Player)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
final Player player = (Player) commandSender;
|
|
||||||
if (strings.length < 1) {
|
|
||||||
if ((strings.length == 0) || "plots".startsWith(s)) {
|
|
||||||
return Arrays.asList("plots");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (strings.length > 1) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (!command.getLabel().equalsIgnoreCase("plots")) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
final List<String> tabOptions = new ArrayList<>();
|
|
||||||
final String arg = strings[0].toLowerCase();
|
|
||||||
for (final SubCommand cmd : subCommands) {
|
|
||||||
if (cmd.permission.hasPermission(player)) {
|
|
||||||
if (cmd.cmd.startsWith(arg)) {
|
|
||||||
tabOptions.add(cmd.cmd);
|
|
||||||
} else if (cmd.alias.get(0).startsWith(arg)) {
|
|
||||||
tabOptions.add(cmd.alias.get(0));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (tabOptions.size() > 0) {
|
|
||||||
return tabOptions;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -25,6 +25,7 @@ import java.util.Arrays;
|
|||||||
|
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.PlotPlayer;
|
import com.intellectualcrafters.plot.object.PlotPlayer;
|
||||||
|
import com.intellectualcrafters.plot.util.MainUtil;
|
||||||
import com.intellectualcrafters.plot.util.bukkit.BukkitPlayerFunctions;
|
import com.intellectualcrafters.plot.util.bukkit.BukkitPlayerFunctions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -148,7 +149,7 @@ public abstract class SubCommand {
|
|||||||
* com.intellectualcrafters.plot.config.C, String...)
|
* com.intellectualcrafters.plot.config.C, String...)
|
||||||
*/
|
*/
|
||||||
public boolean sendMessage(final PlotPlayer plr, final C c, final String... args) {
|
public boolean sendMessage(final PlotPlayer plr, final C c, final String... args) {
|
||||||
BukkitPlayerFunctions.sendMessage(plr, c, args);
|
MainUtil.sendMessage(plr, c, args);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,6 +10,7 @@ import org.bukkit.inventory.Inventory;
|
|||||||
|
|
||||||
import com.intellectualcrafters.plot.object.InfoInventory;
|
import com.intellectualcrafters.plot.object.InfoInventory;
|
||||||
import com.intellectualcrafters.plot.util.MainUtil;
|
import com.intellectualcrafters.plot.util.MainUtil;
|
||||||
|
import com.intellectualcrafters.plot.util.bukkit.BukkitUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created 2014-11-18 for PlotSquared
|
* Created 2014-11-18 for PlotSquared
|
||||||
|
@ -24,9 +24,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.util.ChatPaginator;
|
|
||||||
|
|
||||||
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.config.Settings;
|
||||||
@ -61,8 +58,8 @@ public class MainUtil {
|
|||||||
final Plot bot = MainUtil.getBottomPlot(plot);
|
final Plot bot = MainUtil.getBottomPlot(plot);
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
// boolean result = PlotSquared.IMP.callPlayerTeleportToPlotEvent(player, from, plot);
|
// boolean result = PlotSquared.IMP.callPlayerTeleportToPlotEvent(player, from, plot);
|
||||||
boolean result = true;
|
final boolean result = true;
|
||||||
// TOOD ^ remove that
|
// TOOD ^ remove that
|
||||||
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
@ -794,18 +791,96 @@ public class MainUtil {
|
|||||||
public static boolean sendMessage(final PlotPlayer plr, final String msg) {
|
public static boolean sendMessage(final PlotPlayer plr, final String msg) {
|
||||||
return sendMessage(plr, msg, true);
|
return sendMessage(plr, msg, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String colorise(final char alt, final String message) {
|
||||||
|
final char[] b = message.toCharArray();
|
||||||
|
for (int i = 0; i < (b.length - 1); i++) {
|
||||||
|
if ((b[i] == alt) && ("0123456789AaBbCcDdEeFfKkLlMmNnOoRr".indexOf(b[(i + 1)]) > -1)) {
|
||||||
|
b[i] = '§';
|
||||||
|
b[(i + 1)] = Character.toLowerCase(b[(i + 1)]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new String(b);
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean sendMessage(final PlotPlayer plr, final String msg, final boolean prefix) {
|
public static boolean sendMessage(final PlotPlayer plr, final String msg, final boolean prefix) {
|
||||||
if ((msg.length() > 0) && !msg.equals("")) {
|
if ((msg.length() > 0) && !msg.equals("")) {
|
||||||
if (plr == null) {
|
if (plr == null) {
|
||||||
PlotSquared.log(C.PREFIX.s() + msg);
|
PlotSquared.log(C.PREFIX.s() + msg);
|
||||||
} else {
|
} else {
|
||||||
sendMessageWrapped(plr, ChatColor.translateAlternateColorCodes('&', C.PREFIX.s() + msg));
|
sendMessageWrapped(plr, colorise('&', C.PREFIX.s() + msg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String[] wordWrap(final String rawString, final int lineLength) {
|
||||||
|
if (rawString == null) {
|
||||||
|
return new String[] { "" };
|
||||||
|
}
|
||||||
|
if ((rawString.length() <= lineLength) && (!rawString.contains("\n"))) {
|
||||||
|
return new String[] { rawString };
|
||||||
|
}
|
||||||
|
final char[] rawChars = (rawString + ' ').toCharArray();
|
||||||
|
StringBuilder word = new StringBuilder();
|
||||||
|
StringBuilder line = new StringBuilder();
|
||||||
|
final ArrayList<String> lines = new ArrayList();
|
||||||
|
int lineColorChars = 0;
|
||||||
|
for (int i = 0; i < rawChars.length; i++) {
|
||||||
|
final char c = rawChars[i];
|
||||||
|
if (c == '§') {
|
||||||
|
word.append('§' + (rawChars[(i + 1)]));
|
||||||
|
lineColorChars += 2;
|
||||||
|
i++;
|
||||||
|
} else if ((c == ' ') || (c == '\n')) {
|
||||||
|
if ((line.length() == 0) && (word.length() > lineLength)) {
|
||||||
|
for (final String partialWord : word.toString().split("(?<=\\G.{" + lineLength + "})")) {
|
||||||
|
lines.add(partialWord);
|
||||||
|
}
|
||||||
|
} else if (((line.length() + word.length()) - lineColorChars) == lineLength) {
|
||||||
|
line.append(word);
|
||||||
|
lines.add(line.toString());
|
||||||
|
line = new StringBuilder();
|
||||||
|
lineColorChars = 0;
|
||||||
|
} else if (((line.length() + 1 + word.length()) - lineColorChars) > lineLength) {
|
||||||
|
for (final String partialWord : word.toString().split("(?<=\\G.{" + lineLength + "})")) {
|
||||||
|
lines.add(line.toString());
|
||||||
|
line = new StringBuilder(partialWord);
|
||||||
|
}
|
||||||
|
lineColorChars = 0;
|
||||||
|
} else {
|
||||||
|
if (line.length() > 0) {
|
||||||
|
line.append(' ');
|
||||||
|
}
|
||||||
|
line.append(word);
|
||||||
|
}
|
||||||
|
word = new StringBuilder();
|
||||||
|
if (c == '\n') {
|
||||||
|
lines.add(line.toString());
|
||||||
|
line = new StringBuilder();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
word.append(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (line.length() > 0) {
|
||||||
|
lines.add(line.toString());
|
||||||
|
}
|
||||||
|
if ((lines.get(0).length() == 0) || (lines.get(0).charAt(0) != '§')) {
|
||||||
|
lines.set(0, "§f" + lines.get(0));
|
||||||
|
}
|
||||||
|
for (int i = 1; i < lines.size(); i++) {
|
||||||
|
final String pLine = lines.get(i - 1);
|
||||||
|
final String subLine = lines.get(i);
|
||||||
|
|
||||||
|
final char color = pLine.charAt(pLine.lastIndexOf('§') + 1);
|
||||||
|
if ((subLine.length() == 0) || (subLine.charAt(0) != '§')) {
|
||||||
|
lines.set(i, '§' + (color) + subLine);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return lines.toArray(new String[lines.size()]);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \\previous\\
|
* \\previous\\
|
||||||
*
|
*
|
||||||
@ -813,8 +888,8 @@ public class MainUtil {
|
|||||||
* @param msg Was used to wrap the chat client length (Packets out--)
|
* @param msg Was used to wrap the chat client length (Packets out--)
|
||||||
*/
|
*/
|
||||||
public static void sendMessageWrapped(final PlotPlayer plr, String msg) {
|
public static void sendMessageWrapped(final PlotPlayer plr, String msg) {
|
||||||
if (msg.length() > ChatPaginator.AVERAGE_CHAT_PAGE_WIDTH) {
|
if (msg.length() > 65) {
|
||||||
final String[] ss = ChatPaginator.wordWrap(msg, ChatPaginator.AVERAGE_CHAT_PAGE_WIDTH);
|
final String[] ss = wordWrap(msg, 65);
|
||||||
final StringBuilder b = new StringBuilder();
|
final StringBuilder b = new StringBuilder();
|
||||||
for (final String p : ss) {
|
for (final String p : ss) {
|
||||||
b.append(p).append(p.equals(ss[ss.length - 1]) ? "" : "\n ");
|
b.append(p).append(p.equals(ss[ss.length - 1]) ? "" : "\n ");
|
||||||
@ -905,7 +980,6 @@ public class MainUtil {
|
|||||||
return new Plot(id, null, new ArrayList<UUID>(), new ArrayList<UUID>(), world);
|
return new Plot(id, null, new ArrayList<UUID>(), new ArrayList<UUID>(), world);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the plot at a location (mega plots are not considered, all plots are treated as small plots)
|
* Returns the plot at a location (mega plots are not considered, all plots are treated as small plots)
|
||||||
* @param loc
|
* @param loc
|
||||||
@ -953,7 +1027,7 @@ public class MainUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Plot getPlot(final Location loc) {
|
public static Plot getPlot(final Location loc) {
|
||||||
PlotId id = getPlotId(loc);
|
final PlotId id = getPlotId(loc);
|
||||||
if (id == null) {
|
if (id == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user