/// <summary> /// Converts SortieRewards in a human readable format /// </summary> public static string SortieRewards(SortieRewards sortieRewards) { string repr = "Sorties can loot:\n"; foreach (Loot item in sortieRewards.sortieRewards) { repr += $" - {item.itemName}: {item.chance}% ({item.rarity})\n"; } return(repr); }
private static async Task MessageReceived(SocketMessage message) { string[] words = message.Content.Split(" "); if (message.Content.StartsWith("what at location ")) { try { try { EndlessMission missionInfo = (EndlessMission)await warframeClient.GetMissionLootAsync(words[3], words[4]); await message.Channel.SendMessageAsync(missionInfo.ToString()); } catch (InvalidCastException) { FiniteMission missionInfo = (FiniteMission)await warframeClient.GetMissionLootAsync(words[3], words[4]); await message.Channel.SendMessageAsync(missionInfo.ToString()); } } catch (ArgumentException e) { await message.Channel.SendMessageAsync(e.Message); } } else if (message.Content.StartsWith("what in relic ")) { try { Relic relicInfo = await warframeClient.GetRelicLootAsync(words[3], words[4]); await message.Channel.SendMessageAsync(WFDataAsString.Relic(relicInfo)); } catch (ArgumentException e) { await message.Channel.SendMessageAsync(e.Message); } } else if (message.Content.StartsWith("what in sorties")) { SortieRewards sortieRewards = warframeClient.SortieRewards; await message.Channel.SendMessageAsync(WFDataAsString.SortieRewards(sortieRewards)); } else if (message.Content.StartsWith("are there events")) { Event[] events = warframeClient.WorldStatePC.events; await message.Channel.SendMessageAsync(WFDataAsString.Events(events)); } else if (message.Content.StartsWith("give me the news")) { News[] news = warframeClient.WorldStatePC.news; await message.Channel.SendMessageAsync(WFDataAsString.News(news)); } else if (message.Content.StartsWith("what is the sortie")) { Sortie sortie = warframeClient.WorldStatePC.sortie; await message.Channel.SendMessageAsync(WFDataAsString.Sortie(sortie)); } else if (message.Content.StartsWith("what are the void fissures")) { Fissure[] fissures = warframeClient.WorldStatePC.fissures; await message.Channel.SendMessageAsync(WFDataAsString.Fissures(fissures, words[5])); } else if (message.Content.StartsWith("when baro")) { VoidTrader voidTrader = warframeClient.WorldStatePC.voidTrader; await message.Channel.SendMessageAsync(WFDataAsString.VoidTrader(voidTrader)); } else if (message.Content.StartsWith("where ")) { string itemName = ""; for (int i = 1; i < words.Length; i++) { itemName += words[i] + " "; } itemName = itemName.Trim(); DropLocation[] locations = await warframeClient.dropClient.SearchForItemAsync(itemName, strictMatch : true); await message.Channel.SendMessageAsync(WFDataAsString.DropLocationsItems(locations, itemName)); } else if (message.Content.StartsWith("what ")) { string placeName = ""; for (int i = 1; i < words.Length; i++) { placeName += words[i] + " "; } placeName = placeName.Trim(); DropLocation[] locations = await warframeClient.dropClient.SearchForLocationAsync(placeName); await message.Channel.SendMessageAsync(WFDataAsString.DropLocationsLocations(locations)); } }