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
This commit is contained in:
hamusuke
2022-10-09 10:10:10 +09:00
committed by GitHub
parent e23536e7ba
commit a4f10208de
9 changed files with 2881 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
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()));
}
}

View File

@@ -0,0 +1,20 @@
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()));
}
}

View File

@@ -0,0 +1,21 @@
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);
}
}

View File

@@ -0,0 +1,20 @@
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);
}
}