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

Помогите Создание страниц из списка для инвентаря

Discussion in 'Разработка плагинов для новичков' started by BeYkeR, May 8, 2014.

  1. Автор темы
    BeYkeR

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

    Trophy Points:
    173
    Добрый вечер. У меня есть инвентарь с размером 27 ячеек и лист с предметами, но затем оказывается что размер листа больше чем ячеек инвентаря. Как сделать "страницы" инвентаря и заполнять их предметами "правильным" образом ?
     
  2. Хостинг MineCraft
    <
  3. kirill2011s

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

    Trophy Points:
    103
    Ну страницы со вкладками сделать нельзя, но можно поместить внизу в правом и нижнем углу такие предметы, при нажатии на которые переключалась страница.
     
  4. Автор темы
    BeYkeR

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

    Trophy Points:
    173
    Я подобную систему делал, но только он отображался неправильно: ставит неправильные цифры, предметы клонируются и т.д.
     
  5. kirill2011s

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

    Trophy Points:
    103
    Ну это уже не наши полномочия... Это вы как-то странно просто заполняете.
     
  6. Автор темы
    BeYkeR

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

    Trophy Points:
    173
    Просто в этих делах я рукожопый))
     
  7. kirill2011s

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

    Trophy Points:
    103
    Попробуйте создать отдельный проект(не плагин, java проект) и отладить все алгоритмы, а потом уже перенести все в плагин.
     
    ql_Nik_lp likes this.
  8. Den_Abr

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

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Положи в хешмап предметы, где ключом будет являться порядковый номер предмета.
    Тоесть на первой странице отображает например с 1 по 27, на второй 28-55 и тд
     
    codeon and Gentalion like this.
  9. Автор темы
    BeYkeR

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

    Trophy Points:
    173
    Можете подать пример? А то что-то не получается.
     
  10. Den_Abr

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

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Пример кинуть не могу, эклипс не рядом. Вот способ попроще и подробнее:
    1. Создаёшь List предметов
    2. В нужном месте инвентаря ложишь предмет с Lore или ещё с чем нибудь, что будет обозначать номер следующей(или предыдущей страницы)
    3. Умножаешь номер страницы на кол-во слотов инвентаря(за исключением незаполняемых) и получившееся число суёшь в цикл for(int i = page; i < кол-во слотов; i++)(если вернуть на первую страницу то 0)
    4. И уже делаешь itemList.get(i), а что делать с полученным предметом сам решаешь
     
    BeYkeR likes this.
  11. Автор темы
    BeYkeR

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

    Trophy Points:
    173
    Сделал по инструкции, получился такой код:
    PHP:
        /**
        * For CustomGUIMenu
        *
        * @param inventory
        */
        
    public void createRecipesPages(Inventory inv){
              
    //Предметы короч
              
    List<ItemStackitemList = new ArrayList<ItemStack>();
              for(
    String name Icons.getRecipesList()){
                  
    ItemStack item Icons.getRecipe(name);
                  
    //Заполняем
                  
    itemList.add(item);
              }
            
              
    int page 1// Как-бэ страница
              
    int pages page inv.getSize(); // "Умножаешь номер страницы на кол-во слотов инвентаря"
              
    for(int i pagepagesi++){
                  
    inv.setItem(itemList.indexOf(itemList.get(i)), itemList.get(i));//Заполняю
              
    }
        }
    Но вылетает такая ошибка:
    Что делать ?
     
  12. ptnk

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

    Trophy Points:
    173
    Тебе в коде с ошибкой написало место, что за ошибка и в каком месте происходит, и в данном случае - выход за пределы массива.
     
    ql_Nik_lp and kirill2011s like this.

Share This Page