2017-01-19 2 views
1

ich eine NodeJS Dampf bietet meinen CS entwickelt habe: Glücksspiel-Website gehen, ich nur Problem. Ich möchte, dass der Bot nur CS: GO Objekte/Skins akzeptiert (CS: GO appID ist). Ich weiß, dass es etwas mit der appID zu tun hat.Dampf NodeJS nimmt nur Trades, die X appID Artikel haben

Ich verwende node-steam-tradeoffer-manager für den Handel bietet.

Mein aktueller Code, der die Geschäfte übernimmt:

manager.on('newOffer', (offer) => { 
var userID = offer.partner.getSteamID64(); 
var offerID = offer.id; 

var prefix = time + " || " + 'Trade: #' + offerID + ' || '; 

console.log(prefix + "from " + userID); 

offer.getUserDetails((err, me, them) => { 
    if (err) { 
    console.log(err); 
    return; 
    } 

    if (them.escrowDays > 0) { 
    console.log(prefix + 'User has escrow! Declining!'); 

    offer.decline((err) => { 
    if (err) { 
    console.log(prefix + 'Error declining offer!'); 
    return; 
    } 
    }); 
    } else { 
    if (offer.itemsToGive.length == 0) { 
    var userAmount = priceItemsInOffer(offer.itemsToReceive) * 1000; 

     if(userAmount < config['minDeposit']){ 
      console.log(prefix + "User deposit skin that costs less than 100 Credits!"); 

     offer.decline((err) => { 
     if (err) { 
     console.log(prefix + 'Error declining offer!'); 
     return; 
     } 
     }); 

     } 
     else{ 
    console.log(prefix + 'User deposited ' + userAmount); 

    var insertDeposit0 = { 
        user: userID, 
        amount: userAmount, 
        offerID: offerID, 
        status: 0, 
        time: time 
       }; 
    var query = connection.query('INSERT INTO deposits SET ?', insertDeposit0, function(err, result) { 
     // Neat! 
    }); 

    offer.accept((err, status) => { 
    if (err) { 
     console.log(prefix + 'Error accepting offer!' + err.message); 

     connection.query('UPDATE deposits SET ? WHERE ?', [{ status: 1 }, { offerID: offerID }]) // 1 ERROR ACCEPTING 

     return; 
    } else { 
     community.checkConfirmations(); 

     console.log(prefix + "Accepted!"); 

      connection.query('UPDATE deposits SET ? WHERE ?', [{ status: 2 }, { offerID: offerID }]) // 2 ACCEPTED 
    } 
    }); 
    } 
    } else if (offer.itemsToGive.length > 0) { 
    console.log(prefix + "User asked skins from us! Declining offer."); 

    offer.decline((err) => { 
    if (err) { 
     log(prefix + 'Error declining offer!'); 
     return; 
    } 
    }); 
    } 
    } 
}); 
}); 

Antwort

0

Da Sie verwenden Knoten-Dampf-tradeoffer-Manager, Sie sind in der Regel die Interaktion mit CEconItem:

https://github.com/DoctorMcKay/node-steam-tradeoffer-manager/wiki/EconItem https://github.com/DoctorMcKay/node-steamcommunity/wiki/CEconItem

jede CEconItem enthält appid Eigenschaft:

DoctorMcKay/node-Steamcommunity/wiki/CEconItem # appid diese zusammen (ich habe nicht genug rep haben, um mehr als 2 Links zu posten)

also lasst uns sagen:

  • offer.itemsToGive - ist ein Array von CEconItem (verkaufen)
  • offer.itemsToReceive - gleiche (aber ihre)

Um zu überprüfen, ob alle Elemente von CS sind: GO, können Sie einfach tun:

const allItemsAreFromCSGO = offer.itemsToReceive.every(item => item.appid === 570); 
Verwandte Themen