mirror of
https://github.com/Facepunch/Facepunch.Steamworks.git
synced 2025-01-24 12:38:00 +03:00
Update README.md
This commit is contained in:
parent
650fb08522
commit
d4843adcab
131
README.md
131
README.md
@ -17,12 +17,22 @@ C# is meant to make things easier. So lets try to wrap it up in a way that makes
|
|||||||
|
|
||||||
## What
|
## What
|
||||||
|
|
||||||
So say you want to print a list of your friends?
|
### Get your own information
|
||||||
|
|
||||||
```csharp
|
```csharp
|
||||||
foreach ( var friend in client.Friends.All )
|
SteamClient.SteamId // Your SteamId
|
||||||
|
SteamClient.Name // Your Name
|
||||||
|
```
|
||||||
|
|
||||||
|
### View your friends list
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
foreach ( var friend in SteamFriends.GetFriends() )
|
||||||
{
|
{
|
||||||
Console.WriteLine( "{0}: {1}", friend.Id, friend.Name );
|
Console.WriteLine( "{friend.Id}: {friend.Name}" );
|
||||||
|
Console.WriteLine( "{friend.IsOnline} / {friend.SteamLevel}" );
|
||||||
|
|
||||||
|
friend.SendMessage( "Hello Friend" );
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -31,11 +41,122 @@ But what if you want to get a list of friends playing the same game that we're p
|
|||||||
```csharp
|
```csharp
|
||||||
foreach ( var friend in client.Friends.All.Where( x => x.IsPlayingThisGame ) )
|
foreach ( var friend in client.Friends.All.Where( x => x.IsPlayingThisGame ) )
|
||||||
{
|
{
|
||||||
Console.WriteLine( "{0}: {1}", friend.Id, friend.Name );
|
//
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
You can view examples of everything in the Facepunch.Steamworks.Test project.
|
### App Info
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
Console.WriteLine( SteamApps.GameLanguage ); // Print the current game language
|
||||||
|
var installDir = SteamApps.AppInstallDir( 4000 ); // Get the path to the Garry's Mod install folder
|
||||||
|
|
||||||
|
var fileinfo = await SteamApps.GetFileDetailsAsync( "hl2.exe" ); // async get file details
|
||||||
|
DoSomething( fileinfo.SizeInBytes, fileinfo.Sha1 );
|
||||||
|
```
|
||||||
|
|
||||||
|
### Get Avatars
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var image = await SteamFriends.GetLargeAvatarAsync( steamid );
|
||||||
|
if ( !image.HasValue ) return DefaultImage;
|
||||||
|
|
||||||
|
return MakeTextureFromRGBA( image.Data, image.Width, image.Height );
|
||||||
|
```
|
||||||
|
|
||||||
|
### Get a list of servers
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
using ( var list = new ServerList.Internet() )
|
||||||
|
{
|
||||||
|
list.AddFilter( "map", "de_dust" );
|
||||||
|
await list.RunQueryAsync();
|
||||||
|
|
||||||
|
foreach ( var server in list.Responsive )
|
||||||
|
{
|
||||||
|
Console.WriteLine( $"{server.Address} {server.Name}" );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Achievements
|
||||||
|
|
||||||
|
List them
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
foreach ( var a in SteamUserStats.Achievements )
|
||||||
|
{
|
||||||
|
Console.WriteLine( $"{a.Name} ({a.State}})" );
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Unlock them
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
var ach = new Achievement( "GM_PLAYED_WITH_GARRY" );
|
||||||
|
ach.Trigger();
|
||||||
|
```
|
||||||
|
|
||||||
|
### Voice
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
|
||||||
|
SteamUser.VoiceRecord = KeyDown( "V" );
|
||||||
|
|
||||||
|
if ( SteamUser.HasVoiceData )
|
||||||
|
{
|
||||||
|
var bytesrwritten = SteamUser.ReadVoiceData( stream );
|
||||||
|
// Send Stream Data To Server or Something
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Auth
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
|
||||||
|
// Client sends ticket data to server somehow
|
||||||
|
var ticket = SteamUser.GetAuthSessionTicket();
|
||||||
|
|
||||||
|
|
||||||
|
// server listens to event
|
||||||
|
SteamServer.OnValidateAuthTicketResponse += ( steamid, ownerid, rsponse ) =>
|
||||||
|
{
|
||||||
|
if ( rsponse == AuthResponse.OK )
|
||||||
|
TellUserTheyCanBeOnServer( steamid );
|
||||||
|
else
|
||||||
|
KickUser( steamid );
|
||||||
|
};
|
||||||
|
|
||||||
|
// server gets ticket data from client, calls this function.. which either returns
|
||||||
|
// false straight away, or will issue a TicketResponse.
|
||||||
|
if ( !SteamServer.BeginAuthSession( ticketData, clientSteamId ) )
|
||||||
|
{
|
||||||
|
KickUser( clientSteamId );
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Client is leaving, cancels their ticket OnValidateAuth is called on the server again
|
||||||
|
// this time with AuthResponse.AuthTicketCanceled
|
||||||
|
//
|
||||||
|
ticket.Cancel();
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Utils
|
||||||
|
|
||||||
|
```csharp
|
||||||
|
SteamUtils.SecondsSinceAppActive;
|
||||||
|
SteamUtils.SecondsSinceComputerActive;
|
||||||
|
SteamUtils.IpCountry;
|
||||||
|
SteamUtils.UsingBatteryPower;
|
||||||
|
SteamUtils.CurrentBatteryPower;
|
||||||
|
SteamUtils.AppId;
|
||||||
|
SteamUtils.IsOverlayEnabled;
|
||||||
|
SteamUtils.IsSteamRunningInVR;
|
||||||
|
SteamUtils.IsSteamInBigPictureMode;
|
||||||
|
```
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user