/** * Get the data from config file. * * @param config the configuration file. */ public void read(FileConfiguration config) { // read type and time. banType = BanList.Type.valueOf(config.getString("ban-type")); banTime = config.getInt("ban-time", banTime); // convert the days into a date. String days = config.getString("ban-days"); if (Objects.isNull(days) || Objects.equals(days, "0")) { banDate = null; } else { GregorianCalendar c = new GregorianCalendar(); c.add(GregorianCalendar.DATE, Integer.parseInt(days)); banDate = c.getTime(); } tpsLimit = config.getInt("tps-limit", tpsLimit); broadcastBan = config.getBoolean("broadcast-ban"); if (broadcastBan) { String message = config.getString("broadcast-message"); broadcastMessage = ChatColor.translateAlternateColorCodes('&', message); } }
@Override public void onGuildBan(GuildBanEvent event) { UUID linkedUuid = DiscordSRV.getPlugin().getAccountLinkManager().getUuid(event.getUser().getId()); if (linkedUuid == null) { DiscordSRV.debug("Not handling ban for user " + event.getUser() + " because they didn't have a linked account"); return; } OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(linkedUuid); if (!offlinePlayer.hasPlayedBefore()) return; if (!DiscordSRV.config().getBoolean("BanSynchronizationDiscordToMinecraft")) { DiscordSRV.debug("Not handling ban for user " + event.getUser() + " because doing so is disabled in the config"); return; } Bukkit.getBanList(BanList.Type.NAME).addBan(offlinePlayer.getName(), LangUtil.Message.BAN_DISCORD_TO_MINECRAFT.toString(), null, "Discord"); }
@Override public void onGuildUnban(GuildUnbanEvent event) { UUID linkedUuid = DiscordSRV.getPlugin().getAccountLinkManager().getUuid(event.getUser().getId()); if (linkedUuid == null) { DiscordSRV.debug("Not handling unban for user " + event.getUser() + " because they didn't have a linked account"); return; } OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(linkedUuid); if (!offlinePlayer.hasPlayedBefore()) return; if (!DiscordSRV.config().getBoolean("BanSynchronizationDiscordToMinecraft")) { DiscordSRV.debug("Not handling unban for user " + event.getUser() + " because doing so is disabled in the config"); return; } Bukkit.getBanList(BanList.Type.NAME).pardon(offlinePlayer.getName()); }
@Override public boolean execute(CommandSender sender, String currentAlias, String[] args) { if (!testPermission(sender)) return true; if (args.length == 0) { sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); return false; } String reason = args.length > 0 ? StringUtils.join(args, ' ', 1, args.length) : null; Bukkit.getBanList(BanList.Type.NAME).addBan(args[0], reason, null, sender.getName()); Player player = Bukkit.getPlayer(args[0]); if (player != null) { player.kickPlayer("Banned by admin."); } Command.broadcastCommandMessage(sender, "Banned player " + args[0]); return true; }
@Command(aliases = {"ban", "pb"}, usage = "<player> <reason>", desc = "Ban a player.", min = 2) @CommandPermissions("cardinal.punish.ban") public static void ban(CommandContext cmd, CommandSender sender) throws CommandException { OfflinePlayer banned = Bukkit.getOfflinePlayer(cmd.getString(0)); if (sender instanceof Player) { if (PermissionModule.isMod(((Player) sender).getUniqueId()) && banned.isOp()) { throw new CommandException(new LocalizedChatMessage(ChatConstant.ERROR_PLAYER_NOT_AFFECTED).getMessage(ChatUtils.getLocale(sender))); } } String reason = ""; for (int i = 1; i < cmd.argsLength(); i++) { reason = reason + cmd.getString(i) + " "; } reason = reason.trim(); if (banned.isOnline()) { Player onlineBanned = (Player) banned; onlineBanned.kickPlayer(ChatColor.RED + "Permanently Banned" + ChatColor.GOLD + " \u00BB " + ChatColor.AQUA + reason); Bukkit.broadcastMessage((sender instanceof Player ? TeamUtils.getTeamColorByPlayer((Player) sender) + ((Player) sender).getDisplayName() : ChatColor.YELLOW + "*Console") + ChatColor.GOLD + " \u00BB Permanent Ban \u00BB " + TeamUtils.getTeamColorByPlayer(banned) + onlineBanned.getDisplayName() + ChatColor.GOLD + " \u00BB " + ChatColor.DARK_AQUA + reason); Bukkit.getBanList(BanList.Type.NAME).addBan(cmd.getString(0), ChatColor.RED + "Permanently Banned" + ChatColor.GOLD + " \u00BB " + ChatColor.AQUA + reason, null, sender.getName()); } else if (!Bukkit.getBanList(BanList.Type.NAME).isBanned(banned.getName())){ Bukkit.broadcastMessage((sender instanceof Player ? TeamUtils.getTeamColorByPlayer((Player) sender) + ((Player) sender).getDisplayName() : ChatColor.YELLOW + "*Console") + ChatColor.GOLD + " \u00BB Permanent Ban \u00BB " + TeamUtils.getTeamColorByPlayer(banned) + banned.getName() + ChatColor.GOLD + " \u00BB " + ChatColor.DARK_AQUA + reason); Bukkit.getBanList(BanList.Type.NAME).addBan(cmd.getString(0), ChatColor.RED + "Permanently Banned" + ChatColor.GOLD + " \u00BB " + ChatColor.AQUA + reason, null, sender.getName()); } else throw new CommandException(new LocalizedChatMessage(ChatConstant.ERROR_PLAYER_ALREADY_BANNED).getMessage(ChatUtils.getLocale(sender))); }
public boolean resetWarnings(String uName, CommandSender sender) { UUID uuid = plugin.getUUIDFromName(uName); if (plugin.wasWarned(uuid)) { BanList bl = Bukkit.getBanList(BanList.Type.NAME); bl.pardon(uName); plugin.removeBanned(uuid); sender.sendMessage(RED+"[BadWords] "+WHITE+ uName + " warnings reset and unbanned"); return true; } else { sender.sendMessage(RED+"[BadWords] "+WHITE+uName + " has not been warned"); return false; } }
@Override protected void checkBans(PlayerLoginEvent event, Object[] data) { String name = event.getPlayer().getName(); String hostaddr = event.getAddress().getHostAddress(); final BanList nameBans = server.getBanList(BanList.Type.NAME); final BanList ipBans = server.getBanList(BanList.Type.IP); if (nameBans.isBanned(name)) { event.disallow(PlayerLoginEvent.Result.KICK_BANNED, "Banned: " + nameBans.getBanEntry(name).getReason()); } else if (ipBans.isBanned(hostaddr)) { event.disallow(PlayerLoginEvent.Result.KICK_BANNED, "Banned: " + ipBans.getBanEntry(hostaddr).getReason()); } else if (server.hasWhitelist() && !event.getPlayer().isWhitelisted()) { event.disallow(PlayerLoginEvent.Result.KICK_WHITELIST, "You are not whitelisted on this server."); } else if (server.getOnlinePlayers().size() >= server.getMaxPlayers()) { event.disallow(PlayerLoginEvent.Result.KICK_FULL, "The server is full (" + server.getMaxPlayers() + " players)."); } }
/** * Clean a player's history and ban him * * @param player the player to ban */ @Override public void banPlayer(final OfflinePlayer player) { if (playerChatHistory.contains(player.getName())) { playerChatHistory.get(player.getName()).clear(); } final Player onlinePlayer = player.getPlayer(); if (onlinePlayer != null && !Perms.BYPASS_BAN.has(onlinePlayer) && !Perms.BYPASS_KICK.has(onlinePlayer)) { class RunLater implements Runnable { @Override public void run() { onlinePlayer.kickPlayer(Language.BAN_MESSAGE.toString()); Bukkit.getServer().getBanList(BanList.Type.NAME).addBan(player.getName(), null, null, null); plugin.getLogger().log(Level.INFO, "Player banned: {0}", player.getName()); } } Bukkit.getScheduler().runTaskLater(plugin, new RunLater(), 1L); } }
public boolean isBanned() { if (getName() == null) { return false; } return server.getBanList(BanList.Type.NAME).isBanned(getName()); }
public void setBanned(boolean value) { if (getName() == null) { return; } if (value) { server.getBanList(BanList.Type.NAME).addBan(getName(), null, null, null); } else { server.getBanList(BanList.Type.NAME).pardon(getName()); } }
@Override public BanList getBanList(BanList.Type type){ Validate.notNull(type, "Type cannot be null"); switch(type){ case IP: return new CraftIpBanList(playerList.getBannedIPs()); case NAME: default: return new CraftProfileBanList(playerList.func_152608_h()); } }
private void processIPBan(String ip, CommandSender sender, String reason) { Bukkit.getBanList(BanList.Type.IP).addBan(ip, reason, null, sender.getName()); // Find all matching players and kick for (Player player : Bukkit.getOnlinePlayers()) { if (player.getAddress().getAddress().getHostAddress().equals(ip)) { player.kickPlayer("You have been IP banned."); } } Command.broadcastCommandMessage(sender, "Banned IP Address " + ip); }
@Override public boolean execute(CommandSender sender, String currentAlias, String[] args) { if (!testPermission(sender)) return true; if (args.length != 1) { sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); return false; } Bukkit.getBanList(BanList.Type.NAME).pardon(args[0]); Command.broadcastCommandMessage(sender, "Pardoned " + args[0]); return true; }
@Override public boolean execute(CommandSender sender, String currentAlias, String[] args) { if (!testPermission(sender)) return true; BanList.Type banType = BanList.Type.NAME; if (args.length > 0) { if (args[0].equalsIgnoreCase("ips")) { banType = BanList.Type.IP; } else if (!args[0].equalsIgnoreCase("players")) { sender.sendMessage(ChatColor.RED + "Usage: " + usageMessage); return false; } } StringBuilder message = new StringBuilder(); BanEntry[] banlist = Bukkit.getBanList(banType).getBanEntries().toArray(new BanEntry[0]); for (int x = 0; x < banlist.length; x++) { if (x != 0) { if (x == banlist.length - 1) { message.append(" and "); } else { message.append(", "); } } message.append(banlist[x].getTarget()); } sender.sendMessage("There are " + banlist.length + " total banned players:"); sender.sendMessage(message.toString()); return true; }
@Override public BanList getBanList(BanList.Type type) { Validate.notNull(type, "Type cannot be null"); switch(type){ case IP: return new CraftIpBanList(playerList.getIPBans()); case NAME: default: return new CraftProfileBanList(playerList.getProfileBans()); } }