13
0
geforkt von Mirrors/Paper

SPIGOT-5799: InventoryCloseEvent fires after PlayerQuitEvent

By: md_5 <git@md-5.net>
Dieser Commit ist enthalten in:
CraftBukkit/Spigot 2020-06-24 09:54:59 +10:00
Ursprung fed33ad6d5
Commit 5f36fbfcfe
2 geänderte Dateien mit 6 neuen und 2 gelöschten Zeilen

Datei anzeigen

@ -265,13 +265,13 @@
entityplayer.a(StatisticList.LEAVE_GAME); entityplayer.a(StatisticList.LEAVE_GAME);
+ +
+ // CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it + // CraftBukkit start - Quitting must be before we do final save of data, in case plugins need to modify it
+ org.bukkit.craftbukkit.event.CraftEventFactory.handleInventoryCloseEvent(entityplayer); + entityplayer.closeInventory();
+ +
+ PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.getName() + " left the game"); + PlayerQuitEvent playerQuitEvent = new PlayerQuitEvent(cserver.getPlayer(entityplayer), "\u00A7e" + entityplayer.getName() + " left the game");
+ cserver.getPluginManager().callEvent(playerQuitEvent); + cserver.getPluginManager().callEvent(playerQuitEvent);
+ entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage()); + entityplayer.getBukkitEntity().disconnect(playerQuitEvent.getQuitMessage());
+ +
+ entityplayer.playerTick();// SPIGOT-924 + entityplayer.playerTick(); // SPIGOT-924
+ // CraftBukkit end + // CraftBukkit end
+ +
this.savePlayerFile(entityplayer); this.savePlayerFile(entityplayer);

Datei anzeigen

@ -1236,6 +1236,10 @@ public class CraftEventFactory {
} }
public static void handleInventoryCloseEvent(EntityHuman human) { public static void handleInventoryCloseEvent(EntityHuman human) {
// SPIGOT-5799 - no need to fire for when no inventory open
if (human.activeContainer == human.defaultContainer) {
return;
}
InventoryCloseEvent event = new InventoryCloseEvent(human.activeContainer.getBukkitView()); InventoryCloseEvent event = new InventoryCloseEvent(human.activeContainer.getBukkitView());
human.world.getServer().getPluginManager().callEvent(event); human.world.getServer().getPluginManager().callEvent(event);
human.activeContainer.transferTo(human.defaultContainer, human.getBukkitEntity()); human.activeContainer.transferTo(human.defaultContainer, human.getBukkitEntity());