Skip to content

Commit 94ff1bf

Browse files
committed
feat: add player quit event handling to close viewer context
1 parent ea4e7fb commit 94ff1bf

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

inventory-framework-platform-bukkit/src/main/java/me/devnatan/inventoryframework/IFInventoryListener.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import org.bukkit.event.inventory.InventoryType;
1717
import org.bukkit.event.player.PlayerDropItemEvent;
1818
import org.bukkit.event.player.PlayerPickupItemEvent;
19+
import org.bukkit.event.player.PlayerQuitEvent;
1920
import org.bukkit.event.server.PluginDisableEvent;
2021
import org.bukkit.inventory.Inventory;
2122
import org.bukkit.inventory.PlayerInventory;
@@ -35,6 +36,19 @@ public void onPluginDisable(final PluginDisableEvent event) {
3536
viewFrame.unregister();
3637
}
3738

39+
@EventHandler(priority = EventPriority.LOW)
40+
public void onPlayerQuit(PlayerQuitEvent event){
41+
final Player player = (Player) event.getPlayer();
42+
final Viewer viewer = viewFrame.getViewer(player);
43+
if (viewer == null) return;
44+
45+
final IFRenderContext context = viewer.getCurrentContext();
46+
final RootView root = context.getRoot();
47+
final IFCloseContext closeContext = root.getElementFactory().createCloseContext(viewer, context, event);
48+
49+
root.getPipeline().execute(StandardPipelinePhases.CLOSE, closeContext);
50+
}
51+
3852
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
3953
public void onInventoryClick(final InventoryClickEvent event) {
4054
if (!(event.getWhoClicked() instanceof Player)) return;

0 commit comments

Comments
 (0)