|
@@ -20,38 +20,40 @@
|
|
|
package me.shedaniel.architectury.registry.forge;
|
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
+import me.shedaniel.architectury.forge.ArchitecturyForge;
|
|
|
import net.minecraft.client.Minecraft;
|
|
|
import net.minecraft.server.packs.PackType;
|
|
|
import net.minecraft.server.packs.resources.PreparableReloadListener;
|
|
|
import net.minecraft.server.packs.resources.ReloadableResourceManager;
|
|
|
import net.minecraftforge.api.distmarker.Dist;
|
|
|
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
|
-import net.minecraftforge.common.MinecraftForge;
|
|
|
import net.minecraftforge.event.AddReloadListenerEvent;
|
|
|
+import net.minecraftforge.eventbus.api.SubscribeEvent;
|
|
|
+import net.minecraftforge.fml.common.Mod;
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
+@Mod.EventBusSubscriber(modid = ArchitecturyForge.MOD_ID)
|
|
|
public class ReloadListenersImpl {
|
|
|
private static List<PreparableReloadListener> serverDataReloadListeners = Lists.newArrayList();
|
|
|
|
|
|
- static {
|
|
|
- MinecraftForge.EVENT_BUS.<AddReloadListenerEvent>addListener(event -> {
|
|
|
- for (PreparableReloadListener listener : serverDataReloadListeners) {
|
|
|
- event.addListener(listener);
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
-
|
|
|
public static void registerReloadListener(PackType type, PreparableReloadListener listener) {
|
|
|
if (type == PackType.SERVER_DATA) {
|
|
|
serverDataReloadListeners.add(listener);
|
|
|
} else if (type == PackType.CLIENT_RESOURCES) {
|
|
|
- reloadClientReloadListener(listener);
|
|
|
+ registerClientReloadListener(listener);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@OnlyIn(Dist.CLIENT)
|
|
|
- private static void reloadClientReloadListener(PreparableReloadListener listener) {
|
|
|
+ private static void registerClientReloadListener(PreparableReloadListener listener) {
|
|
|
((ReloadableResourceManager) Minecraft.getInstance().getResourceManager()).registerReloadListener(listener);
|
|
|
}
|
|
|
+
|
|
|
+ @SubscribeEvent
|
|
|
+ public static void addReloadListeners(AddReloadListenerEvent event) {
|
|
|
+ for (PreparableReloadListener listener : serverDataReloadListeners) {
|
|
|
+ event.addListener(listener);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|