Ejemplo n.º 1
0
        static void ChangeOnlineRank(Player who, Group newRank)
        {
            who.group      = newRank;
            who.AllowBuild = who.level.BuildAccess.CheckAllowed(who);
            if (who.hidden && who.hideRank < who.Rank)
            {
                who.hideRank = who.Rank;
            }

            // If player has explicit /color, don't change it
            string dbCol = PlayerDB.FindColor(who);

            if (dbCol.Length == 0)
            {
                who.color = newRank.Color;
            }
            who.SetPrefix();

            Entities.DespawnEntities(who, false);
            who.Send(Packet.UserType(who.UserType()));

            who.SendCurrentBlockPermissions();
            Entities.SpawnEntities(who, false);
            CheckBlockBindings(who);
        }
Ejemplo n.º 2
0
        /// <summary> Changes the rank of the given player from the old to the new rank. </summary>
        internal static void ChangeRank(string name, Group oldRank, Group newRank,
                                        Player who, bool saveToNewRank = true)
        {
            Server.reviewlist.Remove(name);
            oldRank.Players.Remove(name);
            oldRank.Players.Save();

            if (saveToNewRank)
            {
                newRank.Players.Add(name);
                newRank.Players.Save();
            }
            if (who == null)
            {
                return;
            }

            Entities.DespawnEntities(who, false);
            string dbCol = PlayerDB.FindColor(who);

            if (dbCol.Length == 0)
            {
                who.color = newRank.Color;
            }

            who.group      = newRank;
            who.AllowBuild = who.level.BuildAccess.CheckAllowed(who);
            if (who.hidden && who.hideRank < who.Rank)
            {
                who.hideRank = who.Rank;
            }

            who.SetPrefix();
            who.Send(Packet.UserType(who));
            who.SendCurrentBlockPermissions();
            Entities.SpawnEntities(who, false);
            CheckBlockBindings(who);
        }