mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-17 17:34:39 +01:00
Merge remote-tracking branch 'origin/api' into api
This commit is contained in:
@@ -33,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;
|
||||
@@ -828,7 +829,7 @@ public class Player {
|
||||
.setProfilePicture(ProfilePicture.newBuilder().setAvatarId(this.getHeadImage()));
|
||||
|
||||
if (this.getWorld() != null) {
|
||||
onlineInfo.setCurPlayerNumInWorld(this.getWorld().getPlayers().indexOf(this) + 1);
|
||||
onlineInfo.setCurPlayerNumInWorld(getWorld().getPlayerCount());
|
||||
} else {
|
||||
onlineInfo.setCurPlayerNumInWorld(1);
|
||||
}
|
||||
@@ -904,6 +905,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