/// <summary>
        /// Say something through chat system
        /// </summary>
        /// <param Name="place">Pick user (private message) channel or battle</param>
        /// <param Name="channel">Channel or User Name</param>
        /// <param Name="inputtext">chat text</param>
        /// <param Name="isEmote">is message emote? (channel or battle only)</param>
        /// <param Name="linePrefix">text to be inserted in front of each line (example: "!pm xyz")</param>
        public async Task Say(SayPlace place, string channel, string inputtext, bool isEmote, string linePrefix = "")
        {
            if (String.IsNullOrEmpty(inputtext)) return;
            var lines = inputtext.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var text in lines)
            {
                if (String.IsNullOrEmpty(text)) continue;

                var sentText = linePrefix + text;

                var args = new SayingEventArgs(place, channel, sentText, isEmote);
                Saying(this, args);
                if (args.Cancel) continue;

                switch (place)
                {
                    case SayPlace.Channel:
                        if (!JoinedChannels.ContainsKey(args.Channel)) JoinChannel(args.Channel);
                        if (args.IsEmote) await con.SendCommand("SAYEX", args.Channel, args.Text);
                        else await con.SendCommand("SAY", args.Channel, args.Text);
                        break;

                    case SayPlace.User:
                        await con.SendCommand("SAYPRIVATE", args.Channel, args.Text);
                        break;

                    case SayPlace.Battle:
                        if (args.IsEmote) await con.SendCommand("SAYBATTLEEX", args.Text);
                        else await con.SendCommand("SAYBATTLE", args.Text);
                        break;
                    case SayPlace.BattlePrivate:
                        if (args.IsEmote) await con.SendCommand("SAYBATTLEPRIVATEEX", channel, args.Text);
                        else await con.SendCommand("SAYBATTLEPRIVATE", channel, args.Text);
                        break;
                }
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Say something through chat system
        /// </summary>
        /// <param Name="place">Pick user (private message) channel or battle</param>
        /// <param Name="channel">Channel or User Name</param>
        /// <param Name="inputtext">chat text</param>
        /// <param Name="isEmote">is message emote? (channel or battle only)</param>
        /// <param Name="linePrefix">text to be inserted in front of each line (example: "!pm xyz")</param>
        public async Task Say(SayPlace place, string channel, string inputtext, bool isEmote, string linePrefix = "")
        {
            if (String.IsNullOrEmpty(inputtext))
            {
                return;
            }
            var lines = inputtext.Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries);

            foreach (var text in lines)
            {
                if (String.IsNullOrEmpty(text))
                {
                    continue;
                }

                var sentText = linePrefix + text;

                var args = new SayingEventArgs(place, channel, sentText, isEmote);
                Saying(this, args);
                if (args.Cancel)
                {
                    continue;
                }

                switch (place)
                {
                case SayPlace.Channel:
                    if (!JoinedChannels.ContainsKey(args.Channel))
                    {
                        JoinChannel(args.Channel);
                    }
                    if (args.IsEmote)
                    {
                        await con.SendCommand("SAYEX", args.Channel, args.Text);
                    }
                    else
                    {
                        await con.SendCommand("SAY", args.Channel, args.Text);
                    }
                    break;

                case SayPlace.User:
                    await con.SendCommand("SAYPRIVATE", args.Channel, args.Text);

                    break;

                case SayPlace.Battle:
                    if (args.IsEmote)
                    {
                        await con.SendCommand("SAYBATTLEEX", args.Text);
                    }
                    else
                    {
                        await con.SendCommand("SAYBATTLE", args.Text);
                    }
                    break;

                case SayPlace.BattlePrivate:
                    if (args.IsEmote)
                    {
                        await con.SendCommand("SAYBATTLEPRIVATEEX", channel, args.Text);
                    }
                    else
                    {
                        await con.SendCommand("SAYBATTLEPRIVATE", channel, args.Text);
                    }
                    break;
                }
            }
        }