mirror of
https://github.com/Melledy/Grasscutter.git
synced 2024-12-05 03:03:31 +00:00
f139818224
* feature(2.7 version): support 2.7 version & upload new protos 1. Support GC in GI 2.7.0; 2. Upload new protos; 3. Fix some bugs cuz by new protos. BREAKING CHANGE: all * fix(database helper): fix player uid issues * fix(ability embryo): uint32 to fixed32 * fix(proto): map mark rename MAP_MARK_FROM_TYPE_NOE to MAP_MARK_FROM_TYPE_NONE * fix(game version): change game version to 2.7.0 * perf(proto): remove unused protos 1. Remove unused protos; 2. Temporarily commented out some of the proto fields. * fix(proto): uint32 to fixed32
68 lines
2.2 KiB
Java
68 lines
2.2 KiB
Java
package emu.grasscutter.server.packet.send;
|
|
|
|
import emu.grasscutter.Grasscutter;
|
|
import emu.grasscutter.game.entity.EntityVehicle;
|
|
import emu.grasscutter.game.player.Player;
|
|
import emu.grasscutter.game.entity.GameEntity;
|
|
|
|
import emu.grasscutter.net.packet.BasePacket;
|
|
import emu.grasscutter.net.packet.PacketOpcodes;
|
|
import emu.grasscutter.net.proto.VehicleInteractTypeOuterClass.VehicleInteractType;
|
|
import emu.grasscutter.net.proto.VehicleInteractRspOuterClass.VehicleInteractRsp;
|
|
import emu.grasscutter.net.proto.VehicleMemberOuterClass.VehicleMember;
|
|
|
|
public class PacketVehicleInteractRsp extends BasePacket {
|
|
|
|
public PacketVehicleInteractRsp(Player player, int entityId, VehicleInteractType interactType) {
|
|
super(PacketOpcodes.VehicleInteractRsp);
|
|
VehicleInteractRsp.Builder proto = VehicleInteractRsp.newBuilder();
|
|
|
|
GameEntity vehicle = player.getScene().getEntityById(entityId);
|
|
|
|
if(vehicle instanceof EntityVehicle) {
|
|
proto.setEntityId(vehicle.getId());
|
|
|
|
VehicleMember vehicleMember = VehicleMember.newBuilder()
|
|
.setUid(player.getUid())
|
|
.setAvatarGuid(player.getTeamManager().getCurrentCharacterGuid())
|
|
.build();
|
|
|
|
proto.setInteractType(interactType);
|
|
proto.setMember(vehicleMember);
|
|
|
|
switch(interactType){
|
|
case VEHICLE_INTERACT_TYPE_IN -> {
|
|
((EntityVehicle) vehicle).getVehicleMembers().add(vehicleMember);
|
|
}
|
|
case VEHICLE_INTERACT_TYPE_OUT -> {
|
|
((EntityVehicle) vehicle).getVehicleMembers().remove(vehicleMember);
|
|
}
|
|
default -> {}
|
|
}
|
|
}
|
|
this.setData(proto.build());
|
|
}
|
|
|
|
public PacketVehicleInteractRsp(EntityVehicle vehicle, VehicleMember vehicleMember, VehicleInteractType interactType) {
|
|
super(PacketOpcodes.VehicleInteractRsp);
|
|
VehicleInteractRsp.Builder proto = VehicleInteractRsp.newBuilder();
|
|
|
|
if(vehicle != null) {
|
|
proto.setEntityId(vehicle.getId());
|
|
proto.setInteractType(interactType);
|
|
proto.setMember(vehicleMember);
|
|
|
|
switch(interactType){
|
|
case VEHICLE_INTERACT_TYPE_IN -> {
|
|
vehicle.getVehicleMembers().add(vehicleMember);
|
|
}
|
|
case VEHICLE_INTERACT_TYPE_OUT -> {
|
|
vehicle.getVehicleMembers().remove(vehicleMember);
|
|
}
|
|
default -> {}
|
|
}
|
|
}
|
|
this.setData(proto.build());
|
|
}
|
|
}
|