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); } } } }
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 + "."); }
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 + "."); } }
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 + "."); } }
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 + "."); } }
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 + "."); } }
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."); } } }
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); }
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()); }
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 + "."); }
public async Task GetCharInfo(CommandContext ctx) { Komobase.GetWowRealmAndName(ctx.User.Username); }
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!"); }