PlayerData Core
Simple key-value player data storage API with JSON persistence for server plugins.
Описание
PlayerData Core
Легкая библиотека для хранения и извлечения данных игрока в плагинах сервера Hytale.
Особенности
- Простой API для любого типа данных
- Автоматическая устойчивость JSON к диску
- Безопасные операции
- Изоляция данных игрока
- Нулевая конфигурация
- Пространственные ключи Для предотвращения конфликтов плагинов
Для разработчиков плагинов
Ключи должны быть проставлены с использованием формата плагин:keyname Чтобы избежать конфликтов между плагинами.
// Хранить данные
PlayerData.set (playerId, "myplugin:coins", 100)
PlayerData.set (playerId, "myplugin:rank", "VIP")
// Восстановить данные
Вал монеты = PlayerData.get<Int>(playerId, "myplugin:coins") ?: 0
val rank = PlayerData.get<String>(playerId, "myplugin:rank")
// Повышенные числовые значения
PlayerData.increment (игрок) Id, "myplugin:coins", 50
// Удалить данные
PlayerData.remove (игрок) Id, "myplugin:temp_data"
Недействительные ключи могут вызвать ошибку:
«Nonamespace» Ошибка: ключ должен быть пропущен по имени
Оригинальное название: Error: Empty Namespace
Плагин: Ошибка: Пустое имя ключа
Поддерживаемые типы данных
- Струна
- Int / Long / Double / Float
Булин
- Список <*> (примитивов)
- Map<String, *> (примитивов)
установка
- Скачать файл JAR
- Поместите в папку плагинов вашего сервера
- Перезагрузить сервер
Для владельцев серверов
Это библиотечный плагин — он сам по себе ничего не делает. Установите его, если другой плагин (например, AFKManager) требует его в качестве зависимости.
Хранение данных
Данные проигрывателя хранятся в плагинах/PlayerData/data/ как файлы JSON, по одному на плеер UUID.
Показать оригинальное описание (English)
PlayerData Core
A lightweight library for storing and retrieving player data in Hytale server plugins.
Features
- Simple key-value API for any data type
- Automatic JSON persistence to disk
- Thread-safe operations
- Per-player data isolation
- Zero configuration required
- Enforced namespaced keys to prevent plugin conflicts
For Plugin Developers
Keys must be namespaced using the format pluginname:keyname to avoid conflicts between plugins.
// Store data
PlayerData.set(playerId, "myplugin:coins", 100)
PlayerData.set(playerId, "myplugin:rank", "VIP")
// Retrieve data
val coins = PlayerData.get<Int>(playerId, "myplugin:coins") ?: 0
val rank = PlayerData.get<String>(playerId, "myplugin:rank")
// Increment numeric values
PlayerData.increment(playerId, "myplugin:coins", 50)
// Remove data
PlayerData.remove(playerId, "myplugin:temp_data")
Invalid keys will throw an error:
"nonamespace" → Error: Key must be namespaced
":keyonly" → Error: Empty namespace
"plugin:" → Error: Empty key name
Supported Data Types
- String
- Int / Long / Double / Float
- Boolean
- List<*> (of primitives)
- Map<String, *> (of primitives)
Installation
- Download the JAR file
- Place in your server's plugins folder
- Restart the server
For Server Owners
This is a library plugin - it does nothing on its own. Install it if another plugin (like AFKManager) requires it as a dependency.
Data Storage
Player data is stored in plugins/PlayerData/data/ as JSON files, one per player UUID.