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
@@ -1,6 +1,8 @@
package emu.grasscutter.server.packet.recv;
import emu.grasscutter.net.packet.*;
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.*;
@@ -16,16 +18,20 @@ public class HandlerHomeSceneInitFinishReq extends PacketHandler {
session.getPlayer().setHasSentInitPacketInHome(true);
if (curHomeWorld.getHost().isOnline()
&& !curHomeWorld.getHost().equals(session.getPlayer())) {
&& !curHomeWorld.getHost().equals(session.getPlayer())) {
curHomeWorld
.getHost()
.sendPacket(
new PacketOtherPlayerEnterOrLeaveHomeNotify(
session.getPlayer(),
OtherPlayerEnterHomeNotifyOuterClass.OtherPlayerEnterHomeNotify.Reason.ENTER));
.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());