public void triggerSign(TriggerType type, Object data) {
        InputState is = this.getInput(1, (BlockRedstoneEvent) data);

        if (lastState != InputState.HIGH && is == InputState.HIGH) {
            List<org.bukkit.entity.Player> players = getLocation().getWorld().getPlayers();

            for (org.bukkit.entity.Player player : players) {
                if (player.getLocation().getBlockX() < x1)
                    continue;
                if (player.getLocation().getBlockX() > x2)
                    continue;
                if (player.getLocation().getBlockY() < y1)
                    continue;
                if (player.getLocation().getBlockY() > y2)
                    continue;
                if (player.getLocation().getBlockZ() < z1)
                    continue;
                if (player.getLocation().getBlockZ() > z2)
                    continue;

                Functions.sendMessage(player, ChatColor.translateAlternateColorCodes('&', message), ChatColor.translateAlternateColorCodes('&', prefix));
            }
        }

        lastState = is;
    }