mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-19 10:24:47 +01:00
Fix player location updates in co-op
This commit is contained in:
@@ -31,8 +31,11 @@ public class HandlerEnterSceneDoneReq extends PacketHandler {
|
||||
|
||||
// Locations
|
||||
session.send(new PacketWorldPlayerLocationNotify(session.getPlayer().getWorld()));
|
||||
session.send(new PacketScenePlayerLocationNotify(session.getPlayer()));
|
||||
session.send(new PacketScenePlayerLocationNotify(session.getPlayer().getScene()));
|
||||
session.send(new PacketWorldPlayerRTTNotify(session.getPlayer().getWorld()));
|
||||
|
||||
// Reset timer for sending player locations
|
||||
session.getPlayer().resetSendPlayerLocTime();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,19 +1,20 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.game.GenshinPlayer;
|
||||
import emu.grasscutter.game.GenshinScene;
|
||||
import emu.grasscutter.net.packet.GenshinPacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.ScenePlayerLocationNotifyOuterClass.ScenePlayerLocationNotify;
|
||||
|
||||
public class PacketScenePlayerLocationNotify extends GenshinPacket {
|
||||
|
||||
public PacketScenePlayerLocationNotify(GenshinPlayer player) {
|
||||
public PacketScenePlayerLocationNotify(GenshinScene scene) {
|
||||
super(PacketOpcodes.ScenePlayerLocationNotify);
|
||||
|
||||
ScenePlayerLocationNotify.Builder proto = ScenePlayerLocationNotify.newBuilder()
|
||||
.setSceneId(player.getSceneId());
|
||||
.setSceneId(scene.getId());
|
||||
|
||||
for (GenshinPlayer p : player.getWorld().getPlayers()) {
|
||||
for (GenshinPlayer p : scene.getPlayers()) {
|
||||
proto.addPlayerLocList(p.getPlayerLocationInfo());
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ public class PacketWorldPlayerLocationNotify extends GenshinPacket {
|
||||
WorldPlayerLocationNotify.Builder proto = WorldPlayerLocationNotify.newBuilder();
|
||||
|
||||
for (GenshinPlayer p : world.getPlayers()) {
|
||||
proto.addPlayerLocList(p.getPlayerLocationInfo());
|
||||
proto.addPlayerLocList(p.getWorldPlayerLocationInfo());
|
||||
}
|
||||
|
||||
this.setData(proto);
|
||||
|
||||
Reference in New Issue
Block a user