code formatter applied.
This commit is contained in:
		| @@ -22,6 +22,7 @@ import java.util.List; | ||||
| import de.craftinc.gates.util.ConfigurationUtil; | ||||
| import org.bukkit.ChatColor; | ||||
| import org.bukkit.command.CommandSender; | ||||
| import org.bukkit.configuration.file.FileConfiguration; | ||||
| import org.bukkit.entity.Player; | ||||
|  | ||||
| import de.craftinc.gates.Gate; | ||||
| @@ -29,8 +30,8 @@ import de.craftinc.gates.GatesManager; | ||||
| import de.craftinc.gates.Plugin; | ||||
| import de.craftinc.gates.util.TextUtil; | ||||
|  | ||||
| public abstract class BaseCommand  | ||||
| { | ||||
| public abstract class BaseCommand { | ||||
|  | ||||
|     protected List<String> aliases = new ArrayList<String>(); | ||||
|     protected List<String> requiredParameters = new ArrayList<String>(); | ||||
|     protected List<String> optionalParameters = new ArrayList<String>(); | ||||
| @@ -70,11 +71,16 @@ public abstract class BaseCommand | ||||
|  | ||||
|         this.perform(); | ||||
|  | ||||
| 		if (this.shouldPersistToDisk && Plugin.getPlugin().getConfig().getBoolean(ConfigurationUtil.confSaveOnChangesKey)) { | ||||
|         if (this.shouldPersistToDisk && getSaveOnChanges()) { | ||||
|             Plugin.getPlugin().getGatesManager().saveGatesToDisk(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     private boolean getSaveOnChanges() { | ||||
|         FileConfiguration config = Plugin.getPlugin().getConfig(); | ||||
|         return config.getBoolean(ConfigurationUtil.confSaveOnChangesKey); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     abstract protected void perform(); | ||||
|  | ||||
| @@ -91,8 +97,7 @@ public abstract class BaseCommand | ||||
|     } | ||||
|  | ||||
|  | ||||
| 	protected boolean validateCall()  | ||||
| 	{ | ||||
|     protected boolean validateCall() { | ||||
|         boolean allParametersThere = parameters.size() >= requiredParameters.size(); | ||||
|         boolean senderIsPlayer = this.sender instanceof Player; | ||||
|         boolean hasGateParameter = false; | ||||
| @@ -107,20 +112,17 @@ public abstract class BaseCommand | ||||
|         if (this.senderMustBePlayer && !senderIsPlayer) { | ||||
|             sendMessage(ChatColor.RED + "This command can only be used by ingame players."); | ||||
|             valid = false; | ||||
| 		} | ||||
| 		else { | ||||
|         } else { | ||||
|             if (!allParametersThere) { | ||||
|                 sendMessage(ChatColor.RED + "Some parameters are missing! " + ChatColor.AQUA + "Usage: " + this.getUsageTemplate(true)); | ||||
|                 valid = false; | ||||
|             } | ||||
|             else if ((!senderHasPermission && this.hasGateParam) || | ||||
|             } else if ((!senderHasPermission && this.hasGateParam) || | ||||
|                     (!senderHasPermission) || | ||||
|                     (this.hasGateParam && !hasGateParameter)) { | ||||
|  | ||||
|                 sendMessage(ChatColor.RED + "You either provided a invalid gate or do not have permission to " + this.helpDescription.toLowerCase()); | ||||
|                 valid = false; | ||||
|             } | ||||
|             else { | ||||
|             } else { | ||||
|                 valid = true; | ||||
|             } | ||||
|         } | ||||
| @@ -129,14 +131,12 @@ public abstract class BaseCommand | ||||
|     } | ||||
|  | ||||
|  | ||||
| 	protected boolean setGateUsingParameter(String param) | ||||
| 	{ | ||||
|     protected boolean setGateUsingParameter(String param) { | ||||
|         GatesManager gateManager = Plugin.getPlugin().getGatesManager(); | ||||
|  | ||||
|         if (!gateManager.gateExists(param)) { | ||||
|             return false; | ||||
| 		} | ||||
| 		else { | ||||
|         } else { | ||||
|             gate = gateManager.getGateWithId(param); | ||||
|             return true; | ||||
|         } | ||||
| @@ -146,8 +146,7 @@ public abstract class BaseCommand | ||||
|     /** | ||||
|      * This will return false if a gate is required for this command but this.gate == null. | ||||
|      */ | ||||
| 	protected boolean hasPermission() | ||||
| 	{		 | ||||
|     protected boolean hasPermission() { | ||||
|         if (Plugin.getPermission() == null) { // fallback - use the standard bukkit permission system | ||||
|             return this.sender.hasPermission(this.requiredPermission); | ||||
|         } | ||||
| @@ -165,24 +164,19 @@ public abstract class BaseCommand | ||||
|  | ||||
|             if (this.hasGateParam) { | ||||
|                 hasPermission = this.hasPermissionAtGateLocationAndExit(p); | ||||
| 			} | ||||
| 			else { | ||||
|             } else { | ||||
|                 hasPermission = Plugin.getPermission().has(p.getWorld(), p.getName(), this.requiredPermission); | ||||
|             } | ||||
| 		} | ||||
| 		else if (this.requiredPermission.equals(Plugin.permissionUse) ) { | ||||
|         } else if (this.requiredPermission.equals(Plugin.permissionUse)) { | ||||
|             hasPermission = this.hasPermissionAtGateLocationAndExit(p); | ||||
| 		} | ||||
| 		else if (this.requiredPermission.equals(Plugin.permissionManage)) { | ||||
|         } else if (this.requiredPermission.equals(Plugin.permissionManage)) { | ||||
|  | ||||
|             if (this.needsPermissionAtCurrentLocation && this.hasGateParam) { | ||||
|                 boolean hasPersmissionAtCurrentLocation = Plugin.getPermission().has(p.getWorld(), p.getName(), this.requiredPermission); | ||||
|                 hasPermission = hasPersmissionAtCurrentLocation && this.hasPermissionAtGateLocationAndExit(p); | ||||
| 			} | ||||
| 			else if (this.needsPermissionAtCurrentLocation) { | ||||
|             } else if (this.needsPermissionAtCurrentLocation) { | ||||
|                 hasPermission = Plugin.getPermission().has(p.getWorld(), p.getName(), this.requiredPermission); | ||||
| 			} | ||||
| 			else { | ||||
|             } else { | ||||
|                 hasPermission = this.hasPermissionAtGateLocationAndExit(p); | ||||
|             } | ||||
|         } | ||||
| @@ -191,9 +185,8 @@ public abstract class BaseCommand | ||||
|     } | ||||
|  | ||||
|  | ||||
| 	protected boolean hasPermissionAtGateLocationAndExit(Player p) | ||||
| 	{ | ||||
| 		if (this.gate == null || p == null) { // make sure we don't run into a nullpointer exception | ||||
|     protected boolean hasPermissionAtGateLocationAndExit(Player p) { | ||||
|         if (this.gate == null || p == null) { | ||||
|             return false; | ||||
|         } | ||||
|  | ||||
| @@ -207,8 +200,7 @@ public abstract class BaseCommand | ||||
|     // -------------------------------------------- // | ||||
|     // Help and usage description | ||||
|     // -------------------------------------------- // | ||||
| 	protected String getUsageTemplate(boolean withColor, boolean withDescription) | ||||
|     { | ||||
|     protected String getUsageTemplate(boolean withColor, boolean withDescription) { | ||||
|         String ret = ""; | ||||
|  | ||||
|         if (withColor) { | ||||
| @@ -239,14 +231,12 @@ public abstract class BaseCommand | ||||
|             if (withColor) { | ||||
|                 ret += ChatColor.YELLOW; | ||||
|             } | ||||
| 			 | ||||
|             ret += this.helpDescription; | ||||
|         } | ||||
|         return ret; | ||||
|     } | ||||
|  | ||||
| 	protected String getUsageTemplate(boolean withColor) | ||||
|     { | ||||
|     protected String getUsageTemplate(boolean withColor) { | ||||
|         return getUsageTemplate(withColor, false); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -21,10 +21,9 @@ import org.bukkit.Material; | ||||
| import org.bukkit.block.Block; | ||||
| import org.bukkit.block.BlockFace; | ||||
|  | ||||
| public abstract class BaseLocationCommand extends BaseCommand  | ||||
| { | ||||
| 	protected Location getValidPlayerLocation() | ||||
| 	{ | ||||
| public abstract class BaseLocationCommand extends BaseCommand { | ||||
|  | ||||
|     protected Location getValidPlayerLocation() { | ||||
|         // The player might stand in a half block or a sign or whatever | ||||
|         // Therefore we load some extra locations and blocks | ||||
|         Block playerBlock = player.getLocation().getBlock(); | ||||
| @@ -32,8 +31,7 @@ public abstract class BaseLocationCommand extends BaseCommand | ||||
|  | ||||
|         if (playerBlock.getType() == Material.AIR) { | ||||
|             return player.getLocation(); | ||||
| 		}  | ||||
| 		else if (upBlock.getType() == Material.AIR) { | ||||
|         } else if (upBlock.getType() == Material.AIR) { | ||||
|             return new Location(player.getLocation().getWorld(), | ||||
|                     player.getLocation().getX(), | ||||
|                     player.getLocation().getY() + 1, | ||||
|   | ||||
| @@ -20,19 +20,16 @@ package de.craftinc.gates.commands; | ||||
| import de.craftinc.gates.Plugin; | ||||
| import org.bukkit.ChatColor; | ||||
|  | ||||
| public class CommandAllowRiding extends BaseCommand | ||||
| { | ||||
|     public CommandAllowRiding() | ||||
|     { | ||||
| public class CommandAllowRiding extends BaseCommand { | ||||
|  | ||||
|     public CommandAllowRiding() { | ||||
|         aliases.add("allowRiding"); | ||||
|         aliases.add("ar"); | ||||
|  | ||||
|         requiredParameters.add("id"); | ||||
|  | ||||
|         helpDescription = "Allow players to travel while riding."; | ||||
|  | ||||
|         requiredPermission = Plugin.permissionManage; | ||||
|  | ||||
|         needsPermissionAtCurrentLocation = false; | ||||
|         shouldPersistToDisk = true; | ||||
|  | ||||
| @@ -40,8 +37,7 @@ public class CommandAllowRiding extends BaseCommand | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void perform() | ||||
|     { | ||||
|     protected void perform() { | ||||
|         gate.setAllowsVehicles(true); | ||||
|         sendMessage(ChatColor.GREEN + "Traveling while riding is now enabled for this gate."); | ||||
|     } | ||||
|   | ||||
| @@ -24,41 +24,30 @@ import org.bukkit.ChatColor; | ||||
| import de.craftinc.gates.Plugin; | ||||
|  | ||||
|  | ||||
| public class CommandClose extends BaseCommand  | ||||
| { | ||||
| 	public CommandClose() | ||||
| 	{ | ||||
| public class CommandClose extends BaseCommand { | ||||
|  | ||||
|     public CommandClose() { | ||||
|         aliases.add("close"); | ||||
|         aliases.add("c"); | ||||
|  | ||||
|         requiredParameters.add("id"); | ||||
| 		 | ||||
|         helpDescription = "Closes a gate to prevent players from using it."; | ||||
| 		 | ||||
|         requiredPermission = Plugin.permissionManage; | ||||
| 		 | ||||
|         needsPermissionAtCurrentLocation = false; | ||||
|         shouldPersistToDisk = true; | ||||
| 		 | ||||
|         senderMustBePlayer = false; | ||||
|     } | ||||
|  | ||||
| 	 | ||||
|     @Override | ||||
| 	public void perform()  | ||||
| 	{ | ||||
| 		try  | ||||
| 		{ | ||||
|     public void perform() { | ||||
|         try { | ||||
|             gate.setOpen(false); | ||||
|             GateBlockChangeSender.updateGateBlocks(gate); | ||||
|             sendMessage(ChatColor.GREEN + "The gate was closed."); | ||||
| 		} | ||||
| 		catch(Exception e)  | ||||
| 		{ | ||||
|         } catch (Exception e) { | ||||
|             sendMessage(ChatColor.RED + "Opening the gate failed! See server log for more information"); | ||||
|             Plugin.log(Level.WARNING, e.getMessage()); | ||||
|             e.printStackTrace(); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -19,28 +19,22 @@ package de.craftinc.gates.commands; | ||||
| import de.craftinc.gates.Plugin; | ||||
| import org.bukkit.ChatColor; | ||||
|  | ||||
| public class CommandDenyRiding extends BaseCommand | ||||
| { | ||||
|     public CommandDenyRiding() | ||||
|     { | ||||
| public class CommandDenyRiding extends BaseCommand { | ||||
|  | ||||
|     public CommandDenyRiding() { | ||||
|         aliases.add("denyRiding"); | ||||
|         aliases.add("dr"); | ||||
|  | ||||
|         requiredParameters.add("id"); | ||||
|  | ||||
|         helpDescription = "Deny players to travel while riding."; | ||||
|  | ||||
|         requiredPermission = Plugin.permissionManage; | ||||
|  | ||||
|         needsPermissionAtCurrentLocation = false; | ||||
|         shouldPersistToDisk = true; | ||||
|  | ||||
|         senderMustBePlayer = false; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     protected void perform() | ||||
|     { | ||||
|     protected void perform() { | ||||
|         gate.setAllowsVehicles(false); | ||||
|         sendMessage(ChatColor.GREEN + "Traveling while riding is now disabled for this gate."); | ||||
|     } | ||||
|   | ||||
| @@ -24,11 +24,9 @@ import org.bukkit.ChatColor; | ||||
| import de.craftinc.gates.Plugin; | ||||
| import org.bukkit.Location; | ||||
|  | ||||
| public class CommandExit extends BaseCommand { | ||||
|  | ||||
| public class CommandExit extends BaseCommand | ||||
| { | ||||
| 	public CommandExit() | ||||
| 	{ | ||||
|     public CommandExit() { | ||||
|         aliases.add("exit"); | ||||
|         aliases.add("e"); | ||||
|  | ||||
| @@ -44,16 +42,13 @@ public class CommandExit extends BaseCommand | ||||
|     } | ||||
|  | ||||
|  | ||||
| 	public void perform()  | ||||
| 	{ | ||||
| 		try  | ||||
| 		{ | ||||
|     public void perform() { | ||||
|         try { | ||||
|             Location oldExit = gate.getExit(); | ||||
|             gate.setExit(player.getLocation()); | ||||
|             sendMessage(ChatColor.GREEN + "The exit of gate '" + gate.getId() + "' is now where you stand."); | ||||
|             Plugin.getPlugin().getGatesManager().handleGateExitChange(gate, oldExit); | ||||
| 		}  | ||||
| 		catch (Exception e) { | ||||
|         } catch (Exception e) { | ||||
|             GateBlockChangeSender.updateGateBlocks(gate); | ||||
|             sendMessage(ChatColor.RED + "Setting the exit for the gate failed! See server log for more information"); | ||||
|             Plugin.log(Level.WARNING, e.getMessage()); | ||||
| @@ -61,4 +56,3 @@ public class CommandExit extends BaseCommand | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -24,29 +24,23 @@ import org.bukkit.Location; | ||||
|  | ||||
| import java.util.logging.Level; | ||||
|  | ||||
| public class CommandExitOpen extends BaseCommand | ||||
| { | ||||
|     public CommandExitOpen() | ||||
|     { | ||||
| public class CommandExitOpen extends BaseCommand { | ||||
|  | ||||
|     public CommandExitOpen() { | ||||
|         aliases.add("exitopen"); | ||||
|         aliases.add("eo"); | ||||
|  | ||||
|         requiredParameters.add("id"); | ||||
|  | ||||
|         helpDescription = "Change exit of location and open that gate afterwards."; | ||||
|  | ||||
|         requiredPermission = Plugin.permissionManage; | ||||
|  | ||||
|         needsPermissionAtCurrentLocation = true; | ||||
|         shouldPersistToDisk = true; | ||||
|         senderMustBePlayer = true; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     public void perform() | ||||
|     { | ||||
|         try | ||||
|         { | ||||
|     public void perform() { | ||||
|         try { | ||||
|             Location oldExit = gate.getExit(); | ||||
|             gate.setExit(player.getLocation()); | ||||
|             sendMessage(ChatColor.GREEN + "The exit of gate '" + gate.getId() + "' is now where you stand."); | ||||
| @@ -68,12 +62,10 @@ public class CommandExitOpen extends BaseCommand | ||||
|                 } | ||||
|  | ||||
|                 sendMessage(ChatColor.GREEN + "The gate was opened."); | ||||
|             } | ||||
|             catch (Exception e) { | ||||
|             } catch (Exception e) { | ||||
|                 sendMessage(ChatColor.RED + e.getMessage()); | ||||
|             } | ||||
|         } | ||||
|         catch (Exception e) { | ||||
|         } catch (Exception e) { | ||||
|             GateBlockChangeSender.updateGateBlocks(gate); | ||||
|             sendMessage(ChatColor.RED + "Setting the exit for the gate failed! This gate is now closed! (See server log for more information.)"); | ||||
|             Plugin.log(Level.WARNING, e.getMessage()); | ||||
|   | ||||
| @@ -23,12 +23,11 @@ import java.util.ArrayList; | ||||
| import java.util.Collections; | ||||
| import java.util.List; | ||||
|  | ||||
| public class CommandHelp extends BaseCommand  | ||||
| { | ||||
| public class CommandHelp extends BaseCommand { | ||||
|  | ||||
|     public static List<List<String>> helpPages; | ||||
|  | ||||
| 	static  | ||||
| 	{ | ||||
|     static { | ||||
|         // sort the usage strings | ||||
|         List<String> allUsageStrings = new ArrayList<String>(); | ||||
|  | ||||
| @@ -63,8 +62,7 @@ public class CommandHelp extends BaseCommand | ||||
|     } | ||||
|  | ||||
|  | ||||
| 	public CommandHelp()  | ||||
| 	{ | ||||
|     public CommandHelp() { | ||||
|         aliases.add("help"); | ||||
|         aliases.add("?"); | ||||
|  | ||||
| @@ -80,20 +78,17 @@ public class CommandHelp extends BaseCommand | ||||
|     } | ||||
|  | ||||
|  | ||||
|     public void perform() | ||||
|     { | ||||
|     public void perform() { | ||||
|         int page; | ||||
|  | ||||
|         if (parameters.size() > 0) { | ||||
|             try { | ||||
|                 page = Integer.parseInt(parameters.get(0)); | ||||
| 			}  | ||||
| 			catch (NumberFormatException e) { | ||||
|             } catch (NumberFormatException e) { | ||||
|                 // wasn't an integer | ||||
|                 page = 1; | ||||
|             } | ||||
| 		} | ||||
|         else { | ||||
|         } else { | ||||
|             page = 1; | ||||
|         } | ||||
|  | ||||
|   | ||||
| @@ -24,10 +24,9 @@ import org.bukkit.ChatColor; | ||||
| import de.craftinc.gates.Plugin; | ||||
|  | ||||
|  | ||||
| public class CommandHide extends BaseCommand | ||||
| { | ||||
| 	public CommandHide() | ||||
| 	{ | ||||
| public class CommandHide extends BaseCommand { | ||||
|  | ||||
|     public CommandHide() { | ||||
|         aliases.add("hide"); | ||||
|         aliases.add("h"); | ||||
|  | ||||
| @@ -43,14 +42,12 @@ public class CommandHide extends BaseCommand | ||||
|     } | ||||
|  | ||||
|  | ||||
| 	public void perform()  | ||||
| 	{ | ||||
|     public void perform() { | ||||
|         try { | ||||
|             gate.setHidden(true); | ||||
|             GateBlockChangeSender.updateGateBlocks(gate); | ||||
|             sendMessage(ChatColor.GREEN + "The gate '" + gate.getId() + "' is now hidden."); | ||||
| 		}  | ||||
| 		catch (Exception e) { | ||||
|         } catch (Exception e) { | ||||
|             sendMessage(ChatColor.RED + "Hiding the gate failed! See server log for more information"); | ||||
|             Plugin.log(Level.WARNING, e.getMessage()); | ||||
|             e.printStackTrace(); | ||||
|   | ||||
| @@ -16,7 +16,6 @@ | ||||
| */ | ||||
| package de.craftinc.gates.commands; | ||||
|  | ||||
|  | ||||
| import de.craftinc.gates.util.GateBlockChangeSender; | ||||
| import org.bukkit.ChatColor; | ||||
|  | ||||
| @@ -24,11 +23,9 @@ import de.craftinc.gates.Plugin; | ||||
| import de.craftinc.gates.util.TextUtil; | ||||
| import org.bukkit.entity.Player; | ||||
|  | ||||
| public class CommandInfo extends BaseCommand { | ||||
|  | ||||
| public class CommandInfo extends BaseCommand  | ||||
| { | ||||
| 	public CommandInfo() | ||||
| 	{ | ||||
|     public CommandInfo() { | ||||
|         aliases.add("info"); | ||||
|         aliases.add("i"); | ||||
|  | ||||
| @@ -45,8 +42,7 @@ public class CommandInfo extends BaseCommand | ||||
|     } | ||||
|  | ||||
|  | ||||
| 	public void perform()  | ||||
| 	{ | ||||
|     public void perform() { | ||||
|         if (this.parameters.size() > 0) { | ||||
|  | ||||
|             if (!this.setGateUsingParameter(this.parameters.get(0))) { | ||||
| @@ -55,8 +51,7 @@ public class CommandInfo extends BaseCommand | ||||
|             } | ||||
|  | ||||
|             sendMessage(TextUtil.titleize("Information about: '" + ChatColor.WHITE + gate.getId() + ChatColor.YELLOW + "'")); | ||||
|         } | ||||
|         else { | ||||
|         } else { | ||||
|             boolean senderIsPlayer = this.sender instanceof Player; | ||||
|  | ||||
|             if (!senderIsPlayer) { | ||||
|   | ||||
| @@ -28,20 +28,17 @@ import de.craftinc.gates.Gate; | ||||
| import de.craftinc.gates.Plugin; | ||||
| import de.craftinc.gates.util.TextUtil; | ||||
|  | ||||
| public class CommandList extends BaseCommand { | ||||
|  | ||||
| public class CommandList extends BaseCommand | ||||
| { | ||||
| 	protected static final int linesPerPage = 10;  | ||||
| 	protected static final int charactersPerLine = 52; /* this is actually no true. the  | ||||
| 														  font used by minecraft is not | ||||
| 														  monospace. but I don't think  | ||||
| 														  there is a (easy) way for a  | ||||
| 														  bukkit plugin to calculate  | ||||
|     private static final int linesPerPage = 10; | ||||
|  | ||||
|     /* this is actually not true. the font used by Minecraft is not | ||||
|        monospaced. but there seems to be no (easy) way to calculate | ||||
|        the drawing-size of a string. | ||||
|      */ | ||||
|     private static final int charactersPerLine = 52; | ||||
|  | ||||
| 	public CommandList()  | ||||
| 	{ | ||||
|     public CommandList() { | ||||
|         aliases.add("list"); | ||||
|         aliases.add("ls"); | ||||
|  | ||||
| @@ -56,27 +53,43 @@ public class CommandList extends BaseCommand | ||||
|         senderMustBePlayer = false; | ||||
|     } | ||||
|  | ||||
|     public void perform() { | ||||
|         int page = this.getPageParameter(); | ||||
|         List<String> allPages = this.pagedGateIds(); | ||||
|  | ||||
| 	protected static List<String> linesOfGateIds(List<String> gates) | ||||
| 	{ | ||||
|         if (allPages == null) {    // no gates exist | ||||
|             sendMessage(ChatColor.RED + "There are no gates yet. " + ChatColor.RESET + | ||||
|                     "(Note that you might not be allowed to get information about certain gates)"); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         if (page > allPages.size() || page < 1) { | ||||
|             sendMessage(ChatColor.RED + "The requested page is not availible"); | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         String message = TextUtil.titleize("List of all gates (" + page + "/" + allPages.size() + ")") + "\n"; | ||||
|         message += allPages.get(page - 1); | ||||
|  | ||||
|         sendMessage(message); | ||||
|     } | ||||
|  | ||||
|     private static List<String> linesOfGateIds(List<String> gates) { | ||||
|         List<String> lines = new ArrayList<String>(); | ||||
|  | ||||
|         int index = 0; | ||||
|         List<String> gateIdsForCurrentLine = new ArrayList<String>(); | ||||
|         int numCharactersInCurrentLine = 0; | ||||
|  | ||||
| 		 | ||||
|         while (index < gates.size()) { | ||||
|             String gateId = gates.get(index); | ||||
|             int gateIdLength = gateId.length() + 2; // actual length + comma + whitespace | ||||
|  | ||||
| 			// special case: very long gate id | ||||
| 			if (gateIdLength > charactersPerLine && numCharactersInCurrentLine == 0) { | ||||
|             if (gateIdLength > charactersPerLine && numCharactersInCurrentLine == 0) { // special case: very long gate id | ||||
|                 gateIdsForCurrentLine = new ArrayList<String>(); | ||||
|                 numCharactersInCurrentLine = 0; | ||||
|  | ||||
|                 while ((gateId.length() + 2) > charactersPerLine) { | ||||
| 					 | ||||
|                     int cutPos = charactersPerLine; | ||||
|  | ||||
|                     // is the id too long to add comma and whitespace but not longer than the line? | ||||
| @@ -86,25 +99,18 @@ public class CommandList extends BaseCommand | ||||
|  | ||||
|                     lines.add(gateId.substring(0, cutPos)); | ||||
|                     gateId = gateId.substring(cutPos, gateId.length()); | ||||
| 					 | ||||
|                 } | ||||
|  | ||||
|                 gateIdsForCurrentLine.add(gateId); | ||||
|  | ||||
|                 numCharactersInCurrentLine += gateId.length(); | ||||
|                 index++; | ||||
| 			} | ||||
| 			 | ||||
| 			// gate fits into current line | ||||
| 			else if ((numCharactersInCurrentLine + gateIdLength) <= charactersPerLine) { | ||||
|             } else if ((numCharactersInCurrentLine + gateIdLength) <= charactersPerLine) { // gate fits into current line | ||||
|                 gateIdsForCurrentLine.add(gateId); | ||||
|                 numCharactersInCurrentLine += gateIdLength; | ||||
|  | ||||
|                 index++; | ||||
| 			} | ||||
| 			 | ||||
| 			// the current gate does not fit on the | ||||
| 			else {   | ||||
|             } else {  // the current gate does not fit on the | ||||
|                 lines.add(TextUtil.implode(gateIdsForCurrentLine, ", ") + ", "); | ||||
|  | ||||
|                 gateIdsForCurrentLine = new ArrayList<String>(); | ||||
| @@ -116,40 +122,32 @@ public class CommandList extends BaseCommand | ||||
|         return lines; | ||||
|     } | ||||
|  | ||||
| 	 | ||||
| 	protected static String intToTitleString(int i, boolean addPreviousPageNote, boolean addNextPageNote) | ||||
| 	{ | ||||
|     private static String intToTitleString(int i, boolean addPreviousPageNote, boolean addNextPageNote) { | ||||
|         String retVal = ChatColor.DARK_AQUA + ""; | ||||
|  | ||||
|         if (i < 26) { | ||||
|             retVal += (char) (i + 65); | ||||
| 		} | ||||
| 		else if ( i == 26 ) { | ||||
|         } else if (i == 26) { | ||||
|             retVal += "0-9"; | ||||
| 		}  | ||||
| 		else { | ||||
|         } else { | ||||
|             retVal += "!@#$"; | ||||
|         } | ||||
|  | ||||
|         if (addPreviousPageNote && addNextPageNote) { | ||||
|             retVal += " (more on previous and next page)"; | ||||
| 		} | ||||
| 		else if (addPreviousPageNote) { | ||||
|         } else if (addPreviousPageNote) { | ||||
|             retVal += " (more on previous page)"; | ||||
| 		} | ||||
| 		else if (addNextPageNote) { | ||||
|         } else if (addNextPageNote) { | ||||
|             retVal += " (more on next page)"; | ||||
|         } | ||||
|  | ||||
|         return retVal + "\n"; | ||||
|     } | ||||
|  | ||||
| 	 | ||||
|     /** | ||||
|      * Method for getting a collection of gates the player is allowed to see. | ||||
|      */ | ||||
| 	protected Collection<Gate> getAllGates() | ||||
| 	{ | ||||
|     private Collection<Gate> getAllGates() { | ||||
|         Collection<Gate> gates = Plugin.getPlugin().getGatesManager().allGates(); | ||||
|  | ||||
|         if (this.sender instanceof Player && Plugin.getPermission() != null) { | ||||
| @@ -159,7 +157,6 @@ public class CommandList extends BaseCommand | ||||
|             Collection<Gate> gatesCopy = new ArrayList<Gate>(gates); | ||||
|  | ||||
|             for (Gate gate : gatesCopy) { | ||||
| 				 | ||||
|                 if (gate.getLocation() != null) { | ||||
|                     boolean permissionAtGateLocation = Plugin.getPermission().has(gate.getLocation().getWorld(), p.getName(), this.requiredPermission); | ||||
|                     if (!permissionAtGateLocation) { | ||||
| @@ -169,7 +166,6 @@ public class CommandList extends BaseCommand | ||||
|                 } | ||||
|  | ||||
|                 if (gate.getExit() != null) { | ||||
| 					 | ||||
|                     boolean permissionAtGateExit = Plugin.getPermission().has(gate.getExit().getWorld(), p.getName(), this.requiredPermission); | ||||
|                     if (!permissionAtGateExit) { | ||||
|                         gates.remove(gate); | ||||
| @@ -181,7 +177,6 @@ public class CommandList extends BaseCommand | ||||
|         return gates; | ||||
|     } | ||||
|  | ||||
| 	 | ||||
|     /** | ||||
|      * Sorts all gates by there first character. | ||||
|      * Puts gates in corresponding Lists: (all returned lists will be sorted alphabetically) | ||||
| @@ -189,8 +184,7 @@ public class CommandList extends BaseCommand | ||||
|      * list 26: 0-9 | ||||
|      * list 27: other | ||||
|      */ | ||||
| 	protected static List<List<String>> gatesSortedByName(Collection<Gate> allGates) | ||||
| 	{ | ||||
|     private static List<List<String>> gatesSortedByName(Collection<Gate> allGates) { | ||||
|         // create the lists | ||||
|         List<List<String>> ids = new ArrayList<List<String>>(); | ||||
|  | ||||
| @@ -205,14 +199,11 @@ public class CommandList extends BaseCommand | ||||
|  | ||||
|             if (first > 96 && first < 123) { // convert lower case chars | ||||
|                 first -= 97; | ||||
| 			} | ||||
| 			else if (first > 64 && first < 91)  { // convert upper case chars | ||||
|             } else if (first > 64 && first < 91) { // convert upper case chars | ||||
|                 first -= 65; | ||||
| 			} | ||||
| 			else if (first > 47 && first < 58) { // convert numbers | ||||
|             } else if (first > 47 && first < 58) { // convert numbers | ||||
|                 first = 26; | ||||
| 			} | ||||
| 			else { // everything else | ||||
|             } else { // everything else | ||||
|                 first = 27; | ||||
|             } | ||||
|  | ||||
| @@ -227,15 +218,13 @@ public class CommandList extends BaseCommand | ||||
|         return ids; | ||||
|     } | ||||
|  | ||||
| 	 | ||||
|     /** | ||||
|      * Returns a list of strings. | ||||
|      * Each string is the text for a page. | ||||
|      * The maximum number of lines per page is 'linesPerPage' minus 1. | ||||
|      * Will return an empty list if no gates are availible. | ||||
|      */ | ||||
| 	protected List<String> pagedGateIds() | ||||
| 	{ | ||||
|     private List<String> pagedGateIds() { | ||||
|         Collection<Gate> gates = this.getAllGates(); | ||||
|  | ||||
|         if (gates.size() == 0) { | ||||
| @@ -276,8 +265,7 @@ public class CommandList extends BaseCommand | ||||
|                 if (linesNecessaryForCurrentGates < linesLeftOnPage) { | ||||
|                     linesToFill = linesNecessaryForCurrentGates; | ||||
|                     moreGatesOnNextPage = false; | ||||
| 				} | ||||
| 				else { | ||||
|                 } else { | ||||
|                     linesToFill = linesLeftOnPage - 1; | ||||
|                     moreGatesOnNextPage = true; | ||||
|                 } | ||||
| @@ -313,39 +301,14 @@ public class CommandList extends BaseCommand | ||||
|     } | ||||
|  | ||||
|  | ||||
| 	protected int getPageParameter() | ||||
| 	{ | ||||
|     private int getPageParameter() { | ||||
|         int page = 1; | ||||
|  | ||||
|         try { | ||||
|             page = new Integer(parameters.get(0)); | ||||
|         } catch (Exception ignored) { | ||||
|         } | ||||
| 		catch (Exception ignored) { } | ||||
|  | ||||
|         return page; | ||||
|     } | ||||
| 	 | ||||
| 	 | ||||
| 	public void perform()  | ||||
| 	{ | ||||
| 		int page = this.getPageParameter(); | ||||
| 		List<String> allPages = this.pagedGateIds(); | ||||
|  | ||||
| 		if (allPages == null) {	// no gates exist | ||||
| 			sendMessage(ChatColor.RED + "There are no gates yet. " + ChatColor.RESET +  | ||||
| 					    "(Note that you might not be allowed to get information about certain gates)"); | ||||
| 			return; | ||||
| } | ||||
| 			 | ||||
| 		if (page > allPages.size() || page < 1) { | ||||
| 			sendMessage(ChatColor.RED + "The requested page is not availible"); | ||||
| 			return; | ||||
| 		} | ||||
| 		 | ||||
| 		String message = TextUtil.titleize("List of all gates (" + page + "/" + allPages.size() + ")") + "\n"; | ||||
| 		message += allPages.get(page-1); | ||||
|  | ||||
| 		sendMessage(message); | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -16,7 +16,6 @@ | ||||
| */ | ||||
| package de.craftinc.gates.commands; | ||||
|  | ||||
|  | ||||
| import java.util.Set; | ||||
|  | ||||
| import de.craftinc.gates.util.GateBlockChangeSender; | ||||
| @@ -26,18 +25,14 @@ import org.bukkit.Location; | ||||
| import de.craftinc.gates.Plugin; | ||||
| import org.bukkit.block.Block; | ||||
|  | ||||
| public class CommandLocation extends BaseLocationCommand { | ||||
|  | ||||
| public class CommandLocation extends BaseLocationCommand | ||||
| { | ||||
| 	public CommandLocation() | ||||
| 	{ | ||||
|     public CommandLocation() { | ||||
|         aliases.add("location"); | ||||
|         aliases.add("lo"); | ||||
|  | ||||
|         requiredParameters.add("id"); | ||||
| 		 | ||||
|         helpDescription = "Set the entrance of the gate to your current location."; | ||||
| 		 | ||||
|         requiredPermission = Plugin.permissionManage; | ||||
|  | ||||
|         needsPermissionAtCurrentLocation = true; | ||||
| @@ -45,13 +40,10 @@ public class CommandLocation extends BaseLocationCommand | ||||
|         senderMustBePlayer = true; | ||||
|     } | ||||
|  | ||||
| 	 | ||||
| 	public void perform()  | ||||
| 	{ | ||||
|     public void perform() { | ||||
|         Location playerLocation = getValidPlayerLocation(); | ||||
|  | ||||
| 		if (playerLocation == null)  | ||||
| 		{ | ||||
|         if (playerLocation == null) { | ||||
|             sendMessage("There is not enough room for a gate to open here"); | ||||
|             return; | ||||
|         } | ||||
| @@ -60,25 +52,19 @@ public class CommandLocation extends BaseLocationCommand | ||||
|         Set<Location> oldGateBlockLocations = gate.getGateBlockLocations(); | ||||
|         Set<Block> oldFrameBlocks = gate.getGateFrameBlocks(); | ||||
|  | ||||
| 		try  | ||||
| 		{ | ||||
|         try { | ||||
|             if (gate.isOpen()) { | ||||
|                 GateBlockChangeSender.updateGateBlocks(gate, true); | ||||
|             } | ||||
|  | ||||
|             gate.setLocation(playerLocation); | ||||
|  | ||||
|             sendMessage(ChatColor.GREEN + "The location of '" + gate.getId() + "' is now at your current location."); | ||||
| 		}  | ||||
| 		catch (Exception e)  | ||||
| 		{ | ||||
|         } catch (Exception e) { | ||||
|             sendMessage(ChatColor.RED + "There seems to be no frame at your new location! The gate got closed!" + ChatColor.AQUA + " You should build a frame now and execute:"); | ||||
|             sendMessage(new CommandOpen().getUsageTemplate(true, true)); | ||||
| 		} | ||||
|         finally { | ||||
|         } finally { | ||||
|             Plugin.getPlugin().getGatesManager().handleGateLocationChange(gate, oldLocation, oldGateBlockLocations, oldFrameBlocks); | ||||
|             GateBlockChangeSender.updateGateBlocks(gate); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -1,6 +1,5 @@ | ||||
| package de.craftinc.gates.commands; | ||||
|  | ||||
|  | ||||
| import de.craftinc.gates.Gate; | ||||
| import de.craftinc.gates.GatesManager; | ||||
| import de.craftinc.gates.Plugin; | ||||
| @@ -10,33 +9,27 @@ import de.craftinc.gates.util.TextUtil; | ||||
| import java.util.ArrayList; | ||||
| import java.util.Set; | ||||
|  | ||||
| public class CommandNearby extends BaseLocationCommand | ||||
| { | ||||
|     public CommandNearby() | ||||
|     { | ||||
| public class CommandNearby extends BaseLocationCommand { | ||||
|  | ||||
|     public CommandNearby() { | ||||
|         aliases.add("nearby"); | ||||
|         aliases.add("nb"); | ||||
|  | ||||
|         helpDescription = "Highlight nearby gates"; | ||||
|  | ||||
|         requiredPermission = Plugin.permissionInfo; | ||||
|  | ||||
|         needsPermissionAtCurrentLocation = true; | ||||
|         shouldPersistToDisk = false; | ||||
|         senderMustBePlayer = true; | ||||
|         hasGateParam = false; | ||||
|     } | ||||
|  | ||||
|  | ||||
|     public void perform() | ||||
|     { | ||||
|     public void perform() { | ||||
|         GatesManager manager = Plugin.getPlugin().getGatesManager(); | ||||
|         Set<Gate> nearbyGates = manager.getNearbyGates(player.getLocation().getChunk()); | ||||
|  | ||||
|         if (nearbyGates == null) { | ||||
|             player.sendMessage("There are no gates near you!"); | ||||
|         } | ||||
|         else { | ||||
|         } else { | ||||
|             GateBlockChangeSender.temporaryHighlightGatesFrames(player, nearbyGates); | ||||
|  | ||||
|             ArrayList<String> gateNames = new ArrayList<String>(); | ||||
| @@ -44,10 +37,7 @@ public class CommandNearby extends BaseLocationCommand | ||||
|             for (Gate g : nearbyGates) { | ||||
|                 gateNames.add(g.getId()); | ||||
|             } | ||||
|  | ||||
|             player.sendMessage("Nearby gates: " + TextUtil.implode(gateNames, ", ")); | ||||
|         } | ||||
|  | ||||
|  | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -23,11 +23,9 @@ import de.craftinc.gates.Gate; | ||||
| import de.craftinc.gates.GatesManager; | ||||
| import de.craftinc.gates.Plugin; | ||||
|  | ||||
| public class CommandNew extends BaseLocationCommand { | ||||
|  | ||||
| public class CommandNew extends BaseLocationCommand | ||||
| { | ||||
| 	public CommandNew() | ||||
| 	{ | ||||
|     public CommandNew() { | ||||
|         aliases.add("new"); | ||||
|         aliases.add("n"); | ||||
|  | ||||
| @@ -35,20 +33,14 @@ public class CommandNew extends BaseLocationCommand | ||||
|  | ||||
|         senderMustBePlayer = true; | ||||
|         hasGateParam = false; | ||||
| 		 | ||||
|         helpDescription = "Create a gate at your current location."; | ||||
| 		 | ||||
|         requiredPermission = Plugin.permissionManage; | ||||
| 		 | ||||
|         needsPermissionAtCurrentLocation = true; | ||||
|         shouldPersistToDisk = true; | ||||
| 		 | ||||
|         senderMustBePlayer = true; | ||||
|     } | ||||
|  | ||||
| 	 | ||||
| 	public void perform()  | ||||
| 	{ | ||||
|     public void perform() { | ||||
|         String id = parameters.get(0); | ||||
|         GatesManager gatesManager = Plugin.getPlugin().getGatesManager(); | ||||
|  | ||||
| @@ -60,19 +52,15 @@ public class CommandNew extends BaseLocationCommand | ||||
|         gate = new Gate(id); | ||||
|         sendMessage(ChatColor.GREEN + "Gate with id '" + id + "' was created."); | ||||
|  | ||||
| 		 | ||||
|         Location playerLocation = getValidPlayerLocation(); | ||||
|  | ||||
|         if (playerLocation != null) { | ||||
| 			 | ||||
|             try { | ||||
|                 gate.setLocation(playerLocation); | ||||
|                 sendMessage(ChatColor.AQUA + "The gates location has been set to your current location."); | ||||
|             } catch (Exception ignored) { | ||||
|             } | ||||
| 			catch (Exception ignored) {} | ||||
| 		} | ||||
| 		else  | ||||
| 		{ | ||||
|         } else { | ||||
|             sendMessage(ChatColor.RED + "Your location is invalid!" + ChatColor.AQUA + "Go somewhere else and execute:"); | ||||
|             sendMessage(new CommandLocation().getUsageTemplate(true, true)); | ||||
|         } | ||||
| @@ -80,4 +68,3 @@ public class CommandNew extends BaseLocationCommand | ||||
|         gatesManager.handleNewGate(gate); | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -16,25 +16,19 @@ | ||||
| */ | ||||
| package de.craftinc.gates.commands; | ||||
|  | ||||
|  | ||||
| import de.craftinc.gates.util.GateBlockChangeSender; | ||||
| import org.bukkit.ChatColor; | ||||
|  | ||||
| import de.craftinc.gates.Plugin; | ||||
|  | ||||
| public class CommandOpen extends BaseCommand { | ||||
|  | ||||
| public class CommandOpen extends BaseCommand  | ||||
| { | ||||
| 	 | ||||
| 	public CommandOpen() | ||||
| 	{ | ||||
|     public CommandOpen() { | ||||
|         aliases.add("open"); | ||||
|         aliases.add("o"); | ||||
|  | ||||
|         requiredParameters.add("id"); | ||||
| 		 | ||||
|         helpDescription = "Open a gate so players can use it."; | ||||
| 		 | ||||
|         requiredPermission = Plugin.permissionManage; | ||||
|  | ||||
|         needsPermissionAtCurrentLocation = false; | ||||
| @@ -42,9 +36,7 @@ public class CommandOpen extends BaseCommand | ||||
|         senderMustBePlayer = false; | ||||
|     } | ||||
|  | ||||
| 	 | ||||
| 	public void perform()  | ||||
| 	{ | ||||
|     public void perform() { | ||||
|         try { | ||||
|             boolean needsGateManagerUpdate = false; | ||||
|  | ||||
| @@ -61,10 +53,8 @@ public class CommandOpen extends BaseCommand | ||||
|             } | ||||
|  | ||||
|             sendMessage(ChatColor.GREEN + "The gate was opened."); | ||||
| 		}  | ||||
| 		catch (Exception e) { | ||||
|         } catch (Exception e) { | ||||
|             sendMessage(ChatColor.RED + e.getMessage()); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -21,11 +21,9 @@ import org.bukkit.ChatColor; | ||||
|  | ||||
| import de.craftinc.gates.Plugin; | ||||
|  | ||||
| public class CommandRemove extends BaseCommand { | ||||
|  | ||||
| public class CommandRemove extends BaseCommand | ||||
| { | ||||
| 	public CommandRemove() | ||||
| 	{ | ||||
|     public CommandRemove() { | ||||
|         aliases.add("delete"); | ||||
|         aliases.add("del"); | ||||
|         aliases.add("remove"); | ||||
| @@ -43,9 +41,7 @@ public class CommandRemove extends BaseCommand | ||||
|         senderMustBePlayer = false; | ||||
|     } | ||||
|  | ||||
| 	 | ||||
| 	public void perform()  | ||||
| 	{ | ||||
|     public void perform() { | ||||
|         Plugin.getPlugin().getGatesManager().handleDeletion(gate); | ||||
|         GateBlockChangeSender.updateGateBlocks(gate, true); | ||||
|         sendMessage(ChatColor.GREEN + "Gate with id '" + gate.getId() + "' was deleted."); | ||||
|   | ||||
| @@ -21,11 +21,9 @@ import org.bukkit.ChatColor; | ||||
| import de.craftinc.gates.GatesManager; | ||||
| import de.craftinc.gates.Plugin; | ||||
|  | ||||
| public class CommandRename extends BaseCommand { | ||||
|  | ||||
| public class CommandRename extends BaseCommand  | ||||
| { | ||||
| 	public CommandRename()  | ||||
| 	{ | ||||
|     public CommandRename() { | ||||
|         aliases.add("rename"); | ||||
|         aliases.add("rn"); | ||||
|  | ||||
| @@ -45,15 +43,13 @@ public class CommandRename extends BaseCommand | ||||
|     } | ||||
|  | ||||
|  | ||||
| 	public void perform()  | ||||
| 	{ | ||||
|     public void perform() { | ||||
|         String newId = parameters.get(1); | ||||
|         GatesManager gatesManager = Plugin.getPlugin().getGatesManager(); | ||||
|  | ||||
|         if (gatesManager.gateExists(newId)) { | ||||
|             sendMessage(ChatColor.RED + "Cannot rename " + gate.getId() + ". There is already a gate named " + newId + "."); | ||||
| 		} | ||||
| 		else { | ||||
|         } else { | ||||
|             String oldId = gate.getId(); | ||||
|  | ||||
|             gate.setId(newId); | ||||
| @@ -62,5 +58,4 @@ public class CommandRename extends BaseCommand | ||||
|             sendMessage(ChatColor.GREEN + "Gate " + gate.getId() + " is now known as " + newId + "."); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -21,38 +21,27 @@ import org.bukkit.ChatColor; | ||||
|  | ||||
| import de.craftinc.gates.Plugin; | ||||
|  | ||||
| public class CommandUnhide extends BaseCommand { | ||||
|  | ||||
| public class CommandUnhide extends BaseCommand | ||||
| { | ||||
| 	 | ||||
| 	public CommandUnhide() | ||||
| 	{ | ||||
|     public CommandUnhide() { | ||||
|         aliases.add("unhide"); | ||||
|         aliases.add("u"); | ||||
|  | ||||
|         requiredParameters.add("id"); | ||||
| 		 | ||||
|         helpDescription = "Make that gate visible"; | ||||
| 		 | ||||
|         requiredPermission = Plugin.permissionManage; | ||||
| 		 | ||||
|         needsPermissionAtCurrentLocation = false; | ||||
|         shouldPersistToDisk = true; | ||||
|         senderMustBePlayer = false; | ||||
|     } | ||||
|  | ||||
| 	 | ||||
| 	public void perform()  | ||||
| 	{ | ||||
| 		try  | ||||
| 		{ | ||||
|     public void perform() { | ||||
|         try { | ||||
|             gate.setHidden(false); | ||||
|             GateBlockChangeSender.updateGateBlocks(gate); | ||||
|             sendMessage(ChatColor.GREEN + "The gate " + gate.getId() + " is now visible."); | ||||
| 		} | ||||
| 		catch (Exception e) { | ||||
|         } catch (Exception e) { | ||||
|             sendMessage(ChatColor.RED + e.getMessage()); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user
	 Tobias Ottenweller
					Tobias Ottenweller