mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-02-01 15:42:56 +08:00
Optimize GetOnlinePlayerListRsp
This commit is contained in:
parent
d64c26d4f5
commit
bea9a76895
@ -822,7 +822,7 @@ public class Player {
|
|||||||
.setProfilePicture(ProfilePicture.newBuilder().setAvatarId(this.getHeadImage()));
|
.setProfilePicture(ProfilePicture.newBuilder().setAvatarId(this.getHeadImage()));
|
||||||
|
|
||||||
if (this.getWorld() != null) {
|
if (this.getWorld() != null) {
|
||||||
onlineInfo.setCurPlayerNumInWorld(this.getWorld().getPlayers().indexOf(this) + 1);
|
onlineInfo.setCurPlayerNumInWorld(getWorld().getPlayerCount());
|
||||||
} else {
|
} else {
|
||||||
onlineInfo.setCurPlayerNumInWorld(1);
|
onlineInfo.setCurPlayerNumInWorld(1);
|
||||||
}
|
}
|
||||||
|
@ -18,36 +18,19 @@ import java.util.Objects;
|
|||||||
public class PacketGetOnlinePlayerListRsp extends BasePacket {
|
public class PacketGetOnlinePlayerListRsp extends BasePacket {
|
||||||
public PacketGetOnlinePlayerListRsp(Player session){
|
public PacketGetOnlinePlayerListRsp(Player session){
|
||||||
super(PacketOpcodes.GetOnlinePlayerListRsp);
|
super(PacketOpcodes.GetOnlinePlayerListRsp);
|
||||||
Map<Integer, Player> playersMap = Grasscutter.getGameServer().getPlayers();
|
|
||||||
|
List<Player> players = Grasscutter.getGameServer().getPlayers().values().stream().limit(50).toList();
|
||||||
|
|
||||||
GetOnlinePlayerListRsp.Builder proto = GetOnlinePlayerListRsp.newBuilder();
|
GetOnlinePlayerListRsp.Builder proto = GetOnlinePlayerListRsp.newBuilder();
|
||||||
if(playersMap.size() != 0){
|
|
||||||
List<OnlinePlayerInfo> playerInfoList = new ArrayList<>();
|
|
||||||
|
|
||||||
for(Player player:playersMap.values()){
|
|
||||||
ProfilePicture.Builder picture = ProfilePicture.newBuilder();
|
|
||||||
OnlinePlayerInfo.Builder playerInfo = OnlinePlayerInfo.newBuilder();
|
|
||||||
|
|
||||||
|
if (players.size() != 0) {
|
||||||
|
for(Player player : players) {
|
||||||
if (player.getUid() == session.getUid()) continue;
|
if (player.getUid() == session.getUid()) continue;
|
||||||
picture.setAvatarId(player.getProfile().getAvatarId())
|
|
||||||
.build();
|
proto.addPlayerInfoList(player.getOnlinePlayerInfo());
|
||||||
System.out.println(player.getHeadImage());
|
|
||||||
playerInfo.setUid(player.getUid())
|
|
||||||
.setNickname(player.getNickname())
|
|
||||||
.setPlayerLevel(player.getLevel())
|
|
||||||
.setMpSettingType(MpSettingTypeOuterClass.MpSettingType.MP_SETTING_ENTER_AFTER_APPLY)
|
|
||||||
.setCurPlayerNumInWorld(player.getWorld().getPlayerCount())
|
|
||||||
.setWorldLevel(player.getWorldLevel())
|
|
||||||
.setNameCardId(player.getNameCardId())
|
|
||||||
.setProfilePicture(picture);
|
|
||||||
if(!Objects.equals(player.getSignature(), "")){
|
|
||||||
playerInfo.setSignature(player.getSignature());
|
|
||||||
}
|
|
||||||
playerInfoList.add(playerInfo.build());
|
|
||||||
}
|
|
||||||
for (OnlinePlayerInfo onlinePlayerInfo : playerInfoList) {
|
|
||||||
proto.addPlayerInfoList(onlinePlayerInfo).build();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.setData(proto);
|
this.setData(proto);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user