public void SendCpeMessage(CpeMessageType type, string message) { if (type != CpeMessageType.Normal && !Supports(CpeExt.MessageTypes)) { if (type == CpeMessageType.Announcement) { type = CpeMessageType.Normal; } else { return; } } message = Chat.Format(message, this); message = LineWrapper.CleanupColors(message, this); Send(Packet.Message(message, type, hasCP437)); }
public virtual void SendMessage(byte id, string message) { // Message should start with server color if no initial color if (message.Length > 0 && !(message[0] == '&' || message[0] == '%')) { message = ServerConfig.DefaultColor + message; } message = Chat.Format(message, this); int totalTries = 0; OnMessageRecievedEvent.Call(this, message); if (cancelmessage) { cancelmessage = false; return; } retryTag : 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) { message = "&f" + message; totalTries++; if (totalTries < 10) { goto retryTag; } else { Logger.LogError(e); } } }