我目前正在使用我的Bot阅读聊天,并允许人们使用IronPython编写这些命令的脚本,但目前我遇到了问题。
它不会加载脚本,如果是,它不会读取命令或只是崩溃整个过程。
以下是代码:
public class ScriptEngine {
private static ScriptEngine e = Python.CreateEngine();
private static ScriptScope s = null;
public static async void LoadScripts() {
if (!Directory.Exists("scripts"))
Directory.CreateDirectory("scripts");
s = e.CreateScope();
var paths = e.GetSearchPaths();
paths.Add("scripts");
e.SetSearchPaths(paths);
Directory.GetFiles(".", "*.py")
.ToList()
.ForEach(f => e.ExecuteFile(f, s));
}
}
public class ReadCommand {
public string CommandName { get; set; }
public ReadCommand(string c) { c = CommandName; }
public string ReadCommand() {
while (true) {
if (File.Exists(@"logs\current.log")) {
var ln = File.ReadLines(@"logs\current.log").Last();
return CommandParse(ln);
}
return null;
}
return null;
}
}
编辑 Script1.py
:
from Nomishi import *
def testcommand():
ReadCommand("!name", "Hello from Python!")
testcommand()
我将如何解决此问题?我尝试在两种方法中使用foreach()
语句,但似乎没有任何效果。