java类org.bukkit.event.player.PlayerQuitEvent的实例源码

BlitzModule.java 文件源码 项目:Warzone 阅读 27 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.LOWEST)
public void onQuit(PlayerQuitEvent event) {
    if ((teamManagerModule.getTeam(event.getPlayer()) != null && teamManagerModule.getTeam(event.getPlayer()).isSpectator())) return;
    updateScoreboardTeamLine(teamManagerModule.getTeam(event.getPlayer()), getAlivePlayers(teamManagerModule.getTeam(event.getPlayer())).size() - 1);

    if (!TGM.get().getMatchManager().getMatch().getMatchStatus().equals(MatchStatus.MID)) return;

    if (lastTeamAlive()) {
        MatchTeam winnerTeam = teamManagerModule.getTeams().stream().filter(matchTeam -> !matchTeam.isSpectator()).filter(matchTeam -> getAlivePlayers(matchTeam).size() > 0).findFirst().get();
        if (winnerTeam == null) {
            winnerTeam = teamManagerModule.getTeams().get(1);
        }
        TGM.get().getMatchManager().endMatch(winnerTeam);
        return;
    }
}
Metadata.java 文件源码 项目:helper 阅读 33 收藏 0 点赞 0 评论 0
private static void ensureSetup() {
    if (SETUP.get()) {
        return;
    }

    if (!SETUP.getAndSet(true)) {

        // remove player metadata when they leave the server
        Events.subscribe(PlayerQuitEvent.class, EventPriority.MONITOR)
                .handler(e -> StandardMetadataRegistries.PLAYER.remove(e.getPlayer().getUniqueId()));

        // cache housekeeping task
        Scheduler.builder()
                .async()
                .afterAndEvery(1, TimeUnit.MINUTES)
                .run(() -> {
                    for (MetadataRegistry<?> registry : StandardMetadataRegistries.values()) {
                        registry.cleanup();
                    }
                });
    }
}
PacketScoreboard.java 文件源码 项目:helper 阅读 19 收藏 0 点赞 0 评论 0
private void handlePlayerQuit(PlayerQuitEvent event) {
    Player player = event.getPlayer();

    teams.values().forEach(t -> {
        t.unsubscribe(player, true);
        t.removePlayer(player);
    });
    objectives.values().forEach(o -> o.unsubscribe(player, true));

    Map<String, PacketScoreboardObjective> playerObjectives = this.playerObjectives.remove(player.getUniqueId());
    if (playerObjectives != null) {
        playerObjectives.values().forEach(o -> o.unsubscribe(player, true));
    }

    Map<String, PacketScoreboardTeam> playerTeams = this.playerTeams.remove(player.getUniqueId());
    if (playerTeams != null) {
        playerTeams.values().forEach(t -> {
            t.unsubscribe(player, true);
            t.removePlayer(player);
        });
    }
}
PlayerManager.java 文件源码 项目:VanillaPlus 阅读 29 收藏 0 点赞 0 评论 0
@EventHandler
public void playerLeave(PlayerQuitEvent event){
    event.setQuitMessage("");
    VPPlayer player = getPlayer(event.getPlayer());
    player.setMenu(null);
    VPPLeaveEvent e = new  VPPLeaveEvent(player);
    if(getMsgPerm().has(player))
        e.setMessage(leave);
    e.save(player.save());
    player.setOffline();
    Bukkit.getServer().getPluginManager().callEvent(e);
    //TODO send removed event
    if(e.getMessage() != null)
        e.getMessage().addSReplacement(PlaceH.SENDER.get(), player).send();
    if(e.save())
        save(player, false);
}
PlayerListener.java 文件源码 项目:AsgardAscension 阅读 29 收藏 0 点赞 0 评论 0
@EventHandler
public void onQuit(PlayerQuitEvent event) {
    // Removing Speed Miner effect
    if(speedMiner.get(event.getPlayer().getName()) != null) {
        speedMiner.get(event.getPlayer().getName()).removeEnchantment(Enchantment.DIG_SPEED);
        event.getPlayer().removePotionEffect(PotionEffectType.FAST_DIGGING);
        event.getPlayer().removePotionEffect(PotionEffectType.SPEED);
        speedMiner.remove(event.getPlayer().getName());
    }
    // Removing Rainbow Miner effect
    if(rainbowMiner.get(event.getPlayer().getName()) != null) {
        rainbowMiner.get(event.getPlayer().getName()).removeEnchantment(Enchantment.LOOT_BONUS_BLOCKS);
        event.getPlayer().removePotionEffect(PotionEffectType.FAST_DIGGING);
        rainbowMiner.remove(event.getPlayer().getName());
    }
    // Removing Diamond Miner effect
    if(diamondMiner.get(event.getPlayer().getName()) != null) {
        diamondMiner.remove(event.getPlayer().getName());
    }
    // Quiting challenge in case player is doing it
    if(plugin.getChallenges().getChallenge(event.getPlayer()) > 0){
        plugin.getChallenges().quitChallenge(event.getPlayer());
    }
    plugin.getPlayerManager().saveData(event.getPlayer());
}
FakeEventListener.java 文件源码 项目:AlphaLibary 阅读 27 收藏 0 点赞 0 评论 0
@EventHandler
public void onQuit(PlayerQuitEvent e) {
    Player p = e.getPlayer();
    if (FakeAPI.getFakeEntities().containsKey(p.getName())) {
        PlayerFakeUtil.unFollowPlayer(p);
        PlayerFakeUtil.normalizeLook(p);
        PlayerFakeUtil.cancelAllSplittedTasks(p);

        ArmorstandFakeUtil.unFollowArmorstand(p);
        ArmorstandFakeUtil.cancelAllSplittedTasks(p);

        EndercrystalFakeUtil.cancelAllSplittedTasks(p);

        MobFakeUtil.unFollowPlayer(p);
        MobFakeUtil.normalizeLook(p);
        MobFakeUtil.cancelAllSplittedTasks(p);

        BigItemFakeUtil.cancelAllSplittedTasks(p);

        FakeAPI.getFakeEntities().remove(p.getName());
    }
}
GameEvents.java 文件源码 项目:mczone 阅读 24 收藏 0 点赞 0 评论 0
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
    event.setQuitMessage(null);
    if (SurvivalGames.getWinner() != null)
        return;

    Player p = event.getPlayer();
    Gamer t = Gamer.get(event.getPlayer());

    if (!Game.getTributes().contains(t))
        return;

    Hive.getInstance().kill(p, "quit", SurvivalGames.getGame().getGameID());
    t.setVariable("death-location", event.getPlayer().getLocation());
    Chat.server("&4[SG &6" + Gamer.get(p).getPrefix()  + t.getName() + " &6has quit the game!");
    Chat.server("&4[SG] &6There are " + (Game.getTributes().size() - 1) + " tributes remaining");
}
CoreListener.java 文件源码 项目:CraftyProfessions 阅读 24 收藏 0 点赞 0 评论 0
@EventHandler
public void onPlayerLogout (PlayerQuitEvent event)
{
    Player eventPlayer = event.getPlayer ();

    PlayerManager.Instance ().removePlayer (eventPlayer.getUniqueId ());
}
FactionListener.java 文件源码 项目:HCFCore 阅读 25 收藏 0 点赞 0 评论 0
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onPlayerQuit(PlayerQuitEvent event) {
    Player player = event.getPlayer();
    PlayerFaction playerFaction = plugin.getFactionManager().getPlayerFaction(player);
    if (playerFaction != null) {
        playerFaction.broadcast(prefix + ChatColor.GRAY + "Your faction member " + ChatColor.GOLD  + playerFaction.getMember(player).getRole().getAstrix() + player.getName() + ChatColor.GRAY + " has " + ChatColor.RED + "disconnected.");
    }
}
TypeYesOrNo.java 文件源码 项目:UltimateTs 阅读 33 收藏 0 点赞 0 评论 0
@EventHandler
public void onQuit(PlayerQuitEvent e){
    Player p = e.getPlayer();
    if(PlayerManager.confirmationReady.contains(p)){
        PlayerManager.confirmationReady.remove(p); 
    }
}
InfectionModule.java 文件源码 项目:Warzone 阅读 26 收藏 0 点赞 0 评论 0
@EventHandler
public void onPlayerLeave(PlayerQuitEvent event) {
    if (teamManager.getTeamById("infected").getMembers().size() == 0 && match.getMatchStatus().equals(MatchStatus.MID)) {
        PlayerContext player = teamManager.getTeamById("humans").getMembers().get(teamManager.getTeamById("humans").getMembers().size() - 1);
        broadcastMessage(String.format("&2&l%s &7has been infected!", player.getPlayer().getName()));

        infect(player.getPlayer());
    }
}
WallBorderListener.java 文件源码 项目:HCFCore 阅读 36 收藏 0 点赞 0 评论 0
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onPlayerQuit(PlayerQuitEvent event) {
    if (!this.useTaskInstead)
        return;
    BukkitTask task = wallBorderTask.remove(event.getPlayer().getUniqueId());
    if (task != null) {
        task.cancel();
    }
}
AnalyticsListener.java 文件源码 项目:NetworkAnalytics 阅读 33 收藏 0 点赞 0 评论 0
@Override
public void setup(@Nonnull TerminableConsumer consumer) {
    Events.subscribe(PlayerLoginEvent.class, EventPriority.MONITOR)
            .filter(e -> e.getResult() == PlayerLoginEvent.Result.ALLOWED)
            .handler(e -> {
                plugin.getDataManager().logPlayer(e.getPlayer().getUniqueId(), e.getPlayer().getName());
                Metadata.provideForPlayer(e.getPlayer()).put(NetworkAnalytics.CONNECTION_TIME_SECONDS, (System.currentTimeMillis() / 1000L));
            })
            .bindWith(consumer);

    Events.subscribe(PlayerJoinEvent.class, EventPriority.MONITOR)
            .handler(e -> {
                ProtocolVersion protocolVersion = ProtocolSupportAPI.getProtocolVersion(e.getPlayer());
                if (protocolVersion != null) {
                    Metadata.provideForPlayer(e.getPlayer()).put(NetworkAnalytics.PROTOCOL_VERSION, protocolVersion);
                }
            })
            .bindWith(consumer);

    Events.subscribe(PlayerQuitEvent.class)
            .handler(e -> {
                Long loginTime = Metadata.provideForPlayer(e.getPlayer()).getOrNull(NetworkAnalytics.CONNECTION_TIME_SECONDS);
                long now = System.currentTimeMillis() / 1000L;
                if (loginTime != null) {
                    long diff = now - loginTime;
                    int mins = (int) TimeUnit.SECONDS.toMinutes(diff);
                    if (mins > 0) {
                        plugin.getDataManager().incrementPlayerMinutesPlayed(e.getPlayer().getUniqueId(), mins);
                    }
                }
            })
            .bindWith(consumer);
}
Vote.java 文件源码 项目:SkipNight 阅读 27 收藏 0 点赞 0 评论 0
@EventHandler
public void onLogoff(PlayerQuitEvent event) {
    Player player = event.getPlayer();

    if (timer != Timer.COMPLETE) // vote is running
        if (player.hasPermission("skipnight.vote")) { // player has permission
            Voter voter = new Voter(player.getUniqueId());
            if (voters.contains(voter)) { // player is in voter list
                voter = (Voter) voters.get(voters.lastIndexOf(voter));
                if (voter.getVote() == 1) yes--;
                if (voter.getVote() == -1) no--;
                voters.remove(voter);
            }
        }
}
OrebfuscatorPlayerListener.java 文件源码 项目:AntiCheat 阅读 26 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.NORMAL)
public void onPlayerQuit(PlayerQuitEvent event) {
    BlockHitManager.clearHistory(event.getPlayer());
    if (OrebfuscatorConfig.UseProximityHider) {
        ProximityHider.clearPlayer(event.getPlayer());
    }
}
Interact.java 文件源码 项目:SignEdit 阅读 30 收藏 0 点赞 0 评论 0
@EventHandler
public void onDisconnect(PlayerQuitEvent event) {
    Player player = event.getPlayer();
    if (isInProgress(player)) {
        popInProgressCommit(player).cleanup();
    }
    popSignEditCommit(player);
}
AutoSave.java 文件源码 项目:EscapeLag 阅读 24 收藏 0 点赞 0 评论 0
@EventHandler
public void QuitCancelled(PlayerQuitEvent e) {
    if (ConfigOptimize.AutoSaveenable == false) {
        return;
    }
    Player p = e.getPlayer();
    if (TaskId.get(p) != null) {
        Bukkit.getScheduler().cancelTask(TaskId.get(p));
        TaskId.remove(p);
    }
}
AzurePlayerList.java 文件源码 项目:EscapeLag 阅读 27 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.LOWEST)
public void dec(PlayerQuitEvent evt){
    Player player = evt.getPlayer();
    names.remove(player.getName());
    players.remove(player);

    if (!quit.isEmpty()) {
        for (QuitReactor re : quit) re.react(evt);
    }
}
ConnectionListener.java 文件源码 项目:Arcadia-Spigot 阅读 30 收藏 0 点赞 0 评论 0
@EventHandler
public void onPlayerQuit(PlayerQuitEvent event) {
    ArcadiaAPI api = Arcadia.getPlugin(Arcadia.class).getAPI();
    Translation translation = api.getTranslationManager().fetchTranslation("common.leave-message", event.getPlayer());
    if(translation != null) {
        final String message = translation.build(event.getPlayer().getName());
        if(!message.isEmpty()) {
            event.setQuitMessage(message);
        } else {
            event.setQuitMessage(null);
        }
    }
    if(api.getGameManager().isAlive(event.getPlayer())) api.getGameManager().setAlive(event.getPlayer(), false);
    if(api.getGameManager().isSpectating(event.getPlayer())) api.getGameManager().setSpectating(event.getPlayer(), false);
}
UserListener.java 文件源码 项目:VoxelGamesLibv2 阅读 26 收藏 0 点赞 0 评论 0
@EventHandler
public void onLeave(@Nonnull PlayerQuitEvent event) {
    Optional<User> user = handler.getUser(event.getPlayer().getUniqueId());
    user.ifPresent(u -> gameHandler.getGames(u.getUuid(), true).forEach(game -> game.leave(u)));

    handler.logout(event.getPlayer().getUniqueId());
}
FactionListener.java 文件源码 项目:HCFCore 阅读 30 收藏 0 点赞 0 评论 0
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onPlayerQuit(PlayerQuitEvent event) {
    Player player = event.getPlayer();
    PlayerFaction playerFaction = plugin.getFactionManager().getPlayerFaction(player);
    if (playerFaction != null) {
        playerFaction.broadcast(prefix + ChatColor.GRAY + "Your faction member " + ChatColor.GOLD  + playerFaction.getMember(player).getRole().getAstrix() + player.getName() + ChatColor.GRAY + " has " + ChatColor.RED + "disconnected.");
    }
}
TypeYesOrNo.java 文件源码 项目:UltimateTs 阅读 22 收藏 0 点赞 0 评论 0
@EventHandler
public void onQuit(PlayerQuitEvent e){
    Player p = e.getPlayer();
    if(PlayerManager.confirmationReady.contains(p)){
        PlayerManager.confirmationReady.remove(p); 
    }
}
GameListener.java 文件源码 项目:VoxelGamesLibv2 阅读 25 收藏 0 点赞 0 评论 0
@EventHandler
public void onLeave(@Nonnull PlayerQuitEvent event) {
    User user = userHandler.getUser(event.getPlayer().getUniqueId())
            .orElseThrow(() -> new UserException(
                    "Unknown user " + event.getPlayer().getDisplayName() + "(" + event.getPlayer()
                            .getUniqueId() + ")"));
    gameHandler.getGames(event.getPlayer().getUniqueId(), true)
            .forEach((game -> game.leave(user)));
}
TabManager.java 文件源码 项目:ProjectAres 阅读 26 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onQuit(PlayerQuitEvent event) {
    TabView view = this.getViewOrNull(event.getPlayer());
    if(view != null) {
        view.disable();
        this.removeView(view);
    }
    this.removePlayerEntry(event.getPlayer());
}
PlayerServerChanger.java 文件源码 项目:ProjectAres 阅读 27 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.LOWEST)
public void onQuit(PlayerQuitEvent event) {
    final MetadataValue future = event.getPlayer().getMetadata(METADATA_KEY, plugin);
    if(future != null) {
        ((SettableFuture) future.value()).set(null);
    }
}
IdentityProviderImpl.java 文件源码 项目:ProjectAres 阅读 46 收藏 0 点赞 0 评论 0
/**
 * Clean up after quitting players
 */
