Protocol definition fixes

This commit is contained in:
KingRainbow44
2023-08-14 23:38:07 -04:00
parent 31b9541b66
commit 407c1b3a86
44 changed files with 6481 additions and 4856 deletions

View File

@@ -6,7 +6,7 @@ import emu.grasscutter.utils.Utils;
import java.util.Arrays;
public final class GameConstants {
public static String VERSION = "3.7.0";
public static String VERSION = "4.0.0";
public static boolean DEBUG = false;
public static final int DEFAULT_TEAMS = 4;

View File

@@ -3,11 +3,8 @@ package emu.grasscutter.game.entity;
import emu.grasscutter.data.excels.ItemData;
import emu.grasscutter.game.inventory.GameItem;
import emu.grasscutter.game.player.Player;
import emu.grasscutter.game.props.ActionReason;
import emu.grasscutter.game.props.EntityIdType;
import emu.grasscutter.game.props.PlayerProperty;
import emu.grasscutter.game.world.Position;
import emu.grasscutter.game.world.Scene;
import emu.grasscutter.game.props.*;
import emu.grasscutter.game.world.*;
import emu.grasscutter.net.proto.AbilitySyncStateInfoOuterClass.AbilitySyncStateInfo;
import emu.grasscutter.net.proto.AnimatorParameterValueInfoPairOuterClass.AnimatorParameterValueInfoPair;
import emu.grasscutter.net.proto.EntityAuthorityInfoOuterClass.EntityAuthorityInfo;
@@ -22,6 +19,7 @@ import emu.grasscutter.net.proto.ProtEntityTypeOuterClass.ProtEntityType;
import emu.grasscutter.net.proto.SceneEntityAiInfoOuterClass.SceneEntityAiInfo;
import emu.grasscutter.net.proto.SceneEntityInfoOuterClass.SceneEntityInfo;
import emu.grasscutter.net.proto.SceneGadgetInfoOuterClass.SceneGadgetInfo;
import emu.grasscutter.net.proto.TrifleGadgetOuterClass.TrifleGadget;
import emu.grasscutter.net.proto.VectorOuterClass.Vector;
import emu.grasscutter.server.packet.send.PacketGadgetInteractRsp;
import emu.grasscutter.utils.helpers.ProtoHelper;
@@ -147,7 +145,7 @@ public class EntityItem extends EntityBaseGadget {
SceneGadgetInfo.Builder gadgetInfo =
SceneGadgetInfo.newBuilder()
.setGadgetId(this.getItemData().getGadgetId())
.setTrifleItem(this.getItem().toProto())
.setTrifleGadget(TrifleGadget.newBuilder().setItem(this.getItem().toProto()))
.setBornType(GadgetBornType.GADGET_BORN_TYPE_IN_AIR)
.setAuthorityPeerId(this.getWorld().getHostPeerId())
.setIsEnableInteract(true);

View File

@@ -3,7 +3,7 @@ package emu.grasscutter.server.packet.recv;
import emu.grasscutter.net.packet.Opcodes;
import emu.grasscutter.net.packet.PacketHandler;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.FireWorkReqOuterClass;
import emu.grasscutter.net.proto.LaunchFireworksReqOuterClass.LaunchFireworksReq;
import emu.grasscutter.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketFireworkNotify;
import emu.grasscutter.server.packet.send.PacketFireworkRsp;
@@ -12,9 +12,8 @@ import emu.grasscutter.server.packet.send.PacketFireworkRsp;
public class HandlerFireWorkReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
var req = FireWorkReqOuterClass.FireWorkReq.parseFrom(payload);
session.send(new PacketFireworkNotify(req.getFireWorkData()));
var req = LaunchFireworksReq.parseFrom(payload);
session.send(new PacketFireworkNotify(req.getSchemeData()));
session.send(new PacketFireworkRsp());
}
}

View File

@@ -1,21 +1,17 @@
package emu.grasscutter.server.packet.recv;
import emu.grasscutter.net.packet.Opcodes;
import emu.grasscutter.net.packet.PacketHandler;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.FireworkSetReqOuterClass;
import emu.grasscutter.net.packet.*;
import emu.grasscutter.net.proto.ReformFireworksReqOuterClass.ReformFireworksReq;
import emu.grasscutter.server.game.GameSession;
import emu.grasscutter.server.packet.send.PacketFireworkSetNotify;
import emu.grasscutter.server.packet.send.PacketFireworkSetRsp;
import emu.grasscutter.server.packet.send.*;
@Opcodes(PacketOpcodes.FireworkSetReq)
public class HandlerFireworkSetReq extends PacketHandler {
@Override
public void handle(GameSession session, byte[] header, byte[] payload) throws Exception {
var req = ReformFireworksReq.parseFrom(payload);
var req = FireworkSetReqOuterClass.FireworkSetReq.parseFrom(payload);
session.send(new PacketFireworkSetNotify(req.getData()));
session.send(new PacketFireworkSetNotify(req.getFireworksReformData()));
session.send(new PacketFireworkSetRsp());
}
}

View File

