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

.

Статус
Закрыто для дальнейших ответов.
Код:
 Block block = event.getBlock();
String mir = block.getLocation().getWorld().getName();
int x = block.getLocation().getBlockX();
int y = block.getLocation().getBlockY();
int z = block.getLocation().getBlockZ();
String loc = mir + " " + x + " " + y + " " + z;
Вот как-то так, и потом loc сравнивай. А у тебя страшила какая-то в if.
 
Код:
 Block block = event.getBlock();
String mir = block.getLocation().getWorld().getName();
int x = block.getLocation().getBlockX();
int y = block.getLocation().getBlockY();
int z = block.getLocation().getBlockZ();
String loc = mir + " " + x + " " + y + " " + z;
Вот как-то так, и потом loc сравнивай. А у тебя страшила какая-то в if.
Блин, Вы думаете от этого решиться проблема?..
 
Блин, Вы думаете от этого решиться проблема?..

Условие и в Африке условие, и если код выполняется, значит выполнялось и условие.
Добавьте вывод отладочной информации в консоль, и посмотрите значения ваших переменных.
 
Условие и в Африке условие, и если код выполняется, значит выполнялось и условие.
Добавьте вывод отладочной информации в консоль, и посмотрите значения ваших переменных.
Эх, буду делать, но завтра...
 
Попробуй взять и, понимая алгоритм, с нуля переписать код.
 
Блин, Вы думаете от этого решиться проблема?..
Разве метод equals(Object obj) не сравнивает объекты, т.е. в данном случае Locations и Locations? Ты же сам говоришь if не работает, мог бы догадаться в чем подвох. Надо сравнивать данные, а не объекты. Затести мой способ и точно узнаем.
 
Разве метод equals(Object obj) не сравнивает объекты, т.е. в данном случае Locations и Locations? Ты же сам говоришь if не работает, мог бы догадаться в чем подвох. Надо сравнивать данные, а не объекты. Затести мой способ и точно узнаем.
По вашему способу, это мне и локации флагов надо в String делать?...
УРА, заработало... Правда как-то оно совсем не правильно, Location в String..
 
Последнее редактирование:
По вашему способу, это мне и локации флагов надо в String делать?...
УРА, заработало... Правда как-то оно совсем не правильно, Location в String..
Ну так можно и без String, просто сравнивать каждую из трех координат.
 
Ну так можно и без String, просто сравнивать каждую из трех координат.
Еще хуже как по мне, ну ладно, и так сойдет)
JavaScript:
    @Override
    public void onEnable()
    {
        Collections.addAll(unSeenBlocks, (byte) 8, (byte) 9, (byte) 10, (byte) 11);
        getServer().getPluginManager().registerEvents(this, this);

        locationOfRedFlag = new Location(Bukkit.getWorld((String) config.get("Location.RedFlag.World")), (Double) config.get("Location.RedFlag.X"), (Double) config.get("Location.RedFlag.Y"), (Double) config.get("Location.RedFlag.Z"));
        locationOfRedFlag.getBlock().setTypeIdAndData(35, (byte) 14, true);

        locationOfBlueFlag = new Location(Bukkit.getWorld((String) config.get("Location.BlueFlag.World")), (Double) config.get("Location.BlueFlag.X"), (Double) config.get("Location.BlueFlag.Y"), (Double) config.get("Location.BlueFlag.Z"));
        locationOfBlueFlag.getBlock().setTypeIdAndData(35, (byte) 11, true);

        locationOfGreenFlag = new Location(Bukkit.getWorld((String) config.get("Location.GreenFlag.World")), (Double) config.get("Location.GreenFlag.X"), (Double) config.get("Location.GreenFlag.Y"), (Double) config.get("Location.GreenFlag.Z"));
        locationOfGreenFlag.getBlock().setTypeIdAndData(35, (byte) 5, true);

        locationOfYellowFlag = new Location(Bukkit.getWorld((String) config.get("Location.YellowFlag.World")), (Double) config.get("Location.YellowFlag.X"), (Double) config.get("Location.YellowFlag.Y"), (Double) config.get("Location.YellowFlag.Z"));
        locationOfYellowFlag.getBlock().setTypeIdAndData(35, (byte) 4, true);
    }
И снова здрасти. Как проверить существования чего-то в конфиге? Мне надо чтоб координаты флагов загружались только если они в конфиге уже есть!
 
Еще хуже как по мне, ну ладно, и так сойдет)
JavaScript:
    @Override
    public void onEnable()
    {
        Collections.addAll(unSeenBlocks, (byte) 8, (byte) 9, (byte) 10, (byte) 11);
        getServer().getPluginManager().registerEvents(this, this);

        locationOfRedFlag = new Location(Bukkit.getWorld((String) config.get("Location.RedFlag.World")), (Double) config.get("Location.RedFlag.X"), (Double) config.get("Location.RedFlag.Y"), (Double) config.get("Location.RedFlag.Z"));
        locationOfRedFlag.getBlock().setTypeIdAndData(35, (byte) 14, true);

        locationOfBlueFlag = new Location(Bukkit.getWorld((String) config.get("Location.BlueFlag.World")), (Double) config.get("Location.BlueFlag.X"), (Double) config.get("Location.BlueFlag.Y"), (Double) config.get("Location.BlueFlag.Z"));
        locationOfBlueFlag.getBlock().setTypeIdAndData(35, (byte) 11, true);

        locationOfGreenFlag = new Location(Bukkit.getWorld((String) config.get("Location.GreenFlag.World")), (Double) config.get("Location.GreenFlag.X"), (Double) config.get("Location.GreenFlag.Y"), (Double) config.get("Location.GreenFlag.Z"));
        locationOfGreenFlag.getBlock().setTypeIdAndData(35, (byte) 5, true);

        locationOfYellowFlag = new Location(Bukkit.getWorld((String) config.get("Location.YellowFlag.World")), (Double) config.get("Location.YellowFlag.X"), (Double) config.get("Location.YellowFlag.Y"), (Double) config.get("Location.YellowFlag.Z"));
        locationOfYellowFlag.getBlock().setTypeIdAndData(35, (byte) 4, true);
    }
