MCPcopy Create free account
hub / github.com/PolyMC/PolyMC / rulesFromJsonV4

Function rulesFromJsonV4

launcher/minecraft/Rule.cpp:50–89  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48}
49
50QList<std::shared_ptr<Rule>> rulesFromJsonV4(const QJsonObject &objectWithRules)
51{
52 QList<std::shared_ptr<Rule>> rules;
53 auto rulesVal = objectWithRules.value("rules");
54 if (!rulesVal.isArray())
55 return rules;
56
57 QJsonArray ruleList = rulesVal.toArray();
58 for (auto ruleVal : ruleList)
59 {
60 std::shared_ptr<Rule> rule;
61 if (!ruleVal.isObject())
62 continue;
63 auto ruleObj = ruleVal.toObject();
64 auto actionVal = ruleObj.value("action");
65 if (!actionVal.isString())
66 continue;
67 auto action = RuleAction_fromString(actionVal.toString());
68 if (action == Defer)
69 continue;
70
71 auto osVal = ruleObj.value("os");
72 if (!osVal.isObject())
73 {
74 // add a new implicit action rule
75 rules.append(ImplicitRule::create(action));
76 continue;
77 }
78
79 auto osObj = osVal.toObject();
80 auto osNameVal = osObj.value("name");
81 if (!osNameVal.isString())
82 continue;
83 QString osName = osNameVal.toString();
84 QString versionRegex = osObj.value("version").toString();
85 // add a new OS rule
86 rules.append(OsRule::create(action, osName, versionRegex));
87 }
88 return rules;
89}
90
91QJsonObject ImplicitRule::toJson()
92{

Callers 1

libraryFromJsonMethod · 0.85

Calls 3

RuleAction_fromStringFunction · 0.85
appendMethod · 0.80
toStringMethod · 0.45

Tested by

no test coverage detected