mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-24 04:44:40 +01:00
[Anime Game Version update] Support 2.7 (#1072)
* 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
This commit is contained in:
@@ -46,7 +46,7 @@ public class PacketAllWidgetDataNotify extends BasePacket {
|
||||
|
||||
proto.addSlotList(
|
||||
WidgetSlotDataOuterClass.WidgetSlotData.newBuilder()
|
||||
.setTag(WidgetSlotTagOuterClass.WidgetSlotTag.WIDGET_SLOT_ATTACH_AVATAR)
|
||||
.setTag(WidgetSlotTagOuterClass.WidgetSlotTag.WIDGET_SLOT_TAG_ATTACH_AVATAR)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ public class PacketBuyGoodsRsp extends BasePacket {
|
||||
|
||||
BuyGoodsRspOuterClass.BuyGoodsRsp buyGoodsRsp = BuyGoodsRspOuterClass.BuyGoodsRsp.newBuilder()
|
||||
.setShopType(shopType)
|
||||
.setBoughtNum(boughtNum)
|
||||
.setBuyCount(boughtNum)
|
||||
.addGoodsList(ShopGoodsOuterClass.ShopGoods.newBuilder()
|
||||
.mergeFrom(sg)
|
||||
.setBoughtNum(boughtNum)
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package emu.grasscutter.server.packet.send;
|
||||
|
||||
import emu.grasscutter.Grasscutter;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.game.entity.EntityVehicle;
|
||||
import emu.grasscutter.game.props.FightProperty;
|
||||
@@ -9,6 +8,7 @@ import emu.grasscutter.game.entity.GameEntity;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
|
||||
import emu.grasscutter.net.proto.VehicleInteractTypeOuterClass;
|
||||
import emu.grasscutter.net.proto.VehicleMemberOuterClass.VehicleMember;
|
||||
import emu.grasscutter.net.proto.CreateVehicleRspOuterClass.CreateVehicleRsp;
|
||||
|
||||
@@ -16,9 +16,6 @@ import emu.grasscutter.utils.Position;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
import static emu.grasscutter.net.proto.VehicleInteractTypeOuterClass.VehicleInteractType.VEHICLE_INTERACT_OUT;
|
||||
|
||||
public class PacketCreateVehicleRsp extends BasePacket {
|
||||
|
||||
public PacketCreateVehicleRsp(Player player, int vehicleId, int pointId, Position pos, Position rot) {
|
||||
@@ -36,7 +33,7 @@ public class PacketCreateVehicleRsp extends BasePacket {
|
||||
List<VehicleMember> vehicleMembers = ((EntityVehicle) entity).getVehicleMembers().stream().toList();
|
||||
|
||||
vehicleMembers.stream().forEach(vehicleMember -> {
|
||||
player.getScene().broadcastPacket(new PacketVehicleInteractRsp(((EntityVehicle) entity), vehicleMember, VEHICLE_INTERACT_OUT));
|
||||
player.getScene().broadcastPacket(new PacketVehicleInteractRsp(((EntityVehicle) entity), vehicleMember, VehicleInteractTypeOuterClass.VehicleInteractType.VEHICLE_INTERACT_TYPE_OUT));
|
||||
});
|
||||
|
||||
player.getScene().killEntity(entity, 0);
|
||||
|
||||
@@ -13,7 +13,7 @@ public class PacketDungeonChallengeFinishNotify extends BasePacket {
|
||||
DungeonChallengeFinishNotify proto = DungeonChallengeFinishNotify.newBuilder()
|
||||
.setChallengeIndex(challenge.getChallengeIndex())
|
||||
.setIsSuccess(challenge.isSuccess())
|
||||
.setUnk1(2)
|
||||
.setChallengeRecordType(2)
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
|
||||
@@ -29,10 +29,10 @@ public class PacketDungeonSettleNotify extends BasePacket {
|
||||
) {
|
||||
super(PacketOpcodes.DungeonSettleNotify);
|
||||
|
||||
var continueStatus = TowerLevelEndNotify.ContinueStateType.CONTINUE_STATE_CAN_NOT_CONTINUE_VALUE;
|
||||
var continueStatus = TowerLevelEndNotify.ContinueStateType.CONTINUE_STATE_TYPE_CAN_NOT_CONTINUE_VALUE;
|
||||
if(challenge.isSuccess() && canJump){
|
||||
continueStatus = hasNextLevel ? TowerLevelEndNotify.ContinueStateType.CONTINUE_STATE_CAN_ENTER_NEXT_LEVEL_VALUE
|
||||
: TowerLevelEndNotify.ContinueStateType.CONTINUE_STATE_CAN_ENTER_NEXT_FLOOR_VALUE;
|
||||
continueStatus = hasNextLevel ? TowerLevelEndNotify.ContinueStateType.CONTINUE_STATE_TYPE_CAN_ENTER_NEXT_LEVEL_VALUE
|
||||
: TowerLevelEndNotify.ContinueStateType.CONTINUE_STATE_TYPE_CAN_ENTER_NEXT_FLOOR_VALUE;
|
||||
}
|
||||
|
||||
var towerLevelEndNotify = TowerLevelEndNotify.newBuilder()
|
||||
|
||||
@@ -12,7 +12,7 @@ public class PacketEvtAvatarStandUpNotify extends BasePacket {
|
||||
EvtAvatarStandUpNotify proto = EvtAvatarStandUpNotify.newBuilder()
|
||||
.setEntityId(notify.getEntityId())
|
||||
.setDirection(notify.getDirection())
|
||||
.setPerformID(notify.getPerformID())
|
||||
.setPerformId(notify.getPerformId())
|
||||
.setChairId(notify.getChairId())
|
||||
.build();
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import emu.grasscutter.game.mail.Mail;
|
||||
import emu.grasscutter.game.player.Player;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.EquipParamOuterClass;
|
||||
import emu.grasscutter.net.proto.GetAllMailRspOuterClass.GetAllMailRsp;
|
||||
import emu.grasscutter.net.proto.ItemParamOuterClass;
|
||||
import emu.grasscutter.net.proto.MailDataOuterClass;
|
||||
@@ -23,9 +24,9 @@ public class PacketGetAllMailRsp extends BasePacket {
|
||||
GetAllMailRsp.Builder proto = GetAllMailRsp.newBuilder();
|
||||
|
||||
if (isGiftMail) {
|
||||
proto.setIsGiftMail(true);
|
||||
proto.setANKKGPJCINB(true);
|
||||
} else {
|
||||
proto.setIsGiftMail(false);
|
||||
proto.setANKKGPJCINB(false);
|
||||
|
||||
if (player.getAllMail().size() != 0) { // Make sure the player has mail
|
||||
List<MailData> mailDataList = new ArrayList<MailData>();
|
||||
@@ -43,10 +44,10 @@ public class PacketGetAllMailRsp extends BasePacket {
|
||||
|
||||
for (Mail.MailItem item : message.itemList) {
|
||||
MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder();
|
||||
ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder();
|
||||
EquipParamOuterClass.EquipParam.Builder itemParam = EquipParamOuterClass.EquipParam.newBuilder();
|
||||
itemParam.setItemId(item.itemId);
|
||||
itemParam.setCount(item.itemCount);
|
||||
mailItem.setItemParam(itemParam.build());
|
||||
itemParam.setItemNum(item.itemCount);
|
||||
mailItem.setEquipParam(itemParam.build());
|
||||
|
||||
mailItems.add(mailItem.build());
|
||||
}
|
||||
@@ -60,7 +61,7 @@ public class PacketGetAllMailRsp extends BasePacket {
|
||||
mailData.setImportance(message.importance);
|
||||
mailData.setIsRead(message.isRead);
|
||||
mailData.setIsAttachmentGot(message.isAttachmentGot);
|
||||
mailData.setStateValue(1);
|
||||
mailData.setBHCAHLJIKFFValue(1);
|
||||
|
||||
mailDataList.add(mailData.build());
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ public class PacketGetPlayerFriendListRsp extends BasePacket {
|
||||
.setSignature(serverAccount.signature)
|
||||
.setLastActiveTime((int) (System.currentTimeMillis() / 1000f))
|
||||
.setNameCardId(serverAccount.nameCardId)
|
||||
.setOnlineState(FriendOnlineState.FRIEND_ONLINE)
|
||||
.setOnlineState(FriendOnlineState.FRIEND_ONLINE_STATE_ONLINE)
|
||||
.setParam(1)
|
||||
.setIsGameSource(true)
|
||||
.setPlatformType(PlatformTypeOuterClass.PlatformType.PC)
|
||||
.setPlatformType(PlatformTypeOuterClass.PlatformType.PLATFORM_TYPE_PC)
|
||||
.build();
|
||||
|
||||
GetPlayerFriendListRsp.Builder proto = GetPlayerFriendListRsp.newBuilder().addFriendList(serverFriend);
|
||||
|
||||
@@ -29,7 +29,7 @@ public class PacketGetWidgetSlotRsp extends BasePacket {
|
||||
|
||||
proto.addSlotList(
|
||||
WidgetSlotDataOuterClass.WidgetSlotData.newBuilder()
|
||||
.setTag(WidgetSlotTagOuterClass.WidgetSlotTag.WIDGET_SLOT_ATTACH_AVATAR)
|
||||
.setTag(WidgetSlotTagOuterClass.WidgetSlotTag.WIDGET_SLOT_TAG_ATTACH_AVATAR)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
@@ -37,10 +37,10 @@ public class PacketMailChangeNotify extends BasePacket {
|
||||
|
||||
for (Mail.MailItem item : message.itemList) {
|
||||
MailItemOuterClass.MailItem.Builder mailItem = MailItemOuterClass.MailItem.newBuilder();
|
||||
ItemParamOuterClass.ItemParam.Builder itemParam = ItemParamOuterClass.ItemParam.newBuilder();
|
||||
EquipParamOuterClass.EquipParam.Builder itemParam = EquipParamOuterClass.EquipParam.newBuilder();
|
||||
itemParam.setItemId(item.itemId);
|
||||
itemParam.setCount(item.itemCount);
|
||||
mailItem.setItemParam(itemParam.build());
|
||||
itemParam.setItemNum(item.itemCount);
|
||||
mailItem.setEquipParam(itemParam.build());
|
||||
|
||||
mailItems.add(mailItem.build());
|
||||
}
|
||||
@@ -54,7 +54,7 @@ public class PacketMailChangeNotify extends BasePacket {
|
||||
mailData.setImportance(message.importance);
|
||||
mailData.setIsRead(message.isRead);
|
||||
mailData.setIsAttachmentGot(message.isAttachmentGot);
|
||||
mailData.setStateValue(message.stateValue);
|
||||
mailData.setBHCAHLJIKFFValue(message.stateValue);
|
||||
|
||||
proto.addMailList(mailData.build());
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ public class PacketPlayerEnterSceneNotify extends BasePacket {
|
||||
.setSceneId(player.getSceneId())
|
||||
.setPos(player.getPos().toProto())
|
||||
.setSceneBeginTime(System.currentTimeMillis())
|
||||
.setType(EnterType.ENTER_SELF)
|
||||
.setType(EnterType.ENTER_TYPE_SELF)
|
||||
.setTargetUid(player.getUid())
|
||||
.setEnterSceneToken(player.getEnterSceneToken())
|
||||
.setWorldLevel(player.getWorldLevel())
|
||||
|
||||
@@ -18,7 +18,7 @@ public class PacketPlayerStoreNotify extends BasePacket {
|
||||
this.buildHeader(2);
|
||||
|
||||
PlayerStoreNotify.Builder p = PlayerStoreNotify.newBuilder()
|
||||
.setStoreType(StoreType.STORE_PACK)
|
||||
.setStoreType(StoreType.STORE_TYPE_PACK)
|
||||
.setWeightLimit(GAME_OPTIONS.inventoryLimits.all);
|
||||
|
||||
for (GameItem item : player.getInventory()) {
|
||||
|
||||
@@ -3,20 +3,59 @@ package emu.grasscutter.server.packet.send;
|
||||
import emu.grasscutter.net.packet.BasePacket;
|
||||
import emu.grasscutter.net.packet.PacketOpcodes;
|
||||
import emu.grasscutter.net.proto.PlayerWorldSceneInfoListNotifyOuterClass.PlayerWorldSceneInfoListNotify;
|
||||
import emu.grasscutter.net.proto.PlayerWorldSceneInfoOuterClass;
|
||||
import emu.grasscutter.net.proto.SceneUnlockInfoOuterClass.SceneUnlockInfo;
|
||||
|
||||
import static emu.grasscutter.net.proto.PlayerWorldSceneInfoOuterClass.*;
|
||||
|
||||
public class PacketPlayerWorldSceneInfoListNotify extends BasePacket {
|
||||
|
||||
public PacketPlayerWorldSceneInfoListNotify() {
|
||||
super(PacketOpcodes.PlayerWorldSceneInfoListNotify); // Rename opcode later
|
||||
|
||||
PlayerWorldSceneInfoListNotify proto = PlayerWorldSceneInfoListNotify.newBuilder()
|
||||
.addUnlockInfos(SceneUnlockInfo.newBuilder().setSceneId(1))
|
||||
.addUnlockInfos(SceneUnlockInfo.newBuilder().setSceneId(3).addSceneTagIdList(102).addSceneTagIdList(113).addSceneTagIdList(117))
|
||||
.addUnlockInfos(SceneUnlockInfo.newBuilder().setSceneId(4).addSceneTagIdList(106).addSceneTagIdList(109))
|
||||
.addUnlockInfos(SceneUnlockInfo.newBuilder().setSceneId(5))
|
||||
.addUnlockInfos(SceneUnlockInfo.newBuilder().setSceneId(6))
|
||||
.addUnlockInfos(SceneUnlockInfo.newBuilder().setSceneId(7))
|
||||
.addInfoList(
|
||||
PlayerWorldSceneInfo.newBuilder()
|
||||
.setSceneId(1)
|
||||
.setIsLocked(false)
|
||||
.build()
|
||||
)
|
||||
.addInfoList(
|
||||
PlayerWorldSceneInfo.newBuilder()
|
||||
.setSceneId(3)
|
||||
.setIsLocked(false)
|
||||
.addSceneTagIdList(102)
|
||||
.addSceneTagIdList(113)
|
||||
.addSceneTagIdList(117)
|
||||
.build()
|
||||
)
|
||||
.addInfoList(
|
||||
PlayerWorldSceneInfo.newBuilder()
|
||||
.setSceneId(4)
|
||||
.setIsLocked(false)
|
||||
.addSceneTagIdList(106)
|
||||
.addSceneTagIdList(109)
|
||||
.addSceneTagIdList(117)
|
||||
.build()
|
||||
)
|
||||
.addInfoList(
|
||||
PlayerWorldSceneInfo.newBuilder()
|
||||
.setSceneId(5)
|
||||
.setIsLocked(false)
|
||||
.build()
|
||||
)
|
||||
.addInfoList(
|
||||
PlayerWorldSceneInfo.newBuilder()
|
||||
.setSceneId(6)
|
||||
.setIsLocked(false)
|
||||
.build()
|
||||
)
|
||||
.addInfoList(
|
||||
PlayerWorldSceneInfo.newBuilder()
|
||||
.setSceneId(7)
|
||||
.setIsLocked(false)
|
||||
.build()
|
||||
)
|
||||
.build();
|
||||
|
||||
this.setData(proto);
|
||||
|
||||
@@ -17,7 +17,7 @@ public class PacketQueryCodexMonsterBeKilledNumRsp extends BasePacket {
|
||||
if(player.getCodex().getUnlockedAnimal().containsKey(animal)){
|
||||
proto.addCodexIdList(animal)
|
||||
.addBeKilledNumList(player.getCodex().getUnlockedAnimal().get(animal))
|
||||
.addBeKilledNumEmptyList(0);
|
||||
.addCHPBKCLKPCJ(0);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ public class PacketSceneEntityAppearNotify extends BasePacket {
|
||||
super(PacketOpcodes.SceneEntityAppearNotify, true);
|
||||
|
||||
SceneEntityAppearNotify.Builder proto = SceneEntityAppearNotify.newBuilder()
|
||||
.setAppearType(VisionType.VISION_BORN)
|
||||
.setAppearType(VisionType.VISION_TYPE_BORN)
|
||||
.addEntityList(entity.toProto());
|
||||
|
||||
this.setData(proto.build());
|
||||
|
||||
@@ -18,7 +18,7 @@ public class PacketStoreItemChangeNotify extends BasePacket {
|
||||
this();
|
||||
|
||||
StoreItemChangeNotify.Builder proto = StoreItemChangeNotify.newBuilder()
|
||||
.setStoreType(StoreType.STORE_PACK)
|
||||
.setStoreType(StoreType.STORE_TYPE_PACK)
|
||||
.addItemList(item.toProto());
|
||||
|
||||
this.setData(proto);
|
||||
@@ -28,7 +28,7 @@ public class PacketStoreItemChangeNotify extends BasePacket {
|
||||
this();
|
||||
|
||||
StoreItemChangeNotify.Builder proto = StoreItemChangeNotify.newBuilder()
|
||||
.setStoreType(StoreType.STORE_PACK);
|
||||
.setStoreType(StoreType.STORE_TYPE_PACK);
|
||||
|
||||
items.forEach(item -> proto.addItemList(item.toProto()));
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ public class PacketStoreItemDelNotify extends BasePacket {
|
||||
this();
|
||||
|
||||
StoreItemDelNotify.Builder proto = StoreItemDelNotify.newBuilder()
|
||||
.setStoreType(StoreType.STORE_PACK)
|
||||
.setStoreType(StoreType.STORE_TYPE_PACK)
|
||||
.addGuidList(item.getGuid());
|
||||
|
||||
this.setData(proto);
|
||||
@@ -28,7 +28,7 @@ public class PacketStoreItemDelNotify extends BasePacket {
|
||||
this();
|
||||
|
||||
StoreItemDelNotify.Builder proto = StoreItemDelNotify.newBuilder()
|
||||
.setStoreType(StoreType.STORE_PACK);
|
||||
.setStoreType(StoreType.STORE_TYPE_PACK);
|
||||
|
||||
items.stream().forEach(item -> proto.addGuidList(item.getGuid()));
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ public class PacketStoreWeightLimitNotify extends BasePacket {
|
||||
super(PacketOpcodes.StoreWeightLimitNotify);
|
||||
|
||||
StoreWeightLimitNotify p = StoreWeightLimitNotify.newBuilder()
|
||||
.setStoreType(StoreType.STORE_PACK)
|
||||
.setStoreType(StoreType.STORE_TYPE_PACK)
|
||||
.setWeightLimit(INVENTORY_LIMITS.all)
|
||||
.setWeaponCountLimit(INVENTORY_LIMITS.weapons)
|
||||
.setReliquaryCountLimit(INVENTORY_LIMITS.relics)
|
||||
|
||||
@@ -31,10 +31,10 @@ public class PacketVehicleInteractRsp extends BasePacket {
|
||||
proto.setMember(vehicleMember);
|
||||
|
||||
switch(interactType){
|
||||
case VEHICLE_INTERACT_IN -> {
|
||||
case VEHICLE_INTERACT_TYPE_IN -> {
|
||||
((EntityVehicle) vehicle).getVehicleMembers().add(vehicleMember);
|
||||
}
|
||||
case VEHICLE_INTERACT_OUT -> {
|
||||
case VEHICLE_INTERACT_TYPE_OUT -> {
|
||||
((EntityVehicle) vehicle).getVehicleMembers().remove(vehicleMember);
|
||||
}
|
||||
default -> {}
|
||||
@@ -53,10 +53,10 @@ public class PacketVehicleInteractRsp extends BasePacket {
|
||||
proto.setMember(vehicleMember);
|
||||
|
||||
switch(interactType){
|
||||
case VEHICLE_INTERACT_IN -> {
|
||||
case VEHICLE_INTERACT_TYPE_IN -> {
|
||||
vehicle.getVehicleMembers().add(vehicleMember);
|
||||
}
|
||||
case VEHICLE_INTERACT_OUT -> {
|
||||
case VEHICLE_INTERACT_TYPE_OUT -> {
|
||||
vehicle.getVehicleMembers().remove(vehicleMember);
|
||||
}
|
||||
default -> {}
|
||||
|
||||
Reference in New Issue
Block a user