Compare commits

...

6 Commits

Author SHA1 Message Date
a860a906b7 Spam enter to complete Shakes
All checks were successful
Rust / build (push) Successful in 1m23s
2024-10-21 21:03:04 -04:00
11d0001624 Don't permanently hold "BaskSlash"
All checks were successful
Rust / build (push) Successful in 1m21s
2024-10-20 13:18:15 -04:00
33ac041121 Auto-press "BackSlash" when releasing space (get ready for shakes)
All checks were successful
Rust / build (push) Successful in 1m20s
2024-10-20 02:56:38 -04:00
49b8ba64d0 Add download link
All checks were successful
Rust / build (push) Successful in 1m21s
2024-10-20 02:00:24 -04:00
3eb031134b I forgor
All checks were successful
Rust / build (push) Successful in 1m36s
2024-10-20 01:57:26 -04:00
7873309212 Add suspension 2024-10-20 01:57:20 -04:00
3 changed files with 53 additions and 24 deletions

View File

@ -2,7 +2,7 @@ name: Rust
on:
push:
branches: ["master"]
branches: ["main"]
jobs:
build:

View File

@ -1,3 +1,5 @@
# mouse-free-fishing
Made for Fisch (Roblox game)
You can grab the latest release using [this link](https://git.tommyy.dev/tommy/mouse-free-fishing/actions/runs/latest/artifacts/mouse-free-fishing)

View File

@ -1,8 +1,11 @@
use std::sync::{Arc, Mutex};
use rdev::{simulate, Event, EventType, SimulateError};
use std::process::exit;
const ENTER_KEY: rdev::Key = rdev::Key::Return;
const SPACE_KEY: rdev::Key = rdev::Key::Space;
const ESCAPE_KEY: rdev::Key = rdev::Key::Escape;
const SUSPEND_KEY: rdev::Key = rdev::Key::SemiColon;
fn send(event_type: EventType) {
match simulate(&event_type) {
@ -14,30 +17,54 @@ fn send(event_type: EventType) {
}
fn main() {
let callback = |event: Event| {
let mut matched: bool = false;
match event.event_type {
EventType::KeyPress(SPACE_KEY) => {
send(EventType::ButtonPress(rdev::Button::Left));
matched = true;
},
EventType::KeyRelease(SPACE_KEY) => {
send(EventType::ButtonRelease(rdev::Button::Left));
matched = true;
},
EventType::KeyPress(ESCAPE_KEY) => exit(0),
_ => ()
}
if !matched {
Some(event)
} else {
None
}
};
let suspended = Arc::new(Mutex::new(false));
let suspended_clone = Arc::clone(&suspended);
println!("Escape: Quit program\nSpace: Left mouse click");
let callback = move |event: Event| {
let mut matched: bool = false;
match event.event_type {
EventType::KeyPress(key) if key == ENTER_KEY => {
send(EventType::KeyPress(rdev::Key::KeyS));
send(EventType::KeyRelease(rdev::Key::KeyS));
},
EventType::KeyPress(key) if key == SPACE_KEY => {
let suspended = suspended.lock().unwrap();
if *suspended {
return Some(event);
} else {
send(EventType::ButtonPress(rdev::Button::Left));
matched = true;
}
},
EventType::KeyRelease(key) if key == SPACE_KEY => {
let suspended = suspended.lock().unwrap();
if *suspended {
return Some(event);
} else {
send(EventType::ButtonRelease(rdev::Button::Left));
send(EventType::KeyPress(rdev::Key::BackSlash));
send(EventType::KeyRelease(rdev::Key::BackSlash));
matched = true;
}
},
EventType::KeyPress(key) if key == SUSPEND_KEY => {
let mut suspended = suspended_clone.lock().unwrap();
*suspended = !*suspended;
println!("Suspend: {}", *suspended);
}
EventType::KeyPress(key) if key == ESCAPE_KEY => exit(0),
_ => ()
}
if !matched {
Some(event)
} else {
None
}
};
if let Err(error) = rdev::grab(callback) {
println!("Escape: Quit program\nSemi colon (;): Suspend\nSpace: Left mouse click");
if let Err(error) = rdev::grab(callback) {
eprintln!("Error: {:?}", error);
}
}