瀏覽代碼

refactor(xtintin): API 重命名,将 xtt.SendAtOnce 改为 xtt.SendBatch

dzp 2 年之前
父節點
當前提交
0b80ab3e20

+ 1 - 1
mud/pkuxkx/plugins/basic/map/node.tin

@@ -155,7 +155,7 @@ event.Define {map/GotNodeInfo}  {无参} {$MODULE} {已经获取到节点信息
             };
             #elseif { "$node" == "PATH/{\{.*\}}" } {
                 #replace node {PATH/{\{(.*)\}}} {&2};
-                xtt.SendAtOnce {$node};
+                xtt.SendBatch {$node};
                 sync.Wait {map.WalkNodes.walk-next};
             };
             #else {

+ 6 - 0
mud/pkuxkx/plugins/lib/xtintin/cmds.extra.tin

@@ -0,0 +1,6 @@
+#nop 北侠版的 xtt.SendBatch,允许一次性向服务器发送多条命令。;
+#alias {xtt.SendBatch} {
+    #local cmds {%1};
+    #nop TODO: 允许自定义多条命令之间的分隔符。;
+    xtt.Send {#$cmds#};
+};

+ 10 - 10
mud/pkuxkx/plugins/quest/tang.tin

@@ -86,7 +86,7 @@ load-lib speedo;
         #foreach {困难;挑战;普通;简单} {level} {
             #if { "${tang-job-list[$level]}" != "" } {
                 #var {tang-job-log[任务难度]} {$level};
-                xtt.Send record ${tang-job-list[$level][1][ID]};
+                xtt.Send {record $tang-job-list[$level][1][ID]};
                 #list {tang-job-list[$level]} delete {1};
                 #return;
             };
@@ -123,7 +123,7 @@ load-lib speedo;
         ask jingzhao shaoyin about 任务信息;
     };
     #else {
-        xtt.Send record $id;
+        xtt.Send {record $id};
     };
 };
 
@@ -157,7 +157,7 @@ load-lib speedo;
         #if { ${tang-inquiry-exit-index} != 0 } {
             #local back {@dir.Reverse{${tang-inquiry-exits[${tang-inquiry-exit-index}]}}};
             #echo 回去吧。;
-            xtt.Send $back;
+            xtt.Send {$back};
         };
         #math tang-inquiry-exit-index {${tang-inquiry-exit-index} + 1};
         #local exit {${tang-inquiry-exits[${tang-inquiry-exit-index}]}};
@@ -168,14 +168,14 @@ load-lib speedo;
         };
         #else {
             #echo 下一个出口;
-            xtt.Send $exit;
+            xtt.Send {$exit};
             #delay 1 {tang.look 1; tang.ask 1};
         };
     };
 
     #class tang.inquiry close;
 
-    xtt.SendAtOnce {$path};
+    xtt.SendBatch {$path};
     tang.look 1; tang.ask 1;
 };
 
@@ -234,7 +234,7 @@ load-lib speedo;
     #class tang.look close;
 
     look luren $id;
-    xtt.Send response R:look-end;
+    xtt.Send {response R:look-end};
 };
 
 #alias {tang.ask} {
@@ -570,7 +570,7 @@ load-lib speedo;
 
     #local place {${tang-all-location[${tang-task-location}]}};
     #local path {@path.Reverse{$place[path]}};
-    xtt.SendAtOnce {$path};
+    xtt.SendBatch {$path};
 
     #class tang.back open;
 
@@ -614,18 +614,18 @@ load-lib speedo;
     };
 
     #action {^你缴纳了一两黄金后,郭隆递给你一面皇城通行令,凭令可以在一天内在皇城内通行无阻。$} {
-        xtt.SendAtOnce {e;n;e;n;n;n;n;e};
+        xtt.SendBatch {e;n;e;n;n;n;n;e};
         #delay 10 {xtt.Send {ask jiangjun about 通行令}};
     };
 
     #action {^你缴纳了二两黄金后,左金吾卫大将军递给你一面皇宫通行令,凭令可以在一天内在太极宫内通行无阻。$} {
-        xtt.SendAtOnce {w;s;e;e;nu;n};
+        xtt.SendBatch {w;s;e;e;nu;n};
         #delay tang.upgrade {xtt.Send {ask libu shangshu about 提升爵位}} 3;
     };
 
     #action {^你将被提升到爵位:〖唐朝爵位〗开国县男,爵位贡献将被清零。$} {
         #class tang.upgrade kill;
-        xtt.SendAtOnce {s;sd;w;w;s;s;s;w;s;w};
+        xtt.SendBatch {s;sd;w;w;s;s;s;w;s;w};
         #delay tang.upgrade {tang.job} 3;
     };
 

+ 6 - 3
plugins/lib/xtintin/cmds.tin

@@ -439,14 +439,17 @@ option.Define {DisableOutput} {Bool} {是否禁止向服务器发送命令} {fal
 };
 
 ///=== {
-// ## xtt.SendAtOnce <分号分隔的命令序列>
+// ## xtt.SendBatch <分号分隔的命令序列>
 //    一次性向服务器发送多条命令。
 //    有的 MUD 服务器专门为这种方式开辟了通道,本方法可以使用这种通道。
+//    如果服务器不支持,则退化为重复调用多次 xtt.Send。
 //    TODO: 需要区分 MUD,需要支持定制的命令分隔符。
 // };
-#alias {xtt.SendAtOnce} {
+#alias {xtt.SendBatch} {
     #local cmds {%1};
-    xtt.Send {#$cmds#};
+    #foreach {$cmds} {cmd} {
+        xtt.Send {$cmd};
+    };
 };
 
 ///=== {