feat: implement teapot suite (#2344)

* feat: implement teapot suite

* fix: home animals, check respawn, etc

* fix: NPE and cancel summon events

* fix: forgot to send eventId also
This commit is contained in:
hamusuke
2023-09-08 12:34:03 +09:00
committed by GitHub
Unverified
parent 83602f78ae
commit fc42f665a7
36 changed files with 1125 additions and 210 deletions
@@ -0,0 +1,19 @@
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.HomeAvatarSummonEventReqOuterClass;
import emu.grasscutter.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketHomeAvatarSummonEventRsp;
@Opcodes(PacketOpcodes.HomeAvatarSummonEventReq)
public class HandlerHomeAvatarSummonEventReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
var req = HomeAvatarSummonEventReqOuterClass.HomeAvatarSummonEventReq.parseFrom(payload);
var moduleManager = session.getPlayer().getCurHomeWorld().getModuleManager();
var eventOrError = moduleManager.fireAvatarSummonEvent(session.getPlayer(), req.getAvatarId(), req.getGuid(), req.getSuitId());
session.send(eventOrError.map(PacketHomeAvatarSummonEventRsp::new, PacketHomeAvatarSummonEventRsp::new));
}
}