类org.bukkit.event.player.PlayerKickEvent源码实例Demo

下面列出了怎么用org.bukkit.event.player.PlayerKickEvent的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: Plan   文件: PlayerOnlineListener.java
/**
 * PlayerKickEvent Listener.
 * <p>
 * Adds processing information to the ProcessingQueue.
 * After KickEvent, the QuitEvent is automatically called.
 *
 * @param event Fired event
 */
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerKick(PlayerKickEvent event) {
    try {
        if (!status.areKicksCounted() || event.isCancelled()) {
            return;
        }
        UUID uuid = event.getPlayer().getUniqueId();
        if (BukkitAFKListener.AFK_TRACKER.isAfk(uuid)) {
            return;
        }

        dbSystem.getDatabase().executeTransaction(new KickStoreTransaction(uuid));
    } catch (Exception e) {
        errorLogger.log(L.ERROR, e, ErrorContext.builder().related(event).build());
    }
}
 
源代码2 项目: DiscordSRV   文件: PlayerBanListener.java
@EventHandler(ignoreCancelled = true, priority = EventPriority.MONITOR)
public void onPlayerKick(PlayerKickEvent event) {
    Bukkit.getScheduler().scheduleSyncDelayedTask(DiscordSRV.getPlugin(), () -> {
        if (Bukkit.getBannedPlayers().contains(Bukkit.getOfflinePlayer(event.getPlayer().getUniqueId()))) {
            if (event.getPlayer() instanceof OfflinePlayer) {
                if (!DiscordSRV.config().getBoolean("BanSynchronizationMinecraftToDiscord")) {
                    DiscordSRV.debug("Not handling ban for player " + event.getPlayer().getName() + " (" + event.getPlayer().getUniqueId() + ") because doing so is disabled in the config");
                    return;
                }

                DiscordSRV.debug("Handling ban for player " + event.getPlayer().getName() + " (" + event.getPlayer().getUniqueId() + ")");
                DiscordUtil.banMember(DiscordUtil.getMemberById(DiscordSRV.getPlugin().getAccountLinkManager().getDiscordId(event.getPlayer().getUniqueId())));
            }
        }
    }, 20);
}
 
源代码3 项目: AuthMeReloaded   文件: PlayerListenerTest.java
@Test
public void shouldNotCancelKick() {
    // given
    given(settings.getProperty(RestrictionSettings.FORCE_SINGLE_SESSION)).willReturn(false);
    String name = "Bobby";
    Player player = mockPlayerWithName(name);
    PlayerKickEvent event = new PlayerKickEvent(player, "You logged in from another location", "");
    given(antiBotService.wasPlayerKicked(name)).willReturn(false);

    // when
    listener.onPlayerKick(event);

    // then
    assertThat(event.isCancelled(), equalTo(false));
    verify(antiBotService).wasPlayerKicked(name);
    verify(management).performQuit(player);
}
 
源代码4 项目: AuthMeReloaded   文件: PlayerListenerTest.java
@Test
public void shouldNotCancelOrdinaryKick() {
    // given
    given(settings.getProperty(RestrictionSettings.FORCE_SINGLE_SESSION)).willReturn(true);
    String name = "Bobby";
    Player player = mockPlayerWithName(name);
    PlayerKickEvent event = new PlayerKickEvent(player, "No longer desired here!", "");
    given(antiBotService.wasPlayerKicked(name)).willReturn(true);

    // when
    listener.onPlayerKick(event);

    // then
    assertThat(event.isCancelled(), equalTo(false));
    verify(antiBotService).wasPlayerKicked(name);
    verifyNoInteractions(management);
}
 
/**
 * When a player gets kicked off the server, listener saves a player's data
 * from hashmap to file, but will not write to disk.
 *
 * @param e
 */
@EventHandler(priority = EventPriority.MONITOR)
public void onKick(PlayerKickEvent e) {
    if (PlayerStatsManager.getPlayerStats(e.getPlayer().getName()) != null) {
        new BukkitRunnable() {
            @Override
            public void run() {
                PlayerStatsManager.removePlayerStats(e.getPlayer().getName());
            }
        }.runTaskLater(Main.getMain(), 20);
    }
}
 
源代码6 项目: Skript   文件: ExprMessage.java
@Override
@Nullable
String get(final Event e) {
	if (e instanceof PlayerKickEvent)
		return ((PlayerKickEvent) e).getLeaveMessage();
	else
		return ((PlayerQuitEvent) e).getQuitMessage();
}
 
