Files
factorio-clusterio/plugins/research_sync/info.js
T
Hornwitser 8cb21c5fa8 Add dangling commas
Ensure multiline object and array litterals are consistenly typed out
with dangling commas for the last element.
2020-06-17 20:59:37 +02:00

82 lines
1.9 KiB
JavaScript

"use strict";
const link = require("lib/link");
// schema used for syncing technologies to and from the master
const technologies = {
type: "array",
items: {
type: "array",
minItems: 4,
maxItems: 4,
items: [
{ type: "string" },
{ type: "integer" },
{ type: ["null", "number"] },
{ type: "boolean" },
],
},
};
module.exports = {
name: "research_sync",
title: "Research Sync",
description: "Synchronises technology research progress between instances.",
version: "2.0.0-alpha",
instanceEntrypoint: "instance",
masterEntrypoint: "master",
messages: {
contribution: new link.Event({
type: "research_sync:contribution",
links: ["instance-slave", "slave-master"],
forwardTo: "master",
eventProperties: {
"name": { type: "string" },
"level": { type: "integer" },
"contribution": { type: "number" },
},
}),
progress: new link.Event({
type: "research_sync:progress",
links: ["master-slave", "slave-instance"],
broadcastTo: "instance",
eventProperties: {
"technologies": {
type: "array",
items: {
additionalProperties: false,
required: ["name", "level", "progress"],
properties: {
"name": { type: "string" },
"level": { type: "integer" },
"progress": { type: "number" },
},
},
},
},
}),
finished: new link.Event({
type: "research_sync:finished",
links: ["instance-slave", "slave-master", "master-slave", "slave-instance"],
forwardTo: "master",
broadcastTo: "instance",
eventProperties: {
"name": { type: "string" },
"level": { type: "integer" },
},
}),
syncTechnologies: new link.Request({
type: "research_sync:sync_technologies",
links: ["instance-slave", "slave-master"],
forwardTo: "master",
requestProperties: {
"technologies": technologies,
},
responseProperties: {
"technologies": technologies,
},
}),
},
};