Cooking and unlocking recipies.

This commit is contained in:
GanyusLeftHorn
2022-07-02 01:11:58 -07:00
committed by Melledy
parent a957b8c5b8
commit d95a30a1a5
7 changed files with 210 additions and 1 deletions

View File

@@ -0,0 +1,16 @@
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.PlayerCookArgsReqOuterClass;
import emu.grasscutter.server.game.GameSession;
@Opcodes(PacketOpcodes.PlayerCookArgsReq)
public class HandlerPlayerCookArgsReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
PlayerCookArgsReqOuterClass.PlayerCookArgsReq req = PlayerCookArgsReqOuterClass.PlayerCookArgsReq.parseFrom(payload);
session.getPlayer().getCookingManager().handleCookArgsReq(req);
}
}

View File

@@ -0,0 +1,16 @@
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.PlayerCookReqOuterClass;
import emu.grasscutter.server.game.GameSession;
@Opcodes(PacketOpcodes.PlayerCookReq)
public class HandlerPlayerCookReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
PlayerCookReqOuterClass.PlayerCookReq req = PlayerCookReqOuterClass.PlayerCookReq.parseFrom(payload);
session.getPlayer().getCookingManager().handlePlayerCookReq(req);
}
}

View File

@@ -0,0 +1,28 @@
package emu.grasscutter.server.packet.send;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.CookRecipeDataNotifyOuterClass.CookRecipeDataNotify;
import emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData;
public class PacketCookRecipeDataNotify extends BasePacket {
public PacketCookRecipeDataNotify(CookRecipeData recipe) {
super(PacketOpcodes.CookRecipeDataNotify);
CookRecipeDataNotify proto = CookRecipeDataNotify.newBuilder()
.setRecipeData(recipe)
.build();
this.setData(proto);
}
public PacketCookRecipeDataNotify(int recipeId) {
super(PacketOpcodes.CookRecipeDataNotify);
CookRecipeDataNotify proto = CookRecipeDataNotify.newBuilder()
.setRecipeData(CookRecipeData.newBuilder().setRecipeId(recipeId))
.build();
this.setData(proto);
}
}

View File

@@ -0,0 +1,17 @@
package emu.grasscutter.server.packet.send;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.PlayerCookArgsRspOuterClass.PlayerCookArgsRsp;
public class PacketPlayerCookArgsRsp extends BasePacket {
public PacketPlayerCookArgsRsp() {
super(PacketOpcodes.PlayerCookArgsRsp);
PlayerCookArgsRsp proto = PlayerCookArgsRsp.newBuilder()
.build();
this.setData(proto);
}
}

View File

@@ -0,0 +1,42 @@
package emu.grasscutter.server.packet.send;
import emu.grasscutter.game.inventory.GameItem;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.CookRecipeDataOuterClass.CookRecipeData;
import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam;
import emu.grasscutter.net.proto.PlayerCookRspOuterClass.PlayerCookRsp;
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
public class PacketPlayerCookRsp extends BasePacket {
public PacketPlayerCookRsp(Retcode retcode) {
super(PacketOpcodes.PlayerCookRsp);
PlayerCookRsp proto = PlayerCookRsp.newBuilder()
.setRetcode(retcode.getNumber())
.build();
this.setData(proto);
}
public PacketPlayerCookRsp(GameItem output, int quality, int count, int recipeId, int proficiency) {
super(PacketOpcodes.PlayerCookRsp);
PlayerCookRsp proto = PlayerCookRsp.newBuilder()
.setRecipeData(
CookRecipeData.newBuilder()
.setRecipeId(recipeId)
.setProficiency(proficiency)
)
.setQteQuality(quality)
.addItemList(
ItemParam.newBuilder()
.setItemId(output.getItemId())
.setCount(output.getCount())
)
.setCookCount(count)
.build();
this.setData(proto);
}
}