示例#1
0
        private static void DatabasePersonalInit(CommandEventArgs e)
        {
            using (var context = new discordbotEntities_draw())
            {
                string str    = e.Server.Id.ToString();
                var    entity = context.personal.Where(input => (input.userid == e.User.NicknameMention && input.channal == str)).FirstOrDefault();

                if (entity != null)
                {
                    entity.username       = e.User.Name;
                    entity.SSR            = 0;
                    entity.SR             = 0;
                    entity.R              = 0;
                    entity.totaldrawcount = 0;
                }
                else
                {
                    context.personal.Add(new personal
                    {
                        userid         = e.User.NicknameMention,
                        username       = e.User.Name,
                        channal        = e.Server.Id.ToString(),
                        SSR            = 0,
                        SR             = 0,
                        R              = 0,
                        totaldrawcount = 0
                    });
                }
                context.SaveChanges();
            }
        }
示例#2
0
        private static async Task DatabaseRankProb(CommandEventArgs e, string type, int count)
        {
            using (var context = new discordbotEntities_draw())
            {
                string str = e.Server.Id.ToString();



                IQueryable <personal> entitylist;
                if (type.ToLower().Equals("bottom"))
                {
                    entitylist = context.personal.Where(input => (input.channal == str && input.totaldrawcount >= count)).OrderBy(t => (Math.Round((double)t.SSR / (double)t.totaldrawcount, 4) * 100));
                }
                else
                {
                    entitylist = context.personal.Where(input => (input.channal == str && input.totaldrawcount >= count)).OrderByDescending(t => (Math.Round((double)t.SSR / (double)t.totaldrawcount, 4) * 100));
                }


                string rank_result = "```\n";
                if (type.ToLower().Equals("bottom"))
                {
                    rank_result += "千川ちひろ模擬抽卡 非洲排行榜QQ.......(至少" + DrawCount + "抽的情況下)\n\n";
                }
                else
                {
                    rank_result += "千川ちひろ模擬抽卡 歐洲排行榜.........(至少" + DrawCount + "抽的情況下)\n\n";
                }
                int i = 1;
                foreach (var entity in entitylist)
                {
                    if (i == 6)
                    {
                        break;
                    }
                    if (entity.totaldrawcount != 0)
                    {
                        rank_result += ((i + ".").PadRight(3) + (Math.Round((double)entity.SSR / (double)entity.totaldrawcount, 4) * 100).ToString("f2").PadLeft(6) + "%").PadRight(15) + entity.username + "\n";
                    }
                    else
                    {
                        rank_result += ((i + ".").PadRight(3) + "0.00".PadLeft(6) + "%").PadRight(15) + entity.username + "\n";
                    }

                    i++;
                }
                rank_result += "```";
                await e.Channel.SendMessage(rank_result);
            }
        }
示例#3
0
 private static void DatabasePersonalUpdate(CommandEventArgs e, int countSSR, int countSR, int countR, int count)
 {
     using (var context = new discordbotEntities_draw())
     {
         string str    = e.Server.Id.ToString();
         var    entity = context.personal.Where(input => (input.userid == e.User.NicknameMention && input.channal == str)).FirstOrDefault();
         if (entity != null)
         {
             entity.username        = e.User.Name;
             entity.SSR            += countSSR;
             entity.SR             += countSR;
             entity.R              += countR;
             entity.totaldrawcount += count;
         }
         context.SaveChanges();
     }
 }
示例#4
0
 private static async Task DatabasePersonalProb(CommandEventArgs e)
 {
     using (var context = new discordbotEntities_draw())
     {
         string str    = e.Server.Id.ToString();
         var    entity = context.personal.Where(input => (input.userid == e.User.NicknameMention && input.channal == str)).FirstOrDefault();
         if (entity != null)
         {
             if (entity.totaldrawcount == 0)
             {
                 await e.Channel.SendMessage(e.User.NicknameMention + " SSR機率約為:" + "0.00%" + " 已抽0張");
             }
             else
             {
                 await e.Channel.SendMessage(e.User.NicknameMention + " SSR機率約為:" + (Math.Round((double)entity.SSR / (double)entity.totaldrawcount, 4) * 100).ToString("f2") + "%" + " 已抽" + entity.totaldrawcount + "張");
             }
         }
         else
         {
             await e.Channel.SendMessage(e.User.NicknameMention + " 您還沒有建立資料請輸入:\n!draw -init");
         }
     }
 }