源代码7 项目: Skript   文件: ExprMessage.java
@Override
void set(final Event e, final String message) {
	if (e instanceof PlayerKickEvent)
		((PlayerKickEvent) e).setLeaveMessage(message);
	else
		((PlayerQuitEvent) e).setQuitMessage(message);
}
 
源代码8 项目: Skript   文件: EffKick.java
@Override
protected void execute(final Event e) {
	final String r = reason != null ? reason.getSingle(e) : "";
	if (r == null)
		return;
	for (final Player p : players.getArray(e)) {
		if (e instanceof PlayerLoginEvent && p.equals(((PlayerLoginEvent) e).getPlayer()) && !Delay.isDelayed(e)) {
			((PlayerLoginEvent) e).disallow(Result.KICK_OTHER, r);
		} else if (e instanceof PlayerKickEvent && p.equals(((PlayerKickEvent) e).getPlayer()) && !Delay.isDelayed(e)) {
			((PlayerKickEvent) e).setLeaveMessage(r);
		} else {
			p.kickPlayer(r);
		}
	}
}
 
源代码9 项目: CombatLogX   文件: ListenerUntagger.java
@EventHandler(priority=EventPriority.LOWEST, ignoreCancelled=true)
public void onKicked(PlayerKickEvent e) {
    String kickReason = e.getReason();
    if(isKickReasonIgnored(kickReason)) return;
    
    Player player = e.getPlayer();
    ICombatManager combatManager = this.plugin.getCombatManager();
    combatManager.untag(player, PlayerUntagEvent.UntagReason.KICK);
}
 
源代码10 项目: PlayerSQL   文件: EventExecutor.java
@EventHandler
public void handle(PlayerKickEvent e) {
    Player player = e.getPlayer();
    if (handled.get(player.getUniqueId()) != Lifecycle.DATA_SENT) {
        return;
    }

    DataSupply supply = new DataSupply();// So we magic send player data at kick event.
    supply.setId(player.getUniqueId());
    supply.setGroup(group);
    if (isLocked(player.getUniqueId())) {
        supply.setBuf(EMPTY_ARRAY);
    } else {
        manager.lockUser(player);
        PlayerData dat = manager.getUserData(player, true);
        pending.put(player.getUniqueId(), dat);
        supply.setBuf(PlayerDataHelper.encode(dat));
    }

    byte[] message = supply.encode();
    if (message.length > Messenger.MAX_MESSAGE_SIZE) {// Overflow?
        supply.setBuf(EMPTY_ARRAY);
        message = supply.encode();
    }

    player.sendPluginMessage(main, PlayerSqlProtocol.NAMESPACE, message);// BungeeCord received this before kicks
}
 
源代码11 项目: Slimefun4   文件: PlayerProfileListener.java
@EventHandler(ignoreCancelled = true)
public void onKick(PlayerKickEvent e) {
    Optional<PlayerProfile> profile = PlayerProfile.find(e.getPlayer());

    // if we still have a profile of this Player in memory, delete it
    if (profile.isPresent()) {
        profile.get().markForDeletion();
    }
}
 
源代码12 项目: Slimefun4   文件: GrapplingHookListener.java
@EventHandler
public void onLeave(PlayerKickEvent e) {
    if (!isEnabled()) {
        return;
    }

    UUID uuid = e.getPlayer().getUniqueId();
    activeHooks.remove(uuid);
    invulnerability.remove(uuid);
}
 
源代码13 项目: Slimefun4   文件: TestPlayerProfileListener.java
@Test
public void testPlayerKick() throws InterruptedException {
    Player player = server.addPlayer();
    PlayerProfile profile = TestUtilities.awaitProfile(player);
    PlayerKickEvent event = new PlayerKickEvent(player, "You're not welcome anymore", "bye");
    listener.onKick(event);

    Assertions.assertTrue(profile.isMarkedForDeletion());
}
 
源代码14 项目: Slimefun4   文件: TestPlayerProfileListener.java
@Test
public void testUnloadedPlayerKick() {
    Player player = server.addPlayer();
    PlayerKickEvent event = new PlayerKickEvent(player, "You're not welcome anymore", "bye");
    listener.onKick(event);

    Assertions.assertFalse(PlayerProfile.find(player).isPresent());
}
 
