Просмотр исходного кода

feat(silent): 服务器静默模式

dzp 3 лет назад
Родитель
Сommit
ec7d3e4fdf
2 измененных файлов с 51 добавлено и 0 удалено
  1. 1 0
      framework/online.tin
  2. 50 0
      plugins/silent.tin

+ 1 - 0
framework/online.tin

@@ -38,6 +38,7 @@ PaoTin++ © 2020~2022 的所有版权均由担子炮(dzp <danzipao@gmail.com>) 
 
     load-module basic/char;
     load-module shortcut;
+    load-module silent;
 
     event.Handle {char/hpbrief} {prompt} {framework/online} {prompt.UpdateHP};
     event.Handle {char/status}  {prompt} {framework/online} {prompt.UpdateSM};

+ 50 - 0
plugins/silent.tin

@@ -0,0 +1,50 @@
+#nop 做一个安静的客户端。;
+#nop 「隐藏自己,做好清理。」—— 《三体·黑暗森林》;
+
+#nop 命令白名单。;
+#nop 只有纯小写字母,空格,减号组成的命令无需再加白名单。这里只维护例外;
+#var silent-WhiteList {
+    chat*;          qq*;            helpme*;        tt*;
+    amber_alert;
+};
+
+#nop 文字表情;
+#cat silent-WhiteList {
+    ...;            :)..;           :D;             :P;            ?;
+    ??;             @@;             ad.;
+};
+
+#var silent-LastCmd {};
+
+#alias {^%*{|ID=paotin/silent}$} {
+    #local cmd {%0};
+    #replace {cmd} {%S %*} {&1};
+
+    #if {  {$silent-WhiteList[$cmd]} == {true}
+        || {$cmd} == {{[a-z]{1,10}}} && {%0} == {{[a-z0-9 -]*}} } {
+        #var silent-LastCmd {};
+        #send {%0};
+        #return;
+    };
+
+    #echo {<160>命令「<130>$cmd<160>」不是一个合法的 MUD 命令,如果确认是,请更新白名单。<070>};
+    #if { {%0} != {$silent-LastCmd} } {
+        #echo {<160>本次命令<110>已被抑制<160>。如果你着急输入,可以重复一次本命令,将临时通过一次。<070>};
+        #var silent-LastCmd {%0};
+    };
+    #else {
+        #var silent-LastCmd {};
+        #send {%0};
+    };
+} {9.999};
+
+#alias {silent.Init} {
+    #local list {$silent-WhiteList};
+    #local cmd {};
+    #var silent-WhiteList {};
+    #foreach {$list} {cmd} {
+        #var {silent-WhiteList[$cmd]} {true};
+    };
+};
+
+silent.Init;