노버04
대표칭호 없음
Nover04 4f3422c0af8a451f9b2ac5be74c7821f
이해도 | 입문자 |
---|---|
게임버전 (JE) | 1.20, 1.20.1 |
게임버전 (BE) | 관련없음 |
플러그인을 공부중인 노버04라고 합니다
구글에 "마인크래프트 플러그인 클릭"이라고 검색하면 나오기는 하는데
다 비교를 Material로만 하더라고요
저는 커스텀 아이템을 감지해야 하는건데 말이죠..
제 생각 대로 코드를 짜면 오류는 않나지만 기능실행은 안되더라고요
뭐가 문제인지 코드를 보고 알려주세요. 급해요...
package org.blog.plugin.commands; import org.blog.plugin.Event.ItemManager; import org.blog.plugin.Event.LocationManager; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.Action; import org.bukkit.event.player.PlayerInteractEvent; public class itemclick implements Listener { @EventHandler public void onPlayerClick(PlayerInteractEvent event){ Player player = event.getPlayer(); Action action = event.getAction(); if (action.equals(Action.RIGHT_CLICK_AIR)) { if (player.getItemInHand() == ItemManager.VillageTeleport) { player.sendMessage("마을로 아동합니다."); player.teleport(LocationManager.Village); player.getInventory().removeItem(ItemManager.VillageTeleport); } } } }
qsef1256
2024.04.15player.getItemInHand() == ItemManager.VillageTeleport
가 안된다고 올리셨으면서 정작ItemManager.VillageTeleport
의 코드는 안 올려버리시면 답변이 불가 합니다.노버04
2024.04.16ItemManager.VillagerTeleport는 종이 아이템을 ItemManager라는 클래스에 만들어 불러온것입니다
노버04
2024.04.16그리고 댓글 달아주셔서 감사합니다, player.getItemInHand().getItemMeta().getDisplayName().equals()로 조건문을 만드니 해결되었습니다.
qsef1256
2024.04.15그리고 이건 자바 기초에 대한 내용인데, == 비교는 Object 사이에서는 주소 값을 비교합니다. equals() 가
java.lang.Object
에 따로 있습니다.노버04
2024.04.16여러 언어를 접하다보니 햇갈렸나 봅니다... 그래도 댓글을 남겨주셔서 감사합니다.