use steamid::SteamID;
use super::{SteamClient, UserPersona};
use crate::client::events::LicenseEntry;
use crate::types::{AccountInfo, EmailInfo, Limitations, VacStatus, WalletInfo};
impl SteamClient {
#[must_use]
pub fn is_logged_in(&self) -> bool {
self.steam_id.is_some()
}
#[must_use]
pub fn steam_id(&self) -> Option<SteamID> {
self.steam_id
}
#[must_use]
pub fn public_ip(&self) -> Option<String> {
self.account.read().public_ip.clone()
}
#[must_use]
pub fn cell_id(&self) -> Option<u32> {
self.account.read().cell_id
}
#[must_use]
pub fn vanity_url(&self) -> Option<String> {
self.account.read().vanity_url.clone()
}
#[must_use]
pub fn account_info(&self) -> Option<AccountInfo> {
self.account.read().info.clone()
}
#[must_use]
pub fn email_info(&self) -> Option<EmailInfo> {
self.account.read().email.clone()
}
#[must_use]
pub fn limitations(&self) -> Option<Limitations> {
self.account.read().limitations.clone()
}
#[must_use]
pub fn vac_status(&self) -> Option<VacStatus> {
self.account.read().vac.clone()
}
#[must_use]
pub fn wallet(&self) -> Option<WalletInfo> {
self.account.read().wallet.clone()
}
#[must_use]
pub fn licenses(&self) -> Vec<LicenseEntry> {
self.apps.read().licenses.clone()
}
#[must_use]
pub fn playing_app_ids(&self) -> Vec<u32> {
self.apps.read().playing_app_ids.clone()
}
#[must_use]
pub fn playing_blocked(&self) -> bool {
self.apps.read().playing_blocked
}
#[must_use]
pub fn friend_relationship(&self, steam_id: SteamID) -> Option<u32> {
self.social.read().friends.get(&steam_id).copied()
}
#[must_use]
pub fn friend_list(&self) -> Vec<(SteamID, u32)> {
self.social.read().friends.iter().map(|(sid, rel)| (*sid, *rel)).collect()
}
#[must_use]
pub fn persona(&self, steam_id: SteamID) -> Option<UserPersona> {
self.social.read().users.get(&steam_id).cloned()
}
#[must_use]
pub fn connection_count(&self) -> u32 {
self.connection_count
}
}