diff --git a/src/main/java/net/silentclient/client/mixin/mixins/NetHandlerPlayClientMixin.java b/src/main/java/net/silentclient/client/mixin/mixins/NetHandlerPlayClientMixin.java index 528a329..844b870 100644 --- a/src/main/java/net/silentclient/client/mixin/mixins/NetHandlerPlayClientMixin.java +++ b/src/main/java/net/silentclient/client/mixin/mixins/NetHandlerPlayClientMixin.java @@ -4,6 +4,7 @@ import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.multiplayer.WorldClient; import net.minecraft.client.network.NetHandlerPlayClient; +import net.minecraft.network.play.server.S01PacketJoinGame; import net.minecraft.network.play.server.S19PacketEntityStatus; import net.minecraft.network.play.server.S48PacketResourcePackSend; import net.minecraft.util.IChatComponent; @@ -32,10 +33,14 @@ public class NetHandlerPlayClientMixin { at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Minecraft;displayGuiScreen(Lnet/minecraft/client/gui/GuiScreen;)V") ) private GuiScreen skipTerrainScreen(GuiScreen original) { - Players.reload(); return null; } + @Inject(method = "handleJoinGame", at = @At(value = "RETURN")) + public void resetPlayers(S01PacketJoinGame packetIn, CallbackInfo ci) { + Players.reload(); + } + //#if MC==10809 @Inject(method = "handleResourcePack", at = @At("HEAD"), cancellable = true) private void silent$resourceExploitFix(S48PacketResourcePackSend packetIn, CallbackInfo ci) { diff --git a/src/main/java/net/silentclient/client/utils/Players.java b/src/main/java/net/silentclient/client/utils/Players.java index 2dfb54e..36052d1 100644 --- a/src/main/java/net/silentclient/client/utils/Players.java +++ b/src/main/java/net/silentclient/client/utils/Players.java @@ -9,15 +9,16 @@ import net.silentclient.client.mixin.ducks.AbstractClientPlayerExt; import net.silentclient.client.utils.types.PlayerResponse; import org.json.JSONObject; +import java.util.HashMap; import java.util.Map; import java.util.UUID; -import java.util.WeakHashMap; public class Players { - public static final Map playersCache = new WeakHashMap<>(); + public static final Map playersCache = new HashMap<>(); public static boolean isLoading = false; public static void reload() { + Client.logger.info("Clearing players cache"); playersCache.clear(); } @@ -101,7 +102,7 @@ public class Players { public void run() { PlayerResponse response = getAccount(name.toLowerCase()); if(response != null && response.getAccount() != null) { - playersCache.put(response.getAccount().getUsername(), response.getAccount()); + playersCache.put(response.getAccount().getUsername().toLowerCase(), response.getAccount()); } try { Thread.sleep(1000);