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

Method tryLogout

ZezeJava/ZezeJava/src/main/java/Zeze/Game/Online.java:786–815  ·  view source on GitHub ↗
(@NotNull BDelayLogoutCustom custom)

Source from the content-addressed store, hash-verified

784 }
785
786 private long tryLogout(@NotNull BDelayLogoutCustom custom) throws Exception {
787 var roleId = custom.getRoleId();
788 var currentLoginVersion = custom.getLoginVersion();
789 // local online 独立判断version分别尝试删除。
790 var local = _tlocal.get(roleId);
791 if (local != null && local.getLoginVersion() == currentLoginVersion) {
792 var ret = removeLocalAndTrigger(roleId);
793 logger.info("tryLogout: roleId={}, currentLoginVersion={}, removeLocalAndTrigger={}",
794 roleId, currentLoginVersion, ret);
795 if (ret != 0)
796 return ret;
797 }
798 // 如果玩家在延迟期间建立了新的登录,下面版本号判断会失败。
799 var onlineShared = getOnlineShared(roleId);
800 var logoutVersion = onlineShared != null ? onlineShared.getLogoutVersion() : -1;
801 if (onlineShared != null && onlineShared.getLink().getState() != eOffline
802 && onlineShared.getLoginVersion() == currentLoginVersion
803 && assignLogoutVersion(onlineShared)) {
804 var ret = logoutTrigger(roleId, LogoutReason.LOGOUT);
805 logger.info("tryLogout: roleId={}, state={}, currentLoginVersion={}, logoutVersion={}, logoutTrigger={}",
806 roleId, onlineShared.getLink().getState(), currentLoginVersion, logoutVersion, ret);
807 if (ret != 0)
808 return ret;
809 } else {
810 logger.info("tryLogout: roleId={}, state={}, version.login/logoutVersion={}/{}, currentLoginVersion={}",
811 roleId, onlineShared != null ? onlineShared.getLink().getState() : -1,
812 onlineShared != null ? onlineShared.getLoginVersion() : -1, logoutVersion, currentLoginVersion);
813 }
814 return Procedure.Success;
815 }
816
817 public static class DelayLogout implements TimerHandle {
818 @Override

Callers 1

logoutMethod · 0.45

Calls 10

removeLocalAndTriggerMethod · 0.95
getOnlineSharedMethod · 0.95
assignLogoutVersionMethod · 0.95
logoutTriggerMethod · 0.95
getRoleIdMethod · 0.65
getLoginVersionMethod · 0.65
getMethod · 0.65
getLogoutVersionMethod · 0.65
getStateMethod · 0.65
getLinkMethod · 0.65

Tested by

no test coverage detected