Inventory Manager API
Inventory Manager API allows you to save/load inventories, extending inventory functionalities
Описание
Инвентарный менеджер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
CompletableFuturefor 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 <key> <value> |
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
InventoryManagerAPI-1.0.2.jar
InventoryManagerAPI-1.0.1.jar
InventoryManagerAPI-1.0.0.jar
Информация
Авторы:
Категории:
Версии игры:
Создан: 17.01.2026