Added:
- Chat message cleaning to prevent HTML injection - Player hand size to game state - Deck automatically creates sets when it doesnt have any cards left
This commit is contained in:
13
Mau/Deck.cs
13
Mau/Deck.cs
@@ -6,6 +6,12 @@ public class Deck
|
|||||||
public List<Card> UsedDeck = new();
|
public List<Card> UsedDeck = new();
|
||||||
|
|
||||||
public Deck()
|
public Deck()
|
||||||
|
{
|
||||||
|
CreateSet();
|
||||||
|
ShuffleDeck();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CreateSet()
|
||||||
{
|
{
|
||||||
foreach (CardType cardType in Enum.GetValues(typeof(CardType)))
|
foreach (CardType cardType in Enum.GetValues(typeof(CardType)))
|
||||||
{
|
{
|
||||||
@@ -21,7 +27,6 @@ public class Deck
|
|||||||
UnusedDeck.Add(new Card(cardType, cardValue));
|
UnusedDeck.Add(new Card(cardType, cardValue));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ShuffleDeck();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Card> GetUnusedDeck()
|
public List<Card> GetUnusedDeck()
|
||||||
@@ -56,6 +61,12 @@ public class Deck
|
|||||||
{
|
{
|
||||||
UnusedDeck.AddRange(UsedDeck);
|
UnusedDeck.AddRange(UsedDeck);
|
||||||
UsedDeck.Clear();
|
UsedDeck.Clear();
|
||||||
|
|
||||||
|
if (UnusedDeck.Count == 0)
|
||||||
|
{
|
||||||
|
CreateSet();
|
||||||
|
}
|
||||||
|
|
||||||
ShuffleDeck();
|
ShuffleDeck();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -33,10 +33,12 @@ public class PlayerDTO
|
|||||||
{
|
{
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
public string Id { get; set; }
|
public string Id { get; set; }
|
||||||
|
public int CardsLeft { get; set; }
|
||||||
|
|
||||||
public PlayerDTO(Player player)
|
public PlayerDTO(Player player)
|
||||||
{
|
{
|
||||||
Name = player.Connection.Name;
|
Name = player.Connection.Name;
|
||||||
Id = player.Connection.ConnectionId;
|
Id = player.Connection.ConnectionId;
|
||||||
|
CardsLeft = player.Hand.Count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
13
Room/Room.cs
13
Room/Room.cs
@@ -1,5 +1,6 @@
|
|||||||
using System.Net.WebSockets;
|
using System.Net.WebSockets;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
using MauMau_Server.Mau;
|
using MauMau_Server.Mau;
|
||||||
|
|
||||||
namespace MauMau_Server.Websockets;
|
namespace MauMau_Server.Websockets;
|
||||||
@@ -45,7 +46,12 @@ public class Room
|
|||||||
}
|
}
|
||||||
case "CHAT":
|
case "CHAT":
|
||||||
{
|
{
|
||||||
_chat.SendChatMessage(connection, message.Payload);
|
var cleanedMessage = StripHTML(message.Payload);
|
||||||
|
if (string.IsNullOrWhiteSpace(cleanedMessage))
|
||||||
|
{
|
||||||
|
cleanedMessage = "Mau!";
|
||||||
|
};
|
||||||
|
_chat.SendChatMessage(connection, cleanedMessage);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -103,4 +109,9 @@ public class Room
|
|||||||
{
|
{
|
||||||
return _connections.Count == 0;
|
return _connections.Count == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static string StripHTML(string input)
|
||||||
|
{
|
||||||
|
return Regex.Replace(input, "<.*?>", String.Empty);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user