Skip to content

Commit

Permalink
Load repositories on Forge
Browse files Browse the repository at this point in the history
Signed-off-by: TheSilkMiner <thesilkminer@outlook.com>
  • Loading branch information
TheSilkMiner committed May 18, 2022
1 parent 1799777 commit a7228df
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@

import com.blamejared.contenttweaker.core.ContentTweakerCore;
import com.blamejared.contenttweaker.core.api.ContentTweakerConstants;
import com.blamejared.contenttweaker.forge.resource.ForgeResourceManager;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;

@Mod(ContentTweakerConstants.MOD_ID)
public final class ContentTweaker {

public ContentTweaker() {
ContentTweakerCore.core().initialize();
ForgeResourceManager.init(FMLJavaModLoadingContext.get().getModEventBus());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.blamejared.contenttweaker.forge.resource;

import com.blamejared.contenttweaker.core.resource.RuntimeRepositorySource;
import com.blamejared.contenttweaker.core.resource.UserRepositorySource;
import net.minecraft.server.packs.PackType;
import net.minecraft.server.packs.repository.RepositorySource;
import net.minecraftforge.event.AddPackFindersEvent;
import net.minecraftforge.eventbus.api.EventPriority;
import net.minecraftforge.eventbus.api.IEventBus;

import java.util.function.Function;

public final class ForgeResourceManager {
private ForgeResourceManager() {}

public static void init(final IEventBus modBus) {
modBus.addListener(EventPriority.HIGH, false, AddPackFindersEvent.class, ForgeResourceManager::injectRuntime);
modBus.addListener(EventPriority.LOW, false, AddPackFindersEvent.class, ForgeResourceManager::injectUser);
}

private static void injectRuntime(final AddPackFindersEvent event) {
injectSource(event, RuntimeRepositorySource::of);
}

private static void injectUser(final AddPackFindersEvent event) {
injectSource(event, UserRepositorySource::of);
}

private static void injectSource(final AddPackFindersEvent event, final Function<PackType, ? extends RepositorySource> constructor) {
event.addRepositorySource(constructor.apply(event.getPackType()));
}
}

0 comments on commit a7228df

Please sign in to comment.