Inventory Manager API

Inventory Manager API

Inventory Manager API allows you to save/load inventories, extending inventory functionalities

171.0 загрузок
Обновлён 12 дней назад

Описание

Инвентарный менеджерAPI

А. Плагин сервера Hytale, который обеспечивает мощный API для управления запасами игроков с постоянной функциональностью сохранения / загрузки.

Поддержите PostgreSQL!

Цель

InventoryManagerAPI решает общую проблему сохранения запасов на серверах Hytale. Независимо от того, создаете ли вы мини-игры, которые должны сохранять / восстанавливать запасы игроков, создавать пользовательские игровые режимы с предустановленными запасами или разрабатывать плагины, которые требуют временного хранения запасов, этот API обеспечивает чистое модульное решение.

Что он делает

  • Сохранить запасы игроков Постоянное хранение (файлы JSON)
  • Восстановление запасов по требованию с полным сохранением данных
  • Несколько режимов хранения Для различных случаев использования:
    • основанный на UUID - Простое хранилище для конкретного игрока
    • UUID + суффикс - Несколько названных вариантов на одного игрока (например, kit_pvp, kit_builder)
    • Пользовательские имена Общий/глобальный инвентарный набор, доступный любому игроку

Особенности

Для администраторов серверов

  • Встроенные команды для ручного управления запасами
  • Настраиваемое поведение (четкий инвентарь на сохранение, удаление инвентарного файла на загрузку)
  • Устойчивая конфигурация с внутриигровой модификацией

Для разработчиков плагинов

  • Чистый API доступен через InventoryManagerAPIPlugin.get().getInventoryStorageManager()
  • Операции Async с использованием Готовое будущее для неблокирующего ввода/вывода
  • Структура стратегии позволяет создавать пользовательские бэкэнды хранения
  • Полная поддержка инвентаря: горячая панель, хранилище, рюкзак, броня и слоты для коммунальных услуг

командование

Командование Описание
/invm Save Сохраните текущий инвентарь
/invm загрузка Восстановить сохраненный инвентарь
Список /invm Список имеющихся сэкономленных запасов
/invm Config View Посмотреть текущую конфигурацию
/invm-настройка <key> <value> Модифицировать конфигурацию
/invm Config Save Сохранить конфигурацию на диске
/invm перезагрузка конфигурации Перезагрузка конфигурации с диска

Командные варианты

Варианты сохранения/загрузки:

  • - суффикс <name> - Используйте вариант с именем игрока
  • Имя <name> Использование общего/глобального названия инвентаря
  • Ясная правда - ложная - Отменить установку "чисто на сохранение"
  • Исключить истинное | ложное - Отмена установки "удаление на загрузке"
  • Игрок <name> - применить операцию к другому игроку

Перечислите варианты:

  • имя - Показать заказные запасы
  • - суффикс - Показать запасы на основе суффикса
  • -uuid <player> Фильтр от конкретного игрока

конфигурация

Конфигурационный файл находится в Моды/DjCtavia.InventoryManagerAPI/InventoryManagerAPI.json.

Общие настройки

настройка по умолчанию Описание
Дирекция хранения Моды/.../ Запасы Где хранятся файлы инвентаря (только хранилище JSON)
ClearInventoryOnSave истинный Чистый инвентарь игрока после экономии
Удалить FileOnLoad истинный Удалить файл инвентаризации после восстановления
Тип хранилища Джейсон Хранение бэкэнда для использования (Джейсон или PostreSQL)

PostreSQL Настройки

Эти настройки используются только тогда, когда Тип хранилища устанавливается PostreSQL.

настройка по умолчанию Описание
ведущий местный житель Имя сервера PostgreSQL
Порт 5432 PostreSQL серверный порт
База данных постгре Имя базы данных
Имя пользователя постгре Имя пользователя базы данных
Пароль (пустая) Пароль базы данных
Название таблицы инвентарные запасы Наименование таблицы для хранения запасов

Примерные конфигурации

Хранение JSON (по умолчанию)

