Esempio n. 1
0
        /// <summary>
        /// Disables the player for the given <paramref name="reason"/>
        /// </summary>
        /// <param name="reason">The reason why the player was disabled.</param>
        /// <param name="flags">Flags to dictate where this event is logged to.</param>
        public virtual void Disable(string reason = "", DisableFlags flags = DisableFlags.WriteToLog)
        {
            LastThreat = DateTime.UtcNow;
            SetBuff(BuffID.Frozen, 330, true);
            SetBuff(BuffID.Stoned, 330, true);
            SetBuff(BuffID.Webbed, 330, true);

            if (ActiveChest != -1)
            {
                ActiveChest = -1;
                SendData(PacketTypes.ChestOpen, "", -1);
            }

            if (!string.IsNullOrEmpty(reason))
            {
                if ((DateTime.UtcNow - LastDisableNotification).TotalMilliseconds > 5000)
                {
                    if (flags.HasFlag(DisableFlags.WriteToConsole))
                    {
                        if (flags.HasFlag(DisableFlags.WriteToLog))
                        {
                            TShock.Log.ConsoleInfo("Player {0} has been disabled for {1}.", Name, reason);
                        }
                        else
                        {
                            Server.SendInfoMessage("Player {0} has been disabled for {1}.", Name, reason);
                        }
                    }

                    LastDisableNotification = DateTime.UtcNow;
                }
            }

            /*
             * Calling new StackTrace() is incredibly expensive, and must be disabled
             * in release builds.  Use a conditional call instead.
             */
            LogStackFrame();
        }
Esempio n. 2
0
        /// <summary>
        /// Disables the player for the given <paramref name="reason"/>
        /// </summary>
        /// <param name="reason">The reason why the player was disabled.</param>
        /// <param name="flags">Flags to dictate where this event is logged to.</param>
        public virtual void Disable(string reason = "", DisableFlags flags = DisableFlags.WriteToLog)
        {
            LastThreat = DateTime.UtcNow;
            SetBuff(BuffID.Frozen, 330, true);
            SetBuff(BuffID.Stoned, 330, true);
            SetBuff(BuffID.Webbed, 330, true);

            if (ActiveChest != -1)
            {
                ActiveChest = -1;
                SendData(PacketTypes.ChestOpen, "", -1);
            }

            if (!string.IsNullOrEmpty(reason))
            {
                if ((DateTime.UtcNow - LastDisableNotification).TotalMilliseconds > 5000)
                {
                    if (flags.HasFlag(DisableFlags.WriteToConsole))
                    {
                        if (flags.HasFlag(DisableFlags.WriteToLog))
                        {
                            TShock.Log.ConsoleInfo("Player {0} has been disabled for {1}.", Name, reason);
                        }
                        else
                        {
                            Server.SendInfoMessage("Player {0} has been disabled for {1}.", Name, reason);
                        }
                    }

                    LastDisableNotification = DateTime.UtcNow;
                }
            }

            var trace = new StackTrace();
            StackFrame frame = null;
            frame = trace.GetFrame(1);
            if (frame != null && frame.GetMethod().DeclaringType != null)
                TShock.Log.Debug(frame.GetMethod().DeclaringType.Name + " called Disable().");
        }
Esempio n. 3
0
        /// <summary>
        /// Disables the player for the given <paramref name="reason"/>
        /// </summary>
        /// <param name="reason">The reason why the player was disabled.</param>
        /// <param name="flags">Flags to dictate where this event is logged to.</param>
        public virtual void Disable(string reason = "", DisableFlags flags = DisableFlags.WriteToLog)
        {
            LastThreat = DateTime.UtcNow;
            SetBuff(BuffID.Frozen, 330, true);
            SetBuff(BuffID.Stoned, 330, true);
            SetBuff(BuffID.Webbed, 330, true);

            if (ActiveChest != -1)
            {
                ActiveChest = -1;
                SendData(PacketTypes.ChestOpen, "", -1);
            }

            if (!string.IsNullOrEmpty(reason))
            {
                if ((DateTime.UtcNow - LastDisableNotification).TotalMilliseconds > 5000)
                {
                    if (flags.HasFlag(DisableFlags.WriteToConsole))
                    {
                        if (flags.HasFlag(DisableFlags.WriteToLog))
                        {
                            TShock.Log.ConsoleInfo("Player {0} has been disabled for {1}.", Name, reason);
                        }
                        else
                        {
                            Server.SendInfoMessage("Player {0} has been disabled for {1}.", Name, reason);
                        }
                    }

                    LastDisableNotification = DateTime.UtcNow;
                }
            }

            /*
             * Calling new StackTrace() is incredibly expensive, and must be disabled
             * in release builds.  Use a conditional call instead.
             */
            LogStackFrame();
        }