diff --git a/common/src/main/java/dev/erdragh/astralbot/mixins/DedicatedPlayerListMixin.java b/common/src/main/java/dev/erdragh/astralbot/mixins/DedicatedPlayerListMixin.java new file mode 100644 index 0000000..6f1fe21 --- /dev/null +++ b/common/src/main/java/dev/erdragh/astralbot/mixins/DedicatedPlayerListMixin.java @@ -0,0 +1,16 @@ +package dev.erdragh.astralbot.mixins; + +import com.mojang.authlib.GameProfile; +import dev.erdragh.astralbot.handlers.WhitelistHandler; +import net.minecraft.server.dedicated.DedicatedPlayerList; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(DedicatedPlayerList.class) +public class DedicatedPlayerListMixin { @Inject(method = "isWhiteListed", at = @At("RETURN"), cancellable = true) + void astralbot$isWhiteListed(GameProfile profile, CallbackInfoReturnable cir) { + cir.setReturnValue(Boolean.TRUE.equals(cir.getReturnValue()) || WhitelistHandler.INSTANCE.checkWhitelist(profile.getId()) != null); + } +} diff --git a/common/src/main/resources/astralbot-common.mixins.json b/common/src/main/resources/astralbot-common.mixins.json index 9db1c1d..215a460 100644 --- a/common/src/main/resources/astralbot-common.mixins.json +++ b/common/src/main/resources/astralbot-common.mixins.json @@ -4,7 +4,8 @@ "package": "dev.erdragh.astralbot.mixins", "compatibilityLevel": "JAVA_17", "server": [ - "PlayerListMixin" + "PlayerListMixin", + "DedicatedPlayerListMixin" ], "injectors": { "defaultRequire": 1