コード例 #1
0
        public static void TellAbove(this Client player, string prefix, string message)
        {
            if (player == null)
            {
                return;
            }

            //macros
            message = Format.ReceiverMacros(player, message);

            ChatMessageServer cm = ChatMessageServer.CreateText(prefix + message);

            cm.Position = ChatPosition.AboveActionBar;
            player.Queue.Queue(cm);
        }
コード例 #2
0
ファイル: Format.cs プロジェクト: mctraveler/MineSharp
        public static List <ChatMessageServer> Split(string prefix, string message, ChatPosition pos)
        {
            List <ChatMessageServer> msg = new List <ChatMessageServer>();

            if (prefix.Length + message.Length <= wrapLength)
            {
                msg.Add(ChatMessageServer.CreateText(prefix + message, pos));
                return(msg);
            }

            //Split long messages
            if (prefix.Length > 57)
            {
                return(Split("", prefix + message, pos)); //Split long prefix too
            }
            int max = 57 - prefix.Length;

            if (max <= 30)
            {
                msg.Add(ChatMessageServer.CreateText(prefix));
                prefix = "";
                max    = 57;
            }

            string[] parts = message.Split(' ');

            string m = "";

            foreach (string p in parts)
            {
                //Fit
                if (m.Length + p.Length + (m == "" ? 0 : 1) <= max)
                {
                    if (m == "")
                    {
                        m = p;
                    }
                    else
                    {
                        m += " " + p;
                    }
                    continue;
                }
                //Dont fit, push it
                if (m == "")
                {
                    int step = max - prefix.Length;
                    for (int n = 0; n < p.Length; n += step)
                    {
                        if (n + step < p.Length)
                        {
                            msg.Add(ChatMessageServer.CreateText(prefix + p.Substring(n, step)));
                        }
                        else
                        {
                            msg.Add(ChatMessageServer.CreateText(prefix + p.Substring(n)));
                        }
                    }
                    continue;
                }
                //Send old, start a new
                msg.Add(ChatMessageServer.CreateText(prefix + m));
                m = p;
            }
            if (m != "")
            {
                msg.Add(ChatMessageServer.CreateText(prefix + m));
            }

            return(msg);
        }