응애아기제니
대표칭호 없음
이해도 | 초보자 |
---|---|
게임버전 (JE) | 1.20.1 |
게임버전 (BE) | 관련없음 |
1.20.2 스피곳 기준이며
@EventHandler public void isOP_FireBall(PlayerInteractEvent event) { Player player = event.getPlayer(); ItemStack itemInHand = player.getInventory().getItemInMainHand(); if (!player.isOp()) return; // 아이템이 블레이즈막대기 "지팡이"인지 확인 if (itemInHand.getType() == Material.BLAZE_ROD && itemInHand.hasItemMeta() && itemInHand.getItemMeta().getDisplayName().equals("지팡이")) { // 우클릭 확인 if (event.getAction().name().contains("RIGHT")) { launchFireball(player); } } } private void launchFireball(Player player) { // 파이어볼 생성 및 발사 Fireball fireball = player.launchProjectile(Fireball.class); // 원하는 파이어볼의 설정 (크기, 속도, 등) fireball.setIsIncendiary(false); fireball.setYield(5.0F); fireball.setVelocity(player.getLocation().getDirection().multiply(5)); // 속도 조절 }
전체 코드는 이렇습니다 문제가 없는거같은데 파이어볼을 발사하면 발사도잘되고 떨어지는지점에서 터지는것도 잘 되는데 나갈때 제몸에서도 한번터져서 저도 데미지를 입습니다 제가 뭘 잘못했을까요?
응애아기제니
2024.01.24쩝.. 글작성하고 또 혹시나하고 왼손에 방패 빼보니까 잘되네요.. 항상 왼손에방패가문제네..
응애아기제니
2024.01.24혹시 저같은 상황에 놓이신분들
ItemStack itemInHand = player.getInventory().getItemInMainHand(); 를
ItemStack itemInHand = event.getItem(); 로 바꾸시면 됩니다
작은거인
2024.01.24Action은 Enum이라서 그냥 ==로 확인하시면 됩니다
응애아기제니
2024.01.24다른코드에선 ==로 확인했었는데 제가아직 경험이 부족한지라 남들이 만들어놓은거 보면서 만드느라 이번엔 contains가 들어갔네요. 감사합니다