diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..4f8b65a --- /dev/null +++ b/README.MD @@ -0,0 +1,156 @@ +# GHAST TOOLS + +Набор вспомогательных инструментов для Bukkit API. +_Основан на версии Bukkit API 1.12._ + +## Использование + +Перед началом использования, необходимо в вашем Bukkit-плагине прописать подобный код: + +```java +void onLoad() { + GhastTools.setPlugin(this); +} +``` + +Это необходимо сделать, т.к. весь инструментарий основан на статических (static) методах. + +Все методы данного набора инструментов объеденены в классы, выполняющие роль группировщиков. + +### GhastTools + +Методы общего назначения или без определённой группировки. + +#### loadConfig + +Загрузка файла настроек плагина - `config.yml`. + +```java +YamlConfiguration config = GhastTools.loadConfig(); +``` + +По-умолчанию "гаст" пытается файл найти в папке плагина - `getDataFolder()`. +Если файла там нет, то выгружает встроенный (имеющийся в `.jar` файле плагина) в эту папку и загружает его. + +```java +YamlConfiguration config = GhastTools.loadConfig(false); +``` + +Если передать параметр `false`, то при отсутствии файла `config.yml` в папке плагина, +будет загруден исключительно встроенный файл настроек. + +### AssetsManager + +Методы по работе с файлами плагина (_"ассетами"_). + +У каждой группы методов один и тот же набор входных параметров: + +- `resourceName` - наименование и путь к файлу в папке плагина +- `defaultResourceName` - наименование и путь к файлу в плагине. + _Опционально. По-умолчанию равнен `resourceName`_ +- `saveDefault` - необходимость скопировать содержимое файла из `defaultResourceName` в файл `resourceName`. + _Опционально. По-умолчанию равен `true`_ + +Правила поиска файлов так же одинаков для каждой группы: + +- В начале файл ищется в папке плагина +- Если файл отсутствует в папке плагина, то... + - если `defaultResourceName` не равен `null`... + - если `saveDefault` равен `true`, то файл из плагина будет выгружен в папку плагина и от туда загружен в память. + - если `saveDefault` равен `false`, то данные будут взяты из файлв в плагине. + - если `defaultResourceName` равен `null`, то будет брошено исключение `AssetsException` с описанием ошибки вида "Файл X не найден". + +#### getAsInputStream + +```java +InputStream inputStream = AssetsManager.getAsInputStream("translate.ru.yml", "translate.yml", false); +``` + +#### getAsReader + +```java +Reader reader = AssetsManager.getAsReader("translate.ru.yml", "translate.yml", false); +``` + +#### getAsString + +```java +String string = AssetsManager.getAsString("readme.txt", "readme.txt", StandardCharsets.UTF_8, false); +``` + +У этой группы есть дополнительный _опциональный_ параметр - `charset` - в котором указывается кодиривка получаемой строки. +_По-умолчанию равен `StandardCharsets.UTF_8`_ + +### BuildHelper + +Набор методов облегчающих размецение объектов на карте. + +#### placeSkull + +```java +Location location = ...; +Skull skull = BuildHelper.placeSkull(location, BlockFace.NORTH) +``` + +#### placeSignWall + +```java +Location location = ...; +Sign signWall = BuildHelper.placeSignWall(location, BlockFace.NORTH) +``` + +### CommandManager + +Регистрация комманд. + +Имеется два варианта использования: упрощённый + +```java +CommandManager.register("start", (sender, args) -> sender.sendMessage("hello!")); +``` + +и подробный: + +```java +CommandManager.create("start") + .useOnlyPlayer() + .executer((sender, args) -> sender.sendMessage("hello!")) + .register(); +``` + +_TODO добавить описание подробного режима_ + +## Подключение + +### Gradle + +```groovy +repositories { + maven { url 'https://dmx-mc-project.gitlab.io/maven-repository/' } +} +``` + +```groovy +implementation group: 'ghast', name: 'ghast-tools', version: '1.9' +``` + +### Maven + +```xml + + + dmx-mc-project + https://dmx-mc-project.gitlab.io/maven-repository/ + + +``` + +```xml + + + ghast + ghast-tools + 1.9 + + +``` \ No newline at end of file