Skip to content

Latest commit

 

History

History
234 lines (210 loc) · 11.3 KB

README.md

File metadata and controls

234 lines (210 loc) · 11.3 KB

Java библиотека для SPM API

Библиотека для упрощения работы с api сервера spm.

Официальный сайт api: https://sp-api.ru/spm

Оглавление

Зависимости

Установка

Maven

<dependency>
    <groupId>com.github.l524l</groupId>
    <artifactId>JavaSpApi</artifactId>
    <version>1.0</version>
</dependency>

Gradle

implementation 'com.github.l524l:JavaSpApi:1.0'

Jar

Так же вы можете скачать jar файл и подключить его как библиотеку к своему проекту

Использование

Инициализация главного объекта

Для использования библиотеки нужно создать объект класса SpApi

SpApi spApi = new SpApi();

Список основных методов класса SpApi:

  • getServerWeather() - возвращает объект класса Weather
  • getServerTime() - возвращает объект класса Time
  • getServerOnlinePlayers() - возвращает объект класса OnlinePlayers
  • getServerLastChatMessages() - возвращает объект класса LastChatMessages

Важно! При работе с данными методами может быть вызвано исключение SpApiException, которое нужно обработать.

Класс Weather

Класс предназначен для получения погоды на сервере

Список основных методов класса:

  • getWeather() - возвращает элемент enum'а WeatherType
Enum WeatherType

Содержит значение состояния погоды: CLEAR, RAIN, THUNDER

Пример:
public class Example {
public static void main(String[] args){
        try {
            SpApi spApi = new SpApi();
            Weather weather = spApi.getServerWeather();
            weather.getWeather(); //CLEAR, RAIN, THUNDER
        } catch (SpApiException e) {
            //Какая-либо ошибка библиотеки
        }
    }
}

Класс Time

Класс предназначен для получения времени на сервере

Список основных методов класса:

  • getTime() - возвращает элемент enum'а TimeOfDay
  • getTicks() - возвращает int кол-во игровых тиков на сервере
  • getFormated() - возвращает String форматированное представление времени типа: 00:00
Enum TimeOfDay

Содержит значение состояния времени: DAY, NIGHT

Пример:
public class Example {
public static void main(String[] args){
        try {
            SpApi spApi = new SpApi();
            Time time = spApi.getServerTime();
            time.getTime(); //DAY
            time.getTicks(); //12000
            time.getFormated(); //12:00
        } catch (SpApiException e) {
            //Какая-либо ошибка библиотеки
        }
    }
}

Класс OnlinePlayers

Класс предназначен для получения и работы со списком игроков которые играют на сервере в данный момент

Список основных методов класса:

  • getPlayers() - возвращает массив Player[] объектов класса Player
  • getPlayersAsList() - возвращает список List<Player> объектов класса Player
  • getCount() - возвращает int кол-во играющих на сервере игроков в данный момент
  • getMax() - возвращает int максимально возможное кол-во игроков на сервере
  • checkStatusByName(String nickname) - возвращает boolean онлайн игрок или нет
  • checkStatusByUUID(UUID playerUUID) - возвращает boolean онлайн игрок или нет
  • findByName(String nickname) - возвращает объект класса Player, если игрок онлайн если нет генерирует исключение PlayerNotFoundException
  • findByUUID(UUID playerUUID) - возвращает объект класса Player, если игрок онлайн если нет генерирует исключение PlayerNotFoundException
Пример:
public class Example {
public static void main(String[] args){
        try {
            SpApi spApi = new SpApi();
            OnlinePlayers players = spApi.getServerOnlinePlayers();
            Player[] playersArray = players.getPlayers();
            List<Player> playersList = players.getPlayersAsList();
            int count = players.getCount();
            int max = players.getMax();
            boolean status1 = players.checkStatusByName("nickname");
            boolean status2 = players.checkStatusByUUID(UUID.fromString("3717bdea-73f6-490b-b525-da415c0879e7"));
            Player player1 = players.findByName("nickname");
            Player player1 = players.findByUUID(UUID.fromString("3717bdea-73f6-490b-b525-da415c0879e7"));
        } catch (PlayerNotFoundException e) {
            //Пользователь не найден
        } catch (SpApiException e) {
            //Какая-либо ошибка библиотеки
        }
    }
}

Класс Player

Класс предназначен для работы с данными игрока

Список основных методов класса:

  • getNickname() - возвращает String никнейм игрока
  • getUuid() - возвращает UUID uuid игрока
Пример:
public class Example {
public static void main(String[] args){
        try {
            SpApi spApi = new SpApi();
            OnlinePlayers players = spApi.getServerOnlinePlayers();
            Player player = players.findByName("nickname");
            player.getNickname(); //nickname
            UUID uuid = player.getUuid();
            uuid.toString(); //3717bdea-73f6-490b-b525-da415c0879e7
        } catch (PlayerNotFoundException e) {
            //Пользователь не найден
        } catch (SpApiException e) {
            //Какая-либо ошибка библиотеки
        }
    }
}

Класс LastChatMessages

Класс предназначен для работы со списком последних 50 сообщений глобального чата

Список основных методов класса:

  • getMessages() - возвращает массив Message[] объектов класса Message
  • getMessagesAsList() - возвращает список List<Message> объектов класса Message
  • findMessagesBySenderName(String nickname) - возвращает список List<Message> объектов класса Message отправленных конкретным игроком, если сообщений нет вернёт пустой список
  • findMessagesBySenderUUID(UUID playerUUID) - возвращает список List<Message> объектов класса Message отправленных конкретным игроком, если сообщений нет вернёт пустой список
Пример:
public class Example {
public static void main(String[] args){
        try {
            SpApi spApi = new SpApi();
            LastChatMessages lastChatMessages = spApi.getServerLastChatMessages();
            Message[] messageArray = lastChatMessages.getMessages();
            List<Message> messageList = lastChatMessages.getMessagesAsList();
            List<Message> senderMessages1 = lastChatMessages.findMessagesBySenderName("nickname");
            List<Message> senderMessages2 = lastChatMessages.findMessagesBySenderUUID(UUID.fromString("3717bdea-73f6-490b-b525-da415c0879e7"));
        } catch (SpApiException e) {
            //Какая-либо ошибка библиотеки
        }
    }
}

Класс Message

Класс предназначен для работы с данными сообщения чата

Список основных методов класса:

  • getSender() - возвращает объект класса Player игрока, отправившего сообщение
  • getMessage() - возвращает String текст сообщения
  • getTime() - возвращает объект класса LocalDateTime время отправления сообщения
  • getTimeAsLong() - возвращает long UnixTime время отправления сообщения
Пример:
public class Example {
public static void main(String[] args){
        try {
            SpApi spApi = new SpApi();
            LastChatMessages lastChatMessages = spApi.getServerLastChatMessages();
            Message[] messageArray = lastChatMessages.getMessages();
            Message message = messageArray[0];
            Player sender = message.getSender();
            String text = message.getMessage();
            long unixTime = message.getTimeAsLong();
            LocalDateTime localDateTime = message.getTime();
        } catch (SpApiException e) {
            //Какая-либо ошибка библиотеки
        }
    }
}

Исключения

Список исключений:

  • SpApiException - любое исключение при работе с библиотекой
  • PlayerNotFoundException - наследует SpApiException исключение если игрок не найден
  • SpApiServerException - наследует SpApiException исключение вызванное в ходе получения данных с сервера API