mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-11-23 00:12:29 +00:00
Player show avatar list
This commit is contained in:
parent
5b55df6993
commit
f16d33b413
@ -93,6 +93,9 @@ public class Player {
|
||||
private int moonCardDuration;
|
||||
private Set<Date> moonCardGetTimes;
|
||||
|
||||
private List<Integer> showAvatarList;
|
||||
private boolean showAvatars;
|
||||
|
||||
@Transient private boolean paused;
|
||||
@Transient private int enterSceneToken;
|
||||
@Transient private SceneLoadState sceneState;
|
||||
@ -513,6 +516,22 @@ public class Player {
|
||||
this.regionId = regionId;
|
||||
}
|
||||
|
||||
public void setShowAvatars(boolean showAvatars) {
|
||||
this.showAvatars = showAvatars;
|
||||
}
|
||||
|
||||
public boolean isShowAvatars() {
|
||||
return showAvatars;
|
||||
}
|
||||
|
||||
public void setShowAvatarList(List<Integer> showAvatarList) {
|
||||
this.showAvatarList = showAvatarList;
|
||||
}
|
||||
|
||||
public List<Integer> getShowAvatarList() {
|
||||
return showAvatarList;
|
||||
}
|
||||
|
||||
public boolean inMoonCard() {
|
||||
return moonCard;
|
||||
}
|
||||
@ -832,15 +851,29 @@ public class Player {
|
||||
}
|
||||
|
||||
public SocialDetail.Builder getSocialDetail() {
|
||||
List<SocialShowAvatarInfoOuterClass.SocialShowAvatarInfo> socialShowAvatarInfoList = new ArrayList<>();
|
||||
for (int avatarId : this.getShowAvatarList()) {
|
||||
socialShowAvatarInfoList.add(
|
||||
socialShowAvatarInfoList.size(),
|
||||
SocialShowAvatarInfoOuterClass.SocialShowAvatarInfo.newBuilder()
|
||||
.setAvatarId(avatarId)
|
||||
.setLevel(getAvatars().getAvatarById(avatarId).getLevel())
|
||||
.setCostumeId(getAvatars().getAvatarById(avatarId).getCostume())
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
SocialDetail.Builder social = SocialDetail.newBuilder()
|
||||
.setUid(this.getUid())
|
||||
.setProfilePicture(ProfilePicture.newBuilder().setAvatarId(this.getHeadImage()))
|
||||
.setAvatarId(HeadImage.newBuilder().setAvatarId(this.getHeadImage()).getAvatarId())
|
||||
.setNickname(this.getNickname())
|
||||
.setSignature(this.getSignature())
|
||||
.setLevel(this.getLevel())
|
||||
.setBirthday(this.getBirthday().getFilledProtoWhenNotEmpty())
|
||||
.setWorldLevel(this.getWorldLevel())
|
||||
.setNameCardId(this.getNameCardId())
|
||||
.setIsShowAvatar(this.isShowAvatars())
|
||||
.addAllShowAvatarInfoList(socialShowAvatarInfoList)
|
||||
.setFinishAchievementNum(0);
|
||||
return social;
|
||||
}
|
||||
|
@ -0,0 +1,22 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.UpdatePlayerShowAvatarListReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketUpdatePlayerShowAvatarListRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.UpdatePlayerShowAvatarListReq)
|
||||
public class HandlerUpdatePlayerShowAvatarListReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
UpdatePlayerShowAvatarListReqOuterClass.UpdatePlayerShowAvatarListReq req = UpdatePlayerShowAvatarListReqOuterClass.UpdatePlayerShowAvatarListReq.parseFrom(payload);
|
||||
|
||||
session.getPlayer().setShowAvatars(req.getIsShowAvatar());
|
||||
session.getPlayer().setShowAvatarList(req.getShowAvatarIdListList());
|
||||
|
||||
session.send(new PacketUpdatePlayerShowAvatarListRsp(req.getIsShowAvatar(), req.getShowAvatarIdListList()));
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.UpdatePlayerShowAvatarListReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketUpdatePlayerShowAvatarListRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.UpdatePlayerShowAvatarListReq)
|
||||
public class HandlerUpdatePlayerShowAvatarListReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
UpdatePlayerShowAvatarListReqOuterClass.UpdatePlayerShowAvatarListReq req = UpdatePlayerShowAvatarListReqOuterClass.UpdatePlayerShowAvatarListReq.parseFrom(payload);
|
||||
|
||||
session.getPlayer().setShowAvatars(req.getIsShowAvatar());
|
||||
session.getPlayer().setShowAvatarList(req.getShowAvatarIdListList());
|
||||
|
||||
session.send(new PacketUpdatePlayerShowAvatarListRsp(req.getIsShowAvatar(), req.getShowAvatarIdListList()));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user