mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-17 17:34:39 +01:00
Implement viewing character details in character showcase
This commit is contained in:
@@ -21,7 +21,6 @@ import emu.grasscutter.game.inventory.Inventory;
|
||||
import emu.grasscutter.game.mail.Mail;
|
||||
import emu.grasscutter.game.props.ActionReason;
|
||||
import emu.grasscutter.game.props.PlayerProperty;
|
||||
import emu.grasscutter.game.shop.ShopInfo;
|
||||
import emu.grasscutter.game.shop.ShopLimit;
|
||||
import emu.grasscutter.game.world.Scene;
|
||||
import emu.grasscutter.game.world.World;
|
||||
@@ -34,6 +33,7 @@ import emu.grasscutter.net.proto.OnlinePlayerInfoOuterClass.OnlinePlayerInfo;
|
||||
import emu.grasscutter.net.proto.PlayerApplyEnterMpResultNotifyOuterClass;
|
||||
import emu.grasscutter.net.proto.PlayerLocationInfoOuterClass.PlayerLocationInfo;
|
||||
import emu.grasscutter.net.proto.PlayerWorldLocationInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.ShowAvatarInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.ProfilePictureOuterClass.ProfilePicture;
|
||||
import emu.grasscutter.net.proto.SocialDetailOuterClass.SocialDetail;
|
||||
import emu.grasscutter.net.proto.SocialShowAvatarInfoOuterClass;
|
||||
@@ -898,6 +898,35 @@ public class Player {
|
||||
.setFinishAchievementNum(0);
|
||||
return social;
|
||||
}
|
||||
|
||||
public List<ShowAvatarInfoOuterClass.ShowAvatarInfo> getShowAvatarInfoList() {
|
||||
List<ShowAvatarInfoOuterClass.ShowAvatarInfo> showAvatarInfoList = new ArrayList<>();
|
||||
|
||||
Player player;
|
||||
boolean shouldRecalc;
|
||||
if (this.isOnline()) {
|
||||
player = this;
|
||||
shouldRecalc = false;
|
||||
} else {
|
||||
player = DatabaseHelper.getPlayerById(id);
|
||||
player.getAvatars().loadFromDatabase();
|
||||
player.getInventory().loadFromDatabase();
|
||||
shouldRecalc = true;
|
||||
}
|
||||
|
||||
List<Integer> showAvatarList = player.getShowAvatarList();
|
||||
AvatarStorage avatars = player.getAvatars();
|
||||
if (showAvatarList != null) {
|
||||
for (int avatarId : showAvatarList) {
|
||||
Avatar avatar = avatars.getAvatarById(avatarId);
|
||||
if (shouldRecalc) {
|
||||
avatar.recalcStats();
|
||||
}
|
||||
showAvatarInfoList.add(avatar.toShowAvatarInfoProto());
|
||||
}
|
||||
}
|
||||
return showAvatarInfoList;
|
||||
}
|
||||
|
||||
public PlayerWorldLocationInfoOuterClass.PlayerWorldLocationInfo getWorldPlayerLocationInfo() {
|
||||
return PlayerWorldLocationInfoOuterClass.PlayerWorldLocationInfo.newBuilder()
|
||||
|
||||
Reference in New Issue
Block a user