@EventHandler(ignoreCancelled = true)
    public void onSignChange(final SignChangeEvent change) {
        if (!change.getPlayer().hasPermission("kiosk.create")) return;

        final Sign state = (Sign) change.getBlock().getState();

        for (int i = 0; i < change.getLines().length; i++)
            state.setLine(i, change.getLines()[i]);

        for (final Kiosk kiosk : this.kiosks)
            if (kiosk.hasTrigger(state)) {
                if (kiosk.create(change.getPlayer(), state))
                    for (int i = 0; i < state.getLines().length; i++)
                        change.setLine(i, state.getLines()[i]);

                return;
            }
    }