Unverified Commit cf67c44f authored by dragon's avatar dragon Committed by GitHub
Browse files

feat:cooking food ingredient(aka:compound) implementation (#1858)



* feat:cooking food ingredient(aka:compound) implementation

Implement food ingredient(compound) feature.Need a thorough test and still has some work to do.

* small bug fix;implement fish processing

* Update src/main/java/emu/grasscutter/server/packet/send/PacketItemAddHintNotify.java
Co-authored-by: default avatarLuke H-W <Birdulon@users.noreply.github.com>

* Update Inventory.java

* Update Inventory.java
Co-authored-by: default avatarLuke H-W <Birdulon@users.noreply.github.com>
parent 1ecc3f43
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.GetCompoundDataReqOuterClass;
import emu.grasscutter.server.game.GameSession;
@Opcodes(PacketOpcodes.GetCompoundDataReq)
public class HandlerGetCompoundDataReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
var req = GetCompoundDataReqOuterClass.GetCompoundDataReq.parseFrom(payload);
session.getPlayer().getCookingCompoundManager().handleGetCompoundDataReq(req);
}
}
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.PlayerCompoundMaterialReqOuterClass;
import emu.grasscutter.server.game.GameSession;
@Opcodes(PacketOpcodes.PlayerCompoundMaterialReq)
public class HandlerPlayerCompoundMaterialReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
var req = PlayerCompoundMaterialReqOuterClass.PlayerCompoundMaterialReq.parseFrom(payload);
session.getPlayer().getCookingCompoundManager().handlePlayerCompoundMaterialReq(req);
}
}
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.TakeCompoundOutputReqOuterClass;
import emu.grasscutter.server.game.GameSession;
@Opcodes(PacketOpcodes.TakeCompoundOutputReq)
public class HandlerTakeCompoundOutputReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
var req = TakeCompoundOutputReqOuterClass.TakeCompoundOutputReq.parseFrom(payload);
session.getPlayer().getCookingCompoundManager().handleTakeCompoundOutputReq(req);
}
}
package emu.grasscutter.server.packet.send;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.ItemParamOuterClass.ItemParam;
import emu.grasscutter.net.proto.TakeCompoundOutputRspOuterClass.TakeCompoundOutputRsp;
public class PackageTakeCompoundOutputRsp extends BasePacket {
public PackageTakeCompoundOutputRsp(Iterable<ItemParam> itemList, int retcode) {
super(PacketOpcodes.TakeCompoundOutputRsp);
var builder = TakeCompoundOutputRsp.newBuilder()
.addAllItemList(itemList)
.setRetcode(retcode);
setData(builder.build());
}
}
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) {
......@@ -17,7 +13,7 @@ public class PacketForgeStartRsp extends BasePacket {
ForgeStartRsp proto = ForgeStartRsp.newBuilder()
.setRetcode(retcode.getNumber())
.build();
this.setData(proto);
}
}
\ No newline at end of file
}
package emu.grasscutter.server.packet.send;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData;
import emu.grasscutter.net.proto.GetCompoundDataRspOuterClass.GetCompoundDataRsp;
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
import java.util.List;
import java.util.Set;
public class PacketGetCompoundDataRsp extends BasePacket {
public PacketGetCompoundDataRsp(Set<Integer> unlockedCompounds, List<CompoundQueueData> compundQueueData) {
super(PacketOpcodes.GetCompoundDataRsp);
var proto = GetCompoundDataRsp.newBuilder()
.addAllUnlockCompoundList(unlockedCompounds)
.addAllCompoundQueDataList(compundQueueData)
.setRetcode(Retcode.RET_SUCC_VALUE)
.build();
setData(proto);
}
}
package emu.grasscutter.server.packet.send;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.CompoundQueueDataOuterClass.CompoundQueueData;
import emu.grasscutter.net.proto.PlayerCompoundMaterialRspOuterClass.PlayerCompoundMaterialRsp;
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
public class PacketPlayerCompoundMaterialRsp extends BasePacket {
/**
* Builder for successful message.
*
* @param compoundQueueData new compound queue
*/
public PacketPlayerCompoundMaterialRsp(CompoundQueueData compoundQueueData) {
super(PacketOpcodes.PlayerCompoundMaterialRsp);
PlayerCompoundMaterialRsp proto = PlayerCompoundMaterialRsp.newBuilder()
.setCompoundQueData(compoundQueueData)
.setRetcode(Retcode.RET_SUCC_VALUE)
.build();
setData(proto);
}
/**
* Builder for failed message.
* @param retcode error code
*/
public PacketPlayerCompoundMaterialRsp(int retcode) {
super(PacketOpcodes.PlayerCompoundMaterialRsp);
PlayerCompoundMaterialRsp proto = PlayerCompoundMaterialRsp.newBuilder()
.setRetcode(retcode)
.build();
setData(proto);
}
}
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