GroupReward - награда за вступление в группу
Одноразовая награда за вступление в группу: серверная проверка членства и защита от повторной выдачи.
Проверка членства идёт только на сервере и кэшируется, чтобы каждый клик по кнопке не уходил в API группы. Факт выдачи пишется в DataStore, поэтому переподключение или переход на другой сервер не позволяют забрать награду второй раз. Отметка о выдаче ставится до самой выдачи, а не после: иначе два одновременных вызова с разных серверов успели бы пройти проверку и выдать награду дважды. UpdateAsync здесь работает как замок. Если выдача не удалась, отметка снимается и игрок может попробовать снова. Метод claim возвращает причину отказа отдельно от результата, чтобы интерфейс показал внятный текст, а не одинаковое «не получилось» на все случаи.
Возможности
- Проверка членства только на сервере
- Кэш, чтобы не дёргать API группы на каждый клик
- Защита от повторной выдачи через DataStore
- Понятные коды отказа для интерфейса
- Строгая типизация Luau
В комплекте
- GroupReward.luau - модуль
- README.md - установка, API, порядок операций