Beispiel #1
0
        public virtual void Message(byte id, string message)
        {
            // Message should start with server color if no initial color
            if (message.Length > 0 && !(message[0] == '&' || message[0] == '%'))
            {
                message = Server.Config.DefaultColor + message;
            }
            message = Chat.Format(message, this);
            OnMessageRecievedEvent.Call(this, message);
            if (cancelmessage)
            {
                cancelmessage = false; return;
            }

            try {
                foreach (string raw in LineWrapper.Wordwrap(message))
                {
                    string line = raw;
                    if (!Supports(CpeExt.EmoteFix) && LineEndsInEmote(line))
                    {
                        line += '\'';
                    }

                    Send(Packet.Message(line, (CpeMessageType)id, hasCP437));
                }
            } catch (Exception e) {
                Logger.LogError(e);
            }
        }
Beispiel #2
0
        public virtual void Message(byte id, string message)
        {
            // Message should start with server color if no initial color
            if (message.Length > 0 && !(message[0] == '&' || message[0] == '%'))
            {
                message = Server.Config.DefaultColor + message;
            }
            message = Chat.Format(message, this);
            OnMessageRecievedEvent.Call(this, message);
            if (cancelmessage)
            {
                cancelmessage = false; return;
            }

            try {
                List <string> lines  = LineWrapper.Wordwrap(message);
                byte[]        packet = new byte[lines.Count * 66];

                for (int i = 0; i < lines.Count; i++)
                {
                    string line = lines[i];
                    if (!Supports(CpeExt.EmoteFix) && LineEndsInEmote(line))
                    {
                        line += '\'';
                    }
                    Packet.WriteMessage(line, id, hasCP437, packet, i * 66);
                }
                // So multi-line messages from multiple threads don't interleave
                Send(packet);
            } catch (Exception e) {
                Logger.LogError(e);
            }
        }
        public virtual void Message(byte type, string message)
        {
            // Message should start with server color if no initial color
            if (message.Length > 0 && !(message[0] == '&' || message[0] == '%'))
            {
                message = Server.Config.DefaultColor + message;
            }
            message = Chat.Format(message, this);
            OnMessageRecievedEvent.Call(this, message);
            if (cancelmessage)
            {
                cancelmessage = false; return;
            }

            try {
                SendLines(LineWrapper.Wordwrap(message), type);
            } catch (Exception e) {
                Logger.LogError(e);
            }
        }
Beispiel #4
0
        public virtual void Message(byte type, string message)
        {
            // Message should start with server color if no initial color
            if (message.Length > 0 && !(message[0] == '&' || message[0] == '%'))
            {
                message = "&S" + message;
            }
            message = Chat.Format(message, this);

            bool cancel = false;

            OnMessageRecievedEvent.Call(this, ref message, ref cancel);
            if (cancel)
            {
                return;
            }

            try {
                Session.SendChat(message);
            } catch (Exception e) {
                Logger.LogError(e);
            }
        }
        public virtual void Message(byte type, string message)
        {
            // Message should start with server color if no initial color
            if (message.Length > 0 && !(message[0] == '&' || message[0] == '%'))
            {
                message = "&S" + message;
            }
            message = Chat.Format(message, this);

            bool cancel = false;

            OnMessageRecievedEvent.Call(this, ref message, ref cancel);
            if (cancel)
            {
                return;
            }

            try {
                message = LineWrapper.CleanupColors(message, this);
                SendLines(LineWrapper.Wordwrap(message, hasEmoteFix), type);
            } catch (Exception e) {
                Logger.LogError(e);
            }
        }