package org.bukkit.craftbukkit; import java.net.InetSocketAddress; import java.util.Date; import java.util.Set; import net.minecraft.server.IpBanEntry; import net.minecraft.server.IpBanList; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.Validate; import com.google.common.collect.ImmutableSet; public class CraftIpBanList implements org.bukkit.BanList { private final IpBanList list; public CraftIpBanList(IpBanList list) { this.list = list; } @Override public org.bukkit.BanEntry getBanEntry(String target) { Validate.notNull(target, "Target cannot be null"); IpBanEntry entry = (IpBanEntry) list.get(target); if (entry == null) { return null; } return new CraftIpBanEntry(target, entry, list); } @Override public org.bukkit.BanEntry addBan(String target, String reason, Date expires, String source) { Validate.notNull(target, "Ban target cannot be null"); IpBanEntry entry = new IpBanEntry(target, new Date(), StringUtils.isBlank(source) ? null : source, expires, StringUtils.isBlank(reason) ? null : reason); list.add(entry); list.save(); return new CraftIpBanEntry(target, entry, list); } @Override public Set getBanEntries() { ImmutableSet.Builder builder = ImmutableSet.builder(); for (String target : list.getEntries()) { builder.add(new CraftIpBanEntry(target, (IpBanEntry) list.get(target), list)); } return builder.build(); } @Override public boolean isBanned(String target) { Validate.notNull(target, "Target cannot be null"); return list.isBanned(InetSocketAddress.createUnresolved(target, 0)); } @Override public void pardon(String target) { Validate.notNull(target, "Target cannot be null"); list.remove(target); } }