4jcraft/Minecraft.Client/Platform/Common/Network/NetworkPlayerInterface.h
Tropical 90bdcd47d4
Some checks are pending
Build (Linux, x86_64) / build-linux (push) Waiting to run
Build (Linux, x86_64) / build-linux-debug (push) Waiting to run
Clang Format / clang-format (push) Waiting to run
TU19: Merge Minecraft.Client/Platform/Common/Network
2026-03-22 04:21:50 -05:00

39 lines
1.5 KiB
C++

#pragma once
class Socket;
// This is the platform independent interface for dealing with players within a
// network game. This should be used directly by game code (and
// GameNetworkManager) rather than the platform-specific implementations.
class INetworkPlayer {
public:
virtual ~INetworkPlayer() {}
virtual unsigned char GetSmallId() = 0;
virtual void SendData(INetworkPlayer* player, const void* pvData,
int dataSize, bool lowPriority, bool ack) = 0;
virtual bool IsSameSystem(INetworkPlayer* player) = 0;
virtual int GetOutstandingAckCount() = 0;
virtual int GetSendQueueSizeBytes(INetworkPlayer* player,
bool lowPriority) = 0;
virtual int GetSendQueueSizeMessages(INetworkPlayer* player,
bool lowPriority) = 0;
virtual int GetCurrentRtt() = 0;
virtual bool IsHost() = 0;
virtual bool IsGuest() = 0;
virtual bool IsLocal() = 0;
virtual int GetSessionIndex() = 0;
virtual bool IsTalking() = 0;
virtual bool IsMutedByLocalUser(int userIndex) = 0;
virtual bool HasVoice() = 0;
virtual bool HasCamera() = 0;
virtual int GetUserIndex() = 0;
virtual void SetSocket(Socket* pSocket) = 0;
virtual Socket* GetSocket() = 0;
virtual const wchar_t* GetOnlineName() = 0;
virtual std::wstring GetDisplayName() = 0;
virtual PlayerUID GetUID() = 0;
virtual void SentChunkPacket() = 0;
virtual int GetTimeSinceLastChunkPacket_ms() = 0;
};