1
0
mirror of https://github.com/alliedmodders/hl2sdk.git synced 2025-09-19 20:16:10 +08:00
Files
hl2sdk/public/iserver.h
2025-02-19 18:36:16 -05:00

72 lines
3.0 KiB
C++

//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
//=============================================================================//
#ifndef ISERVER_H
#define ISERVER_H
#ifdef _WIN32
#pragma once
#endif
#include <inetmsghandler.h>
#include <bitvec.h>
#include <const.h>
#include <tier1/netadr.h>
class INetMessage;
class IRecipientFilter;
class IClient;
typedef struct player_info_s player_info_t;
abstract_class IServer : public IConnectionlessPacketHandler
{
public:
virtual ~IServer() {}
virtual int GetNumClients( void ) const = 0; // returns current number of clients
virtual int GetNumProxies( void ) const = 0; // returns number of attached HLTV proxies
virtual int GetNumFakeClients() const = 0; // returns number of fake clients/bots
virtual int GetMaxClients( void ) const = 0; // returns current client limit
virtual IClient *GetClient( int index ) = 0; // returns interface to client
virtual int GetClientCount() const = 0; // returns number of clients slots (used & unused)
virtual netadr_t GetPublicAddress( void ) const = 0; // returns public IP:port that should be advertised in server browser, etc. (If any!)
virtual bool IsUsingFakeIP() const = 0; // Returns true if we're using FakeIP. (If so, the value will be returned by GetPublicAddress(). note that it might be invalid if FakeIP allocation hasn't finished yet!"
virtual int GetLocalUDPPort( void ) const = 0; // returns current UDP port we are actually listening on, if any
virtual float GetTime( void ) const = 0; // returns game world time
virtual int GetTick( void ) const = 0; // returns game world tick
virtual float GetTickInterval( void ) const = 0; // tick interval in seconds
virtual const char *GetName( void ) const = 0; // public server name
virtual const char *GetMapName( void ) const = 0; // current map name (BSP)
virtual int GetSpawnCount( void ) const = 0;
virtual int GetNumClasses( void ) const = 0;
virtual int GetClassBits( void ) const = 0;
virtual void GetNetStats( float &avgIn, float &avgOut ) = 0; // total net in/out in bytes/sec
virtual int GetNumPlayers() = 0;
virtual bool GetPlayerInfo( int nClientIndex, player_info_t *pinfo ) = 0;
virtual bool IsActive( void ) const = 0;
virtual bool IsLoading( void ) const = 0;
virtual bool IsDedicated( void ) const = 0;
virtual bool IsPaused( void ) const = 0;
virtual bool IsMultiplayer( void ) const = 0;
virtual bool IsPausable() const = 0;
virtual bool IsHLTV() const = 0;
virtual bool IsReplay() const = 0;
virtual const char * GetPassword() const = 0; // returns the password or NULL if none set
virtual void SetPaused(bool paused) = 0;
virtual void SetPassword(const char *password) = 0; // set password (NULL to disable)
virtual void BroadcastMessage( INetMessage &msg, bool onlyActive = false, bool reliable = false) = 0;
virtual void BroadcastMessage( INetMessage &msg, IRecipientFilter &filter ) = 0;
virtual void DisconnectClient( IClient *client, const char *reason ) = 0;
};
#endif // ISERVER_H