SteamRE / SteamKit

SteamKit2 is a .NET library designed to interoperate with Valve's Steam network. It aims to provide a simple, yet extensible, interface to perform various actions on the network.
GNU Lesser General Public License v2.1
2.59k stars 495 forks source link

Friend list API is clunky #158

Open paralin opened 9 years ago

paralin commented 9 years ago

Why do you force the API to simply get count and access by index? Is there any better way, perhaps by returning the ToArray value of the friend list?

voided commented 9 years ago

Yea, the friends API is pretty awful (and even normal usage has a tendency for data races) and has been the topic of should-be-refactored multiple times. It needs a well planned out redesign before we can do any changes (along with considerations for how we'd obsolete the existing API).

There's nothing stopping anybody from writing up their own SteamFriends replacement in their own projects, however.

JustArchi commented 9 years ago

Yep, for example it's totally possible that 2 SteamFriends.SendChatRoomMessage calls will actually result in message 2 being sent before message 1. I had to implement my own channel message queue that sends 1 request every 300ms.

However, it works properly most of the time. There's always room for improvement.