AddressCheck.java

net.minecraft.client.multiplayer.resolver.AddressCheck

信息

  • 全限定名:net.minecraft.client.multiplayer.resolver.AddressCheck
  • 类型:public interface
  • 包:net.minecraft.client.multiplayer.resolver
  • 源码路径:src/main/java/net/minecraft/client/multiplayer/resolver/AddressCheck.java
  • 起始行号:L13
  • 职责:

    TODO

字段/常量

内部类/嵌套类型

构造器

方法

下面的方法块按源码顺序生成。

boolean isAllowed(ResolvedServerAddress address) @ L14

  • 方法名:isAllowed
  • 源码定位:L14
  • 返回类型:boolean
  • 修饰符:package-private

参数:

  • address: ResolvedServerAddress

说明:

TODO

boolean isAllowed(ServerAddress address) @ L16

  • 方法名:isAllowed
  • 源码定位:L16
  • 返回类型:boolean
  • 修饰符:package-private

参数:

  • address: ServerAddress

说明:

TODO

static AddressCheck createFromService() @ L18

  • 方法名:createFromService
  • 源码定位:L18
  • 返回类型:AddressCheck
  • 修饰符:static

参数:

说明:

TODO

代码

@OnlyIn(Dist.CLIENT)
public interface AddressCheck {
    boolean isAllowed(ResolvedServerAddress address);
 
    boolean isAllowed(ServerAddress address);
 
    static AddressCheck createFromService() {
        final ImmutableList<Predicate<String>> blockLists = Streams.stream(ServiceLoader.load(BlockListSupplier.class))
            .map(BlockListSupplier::createBlockList)
            .filter(Objects::nonNull)
            .collect(ImmutableList.toImmutableList());
        return new AddressCheck() {
            @Override
            public boolean isAllowed(ResolvedServerAddress address) {
                String hostName = address.getHostName();
                String hostIp = address.getHostIp();
                return blockLists.stream().noneMatch(p -> p.test(hostName) || p.test(hostIp));
            }
 
            @Override
            public boolean isAllowed(ServerAddress address) {
                String hostName = address.getHost();
                return blockLists.stream().noneMatch(p -> p.test(hostName));
            }
        };
    }
}

引用的其他类