1010import net .akazukin .library .event .EventTarget ;
1111import net .akazukin .library .event .Listenable ;
1212import net .akazukin .library .event .events .PacketReceiveEvent ;
13+ import net .akazukin .library .event .events .PacketSendEvent ;
1314import net .akazukin .library .gui .screens .chat .ChatGui ;
1415import net .akazukin .library .gui .screens .chest .ContainerGuiBase ;
1516import net .akazukin .library .gui .screens .chest .GuiBase ;
@@ -37,7 +38,7 @@ public static GuiManager singleton() {
3738 }
3839
3940 public GuiBase getScreen (final UUID player ) {
40- return screens .get (player );
41+ return this . screens .get (player );
4142 }
4243
4344 @ EventTarget (bktPriority = EventPriority .HIGH )
@@ -48,41 +49,39 @@ public void onInventoryClick(final InventoryClickEvent event) {
4849
4950 if (event .getCurrentItem () == null ) return ;
5051
51- final GuiBase gui = screens .get (event .getWhoClicked ().getUniqueId ());
52+ final GuiBase gui = this . screens .get (event .getWhoClicked ().getUniqueId ());
5253 if (!(gui instanceof ContainerGuiBase ) || !event .getView ().getTitle ().equals (((ContainerGuiBase ) gui ).getTitle ()))
5354 return ;
5455
5556 if (event .getView ().getType () == InventoryType .CHEST && event .getCurrentItem () != null && !ItemUtils .isGuiItem (event .getCurrentItem ())) {
56- System . out . println ("Not cancelled | Title: " + event .getView ().getTitle () + " | DisplayName: " + event .getCurrentItem ().getItemMeta ().getDisplayName ());
57+ LibraryPlugin . getLogManager (). warning ("Not cancelled | Title: " + event .getView ().getTitle () + " | DisplayName: " + event .getCurrentItem ().getItemMeta ().getDisplayName ());
5758 }
5859
5960 if (InventoryUtils .isCloseItem (event .getCurrentItem ())) {
6061 event .getWhoClicked ().closeInventory ();
6162 } else if (InventoryUtils .isBackItem (event .getCurrentItem ()) && gui .getPrevGui () != null ) {
6263 event .getWhoClicked ().closeInventory ();
63- setScreen (event .getWhoClicked ().getUniqueId (), gui .getPrevGui ());
64+ this . setScreen (event .getWhoClicked ().getUniqueId (), gui .getPrevGui ());
6465 } else {
6566 ((ContainerGuiBase ) gui ).onInventoryClick (event );
6667 }
6768 }
6869
6970 public void setScreen (final UUID player , final GuiBase gui ) {
70- final Player player_ = Bukkit .getPlayer (player );
71- if (player_ == null ) return ;
72- Bukkit .getScheduler ().runTask (LibraryPlugin .getPlugin (), player_ ::closeInventory );
73-
74- screens .remove (player );
75- screens .put (player , gui );
76- if (gui instanceof ContainerGuiBase ) {
77- Bukkit .getScheduler ().runTask (LibraryPlugin .getPlugin (), gui ::forceOpen );
78- } else {
71+ Bukkit .getScheduler ().runTask (LibraryPlugin .getPlugin (), () -> {
72+ final Player player_ = Bukkit .getPlayer (player );
73+ if (player_ == null ) return ;
74+ player_ .closeInventory ();
75+
76+ this .screens .remove (player );
77+ this .screens .put (player , gui );
7978 gui .forceOpen ();
80- }
79+ });
8180 }
8281
8382 @ EventTarget
8483 public void onInventoryOpen (final InventoryOpenEvent event ) {
85- final GuiBase gui = screens .get (event .getPlayer ().getUniqueId ());
84+ final GuiBase gui = this . screens .get (event .getPlayer ().getUniqueId ());
8685 if (!(gui instanceof ContainerGuiBase ) || !event .getView ().getTitle ().equals (((ContainerGuiBase ) gui ).getTitle ()))
8786 return ;
8887
@@ -91,51 +90,60 @@ public void onInventoryOpen(final InventoryOpenEvent event) {
9190
9291 @ EventTarget
9392 public void onInventoryClose (final InventoryCloseEvent event ) {
94- final GuiBase gui = screens .get (event .getPlayer ().getUniqueId ());
93+ final GuiBase gui = this . screens .get (event .getPlayer ().getUniqueId ());
9594 if (!(gui instanceof ContainerGuiBase ) || !event .getView ().getTitle ().equals (((ContainerGuiBase ) gui ).getTitle ()))
9695 return ;
9796
98- screens .remove (event .getPlayer ().getUniqueId ());
97+ this . screens .remove (event .getPlayer ().getUniqueId ());
9998 ((ContainerGuiBase ) gui ).onInventoryClose (event );
10099 }
101100
102101 @ EventTarget
103102 public void onPlayerMove (final PlayerMoveEvent event ) {
104- final GuiBase prevGui = screens .get (event .getPlayer ().getUniqueId ());
103+ final GuiBase prevGui = this . screens .get (event .getPlayer ().getUniqueId ());
105104 if (prevGui instanceof ChatGui ) ((ChatGui ) prevGui ).onPlayerMove (event );
106105 }
107106
108107 @ EventTarget
109108 public void onAsyncPlayerChat (final AsyncPlayerChatEvent event ) {
110- final GuiBase prevGui = screens .get (event .getPlayer ().getUniqueId ());
109+ final GuiBase prevGui = this . screens .get (event .getPlayer ().getUniqueId ());
111110 if (prevGui instanceof ChatGui ) ((ChatGui ) prevGui ).onChat (event );
112111 }
113112
114113 @ EventTarget
115114 public void onPlayerQuit (final PlayerQuitEvent event ) {
116- screens .remove (event .getPlayer ().getUniqueId ());
115+ this . screens .remove (event .getPlayer ().getUniqueId ());
117116 }
118117
119118 @ EventTarget
120119 public void onPacketReceive (final PacketReceiveEvent event ) {
121- final GuiBase gui = screens .get (event .getClient ().getPlayer ().getUniqueId ());
120+ final GuiBase gui = this . screens .get (event .getClient ().getPlayer ().getUniqueId ());
122121 if (gui instanceof SignStringSelectorGui ) {
123122 final Packet pkt = LibraryPlugin .COMPAT .getWrappedPacket (event .getPacket ());
124- if (pkt instanceof SOpenSignEditorPacket ) {
125- ((SignStringSelectorGui ) gui ).onGuiOpen ();
126- } else if (pkt instanceof CUpdateSignPacket ) {
123+ if (pkt instanceof CUpdateSignPacket ) {
127124 ((SignStringSelectorGui ) gui ).onGuiClose (event );
128125 if (gui .getPrevGui () == null ) {
129- screens .remove (event .getClient ().getPlayer ().getUniqueId ());
126+ this . screens .remove (event .getClient ().getPlayer ().getUniqueId ());
130127 } else {
131- screens .put (event .getClient ().getPlayer ().getUniqueId (), gui .getPrevGui ());
128+ this . screens .put (event .getClient ().getPlayer ().getUniqueId (), gui .getPrevGui ());
132129 Bukkit .getScheduler ().runTask (LibraryPlugin .getPlugin (), () ->
133- screens .get (event .getClient ().getPlayer ().getUniqueId ()).forceOpen ());
130+ this . screens .get (event .getClient ().getPlayer ().getUniqueId ()).forceOpen ());
134131 }
135132 }
136133 }
137134 }
138135
136+ @ EventTarget
137+ public void onPacketSend (final PacketSendEvent event ) {
138+ final GuiBase gui = this .screens .get (event .getClient ().getPlayer ().getUniqueId ());
139+ if (gui instanceof SignStringSelectorGui ) {
140+ final Packet pkt = LibraryPlugin .COMPAT .getWrappedPacket (event .getPacket ());
141+ if (pkt instanceof SOpenSignEditorPacket ) {
142+ ((SignStringSelectorGui ) gui ).onGuiOpen ();
143+ }
144+ }
145+ }
146+
139147 @ Override
140148 public boolean handleEvents () {
141149 return true ;
0 commit comments