mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-11 23:04:52 +09:00
Split up codebase into the packages @clsterio/lib, @clusterio/master, @clusterio/slave, and @clusterio/ctl using lerna to manage them. This will allow deployment to use only the parts needed reducing install size, and better separate the code into shared library, master, slave and control.
82 lines
1.9 KiB
JavaScript
82 lines
1.9 KiB
JavaScript
"use strict";
|
|
const link = require("@clusterio/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,
|
|
},
|
|
}),
|
|
},
|
|
};
|