package dev.hawk22e.core.client.mixin;

import dev.virel.obf.I1IlI;
import dev.virel.obf.IIIl;
import dev.virel.obf.IilI1;
import dev.virel.obf.Ill1;
import dev.virel.obf.llil;
import java.util.HashMap;
import java.util.Map;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.class_2561;
import net.minecraft.class_327;
import net.minecraft.class_332;
import net.minecraft.class_355;
import net.minecraft.class_640;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.Unique;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;

@Environment(EnvType.CLIENT)
@Mixin({class_355.class})
public abstract class aaaaaee {
   @Unique
   private final Map<String, class_640> ilovcats$playerEntriesByRenderedText = new HashMap();

   @Shadow
   public abstract class_2561 method_1918(class_640 var1);

   @Inject(
      method = {"method_1919"},
      at = {@At("HEAD")}
   )
   private void ilovcats$clearFakeClientTabEntries(CallbackInfo var1) {
      this.ilovcats$playerEntriesByRenderedText.clear();
      IilI1.class 111l();
   }

   @Inject(
      method = {"method_1919"},
      at = {@At("RETURN")}
   )
   private void ilovcats$finishTabBounds(CallbackInfo var1) {
      IilI1.enum 1111();
   }

   @Inject(
      method = {"method_1918"},
      at = {@At("RETURN")},
      cancellable = true
   )
   private void ilovcats$decorateFakeClientTabName(class_640 var1, CallbackInfoReturnable<class_2561> var2) {
      class_2561 var3 = I1IlI.break iI(var1, (class_2561)var2.getReturnValue());
      var3 = Ill1.while IIiI(var1, var3);
      class_2561 var4 = llil.interface I1(var1, var3);
      if (var4 != null) {
         this.ilovcats$playerEntriesByRenderedText.put(var4.getString(), var1);
      }

      var2.setReturnValue(var4);
   }

   @Redirect(
      method = {"method_1919"},
      at = @At(
   value = "INVOKE",
   target = "Lnet/minecraft/class_332;drawTextWithShadow(Lnet/minecraft/class_327;Lnet/minecraft/class_2561;III)I"
)
   )
   private int ilovcats$renderFakeClientBadge(class_332 var1, class_327 var2, class_2561 var3, int var4, int var5, int var6) {
      class_640 var7 = (class_640)this.ilovcats$playerEntriesByRenderedText.remove(var3.getString());
      int var8 = IIIl.final IIiI(var1, var7, var2, var4, var5);
      IilI1.abstract IIiI(var4 - 10, var5 - 1, var4 + var8 + var2.method_27525(var3) + 110, var5 + 8);
      var1.method_27535(var2, var3, var4 + var8, var5, var6);
      return 0;
   }
}
