Вопрос Общий инвентарь

Версия Minecraft
1.20.X

manul694

Premium
Сообщения
1 188
Решения
34
У меня Towny сервер. Рефакторю плагин в котором есть функция инвентаря города. Когда я писал этот плагин я сделал всё просто: создаётся один объект инвентаря и когда игрок пишет /t inv то ему просто открывается этот объект инвентаря стандартной функцией майнкрафта Player.openInventory(inventories.getInventory(UUID townUUID)). То есть если 10 игроков одновременно напишут /t inventory то всем 10 игрокам откроется один инвентарь, они могут изменять его и всё происходит в реальном времени.
Другой разработчик переписал его так чтобы при каждом открытии берётся информация из БД что находится в инвентаре и создаётся инвентарь на основе этих данных. Для защиты от дюпа он сделал чтобы нельзя было открывать один инвентарь вдвоём.
Рассмотрим каждый метод:
Мой методЕго метод
ПростоСложно
Можно редактировать инвентарь вдвоёмНельзя редактировать инвентарь вдвоём
Нельзя добавить декорации и вторую страницу (Терпимо, но нежелательно)Можно добавить декорации и вторую страницу
И вот я хотел бы узнать какие вы можете посоветовать библиотеки для работы с инвентарями? Именно не меню а инвентарями чтобы одним и тем же инвентарём могло пользоваться несколько человек. И вообще безопасен ли мой метод, есть ли потенциальные дюпы? Хочу найти какой-нибудь бескомпромиссный вариант.
 
Последнее редактирование:
Из всех библиотек, насколько я знаю, это позволяет сделать только InvUI. Но там проблема с версиями, выше 1.21.11 уже нет старой библиотеки, а новая всегда на последнюю версию. К сожалению, бескомпромиссных вариантов сделать это нет, задача сложная, особенно учитывая, что игроки кладут предметы в основном потоке, а сохранение должно происходить асинхронно, что создаёт окно для потери данных
 
а сохранение должно происходить асинхронно, что создаёт окно для потери данных
Ну по идее можно же сохранять не каждый раз а где-то каждые 5 минут или при выключении сервера вообще.
К тому же читать то инвентарь асинхронно можно.
 
Назад
Сверху Снизу