@j03fr0st/pubg-ts
Version:
A comprehensive TypeScript wrapper for the PUBG API
124 lines (105 loc) • 4.28 kB
text/typescript
import 'dotenv/config';
import { assetManager, PubgClient } from '../src/index';
async function assetExample() {
const client = new PubgClient({
apiKey: process.env.PUBG_API_KEY || 'your-api-key-here',
shard: 'pc-na',
});
try {
console.log('=== PUBG Asset Management Example ===\n');
// 1. Get user-friendly item names
console.log('1. Item Names:');
const itemNames = await Promise.all([
client.assets.getItemName('Item_Weapon_AK47_C'),
client.assets.getItemName('Item_Weapon_M416_C'),
client.assets.getItemName('Item_Heal_FirstAid_C'),
]);
console.log(' AK47 ID -> ', itemNames[0]);
console.log(' M416 ID -> ', itemNames[1]);
console.log(' FirstAid ID -> ', itemNames[2]);
console.log();
// 2. Get detailed item information
console.log('2. Detailed Item Info:');
const ak47Info = await client.assets.getItemInfo('Item_Weapon_AK47_C');
if (ak47Info) {
console.log(' AK47 Details:');
console.log(' Name:', ak47Info.name);
console.log(' Category:', ak47Info.category);
console.log(' Subcategory:', ak47Info.subcategory);
console.log(' Description:', ak47Info.description);
}
console.log();
// 3. Get vehicle information
console.log('3. Vehicle Names:');
const vehicleNames = await Promise.all([
client.assets.getVehicleName('BP_Motorbike_04_C'),
client.assets.getVehicleName('BP_Pickup_06_C'),
]);
console.log(' Motorbike ID -> ', vehicleNames[0]);
console.log(' Pickup ID -> ', vehicleNames[1]);
console.log();
// 4. Get asset URLs for images
console.log('4. Asset URLs:');
console.log(' AK47 Icon:', client.assets.getWeaponAssetUrl('Item_Weapon_AK47_C', 'icon'));
console.log(' M416 Image:', client.assets.getWeaponAssetUrl('Item_Weapon_M416_C', 'image'));
console.log(
' FirstAid Icon:',
client.assets.getEquipmentAssetUrl('Item_Heal_FirstAid_C', 'icon')
);
console.log(' Motorbike Icon:', client.assets.getVehicleAssetUrl('BP_Motorbike_04_C', 'icon'));
console.log();
// 5. Season information
console.log('5. Season Information:');
const currentSeason = await client.assets.getCurrentSeason();
if (currentSeason) {
console.log(' Current Season:');
console.log(' Name:', currentSeason.name);
console.log(' ID:', currentSeason.id);
console.log(' Active:', currentSeason.isActive);
console.log(' Start Date:', currentSeason.startDate);
console.log(' End Date:', currentSeason.endDate);
}
console.log();
// 6. Survival titles by rating
console.log('6. Survival Titles:');
const ratings = [1000, 1450, 1650, 1850];
for (const rating of ratings) {
const title = await client.assets.getSurvivalTitle(rating);
console.log(` Rating ${rating} -> ${title?.title || 'No title'}`);
}
console.log();
// 7. Using the standalone asset manager
console.log('7. Standalone Asset Manager:');
const standaloneItemName = await assetManager.getItemName('Item_Weapon_SCAR-L_C');
console.log(' SCAR-L ID -> ', standaloneItemName);
console.log();
// 8. Map names
console.log('8. Map Names:');
const mapIds = ['Baltic', 'Desert', 'Savage', 'Tiger'];
for (const mapId of mapIds) {
const mapName = await client.assets.getMapName(mapId);
console.log(` ${mapId} -> ${mapName}`);
}
console.log();
// 9. Humanize unknown items (fallback functionality)
console.log('9. Humanized Unknown Items:');
const unknownItems = ['Item_Weapon_Thompson_C', 'Item_Armor_Vest_05_C', 'BP_Van_02_C'];
for (const item of unknownItems) {
const name = await client.assets.getItemName(item);
console.log(` ${item} -> ${name}`);
}
console.log();
// 10. Cache management
console.log('10. Cache Management:');
console.log(' Clearing asset cache...');
client.assets.clearCache();
console.log(' Cache cleared!');
console.log();
console.log('=== Asset Example Complete ===');
} catch (error) {
console.error('Error in asset example:', error);
}
}
// Example usage (uncomment to run):
// assetExample().catch(console.error);
export { assetExample };