(@NotNull Iterable<Long> roleIds)
| 1599 | } |
| 1600 | |
| 1601 | public @NotNull IntHashMap<RoleOnServer> groupByServerId(@NotNull Iterable<Long> roleIds) { |
| 1602 | var groups = new IntHashMap<RoleOnServer>(); |
| 1603 | var groupNotOnline = new RoleOnServer(); // LinkName is Empty And Socket is null. |
| 1604 | groups.put(-1, groupNotOnline); |
| 1605 | |
| 1606 | for (var roleId : roleIds) { |
| 1607 | var online = getLoginOnline(roleId); |
| 1608 | if (online == null) { |
| 1609 | groupNotOnline.roles.add(roleId); |
| 1610 | continue; |
| 1611 | } |
| 1612 | |
| 1613 | // 后面保存connector.Socket并使用,如果之后连接被关闭,以后发送协议失败。 |
| 1614 | var group = groups.get(online.getServerId()); |
| 1615 | if (group == null) { |
| 1616 | group = new RoleOnServer(); |
| 1617 | group.serverId = online.getServerId(); |
| 1618 | groups.put(group.serverId, group); |
| 1619 | } |
| 1620 | group.roles.add(roleId); |
| 1621 | } |
| 1622 | return groups; |
| 1623 | } |
| 1624 | |
| 1625 | private static @NotNull RoleOnServer merge(@Nullable RoleOnServer current, @NotNull RoleOnServer m) { |
| 1626 | if (current == null) |
no test coverage detected