Пример #1
0
        public static async Task PresenceUpdated(PresenceUpdateEventArgs e, DiscordClient client, Dictionary <DiscordMember, DateTime> gameStartedDictionary)
        {
            if (Komobase.IsSubscribed(e.Member.Username))
            {
                //if just started playing
                if (e.Game != null && e.Game.Name != null && !gameStartedDictionary.ContainsKey(e.Member) && (e.PresenceBefore.Game == null || e.PresenceBefore.Game.Name == string.Empty))
                {
                    gameStartedDictionary.Add(e.Member, DateTime.Now);
                }
                //if ended
                else if (e.Game == null || e.Game.Name == null || e.Game.Name == string.Empty)
                {
                    if (gameStartedDictionary.ContainsKey(e.Member))
                    {
                        DiscordDmChannel dm = await client.CreateDmAsync(e.Member);

                        await client.SendMessageAsync(dm, "No! Ennyit függtél most: " +
                                                      GetTimeLapsedString(DateTime.Now, gameStartedDictionary[e.Member]),
                                                      false, null);

                        gameStartedDictionary.Remove(e.Member);
                    }
                }
            }
        }
Пример #2
0
        public async Task SessionInfoUnsub(CommandContext ctx)
        {
            Komobase.UnsubscribeUser(ctx.User.Username);

            Program.gameStartedDictionary.Remove(ctx.Member);

            await ctx.RespondAsync("Nem kapsz több infót a játékmenetedről " + ctx.User.Username + ".");
        }
Пример #3
0
        public async Task SetPUBGID(CommandContext ctx, string id = null)
        {
            if (ValidateID(id))
            {
                Komobase.SetPUBGID(ctx.User.Username, id);

                await ctx.RespondAsync("Beirtam a naplóba a PUBG ID-dat " + ctx.User.Username + ".");
            }
        }
Пример #4
0
            public async Task SetCRTag(CommandContext ctx, string tag = null)
            {
                if (ValidateID(tag))
                {
                    Komobase.SetCRTag(ctx.User.Username, tag.ToUpper());

                    await ctx.RespondAsync("Bevéstem a naplóba a Clash Royale tagedet " + ctx.User.Username + ".");
                }
            }
Пример #5
0
        public async Task GetPUBGID(CommandContext ctx)
        {
            var retVal = Komobase.GetPUBGID(ctx.User.Username);

            if (string.IsNullOrEmpty(retVal))
            {
                await ctx.RespondAsync("Nem találni a naplóban a PUBG ID-dat! A setPUBGID paranccsal beállithatod.");
            }
            else
            {
                await ctx.RespondAsync("A te PUBG ID-d: " + retVal + ".");
            }
        }
Пример #6
0
            public async Task GetCRName(CommandContext ctx)
            {
                var retVal = Komobase.GetCRTag(ctx.User.Username);

                if (string.IsNullOrEmpty(retVal))
                {
                    await ctx.RespondAsync("Nem találni a naplóban Clash Royale Tag-et! A setTag paranccsal beállithatod.");
                }
                else
                {
                    await ctx.RespondAsync("A te Clash Royale tag-ed: " + retVal + ".");
                }
            }
Пример #7
0
        private static async Task Initialize(DiscordClient client, JsonConfig config)
        {
            //SQLite database
            Komobase komobase = new Komobase();

            var users = client.Guilds.FirstOrDefault().Value.Members.ToList <DiscordMember>();

            komobase.SyncUsers(users);

            //check if any mandatory channel is missing.
            var           currentVoiceChannels     = client.Guilds.FirstOrDefault().Value.Channels.Where(x => x.Type == ChannelType.Voice);
            List <string> currentVoiceChannelNames = new List <string>();

            List <string> mandatoryChannels = config.mandatoryVoiceChannels.Split(';').ToList <string>();

            List <string> missingChannels = new List <string>();

            foreach (DiscordChannel channel in currentVoiceChannels)
            {
                currentVoiceChannelNames.Add(channel.Name);
            }

            foreach (string channelName in mandatoryChannels)
            {
                if (!currentVoiceChannelNames.Contains(channelName))
                {
                    missingChannels.Add(channelName);
                }
            }
            if (missingChannels != null && missingChannels.Count > 0)
            {
                foreach (string channelName in missingChannels)
                {
                    await client.Guilds.FirstOrDefault().Value.CreateChannelAsync(channelName, ChannelType.Voice,
                                                                                  client.Guilds.FirstOrDefault().Value.Channels.Where(x => x.Name.ToLower() == "voice channels").FirstOrDefault(), null, null,
                                                                                  null, "Mandatory " +
                                                                                  "channel recreation on initialization.");
                }
            }
        }
Пример #8
0
        private static async Task <string> RetrieveAuthToken()
        {
            var tokenFromDB = Komobase.GetAuthToken();

            if (tokenFromDB == string.Empty)
            {
                string token = await GetAuthTokenFromBlizzard();

                Komobase.SetAuthToken(token);
                return(token);
            }

            if (await ValidateToken(tokenFromDB) != true)
            {
                string token = await GetAuthTokenFromBlizzard();

                Komobase.SetAuthToken(token);
                return(token);
            }

            return(tokenFromDB);
        }
Пример #9
0
        private static async Task <PlayerResult> GetCRPlayerData(string userName, string tag)
        {
            if (string.IsNullOrEmpty(tag))
            {
                tag = Komobase.GetCRTag(userName).ToUpper();
            }
            if (string.IsNullOrEmpty(tag))
            {
                return(new PlayerResult());
            }

            string url = Program.config.crEndpoint + "players/" + URLEncodeCRTag(tag);

            try
            {
                HttpWebRequest request = HttpWebRequest.CreateHttp(url);
                request.Method = "GET";
                request.Accept = "application/json";
                request.Headers.Set(HttpRequestHeader.Authorization, "Bearer " + Program.config.crAPIKEY);

                var response = (HttpWebResponse)await request.GetResponseAsync();

                var code = response.StatusCode;

                if (HttpStatusCode.OK == code)
                {
                    Stream       stream = response.GetResponseStream();
                    StreamReader reader = new StreamReader(stream);

                    string resultString = await reader.ReadToEndAsync();

                    return(JsonConvert.DeserializeObject <PlayerResult>(resultString));
                }
            }
            catch (Exception e) { throw new Exception(e.Message, e.InnerException); }

            return(new PlayerResult());
        }
Пример #10
0
        public async Task SessionInfoSub(CommandContext ctx)
        {
            Komobase.SubscribeUser(ctx.User.Username);

            await ctx.RespondAsync("Mostantól küldeni fogom mennyit függtél kedves " + ctx.User.Username + ".");
        }
Пример #11
0
 public async Task GetCharInfo(CommandContext ctx)
 {
     Komobase.GetWowRealmAndName(ctx.User.Username);
 }
Пример #12
0
            public async Task SetWowRealmAndName(CommandContext ctx, string realm, string name)
            {
                Komobase.SetWowRealmAndName(ctx.User.Username, realm, name);

                await ctx.RespondAsync("Beirtam a naplóba a realmodat és a karaktered nevét!");
            }