40 lines
1.6 KiB
Java
40 lines
1.6 KiB
Java
package io.gitlab.jfronny.resclone.mixin;
|
|
|
|
import io.gitlab.jfronny.resclone.Resclone;
|
|
import io.gitlab.jfronny.resclone.RescloneResourcePack;
|
|
import io.gitlab.jfronny.resclone.data.PackMetaLoaded;
|
|
import net.minecraft.resource.*;
|
|
import net.minecraft.text.Text;
|
|
import org.spongepowered.asm.mixin.Final;
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
import org.spongepowered.asm.mixin.Shadow;
|
|
import org.spongepowered.asm.mixin.injection.At;
|
|
import org.spongepowered.asm.mixin.injection.Inject;
|
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
|
|
|
import java.util.function.Consumer;
|
|
|
|
@Mixin(FileResourcePackProvider.class)
|
|
public class FileResourcePackProviderMixin {
|
|
@Shadow @Final private ResourcePackSource source;
|
|
@Shadow @Final private ResourceType type;
|
|
|
|
@Inject(at = @At("TAIL"), method = "register(Ljava/util/function/Consumer;)V")
|
|
public void registerExtra(Consumer<ResourcePackProfile> consumer, CallbackInfo info) {
|
|
for (PackMetaLoaded meta : Resclone.DOWNLOADED_PACKS) {
|
|
ResourcePackProfile resourcePackProfile = ResourcePackProfile.create(
|
|
"resclone/" + meta.name(),
|
|
Text.literal(meta.name()),
|
|
meta.forceEnable(),
|
|
name -> new RescloneResourcePack(meta.zipPath().toFile(), meta.name()),
|
|
type,
|
|
ResourcePackProfile.InsertionPosition.TOP,
|
|
source
|
|
);
|
|
if (resourcePackProfile != null) {
|
|
consumer.accept(resourcePackProfile);
|
|
}
|
|
}
|
|
}
|
|
}
|