goauth

Fabric plugin for enhanced whitelists
git clone git://git.bain.cz/goauth.git
Log | Files | Refs | README | LICENSE

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 }