Skip to content

Commit 3543f5e

Browse files
committed
Adding input sanitization for join code
1 parent ac9ac15 commit 3543f5e

File tree

2 files changed

+34
-4
lines changed

2 files changed

+34
-4
lines changed

Assets/BossRoom/Prefabs/UI/LobbyUI.prefab

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -975,7 +975,20 @@ MonoBehaviour:
975975
m_Calls: []
976976
m_OnValueChanged:
977977
m_PersistentCalls:
978-
m_Calls: []
978+
m_Calls:
979+
- m_Target: {fileID: 3432713757992463987}
980+
m_TargetAssemblyTypeName: Unity.Multiplayer.Samples.BossRoom.Visual.LobbyJoiningUI,
981+
Unity.Multiplayer.Samples.BossRoom.Client
982+
m_MethodName: SanitizeJoinCodeInputText
983+
m_Mode: 1
984+
m_Arguments:
985+
m_ObjectArgument: {fileID: 0}
986+
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
987+
m_IntArgument: 0
988+
m_FloatArgument: 0
989+
m_StringArgument:
990+
m_BoolArgument: 0
991+
m_CallState: 2
979992
m_CaretColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
980993
m_CustomCaretColor: 0
981994
m_SelectionColor: {r: 0.65882355, g: 0.80784315, b: 1, a: 0.7529412}
@@ -4298,7 +4311,7 @@ MonoBehaviour:
42984311
m_faceColor:
42994312
serializedVersion: 2
43004313
rgba: 4294967295
4301-
m_fontSize: 20.3
4314+
m_fontSize: 33
43024315
m_fontSizeBase: 36
43034316
m_fontWeight: 400
43044317
m_enableAutoSizing: 1
@@ -5105,7 +5118,7 @@ MonoBehaviour:
51055118
m_faceColor:
51065119
serializedVersion: 2
51075120
rgba: 4294967295
5108-
m_fontSize: 20.3
5121+
m_fontSize: 33
51095122
m_fontSizeBase: 36
51105123
m_fontWeight: 400
51115124
m_enableAutoSizing: 1

Assets/BossRoom/Scripts/Client/UI/Lobby/LobbyJoiningUI.cs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using System;
22
using System.Collections.Generic;
3+
using System.Text.RegularExpressions;
34
using Unity.Multiplayer.Samples.BossRoom.Shared.Infrastructure;
45
using Unity.Multiplayer.Samples.BossRoom.Shared.Net.UnityServices.Lobbies;
56
using UnityEngine;
@@ -23,6 +24,9 @@ public class LobbyJoiningUI : MonoBehaviour
2324
IDisposable m_Subscriptions;
2425
List<LobbyListItemUI> m_LobbyListItems = new List<LobbyListItemUI>();
2526

27+
// Adding this here until it is available in the Lobby package itself
28+
const string k_LobbyJoinCodeAlphabet = "ACDEFGHJKMNPRTWXY3467";
29+
2630
void Awake()
2731
{
2832
m_LobbyListItemPrototype.gameObject.SetActive(false);
@@ -57,9 +61,22 @@ void InjectDependenciesAndInitialize(
5761
m_Subscriptions = localLobbiesRefreshedSub.Subscribe(UpdateUI);
5862
}
5963

64+
/// <summary>
65+
/// Added to the InputField component's OnValueChanged callback for the join code text.
66+
/// </summary>
67+
public void SanitizeJoinCodeInputText()
68+
{
69+
m_JoinCodeField.text = SanitizeJoinCode(m_JoinCodeField.text);
70+
}
71+
72+
string SanitizeJoinCode(string dirtyString)
73+
{
74+
return Regex.Replace(dirtyString.ToUpper(), $"[^{k_LobbyJoinCodeAlphabet}]", "");
75+
}
76+
6077
public void OnJoinButtonPressed()
6178
{
62-
m_LobbyUIMediator.JoinLobbyWithCodeRequest(m_JoinCodeField.text.ToUpper());
79+
m_LobbyUIMediator.JoinLobbyWithCodeRequest(SanitizeJoinCode(m_JoinCodeField.text));
6380
}
6481

6582
void PeriodicRefresh(float _)

0 commit comments

Comments
 (0)