pub struct Server { /* private fields */ }
Expand description
The main entry point into the steam client for servers.
This provides access to all of the steamworks api that servers can use.
Implementations§
Source§impl Server
impl Server
Sourcepub fn init(
ip: Ipv4Addr,
game_port: u16,
query_port: u16,
server_mode: ServerMode,
version: &str,
) -> Result<(Server, SingleClient<ServerManager>), SteamAPIInitError>
pub fn init( ip: Ipv4Addr, game_port: u16, query_port: u16, server_mode: ServerMode, version: &str, ) -> Result<(Server, SingleClient<ServerManager>), SteamAPIInitError>
Attempts to initialize the steamworks api and returns a server to access the rest of the api.
This should only ever have one instance per a program.
Currently the steamworks api doesn’t support IPv6.
§Errors
This can fail if:
-
The steam client isn’t running
-
The app ID of the game couldn’t be determined.
If the game isn’t being run through steam this can be provided by placing a
steam_appid.txt
with the ID inside in the current working directory -
The game isn’t running on the same user/level as the steam client
-
The user doesn’t own a license for the game.
-
The app ID isn’t completely set up.
Sourcepub fn register_callback<C, F>(&self, f: F) -> CallbackHandle<ServerManager>
pub fn register_callback<C, F>(&self, f: F) -> CallbackHandle<ServerManager>
Registers the passed function as a callback for the given type.
The callback will be run on the thread that run_callbacks
is called when the event arrives.
Sourcepub fn authentication_session_ticket_with_steam_id(
&self,
steam_id: SteamId,
) -> (AuthTicket, Vec<u8>)
pub fn authentication_session_ticket_with_steam_id( &self, steam_id: SteamId, ) -> (AuthTicket, Vec<u8>)
Retrieve an authentication session ticket that can be sent to an entity that wishes to verify you.
This ticket should not be reused.
When creating ticket for use by the web API you should wait
for the AuthSessionTicketResponse
event before trying to
use the ticket.
When the multiplayer session terminates you must call
cancel_authentication_ticket
pub fn authentication_session_ticket( &self, network_identity: NetworkingIdentity, ) -> (AuthTicket, Vec<u8>)
Sourcepub fn cancel_authentication_ticket(&self, ticket: AuthTicket)
pub fn cancel_authentication_ticket(&self, ticket: AuthTicket)
Cancels an authentication session ticket received from
authentication_session_ticket
.
This should be called when you are no longer playing with the specified entity.
Sourcepub fn begin_authentication_session(
&self,
user: SteamId,
ticket: &[u8],
) -> Result<(), AuthSessionError>
pub fn begin_authentication_session( &self, user: SteamId, ticket: &[u8], ) -> Result<(), AuthSessionError>
Authenticate the ticket from the steam ID to make sure it is valid and not reused.
A ValidateAuthTicketResponse
callback will be fired if
the entity goes offline or cancels the ticket.
When the multiplayer session terminates you must call
end_authentication_session
Sourcepub fn end_authentication_session(&self, user: SteamId)
pub fn end_authentication_session(&self, user: SteamId)
Ends an authentication session that was started with
begin_authentication_session
.
This should be called when you are no longer playing with the specified entity.
Sourcepub fn set_product(&self, product: &str)
pub fn set_product(&self, product: &str)
Sets the game product identifier. This is currently used by the master server for version checking purposes. Converting the games app ID to a string for this is recommended.
This is required for all game servers and can only be set before calling log_on() or log_on_anonymous().
Sourcepub fn set_game_description(&self, desc: &str)
pub fn set_game_description(&self, desc: &str)
Sets the game description. Setting this to the full name of your game is recommended.
This is required for all game servers and can only be set before calling log_on() or log_on_anonymous().
Sourcepub fn set_dedicated_server(&self, dedicated: bool)
pub fn set_dedicated_server(&self, dedicated: bool)
Sets whether this server is dedicated or a listen server.
Sourcepub fn log_on_anonymous(&self)
pub fn log_on_anonymous(&self)
Login to a generic anonymous account
Sourcepub fn enable_heartbeats(&self, active: bool)
pub fn enable_heartbeats(&self, active: bool)
If active, updates the master server with this server’s presence so players can find it via the steam matchmaking/server browser interfaces.
Sourcepub fn set_mod_dir(&self, mod_dir: &str)
pub fn set_mod_dir(&self, mod_dir: &str)
If your game is a “mod,” pass the string that identifies it. The default is an empty string, meaning this application is the original game, not a mod.
Sourcepub fn set_map_name(&self, map_name: &str)
pub fn set_map_name(&self, map_name: &str)
Set name of map to report in the server browser
Sourcepub fn set_server_name(&self, server_name: &str)
pub fn set_server_name(&self, server_name: &str)
Set the name of server as it will appear in the server browser
Sourcepub fn set_max_players(&self, count: i32)
pub fn set_max_players(&self, count: i32)
Sets the maximum number of players allowed on the server at once.
This value may be changed at any time.
Sourcepub fn ugc(&self) -> UGC<ServerManager>
pub fn ugc(&self) -> UGC<ServerManager>
Returns an accessor to the steam UGC interface (steam workshop)
For this to work properly, you need to call UGC::init_for_game_server()
!
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Server
impl RefUnwindSafe for Server
impl Unpin for Server
impl UnwindSafe for Server
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.