Sfoglia il codice sorgente

refactor(login): 重新整理登录后的命令序列

dzp 1 anno fa
parent
commit
58f732dc59

+ 1 - 1
framework/main.tin

@@ -190,7 +190,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     load-lib constant;
 
     #nop 事件驱动编程框架;
-    load-module lib/event;
+    load-lib event;
 
     load-lib option;
     option.Define {DisableOutput}       {Bool}  {是否禁止向服务器发送命令}      {false};

+ 0 - 1
framework/online.tin

@@ -16,7 +16,6 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 
 #tick {online.KeepAlive} {online.KeepAlive} {60};
 
-load-lib    ga;
 load-module silent;
 load-module basic/char;
 load-module basic/map;

+ 20 - 2
mud/pkuxkx/plugins/basic/login.extra.tin

@@ -23,6 +23,15 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
         gmcp.Enable;
     };
 
+    #nop 如果角色设置了 MXP 支持,则在建连之后主动向服务器发起 MXP 协商。;
+    #nop 否则需要主动回车以放弃 MXP 协商。;
+    #if { "$user[MXP]" == "true" } {
+        load-lib mxp;
+        #if { @existsAlias{mxp.Enable} } {
+            mxp.Enable;
+        };
+    };
+
     #if { "$session[UTF8]" == "true" } {
         #config {charset} {UTF-8};
     };
@@ -101,7 +110,7 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     };
 
     #line oneshot #action {^%s欢迎来到北大侠客行!%s$} {
-        login.login-success 重新登录;
+        #delay login.login-success {login.login-success 重新登录} 3;
     };
 
     #line oneshot #action {^%s目前权限:(%*)%s$} {
@@ -113,7 +122,16 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
     };
 
     #line oneshot #action {^重新连线完毕。$} {
-        login.login-success 断线重连;
+        #delay login.login-success {login.login-success 断线重连} 3;
+    };
+
+    #line oneshot #action {^即将开始检测你的客户端对MXP的支持程度。如果5s中之内没有反应,代表你使用的客户端完全不支持MXP,请按回车进入普通模式。$} {
+        #if { @existsAlias{mxp.Enable} } {
+            #delay login.login-success {login.login-success 断线重连} 1;
+        };
+        #else {
+            #delay login.login-success {login.login-success 断线重连} 0;
+        };
     };
 
     #class login.auto-login close;

+ 3 - 14
plugins/basic/login.tin

@@ -37,20 +37,9 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 
     #showme 登录成功。;
 
-    #nop 如果角色设置了 MXP 支持,则在建连之后主动向服务器发起 MXP 协商。;
-    #nop 否则需要主动回车以放弃 MXP 协商。;
-    #if { "$user[MXP]" == "true" } {
-        load-lib mxp;
-        #if { @existsAlias{mxp.Enable} } {
-            mxp.Enable;
-        };
-        #else {
-            #cr;
-        };
-    };
-    #else {
-        #cr;
-    };
+    load-lib ga;
+    load-lib sync;
+    ga.Sync;
 
     #if { @isFalse{$login[user][manual]} } {
         login.online $type;

+ 6 - 7
plugins/lib/ga.tin

@@ -29,24 +29,19 @@ PaoTin++ © 2020~2023 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 };
 
 load-lib telnet;
-load-lib event;
 
 event.Define {GA} {有参} {$MODULE} {接收到 IAC GA 时发射本事件,参数为造成本次输出的命令};
 
 #alias {ga.send-output} {
     #local cmd {$gTTEventArgZero};
     #replace cmd {{$TELNET[CR]?}$TELNET[LF]} {};
-    #if { "$cmd" != "" } {
-        #list gXttPipeLine add {$cmd};
-    };
+    #list gXttPipeLine add {$cmd};
 };
 
 #alias {ga.received-prompt} {
     #local line     {$gTTEventArgv[1]};
     #if { "$line" == "== 未完继续 %*== (%*继续下一页%*)%*" } {
-        #line gag;
-        #cr;
-        #return;
+        #line gag; #cr; #return;
     };
 };
 
@@ -84,7 +79,11 @@ event.Define {GA} {有参} {$MODULE} {接收到 IAC GA 时发射本事件,参
 #alias {ga.Confirm} {
     #local cmd {%1};
 
+    #if { &gXttPipeLine[] > 0 && {$gXttPipeLine[1]} !== {$cmd} } {
+        dbgLog GA => GA 状态已失步,现在开始同步。;
+    };
     #while { &gXttPipeLine[] > 0 && {$gXttPipeLine[1]} !== {$cmd} } {
+        dbgLog GA => drop $gXttPipeLine[1];
         #list gXttPipeLine delete {1};
     };
 };