개인 자료란 (JE)

  서버 커뮤니티

Profile airL 대표칭호 없음
Profile

질문하기 Java

마인크래프트 플러그인 질문이요

2020.11.29 조회 수 206 추천 수 0
이해도 플러그인 
게임버전 (JE) 버킷 

마인크래프트 플러그인 질문입니다 

저는 지금 막 플러그인을 만들기 시작했는데요 얼마전 우클릭으로 엔티티를 소환하는걸 하고 있었는데 

두가지 질문이 있습니다 

 1. 혹시 HumanEntity 즉 NPC를 소환하는 방법에대한 자료를 자지고 있는분들은 공유 부탁드립니다 


2. 혹시 엔티티를 시선앞에 소환하여면 어떻게 해야 하나요?

현제 이런 상황입니다


@EventHandler
public void rightclicksummon(PlayerInteractEvent e)
{
    Player p = e.getPlayer();
    Action a = e.getAction();

    if(a == Action.RIGHT_CLICK_AIR)
    {
        if(p.getItemInHand().getType() == Material.CREEPER_SPAWN_EGG)
        {
            Creeper item = p.getWorld().spawn(p.getLocation(), Creeper.class);
        }
    }
}

제발 도와주세요ㅠㅠㅠㅠㅠ

4개의 댓글

서재형
2020.11.30

npc 소환은 잘 모르겠지만, 후자는 플레이어.getLocation().getDirection().multiply(몇칸 앞에 소환되게 할건지) 를 소환할 location에 더하면 되요.

예 )

Player p = 플레이어;

Vector dir = p.getLocation.getDirection();

Creeper creeper = p.getWorld().spawn(p.getLocation().add(dir.multiply(1), Creeper.class);

결과 -> 플레이어 시점 1칸 앞에 크리퍼 소환

airL
2020.11.30
@서재형

감사합니다~~

airL
2020.12.01
@서재형

Creeper creeper = p.getWorld().spawn(p.getLocation().add(dir.multiply(5), Creeper.class));

여기에서 오류가 계속 나느데 어떻게 해야 하나요

can not resolve~~~ 이런게 떠요

서재형
2020.12.03
@airL

아 제가 괄호 몇개를 빼먹었네요.

Player p = 플레이어;

Vector dir = p.getLocation().getDirection();

Creeper creeper = p.getWorld().spawn(p.getLocation().add(dir.multiply(1)), Creeper.class);

요렇게 하심 될겁니다