45 lines
1 KiB
Java
45 lines
1 KiB
Java
package net.minecraft.server.players;
|
|
|
|
import com.google.gson.JsonObject;
|
|
import java.io.File;
|
|
import java.net.SocketAddress;
|
|
import org.jetbrains.annotations.Nullable;
|
|
|
|
public class IpBanList extends StoredUserList<String, IpBanListEntry> {
|
|
public IpBanList(File file) {
|
|
super(file);
|
|
}
|
|
|
|
@Override
|
|
protected StoredUserEntry<String> createEntry(JsonObject entryData) {
|
|
return new IpBanListEntry(entryData);
|
|
}
|
|
|
|
public boolean isBanned(SocketAddress address) {
|
|
String string = this.getIpFromAddress(address);
|
|
return this.contains(string);
|
|
}
|
|
|
|
public boolean isBanned(String address) {
|
|
return this.contains(address);
|
|
}
|
|
|
|
@Nullable
|
|
public IpBanListEntry get(SocketAddress address) {
|
|
String string = this.getIpFromAddress(address);
|
|
return this.get(string);
|
|
}
|
|
|
|
private String getIpFromAddress(SocketAddress address) {
|
|
String string = address.toString();
|
|
if (string.contains("/")) {
|
|
string = string.substring(string.indexOf(47) + 1);
|
|
}
|
|
|
|
if (string.contains(":")) {
|
|
string = string.substring(0, string.indexOf(58));
|
|
}
|
|
|
|
return string;
|
|
}
|
|
}
|