Implement unique key generation for weapon grants to prevent overwrites

This commit is contained in:
Ilya Groshev
2026-04-16 16:07:56 +03:00
parent cbc052c3ed
commit ef8a241a0a
5 changed files with 27 additions and 13 deletions
+5 -5
View File
@@ -291,11 +291,11 @@ func (s *GachaServiceServer) Draw(ctx context.Context, req *pb.DrawRequest) (*pb
bs := updatedUser.Gacha.BannerStates[entry.GachaId]
nextGacha := toProtoGacha(*entry, &bs)
diff := userdata.BuildDiffFromTables(userdata.SelectTables(
userdata.FullClientTableMap(updatedUser),
gachaDiffTables,
))
userdata.AddWeaponStoryDiff(diff, updatedUser, s.handler.Granter.DrainChangedStoryWeaponIds())
changedStoryIds := s.handler.Granter.DrainChangedStoryWeaponIds()
diffOrder := append(gachaDiffTables, "IUserWeaponStory")
allTables := userdata.FullClientTableMap(updatedUser)
diff := userdata.BuildDiffFromTablesOrdered(userdata.SelectTables(allTables, diffOrder), diffOrder)
userdata.AddWeaponStoryDiff(diff, updatedUser, changedStoryIds)
return &pb.DrawResponse{
NextGacha: nextGacha,