示例#1
0
        public ParsedLine(string from, string line, string room, IChatUser user, BotMessageType messageType)
        {
            this.User   = user;
            this.Tokens = new Tokens();

            ParseLine(from, room, line, messageType);
        }
        public ParsedLine(string from, string line, string room, IChatUser user, BotMessageType messageType)
        {
            this.User = user;
            this.Tokens = new Tokens();

            ParseLine(from, room, line, messageType);
        }
        private void SendMessage(string text, string jid, BotMessageType messageType)
        {
            //msg.from or jid
            if (!jid.Contains("@"))
            {
                jid = jid + "@" + _config.Server;
            }

            SendMessage(new Jid(jid), text, (MessageType)messageType);
        }
        private void ParseLine(string from, string room, string line, BotMessageType messageType)
        {
            this.Room = room;
            this.From = from;
            this.Raw = line;
            this.MessageType = messageType;
            this.IsCommand = line.StartsWith("!");
            line = line.TrimStart('!');

            string[] parts = line.Split(' ');
            if (parts.Length <= 0)
            {
                this.Command = "invalid";
                this.Args = new string[] { };
                this.IsCommand = false;
                return;
            }

            this.Command = parts[0];
            this.Args = parts.Skip(1).ToArray();

            TokenizeLine(line);
        }
示例#5
0
        private void ParseLine(string from, string room, string line, BotMessageType messageType)
        {
            this.Room        = room;
            this.From        = from;
            this.Raw         = line;
            this.MessageType = messageType;
            this.IsCommand   = line.StartsWith("!");
            line             = line.TrimStart('!');

            string[] parts = line.Split(' ');
            if (parts.Length <= 0)
            {
                this.Command   = "invalid";
                this.Args      = new string[] { };
                this.IsCommand = false;
                return;
            }

            this.Command = parts[0];
            this.Args    = parts.Skip(1).ToArray();

            TokenizeLine(line);
        }
示例#6
0
        public void ProcessMessage(SocketUser user, BotMessageType type)
        {
            try
            {
                var guildUser = user as SocketGuildUser;

                DatabaseManager.AddCommandStatistic(type, guildUser.Id);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.Message);
            }

            /*
             * if (!Program.BotStats.DiscordUsers.Any(i => i.DiscordId == user.Id))
             * {
             *  Program.BotStats.DiscordUsers.Add(new Stats.DiscordUser()
             *  {
             *      DiscordId = guildUser.Id,
             *      DiscordDiscriminator = guildUser.DiscriminatorValue,
             *      DiscordName = guildUser.Username,
             *      ServerUserName = guildUser.Nickname ?? guildUser.Username, // User Nickname -> Update
             *      Stats = new Stats.UserStats()
             *  });
             * }
             *
             * var statUser = Program.BotStats.DiscordUsers.Single(i => i.DiscordId == user.Id);
             *
             * if (guildUser != null && statUser.ServerUserName != guildUser.Nickname)
             * {
             *  // To update username changes
             *  statUser.ServerUserName = guildUser.Nickname ?? guildUser.Username;
             * }
             *
             * // To prevent stats format from breaking
             * statUser.ServerUserName = statUser.ServerUserName.Replace("*", "").Replace("~", "").Replace("|", "");
             * statUser.DiscordName = statUser.DiscordName.Replace("*", "").Replace("~", "").Replace("|", "");
             *
             * switch (type)
             * {
             *  case BotMessageType.Neko:
             *      statUser.Stats.TotalNeko++;
             *      break;
             *  case BotMessageType.Search:
             *      statUser.Stats.TotalSearch++;
             *      break;
             *  case BotMessageType.NekoGif:
             *      statUser.Stats.TotalNekoGif++;
             *      break;
             *  case BotMessageType.Holo:
             *      statUser.Stats.TotalHolo++;
             *      break;
             *  case BotMessageType.Waifu:
             *      statUser.Stats.TotalWaifu++;
             *      break;
             *  case BotMessageType.Baka:
             *      statUser.Stats.TotalBaka++;
             *      break;
             *  case BotMessageType.Smug:
             *      statUser.Stats.TotalSmug++;
             *      break;
             *  case BotMessageType.Fox:
             *      statUser.Stats.TotalFox++;
             *      break;
             *  case BotMessageType.Avatar:
             *      statUser.Stats.TotalAvatar++;
             *      break;
             *  case BotMessageType.NekoAvatar:
             *      statUser.Stats.TotalNekoAvatar++;
             *      break;
             *  case BotMessageType.Wallpaper:
             *      statUser.Stats.TotalWallpaper++;
             *      break;
             *  case BotMessageType.Animalears:
             *      statUser.Stats.TotalAnimalears++;
             *      break;
             *  case BotMessageType.Foxgirl:
             *      statUser.Stats.TotalFoxgirl++;
             *      break;
             *  default:
             *      break;
             * }
             *
             * statUser.Stats.TotalCommands++;
             *
             * if (LastUpdate < DateTime.Now.AddSeconds(-30))
             * {
             *  LastUpdate = DateTime.Now;
             *  Program.SaveStats();
             * }*/
        }
        private void SendMessage(string text, string jid, BotMessageType messageType)
        {
            //msg.from or jid
            if (!jid.Contains("@"))
                jid = jid + "@" + _config.Server;

            SendMessage(new Jid(jid), text, (MessageType)messageType);
        }
 /// <summary>
 /// Actually send a message.
 /// </summary>
 protected void SendMessage(string text, string jid, BotMessageType messageType)
 {
     this.SentMessage(text, jid, messageType);
 }
 /// <summary>
 /// Actually send a message.
 /// </summary>
 protected void SendMessage(string text, string jid, BotMessageType messageType)
 {
     this.SentMessage(text, jid, messageType);
 }