MCPcopy Create free account
hub / github.com/e2wugui/zeze / logoutTrigger

Method logoutTrigger

ZezeJava/ZezeJava/src/main/java/Zeze/Game/Online.java:733–751  ·  view source on GitHub ↗
(long roleId, @NotNull LogoutReason logoutReason)

Source from the content-addressed store, hash-verified

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);

Callers 6

procedureOfflineMethod · 0.95
tryLogoutMethod · 0.95
sendErrorMethod · 0.95
ProcessLoginRequestMethod · 0.95
ProcessReLoginRequestMethod · 0.95
localLogoutMethod · 0.95

Calls 13

getOrAddOnlineSharedMethod · 0.95
getOrAddOnlineMethod · 0.95
removeLocalAndTriggerMethod · 0.95
whileCommitMethod · 0.95
triggerEmbedMethod · 0.80
triggerProcedureMethod · 0.80
triggerThreadMethod · 0.80
getLinkMethod · 0.65
getLinkNameMethod · 0.65
getLinkSidMethod · 0.65
getServerIdMethod · 0.65

Tested by

no test coverage detected