public static void signClick(PlayerInteractEvent event, PlayerHolder am) { /// Get our sign final Sign sign = (Sign) event.getClickedBlock().getState(); /// Check to see if sign has correct format (is more efficient than doing string manipulation ) if (!sign.getLine(0).matches("^.[0-9a-fA-F]\\*.*$") && !sign.getLine(0).matches("^\\[.*$")) { return; } final Action action = event.getAction(); if (action != Action.LEFT_CLICK_BLOCK && action != Action.RIGHT_CLICK_BLOCK) { return; } if (action == Action.LEFT_CLICK_BLOCK) { // / Dont let them break the sign event.setCancelled(true); } final ArenaClass ac = ArenaClassController.getClass( MessageUtil.decolorChat(sign.getLine(0)) .replace('*', ' ') .replace('[', ' ') .replace(']', ' ') .trim()); ArenaClassController.changeClass(event.getPlayer(), am, ac); }