Renaming fields in the Client class for consistency

This commit is contained in:
Joonas Rikkonen
2017-11-23 20:43:22 +02:00
parent 4689bec441
commit 1c09f757a2
14 changed files with 197 additions and 189 deletions
@@ -91,6 +91,7 @@ namespace Barotrauma.Networking
fileReceiver = new FileReceiver();
fileReceiver.OnFinished += OnFileReceived;
fileReceiver.OnTransferFailed += OnTransferFailed;
characterInfo = new CharacterInfo(Character.HumanConfigFile, name,Gender.None,null);
characterInfo.Job = null;
@@ -765,7 +766,7 @@ namespace Barotrauma.Networking
myCharacter = null;
foreach (Client c in otherClients)
{
c.inGame = false;
c.InGame = false;
c.Character = null;
}
yield return CoroutineStatus.Success;
@@ -908,7 +909,7 @@ namespace Barotrauma.Networking
}
ConnectedClients.Add(newClient);
GameMain.NetLobbyScreen.AddPlayer(newClient.name);
GameMain.NetLobbyScreen.AddPlayer(newClient.Name);
}
Voting.AllowSubVoting = allowSubVoting;
@@ -1142,6 +1143,14 @@ namespace Barotrauma.Networking
}
}
private void OnTransferFailed(FileReceiver.FileTransferIn transfer)
{
if (transfer.FileType == FileTransferType.CampaignSave)
{
GameMain.Client.RequestFile(FileTransferType.CampaignSave, null, null);
}
}
public void CreateEntityEvent(IClientSerializable entity, object[] extraData)
{
entityEventManager.CreateEvent(entity, extraData);
@@ -105,7 +105,7 @@ namespace Barotrauma.Networking
if (y >= startY && y < startY + height - 120)
{
GUI.SmallFont.DrawString(spriteBatch, c.name + " (" + c.Connection.RemoteEndPoint.Address.ToString() + ")", new Vector2(x + 10, y), clientColor);
GUI.SmallFont.DrawString(spriteBatch, c.Name + " (" + c.Connection.RemoteEndPoint.Address.ToString() + ")", new Vector2(x + 10, y), clientColor);
GUI.SmallFont.DrawString(spriteBatch, "Ping: " + (int)(c.Connection.AverageRoundtripTime * 1000.0f) + " ms", new Vector2(x + 20, y + 10), clientColor);
}
if (y + 25 >= startY && y < startY + height - 130) GUI.SmallFont.DrawString(spriteBatch, "Resent messages: " + c.Connection.Statistics.ResentMessages, new Vector2(x + 20, y + 20), clientColor);
@@ -130,7 +130,7 @@ namespace Barotrauma.Networking
{
var transfers = fileSender.ActiveTransfers.FindAll(t => t.Connection == client.Connection);
var clientNameBox = GameMain.NetLobbyScreen.PlayerList.FindChild(client.name);
var clientNameBox = GameMain.NetLobbyScreen.PlayerList.FindChild(client.Name);
var clientInfo = clientNameBox.FindChild("filetransfer");
if (clientInfo == null)
@@ -473,27 +473,27 @@ namespace Barotrauma.Networking
{
GUIFrame frame = new GUIFrame(new Rectangle(0, 0, 0, 40), Color.Transparent, null, cList);
frame.Padding = new Vector4(5.0f, 5.0f, 5.0f, 5.0f);
frame.Color = (c.inGame && c.Character != null && !c.Character.IsDead) ? Color.Gold * 0.2f : Color.Transparent;
frame.Color = (c.InGame && c.Character != null && !c.Character.IsDead) ? Color.Gold * 0.2f : Color.Transparent;
frame.HoverColor = Color.LightGray * 0.5f;
frame.SelectedColor = Color.Gold * 0.5f;
GUITextBlock textBlock = new GUITextBlock(
new Rectangle(40, 0, 0, 25),
c.name + " (" + c.Connection.RemoteEndPoint.Address.ToString() + ")",
c.Name + " (" + c.Connection.RemoteEndPoint.Address.ToString() + ")",
Color.Transparent, Color.White,
Alignment.Left, Alignment.Left,
null, frame);
var banButton = new GUIButton(new Rectangle(-110, 0, 100, 20), "Ban", Alignment.Right | Alignment.CenterY, "", frame);
banButton.UserData = c.name;
banButton.UserData = c.Name;
banButton.OnClicked = GameMain.NetLobbyScreen.BanPlayer;
var rangebanButton = new GUIButton(new Rectangle(-220, 0, 100, 20), "Ban range", Alignment.Right | Alignment.CenterY, "", frame);
rangebanButton.UserData = c.name;
rangebanButton.UserData = c.Name;
rangebanButton.OnClicked = GameMain.NetLobbyScreen.BanPlayerRange;
var kickButton = new GUIButton(new Rectangle(0, 0, 100, 20), "Kick", Alignment.Right | Alignment.CenterY, "", frame);
kickButton.UserData = c.name;
kickButton.UserData = c.Name;
kickButton.OnClicked = GameMain.NetLobbyScreen.KickPlayer;
textBlock.Padding = new Vector4(5.0f, 0.0f, 5.0f, 0.0f);
@@ -30,9 +30,9 @@ namespace Barotrauma.Networking
{
foreach (Client c in GameMain.Server.ConnectedClients)
{
if (!IsWhiteListed(c.name, c.Connection.RemoteEndPoint.Address.ToString()))
if (!IsWhiteListed(c.Name, c.Connection.RemoteEndPoint.Address.ToString()))
{
whitelistedPlayers.Add(new WhiteListedPlayer(c.name, c.Connection.RemoteEndPoint.Address.ToString()));
whitelistedPlayers.Add(new WhiteListedPlayer(c.Name, c.Connection.RemoteEndPoint.Address.ToString()));
if (whitelistFrame != null) CreateWhiteListFrame(whitelistFrame.Parent);
}
}
@@ -866,7 +866,7 @@ namespace Barotrauma
if (GameMain.Server != null)
{
var selectedClient = GameMain.Server.ConnectedClients.Find(c => c.name == component.UserData.ToString());
var selectedClient = GameMain.Server.ConnectedClients.Find(c => c.Name == component.UserData.ToString());
new GUITextBlock(new Rectangle(0, 25, 150, 15), selectedClient.Connection.RemoteEndPoint.Address.ToString(), "", playerFrameInner);
@@ -96,7 +96,7 @@ namespace Barotrauma
NewMessage("***************", Color.Cyan);
foreach (Client c in GameMain.Server.ConnectedClients)
{
NewMessage("- " + c.ID.ToString() + ": " + c.name + ", " + c.Connection.RemoteEndPoint.Address.ToString(), Color.Cyan);
NewMessage("- " + c.ID.ToString() + ": " + c.Name + ", " + c.Connection.RemoteEndPoint.Address.ToString(), Color.Cyan);
}
NewMessage("***************", Color.Cyan);
}));
@@ -304,9 +304,9 @@ namespace Barotrauma
return;
}
ShowQuestionPrompt("Reason for kicking \"" + client.name + "\"?", (reason) =>
ShowQuestionPrompt("Reason for kicking \"" + client.Name + "\"?", (reason) =>
{
GameMain.Server.KickPlayer(client.name, reason);
GameMain.Server.KickPlayer(client.Name, reason);
});
}));
@@ -349,7 +349,7 @@ namespace Barotrauma
return;
}
ShowQuestionPrompt("Reason for banning \"" + client.name + "\"?", (reason) =>
ShowQuestionPrompt("Reason for banning \"" + client.Name + "\"?", (reason) =>
{
ShowQuestionPrompt("Enter the duration of the ban (leave empty to ban permanently, or use the format \"[days] d [hours] h\")", (duration) =>
{
@@ -365,7 +365,7 @@ namespace Barotrauma
banDuration = parsedBanDuration;
}
GameMain.Server.BanPlayer(client.name, reason, false, banDuration);
GameMain.Server.BanPlayer(client.Name, reason, false, banDuration);
});
});
}));
@@ -625,7 +625,7 @@ namespace Barotrauma
string clientName = String.Join(" ", argsLeft);
var client = GameMain.Server.ConnectedClients.Find(c => c.name == clientName);
var client = GameMain.Server.ConnectedClients.Find(c => c.Name == clientName);
if (client == null)
{
ThrowError("Client \"" + clientName + "\" not found.");
@@ -195,7 +195,7 @@ namespace Barotrauma
lastUpdateID++;
bool success =
GameMain.Server.ConnectedClients.Any(c => c.inGame && c.Character != null && !c.Character.IsDead) ||
GameMain.Server.ConnectedClients.Any(c => c.InGame && c.Character != null && !c.Character.IsDead) ||
(GameMain.Server.Character != null && !GameMain.Server.Character.IsDead);
/*if (success)
@@ -409,7 +409,7 @@ namespace Barotrauma
if (!sender.HasPermission(ClientPermissions.ManageCampaign))
{
DebugConsole.ThrowError("Client \""+sender.name+"\" does not have a permission to manage the campaign");
DebugConsole.ThrowError("Client \""+sender.Name+"\" does not have a permission to manage the campaign");
return;
}
@@ -135,26 +135,26 @@ namespace Barotrauma.Networking
string txt = msg.ReadString();
if (txt == null) txt = "";
if (!NetIdUtils.IdMoreRecent(ID, c.lastSentChatMsgID)) return;
if (!NetIdUtils.IdMoreRecent(ID, c.LastSentChatMsgID)) return;
c.lastSentChatMsgID = ID;
c.LastSentChatMsgID = ID;
if (txt.Length > MaxLength)
{
txt = txt.Substring(0, MaxLength);
}
c.lastSentChatMessages.Add(txt);
if (c.lastSentChatMessages.Count > 10)
c.LastSentChatMessages.Add(txt);
if (c.LastSentChatMessages.Count > 10)
{
c.lastSentChatMessages.RemoveRange(0, c.lastSentChatMessages.Count-10);
c.LastSentChatMessages.RemoveRange(0, c.LastSentChatMessages.Count-10);
}
float similarity = 0.0f;
for (int i = 0; i < c.lastSentChatMessages.Count; i++)
for (int i = 0; i < c.LastSentChatMessages.Count; i++)
{
float closeFactor = 1.0f / (c.lastSentChatMessages.Count - i);
int levenshteinDist = ToolBox.LevenshteinDistance(txt, c.lastSentChatMessages[i]);
float closeFactor = 1.0f / (c.LastSentChatMessages.Count - i);
int levenshteinDist = ToolBox.LevenshteinDistance(txt, c.LastSentChatMessages[i]);
similarity += Math.Max((txt.Length - levenshteinDist) / (float)txt.Length * closeFactor, 0.0f);
}
@@ -205,7 +205,7 @@ namespace Barotrauma.Networking
1 + //(byte)Type
Encoding.UTF8.GetBytes(Text).Length + 2;
if (Sender != null && c.inGame)
if (Sender != null && c.InGame)
{
length += 2; //sender ID (UInt16)
}
@@ -224,8 +224,8 @@ namespace Barotrauma.Networking
msg.Write((byte)Type);
msg.Write(Text);
msg.Write(Sender != null && c.inGame);
if (Sender != null && c.inGame)
msg.Write(Sender != null && c.InGame);
if (Sender != null && c.InGame)
{
msg.Write(Sender.ID);
}
@@ -26,35 +26,36 @@ namespace Barotrauma.Networking
class Client
{
public string name;
public string Name;
public byte ID;
public byte TeamID = 0;
public Character Character;
public CharacterInfo characterInfo;
public CharacterInfo CharacterInfo;
public NetConnection Connection { get; set; }
public bool inGame;
public UInt16 lastRecvGeneralUpdate = 0;
public bool InGame;
public UInt16 lastSentChatMsgID = 0; //last msg this client said
public UInt16 lastRecvChatMsgID = 0; //last msg this client knows about
public UInt16 LastRecvGeneralUpdate = 0;
public UInt16 LastSentChatMsgID = 0; //last msg this client said
public UInt16 LastRecvChatMsgID = 0; //last msg this client knows about
public UInt16 lastSentEntityEventID = 0;
public UInt16 lastRecvEntityEventID = 0;
public UInt16 LastSentEntityEventID = 0;
public UInt16 LastRecvEntityEventID = 0;
public UInt16 lastRecvCampaignUpdate = 0;
public UInt16 lastRecvCampaignSave = 0;
public List<ChatMessage> chatMsgQueue = new List<ChatMessage>();
public UInt16 lastChatMsgQueueID;
public UInt16 LastRecvCampaignUpdate = 0;
public UInt16 LastRecvCampaignSave = 0;
public readonly List<ChatMessage> ChatMsgQueue = new List<ChatMessage>();
public UInt16 LastChatMsgQueueID;
//latest chat messages sent by this client
public List<string> lastSentChatMessages = new List<string>();
public readonly List<string> LastSentChatMessages = new List<string>();
public float ChatSpamSpeed;
public float ChatSpamTimer;
public int ChatSpamCount;
public double MidRoundSyncTimeOut;
public bool NeedsMidRoundSync;
@@ -66,36 +67,31 @@ namespace Barotrauma.Networking
//when was a specific entity event last sent to the client
// key = event id, value = NetTime.Now when sending
public Dictionary<UInt16, float> entityEventLastSent;
private Queue<Entity> pendingPositionUpdates = new Queue<Entity>();
public readonly Dictionary<UInt16, float> EntityEventLastSent = new Dictionary<UInt16, float>();
public readonly Queue<Entity> PendingPositionUpdates = new Queue<Entity>();
public bool ReadyToStart;
private object[] votes;
public List<JobPrefab> jobPreferences;
public JobPrefab assignedJob;
public List<JobPrefab> JobPreferences;
public JobPrefab AssignedJob;
public float deleteDisconnectedTimer;
public float DeleteDisconnectedTimer;
public ClientPermissions Permissions = ClientPermissions.None;
public bool SpectateOnly;
private object[] votes;
public Queue<Entity> PendingPositionUpdates
{
get { return pendingPositionUpdates; }
}
public void InitClientSync()
{
lastSentChatMsgID = 0;
lastRecvChatMsgID = ChatMessage.LastID;
LastSentChatMsgID = 0;
LastRecvChatMsgID = ChatMessage.LastID;
lastRecvGeneralUpdate = 0;
LastRecvGeneralUpdate = 0;
lastRecvEntityEventID = 0;
LastRecvEntityEventID = 0;
UnreceivedEntityEventCount = 0;
NeedsMidRoundSync = false;
@@ -114,16 +110,14 @@ namespace Barotrauma.Networking
public Client(string name, byte ID)
{
this.name = name;
this.Name = name;
this.ID = ID;
kickVoters = new List<Client>();
votes = new object[Enum.GetNames(typeof(VoteType)).Length];
jobPreferences = new List<JobPrefab>(JobPrefab.List.GetRange(0, Math.Min(JobPrefab.List.Count, 3)));
entityEventLastSent = new Dictionary<UInt16, float>();
JobPreferences = new List<JobPrefab>(JobPrefab.List.GetRange(0, Math.Min(JobPrefab.List.Count, 3)));
}
public static bool IsValidName(string name)
@@ -408,8 +408,8 @@ namespace Barotrauma.Networking
for (int i = disconnectedClients.Count - 1; i >= 0; i-- )
{
disconnectedClients[i].deleteDisconnectedTimer -= deltaTime;
if (disconnectedClients[i].deleteDisconnectedTimer > 0.0f) continue;
disconnectedClients[i].DeleteDisconnectedTimer -= deltaTime;
if (disconnectedClients[i].DeleteDisconnectedTimer > 0.0f) continue;
if (gameStarted && disconnectedClients[i].Character!=null)
{
@@ -449,7 +449,7 @@ namespace Barotrauma.Networking
}
*/
DisconnectClient(inc.SenderConnection,
connectedClient != null ? connectedClient.name + " has disconnected" : "");
connectedClient != null ? connectedClient.Name + " has disconnected" : "");
break;
}
break;
@@ -496,7 +496,7 @@ namespace Barotrauma.Networking
}
catch (Exception e)
{
DebugConsole.ThrowError("Failed to write a network message for the client \""+c.name+"\"!", e);
DebugConsole.ThrowError("Failed to write a network message for the client \""+c.Name+"\"!", e);
}
}
@@ -598,13 +598,13 @@ namespace Barotrauma.Networking
{
case ClientNetObject.SYNC_IDS:
//TODO: might want to use a clever class for this
c.lastRecvGeneralUpdate = NetIdUtils.Clamp(inc.ReadUInt16(), c.lastRecvGeneralUpdate, GameMain.NetLobbyScreen.LastUpdateID);
c.lastRecvChatMsgID = NetIdUtils.Clamp(inc.ReadUInt16(), c.lastRecvChatMsgID, c.lastChatMsgQueueID);
c.LastRecvGeneralUpdate = NetIdUtils.Clamp(inc.ReadUInt16(), c.LastRecvGeneralUpdate, GameMain.NetLobbyScreen.LastUpdateID);
c.LastRecvChatMsgID = NetIdUtils.Clamp(inc.ReadUInt16(), c.LastRecvChatMsgID, c.LastChatMsgQueueID);
c.lastRecvCampaignSave = inc.ReadUInt16();
if (c.lastRecvCampaignSave > 0)
c.LastRecvCampaignSave = inc.ReadUInt16();
if (c.LastRecvCampaignSave > 0)
{
c.lastRecvCampaignUpdate = inc.ReadUInt16();
c.LastRecvCampaignUpdate = inc.ReadUInt16();
}
break;
case ClientNetObject.CHAT_MESSAGE:
@@ -633,11 +633,11 @@ namespace Barotrauma.Networking
if (gameStarted)
{
if (!c.inGame)
if (!c.InGame)
{
//check if midround syncing is needed due to missed unique events
entityEventManager.InitClientMidRoundSync(c);
c.inGame = true;
c.InGame = true;
}
}
@@ -663,7 +663,7 @@ namespace Barotrauma.Networking
{
c.NeedsMidRoundSync = false;
lastRecvEntityEventID = (UInt16)(c.FirstNewEventID - 1);
c.lastRecvEntityEventID = lastRecvEntityEventID;
c.LastRecvEntityEventID = lastRecvEntityEventID;
}
else
{
@@ -671,28 +671,28 @@ namespace Barotrauma.Networking
}
}
if (NetIdUtils.IdMoreRecent(lastRecvChatMsgID, c.lastRecvChatMsgID) && //more recent than the last ID received by the client
!NetIdUtils.IdMoreRecent(lastRecvChatMsgID, c.lastChatMsgQueueID)) //NOT more recent than the latest existing ID
if (NetIdUtils.IdMoreRecent(lastRecvChatMsgID, c.LastRecvChatMsgID) && //more recent than the last ID received by the client
!NetIdUtils.IdMoreRecent(lastRecvChatMsgID, c.LastChatMsgQueueID)) //NOT more recent than the latest existing ID
{
c.lastRecvChatMsgID = lastRecvChatMsgID;
c.LastRecvChatMsgID = lastRecvChatMsgID;
}
else if (lastRecvChatMsgID != c.lastRecvChatMsgID && GameSettings.VerboseLogging)
else if (lastRecvChatMsgID != c.LastRecvChatMsgID && GameSettings.VerboseLogging)
{
DebugConsole.ThrowError(
"Invalid lastRecvChatMsgID " + lastRecvChatMsgID +
" (previous: " + c.lastChatMsgQueueID + ", latest: "+c.lastChatMsgQueueID+")");
" (previous: " + c.LastChatMsgQueueID + ", latest: "+c.LastChatMsgQueueID+")");
}
if (NetIdUtils.IdMoreRecent(lastRecvEntityEventID, c.lastRecvEntityEventID) &&
if (NetIdUtils.IdMoreRecent(lastRecvEntityEventID, c.LastRecvEntityEventID) &&
!NetIdUtils.IdMoreRecent(lastRecvEntityEventID, lastEntityEventID))
{
c.lastRecvEntityEventID = lastRecvEntityEventID;
c.LastRecvEntityEventID = lastRecvEntityEventID;
}
else if (lastRecvEntityEventID != c.lastRecvEntityEventID && GameSettings.VerboseLogging)
else if (lastRecvEntityEventID != c.LastRecvEntityEventID && GameSettings.VerboseLogging)
{
DebugConsole.ThrowError(
"Invalid lastRecvEntityEventID " + lastRecvEntityEventID +
" (previous: " + c.lastRecvEntityEventID + ", latest: " + lastEntityEventID + ")");
" (previous: " + c.LastRecvEntityEventID + ", latest: " + lastEntityEventID + ")");
}
break;
case ClientNetObject.CHAT_MESSAGE:
@@ -741,7 +741,7 @@ namespace Barotrauma.Networking
if (!sender.HasPermission(command))
{
Log("Client \"" + sender.name + "\" sent a server command \"" + command + "\". Permission denied.", ServerLog.MessageType.ServerMessage);
Log("Client \"" + sender.Name + "\" sent a server command \"" + command + "\". Permission denied.", ServerLog.MessageType.ServerMessage);
return;
}
@@ -750,27 +750,27 @@ namespace Barotrauma.Networking
case ClientPermissions.Kick:
string kickedName = inc.ReadString().ToLowerInvariant();
string kickReason = inc.ReadString();
var kickedClient = connectedClients.Find(cl => cl != sender && cl.name.ToLowerInvariant() == kickedName);
var kickedClient = connectedClients.Find(cl => cl != sender && cl.Name.ToLowerInvariant() == kickedName);
if (kickedClient != null)
{
Log("Client \"" + sender.name + "\" kicked \"" + kickedClient.name + "\".", ServerLog.MessageType.ServerMessage);
KickClient(kickedClient, string.IsNullOrEmpty(kickReason) ? "Kicked by " + sender.name : kickReason);
Log("Client \"" + sender.Name + "\" kicked \"" + kickedClient.Name + "\".", ServerLog.MessageType.ServerMessage);
KickClient(kickedClient, string.IsNullOrEmpty(kickReason) ? "Kicked by " + sender.Name : kickReason);
}
break;
case ClientPermissions.Ban:
string bannedName = inc.ReadString().ToLowerInvariant();
string banReason = inc.ReadString();
var bannedClient = connectedClients.Find(cl => cl != sender && cl.name.ToLowerInvariant() == bannedName);
var bannedClient = connectedClients.Find(cl => cl != sender && cl.Name.ToLowerInvariant() == bannedName);
if (bannedClient != null)
{
Log("Client \"" + sender.name + "\" banned \"" + bannedClient.name + "\".", ServerLog.MessageType.ServerMessage);
BanClient(bannedClient, string.IsNullOrEmpty(banReason) ? "Banned by " + sender.name : banReason, false);
Log("Client \"" + sender.Name + "\" banned \"" + bannedClient.Name + "\".", ServerLog.MessageType.ServerMessage);
BanClient(bannedClient, string.IsNullOrEmpty(banReason) ? "Banned by " + sender.Name : banReason, false);
}
break;
case ClientPermissions.EndRound:
if (gameStarted)
{
Log("Client \"" + sender.name + "\" ended the round.", ServerLog.MessageType.ServerMessage);
Log("Client \"" + sender.Name + "\" ended the round.", ServerLog.MessageType.ServerMessage);
EndGame();
}
break;
@@ -779,7 +779,7 @@ namespace Barotrauma.Networking
var subList = GameMain.NetLobbyScreen.GetSubList();
if (subIndex >= subList.Count)
{
DebugConsole.NewMessage("Client \"" + sender.name + "\" attempted to select a sub, index out of bounds (" + subIndex + ")", Color.Red);
DebugConsole.NewMessage("Client \"" + sender.Name + "\" attempted to select a sub, index out of bounds (" + subIndex + ")", Color.Red);
}
else
{
@@ -805,7 +805,7 @@ namespace Barotrauma.Networking
private void ClientWrite(Client c)
{
if (gameStarted && c.inGame)
if (gameStarted && c.InGame)
{
ClientWriteIngame(c);
}
@@ -822,7 +822,7 @@ namespace Barotrauma.Networking
ClientWriteLobby(c);
MultiplayerCampaign campaign = GameMain.GameSession?.GameMode as MultiplayerCampaign;
if (campaign != null && NetIdUtils.IdMoreRecent(campaign.LastSaveID, c.lastRecvCampaignSave))
if (campaign != null && NetIdUtils.IdMoreRecent(campaign.LastSaveID, c.LastRecvCampaignSave))
{
if (!fileSender.ActiveTransfers.Any(t => t.Connection == c.Connection && t.FileType == FileTransferType.CampaignSave))
{
@@ -897,8 +897,8 @@ namespace Barotrauma.Networking
outmsg.Write((float)NetTime.Now);
outmsg.Write((byte)ServerNetObject.SYNC_IDS);
outmsg.Write(c.lastSentChatMsgID); //send this to client so they know which chat messages weren't received by the server
outmsg.Write(c.lastSentEntityEventID);
outmsg.Write(c.LastSentChatMsgID); //send this to client so they know which chat messages weren't received by the server
outmsg.Write(c.LastSentEntityEventID);
entityEventManager.Write(c, outmsg);
@@ -942,7 +942,7 @@ namespace Barotrauma.Networking
outmsg.Write((byte)ServerNetObject.SYNC_IDS);
if (NetIdUtils.IdMoreRecent(GameMain.NetLobbyScreen.LastUpdateID, c.lastRecvGeneralUpdate))
if (NetIdUtils.IdMoreRecent(GameMain.NetLobbyScreen.LastUpdateID, c.LastRecvGeneralUpdate))
{
outmsg.Write(true);
outmsg.WritePadBits();
@@ -951,8 +951,8 @@ namespace Barotrauma.Networking
outmsg.Write(GameMain.NetLobbyScreen.GetServerName());
outmsg.Write(GameMain.NetLobbyScreen.ServerMessageText);
outmsg.Write(c.lastRecvGeneralUpdate < 1);
if (c.lastRecvGeneralUpdate < 1)
outmsg.Write(c.LastRecvGeneralUpdate < 1);
if (c.LastRecvGeneralUpdate < 1)
{
isInitialUpdate = true;
ClientWriteInitial(c, outmsg);
@@ -984,7 +984,7 @@ namespace Barotrauma.Networking
foreach (Client client in connectedClients)
{
outmsg.Write(client.ID);
outmsg.Write(client.name);
outmsg.Write(client.Name);
outmsg.Write(client.Character == null || !gameStarted ? (ushort)0 : client.Character.ID);
}
}
@@ -997,7 +997,7 @@ namespace Barotrauma.Networking
var campaign = GameMain.GameSession?.GameMode as MultiplayerCampaign;
if (campaign != null)
{
if (NetIdUtils.IdMoreRecent(campaign.LastUpdateID, c.lastRecvCampaignUpdate))
if (NetIdUtils.IdMoreRecent(campaign.LastUpdateID, c.LastRecvCampaignUpdate))
{
outmsg.Write(true);
outmsg.WritePadBits();
@@ -1015,7 +1015,7 @@ namespace Barotrauma.Networking
outmsg.WritePadBits();
}
outmsg.Write(c.lastSentChatMsgID); //send this to client so they know which chat messages weren't received by the server
outmsg.Write(c.LastSentChatMsgID); //send this to client so they know which chat messages weren't received by the server
WriteChatMessages(outmsg, c);
@@ -1031,7 +1031,7 @@ namespace Barotrauma.Networking
//and assume the message was received, so we don't have to keep resending
//these large initial messages until the client acknowledges receiving them
c.lastRecvGeneralUpdate++;
c.LastRecvGeneralUpdate++;
SendVoteStatus(new List<Client>() { c });
}
@@ -1048,15 +1048,15 @@ namespace Barotrauma.Networking
private void WriteChatMessages(NetOutgoingMessage outmsg, Client c)
{
c.chatMsgQueue.RemoveAll(cMsg => !NetIdUtils.IdMoreRecent(cMsg.NetStateID, c.lastRecvChatMsgID));
for (int i = 0; i < c.chatMsgQueue.Count && i < ChatMessage.MaxMessagesPerPacket; i++)
c.ChatMsgQueue.RemoveAll(cMsg => !NetIdUtils.IdMoreRecent(cMsg.NetStateID, c.LastRecvChatMsgID));
for (int i = 0; i < c.ChatMsgQueue.Count && i < ChatMessage.MaxMessagesPerPacket; i++)
{
if (outmsg.LengthBytes + c.chatMsgQueue[i].EstimateLengthBytesServer(c) > config.MaximumTransmissionUnit - 5)
if (outmsg.LengthBytes + c.ChatMsgQueue[i].EstimateLengthBytesServer(c) > config.MaximumTransmissionUnit - 5)
{
//not enough room in this packet
return;
}
c.chatMsgQueue[i].ServerWrite(outmsg, c);
c.ChatMsgQueue[i].ServerWrite(outmsg, c);
}
}
@@ -1243,17 +1243,17 @@ namespace Barotrauma.Networking
client.NeedsMidRoundSync = false;
client.PendingPositionUpdates.Clear();
client.entityEventLastSent.Clear();
client.lastSentEntityEventID = 0;
client.lastRecvEntityEventID = 0;
client.EntityEventLastSent.Clear();
client.LastSentEntityEventID = 0;
client.LastRecvEntityEventID = 0;
client.UnreceivedEntityEventCount = 0;
if (client.characterInfo == null)
if (client.CharacterInfo == null)
{
client.characterInfo = new CharacterInfo(Character.HumanConfigFile, client.name);
client.CharacterInfo = new CharacterInfo(Character.HumanConfigFile, client.Name);
}
characterInfos.Add(client.characterInfo);
client.characterInfo.Job = new Job(client.assignedJob);
characterInfos.Add(client.CharacterInfo);
client.CharacterInfo.Job = new Job(client.AssignedJob);
}
//host's character
@@ -1266,7 +1266,7 @@ namespace Barotrauma.Networking
WayPoint[] assignedWayPoints = WayPoint.SelectCrewSpawnPoints(characterInfos, Submarine.MainSubs[teamID - 1]);
for (int i = 0; i < teamClients.Count; i++)
{
Character spawnedCharacter = Character.Create(teamClients[i].characterInfo, assignedWayPoints[i].WorldPosition, true, false);
Character spawnedCharacter = Character.Create(teamClients[i].CharacterInfo, assignedWayPoints[i].WorldPosition, true, false);
spawnedCharacter.AnimController.Frozen = true;
spawnedCharacter.GiveJobItems(assignedWayPoints[i]);
spawnedCharacter.TeamID = (byte)teamID;
@@ -1446,7 +1446,7 @@ namespace Barotrauma.Networking
entityEventManager.Clear();
foreach (Client c in connectedClients)
{
c.entityEventLastSent.Clear();
c.EntityEventLastSent.Clear();
c.PendingPositionUpdates.Clear();
}
@@ -1471,7 +1471,7 @@ namespace Barotrauma.Networking
foreach (Client client in connectedClients)
{
client.Character = null;
client.inGame = false;
client.InGame = false;
}
}
@@ -1505,7 +1505,7 @@ namespace Barotrauma.Networking
playerName = playerName.ToLowerInvariant();
Client client = connectedClients.Find(c =>
c.name.ToLowerInvariant() == playerName ||
c.Name.ToLowerInvariant() == playerName ||
(c.Character != null && c.Character.Name.ToLowerInvariant() == playerName));
KickClient(client, reason);
@@ -1523,7 +1523,7 @@ namespace Barotrauma.Networking
string msg = "You have been kicked from the server.";
if (!string.IsNullOrWhiteSpace(reason)) msg += "\nReason: " + reason;
DisconnectClient(client, client.name + " has been kicked from the server.", msg);
DisconnectClient(client, client.Name + " has been kicked from the server.", msg);
}
public override void BanPlayer(string playerName, string reason, bool range = false, TimeSpan? duration = null)
@@ -1531,7 +1531,7 @@ namespace Barotrauma.Networking
playerName = playerName.ToLowerInvariant();
Client client = connectedClients.Find(c =>
c.name.ToLowerInvariant() == playerName ||
c.Name.ToLowerInvariant() == playerName ||
(c.Character != null && c.Character.Name.ToLowerInvariant() == playerName));
if (client == null)
@@ -1566,10 +1566,10 @@ namespace Barotrauma.Networking
string msg = "You have been banned from the server.";
if (!string.IsNullOrWhiteSpace(reason)) msg += "\nReason: " + reason;
DisconnectClient(client, client.name + " has been banned from the server.", msg);
DisconnectClient(client, client.Name + " has been banned from the server.", msg);
string ip = client.Connection.RemoteEndPoint.Address.ToString();
if (range) { ip = banList.ToRange(ip); }
banList.BanPlayer(client.name, ip, reason, duration);
banList.BanPlayer(client.Name, ip, reason, duration);
}
public void DisconnectClient(NetConnection senderConnection, string msg = "", string targetmsg = "")
@@ -1591,9 +1591,9 @@ namespace Barotrauma.Networking
}
client.Character = null;
client.inGame = false;
client.InGame = false;
if (string.IsNullOrWhiteSpace(msg)) msg = client.name + " has left the server";
if (string.IsNullOrWhiteSpace(msg)) msg = client.Name + " has left the server";
if (string.IsNullOrWhiteSpace(targetmsg)) targetmsg = "You have left the server";
Log(msg, ServerLog.MessageType.ServerMessage);
@@ -1602,7 +1602,7 @@ namespace Barotrauma.Networking
connectedClients.Remove(client);
#if CLIENT
GameMain.NetLobbyScreen.RemovePlayer(client.name);
GameMain.NetLobbyScreen.RemovePlayer(client.Name);
Voting.UpdateVoteTexts(connectedClients, VoteType.Sub);
Voting.UpdateVoteTexts(connectedClients, VoteType.Mode);
#endif
@@ -1620,18 +1620,18 @@ namespace Barotrauma.Networking
{
foreach (Client c in connectedClients)
{
if (c.Character == null || !c.inGame) continue;
if (c.Character == null || !c.InGame) continue;
}
}
public void SendChatMessage(ChatMessage msg, Client recipient)
{
msg.NetStateID = recipient.chatMsgQueue.Count > 0 ?
(ushort)(recipient.chatMsgQueue.Last().NetStateID + 1) :
(ushort)(recipient.lastRecvChatMsgID + 1);
msg.NetStateID = recipient.ChatMsgQueue.Count > 0 ?
(ushort)(recipient.ChatMsgQueue.Last().NetStateID + 1) :
(ushort)(recipient.LastRecvChatMsgID + 1);
recipient.chatMsgQueue.Add(msg);
recipient.lastChatMsgQueueID = msg.NetStateID;
recipient.ChatMsgQueue.Add(msg);
recipient.LastChatMsgQueueID = msg.NetStateID;
}
/// <summary>
@@ -1668,7 +1668,7 @@ namespace Barotrauma.Networking
else
{
targetClient = connectedClients.Find(c =>
command == c.name.ToLowerInvariant() ||
command == c.Name.ToLowerInvariant() ||
(c.Character != null && command == c.Character.Name.ToLowerInvariant()));
if (targetClient == null)
@@ -1679,12 +1679,12 @@ namespace Barotrauma.Networking
"", "Player \"" + command + "\" not found!",
ChatMessageType.Error, null);
chatMsg.NetStateID = senderClient.chatMsgQueue.Count > 0 ?
(ushort)(senderClient.chatMsgQueue.Last().NetStateID + 1) :
(ushort)(senderClient.lastRecvChatMsgID + 1);
chatMsg.NetStateID = senderClient.ChatMsgQueue.Count > 0 ?
(ushort)(senderClient.ChatMsgQueue.Last().NetStateID + 1) :
(ushort)(senderClient.LastRecvChatMsgID + 1);
senderClient.chatMsgQueue.Add(chatMsg);
senderClient.lastChatMsgQueueID = chatMsg.NetStateID;
senderClient.ChatMsgQueue.Add(chatMsg);
senderClient.LastChatMsgQueueID = chatMsg.NetStateID;
}
else
{
@@ -1718,7 +1718,7 @@ namespace Barotrauma.Networking
else //msg sent by a client
{
senderCharacter = senderClient.Character;
senderName = senderCharacter == null ? senderClient.name : senderCharacter.Name;
senderName = senderCharacter == null ? senderClient.Name : senderCharacter.Name;
//sender doesn't have an alive character -> only ChatMessageType.Dead allowed
if (senderCharacter == null || senderCharacter.IsDead)
@@ -1744,7 +1744,7 @@ namespace Barotrauma.Networking
{
//game not started -> clients can only send normal and private chatmessages
if (type != ChatMessageType.Private) type = ChatMessageType.Default;
senderName = senderClient.name;
senderName = senderClient.Name;
}
}
@@ -1864,6 +1864,11 @@ namespace Barotrauma.Networking
private void FileTransferChanged(FileSender.FileTransferOut transfer)
{
if (connectedClients.Any(c=> c.Connection == null))
{
int sdfgsdfg = 1;
}
Client recipient = connectedClients.Find(c => c.Connection == transfer.Connection);
#if CLIENT
UpdateFileTransferIndicator(recipient);
@@ -1888,7 +1893,7 @@ namespace Barotrauma.Networking
var clientsToKick = connectedClients.FindAll(c => c.KickVoteCount >= connectedClients.Count * KickVoteRequiredRatio);
foreach (Client c in clientsToKick)
{
SendChatMessage(c.name + " has been kicked from the server.", ChatMessageType.Server, null);
SendChatMessage(c.Name + " has been kicked from the server.", ChatMessageType.Server, null);
KickClient(c, "Kicked by vote");
}
@@ -1922,7 +1927,7 @@ namespace Barotrauma.Networking
if (client.Permissions != ClientPermissions.None)
{
clientPermissions.Add(new SavedClientPermission(
client.name,
client.Name,
client.Connection.RemoteEndPoint.Address.ToString(),
client.Permissions));
}
@@ -1989,7 +1994,7 @@ namespace Barotrauma.Networking
gender = Gender.Male;
headSpriteId = 0;
DebugConsole.Log("Received invalid characterinfo from \"" + sender.name + "\"! { " + e.Message + " }");
DebugConsole.Log("Received invalid characterinfo from \"" + sender.Name + "\"! { " + e.Message + " }");
}
List<JobPrefab> jobPreferences = new List<JobPrefab>();
@@ -2002,9 +2007,9 @@ namespace Barotrauma.Networking
if (jobPrefab != null) jobPreferences.Add(jobPrefab);
}
sender.characterInfo = new CharacterInfo(Character.HumanConfigFile, sender.name, gender);
sender.characterInfo.HeadSpriteId = headSpriteId;
sender.jobPreferences = jobPreferences;
sender.CharacterInfo = new CharacterInfo(Character.HumanConfigFile, sender.Name, gender);
sender.CharacterInfo.HeadSpriteId = headSpriteId;
sender.JobPreferences = jobPreferences;
}
public void AssignJobs(List<Client> unassigned, bool assignHost)
@@ -2049,8 +2054,8 @@ namespace Barotrauma.Networking
//if any of the players has chosen a job that is Always Allowed, give them that job
for (int i = unassigned.Count - 1; i >= 0; i--)
{
if (!unassigned[i].jobPreferences[0].AllowAlways) continue;
unassigned[i].assignedJob = unassigned[i].jobPreferences[0];
if (!unassigned[i].JobPreferences[0].AllowAlways) continue;
unassigned[i].AssignedJob = unassigned[i].JobPreferences[0];
unassigned.RemoveAt(i);
}
@@ -2068,7 +2073,7 @@ namespace Barotrauma.Networking
//find the client that wants the job the most, or force it to random client if none of them want it
Client assignedClient = FindClientWithJobPreference(unassigned, jobPrefab, true);
assignedClient.assignedJob = jobPrefab;
assignedClient.AssignedJob = jobPrefab;
assignedClientCount[jobPrefab]++;
unassigned.Remove(assignedClient);
@@ -2080,18 +2085,18 @@ namespace Barotrauma.Networking
//find a suitable job for the rest of the players
foreach (Client c in unassigned)
{
foreach (JobPrefab preferredJob in c.jobPreferences)
foreach (JobPrefab preferredJob in c.JobPreferences)
{
//the maximum number of players that can have this job hasn't been reached yet
// -> assign it to the client
if (assignedClientCount[preferredJob] < preferredJob.MaxNumber)
{
c.assignedJob = preferredJob;
c.AssignedJob = preferredJob;
assignedClientCount[preferredJob]++;
break;
}
//none of the jobs the client prefers are available anymore
else if (preferredJob == c.jobPreferences.Last())
else if (preferredJob == c.JobPreferences.Last())
{
//find all jobs that are still available
var remainingJobs = JobPrefab.List.FindAll(jp => assignedClientCount[preferredJob] < jp.MaxNumber);
@@ -2099,14 +2104,14 @@ namespace Barotrauma.Networking
//all jobs taken, give a random job
if (remainingJobs.Count == 0)
{
DebugConsole.ThrowError("Failed to assign a suitable job for \"" + c.name + "\" (all jobs already have the maximum numbers of players). Assigning a random job...");
c.assignedJob = JobPrefab.List[Rand.Range(0, JobPrefab.List.Count)];
assignedClientCount[c.assignedJob]++;
DebugConsole.ThrowError("Failed to assign a suitable job for \"" + c.Name + "\" (all jobs already have the maximum numbers of players). Assigning a random job...");
c.AssignedJob = JobPrefab.List[Rand.Range(0, JobPrefab.List.Count)];
assignedClientCount[c.AssignedJob]++;
}
else //some jobs still left, choose one of them by random
{
c.assignedJob = remainingJobs[Rand.Range(0, remainingJobs.Count)];
assignedClientCount[c.assignedJob]++;
c.AssignedJob = remainingJobs[Rand.Range(0, remainingJobs.Count)];
assignedClientCount[c.AssignedJob]++;
}
}
}
@@ -2119,7 +2124,7 @@ namespace Barotrauma.Networking
Client preferredClient = null;
foreach (Client c in clients)
{
int index = c.jobPreferences.IndexOf(job);
int index = c.JobPreferences.IndexOf(job);
if (index == -1) index = 1000;
if (preferredClient == null || index < bestPreference)
@@ -179,7 +179,7 @@ namespace Barotrauma.Networking
DebugConsole.NewMessage(clName + " (" + inc.SenderConnection.RemoteEndPoint.Address.ToString() + ") couldn't join the server (name taken by the server)", Color.Red);
return;
}
Client nameTaken = ConnectedClients.Find(c => c.name.ToLower() == clName.ToLower());
Client nameTaken = ConnectedClients.Find(c => c.Name.ToLower() == clName.ToLower());
if (nameTaken != null)
{
if (nameTaken.Connection.RemoteEndPoint.Address.ToString() == inc.SenderEndPoint.Address.ToString())
@@ -211,7 +211,7 @@ namespace Barotrauma.Networking
ConnectedClients.Add(newClient);
#if CLIENT
GameMain.NetLobbyScreen.AddPlayer(newClient.name);
GameMain.NetLobbyScreen.AddPlayer(newClient.Name);
#endif
GameMain.Server.SendChatMessage(clName + " has joined the server.", ChatMessageType.Server, null);
@@ -82,7 +82,7 @@ namespace Barotrauma.Networking
//keep at least one event in the list (lastSentToAll == e.ID) so we can use it to keep track of the latest ID
events.RemoveAll(e => NetIdUtils.IdMoreRecent(lastSentToAll, e.ID));
if (server.ConnectedClients.Count(c => c.inGame) == 0 && events.Count > 1)
if (server.ConnectedClients.Count(c => c.InGame) == 0 && events.Count > 1)
{
events.RemoveRange(0, events.Count - 1);
}
@@ -144,21 +144,21 @@ namespace Barotrauma.Networking
bufferedEvent.IsProcessed = true;
}
var inGameClients = clients.FindAll(c => c.inGame && !c.NeedsMidRoundSync);
var inGameClients = clients.FindAll(c => c.InGame && !c.NeedsMidRoundSync);
if (inGameClients.Count > 0)
{
lastSentToAll = inGameClients[0].lastRecvEntityEventID;
inGameClients.ForEach(c => { if (NetIdUtils.IdMoreRecent(lastSentToAll, c.lastRecvEntityEventID)) lastSentToAll = c.lastRecvEntityEventID; });
lastSentToAll = inGameClients[0].LastRecvEntityEventID;
inGameClients.ForEach(c => { if (NetIdUtils.IdMoreRecent(lastSentToAll, c.LastRecvEntityEventID)) lastSentToAll = c.LastRecvEntityEventID; });
ServerEntityEvent firstEventToResend = events.Find(e => e.ID == (ushort)(lastSentToAll + 1));
if (firstEventToResend != null && (Timing.TotalTime - firstEventToResend.CreateTime) > 10.0f)
{
//it's been 10 seconds since this event was created
//kick everyone that hasn't received it yet, this is way too old
List<Client> toKick = inGameClients.FindAll(c => NetIdUtils.IdMoreRecent((UInt16)(lastSentToAll + 1), c.lastRecvEntityEventID));
List<Client> toKick = inGameClients.FindAll(c => NetIdUtils.IdMoreRecent((UInt16)(lastSentToAll + 1), c.LastRecvEntityEventID));
toKick.ForEach(c =>
{
DebugConsole.NewMessage(c.name + " was kicked due to excessive desync (expected old event " + c.lastRecvEntityEventID.ToString() + ")", Microsoft.Xna.Framework.Color.Red);
DebugConsole.NewMessage(c.Name + " was kicked due to excessive desync (expected old event " + c.LastRecvEntityEventID.ToString() + ")", Microsoft.Xna.Framework.Color.Red);
server.DisconnectClient(c, "", "You have been disconnected because of excessive desync");
}
);
@@ -168,17 +168,17 @@ namespace Barotrauma.Networking
{
//the client is waiting for an event that we don't have anymore
//(the ID they're expecting is smaller than the ID of the first event in our list)
List<Client> toKick = inGameClients.FindAll(c => NetIdUtils.IdMoreRecent(events[0].ID, (UInt16)(c.lastRecvEntityEventID + 1)));
List<Client> toKick = inGameClients.FindAll(c => NetIdUtils.IdMoreRecent(events[0].ID, (UInt16)(c.LastRecvEntityEventID + 1)));
toKick.ForEach(c =>
{
DebugConsole.NewMessage(c.name + " was kicked due to excessive desync (expected " + c.lastRecvEntityEventID.ToString() + ", last available is " + events[0].ID.ToString() + ")", Microsoft.Xna.Framework.Color.Red);
DebugConsole.NewMessage(c.Name + " was kicked due to excessive desync (expected " + c.LastRecvEntityEventID.ToString() + ", last available is " + events[0].ID.ToString() + ")", Microsoft.Xna.Framework.Color.Red);
server.DisconnectClient(c, "", "You have been disconnected because of excessive desync");
}
);
}
}
var timedOutClients = clients.FindAll(c => c.inGame && c.NeedsMidRoundSync && Timing.TotalTime > c.MidRoundSyncTimeOut);
var timedOutClients = clients.FindAll(c => c.InGame && c.NeedsMidRoundSync && Timing.TotalTime > c.MidRoundSyncTimeOut);
timedOutClients.ForEach(c => GameMain.Server.DisconnectClient(c, "", "You have been disconnected because syncing your client with the server took too long."));
bufferedEvents.RemoveAll(b => b.IsProcessed);
@@ -225,7 +225,7 @@ namespace Barotrauma.Networking
foreach (NetEntityEvent entityEvent in eventsToSync)
{
(entityEvent as ServerEntityEvent).Sent = true;
client.entityEventLastSent[entityEvent.ID] = (float)NetTime.Now;
client.EntityEventLastSent[entityEvent.ID] = (float)NetTime.Now;
}
if (client.NeedsMidRoundSync)
@@ -265,7 +265,7 @@ namespace Barotrauma.Networking
//find the index of the first event the client hasn't received
int startIndex = eventList.Count;
while (startIndex > 0 &&
NetIdUtils.IdMoreRecent(eventList[startIndex - 1].ID,client.lastRecvEntityEventID))
NetIdUtils.IdMoreRecent(eventList[startIndex - 1].ID,client.LastRecvEntityEventID))
{
startIndex--;
}
@@ -274,7 +274,7 @@ namespace Barotrauma.Networking
{
//find the first event that hasn't been sent in 1.5 * roundtriptime or at all
float lastSent = 0;
client.entityEventLastSent.TryGetValue(eventList[i].ID, out lastSent);
client.EntityEventLastSent.TryGetValue(eventList[i].ID, out lastSent);
if (lastSent > NetTime.Now - client.Connection.AverageRoundtripTime * 1.5f)
{
@@ -326,7 +326,7 @@ namespace Barotrauma.Networking
if (entityID == 0)
{
msg.ReadPadBits();
sender.lastSentEntityEventID++;
sender.LastSentEntityEventID++;
continue;
}
@@ -335,11 +335,11 @@ namespace Barotrauma.Networking
IClientSerializable entity = Entity.FindEntityByID(entityID) as IClientSerializable;
//skip the event if we've already received it or if the entity isn't found
if (thisEventID != (UInt16)(sender.lastSentEntityEventID + 1) || entity == null)
if (thisEventID != (UInt16)(sender.LastSentEntityEventID + 1) || entity == null)
{
if (GameSettings.VerboseLogging)
{
if (thisEventID != (UInt16) (sender.lastSentEntityEventID + 1))
if (thisEventID != (UInt16) (sender.LastSentEntityEventID + 1))
{
DebugConsole.NewMessage("received msg " + thisEventID, Microsoft.Xna.Framework.Color.Red);
}
@@ -365,7 +365,7 @@ namespace Barotrauma.Networking
buffer.Write(msg.ReadBytes(msgLength - 2));
BufferEvent(new BufferedEvent(sender, sender.Character, characterStateID, entity, buffer));
sender.lastSentEntityEventID++;
sender.LastSentEntityEventID++;
}
msg.ReadPadBits();
}
@@ -400,9 +400,9 @@ namespace Barotrauma.Networking
foreach (Client c in server.ConnectedClients)
{
c.entityEventLastSent.Clear();
c.lastRecvEntityEventID = 0;
c.lastSentEntityEventID = 0;
c.EntityEventLastSent.Clear();
c.LastRecvEntityEventID = 0;
c.LastSentEntityEventID = 0;
}
}
}
@@ -111,7 +111,7 @@ namespace Barotrauma.Networking
private List<Client> GetClientsToRespawn()
{
return networkMember.ConnectedClients.FindAll(c =>
c.inGame &&
c.InGame &&
(!c.SpectateOnly || !((GameServer)networkMember).AllowSpectating) &&
(c.Character == null || c.Character.IsDead));
}
@@ -408,10 +408,10 @@ namespace Barotrauma.Networking
//all characters are in Team 1 in game modes/missions with only one team.
//if at some point we add a game mode with multiple teams where respawning is possible, this needs to be reworked
c.TeamID = 1;
if (c.characterInfo == null) c.characterInfo = new CharacterInfo(Character.HumanConfigFile, c.name);
if (c.CharacterInfo == null) c.CharacterInfo = new CharacterInfo(Character.HumanConfigFile, c.Name);
}
List<CharacterInfo> characterInfos = clients.Select(c => c.characterInfo).ToList();
List<CharacterInfo> characterInfos = clients.Select(c => c.CharacterInfo).ToList();
if (server.Character != null && server.Character.IsDead)
{
characterInfos.Add(server.CharacterInfo);
@@ -420,7 +420,7 @@ namespace Barotrauma.Networking
server.AssignJobs(clients, server.Character != null && server.Character.IsDead);
foreach (Client c in clients)
{
c.characterInfo.Job = new Job(c.assignedJob);
c.CharacterInfo.Job = new Job(c.AssignedJob);
}
//the spawnpoints where the characters will spawn
@@ -460,7 +460,7 @@ namespace Barotrauma.Networking
{
#endif
clients[i].Character = character;
GameServer.Log(string.Format("Respawning {0} ({1}) as {2}", clients[i].name, clients[i].Connection?.RemoteEndPoint?.Address, characterInfos[i].Job.Name), ServerLog.MessageType.Spawning);
GameServer.Log(string.Format("Respawning {0} ({1}) as {2}", clients[i].Name, clients[i].Connection?.RemoteEndPoint?.Address, characterInfos[i].Job.Name), ServerLog.MessageType.Spawning);
#if CLIENT
}
@@ -127,7 +127,7 @@ namespace Barotrauma
kicked.AddKickVote(sender);
Client.UpdateKickVotes(GameMain.Server.ConnectedClients);
GameMain.Server.SendChatMessage(sender.name + " has voted to kick " + kicked.name, ChatMessageType.Server, null);
GameMain.Server.SendChatMessage(sender.Name + " has voted to kick " + kicked.Name, ChatMessageType.Server, null);
}
break;