{
public interface IInnerPlayerControl
{
+ IInnerPlayerInfo PlayerInfo { get; }
}
}
\ No newline at end of file
--- /dev/null
+namespace Impostor.Api.Net.Inner.Objects
+{
+ public interface IInnerPlayerInfo
+ {
+ /// <summary>
+ /// Gets the name of the player as decided by the host.
+ /// </summary>
+ public string PlayerName { get; }
+ }
+}
\ No newline at end of file
+++ /dev/null
-using System;
-using System.Collections.Generic;
-using Impostor.Api.Innersloth;
-using Impostor.Api.Net.Messages;
-
-namespace Impostor.Server.Net.Inner.Objects
-{
- internal partial class InnerGameData
- {
- public class PlayerInfo
- {
- public PlayerInfo(byte playerId)
- {
- PlayerId = playerId;
- }
-
- public InnerPlayerControl Controller { get; internal set; }
-
- public byte PlayerId { get; }
-
- public string PlayerName { get; internal set; }
-
- public byte ColorId { get; internal set; }
-
- public uint HatId { get; internal set; }
-
- public uint PetId { get; internal set; }
-
- public uint SkinId { get; internal set; }
-
- public bool Disconnected { get; internal set; }
-
- public bool IsImpostor { get; internal set; }
-
- public bool IsDead { get; internal set; }
-
- public DeathReason LastDeathReason { get; internal set; }
-
- public List<TaskInfo> Tasks { get; internal set; }
-
- public void Serialize(IMessageWriter writer)
- {
- throw new NotImplementedException();
- }
-
- public void Deserialize(IMessageReader reader)
- {
- PlayerName = reader.ReadString();
- ColorId = reader.ReadByte();
- HatId = reader.ReadPackedUInt32();
- PetId = reader.ReadPackedUInt32();
- SkinId = reader.ReadPackedUInt32();
- var flag = reader.ReadByte();
- Disconnected = (flag & 1) > 0;
- IsImpostor = (flag & 2) > 0;
- IsDead = (flag & 4) > 0;
- var taskCount = reader.ReadByte();
- Tasks = new List<TaskInfo>();
- for (var i = 0; i < taskCount; i++)
- {
- Tasks.Add(new TaskInfo());
- Tasks[i].Deserialize(reader);
- }
- }
- }
- }
-}
\ No newline at end of file
{
private readonly ILogger<InnerGameData> _logger;
private readonly Game _game;
- private readonly ConcurrentDictionary<byte, PlayerInfo> _allPlayers;
+ private readonly ConcurrentDictionary<byte, InnerPlayerInfo> _allPlayers;
public InnerGameData(ILogger<InnerGameData> logger, Game game, IServiceProvider serviceProvider)
{
_logger = logger;
_game = game;
- _allPlayers = new ConcurrentDictionary<byte, PlayerInfo>();
+ _allPlayers = new ConcurrentDictionary<byte, InnerPlayerInfo>();
Components.Add(this);
Components.Add(ActivatorUtilities.CreateInstance<InnerVoteBanSystem>(serviceProvider));
public int PlayerCount => _allPlayers.Count;
- public IReadOnlyDictionary<byte, PlayerInfo> Players => _allPlayers;
+ public IReadOnlyDictionary<byte, InnerPlayerInfo> Players => _allPlayers;
- public PlayerInfo? GetPlayerById(byte id)
+ public InnerPlayerInfo? GetPlayerById(byte id)
{
if (id == byte.MaxValue)
{
}
else
{
- var playerInfo = new PlayerInfo(message.Tag);
+ var playerInfo = new InnerPlayerInfo(message.Tag);
playerInfo.Deserialize(reader);
for (var i = 0; i < num; i++)
{
var playerId = reader.ReadByte();
- var playerInfo = new PlayerInfo(playerId);
+ var playerInfo = new InnerPlayerInfo(playerId);
playerInfo.Deserialize(reader);
internal void AddPlayer(InnerPlayerControl control)
{
var playerId = control.PlayerId;
- var playerInfo = new PlayerInfo(control.PlayerId);
+ var playerInfo = new InnerPlayerInfo(control.PlayerId);
if (_allPlayers.TryAdd(playerId, playerInfo))
{
--- /dev/null
+using Impostor.Api.Net.Inner.Objects;
+
+namespace Impostor.Server.Net.Inner.Objects
+{
+ internal partial class InnerPlayerControl : IInnerPlayerControl
+ {
+ IInnerPlayerInfo IInnerPlayerControl.PlayerInfo => PlayerInfo;
+ }
+}
\ No newline at end of file
namespace Impostor.Server.Net.Inner.Objects
{
- internal class InnerPlayerControl : InnerNetObject, IInnerPlayerControl
+ internal partial class InnerPlayerControl : InnerNetObject
{
private readonly ILogger<InnerPlayerControl> _logger;
private readonly IEventManager _eventManager;
public byte PlayerId { get; private set; }
- public InnerGameData.PlayerInfo PlayerInfo { get; internal set; }
+ public InnerPlayerInfo PlayerInfo { get; internal set; }
- public override async ValueTask HandleRpc(ClientPlayer sender, ClientPlayer? target, RpcCalls call,
- IMessageReader reader)
+ public override async ValueTask HandleRpc(ClientPlayer sender, ClientPlayer? target, RpcCalls call, IMessageReader reader)
{
switch (call)
{
--- /dev/null
+using System;
+using System.Collections.Generic;
+using Impostor.Api.Innersloth;
+using Impostor.Api.Net.Inner.Objects;
+using Impostor.Api.Net.Messages;
+
+namespace Impostor.Server.Net.Inner.Objects
+{
+ internal class InnerPlayerInfo : IInnerPlayerInfo
+ {
+ public InnerPlayerInfo(byte playerId)
+ {
+ PlayerId = playerId;
+ }
+
+ public InnerPlayerControl Controller { get; internal set; }
+
+ public byte PlayerId { get; }
+
+ public string PlayerName { get; internal set; }
+
+ public byte ColorId { get; internal set; }
+
+ public uint HatId { get; internal set; }
+
+ public uint PetId { get; internal set; }
+
+ public uint SkinId { get; internal set; }
+
+ public bool Disconnected { get; internal set; }
+
+ public bool IsImpostor { get; internal set; }
+
+ public bool IsDead { get; internal set; }
+
+ public DeathReason LastDeathReason { get; internal set; }
+
+ public List<InnerGameData.TaskInfo> Tasks { get; internal set; }
+
+ public void Serialize(IMessageWriter writer)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void Deserialize(IMessageReader reader)
+ {
+ PlayerName = reader.ReadString();
+ ColorId = reader.ReadByte();
+ HatId = reader.ReadPackedUInt32();
+ PetId = reader.ReadPackedUInt32();
+ SkinId = reader.ReadPackedUInt32();
+ var flag = reader.ReadByte();
+ Disconnected = (flag & 1) > 0;
+ IsImpostor = (flag & 2) > 0;
+ IsDead = (flag & 4) > 0;
+ var taskCount = reader.ReadByte();
+ Tasks = new List<InnerGameData.TaskInfo>();
+ for (var i = 0; i < taskCount; i++)
+ {
+ Tasks.Add(new InnerGameData.TaskInfo());
+ Tasks[i].Deserialize(reader);
+ }
+ }
+ }
+}
\ No newline at end of file