Files
Grasscutter/src/main/java/emu/grasscutter/server/packet/recv/HandlerHomeSceneInitFinishReq.java
T
hamusuke fc42f665a7 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
2023-09-07 23:34:03 -04:00

40 lines
1.6 KiB
Java

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.OtherPlayerEnterHomeNotifyOuterClass;
import emu.grasscutter.server.game.GameSession;
import emu.grasscutter.server.packet.send.*;
@Opcodes(PacketOpcodes.HomeSceneInitFinishReq)
public class HandlerHomeSceneInitFinishReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
var curHomeWorld = session.getPlayer().getCurHomeWorld();
if (!session.getPlayer().isHasSentInitPacketInHome()) {
session.getPlayer().setHasSentInitPacketInHome(true);
if (curHomeWorld.getHost().isOnline()
&& !curHomeWorld.getHost().equals(session.getPlayer())) {
curHomeWorld
.getHost()
.sendPacket(
new PacketOtherPlayerEnterOrLeaveHomeNotify(
session.getPlayer(),
OtherPlayerEnterHomeNotifyOuterClass.OtherPlayerEnterHomeNotify.Reason.ENTER));
}
}
curHomeWorld.ifHost(session.getPlayer(), player -> {
player.sendPacket(new PacketHomeAvatarRewardEventNotify(player));
player.sendPacket(new PacketHomeAvatarSummonAllEventNotify(player));
});
session.send(new PacketHomeMarkPointNotify(session.getPlayer()));
session.send(new PacketHomeSceneInitFinishRsp());
}
}