mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-12-05 03:03:31 +00:00
58 lines
2.3 KiB
Java
58 lines
2.3 KiB
Java
package emu.grasscutter.server.packet.send;
|
|
|
|
import emu.grasscutter.game.entity.EntityAvatar;
|
|
import emu.grasscutter.game.inventory.GameItem;
|
|
import emu.grasscutter.game.player.Player;
|
|
import emu.grasscutter.net.packet.BasePacket;
|
|
import emu.grasscutter.net.packet.PacketOpcodes;
|
|
import emu.grasscutter.net.proto.AbilityControlBlockOuterClass;
|
|
import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo;
|
|
import emu.grasscutter.net.proto.AvatarEnterSceneInfoOuterClass.AvatarEnterSceneInfo;
|
|
import emu.grasscutter.net.proto.MPLevelEntityInfoOuterClass.MPLevelEntityInfo;
|
|
import emu.grasscutter.net.proto.PlayerEnterSceneInfoNotifyOuterClass.PlayerEnterSceneInfoNotify;
|
|
import emu.grasscutter.net.proto.TeamEnterSceneInfoOuterClass.TeamEnterSceneInfo;
|
|
|
|
public class PacketPlayerEnterSceneInfoNotify extends BasePacket {
|
|
|
|
public PacketPlayerEnterSceneInfoNotify(Player player) {
|
|
super(PacketOpcodes.PlayerEnterSceneInfoNotify);
|
|
|
|
AbilitySyncStateInfo empty = AbilitySyncStateInfo.newBuilder().build();
|
|
|
|
PlayerEnterSceneInfoNotify.Builder proto = PlayerEnterSceneInfoNotify.newBuilder()
|
|
.setCurAvatarEntityId(player.getTeamManager().getCurrentAvatarEntity().getId())
|
|
.setEnterSceneToken(player.getEnterSceneToken());
|
|
|
|
proto.setTeamEnterInfo(
|
|
TeamEnterSceneInfo.newBuilder()
|
|
.setTeamEntityId(player.getTeamManager().getEntityId()) // 150995833
|
|
.setTeamAbilityInfo(empty)
|
|
.setAbilityControlBlock(AbilityControlBlockOuterClass.AbilityControlBlock.newBuilder().build())
|
|
);
|
|
proto.setMpLevelEntityInfo(
|
|
MPLevelEntityInfo.newBuilder()
|
|
.setEntityId(player.getWorld().getLevelEntityId()) // 184550274
|
|
.setAuthorityPeerId(player.getWorld().getHostPeerId())
|
|
.setAbilityInfo(empty)
|
|
);
|
|
|
|
for (EntityAvatar avatarEntity : player.getTeamManager().getActiveTeam()) {
|
|
GameItem weapon = avatarEntity.getAvatar().getWeapon();
|
|
long weaponGuid = weapon != null ? weapon.getGuid() : 0;
|
|
|
|
AvatarEnterSceneInfo avatarInfo = AvatarEnterSceneInfo.newBuilder()
|
|
.setAvatarGuid(avatarEntity.getAvatar().getGuid())
|
|
.setAvatarEntityId(avatarEntity.getId())
|
|
.setWeaponGuid(weaponGuid)
|
|
.setWeaponEntityId(avatarEntity.getWeaponEntityId())
|
|
.setAvatarAbilityInfo(empty)
|
|
.setWeaponAbilityInfo(empty)
|
|
.build();
|
|
|
|
proto.addAvatarEnterInfo(avatarInfo);
|
|
}
|
|
|
|
this.setData(proto.build());
|
|
}
|
|
}
|