1
0
mirror of https://github.com/Suiranoil/SkinRestorer.git synced 2026-01-16 04:42:12 +00:00

Merge branch '1.20.3-multiloader' into 1.20.2-multiloader

This commit is contained in:
2025-05-30 22:37:22 +03:00
4 changed files with 16 additions and 6 deletions

View File

@@ -16,6 +16,7 @@ import java.util.Collections;
@Mixin(PlayerList.class)
public abstract class PlayerListMixin {
@Inject(method = "remove", at = @At("TAIL"))
private void remove(ServerPlayer player, CallbackInfo ci) {
SkinRestorer.Events.onPlayerDisconnect(player);

View File

@@ -0,0 +1,13 @@
package net.lionarius.skinrestorer.mixin;
import com.mojang.authlib.GameProfile;
import net.minecraft.server.network.ServerLoginPacketListenerImpl;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(ServerLoginPacketListenerImpl.class)
public interface ServerLoginPacketListenerImplAccessorInvoker {
@Accessor
GameProfile getAuthenticatedProfile();
}

View File

@@ -7,9 +7,7 @@ import net.lionarius.skinrestorer.skin.provider.SkinProviderContext;
import net.lionarius.skinrestorer.util.PlayerUtils;
import net.lionarius.skinrestorer.util.Result;
import net.minecraft.server.network.ServerLoginPacketListenerImpl;
import org.jetbrains.annotations.Nullable;
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;
@@ -20,9 +18,6 @@ import java.util.concurrent.CompletableFuture;
@Mixin(ServerLoginPacketListenerImpl.class)
public abstract class ServerLoginPacketListenerImplMixin {
@Shadow @Nullable
private GameProfile authenticatedProfile;
@Unique
private CompletableFuture<Void> skinrestorer$pendingSkin;
@@ -32,7 +27,7 @@ public abstract class ServerLoginPacketListenerImplMixin {
public void waitForSkin(CallbackInfo ci) {
if (skinrestorer$pendingSkin == null) {
skinrestorer$pendingSkin = CompletableFuture.supplyAsync(() -> {
final var profile = authenticatedProfile;
final var profile = ((ServerLoginPacketListenerImplAccessorInvoker) this).getAuthenticatedProfile();
assert profile != null;
var originalSkin = PlayerUtils.getPlayerSkin(profile);

View File

@@ -8,6 +8,7 @@
"mixins": [
"ChunkMapAccessor",
"PlayerListMixin",
"ServerLoginPacketListenerImplAccessorInvoker",
"ServerLoginPacketListenerImplMixin",
"TrackedEntityAccessorInvoker"
],