Помогите Как сделать приватное GUI

diego070202

Активный участник
Пользователь
Баллы
66
Ник в Minecraft
PoZDnyak
Вопрос таков:
Есть GUI, но оно ОБЩЕЕ для ВСЕХ игроков.
А как сделать для КАЖДОГО игрока СВОЕ gui?
 
с определенными точками для спавна (каждый игрок сам указывает точку, не важно как)
Если это какая-то уникальная задумка - то, скорее всего, придется писать или заказывать плагин
 
я итак пишу плагин... я и думаю, как это реализовать
Ну так если плагин пишешь - тему нужно создавать в разделе Разработка плагинов для новичков )

У тебя тут два варианта:
1) Хранить инвентарь каждого игрока и по запросу его открывать
2) По каждому запросу создавать новый инвентарь

Возьмём первый вариант.
У тебя есть Map<Player, MyInventory> inventories = new HashMap<>();
MyInventory должен реализовать InventoryHolder.
При запросе инвентаря пытаешься получить его из мапы. Если запись отсутствует - генерируешь новый инвентарь и добавляешь в мапу.
При выходе запись игрока тоже удаляешь.
При изменении своей информации (точек спауна) не забудь обновлять содержимое инвентаря. Либо используй плейсхолдеры, но тут я ХЗ.
При действиях с инвентарём проверяешь принадлежность инвентаря к твоему MyInventory. Если это так - кастуешь и делаешь уже, что нужно.
 
Ну так если плагин пишешь - тему нужно создавать в разделе Разработка плагинов для новичков )

У тебя тут два варианта:
1) Хранить инвентарь каждого игрока и по запросу его открывать
2) По каждому запросу создавать новый инвентарь

Возьмём первый вариант.
У тебя есть Map<Player, MyInventory> inventories = new HashMap<>();
MyInventory должен реализовать InventoryHolder.
При запросе инвентаря пытаешься получить его из мапы. Если запись отсутствует - генерируешь новый инвентарь и добавляешь в мапу.
При выходе запись игрока тоже удаляешь.
При изменении своей информации (точек спауна) не забудь обновлять содержимое инвентаря. Либо используй плейсхолдеры, но тут я ХЗ.
При действиях с инвентарём проверяешь принадлежность инвентаря к твоему MyInventory. Если это так - кастуешь и делаешь уже, что нужно.
Понял. Огромное спасибо. Посмотрим что из этого всего выйдет 😁
 
Ну так если плагин пишешь - тему нужно создавать в разделе Разработка плагинов для новичков )

У тебя тут два варианта:
1) Хранить инвентарь каждого игрока и по запросу его открывать
2) По каждому запросу создавать новый инвентарь

Возьмём первый вариант.
У тебя есть Map<Player, MyInventory> inventories = new HashMap<>();
MyInventory должен реализовать InventoryHolder.
При запросе инвентаря пытаешься получить его из мапы. Если запись отсутствует - генерируешь новый инвентарь и добавляешь в мапу.
При выходе запись игрока тоже удаляешь.
При изменении своей информации (точек спауна) не забудь обновлять содержимое инвентаря. Либо используй плейсхолдеры, но тут я ХЗ.
При действиях с инвентарём проверяешь принадлежность инвентаря к твоему MyInventory. Если это так - кастуешь и делаешь уже, что нужно.
Не до конца понял. Как я создам новый инвентарь(гуиху) для каждого то?
 
В лс можешь конкретнее расписать? Буду очень благодарен
Не вижу большого смысла в ЛС писать, да и может пригодится кому.
По первому варианту выше - при входе игрока (или при первом открытии меню) достаешь данные и создаешь инвентарь как ты обычно создаешь инвентарь. Далее, запихиваешь его в мапу - inventories.put(player, inv), где player - твой игрок и inv - созданный тобою инвентарь. При необходимости(например, изменение данных) - обновляешь. При выходе игрока удаляешь его и инвентарь из мапы inventories.remove(player).
Иначе, по второму варианту - каждый раз при открытии меню достаешь данные и опять же создаешь инвентарь.

Так или иначе, смысл в том, что ты не создаешь один инвентарь при старте плагина и хранишь его, а создаешь каждый раз новые.
 
Последнее редактирование:
Не вижу большого смысла в ЛС писать, да и может пригодится кому.
По первому варианту выше - при входе игрока (или при первом открытии меню) достаешь данные и создаешь инвентарь как ты это обычно создаешь инвентарь. Далее, запихиваешь его в мапу - inventories.put(player, inv), где player - твой игрок и inv - созданный тобою инвентарь. При необходимости(например, изменение данных) - обновляешь. При выходе игрока удаляешь его и инвентарь из мапы inventories.remove(player).
Иначе, по второму варианту - каждый раз при открытии меню достаешь данные и опять же создаешь инвентарь.

Так или иначе, смысл в том, что ты не создаешь один инвентарь при старте плагина и хранишь его, а создаешь каждый раз новые.
Теперь все предельно понятно.
Большое спасибо.
Все утро ломал голову.
И через конфиг уже пытался(че к чему...)
 
Видимо хреновый из меня получился бы учитель 😁
 
Назад
Верх Низ