diff --git a/EliteAPI/EliteAPI.csproj b/EliteAPI/EliteAPI.csproj index 4281e5ae..214f429b 100644 --- a/EliteAPI/EliteAPI.csproj +++ b/EliteAPI/EliteAPI.csproj @@ -80,7 +80,10 @@ + + + @@ -91,9 +94,12 @@ + + + @@ -110,9 +116,13 @@ + + + + @@ -121,6 +131,8 @@ + + @@ -136,6 +148,10 @@ + + + + diff --git a/EliteAPI/EliteDangerousAPI.cs b/EliteAPI/EliteDangerousAPI.cs index 18cc7953..ba8026c1 100644 --- a/EliteAPI/EliteDangerousAPI.cs +++ b/EliteAPI/EliteDangerousAPI.cs @@ -161,7 +161,7 @@ private void Process(string json) { default: OtherEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); - //File.AppendAllText(@"D:\NotAddedEvents.txt", json + Environment.NewLine); + File.AppendAllText(@"D:\NotAddedEvents.txt", json + Environment.NewLine); break; case "ClearSavedGame": @@ -419,9 +419,144 @@ private void Process(string json) case "LaunchFighter": LaunchFighterEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); break; + + case "BuyAmmo": + BuyAmmoEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "CommitCrime": + CommitCrimeEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "PayFine": + PayFineEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "HeatWarning": + HeatWarningEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "WingInvite": + WingInviteEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "WingJoin": + WingJoinEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "WingAdd": + WingAddEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "WingLeave": + WingLeaveEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "NavBeaconScan": + NavBeaconScanEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "CargoDepot": + CargoDepotEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "PayFines": + PayFinesEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "SellExplorationData": + SellExplorationDataEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "FetchRemoteModule": + FetchRemoteModuleEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "ModuleSellRemote": + ModuleSellRemoteEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; + + case "EscapeInterdiction": + EscapeInterdictionEvent?.Invoke(this, JsonConvert.DeserializeObject(json)); + break; } } + /// + /// Triggered whenever a player sells a module remotely. + /// + public event EventHandler EscapeInterdictionEvent; + + /// + /// Triggered whenever a player sells a module remotely. + /// + public event EventHandler ModuleSellRemoteEvent; + + /// + /// Triggered whenever a player requests a remote module. + /// + public event EventHandler FetchRemoteModuleEvent; + + /// + /// Triggered whenever a player mass-pays their fines. + /// + public event EventHandler SellExplorationDataEvent; + + /// + /// Triggered whenever a player mass-pays their fines. + /// + public event EventHandler PayFinesEvent; + + /// + /// Triggered whenever a cargo delivery mission gets updated. + /// + public event EventHandler CargoDepotEvent; + + /// + /// Triggered whenever a player leaves the wing. + /// + public event EventHandler NavBeaconScanEvent; + + /// + /// Triggered whenever a player leaves the wing. + /// + public event EventHandler WingLeaveEvent; + + /// + /// Triggered whenever another commander gets added to the wing. + /// + public event EventHandler WingAddEvent; + + /// + /// Triggered whenever a player joins a wing. + /// + public event EventHandler WingJoinEvent; + + /// + /// Triggered whenever a player gets invited for a wing. + /// + public event EventHandler WingInviteEvent; + + /// + /// Triggered whenever the ships becomes too hot. + /// + public event EventHandler HeatWarningEvent; + + /// + /// Triggered whenever a player pays their fines. + /// + public event EventHandler PayFineEvent; + + /// + /// Triggered whenever a player commits a crime. + /// + public event EventHandler CommitCrimeEvent; + + /// + /// Triggered when a player buys ammunition from a station. + /// + public event EventHandler BuyAmmoEvent; + /// /// Triggered for every event that hasn't been included yet. /// diff --git a/EliteAPI/Events/BuyAmmo.cs b/EliteAPI/Events/BuyAmmo.cs new file mode 100644 index 00000000..fce0b0e4 --- /dev/null +++ b/EliteAPI/Events/BuyAmmo.cs @@ -0,0 +1,10 @@ +using System; + +namespace EliteAPI +{ + public class BuyAmmoInfo + { + public DateTime timestamp { get; set; } + public int Cost { get; set; } + } +} diff --git a/EliteAPI/Events/CargoDepot.cs b/EliteAPI/Events/CargoDepot.cs new file mode 100644 index 00000000..9a9d7f8e --- /dev/null +++ b/EliteAPI/Events/CargoDepot.cs @@ -0,0 +1,20 @@ +using System; + +namespace EliteAPI +{ + public class CargoDepotInfo + { + public DateTime timestamp { get; set; } + public int MissionID { get; set; } + public string UpdateType { get; set; } + public string CargoType { get; set; } + public string CargoType_Localised { get; set; } + public int Count { get; set; } + public long StartMarketID { get; set; } + public long EndMarketID { get; set; } + public int ItemsCollected { get; set; } + public int ItemsDelivered { get; set; } + public int TotalItemsToDeliver { get; set; } + public double Progress { get; set; } + } +} diff --git a/EliteAPI/Events/CommitCrime.cs b/EliteAPI/Events/CommitCrime.cs new file mode 100644 index 00000000..a06d38d3 --- /dev/null +++ b/EliteAPI/Events/CommitCrime.cs @@ -0,0 +1,12 @@ +using System; + +namespace EliteAPI +{ + public class CommitCrimeInfo + { + public DateTime timestamp { get; set; } + public string CrimeType { get; set; } + public string Faction { get; set; } + public int Fine { get; set; } + } +} diff --git a/EliteAPI/Events/EscapeInterdiction.cs b/EliteAPI/Events/EscapeInterdiction.cs new file mode 100644 index 00000000..19b95cea --- /dev/null +++ b/EliteAPI/Events/EscapeInterdiction.cs @@ -0,0 +1,11 @@ +using System; + +namespace EliteAPI +{ + public class EscapeInterdictionInfo + { + public DateTime timestamp { get; set; } + public string Interdictor { get; set; } + public bool IsPlayer { get; set; } + } +} diff --git a/EliteAPI/Events/FetchRemoteModule.cs b/EliteAPI/Events/FetchRemoteModule.cs new file mode 100644 index 00000000..bbb83589 --- /dev/null +++ b/EliteAPI/Events/FetchRemoteModule.cs @@ -0,0 +1,17 @@ +using System; + +namespace EliteAPI +{ + public class FetchRemoteModuleInfo + { + public DateTime timestamp { get; set; } + public int StorageSlot { get; set; } + public string StoredItem { get; set; } + public string StoredItem_Localised { get; set; } + public int ServerId { get; set; } + public int TransferCost { get; set; } + public int TransferTime { get; set; } + public string Ship { get; set; } + public int ShipID { get; set; } + } +} diff --git a/EliteAPI/Events/HeatWarning.cs b/EliteAPI/Events/HeatWarning.cs new file mode 100644 index 00000000..755521da --- /dev/null +++ b/EliteAPI/Events/HeatWarning.cs @@ -0,0 +1,9 @@ +using System; + +namespace EliteAPI +{ + public class HeatWarningInfo + { + public DateTime timestamp { get; set; } + } +} diff --git a/EliteAPI/Events/Market.cs b/EliteAPI/Events/Market.cs index 41234988..f9403b2c 100644 --- a/EliteAPI/Events/Market.cs +++ b/EliteAPI/Events/Market.cs @@ -5,7 +5,7 @@ namespace EliteAPI public class MarketInfo { public DateTime timestamp { get; set; } - public string @event { get; set; } + public long MarketID { get; set; } public string StationName { get; set; } public string StarSystem { get; set; } diff --git a/EliteAPI/Events/ModuleSellRemote.cs b/EliteAPI/Events/ModuleSellRemote.cs new file mode 100644 index 00000000..a4ede8af --- /dev/null +++ b/EliteAPI/Events/ModuleSellRemote.cs @@ -0,0 +1,16 @@ +using System; + +namespace EliteAPI +{ + public class ModuleSellRemoteInfo + { + public DateTime timestamp { get; set; } + public int StorageSlot { get; set; } + public string SellItem { get; set; } + public string SellItem_Localised { get; set; } + public int ServerId { get; set; } + public int SellPrice { get; set; } + public string Ship { get; set; } + public int ShipID { get; set; } + } +} diff --git a/EliteAPI/Events/NavBeaconScan.cs b/EliteAPI/Events/NavBeaconScan.cs new file mode 100644 index 00000000..e5eb9ba7 --- /dev/null +++ b/EliteAPI/Events/NavBeaconScan.cs @@ -0,0 +1,11 @@ +using System; + +namespace EliteAPI +{ + public class NavBeaconScanInfo + { + public DateTime timestamp { get; set; } + public long SystemAddress { get; set; } + public int NumBodies { get; set; } + } +} diff --git a/EliteAPI/Events/PayFine.cs b/EliteAPI/Events/PayFine.cs new file mode 100644 index 00000000..2bd13a46 --- /dev/null +++ b/EliteAPI/Events/PayFine.cs @@ -0,0 +1,12 @@ +using System; + +namespace EliteAPI +{ + public class PayFineInfo + { + public DateTime timestamp { get; set; } + public int Amount { get; set; } + public bool AllFines { get; set; } + public int ShipID { get; set; } + } +} diff --git a/EliteAPI/Events/PayFines.cs b/EliteAPI/Events/PayFines.cs new file mode 100644 index 00000000..4ab772c8 --- /dev/null +++ b/EliteAPI/Events/PayFines.cs @@ -0,0 +1,12 @@ +using System; + +namespace EliteAPI +{ + public class PayFinesInfo + { + public DateTime timestamp { get; set; } + public int Amount { get; set; } + public bool AllFines { get; set; } + public int ShipID { get; set; } + } +} diff --git a/EliteAPI/Events/SellExplorationData.cs b/EliteAPI/Events/SellExplorationData.cs new file mode 100644 index 00000000..b5c83ce9 --- /dev/null +++ b/EliteAPI/Events/SellExplorationData.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; + +namespace EliteAPI +{ + public class SellExplorationDataInfo + { + public DateTime timestamp { get; set; } + public List Systems { get; set; } + public List Discovered { get; set; } + public int BaseValue { get; set; } + public int Bonus { get; set; } + public int TotalEarnings { get; set; } + } +} diff --git a/EliteAPI/Events/SetUserShipName.cs b/EliteAPI/Events/SetUserShipName.cs new file mode 100644 index 00000000..88644ea2 --- /dev/null +++ b/EliteAPI/Events/SetUserShipName.cs @@ -0,0 +1,14 @@ +using System; + +namespace EliteAPI +{ + public class SetUserShipNameInfo + { + public DateTime timestamp { get; set; } + + public string Ship { get; set; } + public int ShipID { get; set; } + public string UserShipName { get; set; } + public string UserShipId { get; set; } + } +} diff --git a/EliteAPI/Events/WingAdd.cs b/EliteAPI/Events/WingAdd.cs new file mode 100644 index 00000000..1f94b4d3 --- /dev/null +++ b/EliteAPI/Events/WingAdd.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace EliteAPI +{ + public class WingAddInfo + { + public DateTime timestamp { get; set; } + public string Name { get; set; } + } +} diff --git a/EliteAPI/Events/WingInvite.cs b/EliteAPI/Events/WingInvite.cs new file mode 100644 index 00000000..184819a8 --- /dev/null +++ b/EliteAPI/Events/WingInvite.cs @@ -0,0 +1,10 @@ +using System; + +namespace EliteAPI +{ + public class WingInviteInfo + { + public DateTime timestamp { get; set; } + public string Name { get; set; } + } +} diff --git a/EliteAPI/Events/WingJoin.cs b/EliteAPI/Events/WingJoin.cs new file mode 100644 index 00000000..54abb099 --- /dev/null +++ b/EliteAPI/Events/WingJoin.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace EliteAPI +{ + public class WingJoinInfo + { + public DateTime timestamp { get; set; } + public List Others { get; set; } + } +} diff --git a/EliteAPI/Events/WingLeave.cs b/EliteAPI/Events/WingLeave.cs new file mode 100644 index 00000000..33ac8080 --- /dev/null +++ b/EliteAPI/Events/WingLeave.cs @@ -0,0 +1,9 @@ +using System; + +namespace EliteAPI +{ + public class WingLeaveInfo + { + public DateTime timestamp { get; set; } + } +} diff --git a/EliteAPI/Properties/AssemblyInfo.cs b/EliteAPI/Properties/AssemblyInfo.cs index 6aa6c94c..16f87f34 100644 --- a/EliteAPI/Properties/AssemblyInfo.cs +++ b/EliteAPI/Properties/AssemblyInfo.cs @@ -33,7 +33,7 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.1.4.1")] -[assembly: AssemblyFileVersion("1.1.4.1")] +[assembly: AssemblyVersion("1.1.4.2")] +[assembly: AssemblyFileVersion("1.1.4.2")] [assembly: NeutralResourcesLanguage("en")] diff --git a/Test/Program.cs b/Test/Program.cs index 5d9db582..938d57f7 100644 --- a/Test/Program.cs +++ b/Test/Program.cs @@ -16,10 +16,10 @@ class Program { static void Main(string[] args) { - EliteDangerousAPI EliteAPI = new EliteDangerousAPI(new DirectoryInfo($@"C:\Users\{Environment.UserName}\Saved Games\Frontier Developments\Elite Dangerous")); + EliteDangerousAPI EliteAPI = new EliteDangerousAPI(new DirectoryInfo($@"C:\Users\{Environment.UserName}\Saved Games\Frontier Developments\Elite Dangerous"), false); EliteAPI.Start(); Thread.Sleep(-1); } - } + } }