mirror of
https://github.com/eaglerforge/EaglerForgeInjector
synced 2025-07-24 22:51:18 -09:00
Create npcspawner.js
This commit is contained in:
parent
5a6628a617
commit
1fd14a6910
34
examplemods/npcspawner.js
Normal file
34
examplemods/npcspawner.js
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
(() => {
|
||||||
|
PluginAPI.dedicatedServer.appendCode(function () {
|
||||||
|
PluginAPI.addEventListener("processcommand", (event) => {
|
||||||
|
if (!ModAPI.reflect.getClassById("net.minecraft.entity.player.EntityPlayerMP").instanceOf(event.sender.getRef())) { return }
|
||||||
|
|
||||||
|
if (event.command.toLowerCase().startsWith("/spawnnpc")) {
|
||||||
|
const world = event.sender.getServerForPlayer();
|
||||||
|
const playerPos = event.sender.getPosition();
|
||||||
|
|
||||||
|
// Create a fake player entity
|
||||||
|
const FakePlayerClass = ModAPI.reflect.getClassById("com.mojang.authlib.GameProfile");
|
||||||
|
const fakeProfile = FakePlayerClass.constructors[2](
|
||||||
|
java.util.UUID.randomUUID(), ModAPI.util.str("Steve")
|
||||||
|
);
|
||||||
|
|
||||||
|
const EntityPlayerMPClass = ModAPI.reflect.getClassById("net.minecraft.entity.player.EntityPlayerMP");
|
||||||
|
const fakePlayer = EntityPlayerMPClass.constructors[1](
|
||||||
|
world.getMinecraftServer(), world.getRef(), fakeProfile, world.getPlayerInteractionManager()
|
||||||
|
);
|
||||||
|
|
||||||
|
// Set the player position
|
||||||
|
fakePlayer.setPosition(playerPos.$getX(), playerPos.$getY(), playerPos.$getZ());
|
||||||
|
|
||||||
|
// Add the fake player to the world
|
||||||
|
world.addEntityToWorld(fakePlayer.getEntityId(), fakePlayer);
|
||||||
|
|
||||||
|
// Send a confirmation message to the player
|
||||||
|
event.sender.addChatMessage(ModAPI.reflect.getClassById("net.minecraft.util.ChatComponentText").constructors[0](ModAPI.util.str("Fake Steve has been spawned!")));
|
||||||
|
|
||||||
|
event.preventDefault = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
})();
|
Loading…
x
Reference in New Issue
Block a user