개인 자료란 (JE)

  서버 커뮤니티

Profile x64 정품인증자

_x64_ 1bd65ee944064e81920834086fc02783

Profile

질문하기 Java

InventoryClickEvent getView().getTitle() 질문

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


package eternalrankupsystem.eternalrankupsystem;

import org.bukkit.ChatColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;

public class GUIEvent implements Listener {

    @EventHandler
    public void ClickInventory(InventoryClickEvent e) {
        Player player = (Player) e.getWhoClicked();

        if (ChatColor.stripColor(e.getView().getTitle()).equals("랭크")) {
            player.sendMessage("RANK GUI OPEN");
        }
    }
}
package eternalrankupsystem.eternalrankupsystem;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Color;
import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Item;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.material.MaterialData;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class GUI {
    public static void OpenGui(Player player) {
        Inventory inv = Bukkit.createInventory(null, 27, "§3랭크");
        player.openInventory(inv);
    }
}


/랭크 명령어 입력하면 OpenGui 함수 실행하여 GUI는 잘 열리는데, 인벤 클릭하면 RANK GUI OPEN 이 나와야하는데 안나오네요...

도와주세요...ㅜ




7개의 댓글

Libration
2021.12.22

opengui에서 인벤토리 이름에는 색깔코드가 붙어있는데 inventoryclickevent쪽에는 안붙어 있어요

x64
2021.12.22
@Libration

아 고쳐본다고 잠깐 없애서 위 코드에도 없었네요..!! §3 붙여도 안돼요 ㅠㅠ

MineStar
2021.12.22

타이틀은 기본적으로 회색으로 색깔이 들어갑니다.

그러니 equals 가 아닌 contains 를 사용 하시는 것을 추천 드립니다.

x64
2021.12.22
@MineStar

답변 감사합니다. 근데 안되네요 ㅠㅠ

MineStar
2021.12.22
@x64

이벤트 클래스를 registerEvents 로 등록은 하셨나요?

x64
2021.12.22
@MineStar

네 등록 했습니다.

Libration
2021.12.22
@x64

저기 인벤토리 이름을 검사하는 코드를 Chatcolor ~ getTitle 대신에 e.getClickedInventory().getName()으로 해보세용

뉴스 및 창작물
/files/thumbnails/268/789/003/262x150.crop.jpg?20240515192032

레드스톤

벌레먹은 돌 빠르게 제거하는 법

GlassesFilm

2024-05-15

0

/files/thumbnails/797/788/003/262x150.crop.jpg?20240515090924

건축

마인크래프트로 구현한 카르카손 보드게임

Warak

2024-05-15

1

/files/thumbnails/487/784/003/262x150.crop.jpg?20240508233607

모드

Windows Borderless 모드에서 악성코드 발견 2

학교가기싫다

2024-05-08

1

/files/thumbnails/384/778/003/262x150.crop.jpg?20240512002324

업데이트

마인크래프트 자바 에디션 스냅샷 24w18a

학교가기싫다

2024-05-06

0

/files/thumbnails/855/781/003/262x150.crop.jpg?20240505141129

레드스톤

레이저 클리너

GlassesFilm

2024-05-05

1