En esta guía aprenderás cómo gestionar los inventarios de los jugadores en tu mod de Hytale, incluyendo creación de ítems, apertura de páginas de inventario y manipulación de ItemStack.
Explorando el Código de HytaleServer.jar
Accediendo al Inventario del Jugador
Para acceder al inventario de un jugador (Player), se utiliza el método getInventory(), que devuelve un objeto Inventory.
Inventory inventory = player.getInventory();
Abrir Inventarios
Puedes abrir diferentes tipos de inventarios, conocidos como “Pages”. Más adelante se explicará cómo agregar páginas personalizadas.
Actualmente, las páginas disponibles son:
Page.NonePage.BenchPage.InventoryPage.ToolsSettingsPage.MapPage.MachinimaEditorPage.ContentCreationPage.Custom
Ejemplo para abrir la página de inventario del jugador:
PageManager pageManager = player.getPageManager();
Store<EntityStore> store = player.getWorld().getEntityStore().getStore();
pageManager.setPage(player.getReference(), store, Page.Inventory);
Clase ItemStack
La clase ItemStack representa un stack de ítems en el inventario y permite manipular tanto el tipo como la cantidad de ítems.
Crear un ItemStack
ItemStack item = new ItemStack("Stone"); // Un bloque de piedra
ItemStack withQuantity = new ItemStack("Stone", 64); // Stack de 64 bloques
Agregar Metadata Personalizada
Puedes agregar metadata usando un BsonDocument al crear el ítem:
BsonDocument metadata = new BsonDocument();
metadata.append("customData", new BsonString("value"));
ItemStack item = new ItemStack("Stone", 64, metadata);
Definir Durabilidad
ItemStack stackWithDurability = new ItemStack(
"DiamondSword", // ID del ítem
1, // Cantidad
100.0, // Durabilidad actual
100.0, // Durabilidad máxima
metadata // Metadata opcional
);
Accediendo a los ItemContainer
La clase Inventory permite obtener múltiples contenedores de ítems, por ejemplo:
.getStorage()→ Almacenamiento general.getArmor()→ Armadura.getBackpack()→ Mochila.getHotbar()→ Hotbar.getUtility()→ Ítems utilitarios
También existen métodos combinados:
.getCombinedEverything().getCombinedArmorHotbarStorage().getCombinedBackpackStorageHotbar().getCombinedHotbarFirst().getCombinedStorageFirst().getCombinedArmorHotbarUtilityStorage().getCombinedHotbarUtilityConsumableStorage()
Agregar ItemStack al Inventario
Para agregar un ítem al inventario:
Inventory inventory = player.getInventory();
inventory.addItemStack(item);
O a un slot específico:
inventory.addItemStackToSlot((short) 4, stack);
Eliminar ItemStack del Inventario
Para eliminar un ítem:
Inventory inventory = player.getInventory();
inventory.removeItemStack(item);
O de un slot específico:
inventory.removeItemStackFromSlot((short) 4);
Esto cubre las operaciones básicas de inventario en Hytale, desde acceder y abrir páginas hasta crear, agregar y remover ítems.
Descubre más desde CIBERED
Suscríbete y recibe las últimas entradas en tu correo electrónico.
