개인 자료란 (JE)

  서버 커뮤니티

Profile Resen 대표칭호 없음
Profile

질문하기 Java

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

2022.05.04 조회 수 749 추천 수 0
이해도 플러그인 
게임버전 (JE) 기타 

플러그인 관련 질문드립니다

최근에 마크 플러그인에 대해 재미가 들려서 배우고있는데 아무리 찾아도 제대로된 방법을 찾을수가 없어서 질문합니다 

플레이어가 특정 아이템으로 데미지를 주었을때 추가 데미지를 주는 형식의 코드를 짤수있나요?


3개의 댓글

MineStar
2022.05.04
public class TestEvent implements Listener {

    Map<ItemStack, Integer> itemAttackDamage;

    @EventHandler
    public void attackEntity(EntityDamageByEntityEvent e) {
        if (!(e.getEntity() instanceof Player)) return;
        Player player = (Player) e.getEntity();

        Integer newDamage = itemAttackDamage.get(player.getInventory().getItemInMainHand());
        if (newDamage == null) return;

        e.setDamage(newDamage);
    }
}

 

이벤트 클래스에 위 코드 처럼 사용하시면 됩니다.

Vencodor
2022.06.04
@MineStar

Map의 Key값에 저장된 ItemStack과 #getItemInMainHand() 에서 반환되는 ItemStack은 같은 아이템일지라도 두 변수의 메모리 위치가 달라 #get 에서는 Null이 반환될겁니다

qsef1256
2022.05.06

~ 할 때 라는건 플러그인에서는 이벤트로 처리됩니다.

~ 인지는 그냥 if 하시면 되고요.

~ 를 한다 라는건 메서드를 찾으시면 됩니다.