Spaces:
Build error
Build error
File size: 4,368 Bytes
d46f4a3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 |
package net.minecraft.client.multiplayer;
import com.google.common.base.Suppliers;
import com.mojang.authlib.GameProfile;
import java.util.Optional;
import java.util.concurrent.CompletableFuture;
import java.util.function.Supplier;
import javax.annotation.Nullable;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.DefaultPlayerSkin;
import net.minecraft.client.resources.PlayerSkin;
import net.minecraft.client.resources.SkinManager;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.RemoteChatSession;
import net.minecraft.network.chat.SignedMessageValidator;
import net.minecraft.world.entity.player.ProfilePublicKey;
import net.minecraft.world.level.GameType;
import net.minecraft.world.scores.PlayerTeam;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
@OnlyIn(Dist.CLIENT)
public class PlayerInfo {
private final GameProfile profile;
private final Supplier<PlayerSkin> skinLookup;
private GameType gameMode = GameType.DEFAULT_MODE;
private int latency;
@Nullable
private Component tabListDisplayName;
private boolean showHat = true;
@Nullable
private RemoteChatSession chatSession;
private SignedMessageValidator messageValidator;
private int tabListOrder;
public PlayerInfo(GameProfile p_253609_, boolean p_254409_) {
this.profile = p_253609_;
this.messageValidator = fallbackMessageValidator(p_254409_);
Supplier<Supplier<PlayerSkin>> supplier = Suppliers.memoize(() -> createSkinLookup(p_253609_));
this.skinLookup = () -> supplier.get().get();
}
private static Supplier<PlayerSkin> createSkinLookup(GameProfile p_298306_) {
Minecraft minecraft = Minecraft.getInstance();
SkinManager skinmanager = minecraft.getSkinManager();
CompletableFuture<Optional<PlayerSkin>> completablefuture = skinmanager.getOrLoad(p_298306_);
boolean flag = !minecraft.isLocalPlayer(p_298306_.getId());
PlayerSkin playerskin = DefaultPlayerSkin.get(p_298306_);
return () -> {
PlayerSkin playerskin1 = completablefuture.getNow(Optional.empty()).orElse(playerskin);
return flag && !playerskin1.secure() ? playerskin : playerskin1;
};
}
public GameProfile getProfile() {
return this.profile;
}
@Nullable
public RemoteChatSession getChatSession() {
return this.chatSession;
}
public SignedMessageValidator getMessageValidator() {
return this.messageValidator;
}
public boolean hasVerifiableChat() {
return this.chatSession != null;
}
protected void setChatSession(RemoteChatSession p_249599_) {
this.chatSession = p_249599_;
this.messageValidator = p_249599_.createMessageValidator(ProfilePublicKey.EXPIRY_GRACE_PERIOD);
}
protected void clearChatSession(boolean p_254536_) {
this.chatSession = null;
this.messageValidator = fallbackMessageValidator(p_254536_);
}
private static SignedMessageValidator fallbackMessageValidator(boolean p_254311_) {
return p_254311_ ? SignedMessageValidator.REJECT_ALL : SignedMessageValidator.ACCEPT_UNSIGNED;
}
public GameType getGameMode() {
return this.gameMode;
}
protected void setGameMode(GameType p_105318_) {
this.gameMode = p_105318_;
}
public int getLatency() {
return this.latency;
}
protected void setLatency(int p_105314_) {
this.latency = p_105314_;
}
public PlayerSkin getSkin() {
return this.skinLookup.get();
}
@Nullable
public PlayerTeam getTeam() {
return Minecraft.getInstance().level.getScoreboard().getPlayersTeam(this.getProfile().getName());
}
public void setTabListDisplayName(@Nullable Component p_105324_) {
this.tabListDisplayName = p_105324_;
}
@Nullable
public Component getTabListDisplayName() {
return this.tabListDisplayName;
}
public void setShowHat(boolean p_376365_) {
this.showHat = p_376365_;
}
public boolean showHat() {
return this.showHat;
}
public void setTabListOrder(int p_364557_) {
this.tabListOrder = p_364557_;
}
public int getTabListOrder() {
return this.tabListOrder;
}
} |