Spaces:
Running
Running
(() => { | |
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; | |
} | |
}); | |
}); | |
})(); |