Словарь\ассоциативный массив\map (ну и прочие варианты коллекции ключ-значение), где ключ - субъект, значение - действие.
Останется только кратко заполнить, тут в помощь средства языка типа рефлексии, аттрибутов (например).
Непонятно в чем вопрос. Куда доступ иметь? Вы пользователь или владелец ресурса.
Со стороны пользователя пароль ничем не защищен - он МОЖЕТ быть доступен в незащищенном виде владельцу сервиса.
А если вы со стороны владельца сервиса/ресурса - то как то у вас заголовок с телом не стыкуется )))
Есть по сути ровно два подхода.
Первый - если вам надо чтобы программа сама разблокировалась - то нужен таймер. Обычно для всяких формочек существует компонент "таймер". Ну и привязываетесь там к времени и по истечению разблокируете форму.
Второй. Программа сама никак ничего не меняет в своем состоянии. Однако при попытке авторизации если время не истекло - то выводится сообщение о блокировке по времени. Тут все проще - вам нужна переменная когда можно в след. раз авторизовываться, и в авторизации сначала сравниваете ее с текущим времнем
Это все относительно и зависит от вашего желаемого темпа роста игрока. Тут же надо балансировать все - и темп выдачи экспы, и влияение уровня на сложность - и как следствие на темп.
Самое простое - возьмите что то из готовых систем - пасфайндер, спешиал, днд и прочее.