Files
crafty-mod-installer/crafty.js
T
2026-04-18 18:54:32 +03:00

50 lines
1.3 KiB
JavaScript

const axios = require('axios');
class CraftyClient {
constructor(baseUrl, token) {
this.baseUrl = baseUrl.replace(/\/$/, '');
this.token = token;
this.client = axios.create({
baseURL: `${this.baseUrl}/api/v2`,
headers: {
'Authorization': `Bearer ${this.token}`,
'Content-Type': 'application/json'
}
});
}
async testConnection() {
try {
const resp = await this.client.get('/stats');
return resp.status === 200;
} catch (err) {
console.error('Crafty Connection Error:', err.message);
return false;
}
}
async listServers() {
const resp = await this.client.get('/servers');
return resp.data.data;
}
async getServerDetails(serverId) {
const resp = await this.client.get(`/servers/${serverId}`);
return resp.data.data;
}
async createServer(name, type = 'minecraft_java', memory = 2048, port = 25565) {
const payload = {
server_name: name,
server_type: type,
mem_limit: memory,
server_port: port,
autostart: false
};
const resp = await this.client.post('/servers', payload);
return resp.data.data;
}
}
module.exports = CraftyClient;