源代码15 项目: AuthMeReloaded   文件: PlayerListener.java
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onPlayerKick(PlayerKickEvent event) {
    // Note #831: Especially for offline CraftBukkit, we need to catch players being kicked because of
    // "logged in from another location" and to cancel their kick
    if (settings.getProperty(RestrictionSettings.FORCE_SINGLE_SESSION)
        && event.getReason().contains("You logged in from another location")) {
        event.setCancelled(true);
        return;
    }

    final Player player = event.getPlayer();
    if (!antiBotService.wasPlayerKicked(player.getName())) {
        management.performQuit(player);
    }
}
 
源代码16 项目: AuthMeReloaded   文件: PlayerListenerTest.java
/**
 * #831: If a player is kicked because of "logged in from another location", the kick
 * should be CANCELED when single session is enabled.
 */
@Test
public void shouldCancelKick() {
    // given
    given(settings.getProperty(RestrictionSettings.FORCE_SINGLE_SESSION)).willReturn(true);
    Player player = mock(Player.class);
    PlayerKickEvent event = new PlayerKickEvent(player, "You logged in from another location", "");

    // when
    listener.onPlayerKick(event);

    // then
    assertThat(event.isCancelled(), equalTo(true));
    verifyNoInteractions(player, management, antiBotService);
}
 
源代码17 项目: AnnihilationPro   文件: AutoRestarter.java
@EventHandler(priority = EventPriority.MONITOR)
public void teleportCheck(PlayerKickEvent event)
{
	check();
}
 
源代码18 项目: AnnihilationPro   文件: Bar.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerKick(PlayerKickEvent event)
{
    removeBar(event.getPlayer());
}
 
源代码19 项目: AnnihilationPro   文件: AnniPlayer.java
@EventHandler(priority = EventPriority.MONITOR)
public void enderFuraceManagement(PlayerKickEvent event)
{
	checkLeave(event.getPlayer());
}
 
源代码20 项目: AnnihilationPro   文件: NPCMain.java
@EventHandler(priority = EventPriority.MONITOR)
public void onLeave(PlayerKickEvent event)
{
    playerLeft(event.getPlayer());
}
 
源代码21 项目: Statz   文件: TimesKickedListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onKick(final PlayerKickEvent event) {

    final PlayerStat stat = PlayerStat.TIMES_KICKED;

    // Get player
    final Player player = event.getPlayer();

    // Do general check
    if (!plugin.doGeneralCheck(player, stat))
        return;

    PlayerStatSpecification specification = new TimesKickedSpecification(player.getUniqueId(), 1,
            player.getWorld().getName(), event.getReason());

    // Update value to new stat.
    plugin.getDataManager().setPlayerInfo(player.getUniqueId(), stat, specification.constructQuery());

}
 
源代码22 项目: Carbon-2   文件: BossBarAPI.java
@EventHandler
public void onPlayerKick(PlayerKickEvent event) {
    removeBars(event.getPlayer());
}
 
源代码23 项目: PerWorldInventory   文件: PlayerQuitListener.java
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerKick(PlayerKickEvent event) {
    Player player = event.getPlayer();
    process.processPlayerLeave(player);
}
 
源代码24 项目: Carbon-2   文件: BossBarAPI.java
@EventHandler
public void onPlayerKick(PlayerKickEvent event) {
    removeBars(event.getPlayer());
}
 
源代码25 项目: PerWorldInventory   文件: PlayerQuitListener.java
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerKick(PlayerKickEvent event) {
    Player player = event.getPlayer();
    process.processPlayerLeave(player);
}
 
源代码26 项目: AreaShop   文件: PlayerLoginLogoutListener.java
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerKick(PlayerKickEvent event) {
	updateLastActive(event.getPlayer());
}
 
源代码27 项目: FunnyGuilds   文件: PlayerQuit.java
@EventHandler
public void onKick(PlayerKickEvent event) {
    quit(event.getPlayer());
}
 
源代码28 项目: CardinalPGM   文件: HillObjective.java
@EventHandler
public void onPlayerLeave(PlayerKickEvent event) {
    if (capturingPlayers.contains(event.getPlayer())) capturingPlayers.remove(event.getPlayer());
}
 
源代码29 项目: HeavySpleef   文件: JoinRequester.java
@EventHandler
public void onPlayerKick(PlayerKickEvent event) {
	handleQuit(event);
}
 
源代码30 项目: HeavySpleef   文件: PlayerManager.java
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerKick(PlayerKickEvent e) {
	handlePlayerLeave(e.getPlayer());
}
 
 类所在包
 类方法
 同包方法