Помогите как вытащить из массива один key и получить к нему значение

Статус
Закрыто для дальнейших ответов.

JolyHoska

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
JolyNoska
Вот у меня есть код:
Код:
    public static ArmorStand create(int amount, String name, Location loc, Material item) {
        ArmorStand armor = (ArmorStand)loc.getWorld().spawn(loc.clone(), ArmorStand.class);
        ItemStack stack = new ItemStack(item);
        armor.setGravity(false);
        armor.setSmall(true);
        armor.setVisible(false);
        armor.setCustomNameVisible(true);
        armor.setHelmet(stack);
        armor.setCustomName(name);
        astand.put(armor, amount);
        return armor;
    }
    @EventHandler
    public void onClick(PlayerInteractEvent e) {
        if (e.getAction() == Action.RIGHT_CLICK_BLOCK && e.getClickedBlock().getType() == Material.ENDER_CHEST) {
            Location start = e.getClickedBlock().getLocation().add(0.5, -2, 0.5);
            for(double t = 0; t < 2 * Math.PI; t += 0.1) {
                Location news = start.add(0.15 * Math.cos(t), 0.15 * Math.sin(t), 0);
                circle.add(news.clone());
                e.setCancelled(true);
            }
            create(0, "§dДонор", circle.get(0), Material.PRISMARINE_CRYSTALS);
            create(8, "§6V I P", circle.get(8), Material.IRON_SWORD);
            create(16, "§2Креатив", circle.get(16), Material.MAGMA_CREAM);
            create(24, "§9Капрал", circle.get(24), Material.DOUBLE_PLANT);
            create(32, "§cСпонсор", circle.get(32), Material.EMERALD);
            create(40, "§bАдмин", circle.get(40), Material.BLAZE_ROD);
            create(48, "§5Император", circle.get(48), Material.DIAMOND);
            create(56, "§4Создатель", circle.get(56), Material.SPECKLED_MELON);
            new BukkitRunnable() {
                int i = 0;
                public void run() {
                    i++;
                    Iterator<Entry<ArmorStand, Integer>> iter = astand.entrySet().iterator();
                    while(iter.hasNext()) {
                        Entry ent = (Entry)iter.next();
                        int value = (int) ent.getValue();
                        CraftEntity stand = (CraftEntity) ent.getKey();
                        Location loc = circle.get(value+i);
                        stand.getHandle().setPosition(loc.getX(), loc.getY(), loc.getZ());
                    }
                }
            }.runTaskTimerAsynchronously(this, 0, 1);
        }
    }
}


как мне сделать циклический круг, а не это:
upload_2017-11-4_16-23-45.png

он движется, но останавливается внизу блока(НА 0 позиции) я не знаю как мне правильно объяснить, но мне надо чтобы создатель двигался за ДОНОРОМ СПОНСОР ЗА СОздателем и т д, а не разрывалась цепочка
 
Не то, чтобы ты понятно объяснил, но может быть вместо circle.get(value+i) написать circle.get((value + i) % circle.size()); ?
 
Не то, чтобы ты понятно объяснил, но может быть вместо circle.get(value+i) написать circle.get((value + i) % circle.size()); ?
Вот у меня есть круг, я спавню в этом кругу Стеннды, потом я к этим стендам добавляю +1 (по локации) стенды двигаются, но максимальное число в массиве у меня 64, то есть ДОнат к примеру Донор на 0-ой позиции Капрал на 8 Создаетль на 64(ну я некоторые пропустил) потом они вращаются и останавливаются все на 0-ой позиции, мне нужно, чтобы Создатель (на позиции 64) телортировался на 0-ую позицию ну а потом прибавляется +1(то есть 0 1 2 3 4 5... и так до 64, потом опять на ноль и опять +1 2 3) то есть круг, мне надо чтобы все привилегии так крутились, к примеру император(позади Создателя) находится на 56, пока он будет прибавляться по локации он должен будет перейти тоже на 64-ую позицию и на 0. Так и получится кружащийся круг
 
Вот у меня есть круг, я спавню в этом кругу Стеннды, потом я к этим стендам добавляю +1 (по локации) стенды двигаются, но максимальное число в массиве у меня 64, то есть ДОнат к примеру Донор на 0-ой позиции Капрал на 8 Создаетль на 64(ну я некоторые пропустил) потом они вращаются и останавливаются все на 0-ой позиции, мне нужно, чтобы Создатель (на позиции 64) телортировался на 0-ую позицию ну а потом прибавляется +1(то есть 0 1 2 3 4 5... и так до 64, потом опять на ноль и опять +1 2 3) то есть круг, мне надо чтобы все привилегии так крутились, к примеру император(позади Создателя) находится на 56, пока он будет прибавляться по локации он должен будет перейти тоже на 64-ую позицию и на 0. Так и получится кружащийся круг
Ничего не понял, но подозреваю твоя проблема тут:
circle.get(value+i);
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх