aetherometer

command module
v1.3.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 4, 2023 License: MIT Imports: 18 Imported by: 0

README

Aetherometer

Test

DEPRECATION NOTICE

This project will be retired before the release of 7.0 or earlier. The maintenance burden for this project is too high for the value it provides. Also it is far more efficient to write applications that interact with the game such as Dalamud plugins, or applications that consume packets directly now that Deucalion handles much of the packet processing.

About

Aetherometer is a framework that parses network data for FFXIV and presents the parsed data stream through a GraphQL API that allows plugins to access and display this information.

preview

Getting Started

Download for the latest release

Download the zip file to a place with sufficient space on your system, and extract it. Then run aetherometer.exe.

Then try out some plugins!

Because Aetherometer fundamentally does not read memory, you should either start Aetherometer before starting any instance of FFXIV, or simply switch zones if you are already logged in. Otherwise, Aetherometer will not have a complete set of data from the game.

If you're a developer interested in Aetherometer, see here.

Features

Aetherometer is capable of supporting many different use cases, including parsing live combat data for trigger or DPS logging purposes, display of player and enemy movement on the map, crafting progress, etc.

While Aetherometer does not read memory to capture information from the game, it is capable of retrieving extremely useful information just from reading data from the network. This also has the advantage of potentially being faster than the game itself can process the data.

Plugins

Plugins are mini-applications that process data from a specific instance of the game. They open as new "tabs" on the navigation drawer and you can navigate between them without losing data on any other tab.

Techincally plugins are able to process data from mulitple instances of the game, but Aetherometer's Stream handling abilities aim to reduce boilerplate Stream switching code.

Plugins List

Here are some plugins that you can try to get an idea for Aetherometer's capabilities:

Installing Plugins

preview
  1. Click on the Settings button in the top right of the window.
  2. Select a preset from the dropdown or enter in the plugin name and URL.
  3. Click the "Add Plugin" button (plus sign).
Removing Plugins / Closing Panes

If you want to close the page for a plugin, simply go back to the settings popup and click the "Remove Plugin" button (trash can) next to the plugin you like to remove.

For Developers

Creating plugins

See the docs/plugin_work.md document.

Contributing to Aetherometer

Aetherometer uses Wails to build the project.

Once you have Wails installed, run wails doctor to ensure you have all dependencies. Namely, Go 1.17+, Node 14+, and the WebView2 runtime.

To run in live development mode, be sure to have run wails build beforehand. Then run wails dev to start the live development mode.

Building

For a production build, use wails build.

Plugin Development

Go to the documentation here.

Testing

Currently, we use Ginkgo which is a neat BDD framework for testing Golang.

To run all tests, simply run ginkgo -r -p -race (flags are recursive, in parallel, turn on race detector).

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
core module
adapter/hook/hookfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
config
Package config describes configuration for all of Aetherometer.
Package config describes configuration for all of Aetherometer.
datasheet
Package datasheet provides a way to get additional context when processing network data.
Package datasheet provides a way to get additional context when processing network data.
hub
Package hub describes event hubs that allow providers to broadcast events and allow consumers to receive them
Package hub describes event hubs that allow providers to broadcast events and allow consumers to receive them
models
Package models encapsulates the graphql API and models
Package models encapsulates the graphql API and models
models/example
Package example provides an example resolver that's autogenerated by gqlgen.
Package example provides an example resolver that's autogenerated by gqlgen.
models/modelsfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
process
Package process contains some utilities to help adapters keep track of processes that start or shut down.
Package process contains some utilities to help adapters keep track of processes that start or shut down.
process/processfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
server
Package server just encapsulates the HTTP server that serves the API
Package server just encapsulates the HTTP server that serves the API
server/handlers
Package handlers defines handlers for all of the endpoints accessible from the core server.
Package handlers defines handlers for all of the endpoints accessible from the core server.
store
Package store encompasses access handling for the stream store
Package store encompasses access handling for the stream store
store/update
Package update describes the updates to the data store that are generated in response to network data
Package update describes the updates to the data store that are generated in response to network data
stream
Package stream handles interactions with adapters that allow them to create streams in the API
Package stream handles interactions with adapters that allow them to create streams in the API
stream/streamfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
testassets
Package testassets provides dummy datasheet data wherever a datasheet is needed
Package testassets provides dummy datasheet data wherever a datasheet is needed
testhelpers
Package testhelpers provides generic helpers for unit tests
Package testhelpers provides generic helpers for unit tests
win32
Package win32 provides bindings to the Windows API for use with adapters.
Package win32 provides bindings to the Windows API for use with adapters.
internal
app

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL