summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/Philipp15b/go-steam/trade/trade.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/Philipp15b/go-steam/trade/trade.go')
-rw-r--r--vendor/github.com/Philipp15b/go-steam/trade/trade.go122
1 files changed, 0 insertions, 122 deletions
diff --git a/vendor/github.com/Philipp15b/go-steam/trade/trade.go b/vendor/github.com/Philipp15b/go-steam/trade/trade.go
deleted file mode 100644
index 4889f407..00000000
--- a/vendor/github.com/Philipp15b/go-steam/trade/trade.go
+++ /dev/null
@@ -1,122 +0,0 @@
-package trade
-
-import (
- "errors"
- "time"
-
- "github.com/Philipp15b/go-steam/steamid"
- "github.com/Philipp15b/go-steam/trade/tradeapi"
-)
-
-const pollTimeout = time.Second
-
-type Trade struct {
- ThemId steamid.SteamId
-
- MeReady, ThemReady bool
-
- lastPoll time.Time
- queuedEvents []interface{}
- api *tradeapi.Trade
-}
-
-func New(sessionId, steamLogin, steamLoginSecure string, other steamid.SteamId) *Trade {
- return &Trade{
- other,
- false, false,
- time.Unix(0, 0),
- nil,
- tradeapi.New(sessionId, steamLogin, steamLoginSecure, other),
- }
-}
-
-func (t *Trade) Version() uint {
- return t.api.Version
-}
-
-// Returns all queued events and removes them from the queue without performing a HTTP request, like Poll() would.
-func (t *Trade) Events() []interface{} {
- qe := t.queuedEvents
- t.queuedEvents = nil
- return qe
-}
-
-func (t *Trade) onStatus(status *tradeapi.Status) error {
- if !status.Success {
- return errors.New("trade: returned status not successful! error message: " + status.Error)
- }
-
- if status.NewVersion {
- t.api.Version = status.Version
-
- t.MeReady = status.Me.Ready == true
- t.ThemReady = status.Them.Ready == true
- }
-
- switch status.TradeStatus {
- case tradeapi.TradeStatus_Complete:
- t.addEvent(&TradeEndedEvent{TradeEndReason_Complete})
- case tradeapi.TradeStatus_Cancelled:
- t.addEvent(&TradeEndedEvent{TradeEndReason_Cancelled})
- case tradeapi.TradeStatus_Timeout:
- t.addEvent(&TradeEndedEvent{TradeEndReason_Timeout})
- case tradeapi.TradeStatus_Failed:
- t.addEvent(&TradeEndedEvent{TradeEndReason_Failed})
- case tradeapi.TradeStatus_Open:
- // nothing
- default:
- // ignore too
- }
-
- t.updateEvents(status.Events)
- return nil
-}
-
-func (t *Trade) updateEvents(events tradeapi.EventList) {
- if len(events) == 0 {
- return
- }
-
- var lastLogPos uint
- for i, event := range events {
- if i < t.api.LogPos {
- continue
- }
- if event.SteamId != t.ThemId {
- continue
- }
-
- if lastLogPos < i {
- lastLogPos = i
- }
-
- switch event.Action {
- case tradeapi.Action_AddItem:
- t.addEvent(&ItemAddedEvent{newItem(event)})
- case tradeapi.Action_RemoveItem:
- t.addEvent(&ItemRemovedEvent{newItem(event)})
- case tradeapi.Action_Ready:
- t.ThemReady = true
- t.addEvent(new(ReadyEvent))
- case tradeapi.Action_Unready:
- t.ThemReady = false
- t.addEvent(new(UnreadyEvent))
- case tradeapi.Action_SetCurrency:
- t.addEvent(&SetCurrencyEvent{
- newCurrency(event),
- event.OldAmount,
- event.NewAmount,
- })
- case tradeapi.Action_ChatMessage:
- t.addEvent(&ChatEvent{
- event.Text,
- })
- }
- }
-
- t.api.LogPos = uint(lastLogPos) + 1
-}
-
-func (t *Trade) addEvent(event interface{}) {
- t.queuedEvents = append(t.queuedEvents, event)
-}