mirror of
https://github.com/architectury/architectury-api.git
synced 2026-04-02 21:47:40 -05:00
Command registry events and ReloadListenerRegistry
This commit is contained in:
@@ -17,16 +17,14 @@
|
||||
package me.shedaniel.architectury.event.forge;
|
||||
|
||||
import me.shedaniel.architectury.event.EventFactory;
|
||||
import me.shedaniel.architectury.event.events.GuiEvent;
|
||||
import me.shedaniel.architectury.event.events.LifecycleEvent;
|
||||
import me.shedaniel.architectury.event.events.TickEvent;
|
||||
import me.shedaniel.architectury.event.events.TooltipEvent;
|
||||
import me.shedaniel.architectury.event.events.*;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.world.server.ServerWorld;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.client.event.RenderGameOverlayEvent;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.RegisterCommandsEvent;
|
||||
import net.minecraftforge.event.TickEvent.ClientTickEvent;
|
||||
import net.minecraftforge.event.TickEvent.Phase;
|
||||
import net.minecraftforge.event.TickEvent.ServerTickEvent;
|
||||
@@ -115,6 +113,11 @@ public class EventFactoryImpl implements EventFactory.Impl {
|
||||
public static void event(FMLServerStoppedEvent event) {
|
||||
LifecycleEvent.SERVER_STOPPED.invoker().stateChanged(event.getServer());
|
||||
}
|
||||
|
||||
@SubscribeEvent
|
||||
public static void event(RegisterCommandsEvent event) {
|
||||
CommandRegistrationEvent.EVENT.invoker().register(event.getDispatcher());
|
||||
}
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.DEDICATED_SERVER)
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
package me.shedaniel.architectury.registry.forge;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import me.shedaniel.architectury.registry.ReloadListenerRegistry;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.IFutureReloadListener;
|
||||
import net.minecraft.resources.IReloadableResourceManager;
|
||||
import net.minecraft.resources.ResourcePackType;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.event.AddReloadListenerEvent;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class ReloadListenerRegistryImpl implements ReloadListenerRegistry.Impl {
|
||||
private List<IFutureReloadListener> serverDataReloadListeners = Lists.newArrayList();
|
||||
|
||||
public ReloadListenerRegistryImpl() {
|
||||
MinecraftForge.EVENT_BUS.<AddReloadListenerEvent>addListener(event -> {
|
||||
for (IFutureReloadListener listener : serverDataReloadListeners) {
|
||||
event.addListener(listener);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerReloadListener(ResourcePackType type, IFutureReloadListener listener) {
|
||||
if (type == ResourcePackType.SERVER_DATA) {
|
||||
serverDataReloadListeners.add(listener);
|
||||
} else if (type == ResourcePackType.CLIENT_RESOURCES) {
|
||||
reloadClientReloadListener(listener);
|
||||
}
|
||||
}
|
||||
|
||||
@OnlyIn(Dist.CLIENT)
|
||||
private void reloadClientReloadListener(IFutureReloadListener listener) {
|
||||
((IReloadableResourceManager) Minecraft.getInstance().getResourceManager()).registerReloadListener(listener);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user