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

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем BeYkeR, 8 май 2014.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Баллы:
    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 Старожил Пользователь

    Баллы:
    173
    Тебе в коде с ошибкой написало место, что за ошибка и в каком месте происходит, и в данном случае - выход за пределы массива.
     
    ql_Nik_lp и kirill2011s нравится это.

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