Migrate Forge ReloadListeners events to annotations

This commit is contained in:
Max
2021-03-18 15:43:48 +01:00
parent dd8c78c448
commit c8dd9061db

View File

@@ -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);
}
}
}