@Override public void setLines(String[] text) { for(int i = 0; i < 4; i++) { pie.setLine(i, text[i]); } }
@Override public boolean signCreate(SignChangeEvent event) { event.setLine(1, ChatColor.GREEN + "Quit"); return true; }
@Override public void setLine(int index, String text) { pie.setLine(index, text); }
@EventHandler(priority = EventPriority.LOWEST) public static void filterGarbage(SignChangeEvent event) { for (int i = 0; i < 4; ++i) { String line = event.getLine(i); StringBuilder output = new StringBuilder(line.length()); for (char character : line.toCharArray()) { if (character < 0xF700 || character > 0xF747) { output.append(character); } } event.setLine(i, output.toString()); } } }
@Override public boolean signCreate(SignChangeEvent event) { event.setLine(1, ChatColor.GREEN + "Teleport"); if(event.getLine(2).isEmpty()){ return false; } else{ return event.getLine(2).matches("-?[0-9]+,[0-9]+,-?[0-9]+"); } }
@Override public boolean signCreate(SignChangeEvent event) { if(event.getLine(2).matches("[0-9]+")){ event.setLine(1, ChatColor.GREEN + "Score"); if(TeamColor.matchColor(event.getLine(3)) != null){ TeamColor col = TeamColor.matchColor(event.getLine(3)); event.setLine(3, col.getColor() + MinigameUtils.capitalize(col.toString())); } else event.setLine(3, ""); return true; } return false; }
@Override public boolean signCreate(SignChangeEvent event) { event.setLine(1, ChatColor.GREEN + "Team"); if(TeamColor.matchColor(event.getLine(2)) != null || event.getLine(2).equalsIgnoreCase("neutral")){ if(event.getLine(2).equalsIgnoreCase("neutral")){ event.setLine(2, ChatColor.GRAY + "Neutral"); } else{ TeamColor col = TeamColor.matchColor(event.getLine(2)); event.setLine(2, col.getColor() + MinigameUtils.capitalize(col.toString().replace("_", " "))); } return true; } event.getPlayer().sendMessage(ChatColor.RED + "[Minigames] " + ChatColor.WHITE + MinigameUtils.formStr("sign.team.invalidFormat", "\"red\", \"blue\" or \"neutral\"")); return false; }
@Override public boolean signCreate(SignChangeEvent event) { if (plugin.getMinigameManager().hasMinigame(event.getLine(2))) { event.setLine(1, ChatColor.GREEN + "Bet"); event.setLine(2, plugin.getMinigameManager().getMinigame(event.getLine(2)).getName(false)); if(event.getLine(3).matches("[0-9]+")){ event.setLine(3, "$" + event.getLine(3)); } return true; } event.getPlayer().sendMessage(ChatColor.RED + "[Minigames] " + ChatColor.WHITE + MinigameUtils.formStr("minigame.error.noMinigameName", event.getLine(2))); return false; }
@Override public boolean signCreate(SignChangeEvent event) { event.setLine(1, ChatColor.GREEN + "Finish"); if (!event.getLine(2).isEmpty() && plugin.getMinigameManager().hasMinigame(event.getLine(2))) { event.setLine(2, plugin.getMinigameManager().getMinigame(event.getLine(2)).getName(false)); } else if(!event.getLine(2).isEmpty()){ event.getPlayer().sendMessage(ChatColor.RED + "[Minigames] " + ChatColor.WHITE + MinigameUtils.getLang("minigame.error.noMinigame")); return false; } return true; }
@EventHandler (priority = EventPriority.MONITOR, ignoreCancelled = true) public void onSignChangeMonitor(SignChangeEvent event) { // Prevent players with permissions for creating colored signs from creating menu signs if (event.getLine(0).equalsIgnoreCase(ChatColor.DARK_BLUE + "[menu]") && !event.getPlayer().hasPermission(Permissions.SIGN_CREATE)) { event.setLine(0, ChatColor.stripColor(event.getLine(0))); } }
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void on(SignChangeEvent event) { if (!trim(event, 0).equalsIgnoreCase("[MA]")) { return; } Location location = event.getBlock().getLocation(); String arenaId = trim(event, 1); String signType = trim(event, 2).toLowerCase(); String templateId = trim(event, 3).toLowerCase(); if (templateId.isEmpty()) { templateId = signType; } Player player = event.getPlayer(); try { storesNewSign.store(location, arenaId, templateId, signType); messenger.tell(player, "New " + signType + " sign created for arena " + arenaId); String[] lines = rendersTemplate.render(templateId, arenaId); IntStream.range(0, 4) .forEach(i -> event.setLine(i, lines[i])); } catch (IllegalArgumentException e) { messenger.tell(player, e.getMessage()); } }
@Override public boolean signCreate(SignChangeEvent event) { if(!event.getLine(2).equals("")){ event.setLine(1, ChatColor.GREEN + getName()); return true; } plugin.getPlayerManager().getMinigamePlayer(event.getPlayer()).sendMessage(MinigameUtils.getLang("sign.reward.noName"), MinigameMessageType.ERROR); return false; }
@Override public boolean signCreate(SignChangeEvent event) { if (plugin.getMinigameManager().hasMinigame(event.getLine(2))) { event.setLine(1, ChatColor.GREEN + "Spectate"); event.setLine(2, plugin.getMinigameManager().getMinigame(event.getLine(2)).getName(false)); return true; } event.getPlayer().sendMessage(ChatColor.RED + MinigameUtils.formStr("minigame.error.noMinigameName", event.getLine(2))); return false; }
@EventHandler (priority = EventPriority.HIGH, ignoreCancelled = true) public void onSignChange(SignChangeEvent event) { if (event.getLine(0).equalsIgnoreCase("[menu]") && event.getPlayer().hasPermission(Permissions.SIGN_CREATE)) { if (event.getLine(1).isEmpty()) { event.setLine(0, ChatColor.RED + event.getLine(0)); event.getPlayer().sendMessage(ChatColor.RED + "You must set a valid menu name in the second line."); return; } IconMenu iconMenu = ChestCommands.getFileNameToMenuMap().get(Utils.addYamlExtension(event.getLine(1))); if (iconMenu == null) { event.setLine(0, ChatColor.RED + event.getLine(0)); event.getPlayer().sendMessage(ChatColor.RED + "That menu was not found."); return; } event.setLine(0, ChatColor.DARK_BLUE + event.getLine(0)); event.getPlayer().sendMessage(ChatColor.GREEN + "Successfully created a sign for the menu " + Utils.addYamlExtension(event.getLine(1)) + "."); } }
@Override public boolean signCreate(SignChangeEvent event) { if (plugin.getMinigameManager().hasMinigame(event.getLine(2))) { event.setLine(1, ChatColor.GREEN + "Join"); event.setLine(2, plugin.getMinigameManager().getMinigame(event.getLine(2)).getName(false)); if (Minigames.getPlugin().hasEconomy()) { if(!event.getLine(3).isEmpty() && !event.getLine(3).matches("\\$?[0-9]+(.[0-9]{2})?")){ event.getPlayer().sendMessage(ChatColor.RED + MinigameUtils.getLang("sign.join.invalidMoney")); return false; } else if(event.getLine(3).matches("[0-9]+(.[0-9]{2})?")){ event.setLine(3, "$" + event.getLine(3)); } } else{ event.setLine(3, ""); event.getPlayer().sendMessage(ChatColor.RED + MinigameUtils.getLang("minigame.error.noVault")); } return true; } event.getPlayer().sendMessage(ChatColor.RED + MinigameUtils.formStr("minigame.error.noMinigameName", event.getLine(2))); return false; }
@EventHandler public void onSignChange(SignChangeEvent event) { boolean relevant; try { relevant = event.getLine(0).equalsIgnoreCase("[buycraft_buy]"); } catch (IndexOutOfBoundsException e) { return; } if (!relevant) return; if (!event.getPlayer().hasPermission("buycraft.admin")) { event.getPlayer().sendMessage(ChatColor.RED + "You don't have permission to create this sign."); return; } for (int i = 0; i < 4; i++) { event.setLine(i, ""); } settingUpSigns.put(event.getPlayer().getUniqueId(), BukkitSerializedBlockLocation.create(event.getBlock().getLocation())); event.getPlayer().sendMessage(ChatColor.GREEN + "Navigate to the item you want to set this sign for."); plugin.getViewCategoriesGUI().open(event.getPlayer()); }
@EventHandler(ignoreCancelled = true) public static void onSignChange(SignChangeEvent event) { Block signBlock = event.getBlock(); String[] line = StringUtil.stripColourCodes(event.getLines()); if (!BlockUtil.isSign(signBlock)) { return; } if (!ChestShopSign.isValidPreparedSign(line)) { return; } PreShopCreationEvent preEvent = new PreShopCreationEvent(event.getPlayer(), (Sign) signBlock.getState(), line); ChestShop.callEvent(preEvent); for (byte i = 0; i < event.getLines().length; ++i) { event.setLine(i, preEvent.getSignLine(i)); } if (preEvent.isCancelled()) { return; } ShopCreatedEvent postEvent = new ShopCreatedEvent(preEvent.getPlayer(), preEvent.getSign(), uBlock.findConnectedContainer(preEvent.getSign()), preEvent.getSignLines()); ChestShop.callEvent(postEvent); } }