Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Плагин [DEV] CustomGUI v1.1 - GUI API для плагинов [1.2.5]

Тема в разделе "Релизы плагинов", создана пользователем makkarpov, 26 июл 2012.

  1. slenky

    slenky Модератор

    Баллы:
    173
    Skype:
    slenky2
    !yaoming!
     
  2. Хостинг MineCraft
    <
  3. AvengeR

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

    Баллы:
    88
    Разобрался с кнопкой (Первый плагин пишу, же.), примерный код в ивентах будет таковым
    Код:
        public void onGuiEvent(GuiEvent event)
            {
            switch (event.clickedBtnId) {
                case 0: event.user.chat("/kit vipa"); break;
                 case 1: event.user.chat("/kit vipb"); break;
                case 2: event.user.chat("/kit vipc"); break;
     
            }
        }
    Первая кнопка > пишем в чат /kit vipa
    Вторая кнопка > пишем в чат /kit vipb и т.д.
     
  4. Автор темы
    makkarpov

    makkarpov Активный участник Пользователь

    Баллы:
    88
    Нету проверки на WinID. Если другой плагин откроет окно, в котором будет кнопка 0, и юзер её нажмет, то он получит /kit vipa
     
    AvengeR нравится это.
  5. AvengeR

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

    Баллы:
    88
    Код:
    public void onGuiEvent(GuiEvent event)
            {
            if (!event.windowId.equals("Panel")) return;
            switch (event.clickedBtnId) {
            case 0: event.user.chat("/kit vipa"); break;
            case 1: event.user.chat("/kit vipb"); break;
            case 2: event.user.chat("/kit vipc"); break;
            case 3: event.user.chat("/kit food"); break;
            case 4: event.user.chat("/kit pet"); break;
            }
        }
    Так?

    А ещё, у меня не получается сделать так, чтобы ивенты выполнялись а затем gui закрывался.
    Через GuiScreen.CLOSE ивент не выполняется, а просто закрывается.
     
  6. Автор темы
    makkarpov

    makkarpov Активный участник Пользователь

    Баллы:
    88
    Правильно.

    GuiScreen.CLOSE - закрыть GUI без ивента
    GuiScreen.KEEP - оставить GUI, отослать ивент (чтобы не было мерцания между окошками)
    <нет аргументов> - закрыть GUI, отослать ивент
     
    AvengeR нравится это.
  7. AvengeR

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

    Баллы:
    88
    А можно как-то реализовать НЕ редактируемый текст в текст-боксе (Можно даже с ползунками как в креатив-листе) ? Всякие там мини-гайды писать.
     
    DavidShabaev нравится это.
  8. Автор темы
    makkarpov

    makkarpov Активный участник Пользователь

    Баллы:
    88
    Опцию "read-only" добавлю. С скроллом могут быть проблемы.

    И да, у нас мини-гайды пишутся так.
     
    Vedroyder нравится это.
  9. AvengeR

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

    Баллы:
    88
    Неплохая реализация книг. Но хотелось бы, чтобы прямо в GUI люди видели описание кнопок. Например расширить приват вниз/вверх.
     
  10. AvengeR

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

    Баллы:
    88
    Сделал я несколько меню. Как мне WindowID привязать к меню?

    Код:
    public void onGuiEvent(GuiEvent event)
            {     
                        if (!event.windowId.equals("Panel")) return;
                    switch (event.clickedBtnId) {
                            case 0: event.user.chat("/kit food"); break;
                            case 1: event.user.chat("/kit tools"); break;
                            case 2: event.user.chat("/kit pet"); break;
                            case 3: event.user.chat("/kit vipa"); break;
                            case 4: event.user.chat("/kit vipb"); break;
                case 5: event.user.chat("/kit vipc"); break;
                case 6: displayPrivat(event.user); break;
                            }
                            if (!event.windowId.equals("PanelT")) return;
                    switch (event.clickedBtnId) {
                            case 0: event.user.chat("/home set"); break;
                            case 1: event.user.chat("/home"); break;
                            case 2: event.user.chat("/spawn"); break;
                            case 3: event.user.chat("/money"); break;
                            case 4: displayJobs(event.user); break;
                            }
                            if (!event.windowId.equals("Jobs")) return;
                    switch (event.clickedBtnId) {
                            case 0: event.user.chat("/jobs list"); break;
                            case 1: event.user.chat("/jobs join miner"); break;
                            case 2: event.user.chat("/jobs join builder"); break;
                            case 3: event.user.chat("/jobs join digger"); break;
                            case 4: event.user.chat("/jobs join farmer"); break;
                            case 5: event.user.chat("/jobs join soldier"); break;
                            case 6: event.user.chat("/jobs join digger"); break;
                            case 7: displayJobs(event.user); break;
                            }
    /\ данный метод написан крабом (то есть мной) и не работает.
     
  11. Автор темы
    makkarpov

    makkarpov Активный участник Пользователь

    Баллы:
    88
    Код:
    if (event.windowId.equals("Id1")) {
     
    switch (....)....
     
    }
     
     
    if (event.windowId.equals("Id2")) {
     
    switch (....)....
     
    }
     
     
    if (event.windowId.equals("Id3")) {
     
    switch (....)....
     
    }
    
     
    AvengeR нравится это.
  12. AvengeR

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

    Баллы:
    88
    Код:
                        if (!event.windowId.equals("Panel")) {
                    switch (event.clickedBtnId) {
                            case 0: event.user.chat("/kit food"); break;
                            case 1: event.user.chat("/kit tools"); break;
                            case 2: event.user.chat("/kit pet"); break;
                            case 3: event.user.chat("/kit vipa"); break;
                            case 4: event.user.chat("/kit vipb"); break;
                case 5: event.user.chat("/kit vipc"); break;
                case 6: displayPrivat(event.user); break;
                            }}
                            if (!event.windowId.equals("Privat")) {
                    switch (event.clickedBtnId) {
                            case 0: event.user.chat("/home set"); break;
                            case 1: event.user.chat("/home"); break;
                            case 2: event.user.chat("/spawn"); break;
                            case 3: event.user.chat("/money"); break;
                            case 4: displayRabota(event.user); break;
                            }}
                            if (!event.windowId.equals("Rabota")) {
                    switch (event.clickedBtnId) {
                            case 0: event.user.chat("/jobs list"); break;
                            case 1: event.user.chat("/jobs join miner"); break;
                            case 2: event.user.chat("/jobs join builder"); break;
                            case 3: event.user.chat("/jobs join digger"); break;
                            case 4: event.user.chat("/jobs join farmer"); break;
                            case 5: event.user.chat("/jobs join soldier"); break;
                            case 6: event.user.chat("/jobs join digger"); break;
                            }}
    Слетает проверка, все кнопки выполняют рандомную команду из трёх :\
     
    Сникерсни нравится это.
  13. Автор темы
    makkarpov

    makkarpov Активный участник Пользователь

    Баллы:
    88
    Зачем ты отрицание в проверку WinID поставил? У меня в коде его не было
     
  14. AvengeR

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

    Баллы:
    88
    Код:
                       
                    if (!event.windowId.equals("Panel")) return; {
                    switch (event.clickedBtnId) {
                            case 0: event.user.chat("/kit food"); break;
                            case 1: event.user.chat("/kit tools"); break;
                            case 2: event.user.chat("/kit pet"); break;
                            case 3: event.user.chat("/kit vipa"); break;
                            case 4: event.user.chat("/kit vipb"); break;
                            case 5: event.user.chat("/kit vipc"); break;
                            case 6: displayPrivat(event.user); break;
                            }}
                    if (!event.windowId.equals("Privat")) return;{
                    switch (event.clickedBtnId) {
                            case 0: event.user.chat("/home set"); break;
                            case 1: event.user.chat("/home"); break;
                            case 2: event.user.chat("/spawn"); break;
                            case 3: event.user.chat("/money"); break;
                            case 4: displayRabota(event.user); break;
                            }}
                     if (!event.windowId.equals("Rabota")) return; {
                    switch (event.clickedBtnId) {
                            case 0: event.user.chat("/jobs list"); break;
                            case 1: event.user.chat("/jobs join miner"); break;
                            case 2: event.user.chat("/jobs join builder"); break;
                            case 4: event.user.chat("/jobs join digger"); break;
                            case 5: event.user.chat("/jobs join farmer"); break;
                            case 6: event.user.chat("/jobs join soldier"); break;
                            case 7: event.user.chat("/jobs join digger"); break;
                            }}
    Всё равно не работает :C
     
  15. Автор темы
    makkarpov

    makkarpov Активный участник Пользователь

    Баллы:
    88
    facepalm.jpg.

    Под отрицанием я имел ввиду знак ! перед сравнением.
     
  16. ufes

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

    Баллы:
    173
    думаешь он понял?
     
  17. AvengeR

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

    Баллы:
    88
    Понял, конечно же.
     
    МиднайтЖелаетВамДобра и ufes нравится это.
  18. Автор темы
    makkarpov

    makkarpov Активный участник Пользователь

    Баллы:
    88
    Updated. Updated #2
    Забыл включить текстуры в архив.
     
  19. AvengeR

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

    Баллы:
    88
    Документация будет?) Как использовать/вызвать опции?
     
  20. Toxuin

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

    Баллы:
    103
    Автору респект и уважуха за программирование модов. Кстати, может гитхаб?..
     
    ufes и mayor123 нравится это.
  21. skynetxxx

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

    Баллы:
    123
    Имя в Minecraft:
    skynetxxx
    Сорри, я нуб в этом, но добавление этих строк обязательно?
    То есть с BuildCraft, RedPower или IndustrialCraft этот плагин по умолчанию работать не будет?
     

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