From 7f7394aecb686e82cbde7fe749b6f40b534359ed Mon Sep 17 00:00:00 2001 From: MiniDay <372403923@qq.com> Date: Wed, 5 Oct 2022 09:12:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20api=20=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加 api 功能 --- build.gradle | 2 +- .../plugin/core/bukkit/api/BukkitAPI.java | 43 +++++++++++++++++++ .../plugin/core/bukkit/page/PageManager.java | 2 +- hamster-core-common/build.gradle | 4 +- .../plugin/core/common/api/CommonAPI.java | 21 +++++++-- 5 files changed, 64 insertions(+), 8 deletions(-) diff --git a/build.gradle b/build.gradle index f29696b..82548dd 100644 --- a/build.gradle +++ b/build.gradle @@ -3,7 +3,7 @@ plugins { } group 'cn.hamster3.plugin' -version '1.0.0-SNAPSHOT' +version '1.0.0' subprojects { apply plugin: 'java-library' diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/plugin/core/bukkit/api/BukkitAPI.java b/hamster-core-bukkit/src/main/java/cn/hamster3/plugin/core/bukkit/api/BukkitAPI.java index 55ee617..fac5210 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/plugin/core/bukkit/api/BukkitAPI.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/plugin/core/bukkit/api/BukkitAPI.java @@ -1,11 +1,54 @@ package cn.hamster3.plugin.core.bukkit.api; +import cn.hamster3.plugin.core.bukkit.HamsterCorePlugin; import cn.hamster3.plugin.core.common.api.CommonAPI; +import com.zaxxer.hikari.HikariConfig; +import com.zaxxer.hikari.HikariDataSource; +import net.kyori.adventure.platform.AudienceProvider; +import net.kyori.adventure.platform.bukkit.BukkitAudiences; +import org.jetbrains.annotations.NotNull; + +import java.sql.Connection; +import java.sql.SQLException; @SuppressWarnings("unused") public class BukkitAPI extends CommonAPI { + private BukkitAudiences audienceProvider; + private HikariDataSource datasource; + public static BukkitAPI getInstance() { return (BukkitAPI) instance; } + public static void init() { + BukkitAPI api = new BukkitAPI(); + instance = api; + api.audienceProvider = BukkitAudiences.create(HamsterCorePlugin.getInstance()); + HikariConfig hikariConfig = new HikariConfig(); + + } + + @Override + public @NotNull AudienceProvider getAudienceProvider() { + return audienceProvider; + } + + @Override + public @NotNull HikariDataSource getDataSource() { + return datasource; + } + + @Override + public @NotNull Connection getConnection() throws SQLException { + return datasource.getConnection(); + } + + @Override + public void reportError(@NotNull String apiKey, @NotNull String projectID, @NotNull Throwable exception) { + + } + + @Override + public void reportFile(@NotNull String apiKey, @NotNull String projectID, @NotNull String filename, byte @NotNull [] bytes) { + } } diff --git a/hamster-core-bukkit/src/main/java/cn/hamster3/plugin/core/bukkit/page/PageManager.java b/hamster-core-bukkit/src/main/java/cn/hamster3/plugin/core/bukkit/page/PageManager.java index d3d80c1..4448951 100644 --- a/hamster-core-bukkit/src/main/java/cn/hamster3/plugin/core/bukkit/page/PageManager.java +++ b/hamster-core-bukkit/src/main/java/cn/hamster3/plugin/core/bukkit/page/PageManager.java @@ -11,7 +11,7 @@ import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.util.HashMap; -public abstract class PageManager { +public class PageManager { private static final HashMap PAGE_CONFIG = new HashMap<>(); public static PageConfig getPageConfig(Class clazz) { diff --git a/hamster-core-common/build.gradle b/hamster-core-common/build.gradle index b18c809..1a76020 100644 --- a/hamster-core-common/build.gradle +++ b/hamster-core-common/build.gradle @@ -12,8 +12,8 @@ dependencies { api 'net.kyori:adventure-api:4.11.0' // https://mvnrepository.com/artifact/net.kyori/adventure-text-minimessage api 'net.kyori:adventure-text-minimessage:4.11.0' -// // https://mvnrepository.com/artifact/net.kyori/adventure-platform-api -// implementation 'net.kyori:adventure-platform-api:4.1.2' + // https://mvnrepository.com/artifact/net.kyori/adventure-platform-api + implementation 'net.kyori:adventure-platform-api:4.1.2' // https://mvnrepository.com/artifact/net.kyori/adventure-text-serializer-gson api 'net.kyori:adventure-text-serializer-gson:4.11.0' diff --git a/hamster-core-common/src/main/java/cn/hamster3/plugin/core/common/api/CommonAPI.java b/hamster-core-common/src/main/java/cn/hamster3/plugin/core/common/api/CommonAPI.java index 176aeae..c84981e 100644 --- a/hamster-core-common/src/main/java/cn/hamster3/plugin/core/common/api/CommonAPI.java +++ b/hamster-core-common/src/main/java/cn/hamster3/plugin/core/common/api/CommonAPI.java @@ -1,5 +1,12 @@ package cn.hamster3.plugin.core.common.api; +import net.kyori.adventure.platform.AudienceProvider; +import org.jetbrains.annotations.NotNull; + +import javax.sql.DataSource; +import java.sql.Connection; +import java.sql.SQLException; + @SuppressWarnings("unused") public abstract class CommonAPI { protected static CommonAPI instance; @@ -8,10 +15,16 @@ public abstract class CommonAPI { return instance; } - public void reportError(String apiKey, String projectID, Throwable exception) { + @NotNull + public abstract AudienceProvider getAudienceProvider(); - } + @NotNull + public abstract DataSource getDataSource(); - public void reportFile(String apiKey, String projectID, String filename) { - } + @NotNull + public abstract Connection getConnection() throws SQLException; + + public abstract void reportError(@NotNull String apiKey, @NotNull String projectID, @NotNull Throwable exception); + + public abstract void reportFile(@NotNull String apiKey, @NotNull String projectID, @NotNull String filename, byte @NotNull [] bytes); }