ServerPacksSource.java

net.minecraft.server.packs.repository.ServerPacksSource

信息

  • 全限定名:net.minecraft.server.packs.repository.ServerPacksSource
  • 类型:public class
  • 包:net.minecraft.server.packs.repository
  • 源码路径:src/main/java/net/minecraft/server/packs/repository/ServerPacksSource.java
  • 起始行号:L24
  • 继承:BuiltInPackSource
  • 职责:

    TODO

字段/常量

  • VERSION_METADATA_SECTION

    • 类型: PackMetadataSection
    • 修饰符: private static final
    • 源码定位: L25
    • 说明:

      TODO

  • FEATURE_FLAGS_METADATA_SECTION

    • 类型: FeatureFlagsMetadataSection
    • 修饰符: private static final
    • 源码定位: L28
    • 说明:

      TODO

  • BUILT_IN_METADATA

    • 类型: ResourceMetadata
    • 修饰符: private static final
    • 源码定位: L29
    • 说明:

      TODO

  • VANILLA_PACK_INFO

    • 类型: PackLocationInfo
    • 修饰符: private static final
    • 源码定位: L32
    • 说明:

      TODO

  • VANILLA_SELECTION_CONFIG

    • 类型: PackSelectionConfig
    • 修饰符: private static final
    • 源码定位: L35
    • 说明:

      TODO

  • FEATURE_SELECTION_CONFIG

    • 类型: PackSelectionConfig
    • 修饰符: private static final
    • 源码定位: L36
    • 说明:

      TODO

  • PACKS_DIR

    • 类型: Identifier
    • 修饰符: private static final
    • 源码定位: L37
    • 说明:

      TODO

内部类/嵌套类型

构造器

public ServerPacksSource(DirectoryValidator validator) @ L39

  • 构造器名:ServerPacksSource
  • 源码定位:L39
  • 修饰符:public

参数:

  • validator: DirectoryValidator

说明:

TODO

方法

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

private static PackLocationInfo createBuiltInPackLocation(String id, Component title) @ L43

  • 方法名:createBuiltInPackLocation
  • 源码定位:L43
  • 返回类型:PackLocationInfo
  • 修饰符:private static

参数:

  • id: String
  • title: Component

说明:

TODO

public static VanillaPackResources createVanillaPackSource() @ L47

  • 方法名:createVanillaPackSource
  • 源码定位:L47
  • 返回类型:VanillaPackResources
  • 修饰符:public static

参数:

说明:

TODO

protected Component getPackTitle(String id) @ L57

  • 方法名:getPackTitle
  • 源码定位:L57
  • 返回类型:Component
  • 修饰符:protected

参数:

  • id: String

说明:

TODO

protected Pack createVanillaPack(PackResources resources) @ L62

  • 方法名:createVanillaPack
  • 源码定位:L62
  • 返回类型:Pack
  • 修饰符:protected

参数:

  • resources: PackResources

说明:

TODO

protected Pack createBuiltinPack(String id, Pack.ResourcesSupplier resources, Component name) @ L67

  • 方法名:createBuiltinPack
  • 源码定位:L67
  • 返回类型:Pack
  • 修饰符:protected

参数:

  • id: String
  • resources: Pack.ResourcesSupplier
  • name: Component

说明:

TODO

public static PackRepository createPackRepository(Path datapackDir, DirectoryValidator validator) @ L72

  • 方法名:createPackRepository
  • 源码定位:L72
  • 返回类型:PackRepository
  • 修饰符:public static

参数:

  • datapackDir: Path
  • validator: DirectoryValidator

说明:

TODO

public static PackRepository createVanillaTrustedRepository() @ L76

  • 方法名:createVanillaTrustedRepository
  • 源码定位:L76
  • 返回类型:PackRepository
  • 修饰符:public static

参数:

说明:

TODO

