package com.alttd.altitudequests.events; import com.alttd.altitudequests.AQuest; import com.alttd.altitudequests.config.Config; import com.alttd.altitudequests.objects.Quest; import com.alttd.altitudequests.util.Logger; import com.alttd.datalock.DataLockAPI; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; import org.bukkit.boss.KeyedBossBar; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerQuitEvent; import javax.annotation.Nullable; import java.util.UUID; public class LogoutEvent implements Listener { @EventHandler public void onPlayerQuit(PlayerQuitEvent event) { UUID uuid = event.getPlayer().getUniqueId(); if (Config.DEBUG) Logger.info("Syncing %", event.getPlayer().getName()); removeBossBar(NamespacedKey.fromString(uuid + "-part-" + "1", AQuest.getInstance())); removeBossBar(NamespacedKey.fromString(uuid + "-part-" + "2", AQuest.getInstance())); Quest.unloadUser(uuid).thenAccept(result -> DataLockAPI.get().tryUnlock("aquest:player-data", uuid.toString())); } private void removeBossBar(@Nullable NamespacedKey namespacedKey) { if (namespacedKey == null) { return; } KeyedBossBar bossBar = Bukkit.getBossBar(namespacedKey); if (bossBar == null) { return; } Bukkit.removeBossBar(namespacedKey); } }