@EventHandler(priority = EventPriority.MONITOR)
public void deactivateNickOnQuit(PlayerQuitEvent event) {
    final Identity identity = identities.remove(event.getPlayer());
    if(identity != null && identity.getNickname() != null) {
        nicknames.remove(identity.getNickname());
    }
}
JoinMessageAnnouncer.java 文件源码 项目:ProjectAres 阅读 22 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.HIGHEST)
public void onQuit(PlayerQuitEvent event) throws EventException {
    event.setQuitMessage(null);
    final User user = userStore.getUser(event.getPlayer());
    final SessionChange change = pendingQuits.getIfPresent(user);

    event.yield();

    if(change != null) {
        pendingQuits.invalidate(user);
        announce(change);
    }
}
InventoryManager.java 文件源码 项目:SmartInvs 阅读 26 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.LOW)
public void onPlayerQuit(PlayerQuitEvent e) {
    Player p = e.getPlayer();

    if(!inventories.containsKey(p))
        return;

    SmartInventory inv = inventories.get(p);

    inv.getListeners().stream()
            .filter(listener -> listener.getType() == PlayerQuitEvent.class)
            .forEach(listener -> ((InventoryListener<PlayerQuitEvent>) listener).accept(e));

    inventories.remove(p);
}
LogoutTimer.java 文件源码 项目:HCFCore 阅读 26 收藏 0 点赞 0 评论 0
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onPlayerQuit(PlayerQuitEvent event) {
    UUID uuid = event.getPlayer().getUniqueId();
    if (getRemaining(event.getPlayer().getUniqueId()) > 0L) {
        clearCooldown(uuid);
    }
}
MoveCraft_PlayerListener.java 文件源码 项目:NavyCraft2-Lite 阅读 28 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.HIGH)
public void onPlayerQuit(PlayerQuitEvent event) {
    Player player = event.getPlayer();

    Craft craft = Craft.getPlayerCraft(player);

    if (craft != null) {
        if (craft.isNameOnBoard.get(player.getName())) {
            Craft.reboardNames.put(player.getName(), craft);

            craft.isNameOnBoard.put(player.getName(), false);
            if (craft.driverName == player.getName()) {
                craft.haveControl = false;
                craft.releaseHelm();
            }

            boolean abandonCheck = true;
            for (String s : craft.isNameOnBoard.keySet()) {
                if (craft.isNameOnBoard.get(s)) {
                    abandonCheck = false;
                }
            }

            if (abandonCheck) {
                craft.abandoned = true;
                craft.captainAbandoned = true;
            } else if (player.getName() == craft.captainName) {
                craft.captainAbandoned = true;
            }
        }

        for (Periscope p : craft.periscopes) {
            if (p.user == player) {
                p.user = null;
                break;
            }
        }
    }

}


问题


面经


文章

微信
公众号

扫码关注公众号