(long roleId, @NotNull LogoutReason logoutReason)
| 731 | } |
| 732 | |
| 733 | private long logoutTrigger(long roleId, @NotNull LogoutReason logoutReason) throws Exception { |
| 734 | var onlineShared = getOrAddOnlineShared(roleId); |
| 735 | var link = onlineShared.getLink(); |
| 736 | onlineShared.setLink(new BLink(link.getLinkName(), link.getLinkSid(), eOffline)); |
| 737 | // local 在这个流程里面不需要setLink,如果是这个登录的,那么扇面已经删除(removeLocalAndTrigger),否则不需要修改。 |
| 738 | |
| 739 | // 总是尝试通知上一次登录的服务器,里面会忽略本机。 |
| 740 | tryRedirectRemoveLocal(multiInstanceName, getOrAddOnline(roleId).getServerId(), roleId); |
| 741 | // 总是删除 |
| 742 | removeLocalAndTrigger(roleId); |
| 743 | |
| 744 | var arg = new LogoutEventArgument(this, roleId, logoutReason); |
| 745 | var ret = logoutEvents.triggerEmbed(this, arg); |
| 746 | if (ret != 0) |
| 747 | return ret; |
| 748 | logoutEvents.triggerProcedure(providerApp.zeze, this, arg); |
| 749 | Transaction.whileCommit(() -> logoutEvents.triggerThread(this, arg)); |
| 750 | return 0; |
| 751 | } |
| 752 | |
| 753 | private long linkBrokenTrigger(@SuppressWarnings("unused") @NotNull String account, long roleId) throws Exception { |
| 754 | var arg = new LinkBrokenArgument(roleId); |
no test coverage detected