Machina.FFXIV
2.0.1
See the version list below for details.
dotnet add package Machina.FFXIV --version 2.0.1
NuGet\Install-Package Machina.FFXIV -Version 2.0.1
<PackageReference Include="Machina.FFXIV" Version="2.0.1" />
paket add Machina.FFXIV --version 2.0.1
#r "nuget: Machina.FFXIV, 2.0.1"
// Install Machina.FFXIV as a Cake Addin #addin nuget:?package=Machina.FFXIV&version=2.0.1 // Install Machina.FFXIV as a Cake Tool #tool nuget:?package=Machina.FFXIV&version=2.0.1
Machina
Machina is a library that allows developers to read network data from the windows networking subsystem and reassemble it into usable information.
It supports the following features:
- Simple raw socket for data capture or optional WinPcap driver support
- IP Fragmentation reassembly
- TCP stream reassembly, including retransmits
Because it is accessing network data, it does require running under elevated security privleges on the local machine. It also requires configuring access through the local firewall, or disabling it completely, in order to read data.
In order to simplify use of this library, the TCPNetworkMonitor class was added to poll the network data for a specific process and raise an event when new data arrives. Use of this class can be found in the TCPNetworkMonitorTests class, but here is some sample code:
public static void Main(string[] args)
{
TCPNetworkMonitor monitor = new TCPNetworkMonitor();
monitor.WindowName = "FINAL FANTASY XIV";
monitor.MonitorType = TCPNetworkMonitor.NetworkMonitorType.RawSocket;
monitor.DataReceived = (string connection, byte[] data) => DataReceived(connection, data);
monitor.Start();
// Run for 10 seconds
System.Threading.Thread.Sleep(10000);
monitor.Stop();
}
private static void DataReceived(string connection, byte[] data)
{
// Process Data
}
The import elements in the above code are:
- Configure the monitor class with the correct window name or process ID
- Hook the monitor up to a data received event
- Start the monitor - this kicks off a long-running Task
- Process the data in the DataReceived() event handler
- Stop the monitor before exiting the process, to prevent unmanaged resources from leaking. This mostly affects WinPCap.
Prior to the above, be sure to either disable windows firewall, or add a rule for any exceutable using the above code to work through it. And, the code must be executed as a local administrator. To debug the above code, you will need to start Visual Studio using the 'Run as Administrator' option in Windows.
Machina.FFXIV
Machina.FFXIV is an extension to the Machina library that decodes Final Fantasy XIV network data and makes it available to programs. It uses the Machina library to locate the game traffic and decode the TCP/IP layer, and then decodes / decompresses the game data into individual game messages. It processes both incoming and outgoing messages.
public static void Main(string[] args)
{
FFXIVNetworkMonitor monitor = new FFXIVNetworkMonitor();
monitor.MessageReceived = (long epoch, byte[] message) => MessageReceived(epoch, message);
monitor.Start();
// Run for 10 seconds
System.Threading.Thread.Sleep(10000);
monitor.Stop();
}
private static void MessageReceived(long epoch, byte[] message)
{
// Process Message
}
An optional Process ID and network monitor type can be specified as properties, to configure per the end-user's machine requirements.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET Framework | net40 is compatible. net403 was computed. net45 was computed. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Machina.FFXIV:
Repository | Stars |
---|---|
AmanoTooko/Daigassou
Transfer midi file to keyboard events in FFXIV bard performance solo and multiplayer
|
Version | Downloads | Last updated |
---|---|---|
2.4.0.6 | 72 | 8/27/2024 |
2.4.0.5 | 77 | 8/9/2024 |
2.4.0.4 | 71 | 8/6/2024 |
2.4.0.1 | 105 | 7/16/2024 |
2.4.0 | 90 | 7/6/2024 |
2.3.9.8 | 101 | 6/30/2024 |
2.3.9.7 | 160 | 6/28/2024 |
2.3.9.6 | 104 | 6/19/2024 |
2.3.9.3 | 120 | 3/19/2024 |
2.3.9.2 | 141 | 2/13/2024 |
2.3.9.1 | 131 | 1/17/2024 |
2.3.8.4 | 226 | 8/8/2023 |
2.3.7.7 | 159 | 6/20/2023 |
2.3.7.6 | 135 | 6/6/2023 |
2.3.7.5 | 136 | 5/23/2023 |
2.3.7.2 | 212 | 4/4/2023 |
2.3.7.1 | 187 | 3/31/2023 |
2.3.6.4 | 253 | 3/7/2023 |
2.3.6.2 | 250 | 2/9/2023 |
2.3.6.1 | 331 | 1/24/2023 |
2.3.6 | 286 | 1/13/2023 |
2.3.5 | 365 | 10/18/2022 |
2.3.4.6 | 452 | 8/29/2022 |
2.3.4.4 | 474 | 7/13/2022 |
2.3.4.2 | 487 | 7/6/2022 |
2.3.3.9 | 454 | 6/10/2022 |
2.3.3.8 | 426 | 6/8/2022 |
2.3.2.5 | 473 | 3/8/2022 |
2.3.2.4 | 464 | 1/25/2022 |
2.3.2.1 | 270 | 1/4/2022 |
2.3.1.9 | 281 | 12/22/2021 |
2.3.1.7 | 374 | 12/10/2021 |
2.3.0.9 | 360 | 10/6/2021 |
2.3.0.8 | 326 | 9/18/2021 |
2.3.0.7 | 361 | 9/8/2021 |
2.3.0.6 | 329 | 8/24/2021 |
2.3.0.3 | 339 | 7/20/2021 |
2.3.0.2 | 384 | 6/22/2021 |
2.3.0.1 | 343 | 6/20/2021 |
2.1.1 | 1,426 | 12/26/2018 |
2.1.0 | 999 | 3/27/2018 |
2.0.1 | 1,496 | 11/10/2017 |
2.0.0 | 1,075 | 10/28/2017 |