mirror of
https://github.com/eaglerforge/EaglerForgeInjector
synced 2025-07-22 21:51:17 -09:00
31 lines
1.7 KiB
JavaScript
31 lines
1.7 KiB
JavaScript
(() => {
|
|
PluginAPI.dedicatedServer.appendCode(function () { //Run this code on the server
|
|
PluginAPI.addEventListener("processcommand", (event) => { //Command processing event
|
|
// Check if the sender is a player
|
|
if (!ModAPI.reflect.getClassById("net.minecraft.entity.player.EntityPlayerMP").instanceOf(event.sender.getRef())) { return; }
|
|
|
|
// Check if the command is "/spawnxp"
|
|
if (event.command.toLowerCase().startsWith("/spawnxp")) {
|
|
const world = event.sender.getServerForPlayer();
|
|
const senderPos = event.sender.getPosition();
|
|
|
|
// Create an xp orb entity
|
|
const EntityXP = ModAPI.reflect.getClassByName("EntityXPOrb");
|
|
const xporb = EntityXP.constructors[0](world.getRef(), senderPos.getX(), senderPos.getY(), senderPos.getZ(), 10);
|
|
|
|
// Add the xp orb to the world
|
|
ModAPI.promisify(ModAPI.hooks.methods.nmw_World_spawnEntityInWorld)(world.getRef(), xporb).then(result => {
|
|
// Notify the player that the xp orb has been spawned
|
|
|
|
// Get the chat component class
|
|
const ChatComponentTextClass = ModAPI.reflect.getClassById("net.minecraft.util.ChatComponentText");
|
|
// Construct the chat component and send it to the client.
|
|
event.sender.addChatMessage(ChatComponentTextClass.constructors[0](ModAPI.util.str("An xp orb has been spawned!")));
|
|
});
|
|
|
|
// Prevent the command from executing further (stops syntax errors / command does not exist errors)
|
|
event.preventDefault = true;
|
|
}
|
|
});
|
|
});
|
|
})(); |