개인 자료란 (JE)

  서버 커뮤니티

Profile 노버04 대표칭호 없음

Nover04 4f3422c0af8a451f9b2ac5be74c7821f

Profile

질문하기 플러그인

플러그인 공부중에 질문드립니다.

2024.04.14 조회 수 88 추천 수 0
이해도 입문자 
게임버전 (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);
            }
        }
    }
}



5개의 댓글

qsef1256
2024.04.15

player.getItemInHand() == ItemManager.VillageTeleport 가 안된다고 올리셨으면서 정작 ItemManager.VillageTeleport 의 코드는 안 올려버리시면 답변이 불가 합니다.

노버04
2024.04.16
@qsef1256

ItemManager.VillagerTeleport는 종이 아이템을 ItemManager라는 클래스에 만들어 불러온것입니다

노버04
2024.04.16
@qsef1256

그리고 댓글 달아주셔서 감사합니다, player.getItemInHand().getItemMeta().getDisplayName().equals()로 조건문을 만드니 해결되었습니다.

qsef1256
2024.04.15

그리고 이건 자바 기초에 대한 내용인데, == 비교는 Object 사이에서는 주소 값을 비교합니다. equals() 가 java.lang.Object에 따로 있습니다.

노버04
2024.04.16
@qsef1256

여러 언어를 접하다보니 햇갈렸나 봅니다... 그래도 댓글을 남겨주셔서 감사합니다.