diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index c170b0f..1c13cba 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -12,12 +12,14 @@
name: "CodeQL Advanced"
on:
+ # 支持手动触发
+ workflow_dispatch:
push:
branches: [ "main" , "dev" ]
pull_request:
branches: [ "main" ]
schedule:
- - cron: '34 1 * * 3'
+ - cron: '00 1 * * 3'
jobs:
analyze:
@@ -43,6 +45,8 @@ jobs:
fail-fast: false
matrix:
include:
+ - language: actions
+ build-mode: none
- language: java-kotlin
build-mode: none # This mode only analyzes Java. Set this to 'autobuild' or 'manual' to analyze Kotlin too.
# CodeQL supports the following values keywords for 'language': 'actions', 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift'
diff --git a/.github/workflows/packages.yml b/.github/workflows/packages.yml
new file mode 100644
index 0000000..22c7d6f
--- /dev/null
+++ b/.github/workflows/packages.yml
@@ -0,0 +1,36 @@
+# 此工作流使用未经 GitHub 认证的操作。
+# 它们由第三方提供,并受
+# 单独的服务条款、隐私政策和支持
+# 文档。
+
+# GitHub 建议将操作固定到提交 SHA。
+# 若要获取较新版本,需要更新 SHA。
+# 还可以引用标记或分支,但该操作可能会更改而不发出警告。
+
+name: Publish package to GitHub Packages
+
+on:
+ # 支持手动触发
+ workflow_dispatch:
+ release:
+ types: [created]
+
+jobs:
+ publish:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+ packages: write
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-java@v4
+ with:
+ java-version: '11'
+ distribution: 'temurin'
+ - name: Setup Gradle
+ uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
+
+ - name: Publish package
+ run: ./gradlew publish
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.gitignore b/.gitignore
index 78f361c..a588c33 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
.gradle
.idea
gradle
+build
-
+debug.bat
diff --git a/build.gradle b/build.gradle
index 26a7974..8ba3982 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,5 +1,6 @@
plugins {
id 'java'
+ id 'maven-publish'
}
group = 'top.redstarmc.plugin'
@@ -25,7 +26,7 @@ dependencies {
implementation ('cc.carm.lib:easysql-hikaricp:0.4.7')
}
-def targetJavaVersion = 17
+def targetJavaVersion = 19
java {
def javaVersion = JavaVersion.toVersion(targetJavaVersion)
sourceCompatibility = javaVersion
@@ -51,3 +52,27 @@ processResources {
expand props
}
}
+
+publishing {
+
+ publications {
+ mavenJava(MavenPublication) {
+ groupId = group
+ artifactId = "RedStarLib"
+ version = version
+
+ from components.java
+ }
+ }
+
+ repositories {
+ maven {
+ name = "GitHubPackages"
+ url = "https://maven.pkg.github.com/RedStarMC/RedStarLib"
+ credentials {
+ username = System.getenv("GITHUB_ACTOR")
+ password = System.getenv("GITHUB_TOKEN")
+ }
+ }
+ }
+}
diff --git a/src/main/java/top/redstarmc/plugin/redstarlib/RedStarLib.java b/src/main/java/top/redstarmc/plugin/redstarlib/RedStarLib.java
index 9d5fca0..647be46 100644
--- a/src/main/java/top/redstarmc/plugin/redstarlib/RedStarLib.java
+++ b/src/main/java/top/redstarmc/plugin/redstarlib/RedStarLib.java
@@ -2,16 +2,27 @@
import org.bukkit.plugin.java.JavaPlugin;
import top.redstarmc.plugin.redstarlib.impl.ImplConfigManager;
+import top.redstarmc.plugin.redstarlib.impl.ImplLoggerManager;
import top.redstarmc.plugin.redstarlib.impl.ImplServerManager;
import top.redstarmc.plugin.redstarlib.manager.ConfigurationManager;
+import top.redstarmc.plugin.redstarlib.manager.LoggerManager;
import top.redstarmc.plugin.redstarlib.manager.ServerManager;
+/**
+ *
RedStarLib 插件主类
+ * 实现 {@link RedStarLibInterface} 接口,同时也可作为其他使用本插件开发的插件代码规范。
+ * 内部维护了多个字段,不可被继承( final 类)。
+ */
public final class RedStarLib extends JavaPlugin implements RedStarLibInterface{
private static RedStarLib instance;
+ public String INFO_PREFIX = "[RedStarLib]";
+
private ConfigurationManager configManager;
+ private LoggerManager loggerManager;
+
private ServerManager serverManager;
@Override
@@ -19,6 +30,8 @@ public void onEnable() {
instance = this;
loadManager();
+ loggerManager.info("a");
+
}
@Override
@@ -31,7 +44,9 @@ public void loadManager() {
configManager = new ImplConfigManager();
configManager.init();
- serverManager = new ImplServerManager();
+ loggerManager = new ImplLoggerManager(INFO_PREFIX);
+
+ serverManager = new ImplServerManager(INFO_PREFIX);
}
public static RedStarLib getInstance() {
@@ -42,6 +57,10 @@ public ConfigurationManager getConfigManager() {
return configManager;
}
+ public LoggerManager getLoggerManager() {
+ return loggerManager;
+ }
+
public ServerManager getServerManager() {
return serverManager;
}
diff --git a/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplConfigManager.java b/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplConfigManager.java
index 17704c5..440531a 100644
--- a/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplConfigManager.java
+++ b/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplConfigManager.java
@@ -20,7 +20,7 @@ public class ImplConfigManager extends ConfigurationManager {
private static YamlConfiguration config;
- private static final String versioning = "${version}";
+ private static final String versioning = "0.0.0";
@Override
public void init() {
diff --git a/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplLoggerManager.java b/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplLoggerManager.java
new file mode 100644
index 0000000..9c1d483
--- /dev/null
+++ b/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplLoggerManager.java
@@ -0,0 +1,11 @@
+package top.redstarmc.plugin.redstarlib.impl;
+
+import top.redstarmc.plugin.redstarlib.manager.LoggerManager;
+
+public class ImplLoggerManager extends LoggerManager {
+
+
+ public ImplLoggerManager(String INFO_PREFIX) {
+ super(INFO_PREFIX);
+ }
+}
diff --git a/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplServerManager.java b/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplServerManager.java
index 98bc909..ef358e9 100644
--- a/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplServerManager.java
+++ b/src/main/java/top/redstarmc/plugin/redstarlib/impl/ImplServerManager.java
@@ -1,15 +1,12 @@
package top.redstarmc.plugin.redstarlib.impl;
-import org.bukkit.Bukkit;
import top.redstarmc.plugin.redstarlib.manager.ServerManager;
public class ImplServerManager extends ServerManager {
- @Override
- public void broadcast(String... messages) {
- for (String message : messages) {
- Bukkit.broadcastMessage(message);
- }
+ public ImplServerManager(String INFO_PREFIX) {
+ super(INFO_PREFIX);
}
+
}
diff --git a/src/main/java/top/redstarmc/plugin/redstarlib/manager/ConfigurationManager.java b/src/main/java/top/redstarmc/plugin/redstarlib/manager/ConfigurationManager.java
index ecae759..b6a377c 100644
--- a/src/main/java/top/redstarmc/plugin/redstarlib/manager/ConfigurationManager.java
+++ b/src/main/java/top/redstarmc/plugin/redstarlib/manager/ConfigurationManager.java
@@ -12,7 +12,9 @@
*/
public abstract class ConfigurationManager {
-
+ /**
+ * 初始化方法
+ */
public abstract void init();
/**
@@ -48,6 +50,11 @@ public void saveMapConfig(Map configMap, YamlConfiguration confi
save(config, configFile);
}
+ /**
+ * 从内存中保存 {@link YamlConfiguration} 格式文件
+ * @param config {@link YamlConfiguration} 内存中配置文件
+ * @param configFile {@link File} IO配置文件
+ */
public void save(YamlConfiguration config, File configFile){
try {
config.save(configFile);
diff --git a/src/main/java/top/redstarmc/plugin/redstarlib/manager/LoggerManager.java b/src/main/java/top/redstarmc/plugin/redstarlib/manager/LoggerManager.java
new file mode 100644
index 0000000..7e50c5f
--- /dev/null
+++ b/src/main/java/top/redstarmc/plugin/redstarlib/manager/LoggerManager.java
@@ -0,0 +1,110 @@
+package top.redstarmc.plugin.redstarlib.manager;
+
+import org.bukkit.Bukkit;
+import top.redstarmc.plugin.redstarlib.utils.toStrings;
+
+public abstract class LoggerManager {
+
+ public String INFO_PREFIX;
+
+ public LoggerManager(String INFO_PREFIX) {
+ this.INFO_PREFIX = INFO_PREFIX;
+ }
+
+ public boolean debugMode;
+
+ /**
+ * 发送插件普通信息
+ * @param messages 字符串
+ */
+ public final void info(String... messages) {
+ if (messages == null) return;
+ for (String message : messages) {
+ if (message == null) continue;
+ Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§a[INFO] §r" + message + "§r");
+ }
+ }
+
+ /**
+ * 发送插件格式化信息
+ * @param messages 字符串
+ * @param objects 传入的格式化内容
+ */
+ public final void info(String messages,Object... objects) {
+ if (messages == null) return;
+ Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§a[INFO] §r" + toStrings.format(messages,objects) + "§r");
+ }
+
+ /**
+ * 发送插件警告信息
+ * @param messages 字符串
+ */
+ public final void warn(String... messages) {
+ if (messages == null) return;
+ for (String message : messages) {
+ if (message == null) continue;
+ Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§e[WARN] §r" + message + "§r");
+ }
+ }
+
+ /**
+ * 发送插件错误信息
+ * @param messages 字符串
+ */
+ public final void error(String... messages) {
+ if (messages == null) return;
+ for (String message : messages) {
+ if (message == null) continue;
+ Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§c[ERROR] §r" + message + "§r");
+ }
+ }
+
+ /**
+ * 发送插件debug信息
+ * @param messages 字符串
+ */
+ public final void debug(String... messages) {
+ if (messages == null) return;
+ if (isDebugMode()) {
+ for (String message : messages) {
+ if (message == null) continue;
+ Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§6[DEBUG] §r" + message + "§r");
+ }
+ }
+ }
+
+ /**
+ * 发送插件debug堆栈
+ * @param e 堆栈
+ */
+ public final void debug(Throwable e) {
+ if (e == null) return;
+ if (isDebugMode())
+ e.printStackTrace();
+ }
+
+ /**
+ * 同时发送插件debug信息和堆栈
+ * @param e 堆栈
+ * @param msg 字符串
+ */
+ public final void debug(String msg, Throwable e) {
+ if (msg == null || e == null) return;
+ if (isDebugMode()) {
+ debug(msg);
+ debug(e);
+ }
+ }
+
+
+
+
+ public String getINFO_PREFIX() {
+ return INFO_PREFIX;
+ }
+
+ public boolean isDebugMode() {
+ return debugMode;
+ }
+
+}
diff --git a/src/main/java/top/redstarmc/plugin/redstarlib/manager/ServerManager.java b/src/main/java/top/redstarmc/plugin/redstarlib/manager/ServerManager.java
index 085dd89..1b919d8 100644
--- a/src/main/java/top/redstarmc/plugin/redstarlib/manager/ServerManager.java
+++ b/src/main/java/top/redstarmc/plugin/redstarlib/manager/ServerManager.java
@@ -1,113 +1,40 @@
package top.redstarmc.plugin.redstarlib.manager;
import org.bukkit.Bukkit;
-import top.redstarmc.plugin.redstarlib.utils.toStrings;
public abstract class ServerManager {
- public static String INFO_PREFIX;
+ public String INFO_PREFIX;
- /**
- * 向服务器发送插件消息
- * 抽象方法,需要子类实现具体操作
- * @param messages 信息字符串
- */
- public abstract void broadcast(String... messages);
+ public ServerManager(String INFO_PREFIX) {
+ this.INFO_PREFIX = INFO_PREFIX;
+ }
/**
- * 发送带前缀的插件消息
+ * 向服务器发送聊天栏消息
* @param messages 信息字符串
*/
- public void broadcastPrefix(String... messages) {
- if (messages == null) return;
+ public void broadcast(String... messages) {
for (String message : messages) {
- if (message == null) continue;
- broadcast(INFO_PREFIX + message + "§r");
+ Bukkit.broadcastMessage(message);
}
}
/**
- * 发送插件普通信息
- * @param messages 字符串
+ * 发送带前缀的聊天栏消息
+ * @param messages 信息字符串
*/
- public final void info(String... messages) {
+ public void broadcastPrefix(String... messages) {
if (messages == null) return;
for (String message : messages) {
if (message == null) continue;
- Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§a[INFO] §r" + message + "§r");
+ broadcast(INFO_PREFIX + message + "§r");
}
}
- /**
- * 发送插件格式化信息
- * @param messages 字符串
- * @param objects 传入的格式化内容
- */
- public final void info(String messages,Object... objects) {
- if (messages == null) return;
- Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§a[INFO] §r" + toStrings.format(messages,objects) + "§r");
- }
- /**
- * 发送插件警告信息
- * @param messages 字符串
- */
- public final void warn(String... messages) {
- if (messages == null) return;
- for (String message : messages) {
- if (message == null) continue;
- Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§e[WARN] §r" + message + "§r");
- }
- }
- /**
- * 发送插件错误信息
- * @param messages 字符串
- */
- public final void error(String... messages) {
- if (messages == null) return;
- for (String message : messages) {
- if (message == null) continue;
- Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§c[ERROR] §r" + message + "§r");
- }
- }
-// /**
-// * 发送插件debug信息
-// * @param messages 字符串
-// */
-// public final void debug(String... messages) {
-// if (messages == null) return;
-// if (ConfigManager.getConfigManager().isDebugMode()) {
-// for (String message : messages) {
-// if (message == null) continue;
-// Bukkit.getConsoleSender().sendMessage(INFO_PREFIX + "§6[DEBUG] §r" + message + "§r");
-// }
-// }
-// }
-//
-// /**
-// * 发送插件debug堆栈
-// * @param e 堆栈
-// */
-// public final void debug(Throwable e) {
-// if (e == null) return;
-// if (ConfigurationManager())
-// e.printStackTrace();
-// }
-//
-// /**
-// * 同时发送插件debug信息和堆栈
-// * @param e 堆栈
-// * @param msg 字符串
-// */
-// public final void debug(String msg, Throwable e) {
-// if (msg == null || e == null) return;
-// if (ConfigManager.getConfigManager().isDebugMode()) {
-// debug(msg);
-// debug(e);
-// }
-// }
diff --git a/src/main/java/top/redstarmc/plugin/redstarlib/package-info.java b/src/main/java/top/redstarmc/plugin/redstarlib/package-info.java
new file mode 100644
index 0000000..b13b17e
--- /dev/null
+++ b/src/main/java/top/redstarmc/plugin/redstarlib/package-info.java
@@ -0,0 +1,4 @@
+/**
+ * 项目根目录,所有的项目代码都在这里
+ */
+package top.redstarmc.plugin.redstarlib;