Skip to content

Commit

Permalink
ProfileEditor: don't store unaltered profiles
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Jan 1, 2022
1 parent 454478d commit 846a789
Showing 1 changed file with 9 additions and 7 deletions.
Expand Up @@ -26,18 +26,18 @@ public ProfileEditor() {

public void setPlayerName(Player player, String name) {
NetworkInterceptHelper.enable();
PlayerProfile profile = getFakeProfile(player);
PlayerProfile profile = getFakeProfile(player, true);
profile.setName(name);
updatePlayer(player, false);
}

public String getPlayerName(Player player) {
return getFakeProfile(player).getName();
return getFakeProfile(player, false).getName();
}

public void setPlayerSkin(Player player, String name) {
NetworkInterceptHelper.enable();
PlayerProfile profile = getFakeProfile(player);
PlayerProfile profile = getFakeProfile(player, true);
PlayerProfile skinProfile = NMSHandler.getInstance().fillPlayerProfile(new PlayerProfile(name, null));
if (skinProfile.getTexture() != null) {
profile.setTexture(skinProfile.getTexture());
Expand Down Expand Up @@ -83,28 +83,30 @@ public void setPlayerSkin(Player player, String name) {

public void setPlayerSkinBlob(Player player, String blob) {
NetworkInterceptHelper.enable();
PlayerProfile profile = getFakeProfile(player);
PlayerProfile profile = getFakeProfile(player, true);
String[] split = blob.split(";");
profile.setTexture(split[0]);
profile.setTextureSignature(split.length > 1 ? split[1] : null);
updatePlayer(player, true);
}

public String getPlayerSkinBlob(Player player) {
PlayerProfile prof = getFakeProfile(player);
PlayerProfile prof = getFakeProfile(player, false);
return prof.getTexture() + ";" + prof.getTextureSignature();
}

protected abstract void updatePlayer(Player player, boolean isSkinChanging);

private PlayerProfile getFakeProfile(Player player) {
private PlayerProfile getFakeProfile(Player player, boolean createCache) {
UUID uuid = player.getUniqueId();
if (fakeProfiles.containsKey(uuid)) {
return fakeProfiles.get(uuid);
}
else {
PlayerProfile fakeProfile = NMSHandler.getInstance().getPlayerProfile(player);
fakeProfiles.put(uuid, fakeProfile);
if (createCache) {
fakeProfiles.put(uuid, fakeProfile);
}
return fakeProfile;
}
}
Expand Down

0 comments on commit 846a789

Please sign in to comment.