diff --git a/Cargo.lock b/Cargo.lock index bb9c322..34271be 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -169,9 +169,9 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "cc" -version = "1.4.3" +version = "1.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "509591b7bcd67f4ef775afad7662703b4935daaa6ec0e5605cfb1090b32a2b6d" +checksum = "0ad534f4357a5264cce5019c989cf66a4f0dc4e0d1b1d15f8aacec0ff7360273" dependencies = [ "find-msvc-tools", "shlex", @@ -250,7 +250,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -329,9 +329,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +checksum = "8498c871161e1742aaa9d52551b2d6ebdd4c3d45a3be423e3728f33b955be550" dependencies = [ "cfg-if", ] @@ -392,19 +392,6 @@ version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" -[[package]] -name = "crossfire" -version = "3.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111ce8f7abfbac38b4bc4f32a3a2dda1a8034b873c90c7899f302cc9dbbc05ec" -dependencies = [ - "crossbeam-utils", - "futures-core", - "parking_lot", - "pointers", - "smallvec", -] - [[package]] name = "crypto-bigint" version = "0.7.5" @@ -533,9 +520,9 @@ dependencies = [ [[package]] name = "either" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" [[package]] name = "elliptic-curve" @@ -613,7 +600,6 @@ checksum = "9a31d2a3fbaaeb2af2368bbdd904aa8e812d3c04a1ee10d3171f52d556e5d0a3" dependencies = [ "futures-channel", "futures-core", - "futures-executor", "futures-io", "futures-sink", "futures-task", @@ -636,17 +622,6 @@ version = "0.3.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92d699e522242e69e3003b94ecc1f960f3a5e015aa7c5d7486e65ad01dd94f5e" -[[package]] -name = "futures-executor" -version = "0.3.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031b47cf1a3c6cc8bc2fc76cd437f521619387907d469316e7c0bc278f1f5432" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - [[package]] name = "futures-io" version = "0.3.34" @@ -661,7 +636,7 @@ checksum = "9fb9654ba8355388abeb8dcb4fc62f511300867002afc858860463bdd9fe0c44" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -843,9 +818,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "lz4-java-wrc" @@ -920,7 +895,7 @@ checksum = "e4e98dc3b890f6c23a0f9d3d491a2823d0dea0fa656302a13dd225fa924112a8" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -967,16 +942,6 @@ dependencies = [ "sha2", ] -[[package]] -name = "parking_lot" -version = "0.12.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" -dependencies = [ - "lock_api", - "parking_lot_core", -] - [[package]] name = "parking_lot_core" version = "0.9.12" @@ -1074,12 +1039,6 @@ dependencies = [ "spki", ] -[[package]] -name = "pointers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dcdc93847ad24990939cce6e1804361e903efcb5f99daa5abd87943a9d6d7ba" - [[package]] name = "powerfmt" version = "0.2.0" @@ -1183,7 +1142,7 @@ dependencies = [ "proc-macro2", "pumpkin-data", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -1231,6 +1190,7 @@ dependencies = [ "bytes", "colored", "crypto-bigint", + "dashmap", "ecdsa", "md5", "num-derive", @@ -1243,7 +1203,6 @@ dependencies = [ "serde_json", "sha2", "thiserror", - "tokio", "ureq", "uuid", ] @@ -1256,7 +1215,6 @@ dependencies = [ "bitflags", "bytes", "crossbeam", - "crossfire", "dashmap", "flate2", "futures", @@ -1427,9 +1385,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.14" +version = "0.103.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0527518605e68109d875e248ea259b6758801cf165e4b2c2733ae3b51f12535a" +checksum = "f3c3cf1d8b1e7d4927e2d154c3fcb02979afb9939629c62cd9048d4f07b60ac2" dependencies = [ "ring", "rustls-pki-types", @@ -1495,7 +1453,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -1669,9 +1627,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.3" +version = "3.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f" dependencies = [ "proc-macro2", "quote", @@ -1695,7 +1653,7 @@ checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -1754,7 +1712,7 @@ checksum = "78773a2a397f451582ce068015985c33193cf6dea8b74d2a639fe457b2f07b0e" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn 3.0.4", ] [[package]] @@ -1910,9 +1868,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.24.1" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cefc03fd367c0c6d4305de1b312cf00248c4114f4a0418ce6a6af769e3b0bd9" +checksum = "f053576934f05a761a402421fbbe3d425d9366f75f978806a037b3ca481abecc" dependencies = [ "getrandom 0.4.3", "js-sys", diff --git a/Cargo.toml b/Cargo.toml index 3609aa7..a4121f1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,15 +12,15 @@ codegen-units = 1 log = "0.4" simple_logger = "5.2.0" # CLI -clap = { version = "4.6.1", features = ["derive"] } +clap = { version = "4.6.6", features = ["derive"] } # Networking -tokio = { version = "1.52.3", features = ["net", "io-util"] } +tokio = { version = "1.53.1", features = ["net", "io-util"] } pumpkin-protocol = { git = "https://github.com/Pumpkin-MC/Pumpkin", package = "pumpkin-protocol", default-features = false, features = ["serverbound", "clientbound"]} pumpkin-util = { git = "https://github.com/Pumpkin-MC/Pumpkin", package = "pumpkin-util"} pumpkin-data = { git = "https://github.com/Pumpkin-MC/Pumpkin", package = "pumpkin-data"} crossbeam = "0.8.4" -uuid = "1.23.4" +uuid = "1.25.0" rand = { git = "https://github.com/rust-random/rand"} rsa = { version = "=0.10.0-rc.18", default-features = false, features = ["std", "encoding"] } diff --git a/README.md b/README.md index 4cf9af6..5f968bc 100644 --- a/README.md +++ b/README.md @@ -39,6 +39,10 @@ Here's a detailed breakdown of all available command-line arguments: - The timeout (in milliseconds) for each bot connection. - Example: `--delay 500` (500 milliseconds delay) +- **`--enable_spam_message ` (Optional, Default: `true`):** + - Enable periodic chat spam messages. + - Example: `--enable_spam_message true` + - **`--spam_message ""` (Optional, Default: `Please do not spam!`):** - Will send a Chat message with the specified `spam_message_delay`. - Example: `--spam_message "Hello, I'm a Robot"` diff --git a/src/client.rs b/src/client.rs index c92f98f..00e15eb 100644 --- a/src/client.rs +++ b/src/client.rs @@ -255,23 +255,25 @@ impl Client { return; } - if let Some(spam_message) = &args.spam_message { - let result = self.message_spam_cooldown.fetch_update( - Ordering::SeqCst, - Ordering::Relaxed, - |curr| { - if curr == 0 { - let delay = rand::random_range( - args.spam_message_delay_min..args.spam_message_delay_max, - ); - Some(delay) - } else { - Some(curr - 1) - } - }, - ); - if let Ok(0) = result { - self.send_message(spam_message).await; + if args.enable_spam_message { + if let Some(spam_message) = &args.spam_message { + let result = self.message_spam_cooldown.fetch_update( + Ordering::SeqCst, + Ordering::Relaxed, + |curr| { + if curr == 0 { + let delay = rand::random_range( + args.spam_message_delay_min..args.spam_message_delay_max, + ); + Some(delay) + } else { + Some(curr - 1) + } + }, + ); + if let Ok(0) = result { + self.send_message(spam_message).await; + } } } diff --git a/src/main.rs b/src/main.rs index 6b58352..80f9869 100644 --- a/src/main.rs +++ b/src/main.rs @@ -18,22 +18,24 @@ pub struct Args { #[arg(short, long, default_value_t = 5000)] pub timeout: u64, - #[arg(long, default_value = "Please do not spam!")] + #[arg(long, default_value_t = true, default_missing_value = "true", num_args = 0..=1, action = clap::ArgAction::Set, alias = "enable_spam_message")] + pub enable_spam_message: bool, + #[arg(long, default_value = "Please do not spam!", alias = "spam_message")] pub spam_message: Option, - #[arg(long, default_value_t = 150)] + #[arg(long, default_value_t = 150, alias = "spam_message_delay_min")] pub spam_message_delay_min: u32, - #[arg(long, default_value_t = 250)] + #[arg(long, default_value_t = 250, alias = "spam_message_delay_max")] pub spam_message_delay_max: u32, - #[arg(long, default_value_t = true)] + #[arg(long, default_value_t = true, default_missing_value = "true", num_args = 0..=1, action = clap::ArgAction::Set, alias = "enable_rotation")] pub enable_rotation: bool, - #[arg(long, default_value_t = true)] + #[arg(long, default_value_t = true, default_missing_value = "true", num_args = 0..=1, action = clap::ArgAction::Set, alias = "enable_swing")] pub enable_swing: bool, - #[arg(long, default_value_t = true)] + #[arg(long, default_value_t = true, default_missing_value = "true", num_args = 0..=1, action = clap::ArgAction::Set, alias = "enable_movement")] pub enable_movement: bool, - #[arg(long, default_value_t = true)] + #[arg(long, default_value_t = true, default_missing_value = "true", num_args = 0..=1, action = clap::ArgAction::Set, alias = "enable_jumping")] pub enable_jumping: bool, - #[arg(long, default_value_t = true)] + #[arg(long, default_value_t = true, default_missing_value = "true", num_args = 0..=1, action = clap::ArgAction::Set, alias = "enable_physics")] pub enable_physics: bool, }