본문 바로가기

연습장

마인크래프트 플러그인 개발해보기 [7] - 엔티티 태우기

반응형

마인크래프트 플러그인 개발해보기 [7] - 엔티티 태우기 

 

이번엔 엔티티를 플레이어의 머리 위에 올리고 내리는 기능을 만들어 보겠습니다.

 

 



import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerInteractEntityEvent;
import org.bukkit.plugin.java.JavaPlugin;

public final class Main extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        Bukkit.getPluginManager().registerEvents(this, this);
    }

    @EventHandler
    public void onEntityInteract(PlayerInteractEntityEvent e){
        if(e.getPlayer().isSneaking()) { //플레이어가 웅크렸을 때
            e.getPlayer().addPassenger(e.getRightClicked()); //우클릭한 엔티티를 머리 위로 올림.
        }else{
            e.getPlayer().removePassenger(e.getRightClicked()); // 우클릭한 엔티티를 머리 위에서 내림.
        }
    }
}

 

 

 

 

Entity (Spigot-API 1.20.1-R0.1-SNAPSHOT API)

All Superinterfaces: CommandSender, Metadatable, Nameable, Permissible, PersistentDataHolder, ServerOperator All Known Subinterfaces: AbstractArrow, AbstractHorse, AbstractSkeleton, AbstractVillager, Ageable, Allay, Ambient, Animals, AreaEffectCloud, Armor

hub.spigotmc.org

 

 

 

EntityInteractEvent (Spigot-API 1.20.1-R0.1-SNAPSHOT API)

All Implemented Interfaces: Cancellable Called when an entity interacts with an object Nested Class Summary Field Summary Fields Constructor Summary Constructors Method Summary Field Details block Constructor Details Method Details isCancelled public bool

hub.spigotmc.org

 

onEntityInteract 는 동물 등의 엔티티와 상호작용을 할 때 호출된다고 합니다.

 

isSneaking 을 통해 플레이어가 웅크린 상태를 조건으로 받으며

 

addPassenger 로 플레이어의 머리 위에 우클릭한 엔티티를 올리고,

 

removePassenger 로 머리 위에 올라가 있는 엔티티를 내립니다.

 

 

 

반응형