서버 버전: 1.17.1
컴파일 자바 버전 & 서버 자바: 16
InventoryGUI는 implementation으로 빌드
Enabling v0.0.1 라고 정상적으로 뜨지만 "animation"라고 서버 내에서 쳐보면
이라고 뜨면서 작동하지 않습니다.
(코트 위치):
코드는
'''
3: import io.papermc.paper.event.player.AsyncChatEvent
4: import net.kyori.adventure.text.Component
5: import net.kyori.adventure.text.format.NamedTextColor
6: import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer
7: import net.projecttl.inventory.gui.animatedGui
8: import net.projecttl.inventory.gui.utils.InventoryType
9: import org.bukkit.Material
10: import org.bukkit.event.EventHandler
11: import org.bukkit.event.Listener
12: import org.bukkit.inventory.ItemStack
13: import org.bukkit.plugin.java.JavaPlugin
14: import kotlin.random.Random
17: class Main : JavaPlugin(), Listener {
18: override fun onEnable() {
19: server.pluginManager.registerEvents(this, this)
20: }
21: @eventhandler
20: fun chat(event: AsyncChatEvent) {
21: if(PlainTextComponentSerializer.plainText().serialize(event.message()).contains("animation")) {
22: println(PlainTextComponentSerializer.plainText().serialize(event.message()))
21: val anim = event.player.animatedGui(this, InventoryType.CHEST_27, Component.text("Hi", NamedTextColor.GREEN)) {
22: base {
23: slot(0, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
24: slot(1, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
25: slot(2, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
26: slot(3, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
27: slot(4, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
28: slot(5, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
29: slot(6, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
30 : slot(7, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
31: slot(8, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
32: slot(9, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
33: slot(10, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
34: slot(11, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
35: slot(15, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
36: slot(16, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
37: slot(17, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
38: slot(18, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
40: slot(19, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
41: slot(20, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
42: slot(21, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
43: slot(22, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
44: slot(23, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
45: slot(24, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
46: slot(25, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
47: slot(26, ItemStack(Material.WHITE_STAINED_GLASS_PANE))
48: }
49:
50: frame(0) {
51: slot(12, ItemStack(Material.GOLDEN_APPLE))
52: slot(13, ItemStack(Material.DIRT))
53: slot(14, ItemStack(Material.IRON_INGOT))
54: }
56: for(i in 0 until 50) {
57: frame(i * (if(i <= 20) 2 else if(i <= 10) 4 else if(i <= 10) 8 else 16)) {
58: val rand = Random.nextInt(0, 5)
59: val rand2 = Random.nextInt(0, 5)
60: val rand3 = Random.nextInt(0, 5)
61: slot(12, ItemStack(if(rand == 0) Material.GOLDEN_APPLE else if(rand == 1) Material.IRON_INGOT else Material.DIRT))
62: slot(13, ItemStack(if(rand2 == 0) Material.GOLDEN_APPLE else if(rand2 == 1) Material.IRON_INGOT else Material.DIRT))
63: slot(14, ItemStack(if(rand3 == 0) Material.GOLDEN_APPLE else if(rand3 == 1) Material.IRON_INGOT else Material.DIRT))
64: }
65: }
66: }
67: anim.start()
68: }
69: }
71: }
'''
입니다.