0

这是我的代码。但是 user = null
如何通过 id 获取用户并断开用户连接?

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

1 回答 1

0

您通过 id = 1 获取用户,该 id 可能无效,SFS 为每个用户提供的 id 可能会有所不同,它不像从 0 开始的数组,它可能会在每次连接或断开连接时发生变化,当一个玩家连接到sfs,它需要一个id,当他断开连接时,其他人可能会拿它,你可以通过这个获取用户id:

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

然后使用断开功能断开他的连接,或者只使用用户从集合中断开他的连接。

于 2017-02-20T10:08:14.717 回答