]> git.deb.at Git - rhonda/impostor.git/commitdiff
Expose PlayerName again to fix example plugin
authorAeonLucid <aeonlucid@outlook.com>
Sat, 24 Oct 2020 20:12:04 +0000 (22:12 +0200)
committerAeonLucid <aeonlucid@outlook.com>
Sat, 24 Oct 2020 20:12:04 +0000 (22:12 +0200)
src/Impostor.Api/Net/Inner/Objects/IInnerPlayerControl.cs
src/Impostor.Api/Net/Inner/Objects/IInnerPlayerInfo.cs [new file with mode: 0644]
src/Impostor.Server/Net/Inner/Objects/InnerGameData.PlayerInfo.cs [deleted file]
src/Impostor.Server/Net/Inner/Objects/InnerGameData.cs
src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.Api.cs [new file with mode: 0644]
src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.cs
src/Impostor.Server/Net/Inner/Objects/InnerPlayerInfo.cs [new file with mode: 0644]

index 1b5c3bae7ad0adcefa1e5185e9be0e074c7cb460..45b949a7bc59de994598107d23395afe42643dfe 100644 (file)
@@ -2,5 +2,6 @@
 {
     public interface IInnerPlayerControl
     {
+        IInnerPlayerInfo PlayerInfo { get; }
     }
 }
\ No newline at end of file
diff --git a/src/Impostor.Api/Net/Inner/Objects/IInnerPlayerInfo.cs b/src/Impostor.Api/Net/Inner/Objects/IInnerPlayerInfo.cs
new file mode 100644 (file)
index 0000000..e1de18b
--- /dev/null
@@ -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; }
+    }
+}
\ No newline at end of file
diff --git a/src/Impostor.Server/Net/Inner/Objects/InnerGameData.PlayerInfo.cs b/src/Impostor.Server/Net/Inner/Objects/InnerGameData.PlayerInfo.cs
deleted file mode 100644 (file)
index 677aa5f..0000000
+++ /dev/null
@@ -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);
-                }
-            }
-        }
-    }
-}
\ No newline at end of file
index 04cf1cd0d7c10e8cdcd9fb13fa22c53ea8548dbe..7f71b1f497789e6b630267d8b061fb16252ec28b 100644 (file)
@@ -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))
             {
diff --git a/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.Api.cs b/src/Impostor.Server/Net/Inner/Objects/InnerPlayerControl.Api.cs
new file mode 100644 (file)
index 0000000..225d78f
--- /dev/null
@@ -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;
+    }
+}
\ No newline at end of file
index d761771989362321c2a21f40a45e136a961011fa..4d3576cf4bb7cb81590defa66823a12981c131d2 100644 (file)
@@ -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)
             {
diff --git a/src/Impostor.Server/Net/Inner/Objects/InnerPlayerInfo.cs b/src/Impostor.Server/Net/Inner/Objects/InnerPlayerInfo.cs
new file mode 100644 (file)
index 0000000..3982a30
--- /dev/null
@@ -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);
+            }
+        }
+    }
+}
\ No newline at end of file