fix no name and error

This commit is contained in:
D1GQ committed 2024-08-21 14:09:57 -05:00
1 parent 7d8cf80dc8
commit e1056dce6a
3 files changed
+26 -12

No files matched your search

+7 -1
View File
@@ -9,7 +9,7 @@ public static class PlayerControlDataExtension
public class ExtendedPlayerInfo
{
public NetworkedPlayerInfo? _Data { get; set; }
public string RealName { get; set; } = string.Empty;
public string? RealName { get; set; }
public Dictionary<byte, string> LastNameSetFor { get; set; } = [];
public bool IsBetterUser { get; set; } = false;
public bool IsBetterHost { get; set; } = false;
@@ -58,6 +58,11 @@ public static class PlayerControlDataExtension
if (player.IsAlive() || player.Data.RoleType == RoleTypes.GuardianAngel)
player.BetterData().RoleInfo.DeadDisplayRole = player.Data.RoleType;
}
if (string.IsNullOrEmpty(player.BetterData().RealName))
{
player.BetterData().RealName = player.Data.PlayerName;
}
}
// Get BetterData from PlayerControl
@@ -104,6 +109,7 @@ public static class PlayerControlDataExtension
playerInfo[player.Data.Puid] = new ExtendedPlayerInfo
{
_Data = player.Data,
RealName = player.Data.PlayerName,
RoleInfo = new ExtendedRoleInfo()
};
}
+5
View File
@@ -226,6 +226,11 @@ internal static class RPC
switch (callId)
{
case (byte)RpcCalls.SetName:
reader.ReadUInt32();
var name = reader.ReadString();
player.BetterData().RealName = name;
break;
case (byte)RpcCalls.SendChat:
var text = reader.ReadString();
+14 -11
View File
@@ -21,21 +21,24 @@ class GamePlayManager
}
// Clear unused Better Data
var keysToRemove = new List<string>();
foreach (var betterInfo in PlayerControlDataExtension.playerInfo)
try
{
if (!Main.AllPlayerControls.Any(pc => pc.Data.Puid == betterInfo.Key))
var keysToRemove = new List<string>();
foreach (var betterInfo in PlayerControlDataExtension.playerInfo)
{
keysToRemove.Add(betterInfo.Key);
if (!Main.AllPlayerControls.Any(pc => pc.Data.Puid == betterInfo.Key))
{
keysToRemove.Add(betterInfo.Key);
}
}
foreach (var key in keysToRemove)
{
PlayerControlDataExtension.playerInfo.Remove(key);
}
}
foreach (var key in keysToRemove)
{
PlayerControlDataExtension.playerInfo.Remove(key);
}
catch { }
}
[HarmonyPatch(nameof(LobbyBehaviour.Start))]
[HarmonyPostfix]