#tcp-client #client-server #debugging #console-application #idewave #wow-client #console-client

bin+lib tentacli

Console wow-client, it can be used either as a standalone application or integrated into your own project

33 stable releases (10 major)

14.2.0 Sep 10, 2024
14.0.1 Aug 29, 2024
13.0.1 Aug 25, 2024
12.0.0 Aug 22, 2024
4.1.1 Jan 31, 2024

#1107 in Network programming


Used in idewave_packet

Custom license

165KB
4K SLoC

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

Documentation

I do my best to keep it up-to-date. Check our Wiki

Dependencies

~7–19MB
~275K SLoC