Skip to content

Commit 767082c

Browse files
committed
1.2.6
Javadoc update Added WebListener with Javalin provider Moved to Canvas from Folia Remove auto-save
1 parent 765a6e5 commit 767082c

9 files changed

Lines changed: 109 additions & 13 deletions

File tree

.idea/inspectionProfiles/Project_Default.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/jarRepositories.xml

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build.gradle

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
plugins {
22
id 'java'
3-
id 'io.papermc.paperweight.userdev' version "2.0.0-beta.19"
3+
id "io.canvasmc.weaver.userdev" version "2.3.12"
44
}
55

66
group = 'com.unfamoussoul'
@@ -11,10 +11,17 @@ repositories {
1111
maven {
1212
url = 'https://repo.papermc.io/repository/maven-public/'
1313
}
14+
15+
maven { url = "https://maven.canvasmc.io/releases" }
16+
maven {
17+
url = "https://maven.canvasmc.io/snapshots"
18+
mavenContent { snapshotsOnly() }
19+
}
1420
}
1521

1622
dependencies {
17-
paperweight.foliaDevBundle("${folia_version}")
23+
paperweight.canvasDevBundle("${canvas_version}")
24+
implementation("io.javalin:javalin:${javalin_version}")
1825
}
1926

2027
java {

gradle.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
folia_version=1.21.11-R0.1-SNAPSHOT
2-
version=1.2.5
1+
canvas_version=1.21.11-R0.1-SNAPSHOT
2+
javalin_version=7.0.1
3+
version=1.2.6

settings.gradle

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,10 @@
1+
pluginManagement {
2+
repositories {
3+
gradlePluginPortal()
4+
maven {
5+
url = uri("https://maven.canvasmc.io/releases")
6+
}
7+
}
8+
}
9+
110
rootProject.name = 'SAPI'

src/main/java/com/unfamoussoul/sapi/api/command/DynamicCommand.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,5 +23,25 @@ public boolean execute(@NotNull CommandSender commandSender, @NotNull String s,
2323
return false;
2424
}
2525

26+
/**
27+
* Зарегистрировать команду в системе Brigadier. Вызывается при добавлении команды в модуль.
28+
* Пример:
29+
* <pre><code>
30+
* public TestCommand() {
31+
* super("test");
32+
* register(test());
33+
* }
34+
*
35+
* private LiteralArgumentBuilder<CommandSourceStack> test() {
36+
* return Commands.literal("test")
37+
* .executes(context -> {
38+
* CommandSender sender = context.getSource().getSender();
39+
* sender.sendRichMessage(sender.getName());
40+
* return 1;
41+
* });
42+
* }
43+
* </code></pre>
44+
* @param builderSupplier - поставщик билдеров для Brigadier
45+
*/
2646
protected native void register(@NotNull LiteralArgumentBuilder<CommandSourceStack> builderSupplier);
2747
}

src/main/java/com/unfamoussoul/sapi/api/serialize/Persistent.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,13 @@
66
import java.lang.annotation.Target;
77

88
/**
9-
* Аннотация для полей, которые должны автоматически сохраняться в .ser файл
9+
* Аннотация для полей, которые должны автоматически сохраняться в .ser файл.
10+
* Пример:
11+
* <pre><code>
12+
* \@Persistent(value = "player_phrases")
13+
* private final Map<UUID, List<String>> playerPhrases = new HashMap<>();
14+
* </code></pre>
15+
* теперь любое изменение в playerPhrases будет сохраняться в файл plugins/SAPI/data/<имя_Модуля>/player_phrases.ser
1016
*/
1117
@SuppressWarnings("unused")
1218
@Retention(RetentionPolicy.RUNTIME)
@@ -17,11 +23,4 @@
1723
* Имя файла для сохранения
1824
*/
1925
String value();
20-
21-
/**
22-
* Интервал авто-сохранения в тиках.
23-
* Стандартно 10 секунд
24-
* 0 секунд - отключено
25-
*/
26-
long autoSave() default 200L;
2726
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.unfamoussoul.sapi.api.web;
2+
3+
import io.javalin.Javalin;
4+
import io.javalin.config.JavalinConfig;
5+
import org.eclipse.jetty.util.thread.QueuedThreadPool;
6+
7+
import java.util.function.Consumer;
8+
9+
10+
/**
11+
* Класс для создания веб-сервера на основе Javalin. Позволяет создавать и управлять веб-приложением,
12+
* а также предоставляет доступ к пулу потоков и самому приложению для настройки и обработки запросов.
13+
*/
14+
@SuppressWarnings("unused")
15+
public abstract class WebListener {
16+
17+
/**
18+
* Создать Javalin приложение с конфигурацией
19+
* @param config конфигурация для Javalin приложения
20+
*/
21+
protected native Javalin create(Consumer<JavalinConfig> config);
22+
23+
/**
24+
* Запустить Javalin приложение на указанном порту
25+
* @param port порт для прослушивания
26+
*/
27+
public native void start(int port);
28+
29+
/**
30+
* Остановить Javalin приложение
31+
*/
32+
public native void stop();
33+
34+
protected native QueuedThreadPool getThreadPool();
35+
36+
protected native Javalin getApp();
37+
}

src/main/java/com/unfamoussoul/sapi/module/SAPIModule.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.unfamoussoul.sapi.api.access.SAPIAccess;
55
import com.unfamoussoul.sapi.api.command.DynamicCommand;
66
import com.unfamoussoul.sapi.api.config.ConfigHandler;
7+
import com.unfamoussoul.sapi.api.web.WebListener;
78
import com.unfamoussoul.sapi.locale.Locale;
89
import org.bukkit.event.Listener;
910
import org.jetbrains.annotations.NotNull;
@@ -59,6 +60,18 @@ protected SAPIModule(SAPI plugin) {
5960
*/
6061
protected native void removeListener(Listener @NotNull ... listeners);
6162

63+
/**
64+
* Добавляет веб-листенер с сервера
65+
* @param listener Веб-листенер для добавления
66+
* @param port Порт, на котором будет работать веб-листенер
67+
*/
68+
protected native void addWebListener(WebListener listener, int port);
69+
70+
/**
71+
* Удаляет веб-листенер с сервера
72+
*/
73+
protected native void removeWebListener(WebListener @NotNull ... listeners);
74+
6275
/**
6376
* Загрузка локализации. После этого вы можете использовать getLocale() для получения локализированого текста
6477
*/

0 commit comments

Comments
 (0)