diff --git a/.github/workflows/develop.yml b/.github/workflows/develop.yml
index d88a14a..81b4389 100644
--- a/.github/workflows/develop.yml
+++ b/.github/workflows/develop.yml
@@ -15,7 +15,7 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-java@v3
with:
- java-version: '16'
+ java-version: '18'
distribution: 'adopt'
- name: Build with Maven
run: mvn --batch-mode package
@@ -23,4 +23,25 @@ jobs:
uses: actions/upload-artifact@v1
with:
name: ELDependenci-SQL
- path: ./eldependenci-sql-plugin/target/
\ No newline at end of file
+ path: ./eldependenci-sql-plugin/target/
+
+ publish:
+ runs-on: ubuntu-latest
+ needs: [ build_plugin ]
+ permissions:
+ contents: read
+ packages: write
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-java@v2
+ with:
+ java-version: '18'
+ distribution: 'adopt'
+ - run: echo ::set-output name=version::$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
+ id: project
+ - run: echo "maven version = ${{steps.project.outputs.version}}"
+ - name: Publish package
+ run: mvn --batch-mode clean deploy
+ if: ${{ endsWith(steps.project.outputs.version, '-SNAPSHOT') }}
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml
index c0a9a65..b801c6e 100644
--- a/.github/workflows/publish.yml
+++ b/.github/workflows/publish.yml
@@ -1,7 +1,5 @@
env:
- version: 0.0.5 # 你的版本名稱
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- plugin_name: "eldependenci-sql-plugin"
name: Publish Process
@@ -20,8 +18,8 @@ jobs:
uses: actions/checkout@v2
- uses: eric2788/maven-jar-publish@v2
with:
- java-version: 16
- body: 版本更新請到[這裏](https://eric2788.gitbook.io/eldependenci-sql/references/update/v0.0.5)查看。
+ java-version: 18
+ body: 版本更新請到[這裏](https://eric2788.gitbook.io/eldependenci-sql/references/update/v0.0.6)查看。
upload-module: './eldependenci-sql-plugin'
- name: 'Update javadocs'
id: update-javadoc
@@ -39,9 +37,9 @@ jobs:
- uses: actions/checkout@v2
- uses: actions/setup-java@v2
with:
- java-version: '16'
+ java-version: '18'
distribution: 'adopt'
- name: Publish package
- run: mvn --batch-mode deploy
+ run: mvn --batch-mode clean deploy
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index e483059..a800a08 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,4 +4,5 @@
*.iml
**/*.iml
/javadocs/
-**/dependency-reduced-pom.xml
\ No newline at end of file
+**/dependency-reduced-pom.xml
+.vscode
\ No newline at end of file
diff --git a/eldependenci-sql-plugin/pom.xml b/eldependenci-sql-plugin/pom.xml
index 44f292c..03e9651 100644
--- a/eldependenci-sql-plugin/pom.xml
+++ b/eldependenci-sql-plugin/pom.xml
@@ -10,9 +10,21 @@
4.0.0
eldependenci-sql-plugin
- ${project.parent.version}
+ 0.2.2-SNAPSHOST
+
+ org.eldependenci
+ eldependenci-bungee
+
+
+ io.papermc.paper
+ paper-api
+
+
+ io.github.waterfallmc
+ waterfall-api
+
org.eldependenci
eldependenci-sql
@@ -21,7 +33,7 @@
org.eldependenci
- eldependenci-framework
+ eldependenci-bukkit
org.eldependenci
diff --git a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/ELDSQLInstallation.java b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/ELDSQLInstallation.java
index 1df52c8..0e99b18 100644
--- a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/ELDSQLInstallation.java
+++ b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/ELDSQLInstallation.java
@@ -1,6 +1,5 @@
package chu77.eldependenci.sql;
-import chu77.eldependenci.sql.config.Dbconfig;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import org.hibernate.dialect.Dialect;
diff --git a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/SQLAddonRegistry.java b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/SQLAddonRegistry.java
deleted file mode 100644
index 5c110f0..0000000
--- a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/SQLAddonRegistry.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package chu77.eldependenci.sql;
-
-import com.ericlam.mc.eld.registrations.CommandRegistry;
-import com.ericlam.mc.eld.registrations.ComponentsRegistry;
-import com.ericlam.mc.eld.registrations.ListenerRegistry;
-
-public class SQLAddonRegistry implements ComponentsRegistry {
- @Override
- public void registerCommand(CommandRegistry commandRegistry) {
- }
-
- @Override
- public void registerListeners(ListenerRegistry listenerRegistry) {
- }
-}
diff --git a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/SQLAddon.java b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/ServiceCollectionBinder.java
similarity index 52%
rename from eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/SQLAddon.java
rename to eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/ServiceCollectionBinder.java
index c19fbff..0430b03 100644
--- a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/SQLAddon.java
+++ b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/ServiceCollectionBinder.java
@@ -1,6 +1,5 @@
package chu77.eldependenci.sql;
-
import chu77.eldependenci.sql.config.Dbconfig;
import chu77.eldependenci.sql.jpa.JpaRepositoryModule;
import chu77.eldependenci.sql.manager.JpaFactoryManager;
@@ -9,23 +8,15 @@
import chu77.eldependenci.sql.manager.datasource.ELDDataSourceFactory;
import chu77.eldependenci.sql.manager.datasource.MySQLDataSource;
import chu77.eldependenci.sql.manager.datasource.SQLiteDataSource;
-import com.ericlam.mc.eld.AddonManager;
-import com.ericlam.mc.eld.ELDBukkitAddon;
-import com.ericlam.mc.eld.ManagerProvider;
+import com.ericlam.mc.eld.AddonInstallation;
+import com.ericlam.mc.eld.MCPlugin;
import com.ericlam.mc.eld.ServiceCollection;
-import com.ericlam.mc.eld.annotations.ELDPlugin;
-import java.io.File;
import java.util.Map;
-@ELDPlugin(
- lifeCycle = SQLAddonLifecycle.class,
- registry = SQLAddonRegistry.class
-)
-public class SQLAddon extends ELDBukkitAddon {
+public class ServiceCollectionBinder {
- @Override
- protected void bindServices(ServiceCollection serviceCollection) {
+ public static void bind(ServiceCollection serviceCollection, MCPlugin plugin){
serviceCollection.addConfiguration(Dbconfig.class);
serviceCollection.addServices(ELDDataSourceFactory.class, Map.of(
@@ -36,16 +27,13 @@ protected void bindServices(ServiceCollection serviceCollection) {
serviceCollection.bindService(SQLService.class, SQLDataSourceManager.class);
serviceCollection.addSingleton(JpaFactoryManager.class);
- }
- @Override
- protected void preAddonInstall(ManagerProvider managerProvider, AddonManager moduleInstaller) {
- File prop = new File(getDataFolder(), "hibernate.properties");
- if (!prop.exists()) saveResource("hibernate.properties", true);
- ELDSQLInstallation eldsqlInstallation = new ELDSQLInstallation();
- moduleInstaller.customInstallation(SQLInstallation.class, eldsqlInstallation);
- moduleInstaller.installModule(new JpaRepositoryModule(eldsqlInstallation));
- }
-}
+ var sqlInstaller = new ELDSQLInstallation();
+ AddonInstallation addon = serviceCollection.getInstallation(AddonInstallation.class);
+ addon.customInstallation(SQLInstallation.class, sqlInstaller);
+ addon.installModule(new JpaRepositoryModule(sqlInstaller, plugin));
+
+ }
+}
diff --git a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bukkit/SQLAddon.java b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bukkit/SQLAddon.java
new file mode 100644
index 0000000..f099b41
--- /dev/null
+++ b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bukkit/SQLAddon.java
@@ -0,0 +1,31 @@
+package chu77.eldependenci.sql.bukkit;
+
+
+import chu77.eldependenci.sql.ServiceCollectionBinder;
+import com.ericlam.mc.eld.BukkitManagerProvider;
+import com.ericlam.mc.eld.ELDBukkit;
+import com.ericlam.mc.eld.ELDBukkitPlugin;
+import com.ericlam.mc.eld.ServiceCollection;
+
+import java.io.File;
+
+@ELDBukkit(
+ lifeCycle = SQLAddonLifecycle.class,
+ registry = SQLAddonRegistry.class
+)
+public class SQLAddon extends ELDBukkitPlugin {
+
+ @Override
+ public void bindServices(ServiceCollection serviceCollection) {
+ ServiceCollectionBinder.bind(serviceCollection, this);
+ }
+
+
+ @Override
+ protected void manageProvider(BukkitManagerProvider bukkitManagerProvider) {
+ File file = new File(getDataFolder(), "hibernate.properties");
+ if (!file.exists()) saveResource("hibernate.properties");
+ }
+}
+
+
diff --git a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/SQLAddonLifecycle.java b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bukkit/SQLAddonLifecycle.java
similarity index 74%
rename from eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/SQLAddonLifecycle.java
rename to eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bukkit/SQLAddonLifecycle.java
index a4386a2..5c35485 100644
--- a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/SQLAddonLifecycle.java
+++ b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bukkit/SQLAddonLifecycle.java
@@ -1,6 +1,6 @@
-package chu77.eldependenci.sql;
+package chu77.eldependenci.sql.bukkit;
-import com.ericlam.mc.eld.ELDLifeCycle;
+import com.ericlam.mc.eld.bukkit.ELDLifeCycle;
import org.bukkit.plugin.java.JavaPlugin;
public class SQLAddonLifecycle implements ELDLifeCycle {
diff --git a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bukkit/SQLAddonRegistry.java b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bukkit/SQLAddonRegistry.java
new file mode 100644
index 0000000..16df988
--- /dev/null
+++ b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bukkit/SQLAddonRegistry.java
@@ -0,0 +1,21 @@
+package chu77.eldependenci.sql.bukkit;
+
+import com.ericlam.mc.eld.bukkit.CommandNode;
+import com.ericlam.mc.eld.bukkit.ComponentsRegistry;
+import com.ericlam.mc.eld.registration.CommandRegistry;
+import com.ericlam.mc.eld.registration.ListenerRegistry;
+import org.bukkit.event.Listener;
+
+public class SQLAddonRegistry implements ComponentsRegistry {
+
+
+ @Override
+ public void registerCommand(CommandRegistry commandRegistry) {
+
+ }
+
+ @Override
+ public void registerListeners(ListenerRegistry listenerRegistry) {
+
+ }
+}
diff --git a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bungee/SQLAddon.java b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bungee/SQLAddon.java
new file mode 100644
index 0000000..86d4df1
--- /dev/null
+++ b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bungee/SQLAddon.java
@@ -0,0 +1,29 @@
+package chu77.eldependenci.sql.bungee;
+
+import chu77.eldependenci.sql.ServiceCollectionBinder;
+import com.ericlam.mc.eld.BungeeManageProvider;
+import com.ericlam.mc.eld.ELDBungee;
+import com.ericlam.mc.eld.ELDBungeePlugin;
+import com.ericlam.mc.eld.ServiceCollection;
+
+import java.io.File;
+
+@ELDBungee(
+ registry = SQLAddonRegistry.class,
+ lifeCycle = SQLAddonLifecycle.class
+)
+public class SQLAddon extends ELDBungeePlugin {
+
+ @Override
+ public void bindServices(ServiceCollection serviceCollection) {
+ ServiceCollectionBinder.bind(serviceCollection, this);
+ }
+
+ @Override
+ protected void manageProvider(BungeeManageProvider bungeeManageProvider) {
+ File file = new File(getDataFolder(), "hibernate.properties");
+ if (!file.exists()) saveResource("hibernate.properties");
+ }
+
+
+}
diff --git a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bungee/SQLAddonLifecycle.java b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bungee/SQLAddonLifecycle.java
new file mode 100644
index 0000000..3095116
--- /dev/null
+++ b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bungee/SQLAddonLifecycle.java
@@ -0,0 +1,16 @@
+package chu77.eldependenci.sql.bungee;
+
+import com.ericlam.mc.eld.bungee.ELDLifeCycle;
+import net.md_5.bungee.api.plugin.Plugin;
+
+public class SQLAddonLifecycle implements ELDLifeCycle {
+ @Override
+ public void onEnable(Plugin plugin) {
+
+ }
+
+ @Override
+ public void onDisable(Plugin plugin) {
+
+ }
+}
diff --git a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bungee/SQLAddonRegistry.java b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bungee/SQLAddonRegistry.java
new file mode 100644
index 0000000..502f13b
--- /dev/null
+++ b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/bungee/SQLAddonRegistry.java
@@ -0,0 +1,21 @@
+package chu77.eldependenci.sql.bungee;
+
+import com.ericlam.mc.eld.bungee.CommandNode;
+import com.ericlam.mc.eld.bungee.ComponentsRegistry;
+import com.ericlam.mc.eld.registration.CommandRegistry;
+import com.ericlam.mc.eld.registration.ListenerRegistry;
+import net.md_5.bungee.api.plugin.Listener;
+
+public class SQLAddonRegistry implements ComponentsRegistry {
+
+
+ @Override
+ public void registerCommand(CommandRegistry commandRegistry) {
+
+ }
+
+ @Override
+ public void registerListeners(ListenerRegistry listenerRegistry) {
+
+ }
+}
diff --git a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/jpa/JpaRepositoryModule.java b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/jpa/JpaRepositoryModule.java
index 0e95347..6ff41db 100644
--- a/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/jpa/JpaRepositoryModule.java
+++ b/eldependenci-sql-plugin/src/main/java/chu77/eldependenci/sql/jpa/JpaRepositoryModule.java
@@ -2,23 +2,24 @@
import chu77.eldependenci.sql.ELDSQLInstallation;
import chu77.eldependenci.sql.manager.datasource.EntityManagerProvider;
+import com.ericlam.mc.eld.MCPlugin;
import com.google.inject.AbstractModule;
-import com.google.inject.Provides;
import com.google.inject.Scopes;
import com.google.inject.TypeLiteral;
import com.google.inject.name.Names;
import javax.persistence.EntityManager;
-import javax.sql.DataSource;
import java.util.Map;
import java.util.Set;
public final class JpaRepositoryModule extends AbstractModule {
private final ELDSQLInstallation eldsqlInstallation;
+ private final MCPlugin plugin;
- public JpaRepositoryModule(ELDSQLInstallation eldsqlInstallation) {
+ public JpaRepositoryModule(ELDSQLInstallation eldsqlInstallation, MCPlugin plugin) {
this.eldsqlInstallation = eldsqlInstallation;
+ this.plugin = plugin;
}
@Override
@@ -28,6 +29,7 @@ protected void configure() {
eldsqlInstallation.getRepositories().forEach(re -> bind(re).toProvider(new RepositoryProvider<>(re)));
bind(new TypeLiteral>>(){}).annotatedWith(Names.named("jpa-entities")).toInstance(eldsqlInstallation.getEntitySet());
bind(new TypeLiteral