我正在为游戏服务器修改编写插件。 基本上,如果玩家没有获得旁路许可,该插件将撤销该玩家的权利。
这很有效,但是当玩家从世界中移除已放置的对象时,该插件会显示错误消息并进入循环,从而为玩家提供所述玩家移除的相同项目。 (我想它需要休息一下;但我不确定)
我尝试通过添加排除的项来扩展插件。该插件将检查播放器试图丢弃的项ID是否列在.json配置文件中。如果是,则说播放器丢弃该项目。如果未列出,则该项目将被删除,除非玩家具有旁路权限。 我遇到的困难是我不知道如何检查.json文件中列出的项目ID。 另一种方法是保留.json文件并将允许的项ID放在代码中,但我也不知道如何执行此操作。
我知道这是非常基本和简单的,但只是从c#开始。我正在读一本关于基本C#的老师的书,但我想尽快完成这个项目。
先谢谢你们
答案 0 :(得分:0)
链接的代码片段似乎不完整或独立编译。通过阅读,您的Config
类的序列化和反序列化代码看起来是有效的,尽管我实际上无法编译和测试您的DropBan
类。
那么,这就是你想要的吗?
public class DropBan : TerrariaPlugin
{
private Config config;
bool IsExcluded(int id)
{
if (config == null)
{
ReadConfig();
}
return config != null && config.Exclusions != null && config.Exclusions.Contains(id);
}
public class Config
{
public int[] Exclusions = { 267, 188 };
}
// Rest as as shown at http://pastebin.com/RgBmtus9
}