1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите нужно чтобы ПКМ срабатывал только на Волка.

Тема в разделе "Разработка плагинов для новичков", создана пользователем Chupaaa, 15 дек 2018.

Статус темы:
Закрыта.
  1. Автор темы
    Chupaaa

    Chupaaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xChupa
    В общем. Я создал палку, мне нужно чтобы эта палка срабатывала только на Волка. Я знаю как сделать, чтобы это срабатывало на определенный блок, а вот как это сделать с мобом я хз.
    Вот мои писюльки:
    package chupa.main;

    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.Particle;
    import org.bukkit.Sound;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.block.BlockEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.*********ventory.ItemStack;

    public class Wolf implements Listener {


    @EventHandler
    public void interact(PlayerInteractEvent e) {
    Action a = e.getAction();
    if(a != Action.RIGHT_CLICK_BLOCK) return;
    if(e.getClickedBlock().getType() == Material.GLASS ) return;
    Player p = e.getPlayer();
    if(e.getPlayer().getItemInHand().getType() != Material.STICK) return;
    ItemStack item = e.getPlayer().getItemInHand();
    if(!item.getItemMeta().hasDisplayName()) return;
    if(!item.getItemMeta().hasLore()) return;
    if(!item.getItemMeta().getDisplayName().equals(ChatColor.BLUE + "Палка")) return;
    if(!item.getItemMeta().getLore().get(0).equals(ChatColor.GOLD + "Любовь волка")) return;
    {

    p.sendMessage(ChatColor.RED + "тут будет сообщение");
    p.playSound(p.getLocation(), Sound.ENTITY_PLAYER_ATTACK_WEAK, 1, 1);
    p.spawnParticle(Particle.HEART, p.getLocation(), 10, 1, 1, 1, 1);
    }
    }
    }
    И еще, я не знаю как сделать, чтобы партикл был не вокруг игрока, а вокруг волка.
    Помогите, пожалуйста)
     
  2. Alexrage

    Alexrage Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Egorka
    Я не особо в этом шарю,но попробуй так

    package chupa.main;

    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.Particle;
    import org.bukkit.Sound;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entiti.Action;
    import org.bukkit.event.entiti.EntitiEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.*********ventory.ItemStack;

    public class Wolf implements Listener {


    @EventHandler
    public void interact(PlayerInteractEvent e) {
    Action a = e.getAction();
    if(a != Action.RIGHT_CLICK_ENTITI) return;
    if(e.getClickedEntiti().getType() == Material.WOLF ) return;
    Player p = e.getPlayer();
    if(e.getPlayer().getItemInHand().getType() != Material.STICK) return;
    ItemStack item = e.getPlayer().getItemInHand();
    if(!item.getItemMeta().hasDisplayName()) return;
    if(!item.getItemMeta().hasLore()) return;
    if(!item.getItemMeta().getDisplayName().equals(ChatColor.BLUE + "Палка")) return;
    if(!item.getItemMeta().getLore().get(0).equals(ChatColor.GOLD + "Любовь волка")) return;
    {

    p.sendMessage(ChatColor.RED + "тут будет сообщение");
    p.playSound(p.getLocation(), Sound.ENTITY_PLAYER_ATTACK_WEAK, 1, 1);
    p.spawnParticle(Particle.HEART, p.getLocation(), 10, 1, 1, 1, 1);
    }
    }
    }
     
  3. Автор темы
    Chupaaa

    Chupaaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xChupa
    Спасибо что не проигнорировали, я делал что-то подобное, но так не работает.
     
  4. AbstractCoder

    AbstractCoder Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Ору, ща бы идентифицировать предмет по лору.
     
  5. Автор темы
    Chupaaa

    Chupaaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xChupa
    Я добавил крафт на этот предмет, мне нужно чтобы данная палка выполняла действие
     
  6. AbstractCoder

    AbstractCoder Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    И? Как это связано с тем, что ты идентифицируешь его по лору?
     
  7. AbstractCoder

    AbstractCoder Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Для мобов отлавливай PlayerInteractEntityEvent
     
  8. Автор темы
    Chupaaa

    Chupaaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xChupa
    Чтобы обычной палкой нельзя было это выполнить
     
  9. AbstractCoder

    AbstractCoder Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Я понял, что ты хочешь выполнить действие именно для этой палки, я тебе говорю, что идентифицировать его по лору это костыли.
     
  10. alexandrage

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

    Баллы:
    173
    Вовсе нет. Игровым путем поставить лор на предмет нельзя.
     
  11. AbstractCoder

    AbstractCoder Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    А потом решил поменять описание предмета и уже существщие поломались, класс:good:
    Костыли это говорю, нужно отдельный nbt-тег юзать.
     
  12. Автор темы
    Chupaaa

    Chupaaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xChupa
    Меня больше не описание волнует, а то чтобы волк определялся
     
  13. alexandrage

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

    Баллы:
    173
    С тобой все ясно. Захотелось тебе поменять nbt и все поломалось. Тоже самое, не ?
     
  14. alexandrage

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

    Баллы:
    173
    PlayerInteractEntityEvent или EntityDamageByEntityEvent. Смотря каким кликом нужно.
     
  15. AbstractCoder

    AbstractCoder Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Что за глупое сравнение? Кастомный нбт тег специально для идентифицикации не нуждается в изменении, он невидим для игрока. А лор предмета виден игроку и он часто может измениться.
     
  16. Автор темы
    Chupaaa

    Chupaaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xChupa
    А еще не подскажете как сделать, чтобы партикл был не вокруг игрока, а вокруг волка.?
     
  17. alexandrage

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

    Баллы:
    173
    С чего ему меняться? Только потому что он виден? Бред.
     
  18. Автор темы
    Chupaaa

    Chupaaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xChupa
    Мне нужно чтобы у предмета было описание, тогда почему бы не сделать чтобы идентифицировался по описанию?
     
  19. Автор темы
    Chupaaa

    Chupaaa Новичок Пользователь

    Баллы:
    21
    Имя в Minecraft:
    xChupa
    Боже, вот я тупой. Все, спасибо всем. Нашел решение)
     
Статус темы:
Закрыта.

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