feat: 닉네임 중복체크 기능 추가

This commit is contained in:
aube.lee
2025-02-28 14:39:25 +09:00
parent a946e8bf72
commit 0a90fe2607
3 changed files with 21 additions and 12 deletions

View File

@@ -407,6 +407,7 @@ MonoBehaviour:
confirmButton: {fileID: 3290386423334957786} confirmButton: {fileID: 3290386423334957786}
createButton: {fileID: 1887714318721360375} createButton: {fileID: 1887714318721360375}
playerDatas: [] playerDatas: []
nicknameCondition: {fileID: 6220890634190874460}
characterCreateUI_Modal: {fileID: 7298901665149865196} characterCreateUI_Modal: {fileID: 7298901665149865196}
blackCat_Spotlight: {fileID: 6897867871924581457} blackCat_Spotlight: {fileID: 6897867871924581457}
whiteCat_Spotlight: {fileID: 6223168446447065192} whiteCat_Spotlight: {fileID: 6223168446447065192}
@@ -2140,7 +2141,7 @@ GameObject:
m_Icon: {fileID: 0} m_Icon: {fileID: 0}
m_NavMeshLayer: 0 m_NavMeshLayer: 0
m_StaticEditorFlags: 0 m_StaticEditorFlags: 0
m_IsActive: 0 m_IsActive: 1
--- !u!224 &898800120090628923 --- !u!224 &898800120090628923
RectTransform: RectTransform:
m_ObjectHideFlags: 0 m_ObjectHideFlags: 0

View File

@@ -94,23 +94,18 @@ namespace TON
/// </summary> /// </summary>
public void ChangeNickname(string newNickname, Action<bool, string> callback) public void ChangeNickname(string newNickname, Action<bool, string> callback)
{ {
if (string.IsNullOrEmpty(newNickname) || newNickname.Length < 2)
{
callback?.Invoke(false, "닉네임은 2자 이상이어야 합니다.");
return;
}
Backend.BMember.UpdateNickname(newNickname, bro => Backend.BMember.UpdateNickname(newNickname, bro =>
{ {
if (bro.IsSuccess()) if (bro.IsSuccess())
{ {
Debug.Log("닉네임 변경 성공: " + newNickname); Debug.Log("닉네임 변경 성공: " + newNickname);
callback?.Invoke(true, "닉네임이 변경되었습니다."); callback?.Invoke(true, bro.GetCode());
} }
else else
{ {
Debug.LogError("닉네임 변경 실패: " + bro.GetMessage()); Debug.LogError("닉네임 변경 실패: " + bro.GetMessage());
callback?.Invoke(false, "닉네임 변경 실패: " + bro.GetMessage()); callback?.Invoke(false, bro.GetCode());
} }
}); });
} }

View File

@@ -13,7 +13,7 @@ namespace TON
[SerializeField] private Button confirmButton; // cancel 버튼 참조 [SerializeField] private Button confirmButton; // cancel 버튼 참조
[SerializeField] private Button createButton; // Create 버튼 참조 [SerializeField] private Button createButton; // Create 버튼 참조
[SerializeField] private List<PlayerData> playerDatas; [SerializeField] private List<PlayerData> playerDatas;
// [SerializeField] private List<HeartData> heartDatas; [SerializeField] private TextMeshProUGUI nicknameCondition;
public GameObject characterCreateUI_Modal; public GameObject characterCreateUI_Modal;
@@ -25,7 +25,6 @@ namespace TON
private void Start() private void Start()
{ {
playerDatas = PlayerDataManager.Singleton.playersData; playerDatas = PlayerDataManager.Singleton.playersData;
// heartDatas = HeartDataManager.Singleton.heartDatas;
// 처음에는 버튼을 비활성화 // 처음에는 버튼을 비활성화
createButton.interactable = false; createButton.interactable = false;
@@ -70,8 +69,9 @@ namespace TON
string nickname = characterName.text.Trim(); string nickname = characterName.text.Trim();
// 입력 값 검증 // 입력 값 검증
if (string.IsNullOrEmpty(nickname)) if (string.IsNullOrEmpty(nickname) || nickname.Length > 12)
{ {
// 닉네임은 비어있을 수 없고, 12자 이내로만 생성 가능
return; return;
} }
@@ -105,11 +105,24 @@ namespace TON
} }
else else
{ {
Debug.LogError("캐릭터 닉네임 저장 실패"); // 닉네임 중복체크
if (message.Equals("409"))
{
DuplicateNickname();
}
else
{
Debug.LogError("서버 오류 :: 캐릭터 닉네임 저장 실패");
}
} }
}); });
}); });
}
private void DuplicateNickname()
{
nicknameCondition.text = "이미 사용중인 이름입니다.";
nicknameCondition.color = Color.red;
} }
public void OnClickCancelButton() public void OnClickCancelButton()