mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-18 09:54:59 +01:00
Add missing forging protos, add data for ongoing forges to player, handler for ForgeStartReq.
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import java.lang.invoke.StringConcatFactory;
|
||||
|
||||
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.ForgeStartReqOuterClass;
|
||||
import emu.grasscutter.net.proto.DeleteFriendReqOuterClass;
|
||||
import emu.grasscutter.server.game.GameSession;
|
||||
import emu.grasscutter.server.packet.send.PacketDelMailRsp;
|
||||
|
||||
@Opcodes(PacketOpcodes.ForgeStartReq)
|
||||
public class HandlerForgeStartReq extends PacketHandler {
|
||||
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
ForgeStartReqOuterClass.ForgeStartReq req = ForgeStartReqOuterClass.ForgeStartReq.parseFrom(payload);
|
||||
session.getPlayer().getForgingManager().startForging(req);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,30 +1,27 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.ForgeDataNotifyOuterClass.ForgeDataNotify;
|
||||
import emu.grasscutter.net.proto.ForgeQueueDataOuterClass.ForgeQueueData;
|
||||
|
||||
public class PacketForgeDataNotify extends BasePacket {
|
||||
|
||||
public PacketForgeDataNotify(Iterable<Integer> unlockedItem, int numQueues) {
|
||||
public PacketForgeDataNotify(Iterable<Integer> unlockedItem, int numQueues, Map<Integer, ForgeQueueData> queueData) {
|
||||
super(PacketOpcodes.ForgeDataNotify);
|
||||
|
||||
/*int adventureRank = player.getLevel();
|
||||
int numQueues =
|
||||
(adventureRank >= 15) ? 4
|
||||
: (adventureRank >= 10) ? 3
|
||||
: (adventureRank >= 5) ? 2
|
||||
: 1;*/
|
||||
|
||||
ForgeDataNotify proto = ForgeDataNotify.newBuilder()
|
||||
ForgeDataNotify.Builder builder = ForgeDataNotify.newBuilder()
|
||||
.addAllForgeIdList(unlockedItem)
|
||||
.setMaxQueueNum(numQueues)
|
||||
.build();
|
||||
.setMaxQueueNum(numQueues);
|
||||
|
||||
// ToDo: Add the information for the actual forging queues
|
||||
// and ongoing forges.
|
||||
for (int queueId : queueData.keySet()) {
|
||||
var data = queueData.get(queueId);
|
||||
builder.putForgeQueueMap(queueId, data);
|
||||
}
|
||||
|
||||
this.setData(proto);
|
||||
this.setData(builder.build());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +1,27 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.ForgeGetQueueDataRspOuterClass.ForgeGetQueueDataRsp;
|
||||
import emu.grasscutter.net.proto.ForgeQueueDataOuterClass.ForgeQueueData;
|
||||
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
|
||||
|
||||
public class PacketForgeGetQueueDataRsp extends BasePacket {
|
||||
|
||||
public PacketForgeGetQueueDataRsp(Retcode retcode, int numQueues) {
|
||||
public PacketForgeGetQueueDataRsp(Retcode retcode, int numQueues, Map<Integer, ForgeQueueData> queueData) {
|
||||
super(PacketOpcodes.ForgeGetQueueDataRsp);
|
||||
|
||||
ForgeGetQueueDataRsp proto = ForgeGetQueueDataRsp.newBuilder()
|
||||
ForgeGetQueueDataRsp.Builder builder = ForgeGetQueueDataRsp.newBuilder()
|
||||
.setRetcode(retcode.getNumber())
|
||||
.setMaxQueueNum(numQueues)
|
||||
.build();
|
||||
.setMaxQueueNum(numQueues);
|
||||
|
||||
// ToDo: Add the information for the actual forging queues
|
||||
// and ongoing forges.
|
||||
for (int queueId : queueData.keySet()) {
|
||||
var data = queueData.get(queueId);
|
||||
builder.putForgeQueueMap(queueId, data);
|
||||
}
|
||||
|
||||
this.setData(proto);
|
||||
this.setData(builder.build());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.ForgeStartRspOuterClass.ForgeStartRsp;
|
||||
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class PacketForgeStartRsp extends BasePacket {
|
||||
|
||||
public PacketForgeStartRsp(Retcode retcode) {
|
||||
super(PacketOpcodes.ForgeStartRsp);
|
||||
|
||||
ForgeStartRsp proto = ForgeStartRsp.newBuilder()
|
||||
.setRetcode(retcode.getNumber())
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user