1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

.

Тема в разделе "Разработка плагинов для новичков", создана пользователем Mr_RoboMan, 26 фев 2015.

Статус темы:
Закрыта.
  1. InterVi

    InterVi Старожил Пользователь

    Баллы:
    173
    Код:
     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.
     
  2. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Блин, Вы думаете от этого решиться проблема?..
     
  3. Sirse

    Sirse Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    Sirse
    Условие и в Африке условие, и если код выполняется, значит выполнялось и условие.
    Добавьте вывод отладочной информации в консоль, и посмотрите значения ваших переменных.
     
  4. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Эх, буду делать, но завтра...
     
  5. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Попробуй взять и, понимая алгоритм, с нуля переписать код.
     
  6. InterVi

    InterVi Старожил Пользователь

    Баллы:
    173
    Разве метод equals(Object obj) не сравнивает объекты, т.е. в данном случае Locations и Locations? Ты же сам говоришь if не работает, мог бы догадаться в чем подвох. Надо сравнивать данные, а не объекты. Затести мой способ и точно узнаем.
     
  7. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    По вашему способу, это мне и локации флагов надо в String делать?...
    УРА, заработало... Правда как-то оно совсем не правильно, Location в String..
     
    Последнее редактирование: 1 мар 2015
  8. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Ну так можно и без String, просто сравнивать каждую из трех координат.
     
  9. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Еще хуже как по мне, ну ладно, и так сойдет)
    Код:
        @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);
        }
    
    И снова здрасти. Как проверить существования чего-то в конфиге? Мне надо чтоб координаты флагов загружались только если они в конфиге уже есть!
     
  10. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Метод isSet()
     
  11. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Спасиб :D
    UPD.

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

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

    kirill2011s Старожил Пользователь

    Баллы:
    103
    http://www.rubukkit.org/threads/dev-mathpluginslib-v1-0-matematika-dlja-plaginov-1-0.85221/
     
  13. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Спасибо :D
    И теперь довольно сложный вопрос. Как УДАЛИТЬ что либо из конфига? Искал методы, но ничего связанного с DELETE/REMOVE не нашел. Или же это надо каким-то другим способом замутить?..
     
  14. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    config.set(путь, null)
     
  15. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    А разве это все полностью удалит?
    Ну к примеру у меня конфиг такой:
    Код:
        Блабла:
            Блабла:
                БлаблаБлабла: 42
    
    Разве не останется:
    Код:
        Блабла:
            Блабла:
                БлаблаБлабла:
    
    ?
    Мне же как-бы и "путь" к данным надо удалить.
     
  16. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    config.set("Блабла", null)
     
  17. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Читайте документацию
    Если нужно удалять всю секцию, значит ей и надо сетить нулл
     
  18. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Тогда спасибо :D
    Ругается на все переменные кроме team типо "они использованы, но к ним нет доступа", в чем может быть проблема?
    Код:
        @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");
                }
            }
        }
    
     
  19. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Ну попробуй убери int xOne, xTwo, xFlag, ...
    Сразу определяй им значения: int xOne = config.getInt(...
    Приведи ошибку дословно.
     
  20. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
Статус темы:
Закрыта.

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