fix(bukkit): 插件卸载时关闭所有GUI

This commit is contained in:
2023-05-15 08:06:12 +08:00
parent 0f4b24ab11
commit 3d66e3fc49

View File

@@ -8,6 +8,7 @@ import cn.hamster3.mc.plugin.core.bukkit.hook.PointAPI;
import cn.hamster3.mc.plugin.core.bukkit.hook.VaultAPI;
import cn.hamster3.mc.plugin.core.bukkit.listener.CallbackListener;
import cn.hamster3.mc.plugin.core.bukkit.listener.DebugListener;
import cn.hamster3.mc.plugin.core.bukkit.page.handler.PageHandler;
import cn.hamster3.mc.plugin.core.bukkit.page.listener.PageListener;
import cn.hamster3.mc.plugin.core.bukkit.util.ItemStackAdapter;
import cn.hamster3.mc.plugin.core.common.constant.CoreConstantObjects;
@@ -16,6 +17,9 @@ import cn.hamster3.mc.plugin.core.common.misc.MessageTypeAdapter;
import com.google.gson.GsonBuilder;
import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryView;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
@@ -83,6 +87,14 @@ public class HamsterCorePlugin extends JavaPlugin {
logger.info("已暂停 WORKER_EXECUTOR.");
CoreConstantObjects.SCHEDULED_EXECUTOR.shutdownNow();
logger.info("已暂停 SCHEDULED_EXECUTOR.");
for (Player player : Bukkit.getOnlinePlayers()) {
InventoryView view = player.getOpenInventory();
Inventory inventory = view.getTopInventory();
if (!(inventory.getHolder() instanceof PageHandler)) {
continue;
}
player.closeInventory();
}
long time = System.currentTimeMillis() - start;
logger.info("仓鼠核心已关闭,总计耗时 " + time + " ms.");
}