public static PackRepository createPackRepository(LevelStorageSource.LevelStorageAccess levelSourceAccess) @ L80

  • 方法名:createPackRepository
  • 源码定位:L80
  • 返回类型:PackRepository
  • 修饰符:public static

参数:

  • levelSourceAccess: LevelStorageSource.LevelStorageAccess

说明:

TODO

代码

public class ServerPacksSource extends BuiltInPackSource {
    private static final PackMetadataSection VERSION_METADATA_SECTION = new PackMetadataSection(
        Component.translatable("dataPack.vanilla.description"), SharedConstants.getCurrentVersion().packVersion(PackType.SERVER_DATA).minorRange()
    );
    private static final FeatureFlagsMetadataSection FEATURE_FLAGS_METADATA_SECTION = new FeatureFlagsMetadataSection(FeatureFlags.DEFAULT_FLAGS);
    private static final ResourceMetadata BUILT_IN_METADATA = ResourceMetadata.of(
        PackMetadataSection.SERVER_TYPE, VERSION_METADATA_SECTION, FeatureFlagsMetadataSection.TYPE, FEATURE_FLAGS_METADATA_SECTION
    );
    private static final PackLocationInfo VANILLA_PACK_INFO = new PackLocationInfo(
        "vanilla", Component.translatable("dataPack.vanilla.name"), PackSource.BUILT_IN, Optional.of(CORE_PACK_INFO)
    );
    private static final PackSelectionConfig VANILLA_SELECTION_CONFIG = new PackSelectionConfig(false, Pack.Position.BOTTOM, false);
    private static final PackSelectionConfig FEATURE_SELECTION_CONFIG = new PackSelectionConfig(false, Pack.Position.TOP, false);
    private static final Identifier PACKS_DIR = Identifier.withDefaultNamespace("datapacks");
 
    public ServerPacksSource(DirectoryValidator validator) {
        super(PackType.SERVER_DATA, createVanillaPackSource(), PACKS_DIR, validator);
    }
 
    private static PackLocationInfo createBuiltInPackLocation(String id, Component title) {
        return new PackLocationInfo(id, title, PackSource.FEATURE, Optional.of(KnownPack.vanilla(id)));
    }
 
    @VisibleForTesting
    public static VanillaPackResources createVanillaPackSource() {
        return new VanillaPackResourcesBuilder()
            .setMetadata(BUILT_IN_METADATA)
            .exposeNamespace("minecraft")
            .applyDevelopmentConfig()
            .pushJarResources()
            .build(VANILLA_PACK_INFO);
    }
 
    @Override
    protected Component getPackTitle(String id) {
        return Component.literal(id);
    }
 
    @Override
    protected @Nullable Pack createVanillaPack(PackResources resources) {
        return Pack.readMetaAndCreate(VANILLA_PACK_INFO, fixedResources(resources), PackType.SERVER_DATA, VANILLA_SELECTION_CONFIG);
    }
 
    @Override
    protected @Nullable Pack createBuiltinPack(String id, Pack.ResourcesSupplier resources, Component name) {
        return Pack.readMetaAndCreate(createBuiltInPackLocation(id, name), resources, PackType.SERVER_DATA, FEATURE_SELECTION_CONFIG);
    }
 
    public static PackRepository createPackRepository(Path datapackDir, DirectoryValidator validator) {
        return new PackRepository(new ServerPacksSource(validator), new FolderRepositorySource(datapackDir, PackType.SERVER_DATA, PackSource.WORLD, validator));
    }
 
    public static PackRepository createVanillaTrustedRepository() {
        return new PackRepository(new ServerPacksSource(new DirectoryValidator(path -> true)));
    }
 
    public static PackRepository createPackRepository(LevelStorageSource.LevelStorageAccess levelSourceAccess) {
        return createPackRepository(levelSourceAccess.getLevelPath(LevelResource.DATAPACK_DIR), levelSourceAccess.parent().getWorldDirValidator());
    }
}

引用的其他类