Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/idewave/tentacli

Rust implementation of world of warcraft client v3.3.5a (smart CLI)
https://github.com/idewave/tentacli

bot cli client-side crossterm proc-macro rust serde-serialization tokio-rs tui-rs wow wow-wotlk

Last synced: 12 days ago
JSON representation

Rust implementation of world of warcraft client v3.3.5a (smart CLI)

Awesome Lists containing this project

README

        

# TentaCLI
TentaCLI is embeddable extendable console client for WoW 3.3.5a server.

You can use the CLI to debug TCP packets from/to World of Warcraft Server. Or implement some handlers to send your packet to the server.
To extend existing functionality you can implement own features (see `Feature` trait and `src/features` for examples).
Since tentacli is designed to be used as both a library and an application, you can include it as a library in your own app.

### How to start
+ Run `cargo run`
+ After the first run, **tentacli** will create **Config.yml** and **.env** files in the location specified by `config_path` and `dotenv_path` in `RunOptions { ..., config_path, dotenv_path }`.
+ Edit **Config.yml** to set your account name, password, realm and character for auto-selection (or leave them empty to select manually). You can use regex for name and realm fields.
+ Edit **.env** to set your WoW server's IP address/hostname or keep `127.0.0.1` for a local server
+ Run `cargo run` again

### Features
+ Handles authentication (without reconnection).
+ Parses update packets (both as object and as json), chat, movement and some other packets.
+ Provides a UI with keyboard interaction, including history scrolling and detailed output.
+ Supports automatic realm and character selection (configurable in **Config.yml**)
+ Accepts external features (refer to Feature and src/features for guidance on implementing your own)
+ Supports multiple configurations (you can specify custom paths for **Config.yml** and **.env**)
+ Supports multiple accounts per host (configurable in **Config.yml**)
+ Automatically creates a character if the account is empty (configurable in **Config.yml**)
+ Packet processors are provided as a separate feature, allowing you to implement your own packet processors and handlers.

### You want to contribute
It's always welcome. Just create pull request with your improvements, bugfix etc.

### Want to discuss ?
Join us on Discord: https://discord.gg/2qa6dS3Aj6 !

### If you want to support...
...you could buy me a [ko-fi](https://ko-fi.com/idewave)

### Documentation
I do my best to keep it up-to-date. Check our [Wiki](https://github.com/idewave/tentacli/wiki)