fix: reproducible oids for unlockAllSkins
This commit is contained in:
		
							parent
							
								
									53d5e7c3f0
								
							
						
					
					
						commit
						4b535a26db
					
				@ -158,12 +158,10 @@ export const inventoryController: RequestHandler = async (request, response) =>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    if (config.unlockAllSkins) {
 | 
					    if (config.unlockAllSkins) {
 | 
				
			||||||
        inventoryResponse.WeaponSkins = [];
 | 
					        inventoryResponse.WeaponSkins = [];
 | 
				
			||||||
        let i = 0;
 | 
					 | 
				
			||||||
        for (const uniqueName in ExportCustoms) {
 | 
					        for (const uniqueName in ExportCustoms) {
 | 
				
			||||||
            i++;
 | 
					 | 
				
			||||||
            inventoryResponse.WeaponSkins.push({
 | 
					            inventoryResponse.WeaponSkins.push({
 | 
				
			||||||
                ItemId: {
 | 
					                ItemId: {
 | 
				
			||||||
                    $oid: i.toString().padStart(24, "0")
 | 
					                    $oid: "ca70ca70ca70ca70" + catBreadHash(uniqueName).toString(16).padStart(8, "0")
 | 
				
			||||||
                },
 | 
					                },
 | 
				
			||||||
                ItemType: uniqueName
 | 
					                ItemType: uniqueName
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
@ -251,3 +249,13 @@ const resourceGetParent = (resourceName: string): string | undefined => {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    return ExportVirtuals[resourceName]?.parentName;
 | 
					    return ExportVirtuals[resourceName]?.parentName;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// This is FNV1a-32 except operating under modulus 2^31 because JavaScript is stinky and likes producing negative integers out of nowhere.
 | 
				
			||||||
 | 
					const catBreadHash = (name: string): number => {
 | 
				
			||||||
 | 
					    let hash = 2166136261;
 | 
				
			||||||
 | 
					    for (let i = 0; i != name.length; ++i) {
 | 
				
			||||||
 | 
					        hash = (hash ^ name.charCodeAt(i)) & 0x7fffffff;
 | 
				
			||||||
 | 
					        hash = (hash * 16777619) & 0x7fffffff;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return hash;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user