/** * Get a session. * * @param user The user to get a session for * @return The user's session * @deprecated see {@link #getSession(Class, org.bukkit.command.CommandSender)} with args (UserSession.class, user) */ @Deprecated public UserSession getSession(CommandSender user) { return getSession(UserSession.class, user); }
/** * Get a session. * * @param user The player to get this session for * @return The user's session * @deprecated see {@link #getSession(Class, org.bukkit.command.CommandSender)} with args (AdministrativeSession.class, user) */ @Deprecated public AdministrativeSession getAdminSession(Player user) { return getSession(AdministrativeSession.class, user); }
@Override public Collection<Map.Entry<String, Integer>> getActive(CommandSender sender) { return sessions.getSession(CooldownState.class, sender).cooldownCommands.entrySet(); }
@Override public Collection<WarmupInfo> getActive(CommandSender sender) { return sessions.getSession(CooldownState.class, sender).warmupCommands.values(); }
@Override public boolean remove(CommandSender sender, String name) { return sessions.getSession(CooldownState.class, sender).warmupCommands.remove(name.toLowerCase()) != null; } }
@Override public boolean remove(CommandSender sender, String name) { return sessions.getSession(CooldownState.class, sender).cooldownCommands.remove(name.toLowerCase()) != null; } }
/** * Determines if a player is marked as AFK. * * @param player the player to check * @return true if the player should be kicked */ public boolean isAfk(Player player) { return sessions.getSession(AFKSession.class, player).isAFK(); }
public boolean isFrozen(Player player) { return sessions.getSession(FreezeState.class, player).isFrozen(); }
public boolean unfreezePlayer(Player player) { FreezeState session = sessions.getSession(FreezeState.class, player); final boolean previous = session.isFrozen(); session.freeze(null); return previous; }
/** * Determines if a player should be kicked for being AFK. * * @param player the player to check * @return true if the player should be kicked */ public boolean shouldKick(Player player) { return shouldKick(sessions.getSession(AFKSession.class, player).getLastUpdate()); }
public boolean freezePlayer(Player player) { FreezeState session = sessions.getSession(FreezeState.class, player); final boolean previous = session.isFrozen(); session.freeze(player.getLocation()); return previous; }
@EventHandler public void onPlayerChangeGameMode(PlayerGameModeChangeEvent event) { Player player = event.getPlayer(); FlightSession session = sessions.getSession(FlightSession.class, player); if (event.getNewGameMode() != GameMode.CREATIVE) { player.setAllowFlight(session.canFly); } }
@EventHandler public void onRespawn(PlayerRespawnEvent event) { sessions.getSession(TeleportSession.class, event.getPlayer()).rememberLocation(event.getPlayer()); }
/** * Determines if a player can be protected. * * @param player the player to check * @return true if the player can be protected */ public boolean canProtect(Player player) { AFKSession session = sessions.getSession(AFKSession.class, player); return (session.isRequested() && canProtect(true)) || (isAfk(session.getLastUpdate()) && canProtect(false)); }
@Override public void run() { if (CommandBook.inst().hasPermission(player, "commandbook.flight.onjoin")) { FlightSession session = sessions.getSession(FlightSession.class, player); player.setAllowFlight(session.canFly = true); //noinspection deprecation if (!player.isOnGround()) { player.setFlying(true); } } } }, 1);
/** * Determines if a player can be set to ignored for the sleep check. * * @param player the player to check * @return true if the player can be set to ignored for the sleep check */ public boolean canIgnoreSleep(Player player) { AFKSession session = sessions.getSession(AFKSession.class, player); return (session.isRequested() && canIgnoreSleep(true)) || (isAfk(session.getLastUpdate()) && canIgnoreSleep(false)); }
@Command(aliases = {"reply", "r"}, usage = "<message...>", desc = "Reply to last user", min = 1, max = -1) @CommandPermissions({"commandbook.msg"}) public void reply(CommandContext args, CommandSender sender) throws CommandException { String lastRecipient = sessions.getSession(UserSession.class, sender).getLastRecipient(); if (lastRecipient == null) { throw new CommandException("You haven't messaged anyone."); } messagePlayer(sender, lastRecipient, args.getJoinedStrings(0)); }
@EventHandler public void onPlayerworldChange(PlayerChangedWorldEvent event) { Player player = event.getPlayer(); FlightSession session = sessions.getSession(FlightSession.class, player); if (config.checkWorldChange && player.getGameMode() != GameMode.CREATIVE && !CommandBook.inst().hasPermission(player, "commandbook.flight." + player.getWorld().getName())) { player.setAllowFlight(session.canFly = false); } } }
@Command(aliases = {"me"}, usage = "<message...>", desc = "Send an action message", min = 1, max = -1) @CommandPermissions({"commandbook.say.me"}) public void me(CommandContext args, CommandSender sender) throws CommandException { if (sender instanceof Player && sessions.getSession(AdministrativeSession.class, sender).isMute()) { sender.sendMessage(ChatColor.RED + "You are muted."); return; } String name = ChatUtil.toColoredName(sender, ChatColor.YELLOW); String msg = args.getJoinedStrings(0); BasePlugin.callEvent( new SharedMessageEvent(name + " " + msg)); BasePlugin.server().broadcastMessage("* " + name + " " + msg); }
@Command(aliases = {"unmute"}, usage = "<target>", desc = "Unmute a player", min = 1, max = 1) @CommandPermissions({"commandbook.mute"}) public void unmute(CommandContext args, CommandSender sender) throws CommandException { Player player = InputUtil.PlayerParser.matchSinglePlayer(sender, args.getString(0)); if (sessions.getSession(AdministrativeSession.class, player).setMute(false)) { if (player != sender) { player.sendMessage(ChatColor.YELLOW + "You've been unmuted by " + ChatUtil.toColoredName(sender, ChatColor.YELLOW)); } sender.sendMessage(ChatColor.YELLOW + "You've unmuted " + ChatUtil.toColoredName(player, ChatColor.YELLOW)); } else { throw new CommandException("Player " + ChatUtil.toName(player) + " was not muted!"); } }