Как получить пользователя по идентификатору и отключить пользователя

Это мой код Но пользователь = ноль
Как получить пользователя по идентификатору и отключить пользователя?

Zone zone = (Zone)event.getParameter(SFSEventParam.ZONE);
User user = zone.getUserById(1);
this.getApi().disconnectUser(user,ClientDisconnectionReason.IDLE);

1 ответ

Вы получаете пользователя по id = 1, идентификатор может быть недействительным, идентификатор, который SFS дает каждому пользователю, может отличаться, это не похоже на массив, который начинается с 0, он может меняться каждый раз, когда кто-то подключается или отключается, когда игрок подключается к sfs, он принимает идентификатор, когда он отключается, кто-то еще может взять его, вы можете получить идентификатор пользователя следующим образом:

        Collection<User> users =  getParentExtension().getParentZone().getUserList();
        while (users.iterator().hasNext())
        {
            int id = users.iterator().next().getId();
        }

а затем использовать функцию отключения, чтобы отключить его, или просто использовать пользователя из коллекции, чтобы отключить его.

Другие вопросы по тегам