/** * Validates the sign's environment. * * @param signText * @return false to deny */ public static boolean validateEnvironment(CraftBookPlayer player, Vector pt, SignText signText) { ToggleArea area = new ToggleArea(player.getWorldType(), pt, signText); String activeID = area.getSignActiveStateID(); String inactiveID = area.getSignInactiveStateID(); String signNS = area.getSignNamespace(); String playerNS = StringUtil.trimLength(player.getName(), 15); boolean noInactiveCopy = inactiveID.equals("-"); if (!CopyManager.isValidName(activeID)) { player.printError("An invalid area name was indicated."); return false; } if (inactiveID.length() > 0 && !noInactiveCopy && !CopyManager.isValidName(inactiveID)) { player.printError("An invalid off state area name was indicated."); return false; } // Coerce the namespace to the player's name if (signNS.equals("") || signNS.equalsIgnoreCase(playerNS)) { signText.setLine3(playerNS); } else if (signNS.equals("@")) { if (!player.hasPermission("savensarea")) { player.printError("You are unable to make toggles for global areas."); return false; } } else { if (!player.hasPermission("savensarea")) { player.printError("You are unable to make toggles for global areas."); return false; } } if (area.isNewArea) { signText.setLine2("[Area]"); } else { signText.setLine2("[Toggle]"); } player.print("Area toggle created!"); return true; }
/** * Get the on state ID. This may raise a InvalidSignStateID exception if the specified ID is * invalid. * * @return * @throws InvalidSignStateID */ public String getActiveStateID() throws InvalidSignStateID { String id = getSignActiveStateID(); if (CopyManager.isValidName(id)) { return id; } throw new InvalidSignStateID(); }
/** * Get the off state ID. This may raise a InvalidSignStateID exception if the specified ID is * invalid. If the returned string is empty, that means that the area should be cleared. If it is * null, it means that the area should not be changed. * * @return * @throws InvalidSignStateID */ public String getInactiveStateID() throws InvalidSignStateID { String id = getSignInactiveStateID(); if (id.equals("")) { return ""; } else if (id.equals("-")) { return null; } else if (CopyManager.isValidName(id)) { return id; } throw new InvalidSignStateID(); }