mirror of
https://github.com/cwinfo/matterbridge.git
synced 2025-06-27 14:39:24 +00:00
Add vendor (steam)
This commit is contained in:
83
vendor/github.com/Philipp15b/go-steam/trading.go
generated
vendored
Normal file
83
vendor/github.com/Philipp15b/go-steam/trading.go
generated
vendored
Normal file
@ -0,0 +1,83 @@
|
||||
package steam
|
||||
|
||||
import (
|
||||
. "github.com/Philipp15b/go-steam/protocol"
|
||||
. "github.com/Philipp15b/go-steam/protocol/protobuf"
|
||||
. "github.com/Philipp15b/go-steam/protocol/steamlang"
|
||||
. "github.com/Philipp15b/go-steam/steamid"
|
||||
"github.com/golang/protobuf/proto"
|
||||
)
|
||||
|
||||
// Provides access to the Steam client's part of Steam Trading, that is bootstrapping
|
||||
// the trade.
|
||||
// The trade itself is not handled by the Steam client itself, but it's a part of
|
||||
// the Steam website.
|
||||
//
|
||||
// You'll receive a TradeProposedEvent when a friend proposes a trade. You can accept it with
|
||||
// the RespondRequest method. You can request a trade yourself with RequestTrade.
|
||||
type Trading struct {
|
||||
client *Client
|
||||
}
|
||||
|
||||
type TradeRequestId uint32
|
||||
|
||||
func (t *Trading) HandlePacket(packet *Packet) {
|
||||
switch packet.EMsg {
|
||||
case EMsg_EconTrading_InitiateTradeProposed:
|
||||
msg := new(CMsgTrading_InitiateTradeRequest)
|
||||
packet.ReadProtoMsg(msg)
|
||||
t.client.Emit(&TradeProposedEvent{
|
||||
RequestId: TradeRequestId(msg.GetTradeRequestId()),
|
||||
Other: SteamId(msg.GetOtherSteamid()),
|
||||
})
|
||||
case EMsg_EconTrading_InitiateTradeResult:
|
||||
msg := new(CMsgTrading_InitiateTradeResponse)
|
||||
packet.ReadProtoMsg(msg)
|
||||
t.client.Emit(&TradeResultEvent{
|
||||
RequestId: TradeRequestId(msg.GetTradeRequestId()),
|
||||
Response: EEconTradeResponse(msg.GetResponse()),
|
||||
Other: SteamId(msg.GetOtherSteamid()),
|
||||
|
||||
NumDaysSteamGuardRequired: msg.GetSteamguardRequiredDays(),
|
||||
NumDaysNewDeviceCooldown: msg.GetNewDeviceCooldownDays(),
|
||||
DefaultNumDaysPasswordResetProbation: msg.GetDefaultPasswordResetProbationDays(),
|
||||
NumDaysPasswordResetProbation: msg.GetPasswordResetProbationDays(),
|
||||
})
|
||||
case EMsg_EconTrading_StartSession:
|
||||
msg := new(CMsgTrading_StartSession)
|
||||
packet.ReadProtoMsg(msg)
|
||||
t.client.Emit(&TradeSessionStartEvent{
|
||||
Other: SteamId(msg.GetOtherSteamid()),
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// Requests a trade. You'll receive a TradeResultEvent if the request fails or
|
||||
// if the friend accepted the trade.
|
||||
func (t *Trading) RequestTrade(other SteamId) {
|
||||
t.client.Write(NewClientMsgProtobuf(EMsg_EconTrading_InitiateTradeRequest, &CMsgTrading_InitiateTradeRequest{
|
||||
OtherSteamid: proto.Uint64(uint64(other)),
|
||||
}))
|
||||
}
|
||||
|
||||
// Responds to a TradeProposedEvent.
|
||||
func (t *Trading) RespondRequest(requestId TradeRequestId, accept bool) {
|
||||
var resp uint32
|
||||
if accept {
|
||||
resp = 0
|
||||
} else {
|
||||
resp = 1
|
||||
}
|
||||
|
||||
t.client.Write(NewClientMsgProtobuf(EMsg_EconTrading_InitiateTradeResponse, &CMsgTrading_InitiateTradeResponse{
|
||||
TradeRequestId: proto.Uint32(uint32(requestId)),
|
||||
Response: proto.Uint32(resp),
|
||||
}))
|
||||
}
|
||||
|
||||
// This cancels a request made with RequestTrade.
|
||||
func (t *Trading) CancelRequest(other SteamId) {
|
||||
t.client.Write(NewClientMsgProtobuf(EMsg_EconTrading_CancelTradeRequest, &CMsgTrading_CancelTradeRequest{
|
||||
OtherSteamid: proto.Uint64(uint64(other)),
|
||||
}))
|
||||
}
|
Reference in New Issue
Block a user