mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2026-05-17 09:22:37 +08:00
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:
committed by
GitHub
Unverified
parent
83602f78ae
commit
fc42f665a7
@@ -1,7 +1,5 @@
|
||||
package emu.grasscutter.server.packet.recv;
|
||||
|
||||
import emu.grasscutter.game.world.Position;
|
||||
import emu.grasscutter.game.world.Scene;
|
||||
import emu.grasscutter.net.packet.Opcodes;
|
||||
import emu.grasscutter.net.packet.PacketHandler;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
@@ -19,9 +17,10 @@ public class HandlerHomeChangeModuleReq extends PacketHandler {
|
||||
@Override
|
||||
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
|
||||
HomeChangeModuleReqOuterClass.HomeChangeModuleReq req =
|
||||
HomeChangeModuleReqOuterClass.HomeChangeModuleReq.parseFrom(payload);
|
||||
HomeChangeModuleReqOuterClass.HomeChangeModuleReq.parseFrom(payload);
|
||||
|
||||
if (!session.getPlayer().getCurHomeWorld().getGuests().isEmpty()) {
|
||||
var homeWorld = session.getPlayer().getCurHomeWorld();
|
||||
if (!homeWorld.getGuests().isEmpty()) {
|
||||
session.send(new PacketHomeChangeModuleRsp());
|
||||
return;
|
||||
}
|
||||
@@ -33,13 +32,10 @@ public class HandlerHomeChangeModuleReq extends PacketHandler {
|
||||
session.send(new PacketHomeComfortInfoNotify(session.getPlayer()));
|
||||
|
||||
int realmId = 2000 + req.getTargetModuleId();
|
||||
var scene = homeWorld.getSceneById(realmId);
|
||||
var pos = scene.getScriptManager().getConfig().born_pos;
|
||||
|
||||
Scene scene = session.getPlayer().getWorld().getSceneById(realmId);
|
||||
Position pos = scene.getScriptManager().getConfig().born_pos;
|
||||
|
||||
session
|
||||
.getPlayer()
|
||||
.getWorld()
|
||||
.transferPlayerToScene(session.getPlayer(), realmId, TeleportType.WAYPOINT, pos);
|
||||
homeWorld.transferPlayerToScene(session.getPlayer(), realmId, TeleportType.WAYPOINT, pos);
|
||||
homeWorld.refreshModuleManager();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user