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

Помогите Некоректная работа getHitBlock() в ProjectileHitEvent.

Discussion in 'Разработка плагинов для новичков' started by pawern, Feb 17, 2021.

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

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

    Trophy Points:
    61
    Имя в Minecraft:
    shent
    Выдаёт ошибку ,когда стреляю по блоку.

    https://pastebin.com/Q8f8jzcg

    Я так понял проблема в ядре сервера , я пытался поменять версию ядра ,но это дало мало толку.
    Подскажите с чем может быть связана такая ошибка и как это пофиксить?
     
  2. Хостинг MineCraft
    <
  3. LOVEC3327

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

    Trophy Points:
    68
    Имя в Minecraft:
    LOVEC3327
    Code:
    java.lang.ClassCastException: org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer cannot be cast to javax.persistence.Entity
    Entity не бакитовский.
     
    pawern likes this.
  4. Автор темы
    pawern

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

    Trophy Points:
    61
    Имя в Minecraft:
    shent
    О спасибо, плагин заработал и условия с Entity выполняются , дальше постараюсь сам ,но пока что не получается :) ошибка такая же.

    код: https://pastebin.com/3mtzb5kv
     
    Last edited: Feb 17, 2021
  5. LOVEC3327

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

    Trophy Points:
    68
    Имя в Minecraft:
    LOVEC3327
    У тебя проверка на игрока идет после каста. Сделай сначала проверку, а потом каст.
     
  6. Автор темы
    pawern

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

    Trophy Points:
    61
    Имя в Minecraft:
    shent
    Извини ,я кодить начал всего полторы недели назад. Если каста это константа то я поменял их.(не помогло) И getHitBlock() постоянно подсвечивается как ошибка, Этот метод не определён для ProjectileHitEvent.

    Code:
        public void ShotArrow(final ProjectileHitEvent bow) {
            if (bow.getEntity() instanceof Arrow) {
                final Arrow arrow = (Arrow)bow.getEntity();
                final org.bukkit.Location al = arrow.getLocation();
                final Entity shooter = (Entity)arrow.getShooter();
                if (shooter instanceof Player) {
                    Player p = (Player)shooter;
                    p.sendMessage("ok2");
                    Block b = bow.getHitBlock();
                    if (b.getType() != Material.WOOL) return;
                    p.sendMessage("ok3");
                    b.setType(Material.AIR);
                }
            }
        }
     
  7. LOVEC3327

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

    Trophy Points:
    68
    Имя в Minecraft:
    LOVEC3327
    У меня все нормально работает. Проверяй импорты значит
    PHP:
        @EventHandler
        
    public void onHit(ProjectileHitEvent e) {
            if (!(
    e.getEntity() instanceof Arrow))
                return;
            
    Arrow arrow = (Arrowe.getEntity();
            if (
    arrow.getShooter() instanceof Player) {
                
    Block block e.getHitBlock();
                if (
    block == null)
                    return;
                if (!
    Tag.WOOL.isTagged(block.getType()))
                    return;
                
    Player player = (Playerarrow.getShooter();
                
    block.setType(Material.AIR);
                
    arrow.remove();
                
    player.sendMessage("Example message");
            }
        }
     
  8. Автор темы
    pawern

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

    Trophy Points:
    61
    Имя в Minecraft:
    shent
    Да спасибо ошибка ,как оказалось была в багнутой eclipse Я поставил новую версию со старым кодом всё работает.
    Могу закрывать тему.
     

Share This Page