예제 #1
0
        /// <summary>
        /// Determines if a player has permission to use a specific creative power
        /// </summary>
        /// <param name="powerType"></param>
        /// <param name="player"></param>
        /// <returns></returns>
        public static bool HasPermission(CreativePowerTypes powerType, TSPlayer player)
        {
            if (!PowerToPermissionMap.ContainsKey(powerType))
            {
                TShock.Log.ConsoleDebug("CreativePowerHandler received permission check request for unknown creative power");
                return(false);
            }

            string permission = PowerToPermissionMap[powerType];

            //prevent being told about the spawnrate permission on join until relogic fixes
            if (!player.HasReceivedNPCPermissionError && powerType == CreativePowerTypes.SetSpawnRate)
            {
                player.HasReceivedNPCPermissionError = true;
                return(false);
            }

            if (!player.HasPermission(permission))
            {
                player.SendErrorMessage("You do not have permission to {0}.", PermissionToDescriptionMap[permission]);
                return(false);
            }

            return(true);
        }
예제 #2
0
 /// <summary>
 /// Reads the power type from the stream
 /// </summary>
 /// <param name="data"></param>
 public void Deserialize(MemoryStream data)
 {
     PowerType = (CreativePowerTypes)data.ReadInt16();
 }