fix(mainhttp): do not use Event for internal events (fixes owo-lib)
All checks were successful
ci/woodpecker/push/docs Pipeline was successful
ci/woodpecker/push/jfmod Pipeline was successful

This commit is contained in:
Johannes Frohnmeyer 2024-09-20 12:44:36 +02:00
parent 60d91a7b2a
commit 766d1896ab
Signed by: Johannes
GPG Key ID: E76429612C2929F4
3 changed files with 4 additions and 7 deletions

View File

@ -4,7 +4,7 @@ import io.gitlab.jfronny.libjf.mainhttp.impl.MainHttp;
public interface ServerState { public interface ServerState {
static void onActivate(Runnable listener) { static void onActivate(Runnable listener) {
MainHttp.ON_ACTIVATE.register(listener); MainHttp.ON_ACTIVATE.add(listener);
} }
static boolean isActive() { static boolean isActive() {

View File

@ -2,18 +2,15 @@ package io.gitlab.jfronny.libjf.mainhttp.impl;
import io.gitlab.jfronny.libjf.mainhttp.api.v0.MainHttpHandler; import io.gitlab.jfronny.libjf.mainhttp.api.v0.MainHttpHandler;
import io.gitlab.jfronny.libjf.mainhttp.impl.util.ClaimPool; import io.gitlab.jfronny.libjf.mainhttp.impl.util.ClaimPool;
import net.fabricmc.fabric.api.event.Event;
import net.fabricmc.fabric.api.event.EventFactory;
import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.FabricLoader;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.List; import java.util.List;
public class MainHttp { public class MainHttp {
public static final Event<Runnable> ON_ACTIVATE = EventFactory.createArrayBacked(Runnable.class, listeners -> () -> { public static final List<Runnable> ON_ACTIVATE = new ArrayList<>();
for (Runnable listener : listeners) listener.run();
});
public static final ClaimPool<Integer> GAME_PORT = new ClaimPool<>(); public static final ClaimPool<Integer> GAME_PORT = new ClaimPool<>();
public static final String MOD_ID = "libjf-mainhttp"; public static final String MOD_ID = "libjf-mainhttp";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);

View File

@ -21,7 +21,7 @@ public class ServerNetworkIoMixin {
@Inject(method = "bind(Ljava/net/InetAddress;I)V", at = @At("HEAD")) @Inject(method = "bind(Ljava/net/InetAddress;I)V", at = @At("HEAD"))
void onBind(InetAddress address, int port, CallbackInfo ci) { void onBind(InetAddress address, int port, CallbackInfo ci) {
libjf$portClaim.add(MainHttp.GAME_PORT.claim(port)); libjf$portClaim.add(MainHttp.GAME_PORT.claim(port));
MainHttp.ON_ACTIVATE.invoker().run(); for (Runnable runnable : MainHttp.ON_ACTIVATE) runnable.run();
} }
@Inject(method = "stop()V", at = @At("HEAD")) @Inject(method = "stop()V", at = @At("HEAD"))