Эффект по игрокам #2

Версия Minecraft
1.12.2

GoogleTan

Картошка :3
1,354
43
310
Вчера пол дня пыталась сделать эффект всем игрокам в чанке, вроде вышло. Но я вчера вечером еще покопалась и спать пошла. А сегодня запускаю - не работает. Вроде все нормально, не не робит... Короче вот:
Java:
for (int i = 0; i < chunk.getEntityLists().length; i++)//Ищем всех игроков в чанке
{
 if (chunk.getEntityLists()[i].iterator() instanceof EntityPlayer)//Если это игрок то...
    {
EntityPlayer ep = ((EntityPlayer) chunk.getEntityLists()[i].iterator());//Перегоняем в EntityPlayer
ep.addPotionEffect(new PotionEffect(Potion.getPotionById(9), 100));//накладываем эффект
    }
}
 
3,005
192
592
Как ты итератор кастишь к игроку?! За что ты его так?!

Java:
public static void methodName(Chunk chunk) { // на входе чанк
    for (ClassInheritanceMultiMap<Entity> list : chunk.getEntityLists()) { // перебор всех 16 "под" чанков в чанке.
        if (!list.isEmpty()) { // Проверка, что есть хотя бы 1 моб в "под" чанке
            Iterator<Entity> iterator = list.iterator(); // Создание итератора (тут типо все мобы в "под" чанке)
            Entity entity; // Объект моба
            while (iterator.hasNext()) { // Пока есть мобы
                entity = iterator.next(); // Получаем след моба
                if (entity instanceof EntityPlayerMP) { // Проверяем на игрока
                    ((EntityPlayerMP) entity).addPotionEffect(...); // Каст и выдача эффекта
                }
            }
        }
    }
}

Или так:
Java:
public static void methodName(Chunk chunk) {
    for (ClassInheritanceMultiMap<Entity> list : chunk.getEntityLists()) {
        if (!list.isEmpty()) {
            for (Entity entity : list) {
                if (entity instanceof EntityPlayerMP) {
                    ((EntityPlayerMP) entity).addPotionEffect(...);
                }
            }
        }
    }
}

И да, там же "getEntityLists", что по логике показывает, что там несколько листов.
И так же можно было найти данный код:
1568784359065.png
Где показывается, что их 16 и не больше, не меньше.
 
Последнее редактирование:
3,005
192
592
Я как раз пыьтаюсь понять в чем проблем
Читаем сообщение, видим решение....


~~~

Как ты итератор кастишь к игроку?! За что ты его так?!
Я как раз пыьтаюсь понять в чем проблем
 
3,005
192
592
Как рекомендовали бы "мега" люди - хук в добавление ентити в чанк и все.
 
3,005
192
592
Все можно без них.
Надо смотреть код ванили и смотреть, где, что вызывается.
Как вариант - каждый тик проверять прошлым xz и текущим.
Потом проверить чанки.
 
3,005
192
592
Есть такой ивент: EnteringChunk (В EntityEvent)

1568832889186.png

Да... Таблица ивентов и поиск "Chunk"..
 
Сверху