]> git.lizzy.rs Git - BoundingBoxOutlineReloaded.git/blob - src/main/java/com/irtimaled/bbor/mixin/resource/MixinResourcePackManager.java
Get 1.17.1 building
[BoundingBoxOutlineReloaded.git] / src / main / java / com / irtimaled / bbor / mixin / resource / MixinResourcePackManager.java
1 package com.irtimaled.bbor.mixin.resource;
2
3 import com.google.common.collect.ImmutableMap;
4 import net.minecraft.resource.*;
5 import org.spongepowered.asm.mixin.Final;
6 import org.spongepowered.asm.mixin.Mixin;
7 import org.spongepowered.asm.mixin.Shadow;
8 import org.spongepowered.asm.mixin.injection.At;
9 import org.spongepowered.asm.mixin.injection.Inject;
10 import org.spongepowered.asm.mixin.injection.Redirect;
11 import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12
13 import java.util.Map;
14
15 @Mixin(ResourcePackManager.class)
16 public class MixinResourcePackManager {
17     private static final String BBOR = "bbor";
18     @Shadow
19     @Final
20     private ResourcePackProfile.Factory profileFactory;
21     private ResourcePackProfile resourcePackProfile;
22
23     @Inject(method = "<init>(Lnet/minecraft/resource/ResourcePackProfile$Factory;[Lnet/minecraft/resource/ResourcePackProvider;)V",
24             at = @At("RETURN"))
25     private void afterConstructor(CallbackInfo ci) {
26         resourcePackProfile = ResourcePackProfile.of(BBOR,
27                 true,
28                 () -> new DefaultResourcePack(VanillaDataPackProvider.DEFAULT_PACK_METADATA, BBOR),
29                 this.profileFactory,
30                 ResourcePackProfile.InsertionPosition.BOTTOM,
31                 ResourcePackSource.PACK_SOURCE_BUILTIN);
32     }
33
34     @Redirect(method = "providePackProfiles", at = @At(value = "INVOKE", target = "Lcom/google/common/collect/ImmutableMap;copyOf(Ljava/util/Map;)Lcom/google/common/collect/ImmutableMap;"))
35     private ImmutableMap<String, ResourcePackProfile> beforeReturn(Map<String, ResourcePackProfile> map) {
36         map.put(BBOR, resourcePackProfile);
37         return ImmutableMap.copyOf(map);
38     }
39 }