Improve launcher injection and hook reliability
Find Fabric through the render thread's class loader and make bytecode transformations safer for launcher-provided class definitions. Improve hook reporting, process-picker refresh behavior, and self-destruct cleanup; document Dawn and Lunar 1.21.11 setup.
This commit is contained in:
1 parent
38ff6d387c
commit
036b24f2ae
12 files changed
+186
-48
No files matched your search
@@ -221,14 +221,12 @@ fn pick_process() -> Option<u32> {
|
||||
let mut selected = 0usize;
|
||||
let mut processes = platform::java_processes();
|
||||
let mut last_refresh = Instant::now();
|
||||
draw(&processes, selected);
|
||||
loop {
|
||||
if selected >= processes.len() {
|
||||
selected = processes.len().saturating_sub(1);
|
||||
}
|
||||
draw(&processes, selected);
|
||||
let deadline = Instant::now() + Duration::from_millis(50);
|
||||
while Instant::now() < deadline {
|
||||
if let Some(key) = platform::poll_key() {
|
||||
let previous = selected;
|
||||
match key {
|
||||
platform::Key::Up => selected = selected.saturating_sub(1),
|
||||
platform::Key::Down => selected = (selected + 1).min(processes.len().saturating_sub(1)),
|
||||
@@ -239,12 +237,19 @@ fn pick_process() -> Option<u32> {
|
||||
}
|
||||
platform::Key::Escape => return None,
|
||||
}
|
||||
draw(&processes, selected);
|
||||
if selected != previous {
|
||||
draw(&processes, selected);
|
||||
}
|
||||
}
|
||||
std::thread::sleep(Duration::from_millis(10));
|
||||
}
|
||||
if last_refresh.elapsed() >= Duration::from_millis(750) {
|
||||
processes = platform::java_processes();
|
||||
let refreshed = platform::java_processes();
|
||||
if refreshed != processes {
|
||||
processes = refreshed;
|
||||
selected = selected.min(processes.len().saturating_sub(1));
|
||||
draw(&processes, selected);
|
||||
}
|
||||
last_refresh = Instant::now();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
use std::path::PathBuf;
|
||||
|
||||
/// A running Minecraft JVM shown in the picker.
|
||||
#[derive(PartialEq)]
|
||||
pub struct JavaProcess {
|
||||
pub pid: u32,
|
||||
pub title: String,
|
||||
|
||||
Reference in new issue
Block a user