OnPlayerConnectMixin.java (1369B)
1 package cz.bain.plugins.goauth.mixin; 2 3 import cz.bain.plugins.goauth.events.callbacks.OnPlayerConnectCallback; 4 import net.minecraft.network.ClientConnection; 5 import net.minecraft.server.PlayerManager; 6 import net.minecraft.server.network.ServerPlayerEntity; 7 import net.minecraft.util.ActionResult; 8 import org.spongepowered.asm.mixin.Mixin; 9 import org.spongepowered.asm.mixin.injection.At; 10 import org.spongepowered.asm.mixin.injection.Inject; 11 import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; 12 13 @Mixin(PlayerManager.class) 14 public class OnPlayerConnectMixin { 15 @Inject(at = @At(value = "HEAD"), method = "onPlayerConnect", cancellable = true) 16 private void onPlayerConnectInjectionHEAD(ClientConnection connection, ServerPlayerEntity player, CallbackInfo info) { 17 ActionResult result = OnPlayerConnectCallback.EVENT.invoker().interact(player, connection); 18 19 if (result == ActionResult.FAIL) { 20 info.cancel(); 21 } 22 } 23 24 @Inject(at = @At(value = "TAIL"), method = "onPlayerConnect", cancellable = true) 25 private void onPlayerConnectInjectionTAIL(ClientConnection connection, ServerPlayerEntity player, CallbackInfo info) { 26 ActionResult result = OnPlayerConnectCallback.EVENT.invoker().interact(player, connection); 27 28 if (result == ActionResult.FAIL) { 29 info.cancel(); 30 } 31 } 32 }