update README.MD
This commit is contained in:
372
README.MD
372
README.MD
@@ -101,7 +101,7 @@ Sign signWall = BuildHelper.placeSignWall(location, BlockFace.NORTH)
|
|||||||
|
|
||||||
### CommandManager
|
### CommandManager
|
||||||
|
|
||||||
Регистрация комманд.
|
Регистрация команд.
|
||||||
|
|
||||||
Имеется два варианта использования: упрощённый
|
Имеется два варианта использования: упрощённый
|
||||||
|
|
||||||
@@ -118,7 +118,375 @@ CommandManager.create("start")
|
|||||||
.register();
|
.register();
|
||||||
```
|
```
|
||||||
|
|
||||||
_TODO добавить описание подробного режима_
|
#### register
|
||||||
|
|
||||||
|
Упрощенная регистрация команды. Указывается лишь название команды и исполнитель.
|
||||||
|
|
||||||
|
```java
|
||||||
|
CommandManager.register("start", (sender, args) -> sender.sendMessage("hello!"));
|
||||||
|
```
|
||||||
|
|
||||||
|
#### create
|
||||||
|
|
||||||
|
Конструктор для подробного варианта регистрации команды.
|
||||||
|
|
||||||
|
```java
|
||||||
|
CommandManager.Builder builder = CommandManager.create("start");
|
||||||
|
```
|
||||||
|
|
||||||
|
#### executer
|
||||||
|
|
||||||
|
Указание исполнителя для команды
|
||||||
|
|
||||||
|
```java
|
||||||
|
CommandManager.Builder builder = CommandManager.create("start")
|
||||||
|
.executer((sender, args) -> sender.sendMessage("hello!"));
|
||||||
|
```
|
||||||
|
|
||||||
|
#### onError
|
||||||
|
|
||||||
|
Обработчик исключений
|
||||||
|
|
||||||
|
```java
|
||||||
|
CommandManager.Builder builder = CommandManager.create("start")
|
||||||
|
.onError((sender, commandName, args, exception) -> {
|
||||||
|
sender.sendMessage(ChatColor.RED + "Произошла ошибка при выполнении команды '" + commandName + "'.");
|
||||||
|
exception.printStackTrace();
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
#### useOnlyPlayer
|
||||||
|
|
||||||
|
Указание, что данную команду могут использовать только Игроки.
|
||||||
|
Опционально можно указать сообщение, которое будет выводиться в консоль.
|
||||||
|
_Отменяет действие указателя `useOnlyConsole`_
|
||||||
|
|
||||||
|
```java
|
||||||
|
CommandManager.Builder builder = CommandManager.create("start")
|
||||||
|
.useOnlyPlayer("Команду могут использовать только игроки");
|
||||||
|
```
|
||||||
|
|
||||||
|
#### useOnlyConsole
|
||||||
|
|
||||||
|
Указание, что данную команду можно использовать только в консоле.
|
||||||
|
Опционально можно указать сообщение, которое будет выводиться Игроку.
|
||||||
|
_Отменяет действие указателя `useOnlyPlayer`_
|
||||||
|
|
||||||
|
```java
|
||||||
|
CommandManager.Builder builder = CommandManager.create("start")
|
||||||
|
.useOnlyConsole(ChatColor.RED + "Команду можно использовать только в консоли");
|
||||||
|
```
|
||||||
|
|
||||||
|
#### register
|
||||||
|
|
||||||
|
Регистрация описанной в Конструкторе команды.
|
||||||
|
|
||||||
|
```java
|
||||||
|
CommandManager.create("start")
|
||||||
|
.useOnlyPlayer()
|
||||||
|
.executer((sender, args) -> sender.sendMessage("hello!"))
|
||||||
|
.register();
|
||||||
|
```
|
||||||
|
|
||||||
|
### EffectsHelper
|
||||||
|
|
||||||
|
Набор методов для работы с эффектами.
|
||||||
|
|
||||||
|
#### playSound
|
||||||
|
|
||||||
|
Воспроизвести звук.
|
||||||
|
|
||||||
|
```java
|
||||||
|
Location location = ...;
|
||||||
|
EffectsHelper.playSound(location, Sound.AMBIENT_CAVE, 1.0f);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### particle
|
||||||
|
|
||||||
|
Создание частиц.
|
||||||
|
|
||||||
|
```java
|
||||||
|
Location location = ...;
|
||||||
|
EffectsHelper.particle(location, Particle.REDSTONE, 1.0d, 1.0d, 1.0d, 1.0d, 5);
|
||||||
|
```
|
||||||
|
|
||||||
|
### EventContext
|
||||||
|
|
||||||
|
Регистрация группы обработчиков событий, объединённых общим условием выполнения.
|
||||||
|
|
||||||
|
```java
|
||||||
|
EventContext.create()
|
||||||
|
.filter(() -> Bukkit.getOnlinePlayers().size() > 10)
|
||||||
|
.onEvent(PlayerJoinEvent.class, event -> { event.getPlayer().kickPlayer("Max players"); });
|
||||||
|
```
|
||||||
|
|
||||||
|
#### create
|
||||||
|
|
||||||
|
Создание контекста событий.
|
||||||
|
|
||||||
|
```java
|
||||||
|
EventContext eventContext = EventContext.create();
|
||||||
|
```
|
||||||
|
|
||||||
|
#### filter
|
||||||
|
|
||||||
|
Условие, при котором будут срабатывать обработчики событий в данном контексте.
|
||||||
|
|
||||||
|
```java
|
||||||
|
EventContext.create()
|
||||||
|
.filter(() -> Bukkit.getOnlinePlayers().size() > 10)
|
||||||
|
```
|
||||||
|
|
||||||
|
#### onEvent
|
||||||
|
|
||||||
|
Указание события и его обработчика.
|
||||||
|
_Обработчик события регистрируется сразу же._
|
||||||
|
|
||||||
|
```java
|
||||||
|
EventContext.create()
|
||||||
|
.filter(() -> Bukkit.getOnlinePlayers().size() > 10)
|
||||||
|
.onEvent(PlayerJoinEvent.class, event -> event.getPlayer().kickPlayer("Max players"));
|
||||||
|
```
|
||||||
|
|
||||||
|
#### cancelEvent
|
||||||
|
|
||||||
|
Отменить событие.
|
||||||
|
_Обработчик события регистрируется сразу же._
|
||||||
|
|
||||||
|
```java
|
||||||
|
EventContext.create()
|
||||||
|
.cancelEvent(BlockPlaceEvent.class);
|
||||||
|
```
|
||||||
|
|
||||||
|
эквивалентен коду:
|
||||||
|
|
||||||
|
```java
|
||||||
|
EventContext.create()
|
||||||
|
.onEvent(BlockPlaceEvent.class, event -> event.setCancelled(true))
|
||||||
|
```
|
||||||
|
|
||||||
|
### JdbcTemplate
|
||||||
|
|
||||||
|
Инструмент для упрощения работы с SQL базами данных, работающими через JDBC.
|
||||||
|
|
||||||
|
Для начала потребуется создать объект `DataSource`
|
||||||
|
|
||||||
|
```java
|
||||||
|
// На примере MySQL
|
||||||
|
MysqlDataSource dataSource = new MysqlDataSource();
|
||||||
|
dataSource.setServerName("localhost");
|
||||||
|
dataSource.setPort(3306);
|
||||||
|
dataSource.setCharacterEncoding(StandardCharsets.UTF_8.name());
|
||||||
|
dataSource.setDatabaseName("MyDataBase");
|
||||||
|
dataSource.setUser("root");
|
||||||
|
dataSource.setPassword("secret");
|
||||||
|
```
|
||||||
|
|
||||||
|
После чего создать `JdbcTemplate`
|
||||||
|
|
||||||
|
```java
|
||||||
|
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### execute
|
||||||
|
|
||||||
|
Выполнение SQL запроса без последующей обработки результатов выполнения.
|
||||||
|
|
||||||
|
```java
|
||||||
|
jdbcTemplate.execute("CREATE TABLE my_table (id int, name varchar(16));");
|
||||||
|
```
|
||||||
|
|
||||||
|
#### query
|
||||||
|
|
||||||
|
Выполнение SQL запроса и обработка его результатов.
|
||||||
|
Может возвращать любой тип объектов.
|
||||||
|
|
||||||
|
```java
|
||||||
|
String name = jdbcTemplate.query("SELECT name FROM my_table LIMIT 0,1", resultSet -> {
|
||||||
|
if (resultSet.next()) {
|
||||||
|
return resultSet.getString("name");
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
```java
|
||||||
|
List<String> names = jdbcTemplate.query("SELECT name FROM my_table", resultSet -> {
|
||||||
|
if (resultSet.next()) {
|
||||||
|
List<String> list = new ArrayList<>();
|
||||||
|
do {
|
||||||
|
list.add(resultSet.getString("name"));
|
||||||
|
} while (resultSet.next());
|
||||||
|
return list;
|
||||||
|
} else {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
#### queryOne
|
||||||
|
|
||||||
|
Выполнение SQL запроса с расчетом, что результат будет единичным либо не будет вовсе.
|
||||||
|
Возвращает `Optional`.
|
||||||
|
|
||||||
|
```java
|
||||||
|
Optional<String> optName = jdbcTemplate.queryOne("SELECT name FROM my_table WHERE name LIKE 'dmitriymx'", rs -> rs.getString("name"));
|
||||||
|
```
|
||||||
|
|
||||||
|
#### queryList
|
||||||
|
|
||||||
|
Выполнение SQL запроса и обработка результата как списка данных.
|
||||||
|
Возвращает `List`.
|
||||||
|
|
||||||
|
```java
|
||||||
|
List<String> names = jdbcTemplate.queryList("SELECT name FROM my_table", (resultSet, rowNum) -> resultSet.getString("name"));
|
||||||
|
```
|
||||||
|
|
||||||
|
#### queryForMap
|
||||||
|
|
||||||
|
Выполнение SQL запроса с расчетом, что результат будет единичным либо не будет вовсе.
|
||||||
|
Возвращает `Map<String, Object>`, где ключ — это наименование колонок таблицы, а значения — это значения в ячейках таблицы.
|
||||||
|
|
||||||
|
```java
|
||||||
|
Map<String, Object> map = jdbcTemplate.queryForMap("SELECT * FROM my_table LIMIT 0,1;");
|
||||||
|
```
|
||||||
|
|
||||||
|
#### queryForMapList
|
||||||
|
|
||||||
|
Выполнение SQL запроса и обработка результата как списка данных.
|
||||||
|
Возвращает `List<Map<String, Object>>`, где ключ — это наименование колонок таблицы, а значения — это значения в ячейках таблицы.
|
||||||
|
|
||||||
|
```java
|
||||||
|
List<Map<String, Object>> mapList = jdbcTemplate.queryForMapList("SELECT * FROM my_table");
|
||||||
|
```
|
||||||
|
|
||||||
|
#### update
|
||||||
|
|
||||||
|
Выполнение SQL запроса где будет происходить обновление данных в таблице.
|
||||||
|
Под "обновлением" подразумеваются любые изменения в таблице: `UPDATE`, `DELETE`, `INSERT`.
|
||||||
|
Возвращает число строк, которые были _по факту обновлены_ в таблице.
|
||||||
|
|
||||||
|
```java
|
||||||
|
int rows = jdbcTemplate.update("DELETE FROM my_table WHERE name LIKE 'dmitriymx';");
|
||||||
|
```
|
||||||
|
|
||||||
|
### ScheduleManager
|
||||||
|
|
||||||
|
Набор методов для создания параллельных задач, выполняющихся один раз или по рассписанию.
|
||||||
|
|
||||||
|
#### createTask
|
||||||
|
|
||||||
|
Создание конструктора задачи.
|
||||||
|
|
||||||
|
```java
|
||||||
|
ScheduleManager.Builder builder = ScheduleManager.createTask();
|
||||||
|
```
|
||||||
|
|
||||||
|
#### useBukkitScheduler
|
||||||
|
|
||||||
|
Если задача будет взаимодействоватьс **Bukkit API** или необходима привязка задачи к _тикам_,
|
||||||
|
то необходимо использовать данный указатель.
|
||||||
|
|
||||||
|
В ином случае, указатель не нужен.
|
||||||
|
|
||||||
|
```java
|
||||||
|
ScheduleManager.Builder builder = ScheduleManager.createTask()
|
||||||
|
.useBukkitScheduler();
|
||||||
|
```
|
||||||
|
|
||||||
|
#### after
|
||||||
|
|
||||||
|
Указание, что задачу нужно выполнить не сразу, а с некоторой задержкой перед запуском.
|
||||||
|
|
||||||
|
```java
|
||||||
|
ScheduleManager.Builder builder = ScheduleManager.createTask()
|
||||||
|
.after(5, TimeUnit.MINUTES);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### every
|
||||||
|
|
||||||
|
Указание, что задачу нужно повторять через указанное время.
|
||||||
|
|
||||||
|
```java
|
||||||
|
ScheduleManager.Builder builder = ScheduleManager.createTask()
|
||||||
|
.every(5, TimeUnit.MINUTES);
|
||||||
|
```
|
||||||
|
|
||||||
|
#### create
|
||||||
|
|
||||||
|
Создание описанной задачи.
|
||||||
|
|
||||||
|
```java
|
||||||
|
ScheduleTask scheduleTask = ScheduleManager.createTask()
|
||||||
|
.every(1, TimeUnit.SECONDS)
|
||||||
|
.create(() -> Bukkit.getServer().getLogger().info("TimeMS: " + System.currentTimeMillis()));
|
||||||
|
```
|
||||||
|
|
||||||
|
_Задача будет только создана. Для её выполнения нужно вызвать `scheduleTask.start()`._
|
||||||
|
|
||||||
|
#### execute
|
||||||
|
|
||||||
|
Создание и выполнение описанной задачи.
|
||||||
|
|
||||||
|
```java
|
||||||
|
ScheduleTask scheduleTask = ScheduleManager.createTask()
|
||||||
|
.every(1, TimeUnit.SECONDS)
|
||||||
|
.execute(() -> Bukkit.getServer().getLogger().info("TimeMS: " + System.currentTimeMillis()));
|
||||||
|
```
|
||||||
|
|
||||||
|
### ScheduleTask
|
||||||
|
|
||||||
|
Вспомогательный объект, созданный через `ScheduleManager`. Позволяет управлять созданной задачей.
|
||||||
|
|
||||||
|
#### start
|
||||||
|
|
||||||
|
Запускает задачу, если она еще не запущена.
|
||||||
|
|
||||||
|
```java
|
||||||
|
ScheduleTask scheduleTask = ...;
|
||||||
|
scheduleTask.start();
|
||||||
|
```
|
||||||
|
|
||||||
|
#### isCanceled
|
||||||
|
|
||||||
|
Возвращает состояние задачи. Если `true`, значит задача была или _отменена/остоновлена_ или была завершена.
|
||||||
|
|
||||||
|
```java
|
||||||
|
ScheduleTask scheduleTask = ...;
|
||||||
|
boolean status = scheduleTask.isCanceled();
|
||||||
|
```
|
||||||
|
|
||||||
|
#### cancel
|
||||||
|
|
||||||
|
Отменяет/Остонавливает выполнение задачи.
|
||||||
|
|
||||||
|
```java
|
||||||
|
ScheduleTask scheduleTask = ...;
|
||||||
|
scheduleTask.cancel();
|
||||||
|
```
|
||||||
|
|
||||||
|
### I18n
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
#### loadMessages
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
#### get
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
#### paramBuilder
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
### XLog
|
||||||
|
|
||||||
|
TODO
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Подключение
|
## Подключение
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user