@EventHandler()
    public void onPlayerInteract(PlayerInteractEvent e) {
        Block b = e.getClickedBlock();
        if(b == null || !(b.getState() instanceof Sign)) {
            return;
        }
        Sign s = (Sign)b.getState();
        String lines[] = s.getLines();
        if(!"[dodgeball]".equalsIgnoreCase(lines[0]) || lines[1] == null || lines[1].length() == 0) {
            return;
        }
        if(!lines[1].startsWith("[") || !lines[1].endsWith("]")) {
            return;
        }
        final String name = lines[1].replace("[", "").replace("]", "");
        if(name.trim().length() == 0) {
            return;
        }
        Player p = e.getPlayer();
        executeCommand("join", p, new Iterator<String>() {
            public boolean hasNext() {
                return true;//Always has next
            }

            public String next() {
                return name;//Always return the same String
            }

            public void remove() {//Do not remove
            }
        });
    }