{
"StorageDirectory": "mods/DjCtavia.InventoryManagerAPI/inventories",
"ClearInventoryOnSave": правда,
"DeleteFileOnLoad": правда,
"StorageType": "Джон",
"PostgreSQL":
"Host": "localhost",
"Порт": 5432,
"База данных": "постгре",
"Имя пользователя": "postgres",
"Пароль": "",
«TableName»: «запасы»
?
?

PostreSQL хранение

{
"StorageDirectory": "mods/DjCtavia.InventoryManagerAPI/inventories",
"ClearInventoryOnSave": правда,
"DeleteFileOnLoad": правда,
"StorageType": "PostgreSQL",
"PostgreSQL":
"Host": "localhost",
"Порт": 5432,
"База данных": "hytale_server",
"Имя пользователя": "postgres",
"Пароль": "ваш_пароль",
«TableName»: «запасы»
?
?

API использование

// Позовите менеджера
Хранение инвентаря Менеджер = InventoryManagerAPIPlugin.get().getInventoryStorageManager();

// Сохранить инвентарь UUID
manager.saveInventory (playerUUID, инвентарь);

// Сохранить с суффиксом (например, для разных режимов игры)
manager.saveInventoryWithSuffix (playerUUID, инвентарь, «арена»);

// Save as a Named Preset (совместно с игроками)
manager.saveInventoryByName("starter_kit", инвентарь);

// Восстановить инвентаризацию
Manager.restoreInventory (playerRef, магазин);

// Восстановление с суффиксом
manager.restoreInventory (плеерРеф, магазин, "арена", нуль);

Восстановление из названного preset
manager.restoreInventoryByName (playerRef, store, "starter_kit", null);

// Список имеющихся запасов
List<String> namedInventories = manager.listNamedInventories();
List<String> playerInventories = manager.listSuffixInventories (playerUUID);
Показать оригинальное описание (English)

InventoryManagerAPI

A Hytale server plugin that provides a powerful API for managing player inventories with persistent save/load functionality.

Now support PostgreSQL!

Purpose

InventoryManagerAPI solves the common problem of inventory persistence in Hytale servers. Whether you're building minigames that need to save/restore player inventories, creating custom gamemodes with inventory presets, or developing plugins that require temporary inventory storage, this API provides a clean, modular solution.

What It Does

  • Save player inventories to persistent storage (JSON files)
  • Restore inventories on demand with full item data preservation
  • Multiple storage modes for different use cases:
    • UUID-based - Simple player-specific storage
    • UUID + Suffix - Multiple named variants per player (e.g., kit_pvp, kit_builder)
    • Custom names - Shared/global inventory presets accessible to any player

Features

For Server Administrators

  • Built-in commands for manual inventory management
  • Configurable behavior (clear inventory on save, delete inventory file on load)
  • Persistent configuration with in-game modification

For Plugin Developers

  • Clean API accessible via InventoryManagerAPIPlugin.get().getInventoryStorageManager()
  • Async operations using CompletableFuture for non-blocking I/O
  • Strategy pattern allows custom storage backends
  • Full inventory support: hotbar, storage, backpack, armor, and utility slots

Commands

Command Description
/invm save Save your current inventory
/invm load Restore a saved inventory
/invm list List available saved inventories
/invm config view View current configuration
/invm config set &lt;key&gt; &lt;value&gt; Modify configuration
/invm config save Save configuration to disk
/invm config reload Reload configuration from disk

Command Options

Save/Load options:

  • --suffix <name> - Use player-specific named variant
  • --name <name> - Use shared/global inventory name
  • --clear true|false - Override clear-on-save setting
  • --delete true|false - Override delete-on-load setting
  • --player <name> - apply operation on another player

List options:

  • --name - Show custom-named inventories
  • --suffix - Show suffix-based inventories
  • --uuid <player> - Filter by specific player

Configuration

The configuration file is located at mods/DjCtavia.InventoryManagerAPI/InventoryManagerAPI.json.

General Settings

Setting Default Description
StorageDirectory mods/.../inventories Where inventory files are stored (JSON storage only)
ClearInventoryOnSave true Clear player inventory after saving
DeleteFileOnLoad true Delete inventory file after restoring
StorageType Json Storage backend to use (Json or PostgreSQL)

PostgreSQL Settings

These settings are only used when StorageType is set to PostgreSQL.

Setting Default Description
Host localhost PostgreSQL server hostname
Port 5432 PostgreSQL server port
Database postgres Database name
Username postgres Database username
Password (empty) Database password
TableName inventories Table name for storing inventories

Example Configurations

JSON Storage (Default)

{
    "StorageDirectory": "mods/DjCtavia.InventoryManagerAPI/inventories",
    "ClearInventoryOnSave": true,
    "DeleteFileOnLoad": true,
    "StorageType": "Json",
    "PostgreSQL": {
        "Host": "localhost",
        "Port": 5432,
        "Database": "postgres",
        "Username": "postgres",
        "Password": "",
        "TableName": "inventories"
    }
}

PostgreSQL Storage

{
    "StorageDirectory": "mods/DjCtavia.InventoryManagerAPI/inventories",
    "ClearInventoryOnSave": true,
    "DeleteFileOnLoad": true,
    "StorageType": "PostgreSQL",
    "PostgreSQL": {
        "Host": "localhost",
        "Port": 5432,
        "Database": "hytale_server",
        "Username": "postgres",
        "Password": "your_password",
        "TableName": "inventories"
    }
}

API Usage

// Get the manager
InventoryStorageManager manager = InventoryManagerAPIPlugin.get().getInventoryStorageManager();

// Save inventory by UUID
manager.saveInventory(playerUUID, inventory);

// Save with a suffix (e.g., for different game modes)
manager.saveInventoryWithSuffix(playerUUID, inventory, "arena");

// Save as a named preset (shared across players)
manager.saveInventoryByName("starter_kit", inventory);

// Restore inventory
manager.restoreInventory(playerRef, store);

// Restore with suffix
manager.restoreInventory(playerRef, store, "arena", null);

// Restore from named preset
manager.restoreInventoryByName(playerRef, store, "starter_kit", null);

// List available inventories
List<String> namedInventories = manager.listNamedInventories();
List<String> playerInventories = manager.listSuffixInventories(playerUUID);

Последние версии

InventoryManagerAPI-1.1.0.jar

Early Access 21.01.2026 1.5 МБ

InventoryManagerAPI-1.0.2.jar

Early Access 17.01.2026 34.6 КБ

InventoryManagerAPI-1.0.1.jar

Early Access 17.01.2026 34.7 КБ

InventoryManagerAPI-1.0.0.jar

Early Access 17.01.2026 31.5 КБ