简而言之:我正在为我正在开发的游戏制作服务器程序。为了控制服务器,我想使用命令。类似“/Server Start 5555”的东西。这些命令以字符串格式发送到服务器。这是我的代码:
ServerCommandsClass ServerCommands = new ServerCommandsClass();
Type Service = typeof(ServerCommandsClass);
MethodInfo method = Service.GetMethod(Signals[Count].MessageArray[0]);
List<object> ObjectList = new List<object>();
for (int i = 1; i < Signals[Count].MessageArray.Length; i++)
{
ObjectList.Add(Signals[Count].MessageArray[i]);
}
string result = Convert.ToString(method.Invoke(ServerCommands, ObjectList.ToArray()));
它看起来很乱,因为它是...
基本上我得到的是一个存储新消息/命令的类(SignalClass)。首先,我确定消息是否是命令。如果是这样,则运行此代码。我的 MessageArray 使用 string.split 函数逐字包含消息。
这行得通,但我觉得这是一种解决方法。
我想要的是一个命令基础设施(有点像我的世界),它很容易适应我的需要。就像在 minecraft 中一样,您可以输入:“/tp 1000 64 1000”和“/tp someplayer 1000 64 1000”。由于我的代码的限制,在我的情况下你不能。我将不得不创建一个新方法“tp2”或其他能够采用该额外参数的方法。
我希望有人可以帮助我解决这个问题,因为它很烦人。
顺便说一句,我使用 .Net 4.5.1 对此进行了编程。如果我在某个地方有点模糊,请问我,我会澄清。
迪翁·多克特