Expose PlayerName again to fix example plugin

This commit is contained in:
AeonLucid committed 2020-10-24 22:12:04 +02:00
1 parent 58d00dc657
commit 94f19a38c5
7 files changed
+95 -78

No files matched your search

@@ -2,5 +2,6 @@
{
public interface IInnerPlayerControl
{
IInnerPlayerInfo PlayerInfo { get; }
}
}
@@ -0,0 +1,10 @@
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; }
}
}
@@ -1,67 +0,0 @@
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);
}
}
}
}
}
@@ -17,13 +17,13 @@ namespace Impostor.Server.Net.Inner.Objects
{
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));
@@ -31,9 +31,9 @@ namespace Impostor.Server.Net.Inner.Objects
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)
{
@@ -89,7 +89,7 @@ namespace Impostor.Server.Net.Inner.Objects
}
else
{
var playerInfo = new PlayerInfo(message.Tag);
var playerInfo = new InnerPlayerInfo(message.Tag);
playerInfo.Deserialize(reader);
@@ -132,7 +132,7 @@ namespace Impostor.Server.Net.Inner.Objects
for (var i = 0; i < num; i++)
{
var playerId = reader.ReadByte();
var playerInfo = new PlayerInfo(playerId);
var playerInfo = new InnerPlayerInfo(playerId);
playerInfo.Deserialize(reader);
@@ -151,7 +151,7 @@ namespace Impostor.Server.Net.Inner.Objects
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))
{
@@ -0,0 +1,9 @@
using Impostor.Api.Net.Inner.Objects;
namespace Impostor.Server.Net.Inner.Objects
{
internal partial class InnerPlayerControl : IInnerPlayerControl
{
IInnerPlayerInfo IInnerPlayerControl.PlayerInfo => PlayerInfo;
}
}
@@ -14,7 +14,7 @@ using Microsoft.Extensions.Logging;
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;
@@ -37,10 +37,9 @@ namespace Impostor.Server.Net.Inner.Objects
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)
{
@@ -0,0 +1,65 @@
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);
}
}
}
}