using System; using CitizenFX.Core; using CitizenFX.Core.UI; using Framework.Client.Utils; using Framework.Shared.Models; using NativeUI; namespace Framework.Client.Handler { public static class JoinHandler { private static UIMenu _registerMenu; private static PlayerData _data; public static void Init() { _registerMenu = new UIMenu("PrincepRP", "Registrierung"); Client.Menus.Add(_registerMenu); var sex = new UIMenuItem("Geschlecht setzen", "0 -> Männlich, 1 -> Weiblich"); var height = new UIMenuItem("Größe setzen", "Wert in cm"); var firstName = new UIMenuItem("Vornamen setzen"); var lastName = new UIMenuItem("Nachnamen setzen"); var birth = new UIMenuItem("Geburtsdatum setzen", "DD.MM.JJJJ, min. 18 Jahre"); var skin = new UIMenuItem("Skin erstellen"); var done = new UIMenuItem("Charackter erstellen"); _registerMenu.AddItem(sex); _registerMenu.AddItem(height); _registerMenu.AddItem(firstName); _registerMenu.AddItem(lastName); _registerMenu.AddItem(birth); _registerMenu.AddItem(skin); _registerMenu.AddItem(done); sex.Activated += async (sender, item) => { var input = await UI.DisplayTextInput("Geschlecht setzen", 1); if (int.TryParse(input, out var result)) { _data.sex = result == 0; if (_data.sex) sex.Description = "Männlich"; else sex.Description = "Weiblich"; } else { Screen.ShowNotification("~r~Geschlecht setzen: 0 -> Männlich, 1 -> Weiblich"); } }; height.Activated += async (sender, item) => { var input = await UI.DisplayTextInput("Größe setzen", 3); if (int.TryParse(input, out var result)) { _data.height = result; height.Description = _data.height + "cm"; } else { Screen.ShowNotification("~r~Größe setzen: Wert in cm"); } }; firstName.Activated += async (sender, item) => { var input = await UI.DisplayTextInput("Vornamen setzen", 60); _data.firstName = input; firstName.Description = _data.firstName; }; lastName.Activated += async (sender, item) => { var input = await UI.DisplayTextInput("Nachnamen setzen", 60); _data.lastName = input; lastName.Description = _data.lastName; }; birth.Activated += async (sender, item) => { var input = await UI.DisplayTextInput("Geburtsdatum setzen", 10); _data.birth = input; birth.Description = _data.birth; }; done.Activated += (sender, item) => { // TODO: Checks _registerMenu.Visible = false; BaseScript.TriggerServerEvent("server:spawn:register", _data); }; } public static void Register() { _data = new PlayerData(); _registerMenu.Visible = true; } public static void ChooseChar(dynamic[] chars) { Debug.WriteLine("ChooseChar"); } } }