Unverified Commit a4f10208 authored by hamusuke's avatar hamusuke Committed by GitHub
Browse files

feat: set namecards in profile editing. (#1843)

* add: can set name cards in profile editing.

* some changes

* Update src/main/java/emu/grasscutter/game/player/Player.java

* Update src/main/java/emu/grasscutter/server/packet/recv/HandlerGetFriendShowNameCardInfoReq.java

* Update src/main/java/emu/grasscutter/server/packet/recv/HandlerUpdatePlayerShowNameCardListReq.java

* Update src/main/java/emu/grasscutter/server/packet/send/PacketGetFriendShowNameCardInfoRsp.java

* Update src/main/java/emu/grasscutter/server/packet/send/PacketUpdatePlayerShowNameCardListRsp.java

* Update src/main/java/emu/grasscutter/game/player/Player.java
parent e23536e7
...@@ -100,6 +100,7 @@ public class Player { ...@@ -100,6 +100,7 @@ public class Player {
@Getter private PlayerCodex codex; @Getter private PlayerCodex codex;
@Getter @Setter private boolean showAvatars; @Getter @Setter private boolean showAvatars;
@Getter @Setter private List<Integer> showAvatarList; @Getter @Setter private List<Integer> showAvatarList;
@Getter @Setter private List<Integer> showNameCardList;
@Getter private Map<Integer, Integer> properties; @Getter private Map<Integer, Integer> properties;
@Getter @Setter private int currentRealmId; @Getter @Setter private int currentRealmId;
@Getter @Setter private int widgetId; @Getter @Setter private int widgetId;
...@@ -935,6 +936,7 @@ public class Player { ...@@ -935,6 +936,7 @@ public class Player {
.setNameCardId(this.getNameCardId()) .setNameCardId(this.getNameCardId())
.setIsShowAvatar(this.isShowAvatars()) .setIsShowAvatar(this.isShowAvatars())
.addAllShowAvatarInfoList(socialShowAvatarInfoList) .addAllShowAvatarInfoList(socialShowAvatarInfoList)
.addAllShowNameCardIdList(this.getShowNameCardInfoList())
.setFinishAchievementNum(0); .setFinishAchievementNum(0);
return social; return social;
} }
...@@ -968,6 +970,11 @@ public class Player { ...@@ -968,6 +970,11 @@ public class Player {
return showAvatarInfoList; return showAvatarInfoList;
} }
public List<Integer> getShowNameCardInfoList() {
List<Integer> info = this.getShowNameCardList();
return info == null ? new ArrayList<>() : info;
}
public PlayerWorldLocationInfoOuterClass.PlayerWorldLocationInfo getWorldPlayerLocationInfo() { public PlayerWorldLocationInfoOuterClass.PlayerWorldLocationInfo getWorldPlayerLocationInfo() {
return PlayerWorldLocationInfoOuterClass.PlayerWorldLocationInfo.newBuilder() return PlayerWorldLocationInfoOuterClass.PlayerWorldLocationInfo.newBuilder()
.setSceneId(this.getSceneId()) .setSceneId(this.getSceneId())
......
package emu.grasscutter.server.packet.recv;
import emu.grasscutter.game.player.Player;
import emu.grasscutter.net.packet.Opcodes;
import emu.grasscutter.net.packet.PacketHandler;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.GetFriendShowNameCardInfoReqOuterClass;
import emu.grasscutter.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketGetFriendShowNameCardInfoRsp;
@Opcodes(PacketOpcodes.GetFriendShowNameCardInfoReq)
public class HandlerGetFriendShowNameCardInfoReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
var req = GetFriendShowNameCardInfoReqOuterClass.GetFriendShowNameCardInfoReq.parseFrom(payload);
int targetUid = req.getUid();
Player target = session.getServer().getPlayerByUid(targetUid, true);
session.send(new PacketGetFriendShowNameCardInfoRsp(targetUid, target.getShowNameCardInfoList()));
}
}
package emu.grasscutter.server.packet.recv;
import emu.grasscutter.net.packet.Opcodes;
import emu.grasscutter.net.packet.PacketHandler;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.UpdatePlayerShowNameCardListReqOuterClass;
import emu.grasscutter.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketUpdatePlayerShowNameCardListRsp;
@Opcodes(PacketOpcodes.UpdatePlayerShowNameCardListReq)
public class HandlerUpdatePlayerShowNameCardListReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
var req = UpdatePlayerShowNameCardListReqOuterClass.UpdatePlayerShowNameCardListReq.parseFrom(payload);
session.getPlayer().setShowNameCardList(req.getShowNameCardIdListList());
session.send(new PacketUpdatePlayerShowNameCardListRsp(req.getShowNameCardIdListList()));
}
}
package emu.grasscutter.server.packet.send;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.GetFriendShowNameCardInfoRspOuterClass;
import java.util.List;
public class PacketGetFriendShowNameCardInfoRsp extends BasePacket {
public PacketGetFriendShowNameCardInfoRsp(int uid, List<Integer> cardIds) {
super(PacketOpcodes.GetFriendShowNameCardInfoRsp);
var rsp = GetFriendShowNameCardInfoRspOuterClass.GetFriendShowNameCardInfoRsp.newBuilder()
.setUid(uid)
.addAllShowNameCardIdList(cardIds)
.setRetcode(0)
.build();
this.setData(rsp);
}
}
package emu.grasscutter.server.packet.send;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.UpdatePlayerShowNameCardListRspOuterClass;
import java.util.List;
public class PacketUpdatePlayerShowNameCardListRsp extends BasePacket {
public PacketUpdatePlayerShowNameCardListRsp(List<Integer> cardIds) {
super(PacketOpcodes.UpdatePlayerShowNameCardListRsp);
var rsp = UpdatePlayerShowNameCardListRspOuterClass.UpdatePlayerShowNameCardListRsp.newBuilder()
.addAllShowNameCardIdList(cardIds)
.setRetcode(0)
.build();
this.setData(rsp);
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment