mirror of
				https://github.com/IntellectualSites/PlotSquared.git
				synced 2025-11-04 03:03:43 +01:00 
			
		
		
		
	main
This commit is contained in:
		@@ -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) {
 | 
				
			||||||
@@ -795,17 +792,95 @@ public class MainUtil {
 | 
				
			|||||||
        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] = '<27>';
 | 
				
			||||||
 | 
					                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 == '<27>') {
 | 
				
			||||||
 | 
					                word.append('<27>' + (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) != '<27>')) {
 | 
				
			||||||
 | 
					            lines.set(0, "<EFBFBD>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('<27>') + 1);
 | 
				
			||||||
 | 
					            if ((subLine.length() == 0) || (subLine.charAt(0) != '<27>')) {
 | 
				
			||||||
 | 
					                lines.set(i, '<27>' + (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;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user