【问题标题】:C# check data in json fileC#检查json文件中的数据
【发布时间】:2015-01-21 05:10:26
【问题描述】:

我正在编写一个用于修改游戏服务器的插件。 基本上,如果玩家没有绕过权限,该插件会撤销玩家掉落的物品。

这可行,但是当玩家从世界中移除已放置的对象时,插件会显示错误消息并进入循环,为玩家提供与玩家移除的相同项目。 (我想它需要休息一下;但我不确定)

我尝试通过添加排除项来扩展插件。该插件将检查玩家尝试丢弃的项目 ID 是否列在 .json 配置文件中。如果是,则所述玩家掉落该物品。如果未列出,则该项目将被删除,除非玩家具有绕过权限。 我遇到的困难是我不知道如何检查 .json 文件中列出的项目 ID。 另一种选择是保留 .json 文件并将允许的项目 ID 放入代码中,但我也不知道该怎么做。

我知道这是非常基础和简单的,但只是从 c# 开始。我正在阅读我老师的一本关于基本 C# 的书,但我想尽快完成这个项目。

http://pastebin.com/RgBmtus9

提前谢谢大家

【问题讨论】:

  • edit your question 包含您要阅读的 JSON 示例。
  • 另外,不要链接到大文件,请尝试创建一个Minimal, Complete, and Verifiable 示例来说明您想要完成的操作。如果您这样做,我们更有可能提供帮助。
  • 对文件感到抱歉,我将粘贴的代码复制到 pastebin 中。我可以向你保证,这不是功课。我们 2 年前才学过 c++。我们学会制作的最复杂的程序是国际象棋游戏。这是供个人使用的。 (
  • 您已经在序列化和反序列化一个类Config。你只需要检查if config.Exclusions != null && config.Exclusions.Contains(dropId) 吗?

标签: c# json


【解决方案1】:

链接的代码片段似乎不完整或无法独立编译。通读一遍,序列化和反序列化 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
}

【讨论】:

  • 是的,这将是解决方案,但它仍然不会让玩家丢弃排除的项目。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-23
  • 2015-05-07
  • 2022-11-29
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
相关资源
最近更新 更多