-
Member
idewave-cli - Rust implementation of wow client v3.3.5a (cli)
Hi community,
I created Rust implementation of wow client version 3.3.5a (cli).
GitHub - idewave/idewave-cli: Rust implementation for smart wow client (cli)
I would appreciate if you want to contribute.
Last edited by Anachoreta; 07-13-2022 at 10:38 PM.
-
Post Thanks / Like - 2 Thanks
-
Established Member
Awesome release very interesting,
I started creating some recast navigation rust bindings which could be useful in the far future for entity pathfinding
GitHub - 0xFounders/divert: Rust bindings for Recast Navigation.
-
Post Thanks / Like - 2 Thanks
-
Member
Version 0.3.0 is available. It includes performance improvements and tests support. Also it includes git hooks (pre-commit for now) to run tests for local changes.
-
Member
New major version v1.0.0 released ! Brief description:
- added UI with keyboard interaction and optional debug mode
- improved performance
- refactored code and file structure
join us GitHub - idewave/idewave-cli: Rust implementation of world of warcraft client v3.3.5a (smart CLI) !
-
Post Thanks / Like - 1 Thanks
_chase (1 members gave Thanks to Anachoreta for this useful post)
-
Member
New major version v2.0.0 released ! Brief description:
- handlers are refactored into async (so async code can be used directly there now)
- packet reader now can process partial TCP packets (await until whole packet loaded)
- refactored code
-
Member
If somebody use idewave-cli you probably will be glad to know v3.0.0 is released. Brief description:
+ added Rust macroses for packet parser. For end-user this allow to provide packet serialization feature, so it's possible to debug packets in real-time and see packet content in human-readable format. For developer this feature make it easier to focus on using packet fields without need of implementing packet parser manually.
+ UI was refactored and improved: added output history scrolling using ArrowUp/ArrowDown, PageUp/PageDown, Home/End; added debug details panel to show any developer-defined output for specific item (to scroll need to use Ctrl + ArrowUp/ArrowDown); added info panel to show some extra info like total income/outcome and pagination info; added formatted time for each output item.
+ added support for .env file (in addition for Config.yml) and all sensitive data (host, port) moved into it.
* fixed memory leak in UI and some little bugs
Link: GitHub - idewave/idewave-cli: Rust implementation of world of warcraft client v3.3.5a (smart CLI)
-
Member
It was no updates for a long time, but recently I made pretty much changes in the project (latest version is v4.1.1).
+ First of all, project was renamed to "tentaCLI" (to reflect its actual concept) and now it can be used not only as UI tool, but also as library for third-party Rust applications. Tentacli is used now as part of my next project, binary army, so you can join our discord to follow updates (or even to participate the development or idea discussions).
+ Tentacli is now embeddable extendable console wow-client, it now accepts external feature set (so any developer can extend the functionality according to his/her needs)
+ Run process was changed a bit:
Code:
Client::new().run(RunOptions {
external_channel: None,
external_features: vec![],
account: "bot",
config_path: "./conf/Config.yml",
dotenv_path: "./conf/.env"
}).await?;
so, external channel param allow developers to use own broadcast channel to bind tentacli with rest application, for configs it is now possible to use custom paths (if configs not exist they will be created), also for not it is possible to use account sets (so each host in config can accept multiple accounts and to select one you should just use "account" param as in example above).
+ Tentacli can be installed with default feature (ui), or console feature or even without any features (no output in console by default)
+ UI was refactored and some redundant parts were removed from it. Switching to debug mode was removed, instead debug mode is default UI mode, so you can scroll packets history and look details for each packet.
+ Handlers were refactored, redundant channels were removed, instead each handler should return vector of outputs - response (before this update each handler could only return one output item). Example:
Code:
async fn handle(&mut self, input: &mut HandlerInput) -> HandlerResult {
let mut response = Vec::new();
let (Income { realms, .. }, json) = Income::from_binary(input.data.as_ref().unwrap())?;
response.push(HandlerOutput::ResponseMessage(
Opcode::get_server_opcode_name(input.opcode.unwrap()),
Some(json),
));
let autoselect_realm_name = {
let guard = input.session.lock().await;
let config = guard.get_config()?;
config.connection_data.autoselect_realm_name.to_string()
};
if autoselect_realm_name.is_empty() {
response.push(HandlerOutput::TransferRealmsList(realms));
response.push(HandlerOutput::Freeze);
} else {
let re = Regex::new(format!(r#"{}"#, autoselect_realm_name).as_str()).unwrap();
if let Some(realm) = realms.into_iter().find(|item| re.is_match(&item.name[..])) {
response.push(HandlerOutput::DebugMessage(
format!("Selected "{}" Realm", realm.name),
None,
));
input.session.lock().await.selected_realm = Some(realm);
} else {
bail!(RealmListError::NotFound);
}
}
Ok(response)
}
Few words about future development. I want to focus on my next project, Binary Army and concept of this project is next: it will be smth like smart swarm where any amount of tentacli can be run and where each tentacli instance has all knowledge from another instances, so they can cooperate. If you have ideas or just interesting to follow or even want to contribute - you are welcome in our discord: Idewave
-
Member
More updates were added. So the most actual version for now is v5.2.1.
What's new:
+ refactored imports
+ added new messages which tentacli can broadcast (current player state and chat messages)
* fixed update packet parser
* some performance fixes
So for now there much more possibilities for usage tentacli as library in 3rd-party apps.
Join us to follow most recent updates
-
Member
Tentacli v6.0.0 is ready. What's was changed:
- refactored opcode struct
- added all opcodes (so now it is possible to see in output ALL opcodes from server, but ! still need to add more handlers to parse all income packets)
- added logout handling
- added `IncomingPacket`/`OutgoingPacket` wrappers for raw packet data
- `handle_read` and `handle_packet` tasks were combined into one, so income packets are processed consistently
- fixed Ctrl + Up/Down navigation through debug details panel
- fixed large packet reading
You have suggestions or ideas ? You're welcome in our Discord !
-
Member
Tentacli is v8.0.1 for now. There were fixed some critical bugs and also it supports characters auto creation (on empty or newly created accounts). For details reach out tentacli's wiki and do not hesitate to join us on discord !
-
Member
I haven't written about updates for a long time, but there have been a lot of updates during this time. Tentacli v13.0.1 is ready to use. It contains fixes to update packet parser - now all player fields are displayed correctly, also was fixed old issue with packets duplication. Packets processors were moved into separate features (so this is a nice step to wow multi-version supporting). Also almost all parts of tentacli are available as separate crates (so it is possible to use only some parts in your own apps).
The link to the project: https://crates.io/crates/tentacli
-
Member
Tentacli v14.1.0 contains fixes for VALUES block type of update packet - now this type displays correctly. Also hints annotations for update fields were added - now it's much more convenient to use them in the code.
You can follow updates on tentacli's github or in our discord.