private void HandleLootAddedToPlayer(object sender, PlayerLootEventArgs plea) { this.Dispatcher.Invoke(new Action(() => { Loot loot = plea.Loot; Player player = plea.Player; Run run = new Run(); run.Text = $"{player.Name} looted {loot.Quantity}x{loot.LongName} from {loot.BodyName} at {loot.LocalPickupTime}\r\n"; LootLog.Inlines.Add(run); PlayerView pv = players.FirstOrDefault(p => p.Name == player.Name); if (pv == null && player.Id == -1000) { pv = players.FirstOrDefault(p => p.Id == player.Id); } if (pv == null) { pv = new PlayerView() { Name = player.Name, Alliance = player.Alliance, Guild = player.Guild, Id = player.Id }; players.Add(pv); } else { pv.Name = player.Name; pv.Guild = player.Guild; pv.Alliance = player.Alliance; } pv.Loot.Add(loot); })); }
private void PlayerLootAdded(object sender, PlayerLootEventArgs plea) { Loot item = plea.Loot; Player player = plea.Player; string path = Path.Combine(Directory.GetCurrentDirectory(), "aolootlog", PhotonPacketHandler.Instance.LogTimer + ".csv"); Directory.CreateDirectory(Path.GetDirectoryName(path)); string logMessage = $"[{item.LocalPickupTime.ToString()}] {player.Name} has looted {item.Quantity}x {item.ItemName} from {item.BodyName}"; string alliance = ""; if (player.Alliance != null) { alliance = player.Alliance; } string guild = ""; if (player.Guild != null) { guild = player.Guild; } string quality = "0"; if (item.ItemName.Contains("@")) { quality = item.ItemName.Split('@')[1]; } string csvMessage = $"{item.UtcPickupTime.ToString()};{player.Name};{item.ItemName};{item.Quantity};{item.BodyName}"; //string csvMessage = $"{item.ItemRefId},{item.UtcPickupTime.ToString()},{alliance},{guild},{player.Name},{item.ItemName},{item.LongName},{quality},{item.Quantity},{item.BodyName}"; log.Info(logMessage); lock (_lock) { using (StreamWriter streamWriter = File.AppendText(path)) { streamWriter.WriteLine(csvMessage); } } }