Esempio n. 1
0
        protected virtual void ApplyName(Mobile m, TEntity t, string name)
        {
            if (m == null || t == null)
            {
                return;
            }

            if (String.IsNullOrWhiteSpace(name))
            {
                m.SendMessage(0x22, "You cannot use a blank name.");
                OpenGump(m, t);
                return;
            }

            name = Utility.FixHtml(name.Trim());

            if (!NameVerification.Validate(name, 2, 20, true, t is Item, true, 1, NameVerification.SpaceDashPeriodQuote))
            {
                m.SendMessage(0x22, "That name is unacceptable.");
                OpenGump(m, t);
                return;
            }

            var item = t as Item;

            if (item != null)
            {
                if (item.Name == name)
                {
                    m.SendMessage(0x22, "The item is already named {0}.", name);
                    OpenGump(m, t);
                    return;
                }

                item.Name = name;

                m.SendMessage(0x55, "The item has been renamed.");
                Delete();
                return;
            }

            var mob = t as Mobile;

            if (mob != null)
            {
                if (mob.RawName == name)
                {
                    m.SendMessage(0x22, "{0} are already named {1}.", mob == m ? "You" : "They", name);
                    OpenGump(m, t);
                    return;
                }

                mob.RawName = name;

                m.SendMessage(0x55, "{0} name has been changed.", mob == m ? "Your" : "Their");
                Delete();

                if (mob is PlayerMobile)
                {
                    var pm = (PlayerMobile)mob;

                    PlayerNames.Register(pm);
                    PlayerNames.ValidateSharedName(pm);
                }

                return;
            }

            m.SendMessage(0x22, "Could not rename that object.");
        }