И снова здрасти. Как проверить существования чего-то в конфиге? Мне надо чтоб координаты флагов загружались только если они в конфиге уже есть!
Метод isSet()
 
Спасиб :D
UPD.

Уже дошло у меня до Создание арены

Допустим у меня есть 2 локации блоков, ну т.е. Location либо X, Y, Z в общем все-что надо.
Мне надо работать с кубоидом.
Ну например отменить событие ломания блока, или еще что-то если блок находиться в кубоиде?
Тут скорее математика, чем Bukkit но у меня и с тем и с тем плоховато :D
Как можно определить, находиться ли блок внутри этого кубоида?
 
Спасиб :D
UPD.

Уже дошло у меня до Создание арены

Допустим у меня есть 2 локации блоков, ну т.е. Location либо X, Y, Z в общем все-что надо.
Мне надо работать с кубоидом.
Ну например отменить событие ломания блока, или еще что-то если блок находиться в кубоиде?
Тут скорее математика, чем Bukkit но у меня и с тем и с тем плоховато :D
Как можно определить, находиться ли блок внутри этого кубоида?
http://www.rubukkit.org/threads/dev-mathpluginslib-v1-0-matematika-dlja-plaginov-1-0.85221/
 
Спасибо :D
И теперь довольно сложный вопрос. Как УДАЛИТЬ что либо из конфига? Искал методы, но ничего связанного с DELETE/REMOVE не нашел. Или же это надо каким-то другим способом замутить?..
 
Спасибо :D
И теперь довольно сложный вопрос. Как УДАЛИТЬ что либо из конфига? Искал методы, но ничего связанного с DELETE/REMOVE не нашел. Или же это надо каким-то другим способом замутить?..
config.set(путь, null)
 
А разве это все полностью удалит?
Ну к примеру у меня конфиг такой:
Код:
    Блабла:
        Блабла:
            БлаблаБлабла: 42
Разве не останется:
Код:
    Блабла:
        Блабла:
            БлаблаБлабла:
?
Мне же как-бы и "путь" к данным надо удалить.
 
А разве это все полностью удалит?
Ну к примеру у меня конфиг такой:
Код:
    Блабла:
        Блабла:
            БлаблаБлабла: 42
Разве не останется:
Код:
    Блабла:
        Блабла:
            БлаблаБлабла:
?
Мне же как-бы и "путь" к данным надо удалить.
Читайте документацию
If value is null, the entry will be removed. Any existing entry will be replaced, regardless of what the new value is.
Если нужно удалять всю секцию, значит ей и надо сетить нулл
 
Читайте документацию

Если нужно удалять всю секцию, значит ей и надо сетить нулл
Тогда спасибо :D
Ругается на все переменные кроме team типо "они использованы, но к ним нет доступа", в чем может быть проблема?
JavaScript:
    @Override
    public void onEnable()
    {
        this.config = getConfig();
        //Реализовать загрузку арен с конфига.
        for (int get = 1; get <= 16; get++)
        {
            if (config.isSet(helper.getStringTeam(get) + ".Arena"))
            {
                String team = helper.getStringTeam(get);
                String worldOne, worldTwo, worldFlag, worldSpawn;
                int xOne, xTwo, xFlag, xSpawn;
                int yOne, yTwo, yFlag, ySpawn;
                int zOne, zTwo, zFlag, zSpawn;
                worldOne = config.getString(team + ".Arena.OnePosition.World");
                xOne = config.getInt(team + ".Arena.OnePosition.X");
                yOne = config.getInt(team + ".Arena.OnePosition.Y");
                zOne = config.getInt(team + ".Arena.OnePosition.Z");
                worldTwo = config.getString(team + ".Arena.TwoPosition.World");
                xTwo = config.getInt(team + ".Arena.TwoPosition.X");
                yTwo = config.getInt(team + ".Arena.TwoPosition.Y");
                zTwo = config.getInt(team + ".Arena.TwoPosition.Z");
                worldFlag = config.getString(team + ".Arena.FlagPosition.World");
                xFlag = config.getInt(team + ".Arena.FlagPosition.X");
                yFlag = config.getInt(team + ".Arena.FlagPosition.Y");
                zFlag = config.getInt(team + ".Arena.FlagPosition.Z");
                worldSpawn = config.getString(team + ".Arena.SpawnPosition.World");
                xSpawn = config.getInt(team + ".Arena.SpawnPosition.X");
                ySpawn = config.getInt(team + ".Arena.SpawnPosition.Y");
                zSpawn = config.getInt(team + ".Arena.SpawnPosition.Z");
            }
        }
    }
 
Ну попробуй убери int xOne, xTwo, xFlag, ...
Сразу определяй им значения: int xOne = config.getInt(...
Приведи ошибку дословно.
 
1de499d33663.png
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх