MultiServer: compat fix if checksum is not present (#1642)
This commit is contained in:
		
							parent
							
								
									e43bb99622
								
							
						
					
					
						commit
						f015cf4298
					
				| 
						 | 
				
			
			@ -761,7 +761,7 @@ async def on_client_connected(ctx: Context, client: Client):
 | 
			
		|||
        'datapackage_versions': {game: game_data["version"] for game, game_data
 | 
			
		||||
                                 in ctx.gamespackage.items() if game in games},
 | 
			
		||||
        'datapackage_checksums': {game: game_data["checksum"] for game, game_data
 | 
			
		||||
                                  in ctx.gamespackage.items() if game in games},
 | 
			
		||||
                                  in ctx.gamespackage.items() if game in games and "checksum" in game_data},
 | 
			
		||||
        'seed_name': ctx.seed_name,
 | 
			
		||||
        'time': time.time(),
 | 
			
		||||
    }])
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -94,7 +94,7 @@ class WebHostContext(Context):
 | 
			
		|||
 | 
			
		||||
        multidata = self.decompress(room.seed.multidata)
 | 
			
		||||
        game_data_packages = {}
 | 
			
		||||
        for game in list(multidata["datapackage"]):
 | 
			
		||||
        for game in list(multidata.get("datapackage", {})):
 | 
			
		||||
            game_data = multidata["datapackage"][game]
 | 
			
		||||
            if "checksum" in game_data:
 | 
			
		||||
                if self.gamespackage.get(game, {}).get("checksum") == game_data["checksum"]:
 | 
			
		||||
| 
						 | 
				
			
			@ -102,8 +102,9 @@ class WebHostContext(Context):
 | 
			
		|||
                    # games package could be dropped from static data once all rooms embed data package
 | 
			
		||||
                    del multidata["datapackage"][game]
 | 
			
		||||
                else:
 | 
			
		||||
                    data = Utils.restricted_loads(GameDataPackage.get(checksum=game_data["checksum"]).data)
 | 
			
		||||
                    game_data_packages[game] = data
 | 
			
		||||
                    row = GameDataPackage.get(checksum=game_data["checksum"])
 | 
			
		||||
                    if row:  # None if rolled on >= 0.3.9 but uploaded to <= 0.3.8. multidata should be complete
 | 
			
		||||
                        game_data_packages[game] = Utils.restricted_loads(row.data)
 | 
			
		||||
 | 
			
		||||
        return self._load(multidata, game_data_packages, True)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue