Помогите Как получит имя стрелы?

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

OJIEKCAHDP

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
OJIEKCAHDP
Делаю различные стрелы, выдаю игроку:

Код:
        ItemStack arrowtosh = new ItemStack(Material.ARROW, 32);
        ItemMeta metatosh = arrowtosh.getItemMeta();
        
        metatosh.setDisplayName("§7Стрела: §2Тошнота);
         arrowtosh.setItemMeta(metatosh);
        p.getInventory().addItem(arrowtosh);

Как получить имя стрелы (ну или хотя-бы лор), после того, как она попала в энтити?
 
Делаю различные стрелы, выдаю игроку:

Код:
        ItemStack arrowtosh = new ItemStack(Material.ARROW, 32);
        ItemMeta metatosh = arrowtosh.getItemMeta();
      
        metatosh.setDisplayName("§7Стрела: §2Тошнота);
         arrowtosh.setItemMeta(metatosh);
        p.getInventory().addItem(arrowtosh);

Как получить имя стрелы (ну или хотя-бы лор), после того, как она попала в энтити?
Никак, проджектайлы хранят только материал.
 
Никак, проджектайлы хранят только материал.
Как в таком случае устроены некоторые плагины на различные стрелы с эффектами, например когда молния ударяет в игрока или блок в который попала стрела загорается, можете подсказать?
 
Такого нет. Использую 1.12.2 версию
Это следует указывать в посте. В таком случае можно получить стрелу иначе - проверить сначала вторую руку, и если там нет стрелы, то получить первую стрелу в инвентаре - получишь использованную в ивенте стрелу.
 
Это следует указывать в посте. В таком случае можно получить стрелу иначе - проверить сначала вторую руку, и если там нет стрелы, то получить первую стрелу в инвентаре - получишь использованную в ивенте стрелу.
так?
Код:
for(i = 0; i < 36; i++) {
 if (p.getInventory().getItem(i).getItemMeta().getDisplayName().equals("Тошнота")) {
// code
}
}
 
так?
Код:
for(i = 0; i < 36; i++) {
 if (p.getInventory().getItem(i).getItemMeta().getDisplayName().equals("Тошнота")) {
// code
}
}
PHP:
public static ItemStack getArrow(Player player) {
    PlayerInventory inv = player.getInventory();
    ItemStack item = inv.getItemInOffHand();
    if (item.getType() == Material.ARROW) return item;
    int place = inv.first(Material.ARROW);
    return place == -1 ? null : inv.getItem(place);
}
 
PHP:
public static ItemStack getArrow(Player player) {
    PlayerInventory inv = player.getInventory();
    ItemStack item = inv.getItemInOffHand();
    if (item.getType() == Material.ARROW) return item;
    int place = inv.first(Material.ARROW);
    return place == -1 ? null : inv.getItem(place);
}
благодарю
 
PHP:
public static ItemStack getArrow(Player player) {
    PlayerInventory inv = player.getInventory();
    ItemStack item = inv.getItemInOffHand();
    if (item.getType() == Material.ARROW) return item;
    int place = inv.first(Material.ARROW);
    return place == -1 ? null : inv.getItem(place);
}
Появилась проблема, я могу получить стрелы при EntityShootBowEvent, но мне нужно отследить попала ли стрела в игрока, в случае если использовать ProjectileHitEvent и стрела у игрока была только одна, то после проверки стрел у игрока нет, следовательно была ли стрела проверить нельзя. Как можно решить?
 
Появилась проблема, я могу получить стрелы при EntityShootBowEvent, но мне нужно отследить попала ли стрела в игрока, в случае если использовать ProjectileHitEvent и стрела у игрока была только одна, то после проверки стрел у игрока нет, следовательно была ли стрела проверить нельзя. Как можно решить?
Повесь EntityMetadata на entity arrow и по ней смотри. Специально сделано для таких нужд.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх