Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Не работает sign.setLine(0, "текст")

Bars

Старожил
Девелопер
Пользователь
Баллы
173
Есть табличка Sign sign, при /arena setsign пишет "[Miniger] Табличка привязана", однако на табличке при sign.setLine(0, "текст") ничего не появляется:
Java:
public class ArenaCommand implements CommandExecutor {
    String name = "";
    Location join = null, start = null, end = null;
    int maxplayers = 0;
    Sign sign = null;

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if (command.getName().equalsIgnoreCase("arena") && sender instanceof Player && args.length >= 1) {
            Player p = (Player) sender;
            if (p.hasPermission("miniger.arena.create")) {
                //...
                if (args[0].equalsIgnoreCase("setsign")) {
                    BlockState bs = p.getTargetBlock(null, 5).getState();
                    if ((bs != null) && (bs instanceof Sign)) {
                        sign = (Sign) bs;
                        if (args.length >= 2) sign.setLine(0, args[1]);
                        p.sendMessage("§2[Miniger] §aТабличка привязана");
                    } else {
                        p.sendMessage("§4[Miniger] §cТабличка не найдена");
                    }
                } else if (args.length >= 2 && args[0].equalsIgnoreCase("setmax") && args[1] != "") {
                    try {
                        maxplayers = Integer.parseInt(args[1]);
                        if (maxplayers < 2 || maxplayers > 100) {
                            p.sendMessage("§4[Miniger] §cНедопустимое количество игроков");
                            return true;
                        }
                    } catch (NumberFormatException e) {
                        p.sendMessage("§4[Miniger] §cКоличество игроков должно быть числом");
                        return true;
                    }
                    p.sendMessage("§2[Miniger] §aМаксимум §e"+maxplayers+"§a игроков");
                } else if (args[0].equalsIgnoreCase("reset")) {
                    resetArena();
                    p.sendMessage("§2[Miniger] §aВсе параметры удалены");
                } else if (args[0].equalsIgnoreCase("finish")) {
                    if (name == "") {
                        p.sendMessage("§4[Miniger] §cСперва создайте арену: /arena create <имя>");
                        return true;
                    } else if (maxplayers == 0) {
                        p.sendMessage("§4[Miniger] §cНе указан максимум игроков");
                        return true;
                    } else if (join == null || end == null || start == null) {
                        p.sendMessage("§4[Miniger] §cНе все точки указаны");
                        return true;
                    }
                    sign.setLine(1, name);
                    Manager.getManager().createArena(name, join, start, end, maxplayers, sign);
                    p.sendMessage("§2[Miniger] §aАрена §e"+name+"§a успешно создана");
                    resetArena();
                    return true;
                }
            } else {
                p.sendMessage("§4[Miniger] §cВы не можете создавать арены");
                return true;
            }

            if (p.hasPermission("miniger.arena.tp") && args.length >= 2) {
                if (args[0].equalsIgnoreCase("tojoin")) {
                    p.teleport(Manager.getManager().getArena(args[1]).getJoinLocation());
                } else if (args[0].equalsIgnoreCase("toend")) {
                    p.teleport(Manager.getManager().getArena(args[1]).getEndLocation());
                } else if (args[0].equalsIgnoreCase("tostart")) {
                    p.teleport(Manager.getManager().getArena(args[1]).getStartLocation());
                }
            }
        }
        return false;
    }

    private void resetArena() {
        name = "";
        join = null;
        end = null;
        start = null;
        maxplayers = 0;
        sign = null;
    }
}
 
Последнее редактирование:

Поделиться этой страницей

Назад
Верх