Esempio n. 1
0
        public Member CreateMember(string pseudo, string password, string firstName, string lastName, string Email, DateTime?birthDate, Role role = Role.Climber, string picturePath = null)
        {
            var member = Members.Create();

            member.Pseudo      = pseudo;
            member.Password    = password;
            member.Role        = role;
            member.FirstName   = firstName;
            member.LastName    = lastName;
            member.Email       = Email;
            member.BirthDate   = birthDate;
            member.Age         = DateTime.Now.Year - birthDate.Value.Year;
            member.PicturePath = picturePath;
            Members.Add(member);
            return(member);
        }
Esempio n. 2
0
        public async Task NewMember([Remainder] string memberName)
        {
            // Hard name length cap
            if (memberName.Length > Limits.MaxMemberNameLength)
            {
                throw Errors.MemberNameTooLongError(memberName.Length);
            }

            // Warn if member name will be unproxyable (with/without tag)
            if (memberName.Length > Context.SenderSystem.MaxMemberNameLength)
            {
                var msg = await Context.Channel.SendMessageAsync($"{Emojis.Warn} Member name too long ({memberName.Length} > {Context.SenderSystem.MaxMemberNameLength} characters), this member will be unproxyable. Do you want to create it anyway? (You can change the name later, or set a member display name)");

                if (!await Context.PromptYesNo(msg))
                {
                    throw new PKError("Member creation cancelled.");
                }
            }

            // Warn if there's already a member by this name
            var existingMember = await Members.GetByName(Context.SenderSystem, memberName);

            if (existingMember != null)
            {
                var msg = await Context.Channel.SendMessageAsync($"{Emojis.Warn} You already have a member in your system with the name \"{existingMember.Name.Sanitize()}\" (with ID `{existingMember.Hid}`). Do you want to create another member with the same name?");

                if (!await Context.PromptYesNo(msg))
                {
                    throw new PKError("Member creation cancelled.");
                }
            }

            // Create the member
            var member = await Members.Create(Context.SenderSystem, memberName);

            // Send confirmation and space hint
            await Context.Channel.SendMessageAsync($"{Emojis.Success} Member \"{memberName.Sanitize()}\" (`{member.Hid}`) registered! See the user guide for commands for editing this member: https://pluralkit.me/guide#member-management");

            if (memberName.Contains(" "))
            {
                await Context.Channel.SendMessageAsync($"{Emojis.Note} Note that this member's name contains spaces. You will need to surround it with \"double quotes\" when using commands referring to it, or just use the member's 5-character ID (which is `{member.Hid}`).");
            }

            await ProxyCache.InvalidateResultsForSystem(Context.SenderSystem);
        }