Skip to content

Gerenciando Servidores

João Victor Oliveira edited this page Jan 19, 2025 · 1 revision

Gerenciando Servidores

O gerenciando de servidores é simples, bastando você utilizando este código inicial:

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
    }
}

Listando Servidores

Para listar todos os servidores, você precisará chamar a função "listServers", que retorna um CompletableFuture, do tipo lista de servidores.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        CompletableFuture<List<Server>> completableFuture = serverManager.listServers();
        completableFuture.thenAccept(serverList -> serverList.forEach(server -> System.out.println("The Server: " + server.getName() + " is present"))).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Pegando um Servidor

Para pegar as informações de um server, você precisará chamar a função "getServer", que retorna um CompletableFuture, do tipo Server.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        CompletableFuture<Server> completableFuture = serverManager.getServer(1L);
        completableFuture.thenAccept(server -> System.out.println(server.getName())).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Atualizando um Servidor

Para atualizar as informações de um servidor, você precisará chamar a função "updateServer", passando um object server atualizado, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        CompletableFuture<Server> completableFuture = serverManager.getServer(1L);
        completableFuture.thenAccept(server -> {
            server.setName("New Server name");
            CompletableFuture<JSONObject> completableFutureResponse = serverManager.updateServer(server);
            completableFutureResponse.thenAccept(System.out::println).exceptionally(throwable -> {
                throw new RuntimeException(throwable);
            });
        }).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Criando um servidor

Para criar um servidor, você precisará chamar a função "createServer", passando o builder de servidor, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

⚠️ATENÇÃO

Ao criar um builder, lembre-se de setar o valor em todos os parametros, pois, caso deixe algum nulo, poderá resultar em execessões.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        JSONObject environment = new JSONObject();
        environment.put("BUNGEE_VERSION", "lasted");
        environment.put("SERVER_JARFILE", "server.jar");
        ServerAllocationBuilder serverAllocation = new ServerAllocationBuilder().appendDefault(17L);

        ServerFutureLimitBuilder serverFutureLimit = new ServerFutureLimitBuilder().appendBackups(1)
                .appendDatabase(5);

        ServerLimitBuilder serverLimit = new ServerLimitBuilder().appendCPU(100)
                .appendMemory(128)
                .appendDisk(512)
                .appendIO(500)
                .appendSwap(0);

        ServerBuilder builder = new ServerBuilder().appendName("Building")
                .appendServerAllocationLimit(serverAllocation)
                .appendStartup("java -Xms128M -Xmx128M -jar server.jar")
                .appendServerFutureLimit(serverFutureLimit)
                .appendEnvironment(environment)
                .appendEgg(1)
                .appendUser(1)
                .appendDockerImage("quay.io/pterodactyl/core:java")
                .appendServerLimit(serverLimit);

        CompletableFuture<JSONObject> completableFuture = serverManager.createServer(builder);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Suspendendo um Servidor

Para suspender um servidor, você precisará chamar a função "suspendServer", passando o ID do servidor, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        CompletableFuture<JSONObject> completableFuture = serverManager.suspendServer(1L);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Removendo a suspenção do Servidor

Para remover a suspenção do servidor, você precisará chamar a função "unSuspendServer", passando o ID do servidor, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        CompletableFuture<JSONObject> completableFuture = serverManager.unSuspendServer(1L);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Reinstalando um servidor

Para reinstalar um servidor, você precisará chamar a função "reinstallServer", passando o ID do servidor, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        CompletableFuture<JSONObject> completableFuture = serverManager.reinstallServer(1L);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Deletando um servidor

Para deletar um servidor, você precisará chamar a função "deleteServer", passando o ID do servidor, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        CompletableFuture<JSONObject> completableFuture = serverManager.deleteServer(1L);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Gerenciando Database

Listando Databases

Para listar todas as databases, você precisará chamar a função "listDatabases", que retorna um CompletableFuture, do tipo lista de database.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        CompletableFuture<List<Database>> completableFuture = serverManager.listDatabases(1L);
        completableFuture.thenAccept(databaseList -> databaseList.forEach(database -> System.out.println("The Database: " + database.getDatabase() + " is present"))).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Pegando uma Database

Para pegar as informações de um database, você precisará chamar a função "getDatabase", que retorna um CompletableFuture, do tipo Database.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        CompletableFuture<Database> completableFuture = serverManager.getDatabase(1L,1L);
        completableFuture.thenAccept(database -> System.out.println(database.getDatabase())).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Criando um database

Para criar uma database, você precisará chamar a função "createDatabase", passando o builder da database, juntamente ao ID do servidor que, deverá ser criado, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

⚠️ATENÇÃO

Ao criar um builder, lembre-se de setar o valor em todos os parametros, pois, caso deixe algum nulo, poderá resultar em execessões.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        DatabaseBuilder builder = new DatabaseBuilder().appendRemote("%")
                .appendHost(1)
                .appendDatabase("matches");
        CompletableFuture<JSONObject> completableFuture = serverManager.createDatabase(1L, builder);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Resetando a senha de uma Database

Para resetar a senha da database, você precisará chamar a função "resetPassword", passando o ID do servidor e o ID da database, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        CompletableFuture<JSONObject> completableFuture = serverManager.resetPassword(1L, 1L);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}

Deletando uma Database

Para deletar uma database, você precisará chamar a função "deleteDatabase", passando o ID do servidor e o ID da database, que retorna um CompletableFuture, do tipo Json, que é a resposta da request.

public class Main {
    public static void main(String[] args) {
        PteroAPI.initPteroAPI("https://example.com.br", "TOKEN", ManagerPolicy.ALL);
        ServerManager serverManager = PteroAPI.getManager(ServerManager.class);
        CompletableFuture<JSONObject> completableFuture = serverManager.deleteDatabase(1L, 1L);
        completableFuture.thenAccept(System.out::println).exceptionally(throwable -> {
            throw new RuntimeException(throwable);
        });
    }
}