mirror of
https://github.com/eaglerforge/EaglerForgeInjector
synced 2025-07-23 14:11:16 -09:00
test
This commit is contained in:
parent
69a1829d0d
commit
7d7c06475b
@ -76,7 +76,11 @@
|
||||
}
|
||||
return wrap(AsyncSink.getFile(ModAPI.util.ustr(args[1])));
|
||||
}
|
||||
|
||||
var ev = {method: "read", file: ModAPI.util.ustr(args[1]), shim: false, shimOutput: new ArrayBuffer()};
|
||||
AsyncSink.MIDDLEWARE.forEach((fn)=>{fn(ev)});
|
||||
if (ev.shim) {
|
||||
return wrap(ev.shimOutput);
|
||||
}
|
||||
return originalReadWholeFile.apply(this, args);
|
||||
};
|
||||
|
||||
@ -92,6 +96,11 @@
|
||||
AsyncSink.setFile(ModAPI.util.ustr(args[1]), args[2]);
|
||||
return booleanResult(true);
|
||||
}
|
||||
var ev = {method: "write", file: ModAPI.util.ustr(args[1]), data: args[2], shim: false, shimOutput: true};
|
||||
AsyncSink.MIDDLEWARE.forEach((fn)=>{fn(ev)});
|
||||
if (ev.shim) {
|
||||
return booleanResult(ev.shimOutput);
|
||||
}
|
||||
return originalWriteWholeFile.apply(this, args);
|
||||
};
|
||||
|
||||
@ -107,6 +116,11 @@
|
||||
AsyncSink.deleteFile(ModAPI.util.ustr(args[1]));
|
||||
return booleanResult(true);
|
||||
}
|
||||
var ev = {method: "delete", file: ModAPI.util.ustr(args[1]), shim: false, shimOutput: true};
|
||||
AsyncSink.MIDDLEWARE.forEach((fn)=>{fn(ev)});
|
||||
if (ev.shim) {
|
||||
return booleanResult(ev.shimOutput);
|
||||
}
|
||||
return originalDeleteFile.apply(this, args);
|
||||
};
|
||||
|
||||
@ -122,6 +136,11 @@
|
||||
var result = AsyncSink.fileExists(ModAPI.util.ustr(args[1]));
|
||||
return booleanResult(result);
|
||||
}
|
||||
var ev = {method: "exists", file: ModAPI.util.ustr(args[1]), shim: false, shimOutput: true};
|
||||
AsyncSink.MIDDLEWARE.forEach((fn)=>{fn(ev)});
|
||||
if (ev.shim) {
|
||||
return booleanResult(ev.shimOutput);
|
||||
}
|
||||
return originalFileExists.apply(this, args);
|
||||
};
|
||||
globalThis.AsyncSink = AsyncSink;
|
||||
|
@ -1,5 +1,20 @@
|
||||
(() => {
|
||||
PluginAPI.dedicatedServer.appendCode(function () {
|
||||
var ready = false;
|
||||
var killFS = false;
|
||||
function setup_filesystem_middleware() {
|
||||
if (!ready) {
|
||||
AsyncSink.MIDDLEWARE.push((ev)=>{
|
||||
if (killFS) {
|
||||
ev.shim = true;
|
||||
if (typeof ev.shimOutput === "boolean") {
|
||||
ev.shimOutput = true;
|
||||
}
|
||||
}
|
||||
});
|
||||
ready = true;
|
||||
}
|
||||
}
|
||||
PluginAPI.addEventListener("processcommand", (event) => {
|
||||
if (!ModAPI.reflect.getClassById("net.minecraft.entity.player.EntityPlayerMP").instanceOf(event.sender.getRef())) { return; }
|
||||
|
||||
@ -7,6 +22,7 @@
|
||||
if (!globalThis.AsyncSink) {
|
||||
return alert("NPC Spawner relies on the AsyncSink library.");
|
||||
}
|
||||
setup_filesystem_middleware();
|
||||
const world = event.sender.getServerForPlayer();
|
||||
const senderPos = event.sender.getPosition();
|
||||
|
||||
@ -23,6 +39,7 @@
|
||||
const playerInteractionManager = PlayerInteractionManagerClass.constructors[0](world.getRef());
|
||||
|
||||
// Get the EntityPlayerMP class to spawn the fake player
|
||||
killFS = true;
|
||||
AsyncSink.startDebuggingFS();
|
||||
const EntityPlayerMPClass = ModAPI.reflect.getClassById("net.minecraft.entity.player.EntityPlayerMP");
|
||||
var worldNameProp = ModAPI.util.getNearestProperty(ModAPI.server.getRef(), "$worldName");
|
||||
@ -31,6 +48,7 @@
|
||||
const fakePlayer = EntityPlayerMPClass.constructors[0](
|
||||
ModAPI.server.getRef(), world.getRef(), fakeProfile, playerInteractionManager
|
||||
);
|
||||
killFS = false;
|
||||
|
||||
// Set the fake player position to be near the command sender
|
||||
fakePlayer.setPosition(senderPos.$getX(), senderPos.$getY(), senderPos.$getZ());
|
||||
|
Loading…
x
Reference in New Issue
Block a user