Este repositório tem como finalidade expor nosso SDK para desenvolvimento de plugins para servidores de Minecraft. A única dependência deste SDK é a library gson do Google que já está embutida na versão compilada, e, portanto, deve funcionar em qualquer servidor.
Ainda não tem uma loja consoco? Crie agora uma mesmo.
Baixe a última versão compilada do MSDK clicando aqui.
Após fazer download do MSDK e adicioná-lo ao projeto do seu plugin, você pode instanciá-lo da seguinte forma:
private MSDK msdk = new MSDK();
Uma vez instanciado o MSDK, você terá acesso a alguns métodos úteis ao seu futuro plugin. Veja os detalhes abaixo.
/* public void setConnectTimeout(int ms) Define o tempo máximo, em milissegundos, que o MSDK deve aguardar por uma resposta ao fazer uma requisição a nossa API. Passado o tempo definido, uma `MsdkException` será lançada. */ this.msdk.setConnectTimeout(1000);
/* public void setReadTimeout(int ms) Define o tempo máximo, em milissegundos, que o MSDK deve aguardar até que a leitura da resposta HTTP retornada por nossa API seja concluída. Passado o tempo definido, uma `MsdkException` será lançada. */ this.msdk.setReadTimeout(2000);
/* public void setCredentials(String authorization) Define um token de autorização que será enviado em todas as requisições que seu plugin fizer para a nossa API. Este token pode ser obtido na página de servidores no painel da sua loja. */ this.msdk.setCredentials("token");
/* public QueueItem[] getQueueItems([nickname=""]) Ao chamar este método, o MSDK irá buscar em nossa API todos os comandos que estão aguardando para serem entregues no seu servidor. Se você passar um nickname como parâmetro, o mesmo irá acontecer só que com os resultados filtrados para o nickname informado. Neste ponto as credenciais do seu servidor já devem ter sido definidas através do método setCredentials() */ QueueItem[] queueItems = null; try { queueItems = msdk.getQueueItems(); } catch (WebServiceException | MsdkException e) { Logger.getLogger(getClass().getName()).log(Level.WARNING, null, e); } /* A classe `QueueItem` possui os seguintes atributos, e todos eles possuem métodos `getters` e `setters` públicos: private String uuid; private String nickname; private String command; private int slotsNeeded; private String type; private String status; Desta forma, se você quer saber qual comando tem que executar, basta chamar o método `getter` do atributo `command`, que é `getCommand()`. */
/* public void hasBeenDelivered(String nickname, String queueItemUuid) Este comando marca um comando/item da fila com status de entregue para que ele saia da fila imediatamente. */ for (QueueItem queueItem : queueItems) { try { msdk.hasBeenDelivered(queueItem.getNickname(), queueItem.getUuid()); } catch (WebServiceException | MsdkException e) { Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, e); } }
Até aqui nós vimos os métodos disponíveis no MSDK e como utilizá-los. Mas, existem alguns pontos a serem levados em consideração:
- Este SDK não te restringe em muita coisa e por isso você pode fazer praticamente o que quiser e criar um plugin 100% adaptado ao seu servidor, mas lembre-se: "Com grandes poderes, vêm grandes responsabilidades" – Stan Lee;
- Provavelmente você quer executar a maioria dos métodos deste SDK em uma thread separada da thread principal do seu servidor, e recomendamos que faça isso;
- Provavelmente você deseja ter um sistema de proteção para evitar que seu plugin faça multiplas chamadas ao método
getQueueItems()ao mesmo tempo porque isso pode ser perigoso;