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

Разбираемся в API WorldEdit'а

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

  1. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @VaNnOrus, ну тут явно выражение не закрыто. Вот если закрыть, он после этого будет ругаться на классы и тогда скорее всего подтянет. В эклипсе так же бывает.
     
  2. DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    @VaNnOrus
    да ни.
    Просто опечатка в слове instanceof
    UPD:
    такие вещи лучше пусть пишет сам IDE, меньше шансов опечатку оставить.
    т.е. вводим i[enter] => он заменяет на instanceof
    UPD2:
    Еще одно преимущество Intellij IDEA:
    instaceof.png
     
    Сникерсни и VaNnOrus нравится это.
  3. Автор темы
    VaNnOrus

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

    Баллы:
    123
    Спасибо, проглазел..)

    К слову, нашел таки плагин аналогичный commandhelper'у, который умеет запускать команды с правами опа: mycommand.
    Но плагин написать все же попытаюсь, правда теперь чуть позже:oops:

    upd. Как я жестоко ошибался, не хочет mycommand запускать из под опа каманды :(
     
  4. Автор темы
    VaNnOrus

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

    Баллы:
    123
    fromgate, вот получил я крайние координаты, теперь надо установить на них выделение, чтоб появилась сетка we cui. Не пойму что дальше писать...как запустить функцию выделения?
    Вроде эта функция выделяет по двум блокам:
    Код:
    CuboidSelection(org.bukkit.World world, org.bukkit.Location pt1, org.bukkit.Location pt2) 
     
  5. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Зачем выделять? Что с выделенной территорией будет происходить?
     
  6. yar1k

    yar1k Активный участник

    Баллы:
    63
    Имя в Minecraft:
    yar1k
    Простите за спам, но кто подскажет, когда на форуме можно создавать темы?
    Написал мини плагин, хочу под суд отдать...
    P.S.
    Вот файл, кому интересно: Скачать
    /tools - выдает итемы с интервалом заданым в конфиге
    (id итемов тоже в конфиге указывать).
    /clear - очищает инвентарь.
     
    ПриветОтМиднайта нравится это.
  7. Автор темы
    VaNnOrus

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

    Баллы:
    123
    Нужно просто выделить и, как следствие, показать юзверю сетку. Потом юзверь может заприватить другой командой.
    Если не ошибаюсь 10 сообщений надо набрать. Команда /clear уже есть в сервере.
     
  8. yar1k

    yar1k Активный участник

    Баллы:
    63
    Имя в Minecraft:
    yar1k
    Спасибо :) Про /clear тоже не знал. Но пускай пока будет)
     
  9. smilesdc

    smilesdc Няша Модератор

    Баллы:
    153
    Имя в Minecraft:
    smilesdc
    Почитав все, я понял только то, что Вы хотите взять чанк игрока, и заприватить его на его имя?
    Достаточно найти функцию в API и передать ей в виде аргументов координаты, имя...
     
  10. Автор темы
    VaNnOrus

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

    Баллы:
    123
    Нет, мне надо еще игроку сетку показать, это апи ВЕшки. Я не пойму как функцию запустить в коде у себя...
     
  11. smilesdc

    smilesdc Няша Модератор

    Баллы:
    153
    Имя в Minecraft:
    smilesdc
    Ну, чтобы сетку сделать, нужно пакет слать... Это так просто не сделаешь..(
     
    I-Am-Black-Overlord и slavik123123123 нравится это.
  12. Автор темы
    VaNnOrus

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

    Баллы:
    123
    Я хотел просто с гитхаба взять функцию, мне fromgate сказал что лучше апи юзать, как с помощью апи функцию запустить я не понимаю :(
     
  13. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @VaNnOrus, просто Вы себе ноги сломаете, пока будете функцию sk89q засовывать в свой плагин. В итоге получится безумная и страшная конструкция. Проще попробовать найти в API WE нужные Вам функции и использовать именно их.
     
    ITrAnEI и DPOH-VAR нравится это.
  14. Автор темы
    VaNnOrus

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

    Баллы:
    123
    Да я не понимаю как запустить что-либо вообще из апи ве...
    Что там хоть примерно писать?
    Я же не могу написать:
    Код:
    if (sender instanceof Player) {
    Player player = (Player) sender;
    Chunk ch = player.getLocation().getChunk();
    int maxWorldHeight = player.getWorld().getMaxHeight();
    Block block1 = ch.getBlock(0, 0, 0);
    Block block2 = ch.getBlock(15, maxWorldHeight, 15);
    CuboidSelection(World player.getWorld(), Location block1, Location block2);
                    return true;
              }
    CuboidSelection(World player.getWorld(), Location block1, Location block2); мне среда сразу красным выделяет, то есть очевидно, что я пишу что-то не то...

    Может нужно сначала написать public static void ?
     
  15. smilesdc

    smilesdc Няша Модератор

    Баллы:
    153
    Имя в Minecraft:
    smilesdc
    Неет, если CuboidSelection - это класс, то у него вряд ли конструктор из (World, Loc,Loc);
    К тому же нельзя присваивать вот так World player.getWorld()...
    Найдите класс, в котором есть CuboidSelection, объявите его, public Class name;
    Потом в конструкции if, name.CuboidSelection и смотрите какие аргументы он принимает.
     
  16. Автор темы
    VaNnOrus

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

    Баллы:
    123
    Ну вот из апи текст:
    Нашел тут пример использования апи WG
    Быть может я так же должен писать CuboidSelection через CuboidSelection имя = new CuboidSelection(и т.д.)?
     
  17. Автор темы
    VaNnOrus

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

    Баллы:
    123
    fromgate, smilesdc
    Да, вроде через CuboidSelection имя = new CuboidSelection(бла бла) апи и юзается, однако нетбинс почему-то не признает org.bukkit.World world :

    Безымянный.JPG

    С чем это связано? Тот же org.bukkit.Location ничем не выделяется. Никакого импорта не предлагает, видимо дело не в нем...
     
  18. smilesdc

    smilesdc Няша Модератор

    Баллы:
    153
    Имя в Minecraft:
    smilesdc
    Пиши просто World и Location.
    Блин, не может так использоваться... Хз, ты не правильно делаешь...(
     
  19. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Подождите, вы же вызываете конструктор CuboidSelection и в нем же пытаетесь объявить новые переменные. В описании все правильно написано CuboidSelection(org.bukkit.World world, org.bukkit.Location pt1, org.bukkit.Location pt2), но переменные world, pt1, pt2 уже должны быть инициализированы выше.

    Например (пишу прямо тут, потому могут быть ошибки):
    У нас есть игрок и мы хотим выделить чанк:

    Код:
    Chunk ch = player.getLocation().getChunk();
    World world = ch.getWorld();
    Location pt1 = ch.getBlock(0,0,0).getLocation();
    Location pt2 = ch.getBlock(15,world.getMaxHeight(),15).getLocation();
    CuboidSelection sel = new CuboidSelection (world, pt1, pt2);
     
    ITrAnEI, VaNnOrus, MrRazull и ещё 1-му нравится это.
  20. fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Т.е. в вашем примере, надо просто удалить название классов и оставить world, bl1, bl2
     

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