x64
정품인증자
_x64_ 1bd65ee944064e81920834086fc02783
이해도 | 플러그인 |
---|---|
게임버전 (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 이 나와야하는데 안나오네요...
도와주세요...ㅜ
Libration
2021.12.22opengui에서 인벤토리 이름에는 색깔코드가 붙어있는데 inventoryclickevent쪽에는 안붙어 있어요
x64
2021.12.22아 고쳐본다고 잠깐 없애서 위 코드에도 없었네요..!! §3 붙여도 안돼요 ㅠㅠ
MineStar
2021.12.22타이틀은 기본적으로 회색으로 색깔이 들어갑니다.
그러니 equals 가 아닌 contains 를 사용 하시는 것을 추천 드립니다.
x64
2021.12.22답변 감사합니다. 근데 안되네요 ㅠㅠ
MineStar
2021.12.22이벤트 클래스를 registerEvents 로 등록은 하셨나요?
x64
2021.12.22네 등록 했습니다.
Libration
2021.12.22저기 인벤토리 이름을 검사하는 코드를 Chatcolor ~ getTitle 대신에 e.getClickedInventory().getName()으로 해보세용