RoughlyEnoughItemsCore.java 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package me.shedaniel.rei;
  2. import me.shedaniel.rei.listeners.ClientTick;
  3. import me.shedaniel.rei.listeners.IListener;
  4. import net.fabricmc.api.ClientModInitializer;
  5. import net.fabricmc.api.ModInitializer;
  6. import net.fabricmc.fabric.events.client.ClientTickEvent;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. import java.util.stream.Collectors;
  10. public class RoughlyEnoughItemsCore implements ClientModInitializer {
  11. private static List<IListener> listeners = new ArrayList<>();
  12. @Override
  13. public void onInitializeClient() {
  14. registerFabricEvents();
  15. registerREIListeners();
  16. }
  17. private void registerREIListeners() {
  18. }
  19. private IListener registerListener(IListener listener) {
  20. listeners.add(listener);
  21. return listener;
  22. }
  23. public static <T> List<T> getListeners(Class<T> listenerClass) {
  24. return listeners.stream().filter(listener -> {
  25. return listenerClass.isAssignableFrom(listener.getClass());
  26. }).map(listener -> {
  27. return listenerClass.cast(listener);
  28. }).collect(Collectors.toList());
  29. }
  30. private void registerFabricEvents() {
  31. ClientTickEvent.CLIENT.register(minecraftClient -> {
  32. getListeners(ClientTick.class).forEach(clientTick -> clientTick.onTick(minecraftClient));
  33. });
  34. }
  35. }