Clan Data
Representing a Steam Clan aka Steam Group
Like what your seeing?
Support us as a GitHub Sponsor and get instant access to all our assets, exclusive tools and assets, escalated support and issue tracking and our gratitude. These articles are made possible by our GitHub Sponsors ... become a sponsor today!
Introduction
using HeathenEngineering.SteamworksIntegration;
public struct ClanData : IEquatable<CSteamID>,
IEquatable<ClanData>,
IEquatable<ulong>,
IComparable<CSteamID>,
IComparable<ClanData>,
IComparable<ulong>
The clan structure is used by most of the features of the API.Clans interface. Its returned by GetClans and similar methods and is an input for most methods.
The Clan structure is interchangable with CSteamID and ulong
ClanData clan = new CSteamID(id);
CSteamID clanId = clan;
ulong clanIdValue = clan;
Clan clanCopy = clanIdValue;
Valve did a big update to Group chat and Friend chat and in so doing broke a very cool feature in "Clan Chat". You can still use Clan Chat but it is not the same chat that you see in the Steam client. there is at current no way to use the Steam client Friend chat features in the Steam API. If you use Clan Chat it will only work for users that join and chat through the Steam API not the user's who are using the Steam Client's Friend Chat feature. Note you can and probably should forgo using Clan chat in game and instead simply open the overlay to the friend chat when needed. We keep this present as in some cases it can be used as a "game" global chat, by joining the player to the game's offical "clan" aka "group" and showing that in game. Just remimber this will only be relevant for the players currently in game and is not the same as the chat seen in the Steam Client / Overlay
Fields and Attributes
SteamId
public CSteamID SteamId { get; set; }
The Steam API native CSteamID value for this
AccountId
public AccountID_t { get; set; }
The account ID segment of the full CSteamID, to understand more read this article.
FriendId
public uint FriendId { get; set; }
The underlying uint value of the AccountID_t segment of the CSteamID, to understand more read this article.
IsValid
public bool IsValid => get;
This indicates rather or not the underlying CSteamID is of the proper Universe and Type it does not indicate that it is a valid entry. E.g. this tells you if the data is of the right shape ... not that it equates to a valid entry in Steam client.
Icon
public Texture2D Icon => get;
Returns the loaded texture if any,
Name
public string Name => get;
Returns the display name of this clan localized to the local user if available.
Tag
public string Tag => get;
Returns the clan tag for this clan
Owner
public UserData Owner => get;
Returns the Steam user that owns this clan
Officers
public UserData[] Officers => get;
Returns a collection of the officers of this clan if visible to the user.
Number Of Members In Chat
public int NumberOfMembersInChat => get;
Returns the number of members in the chat, note for large chats Steam may not be able to fully iterate the members so for big clans consider this a 🤷♂️
Members In Chat
public UserData[] MembersInChat => get;
As much as Steam API is able to do so this will produce a collection of the user's in the chat.
Is Official Game Group
public bool IsOfficalGameGroup => get;
True if this clan is a game's official group / clan as opposed to being a user's clan / group. Note every game has an official "group" this is represented on Steam's backend as a "Clan" and includes chats, forums and other social network features.
Is Public
public bool IsPublic => get;
Is this clan a public clan or a private clan
Is User Owner
public bool IsUserOwner => get;
Is the local user the owner of this clan
Is User Officer
public bool IsUserOfficer => get;
Is the local user an officer of this clan, note this iterates the officers, its generally better to do this your self such as
var officers = clan.Officers;
if(officers.Any(p => p == UserData.Me))
{
//Yes the user is an officer
}
else
{
//No the user is not an officer ... or there are to many officers to properly iterate
}
Methods
Get
A set of static method for fetching the ClanData object based on various forms of the ID or to get a list of all clans the user is a member of
//Get all clans the user is a member of
public static ClanData[] Get();
//Get a clan by id info
public static ClanData Get(uint accountId)
public static ClanData Get(AccountID_t accountId)
public static ClanData Get(ulong id)
public static ClanData Get(CSteamID id)
Join Chat
public void JoinChat(Action<ClanChatRoom, bool> callback);
The JoinChat method will attempt to join the user to clan's chat room. The resulting callback will return a ClanChatRoom object indicating the state, providing access to the chat and being of use in other chat related methods.
Load Icon
public void LoadIcon(Action<Texture2D> callback)
Loads the icon if not already loaded, returns the icon once loaded
Last updated