Screeps 拥有一个小巧的嵌入式编辑器来方便代码的编写。但是,在某些情况下(例如,您想使用 JavaScript 以外的语言或者想使用您的 IDE),您可能不得不使用其他方式将代码从外部提交至您的 Screeps 账户。
您需要先在 帐户设置 中创建一个登录令牌(auth token)来使用外部提交。
使用 Grunt 任务
如果您以前从未使用过 Grunt,请务必查看 Getting Started 指南,它会告诉您如何创建 Gruntfile 以及如何安装和使用 Grunt 插件。在您有了一定的了解后,就可以使用以下命令安装此插件:
npm install grunt-screeps
配置您的 Gruntfile.js:
module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-screeps');
grunt.initConfig({
screeps: {
options: {
email: '<your e-mail>',
token: '<your auth token>',
branch: 'default',
//server: 'season'
},
dist: {
src: ['dist/*.js']
}
}
});
}
现在,您可以执行以下命令来将您的代码从 dist
文件夹提交至 Screeps 账户:
grunt screeps
直接通过 API 进行访问
Screeps Web API 有一个用于上传/下载代码的接口 https://screeps.com/api/user/code
。支持通过 POST
上传代码和通过 GET
下载代码。这两种方法都接受基本访问鉴权。接口可以接受或返回一个包含所有模块的 JSON 数据,其中模块的名作为键,模块的内容作为值。
使用 Node.js 提交代码的示例:
var https = require('https');
var email = '<your e-mail>',
password = '<your password>',
data = {
branch: 'default',
modules: {
main: 'require("hello");',
hello: 'console.log("Hello World!");'
}
};
var req = https.request({
hostname: 'screeps.com',
port: 443,
path: '/api/user/code',
method: 'POST',
auth: email + ':' + password,
headers: {
'Content-Type': 'application/json; charset=utf-8'
}
});
req.write(JSON.stringify(data));
req.end();
请求:
POST /api/user/code HTTP/1.1
Content-Type: application/json; charset=utf-8
Host: screeps.com:443
Authorization: Basic PHlvdXIgZS1tYWlsPjo8eW91ciBwYXNzd29yZD4=
Connection: close
Transfer-Encoding: chunked
{"branch":"default","modules":{"main":"require(\"hello\");","hello":"console.log(\"Hello World!\");"}}
响应:
X-Powered-By: Express
Content-Type: application/json; charset=utf-8
Content-Length: 8
Date: Mon, 02 Feb 2015 18:46:11 GMT
Connection: close
{"ok":1}