@@ -1,19 +1,13 @@
package emu.grasscutter.server.packet.send;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.FireWorkDataOuterClass;
import emu.grasscutter.net.proto.FireWorkNotifyOuterClass;
import emu.grasscutter.net.packet.*;
import emu.grasscutter.net.proto.FireworksLaunchDataNotifyOuterClass.FireworksLaunchDataNotify;
import emu.grasscutter.net.proto.FireworksLaunchSchemeDataOuterClass.FireworksLaunchSchemeData;
public class PacketFireworkNotify extends BasePacket {
public PacketFireworkNotify(FireWorkDataOuterClass.FireWorkData pinfo) {
public PacketFireworkNotify(FireworksLaunchSchemeData data) {
super(PacketOpcodes.FireworkNotify);
var proto = FireWorkNotifyOuterClass.FireWorkNotify.newBuilder();
proto.addFireWorkData(pinfo);
setData(proto.build());
this.setData(FireworksLaunchDataNotify.newBuilder().addSchemeDataList(data));
}
}

View File

@@ -1,19 +1,14 @@
package emu.grasscutter.server.packet.send;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.proto.FireworkSetDataOuterClass;
import emu.grasscutter.net.proto.FireworkSetNotifyOuterClass;
import emu.grasscutter.net.packet.*;
import emu.grasscutter.net.proto.FireworksReformDataNotifyOuterClass.FireworksReformDataNotify;
import emu.grasscutter.net.proto.FireworksReformDataOuterClass.FireworksReformData;
public class PacketFireworkSetNotify extends BasePacket {
public PacketFireworkSetNotify(FireworkSetDataOuterClass.FireworkSetData notify) {
public PacketFireworkSetNotify(FireworksReformData data) {
super(PacketOpcodes.FireworkSetNotify);
var proto = FireworkSetNotifyOuterClass.FireworkSetNotify.newBuilder();
proto.setCode(1).addData(notify);
setData(proto.build());
this.setData(FireworksReformDataNotify.newBuilder().addFireworksReformDataList(data));
}
}

View File

@@ -1,11 +1,13 @@
package emu.grasscutter.server.packet.send;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.packet.*;
import emu.grasscutter.net.proto.ReformFireworksRspOuterClass.ReformFireworksRsp;
import emu.grasscutter.net.proto.RetcodeOuterClass.Retcode;
public class PacketFireworkSetRsp extends BasePacket {
public PacketFireworkSetRsp() {
super(PacketOpcodes.FireworkSetRsp);
this.setData(ReformFireworksRsp.newBuilder().setRetcode(Retcode.RET_SUCC.getNumber()));
}
}

View File

@@ -14,7 +14,7 @@ public class PacketGachaWishRsp extends BasePacket {
GachaWishRsp.newBuilder()
.setGachaType(gachaType)
.setGachaScheduleId(scheduleId)
.setTenCostItemId(itemId)
.setWishItemId(itemId)
.setWishProgress(progress)
.setWishMaxProgress(maxProgress)
.build();

View File

@@ -27,7 +27,7 @@ public class PacketGetPlayerTokenRsp extends BasePacket {
.setChannelId(1)
.setCountryCode("US")
.setClientVersionRandomKey("c25-314dd05b0b5f")
.setRegPlatform(3)
.setEMFDHANIAHH(3) // setRegPlatform
.setClientIpStr(session.getAddress().getAddress().getHostAddress())
.build();
@@ -46,7 +46,7 @@ public class PacketGetPlayerTokenRsp extends BasePacket {
.setRetcode(retcode)
.setMsg(msg)
.setBlackUidEndTime(blackEndTime)
.setRegPlatform(3)
.setEMFDHANIAHH(3) // setRegPlatform
.setCountryCode("US")
.setClientIpStr(session.getAddress().getAddress().getHostAddress())
.build();
@@ -73,7 +73,7 @@ public class PacketGetPlayerTokenRsp extends BasePacket {
.setChannelId(1)
.setCountryCode("US")
.setClientVersionRandomKey("c25-314dd05b0b5f")
.setRegPlatform(3)
.setEMFDHANIAHH(3) // setRegPlatform
.setClientIpStr(session.getAddress().getAddress().getHostAddress())
.setServerRandKey(encryptedSeed)
.setSign(encryptedSeedSign)

View File

@@ -1,13 +1,11 @@
package emu.grasscutter.server.packet.send;
import static emu.grasscutter.config.Configuration.GAME_INFO;
import static emu.grasscutter.config.Configuration.lr;
import static emu.grasscutter.config.Configuration.*;
import com.google.protobuf.ByteString;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.Grasscutter.ServerRunMode;
import emu.grasscutter.net.packet.BasePacket;
import emu.grasscutter.net.packet.PacketOpcodes;
import emu.grasscutter.net.packet.*;
import emu.grasscutter.net.proto.PlayerLoginRspOuterClass.PlayerLoginRsp;
import emu.grasscutter.net.proto.QueryCurrRegionHttpRspOuterClass;
import emu.grasscutter.net.proto.RegionInfoOuterClass.RegionInfo;
@@ -64,9 +62,9 @@ public class PacketPlayerLoginRsp extends BasePacket {
.setResVersionConfig(info.getResVersionConfig())
.setClientVersionSuffix(info.getClientVersionSuffix())
.setClientSilenceVersionSuffix(info.getClientSilenceVersionSuffix())
.setIsScOpen(false)
// .setIsScOpen(false)
// .setScInfo(ByteString.copyFrom(new byte[] {}))
.setRegisterCps("mihoyo")
// .setRegisterCps("mihoyo")
.setCountryCode("US")
.build();