mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2024-09-28 22:47:38 +02:00
Theme and Config related things initialized by Dagger, module cleanup
This commit is contained in:
parent
63b1419b12
commit
93aa208472
@ -22,14 +22,13 @@ package com.djrapitops.plan;
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.command.PlanCommand;
|
||||
import com.djrapitops.plan.modules.APFModule;
|
||||
import com.djrapitops.plan.modules.common.LocaleModule;
|
||||
import com.djrapitops.plan.modules.server.ServerAPIModule;
|
||||
import com.djrapitops.plan.modules.server.ServerDataCacheModule;
|
||||
import com.djrapitops.plan.modules.server.ServerInfoSystemModule;
|
||||
import com.djrapitops.plan.modules.server.bukkit.BukkitConfigModule;
|
||||
import com.djrapitops.plan.modules.server.bukkit.BukkitDatabaseModule;
|
||||
import com.djrapitops.plan.modules.FileSystemModule;
|
||||
import com.djrapitops.plan.modules.SuperClassBindingModule;
|
||||
import com.djrapitops.plan.modules.SystemObjectBindingModule;
|
||||
import com.djrapitops.plan.modules.server.ServerSuperClassBindingModule;
|
||||
import com.djrapitops.plan.modules.server.bukkit.BukkitInfoModule;
|
||||
import com.djrapitops.plan.system.BukkitSystem;
|
||||
import com.djrapitops.plan.modules.server.bukkit.BukkitSuperClassBindingModule;
|
||||
import com.djrapitops.plan.system.PlanSystem;
|
||||
import com.djrapitops.plan.system.locale.Locale;
|
||||
import com.djrapitops.plan.system.locale.lang.PluginLang;
|
||||
import com.djrapitops.plan.system.processing.importing.ImporterManager;
|
||||
@ -56,20 +55,19 @@ import java.util.logging.Logger;
|
||||
@Singleton
|
||||
@Component(modules = {
|
||||
BukkitPlanModule.class,
|
||||
SuperClassBindingModule.class,
|
||||
SystemObjectBindingModule.class,
|
||||
APFModule.class,
|
||||
BukkitConfigModule.class,
|
||||
LocaleModule.class,
|
||||
FileSystemModule.class,
|
||||
BukkitInfoModule.class,
|
||||
BukkitDatabaseModule.class,
|
||||
ServerDataCacheModule.class,
|
||||
ServerInfoSystemModule.class,
|
||||
ServerAPIModule.class
|
||||
ServerSuperClassBindingModule.class,
|
||||
BukkitSuperClassBindingModule.class
|
||||
})
|
||||
interface PlanComponent {
|
||||
|
||||
PlanCommand planCommand();
|
||||
|
||||
BukkitSystem system();
|
||||
PlanSystem system();
|
||||
|
||||
@Component.Builder
|
||||
interface Builder {
|
||||
@ -104,7 +102,7 @@ class BukkitPlanModule {
|
||||
*/
|
||||
public class Plan extends BukkitPlugin implements PlanPlugin {
|
||||
|
||||
private BukkitSystem system;
|
||||
private PlanSystem system;
|
||||
private Locale locale;
|
||||
|
||||
/**
|
||||
@ -220,7 +218,7 @@ public class Plan extends BukkitPlugin implements PlanPlugin {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BukkitSystem getSystem() {
|
||||
public PlanSystem getSystem() {
|
||||
return system;
|
||||
}
|
||||
}
|
@ -7,9 +7,12 @@ package com.djrapitops.plan;
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.command.PlanBungeeCommand;
|
||||
import com.djrapitops.plan.modules.APFModule;
|
||||
import com.djrapitops.plan.modules.bungee.*;
|
||||
import com.djrapitops.plan.modules.common.LocaleModule;
|
||||
import com.djrapitops.plan.system.BungeeSystem;
|
||||
import com.djrapitops.plan.modules.FileSystemModule;
|
||||
import com.djrapitops.plan.modules.SuperClassBindingModule;
|
||||
import com.djrapitops.plan.modules.SystemObjectBindingModule;
|
||||
import com.djrapitops.plan.modules.bungee.BungeeInfoModule;
|
||||
import com.djrapitops.plan.modules.bungee.BungeeSuperClassBindingModule;
|
||||
import com.djrapitops.plan.system.PlanSystem;
|
||||
import com.djrapitops.plan.system.locale.Locale;
|
||||
import com.djrapitops.plan.system.locale.lang.PluginLang;
|
||||
import com.djrapitops.plan.system.settings.theme.PlanColorScheme;
|
||||
@ -33,20 +36,18 @@ import java.io.InputStream;
|
||||
@Singleton
|
||||
@Component(modules = {
|
||||
BungeePlanModule.class,
|
||||
SuperClassBindingModule.class,
|
||||
SystemObjectBindingModule.class,
|
||||
APFModule.class,
|
||||
BungeeConfigModule.class,
|
||||
LocaleModule.class,
|
||||
BungeeInfoSystemModule.class,
|
||||
BungeeInfoModule.class,
|
||||
BungeeDataCacheModule.class,
|
||||
BungeeDatabaseModule.class,
|
||||
BungeeAPIModule.class
|
||||
FileSystemModule.class,
|
||||
BungeeSuperClassBindingModule.class,
|
||||
BungeeInfoModule.class
|
||||
})
|
||||
interface PlanBungeeComponent {
|
||||
|
||||
PlanBungeeCommand planCommand();
|
||||
|
||||
BungeeSystem system();
|
||||
PlanSystem system();
|
||||
|
||||
@Component.Builder
|
||||
interface Builder {
|
||||
@ -80,7 +81,7 @@ class BungeePlanModule {
|
||||
*/
|
||||
public class PlanBungee extends BungeePlugin implements PlanPlugin {
|
||||
|
||||
private BungeeSystem system;
|
||||
private PlanSystem system;
|
||||
private Locale locale;
|
||||
|
||||
public static PlanBungee getInstance() {
|
||||
@ -146,7 +147,7 @@ public class PlanBungee extends BungeePlugin implements PlanPlugin {
|
||||
}
|
||||
|
||||
@Override
|
||||
public BungeeSystem getSystem() {
|
||||
public PlanSystem getSystem() {
|
||||
return system;
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,7 @@ import java.io.InputStream;
|
||||
* @author Rsl1122
|
||||
*/
|
||||
public interface PlanPlugin extends IPlugin {
|
||||
@Deprecated
|
||||
static PlanPlugin getInstance() {
|
||||
boolean bukkitAvailable = Check.isBukkitAvailable();
|
||||
boolean bungeeAvailable = Check.isBungeeAvailable();
|
||||
|
@ -3,14 +3,13 @@ package com.djrapitops.plan;
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.command.PlanCommand;
|
||||
import com.djrapitops.plan.modules.APFModule;
|
||||
import com.djrapitops.plan.modules.common.LocaleModule;
|
||||
import com.djrapitops.plan.modules.server.ServerAPIModule;
|
||||
import com.djrapitops.plan.modules.server.ServerDataCacheModule;
|
||||
import com.djrapitops.plan.modules.server.ServerInfoSystemModule;
|
||||
import com.djrapitops.plan.modules.server.bukkit.BukkitConfigModule;
|
||||
import com.djrapitops.plan.modules.server.sponge.SpongeDatabaseModule;
|
||||
import com.djrapitops.plan.modules.FileSystemModule;
|
||||
import com.djrapitops.plan.modules.SuperClassBindingModule;
|
||||
import com.djrapitops.plan.modules.SystemObjectBindingModule;
|
||||
import com.djrapitops.plan.modules.server.ServerSuperClassBindingModule;
|
||||
import com.djrapitops.plan.modules.server.sponge.SpongeInfoModule;
|
||||
import com.djrapitops.plan.system.SpongeSystem;
|
||||
import com.djrapitops.plan.modules.server.sponge.SpongeSuperClassBindingModule;
|
||||
import com.djrapitops.plan.system.PlanSystem;
|
||||
import com.djrapitops.plan.system.locale.Locale;
|
||||
import com.djrapitops.plan.system.locale.lang.PluginLang;
|
||||
import com.djrapitops.plan.system.settings.theme.PlanColorScheme;
|
||||
@ -44,20 +43,19 @@ import java.io.InputStream;
|
||||
@Singleton
|
||||
@Component(modules = {
|
||||
SpongePlanModule.class,
|
||||
SuperClassBindingModule.class,
|
||||
SystemObjectBindingModule.class,
|
||||
APFModule.class,
|
||||
BukkitConfigModule.class,
|
||||
LocaleModule.class,
|
||||
SpongeDatabaseModule.class,
|
||||
ServerDataCacheModule.class,
|
||||
ServerInfoSystemModule.class,
|
||||
SpongeInfoModule.class,
|
||||
ServerAPIModule.class,
|
||||
FileSystemModule.class,
|
||||
ServerSuperClassBindingModule.class,
|
||||
SpongeSuperClassBindingModule.class,
|
||||
SpongeInfoModule.class
|
||||
})
|
||||
interface PlanSpongeComponent {
|
||||
|
||||
PlanCommand planCommand();
|
||||
|
||||
SpongeSystem system();
|
||||
PlanSystem system();
|
||||
|
||||
@Component.Builder
|
||||
interface Builder {
|
||||
@ -96,7 +94,7 @@ public class PlanSponge extends SpongePlugin implements PlanPlugin {
|
||||
@Inject
|
||||
@ConfigDir(sharedRoot = false)
|
||||
private File dataFolder;
|
||||
private SpongeSystem system;
|
||||
private PlanSystem system;
|
||||
private Locale locale;
|
||||
|
||||
@Listener
|
||||
@ -189,7 +187,7 @@ public class PlanSponge extends SpongePlugin implements PlanPlugin {
|
||||
}
|
||||
|
||||
@Override
|
||||
public SpongeSystem getSystem() {
|
||||
public PlanSystem getSystem() {
|
||||
return system;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,26 @@
|
||||
package com.djrapitops.plan.modules;
|
||||
|
||||
import com.djrapitops.plan.system.file.FileSystem;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Named;
|
||||
import javax.inject.Singleton;
|
||||
import java.io.File;
|
||||
|
||||
/**
|
||||
* Dagger Module for the Plan FileSystem.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class FileSystemModule {
|
||||
|
||||
@Provides
|
||||
@Named("configFile")
|
||||
@Singleton
|
||||
File provideConfigFile(FileSystem fileSystem) {
|
||||
return fileSystem.getConfigFile();
|
||||
}
|
||||
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package com.djrapitops.plan.modules.server;
|
||||
package com.djrapitops.plan.modules;
|
||||
|
||||
import com.djrapitops.plan.system.cache.DataCache;
|
||||
import com.djrapitops.plan.system.cache.SessionCache;
|
||||
@ -8,12 +8,12 @@ import dagger.Provides;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger module for Server CacheSystem.
|
||||
* Module for binding instances of implementations to super classes.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class ServerDataCacheModule {
|
||||
public class SuperClassBindingModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
@ -0,0 +1,40 @@
|
||||
package com.djrapitops.plan.modules;
|
||||
|
||||
import com.djrapitops.plan.data.plugin.PluginsConfigSection;
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.database.databases.Database;
|
||||
import com.djrapitops.plan.system.locale.Locale;
|
||||
import com.djrapitops.plan.system.locale.LocaleSystem;
|
||||
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Module for binding object instances found inside other systems.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class SystemObjectBindingModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
Locale provideLocale(LocaleSystem localeSystem) {
|
||||
return localeSystem.getLocale();
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
Database provideDatabase(DBSystem dbSystem) {
|
||||
return dbSystem.getActiveDatabase();
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
PluginsConfigSection providePluginsConfigSection(PlanConfig config) {
|
||||
return config.getPluginsConfigSection();
|
||||
}
|
||||
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
package com.djrapitops.plan.modules.bungee;
|
||||
|
||||
import com.djrapitops.plan.api.BungeeAPI;
|
||||
import com.djrapitops.plan.api.PlanAPI;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger module for Bungee PlanAPI.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class BungeeAPIModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
PlanAPI providePlanAPI(BungeeAPI bungeeAPI) {
|
||||
return bungeeAPI;
|
||||
}
|
||||
|
||||
}
|
@ -1,45 +0,0 @@
|
||||
package com.djrapitops.plan.modules.bungee;
|
||||
|
||||
import com.djrapitops.plan.data.plugin.PluginsConfigSection;
|
||||
import com.djrapitops.plan.system.settings.config.BungeeConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
||||
import com.djrapitops.plan.system.settings.theme.Theme;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger module for Bungee Configuration.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class BungeeConfigModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ConfigSystem provideConfigSystem(BungeeConfigSystem bungeeConfigSystem) {
|
||||
return bungeeConfigSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
PlanConfig provideConfig(ConfigSystem configSystem) {
|
||||
return configSystem.getConfig();
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
PluginsConfigSection providePluginsConfigSection(PlanConfig config) {
|
||||
return config.getPluginsConfigSection();
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
Theme provideTheme(ConfigSystem configSystem) {
|
||||
return configSystem.getTheme();
|
||||
}
|
||||
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
package com.djrapitops.plan.modules.bungee;
|
||||
|
||||
import com.djrapitops.plan.system.cache.BungeeDataCache;
|
||||
import com.djrapitops.plan.system.cache.DataCache;
|
||||
import com.djrapitops.plan.system.cache.SessionCache;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger module for Bungee CacheSystem.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class BungeeDataCacheModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
DataCache provideDataCache(BungeeDataCache bungeeDataCache) {
|
||||
return bungeeDataCache;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
SessionCache provideSessionCache(DataCache cache) {
|
||||
return cache;
|
||||
}
|
||||
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
package com.djrapitops.plan.modules.bungee;
|
||||
|
||||
import com.djrapitops.plan.system.database.BungeeDBSystem;
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.database.databases.Database;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger module for bungee database.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class BungeeDatabaseModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
DBSystem provideDatabaseSystem(BungeeDBSystem dbSystem) {
|
||||
return dbSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
Database provideDatabase(DBSystem dbSystem) {
|
||||
return dbSystem.getActiveDatabase();
|
||||
}
|
||||
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
package com.djrapitops.plan.modules.bungee;
|
||||
|
||||
import com.djrapitops.plan.system.info.BungeeInfoSystem;
|
||||
import com.djrapitops.plan.system.info.InfoSystem;
|
||||
import com.djrapitops.plan.system.info.connection.BungeeConnectionSystem;
|
||||
import com.djrapitops.plan.system.info.connection.ConnectionSystem;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger module for Bungee InfoSystem.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class BungeeInfoSystemModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
InfoSystem provideBungeeInfoSystem(BungeeInfoSystem bungeeInfoSystem) {
|
||||
return bungeeInfoSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ConnectionSystem provideBungeeConnectionSystem(BungeeConnectionSystem bungeeConnectionSystem) {
|
||||
return bungeeConnectionSystem;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
package com.djrapitops.plan.modules.bungee;
|
||||
|
||||
import com.djrapitops.plan.api.BungeeAPI;
|
||||
import com.djrapitops.plan.api.PlanAPI;
|
||||
import com.djrapitops.plan.system.database.BungeeDBSystem;
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.info.BungeeInfoSystem;
|
||||
import com.djrapitops.plan.system.info.InfoSystem;
|
||||
import com.djrapitops.plan.system.info.connection.BungeeConnectionSystem;
|
||||
import com.djrapitops.plan.system.info.connection.ConnectionSystem;
|
||||
import com.djrapitops.plan.system.listeners.BungeeListenerSystem;
|
||||
import com.djrapitops.plan.system.listeners.ListenerSystem;
|
||||
import com.djrapitops.plan.system.settings.config.BungeeConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plan.system.tasks.BungeeTaskSystem;
|
||||
import com.djrapitops.plan.system.tasks.TaskSystem;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Module for binding Bungee specific classes to the interface implementations.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class BungeeSuperClassBindingModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
PlanAPI provideBungeePlanAPI(BungeeAPI bungeeAPI) {
|
||||
return bungeeAPI;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
DBSystem provideBungeeDatabaseSystem(BungeeDBSystem dbSystem) {
|
||||
return dbSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ConfigSystem provideBungeeConfigSystem(BungeeConfigSystem bungeeConfigSystem) {
|
||||
return bungeeConfigSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
InfoSystem provideBungeeInfoSystem(BungeeInfoSystem bungeeInfoSystem) {
|
||||
return bungeeInfoSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ConnectionSystem provideBungeeConnectionSystem(BungeeConnectionSystem bungeeConnectionSystem) {
|
||||
return bungeeConnectionSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
TaskSystem provideBungeeTaskSystem(BungeeTaskSystem bungeeTaskSystem) {
|
||||
return bungeeTaskSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ListenerSystem provideBungeeListenerSystem(BungeeListenerSystem bungeeListenerSystem) {
|
||||
return bungeeListenerSystem;
|
||||
}
|
||||
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
package com.djrapitops.plan.modules.common;
|
||||
|
||||
import com.djrapitops.plan.system.locale.Locale;
|
||||
import com.djrapitops.plan.system.locale.LocaleSystem;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger Module for LocaleSystem.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class LocaleModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
Locale provideLocale(LocaleSystem localeSystem) {
|
||||
return localeSystem.getLocale();
|
||||
}
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
package com.djrapitops.plan.modules.server;
|
||||
|
||||
import com.djrapitops.plan.api.PlanAPI;
|
||||
import com.djrapitops.plan.api.ServerAPI;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger module for Server PlanAPI.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class ServerAPIModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
PlanAPI providePlanAPI(ServerAPI serverAPI) {
|
||||
return serverAPI;
|
||||
}
|
||||
|
||||
}
|
@ -1,5 +1,7 @@
|
||||
package com.djrapitops.plan.modules.server;
|
||||
|
||||
import com.djrapitops.plan.api.PlanAPI;
|
||||
import com.djrapitops.plan.api.ServerAPI;
|
||||
import com.djrapitops.plan.system.info.InfoSystem;
|
||||
import com.djrapitops.plan.system.info.ServerInfoSystem;
|
||||
import com.djrapitops.plan.system.info.connection.ConnectionSystem;
|
||||
@ -10,12 +12,18 @@ import dagger.Provides;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger module for Server InfoSystem.
|
||||
* Module for binding Server specific classes to the interface implementations.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class ServerInfoSystemModule {
|
||||
public class ServerSuperClassBindingModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
PlanAPI provideServerPlanAPI(ServerAPI serverAPI) {
|
||||
return serverAPI;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
@ -1,45 +0,0 @@
|
||||
package com.djrapitops.plan.modules.server.bukkit;
|
||||
|
||||
import com.djrapitops.plan.data.plugin.PluginsConfigSection;
|
||||
import com.djrapitops.plan.system.settings.config.BukkitConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
||||
import com.djrapitops.plan.system.settings.theme.Theme;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger module for Bukkit Configuration.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class BukkitConfigModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ConfigSystem provideConfigSystem(BukkitConfigSystem bukkitConfigSystem) {
|
||||
return bukkitConfigSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
PlanConfig provideConfig(ConfigSystem configSystem) {
|
||||
return configSystem.getConfig();
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
PluginsConfigSection providePluginsConfigSection(PlanConfig config) {
|
||||
return config.getPluginsConfigSection();
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
Theme provideTheme(ConfigSystem configSystem) {
|
||||
return configSystem.getTheme();
|
||||
}
|
||||
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
package com.djrapitops.plan.modules.server.bukkit;
|
||||
|
||||
import com.djrapitops.plan.system.database.BukkitDBSystem;
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.database.databases.Database;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger module for bukkit database.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class BukkitDatabaseModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
DBSystem provideDatabaseSystem(BukkitDBSystem dbSystem) {
|
||||
return dbSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
Database provideDatabase(DBSystem dbSystem) {
|
||||
return dbSystem.getActiveDatabase();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package com.djrapitops.plan.modules.server.bukkit;
|
||||
|
||||
import com.djrapitops.plan.system.database.BukkitDBSystem;
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.listeners.BukkitListenerSystem;
|
||||
import com.djrapitops.plan.system.listeners.ListenerSystem;
|
||||
import com.djrapitops.plan.system.settings.config.BukkitConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plan.system.tasks.BukkitTaskSystem;
|
||||
import com.djrapitops.plan.system.tasks.TaskSystem;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Module for binding Bukkit specific classes to the interface implementations.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class BukkitSuperClassBindingModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
DBSystem provideBukkitDatabaseSystem(BukkitDBSystem dbSystem) {
|
||||
return dbSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ConfigSystem provideBukkitConfigSystem(BukkitConfigSystem bukkitConfigSystem) {
|
||||
return bukkitConfigSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
TaskSystem provideBukkitTaskSystem(BukkitTaskSystem bukkitTaskSystem) {
|
||||
return bukkitTaskSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ListenerSystem provideBukkitListenerSystem(BukkitListenerSystem bukkitListenerSystem) {
|
||||
return bukkitListenerSystem;
|
||||
}
|
||||
|
||||
}
|
@ -1,38 +0,0 @@
|
||||
package com.djrapitops.plan.modules.server.sponge;
|
||||
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
||||
import com.djrapitops.plan.system.settings.config.SpongeConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.theme.Theme;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Dagger module for Sponge Configuration.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class SpongeConfigModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ConfigSystem provideConfigSystem(SpongeConfigSystem spongeConfigSystem) {
|
||||
return spongeConfigSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
PlanConfig provideConfig(ConfigSystem configSystem) {
|
||||
return configSystem.getConfig();
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
Theme provideTheme(ConfigSystem configSystem) {
|
||||
return configSystem.getTheme();
|
||||
}
|
||||
|
||||
}
|
@ -1,27 +0,0 @@
|
||||
package com.djrapitops.plan.modules.server.sponge;
|
||||
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.database.SpongeDBSystem;
|
||||
import com.djrapitops.plan.system.database.databases.Database;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
/**
|
||||
* Dagger module for sponge database.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class SpongeDatabaseModule {
|
||||
|
||||
@Provides
|
||||
DBSystem provideDatabaseSystem(SpongeDBSystem dbSystem) {
|
||||
return dbSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
Database provideDatabase(DBSystem dbSystem) {
|
||||
return dbSystem.getActiveDatabase();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,48 @@
|
||||
package com.djrapitops.plan.modules.server.sponge;
|
||||
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.database.SpongeDBSystem;
|
||||
import com.djrapitops.plan.system.listeners.ListenerSystem;
|
||||
import com.djrapitops.plan.system.listeners.SpongeListenerSystem;
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.config.SpongeConfigSystem;
|
||||
import com.djrapitops.plan.system.tasks.SpongeTaskSystem;
|
||||
import com.djrapitops.plan.system.tasks.TaskSystem;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* Module for binding Sponge specific classes to the interface implementations.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Module
|
||||
public class SpongeSuperClassBindingModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
DBSystem provideSpongeDatabaseSystem(SpongeDBSystem dbSystem) {
|
||||
return dbSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ConfigSystem provideSpongeConfigSystem(SpongeConfigSystem spongeConfigSystem) {
|
||||
return spongeConfigSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
TaskSystem provideSpongeTaskSystem(SpongeTaskSystem spongeTaskSystem) {
|
||||
return spongeTaskSystem;
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
ListenerSystem provideSpongeListenerSystem(SpongeListenerSystem spongeListenerSystem) {
|
||||
return spongeListenerSystem;
|
||||
}
|
||||
|
||||
}
|
@ -1,78 +0,0 @@
|
||||
/*
|
||||
* License is provided in the jar as LICENSE also here:
|
||||
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/LICENSE
|
||||
*/
|
||||
package com.djrapitops.plan.system;
|
||||
|
||||
import com.djrapitops.plan.Plan;
|
||||
import com.djrapitops.plan.ShutdownHook;
|
||||
import com.djrapitops.plan.api.PlanAPI;
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.data.plugin.HookHandler;
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.export.ExportSystem;
|
||||
import com.djrapitops.plan.system.file.FileSystem;
|
||||
import com.djrapitops.plan.system.info.InfoSystem;
|
||||
import com.djrapitops.plan.system.info.server.BukkitServerInfo;
|
||||
import com.djrapitops.plan.system.listeners.BukkitListenerSystem;
|
||||
import com.djrapitops.plan.system.locale.LocaleSystem;
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.network.NetworkSettings;
|
||||
import com.djrapitops.plan.system.tasks.BukkitTaskSystem;
|
||||
import com.djrapitops.plan.system.update.VersionCheckSystem;
|
||||
import com.djrapitops.plan.system.webserver.WebServerSystem;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Represents PlanSystem for Plan.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
public class BukkitSystem extends PlanSystem implements ServerSystem {
|
||||
|
||||
@Inject
|
||||
public BukkitSystem(VersionCheckSystem versionCheckSystem,
|
||||
FileSystem fileSystem,
|
||||
ConfigSystem serverConfigSystem,
|
||||
LocaleSystem localeSystem,
|
||||
InfoSystem serverInfoSystem,
|
||||
BukkitServerInfo serverInfo,
|
||||
DBSystem databaseSystem,
|
||||
WebServerSystem webServerSystem,
|
||||
BukkitListenerSystem bukkitListenerSystem,
|
||||
BukkitTaskSystem bukkitTaskSystem,
|
||||
ExportSystem exportSystem,
|
||||
HookHandler hookHandler,
|
||||
PlanAPI planAPI,
|
||||
ShutdownHook shutdownHook
|
||||
) {
|
||||
super(webServerSystem, localeSystem);
|
||||
this.versionCheckSystem = versionCheckSystem;
|
||||
this.fileSystem = fileSystem;
|
||||
this.configSystem = serverConfigSystem;
|
||||
this.exportSystem = exportSystem;
|
||||
this.databaseSystem = databaseSystem;
|
||||
listenerSystem = bukkitListenerSystem;
|
||||
taskSystem = bukkitTaskSystem;
|
||||
|
||||
infoSystem = serverInfoSystem;
|
||||
this.serverInfo = serverInfo;
|
||||
|
||||
this.hookHandler = hookHandler;
|
||||
this.planAPI = planAPI;
|
||||
|
||||
shutdownHook.register();
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static BukkitSystem getInstance() {
|
||||
return Plan.getInstance().getSystem();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enable() throws EnableException {
|
||||
super.enable();
|
||||
NetworkSettings.loadSettingsFromDB();
|
||||
}
|
||||
}
|
@ -1,83 +0,0 @@
|
||||
/*
|
||||
* License is provided in the jar as LICENSE also here:
|
||||
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/LICENSE
|
||||
*/
|
||||
package com.djrapitops.plan.system;
|
||||
|
||||
import com.djrapitops.plan.PlanBungee;
|
||||
import com.djrapitops.plan.api.PlanAPI;
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.data.plugin.HookHandler;
|
||||
import com.djrapitops.plan.system.cache.BungeeCacheSystem;
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.export.ExportSystem;
|
||||
import com.djrapitops.plan.system.file.FileSystem;
|
||||
import com.djrapitops.plan.system.info.InfoSystem;
|
||||
import com.djrapitops.plan.system.info.server.ServerInfo;
|
||||
import com.djrapitops.plan.system.listeners.BungeeListenerSystem;
|
||||
import com.djrapitops.plan.system.locale.LocaleSystem;
|
||||
import com.djrapitops.plan.system.settings.config.BungeeConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.network.NetworkSettings;
|
||||
import com.djrapitops.plan.system.tasks.BungeeTaskSystem;
|
||||
import com.djrapitops.plan.system.update.VersionCheckSystem;
|
||||
import com.djrapitops.plan.system.webserver.WebServerSystem;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Represents PlanSystem for PlanBungee.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
public class BungeeSystem extends PlanSystem {
|
||||
|
||||
@Inject
|
||||
public BungeeSystem(
|
||||
VersionCheckSystem versionCheckSystem,
|
||||
FileSystem fileSystem,
|
||||
BungeeConfigSystem bungeeConfigSystem,
|
||||
LocaleSystem localeSystem,
|
||||
InfoSystem infoSystem,
|
||||
ServerInfo serverInfo,
|
||||
BungeeCacheSystem bungeeCacheSystem,
|
||||
DBSystem databaseSystem,
|
||||
WebServerSystem webServerSystem,
|
||||
BungeeListenerSystem bungeeListenerSystem,
|
||||
BungeeTaskSystem bungeeTaskSystem,
|
||||
HookHandler hookHandler,
|
||||
ExportSystem exportSystem,
|
||||
PlanAPI planAPI
|
||||
) {
|
||||
super(webServerSystem, localeSystem);
|
||||
setTestSystem(this);
|
||||
|
||||
this.versionCheckSystem = versionCheckSystem;
|
||||
this.fileSystem = fileSystem;
|
||||
configSystem = bungeeConfigSystem;
|
||||
this.exportSystem = exportSystem;
|
||||
this.databaseSystem = databaseSystem;
|
||||
cacheSystem = bungeeCacheSystem;
|
||||
listenerSystem = bungeeListenerSystem;
|
||||
taskSystem = bungeeTaskSystem;
|
||||
|
||||
this.infoSystem = infoSystem;
|
||||
this.serverInfo = serverInfo;
|
||||
|
||||
this.hookHandler = hookHandler;
|
||||
this.planAPI = planAPI;
|
||||
}
|
||||
|
||||
public static BungeeSystem getInstance() {
|
||||
return PlanBungee.getInstance().getSystem();
|
||||
}
|
||||
|
||||
public void setDatabaseSystem(DBSystem dbSystem) {
|
||||
this.databaseSystem = dbSystem;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enable() throws EnableException {
|
||||
super.enable();
|
||||
NetworkSettings.placeSettingsToDB();
|
||||
}
|
||||
}
|
@ -4,6 +4,7 @@
|
||||
*/
|
||||
package com.djrapitops.plan.system;
|
||||
|
||||
import com.djrapitops.plan.PlanPlugin;
|
||||
import com.djrapitops.plan.api.PlanAPI;
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.data.plugin.HookHandler;
|
||||
@ -14,18 +15,16 @@ import com.djrapitops.plan.system.file.FileSystem;
|
||||
import com.djrapitops.plan.system.info.InfoSystem;
|
||||
import com.djrapitops.plan.system.info.server.ServerInfo;
|
||||
import com.djrapitops.plan.system.listeners.ListenerSystem;
|
||||
import com.djrapitops.plan.system.locale.Locale;
|
||||
import com.djrapitops.plan.system.locale.LocaleSystem;
|
||||
import com.djrapitops.plan.system.processing.Processing;
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plan.system.tasks.TaskSystem;
|
||||
import com.djrapitops.plan.system.update.VersionCheckSystem;
|
||||
import com.djrapitops.plan.system.webserver.WebServerSystem;
|
||||
import com.djrapitops.plugin.api.Check;
|
||||
import com.djrapitops.plugin.api.utility.log.Log;
|
||||
import com.djrapitops.plugin.utilities.Verify;
|
||||
|
||||
import java.util.function.Supplier;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
|
||||
/**
|
||||
* PlanSystem contains everything Plan needs to run.
|
||||
@ -34,62 +33,69 @@ import java.util.function.Supplier;
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
public abstract class PlanSystem implements SubSystem {
|
||||
@Singleton
|
||||
public class PlanSystem implements SubSystem {
|
||||
|
||||
protected static PlanSystem testSystem;
|
||||
private final FileSystem fileSystem;
|
||||
private final ConfigSystem configSystem;
|
||||
private final VersionCheckSystem versionCheckSystem;
|
||||
private final LocaleSystem localeSystem;
|
||||
private final DBSystem databaseSystem;
|
||||
private final CacheSystem cacheSystem;
|
||||
private final ListenerSystem listenerSystem;
|
||||
private final TaskSystem taskSystem;
|
||||
private final InfoSystem infoSystem;
|
||||
private final ServerInfo serverInfo;
|
||||
private final WebServerSystem webServerSystem;
|
||||
|
||||
// Initialized in this class
|
||||
private Processing processing;
|
||||
protected final WebServerSystem webServerSystem;
|
||||
protected final LocaleSystem localeSystem;
|
||||
protected CacheSystem cacheSystem;
|
||||
private final Processing processing;
|
||||
|
||||
// These need to be initialized in the sub class.
|
||||
protected VersionCheckSystem versionCheckSystem;
|
||||
protected FileSystem fileSystem;
|
||||
protected ConfigSystem configSystem;
|
||||
protected ExportSystem exportSystem;
|
||||
protected DBSystem databaseSystem;
|
||||
protected InfoSystem infoSystem;
|
||||
private final ExportSystem exportSystem;
|
||||
private final HookHandler hookHandler;
|
||||
private final PlanAPI planAPI;
|
||||
|
||||
protected ListenerSystem listenerSystem;
|
||||
protected TaskSystem taskSystem;
|
||||
protected ServerInfo serverInfo;
|
||||
|
||||
protected HookHandler hookHandler;
|
||||
|
||||
// Not a SubSystem.
|
||||
protected PlanAPI planAPI;
|
||||
|
||||
public PlanSystem(WebServerSystem webServerSystem, LocaleSystem localeSystem) {
|
||||
this.webServerSystem = webServerSystem;
|
||||
@Inject
|
||||
public PlanSystem(
|
||||
FileSystem fileSystem,
|
||||
ConfigSystem configSystem,
|
||||
VersionCheckSystem versionCheckSystem,
|
||||
LocaleSystem localeSystem,
|
||||
DBSystem databaseSystem,
|
||||
CacheSystem cacheSystem,
|
||||
ListenerSystem listenerSystem,
|
||||
TaskSystem taskSystem,
|
||||
InfoSystem infoSystem,
|
||||
ServerInfo serverInfo,
|
||||
WebServerSystem webServerSystem,
|
||||
//Processing processing,
|
||||
ExportSystem exportSystem,
|
||||
HookHandler hookHandler,
|
||||
PlanAPI planAPI
|
||||
) {
|
||||
this.fileSystem = fileSystem;
|
||||
this.configSystem = configSystem;
|
||||
this.versionCheckSystem = versionCheckSystem;
|
||||
this.localeSystem = localeSystem;
|
||||
Supplier<Locale> localeSupplier = () -> getLocaleSystem().getLocale();
|
||||
|
||||
processing = new Processing(localeSupplier);
|
||||
this.databaseSystem = databaseSystem;
|
||||
this.cacheSystem = cacheSystem;
|
||||
this.listenerSystem = listenerSystem;
|
||||
this.taskSystem = taskSystem;
|
||||
this.infoSystem = infoSystem;
|
||||
this.serverInfo = serverInfo;
|
||||
this.webServerSystem = webServerSystem;
|
||||
this.processing = new Processing(localeSystem::getLocale);
|
||||
this.exportSystem = exportSystem;
|
||||
this.hookHandler = hookHandler;
|
||||
this.planAPI = planAPI;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static PlanSystem getInstance() {
|
||||
boolean bukkitAvailable = Check.isBukkitAvailable();
|
||||
boolean bungeeAvailable = Check.isBungeeAvailable();
|
||||
boolean spongeAvailable = Check.isSpongeAvailable();
|
||||
if (bukkitAvailable && bungeeAvailable) {
|
||||
return testSystem;
|
||||
} else if (bungeeAvailable) {
|
||||
return BungeeSystem.getInstance();
|
||||
} else if (bukkitAvailable) {
|
||||
return BukkitSystem.getInstance();
|
||||
} else if (spongeAvailable) {
|
||||
return SpongeSystem.getInstance();
|
||||
}
|
||||
throw new IllegalAccessError("PlanSystem is not available on this platform.");
|
||||
return PlanPlugin.getInstance().getSystem();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enable() throws EnableException {
|
||||
checkSubSystemInitialization();
|
||||
|
||||
enableSystems(
|
||||
fileSystem,
|
||||
configSystem,
|
||||
@ -146,24 +152,6 @@ public abstract class PlanSystem implements SubSystem {
|
||||
}
|
||||
}
|
||||
|
||||
private void checkSubSystemInitialization() throws EnableException {
|
||||
try {
|
||||
Verify.nullCheck(versionCheckSystem, () -> new IllegalStateException("Version Check system was not initialized."));
|
||||
Verify.nullCheck(fileSystem, () -> new IllegalStateException("File system was not initialized."));
|
||||
Verify.nullCheck(configSystem, () -> new IllegalStateException("Config system was not initialized."));
|
||||
Verify.nullCheck(localeSystem, () -> new IllegalStateException("Locale system was not initialized."));
|
||||
Verify.nullCheck(databaseSystem, () -> new IllegalStateException("Database system was not initialized."));
|
||||
Verify.nullCheck(infoSystem, () -> new IllegalStateException("Info system was not initialized."));
|
||||
Verify.nullCheck(serverInfo, () -> new IllegalStateException("ServerInfo was not initialized."));
|
||||
Verify.nullCheck(listenerSystem, () -> new IllegalStateException("Listener system was not initialized."));
|
||||
Verify.nullCheck(taskSystem, () -> new IllegalStateException("Task system was not initialized."));
|
||||
Verify.nullCheck(hookHandler, () -> new IllegalStateException("Plugin Hooks were not initialized."));
|
||||
Verify.nullCheck(planAPI, () -> new IllegalStateException("Plan API was not initialized."));
|
||||
} catch (Exception e) {
|
||||
throw new EnableException("One of the subsystems is not initialized on enable for " + this.getClass().getSimpleName() + ": " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Accessor methods.
|
||||
|
||||
public VersionCheckSystem getVersionCheckSystem() {
|
||||
@ -218,10 +206,6 @@ public abstract class PlanSystem implements SubSystem {
|
||||
return processing;
|
||||
}
|
||||
|
||||
static void setTestSystem(PlanSystem testSystem) {
|
||||
PlanSystem.testSystem = testSystem;
|
||||
}
|
||||
|
||||
public LocaleSystem getLocaleSystem() {
|
||||
return localeSystem;
|
||||
}
|
||||
|
@ -1,80 +0,0 @@
|
||||
/*
|
||||
* License is provided in the jar as LICENSE also here:
|
||||
* https://github.com/Rsl1122/Plan-PlayerAnalytics/blob/master/Plan/src/main/resources/LICENSE
|
||||
*/
|
||||
package com.djrapitops.plan.system;
|
||||
|
||||
import com.djrapitops.plan.PlanSponge;
|
||||
import com.djrapitops.plan.ShutdownHook;
|
||||
import com.djrapitops.plan.api.PlanAPI;
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.data.plugin.HookHandler;
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.export.ExportSystem;
|
||||
import com.djrapitops.plan.system.file.FileSystem;
|
||||
import com.djrapitops.plan.system.info.InfoSystem;
|
||||
import com.djrapitops.plan.system.info.server.SpongeServerInfo;
|
||||
import com.djrapitops.plan.system.listeners.SpongeListenerSystem;
|
||||
import com.djrapitops.plan.system.locale.LocaleSystem;
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.network.NetworkSettings;
|
||||
import com.djrapitops.plan.system.tasks.SpongeTaskSystem;
|
||||
import com.djrapitops.plan.system.update.VersionCheckSystem;
|
||||
import com.djrapitops.plan.system.webserver.WebServerSystem;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* Represents PlanSystem for PlanSponge.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
public class SpongeSystem extends PlanSystem implements ServerSystem {
|
||||
|
||||
@Inject
|
||||
public SpongeSystem(PlanSponge plugin,
|
||||
VersionCheckSystem versionCheckSystem,
|
||||
FileSystem fileSystem,
|
||||
ConfigSystem serverConfigSystem,
|
||||
LocaleSystem localeSystem,
|
||||
InfoSystem serverInfoSystem,
|
||||
SpongeServerInfo serverInfo,
|
||||
DBSystem databaseSystem,
|
||||
WebServerSystem webServerSystem,
|
||||
SpongeListenerSystem spongeListenerSystem,
|
||||
SpongeTaskSystem spongeTaskSystem,
|
||||
ExportSystem exportSystem,
|
||||
HookHandler hookHandler,
|
||||
PlanAPI planAPI,
|
||||
ShutdownHook shutdownHook
|
||||
) {
|
||||
super(webServerSystem, localeSystem);
|
||||
setTestSystem(this);
|
||||
|
||||
this.versionCheckSystem = versionCheckSystem;
|
||||
this.fileSystem = fileSystem;
|
||||
this.configSystem = serverConfigSystem;
|
||||
this.exportSystem = exportSystem;
|
||||
this.databaseSystem = databaseSystem;
|
||||
listenerSystem = spongeListenerSystem;
|
||||
taskSystem = spongeTaskSystem;
|
||||
|
||||
infoSystem = serverInfoSystem;
|
||||
this.serverInfo = serverInfo;
|
||||
|
||||
this.hookHandler = hookHandler;
|
||||
this.planAPI = planAPI;
|
||||
|
||||
shutdownHook.register();
|
||||
}
|
||||
|
||||
public static SpongeSystem getInstance() {
|
||||
return PlanSponge.getInstance().getSystem();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enable() throws EnableException {
|
||||
super.enable();
|
||||
NetworkSettings.loadSettingsFromDB();
|
||||
}
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
package com.djrapitops.plan.system.database.databases;
|
||||
|
||||
import com.djrapitops.plan.api.exceptions.connection.UnsupportedTransferDatabaseException;
|
||||
import com.djrapitops.plan.api.exceptions.database.DBException;
|
||||
import com.djrapitops.plan.api.exceptions.database.DBInitException;
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
@ -69,5 +68,5 @@ public abstract class Database {
|
||||
|
||||
public abstract void scheduleClean(long delay);
|
||||
|
||||
public abstract TransferOperations transfer() throws UnsupportedTransferDatabaseException;
|
||||
public abstract TransferOperations transfer();
|
||||
}
|
||||
|
@ -93,6 +93,8 @@ public class SendDBSettingsRequest extends InfoRequestWithVariables implements S
|
||||
settings.put("WebServerPort", webServerPort);
|
||||
settings.put("ServerName", serverName);
|
||||
settings.put("ThemeBase", themeBase);
|
||||
Settings.serverSpecific().addOriginalBukkitSettings(serverUUID, settings);
|
||||
|
||||
// TODO Config
|
||||
// Settings.serverSpecific().addOriginalBukkitSettings(serverUUID, settings);
|
||||
}
|
||||
}
|
||||
|
@ -5,11 +5,11 @@
|
||||
package com.djrapitops.plan.system.settings;
|
||||
|
||||
import com.djrapitops.plan.PlanPlugin;
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plugin.api.utility.log.Log;
|
||||
import com.djrapitops.plugin.config.Config;
|
||||
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
||||
import com.djrapitops.plugin.logging.console.PluginLogger;
|
||||
import com.djrapitops.plugin.utilities.Verify;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
@ -24,9 +24,20 @@ import java.util.UUID;
|
||||
*/
|
||||
public class ServerSpecificSettings {
|
||||
|
||||
public static void updateSettings(Map<String, String> settings) {
|
||||
Log.debug("Checking new settings..");
|
||||
Config config = ConfigSystem.getConfig_Old();
|
||||
private final PluginLogger logger;
|
||||
private PlanConfig config;
|
||||
|
||||
@Inject
|
||||
public ServerSpecificSettings(PluginLogger logger) {
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
public void setConfig(PlanConfig config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
public void updateSettings(Map<String, String> settings) throws IOException {
|
||||
logger.debug("Checking new settings..");
|
||||
|
||||
boolean changedSomething = false;
|
||||
for (Map.Entry<String, String> setting : settings.entrySet()) {
|
||||
@ -42,28 +53,24 @@ public class ServerSpecificSettings {
|
||||
continue;
|
||||
}
|
||||
config.set(path, value);
|
||||
Log.debug(" " + path + ": " + value);
|
||||
logger.debug(" " + path + ": " + value);
|
||||
} catch (NullPointerException ignored) {
|
||||
}
|
||||
changedSomething = true;
|
||||
}
|
||||
|
||||
if (changedSomething) {
|
||||
try {
|
||||
config.save();
|
||||
} catch (IOException e) {
|
||||
Log.toLog(ServerSpecificSettings.class, e);
|
||||
}
|
||||
Log.info("----------------------------------");
|
||||
Log.info("The Received Bungee Settings changed the config values, restarting Plan..");
|
||||
Log.info("----------------------------------");
|
||||
config.save();
|
||||
logger.info("----------------------------------");
|
||||
logger.info("The Received Bungee Settings changed the config values, restarting Plan..");
|
||||
logger.info("----------------------------------");
|
||||
PlanPlugin.getInstance().reloadPlugin(true);
|
||||
} else {
|
||||
Log.debug("Settings up to date");
|
||||
logger.debug("Settings up to date");
|
||||
}
|
||||
}
|
||||
|
||||
private static Object getValue(String value) {
|
||||
private Object getValue(String value) {
|
||||
try {
|
||||
return Integer.parseInt(value);
|
||||
} catch (Exception ignored) {
|
||||
@ -77,19 +84,14 @@ public class ServerSpecificSettings {
|
||||
return value;
|
||||
}
|
||||
|
||||
public void addOriginalBukkitSettings(UUID serverUUID, Map<String, Object> settings) {
|
||||
try {
|
||||
Config config = ConfigSystem.getConfig_Old();
|
||||
if (!Verify.isEmpty(config.getString("Servers." + serverUUID + ".ServerName"))) {
|
||||
return;
|
||||
}
|
||||
for (Map.Entry<String, Object> entry : settings.entrySet()) {
|
||||
config.set("Servers." + serverUUID + "." + entry.getKey(), entry.getValue());
|
||||
}
|
||||
config.save();
|
||||
} catch (IOException e) {
|
||||
Log.toLog(this.getClass(), e);
|
||||
public void addOriginalBukkitSettings(UUID serverUUID, Map<String, Object> settings) throws IOException {
|
||||
if (!Verify.isEmpty(config.getString("Servers." + serverUUID + ".ServerName"))) {
|
||||
return;
|
||||
}
|
||||
for (Map.Entry<String, Object> entry : settings.entrySet()) {
|
||||
config.set("Servers." + serverUUID + "." + entry.getKey(), entry.getValue());
|
||||
}
|
||||
config.save();
|
||||
}
|
||||
|
||||
private String getPath(UUID serverUUID, Settings setting) {
|
||||
@ -111,25 +113,21 @@ public class ServerSpecificSettings {
|
||||
}
|
||||
|
||||
public boolean getBoolean(UUID serverUUID, Settings setting) {
|
||||
Config config = ConfigSystem.getConfig_Old();
|
||||
String path = getPath(serverUUID, setting);
|
||||
return config.getBoolean(path);
|
||||
}
|
||||
|
||||
public String getString(UUID serverUUID, Settings setting) {
|
||||
Config config = ConfigSystem.getConfig_Old();
|
||||
String path = getPath(serverUUID, setting);
|
||||
return config.getString(path);
|
||||
}
|
||||
|
||||
public Integer getInt(UUID serverUUID, Settings setting) {
|
||||
Config config = ConfigSystem.getConfig_Old();
|
||||
String path = getPath(serverUUID, setting);
|
||||
return config.getInt(path);
|
||||
}
|
||||
|
||||
public void set(UUID serverUUID, Settings setting, Object value) throws IOException {
|
||||
Config config = ConfigSystem.getConfig_Old();
|
||||
String path = getPath(serverUUID, setting);
|
||||
config.set(path, value);
|
||||
config.save();
|
||||
|
@ -2,7 +2,6 @@ package com.djrapitops.plan.system.settings;
|
||||
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plan.system.settings.config.Setting;
|
||||
import com.djrapitops.plugin.api.Check;
|
||||
import com.djrapitops.plugin.api.utility.log.Log;
|
||||
import com.djrapitops.plugin.config.Config;
|
||||
import com.djrapitops.plugin.utilities.Verify;
|
||||
@ -108,8 +107,6 @@ public enum Settings implements Setting {
|
||||
BUNGEE_IP("Server.IP"),
|
||||
BUNGEE_NETWORK_NAME("Network.Name");
|
||||
|
||||
private static final ServerSpecificSettings serverSpecificSettings = new ServerSpecificSettings();
|
||||
|
||||
private final String configPath;
|
||||
private Object tempValue;
|
||||
|
||||
@ -117,15 +114,6 @@ public enum Settings implements Setting {
|
||||
this.configPath = path;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static ServerSpecificSettings serverSpecific() {
|
||||
if (!Check.isBungeeAvailable()) {
|
||||
throw new IllegalStateException("Not supposed to call this method on Bukkit");
|
||||
}
|
||||
|
||||
return serverSpecificSettings;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static void save() {
|
||||
try {
|
||||
@ -198,6 +186,7 @@ public enum Settings implements Setting {
|
||||
this.tempValue = value;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public void set(Object value) {
|
||||
getConfig().set(getPath(), value);
|
||||
}
|
||||
|
@ -4,7 +4,10 @@
|
||||
*/
|
||||
package com.djrapitops.plan.system.settings.config;
|
||||
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.system.file.FileSystem;
|
||||
import com.djrapitops.plan.system.settings.theme.Theme;
|
||||
import com.djrapitops.plugin.logging.error.ErrorHandler;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
@ -21,12 +24,23 @@ import java.io.IOException;
|
||||
public class BukkitConfigSystem extends ConfigSystem {
|
||||
|
||||
@Inject
|
||||
public BukkitConfigSystem(FileSystem fileSystem) {
|
||||
super(fileSystem);
|
||||
public BukkitConfigSystem(
|
||||
FileSystem fileSystem,
|
||||
PlanConfig config,
|
||||
Theme theme,
|
||||
ErrorHandler errorHandler
|
||||
) {
|
||||
super(fileSystem, config, theme, errorHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void copyDefaults() throws IOException {
|
||||
config.copyDefaults(fileSystem.readFromResource("config.yml"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enable() throws EnableException {
|
||||
super.enable();
|
||||
config.getNetworkSettings().loadSettingsFromDB();
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,10 @@
|
||||
*/
|
||||
package com.djrapitops.plan.system.settings.config;
|
||||
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.system.file.FileSystem;
|
||||
import com.djrapitops.plan.system.settings.theme.Theme;
|
||||
import com.djrapitops.plugin.logging.error.ErrorHandler;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
@ -21,12 +24,23 @@ import java.io.IOException;
|
||||
public class BungeeConfigSystem extends ConfigSystem {
|
||||
|
||||
@Inject
|
||||
public BungeeConfigSystem(FileSystem fileSystem) {
|
||||
super(fileSystem);
|
||||
public BungeeConfigSystem(
|
||||
FileSystem fileSystem,
|
||||
PlanConfig config,
|
||||
Theme theme,
|
||||
ErrorHandler errorHandler
|
||||
) {
|
||||
super(fileSystem, config, theme, errorHandler);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void copyDefaults() throws IOException {
|
||||
config.copyDefaults(fileSystem.readFromResource("bungeeconfig.yml"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enable() throws EnableException {
|
||||
super.enable();
|
||||
config.getNetworkSettings().placeSettingsToDB();
|
||||
}
|
||||
}
|
||||
|
@ -11,6 +11,8 @@ import com.djrapitops.plan.system.file.FileSystem;
|
||||
import com.djrapitops.plan.system.settings.Settings;
|
||||
import com.djrapitops.plan.system.settings.theme.Theme;
|
||||
import com.djrapitops.plugin.api.utility.log.Log;
|
||||
import com.djrapitops.plugin.logging.L;
|
||||
import com.djrapitops.plugin.logging.error.ErrorHandler;
|
||||
import com.djrapitops.plugin.utilities.Verify;
|
||||
|
||||
import javax.inject.Singleton;
|
||||
@ -24,15 +26,20 @@ import java.io.IOException;
|
||||
@Singleton
|
||||
public abstract class ConfigSystem implements SubSystem {
|
||||
|
||||
protected FileSystem fileSystem;
|
||||
protected PlanConfig config;
|
||||
protected final FileSystem fileSystem;
|
||||
protected final PlanConfig config;
|
||||
protected final Theme theme;
|
||||
protected final ErrorHandler errorHandler;
|
||||
|
||||
public ConfigSystem(FileSystem fileSystem) {
|
||||
public ConfigSystem(
|
||||
FileSystem fileSystem,
|
||||
PlanConfig config,
|
||||
Theme theme, ErrorHandler errorHandler
|
||||
) {
|
||||
this.fileSystem = fileSystem;
|
||||
|
||||
config = new PlanConfig(fileSystem.getConfigFile());
|
||||
theme = new Theme();
|
||||
this.config = config;
|
||||
this.theme = theme;
|
||||
this.errorHandler = errorHandler;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
@ -88,7 +95,7 @@ public abstract class ConfigSystem implements SubSystem {
|
||||
try {
|
||||
config.read();
|
||||
} catch (IOException e) {
|
||||
Log.toLog(ConfigSystem.class, e);
|
||||
errorHandler.log(L.ERROR, this.getClass(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,8 +1,11 @@
|
||||
package com.djrapitops.plan.system.settings.config;
|
||||
|
||||
import com.djrapitops.plan.data.plugin.PluginsConfigSection;
|
||||
import com.djrapitops.plan.system.settings.network.NetworkSettings;
|
||||
import com.djrapitops.plugin.config.Config;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
import java.io.File;
|
||||
import java.util.List;
|
||||
|
||||
@ -14,9 +17,18 @@ import java.util.List;
|
||||
public class PlanConfig extends Config {
|
||||
|
||||
private final PluginsConfigSection pluginsConfigSection;
|
||||
private final NetworkSettings networkSettings;
|
||||
|
||||
public PlanConfig(File file) {
|
||||
@Inject
|
||||
public PlanConfig(
|
||||
@Named("configFile") File file,
|
||||
NetworkSettings networkSettings
|
||||
) {
|
||||
super(file);
|
||||
|
||||
this.networkSettings = networkSettings;
|
||||
networkSettings.setConfig(this);
|
||||
|
||||
pluginsConfigSection = new PluginsConfigSection(this);
|
||||
}
|
||||
|
||||
@ -57,4 +69,8 @@ public class PlanConfig extends Config {
|
||||
public PluginsConfigSection getPluginsConfigSection() {
|
||||
return pluginsConfigSection;
|
||||
}
|
||||
|
||||
public NetworkSettings getNetworkSettings() {
|
||||
return networkSettings;
|
||||
}
|
||||
}
|
@ -3,7 +3,9 @@ package com.djrapitops.plan.system.settings.config;
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.system.file.FileSystem;
|
||||
import com.djrapitops.plan.system.settings.Settings;
|
||||
import com.djrapitops.plan.system.settings.theme.Theme;
|
||||
import com.djrapitops.plugin.logging.console.PluginLogger;
|
||||
import com.djrapitops.plugin.logging.error.ErrorHandler;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
@ -22,8 +24,14 @@ public class SpongeConfigSystem extends BukkitConfigSystem {
|
||||
private boolean firstInstall;
|
||||
|
||||
@Inject
|
||||
public SpongeConfigSystem(FileSystem fileSystem, PluginLogger logger) {
|
||||
super(fileSystem);
|
||||
public SpongeConfigSystem(
|
||||
FileSystem fileSystem,
|
||||
PlanConfig config,
|
||||
Theme theme,
|
||||
PluginLogger logger,
|
||||
ErrorHandler errorHandler
|
||||
) {
|
||||
super(fileSystem, config, theme, errorHandler);
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
@ -31,6 +39,7 @@ public class SpongeConfigSystem extends BukkitConfigSystem {
|
||||
public void enable() throws EnableException {
|
||||
firstInstall = !fileSystem.getConfigFile().exists();
|
||||
super.enable();
|
||||
config.getNetworkSettings().loadSettingsFromDB();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -4,18 +4,22 @@
|
||||
*/
|
||||
package com.djrapitops.plan.system.settings.network;
|
||||
|
||||
import com.djrapitops.plan.api.exceptions.connection.UnsupportedTransferDatabaseException;
|
||||
import com.djrapitops.plan.api.exceptions.database.DBOpException;
|
||||
import com.djrapitops.plan.system.database.databases.Database;
|
||||
import com.djrapitops.plan.system.info.server.ServerInfo;
|
||||
import com.djrapitops.plan.system.processing.Processing;
|
||||
import com.djrapitops.plan.system.settings.ServerSpecificSettings;
|
||||
import com.djrapitops.plan.system.settings.Settings;
|
||||
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
||||
import com.djrapitops.plan.utilities.Base64Util;
|
||||
import com.djrapitops.plugin.api.Check;
|
||||
import com.djrapitops.plugin.api.utility.log.Log;
|
||||
import com.djrapitops.plugin.logging.L;
|
||||
import com.djrapitops.plugin.logging.console.PluginLogger;
|
||||
import com.djrapitops.plugin.logging.error.ErrorHandler;
|
||||
import com.djrapitops.plugin.utilities.Verify;
|
||||
import dagger.Lazy;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
@ -33,62 +37,80 @@ public class NetworkSettings {
|
||||
private static final String SPLIT = ";;SETTING;;";
|
||||
private static final String VAL_SPLIT = ";;VALUE;;";
|
||||
|
||||
@Deprecated
|
||||
public static void loadSettingsFromDB() {
|
||||
private final Lazy<Database> database;
|
||||
private final Lazy<ServerInfo> serverInfo;
|
||||
private final PluginLogger logger;
|
||||
private final ErrorHandler errorHandler;
|
||||
private final ServerSpecificSettings serverSpecificSettings;
|
||||
private PlanConfig config;
|
||||
|
||||
@Inject
|
||||
public NetworkSettings(
|
||||
ServerSpecificSettings serverSpecificSettings,
|
||||
Lazy<Database> database,
|
||||
Lazy<ServerInfo> serverInfo,
|
||||
PluginLogger logger,
|
||||
ErrorHandler errorHandler
|
||||
) {
|
||||
this.serverSpecificSettings = serverSpecificSettings;
|
||||
this.database = database;
|
||||
this.serverInfo = serverInfo;
|
||||
this.logger = logger;
|
||||
this.errorHandler = errorHandler;
|
||||
}
|
||||
|
||||
public void setConfig(PlanConfig config) {
|
||||
this.config = config;
|
||||
serverSpecificSettings.setConfig(config);
|
||||
}
|
||||
|
||||
public void loadSettingsFromDB() {
|
||||
if (Check.isBungeeAvailable()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (BUNGEE_OVERRIDE_STANDALONE_MODE.isTrue() || BUNGEE_COPY_CONFIG.isFalse()) {
|
||||
if (config.isTrue(BUNGEE_OVERRIDE_STANDALONE_MODE) || config.isFalse(BUNGEE_COPY_CONFIG)) {
|
||||
// Don't load settings if they are overridden.
|
||||
return;
|
||||
}
|
||||
|
||||
Processing.submitNonCritical(() -> {
|
||||
try {
|
||||
new NetworkSettings().loadFromDatabase();
|
||||
} catch (UnsupportedTransferDatabaseException e) {
|
||||
Log.toLog(NetworkSettings.class, e);
|
||||
}
|
||||
});
|
||||
Processing.submitNonCritical(this::loadFromDatabase);
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static void placeSettingsToDB() {
|
||||
public void placeSettingsToDB() {
|
||||
if (!Check.isBungeeAvailable()) {
|
||||
return;
|
||||
}
|
||||
|
||||
Processing.submitCritical(() -> {
|
||||
try {
|
||||
new NetworkSettings().placeToDatabase();
|
||||
} catch (DBOpException | UnsupportedTransferDatabaseException e) {
|
||||
Log.toLog(NetworkSettings.class, e);
|
||||
}
|
||||
});
|
||||
Processing.submitCritical(this::placeToDatabase);
|
||||
}
|
||||
|
||||
public void loadFromDatabase() throws UnsupportedTransferDatabaseException {
|
||||
Log.debug("NetworkSettings: Fetch Config settings from database..");
|
||||
Optional<String> encodedConfigSettings = Database.getActive().transfer().getEncodedConfigSettings();
|
||||
void loadFromDatabase() {
|
||||
logger.debug("NetworkSettings: Fetch Config settings from database..");
|
||||
Optional<String> encodedConfigSettings = database.get().transfer().getEncodedConfigSettings();
|
||||
|
||||
if (!encodedConfigSettings.isPresent()) {
|
||||
Log.debug("NetworkSettings: No Config settings in database.");
|
||||
logger.debug("NetworkSettings: No Config settings in database.");
|
||||
return;
|
||||
}
|
||||
|
||||
String configSettings = Base64Util.decode(encodedConfigSettings.get());
|
||||
Map<String, String> pathValueMap = getPathsAndValues(configSettings);
|
||||
|
||||
Log.debug("NetworkSettings: Updating Settings");
|
||||
ServerSpecificSettings.updateSettings(pathValueMap);
|
||||
logger.debug("NetworkSettings: Updating Settings");
|
||||
try {
|
||||
serverSpecificSettings.updateSettings(pathValueMap);
|
||||
} catch (IOException e) {
|
||||
errorHandler.log(L.ERROR, this.getClass(), e);
|
||||
}
|
||||
}
|
||||
|
||||
private Map<String, String> getPathsAndValues(String configSettings) {
|
||||
Map<String, String> pathValueMap = new HashMap<>();
|
||||
|
||||
Log.debug("NetworkSettings: Reading Config String..");
|
||||
logger.debug("NetworkSettings: Reading Config String..");
|
||||
String[] settings = configSettings.split(SPLIT);
|
||||
UUID thisServerUUID = ServerInfo.getServerUUID_Old();
|
||||
UUID thisServerUUID = serverInfo.get().getServerUUID();
|
||||
for (String settingAndVal : settings) {
|
||||
String[] settingValSplit = settingAndVal.split(VAL_SPLIT);
|
||||
String setting = settingValSplit[0];
|
||||
@ -110,10 +132,10 @@ public class NetworkSettings {
|
||||
return pathValueMap;
|
||||
}
|
||||
|
||||
public void placeToDatabase() throws UnsupportedTransferDatabaseException {
|
||||
void placeToDatabase() {
|
||||
Map<String, Object> configValues = getConfigValues();
|
||||
|
||||
Log.debug("NetworkSettings: Building Base64 String..");
|
||||
logger.debug("NetworkSettings: Building Base64 String..");
|
||||
StringBuilder transferBuilder = new StringBuilder();
|
||||
int size = configValues.size();
|
||||
int i = 0;
|
||||
@ -131,12 +153,12 @@ public class NetworkSettings {
|
||||
|
||||
String base64 = Base64Util.encode(transferBuilder.toString());
|
||||
|
||||
Log.debug("NetworkSettings: Saving Config settings to database..");
|
||||
Database.getActive().transfer().storeConfigSettings(base64);
|
||||
logger.debug("NetworkSettings: Saving Config settings to database..");
|
||||
database.get().transfer().storeConfigSettings(base64);
|
||||
}
|
||||
|
||||
private Map<String, Object> getConfigValues() {
|
||||
Log.debug("NetworkSettings: Loading Config Values..");
|
||||
logger.debug("NetworkSettings: Loading Config Values..");
|
||||
Map<String, Object> configValues = new HashMap<>();
|
||||
addConfigValue(configValues, DB_TYPE, "mysql");
|
||||
Settings[] sameStrings = new Settings[]{
|
||||
@ -178,11 +200,11 @@ public class NetworkSettings {
|
||||
KEEP_LOGS_DAYS,
|
||||
KEEP_INACTIVE_PLAYERS_DAYS
|
||||
};
|
||||
Log.debug("NetworkSettings: Adding Config Values..");
|
||||
logger.debug("NetworkSettings: Adding Config Values..");
|
||||
for (Settings setting : sameStrings) {
|
||||
addConfigValue(configValues, setting, setting.toString());
|
||||
addConfigValue(configValues, setting, config.getString(setting));
|
||||
}
|
||||
addConfigValue(configValues, DB_PORT, DB_PORT.getNumber());
|
||||
addConfigValue(configValues, DB_PORT, config.getNumber(DB_PORT));
|
||||
addServerSpecificValues(configValues);
|
||||
return configValues;
|
||||
}
|
||||
@ -200,13 +222,12 @@ public class NetworkSettings {
|
||||
}
|
||||
|
||||
private void addServerSpecificValues(Map<String, Object> configValues) {
|
||||
Log.debug("NetworkSettings: Adding Server-specific Config Values..");
|
||||
ServerSpecificSettings settings = Settings.serverSpecific();
|
||||
logger.debug("NetworkSettings: Adding Server-specific Config Values..");
|
||||
|
||||
for (UUID serverUUID : Database.getActive().fetch().getServerUUIDs()) {
|
||||
String theme = settings.getString(serverUUID, THEME_BASE);
|
||||
Integer port = settings.getInt(serverUUID, WEBSERVER_PORT);
|
||||
String name = settings.getString(serverUUID, SERVER_NAME);
|
||||
for (UUID serverUUID : database.get().fetch().getServerUUIDs()) {
|
||||
String theme = serverSpecificSettings.getString(serverUUID, THEME_BASE);
|
||||
Integer port = serverSpecificSettings.getInt(serverUUID, WEBSERVER_PORT);
|
||||
String name = serverSpecificSettings.getString(serverUUID, SERVER_NAME);
|
||||
|
||||
if (!Verify.isEmpty(theme)) {
|
||||
addConfigValue(configValues, serverUUID, THEME_BASE, theme);
|
||||
@ -219,4 +240,8 @@ public class NetworkSettings {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public ServerSpecificSettings getServerSpecificSettings() {
|
||||
return serverSpecificSettings;
|
||||
}
|
||||
}
|
||||
|
@ -4,14 +4,14 @@
|
||||
*/
|
||||
package com.djrapitops.plan.system.settings.theme;
|
||||
|
||||
import com.djrapitops.plan.PlanPlugin;
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.system.SubSystem;
|
||||
import com.djrapitops.plan.system.settings.Settings;
|
||||
import com.djrapitops.plan.system.settings.config.ConfigSystem;
|
||||
import com.djrapitops.plugin.api.utility.log.Log;
|
||||
import com.djrapitops.plugin.logging.console.PluginLogger;
|
||||
import com.djrapitops.plugin.utilities.Verify;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import java.io.IOException;
|
||||
|
||||
import static com.djrapitops.plan.system.settings.theme.ThemeVal.*;
|
||||
@ -23,9 +23,17 @@ import static com.djrapitops.plan.system.settings.theme.ThemeVal.*;
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Singleton
|
||||
public class Theme implements SubSystem {
|
||||
|
||||
private ThemeConfig config;
|
||||
private final ThemeConfig config;
|
||||
private final PluginLogger logger;
|
||||
|
||||
@Inject
|
||||
public Theme(ThemeConfig config, PluginLogger logger) {
|
||||
this.config = config;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static Theme getInstance() {
|
||||
@ -34,6 +42,7 @@ public class Theme implements SubSystem {
|
||||
return themeSystem;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static String getValue(ThemeVal variable) {
|
||||
try {
|
||||
return getInstance().getThemeValue(variable);
|
||||
@ -42,17 +51,17 @@ public class Theme implements SubSystem {
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
public static String replaceColors(String resourceString) {
|
||||
return getInstance().replaceThemeColors(resourceString);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void enable() throws EnableException {
|
||||
String themeName = Settings.THEME_BASE.toString();
|
||||
try {
|
||||
config = new ThemeConfig(themeName);
|
||||
config.save();
|
||||
} catch (IOException e) {
|
||||
throw new EnableException("Default theme could not be loaded.", e);
|
||||
throw new EnableException("theme.yml could not be saved.", e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,12 +80,8 @@ public class Theme implements SubSystem {
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
} catch (IllegalStateException e) {
|
||||
if (!PlanPlugin.getInstance().isReloading()) {
|
||||
Log.error("Something went wrong with getting variable " + variable.name() + " for: " + path);
|
||||
}
|
||||
} catch (Exception | NoSuchFieldError e) {
|
||||
Log.error("Something went wrong with getting variable " + variable.name() + " for: " + path);
|
||||
logger.error("Something went wrong with getting variable " + variable.name() + " for: " + path);
|
||||
}
|
||||
return variable.getDefaultValue();
|
||||
}
|
||||
|
@ -4,14 +4,18 @@
|
||||
*/
|
||||
package com.djrapitops.plan.system.settings.theme;
|
||||
|
||||
import com.djrapitops.plan.PlanPlugin;
|
||||
import com.djrapitops.plan.utilities.file.FileUtil;
|
||||
import com.djrapitops.plugin.api.config.Config;
|
||||
import com.djrapitops.plugin.api.utility.log.Log;
|
||||
import com.djrapitops.plan.system.file.FileSystem;
|
||||
import com.djrapitops.plan.system.settings.Settings;
|
||||
import com.djrapitops.plan.system.settings.config.PlanConfig;
|
||||
import com.djrapitops.plugin.config.Config;
|
||||
import com.djrapitops.plugin.config.ConfigNode;
|
||||
import com.djrapitops.plugin.logging.console.PluginLogger;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Singleton;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -19,26 +23,35 @@ import java.util.List;
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@Singleton
|
||||
public class ThemeConfig extends Config {
|
||||
|
||||
private ThemeConfig(File file, List<String> defaults) {
|
||||
super(file, defaults);
|
||||
@Inject
|
||||
public ThemeConfig(FileSystem fileSystem, PlanConfig config, PluginLogger logger) {
|
||||
this(getConfigFile(fileSystem), getDefaults(fileSystem, config, logger));
|
||||
}
|
||||
|
||||
public ThemeConfig(String fileName) throws IOException {
|
||||
this(getConfigFile(), getDefaults(fileName));
|
||||
save();
|
||||
private ThemeConfig(File configFile, List<String> defaults) {
|
||||
super(configFile, defaults);
|
||||
|
||||
if (defaults.isEmpty()) {
|
||||
ConfigNode util = new ConfigNode("", null, "");
|
||||
for (ThemeVal themeVal : ThemeVal.values()) {
|
||||
util.set(themeVal.getThemePath(), themeVal.getDefaultValue());
|
||||
}
|
||||
copyDefaults(util);
|
||||
}
|
||||
}
|
||||
|
||||
private static List<String> getDefaults(String fileName) throws IOException {
|
||||
private static List<String> getDefaults(FileSystem fileSystem, PlanConfig config, PluginLogger logger) {
|
||||
String fileName = config.getString(Settings.THEME_BASE);
|
||||
String fileLocation = getFileLocation(fileName);
|
||||
|
||||
PlanPlugin plugin = PlanPlugin.getInstance();
|
||||
try {
|
||||
return FileUtil.lines(plugin, fileLocation);
|
||||
return fileSystem.readFromResource(fileLocation);
|
||||
} catch (IOException e) {
|
||||
Log.error("Could not find theme " + fileLocation + ". Attempting to use default.");
|
||||
return FileUtil.lines(plugin, "themes/theme.yml");
|
||||
logger.error("Could not find theme " + fileLocation + ". Attempting to use default.");
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
|
||||
@ -69,15 +82,7 @@ public class ThemeConfig extends Config {
|
||||
}
|
||||
}
|
||||
|
||||
private static File getConfigFile() throws IOException {
|
||||
File folder = PlanPlugin.getInstance().getDataFolder();
|
||||
if (!folder.exists()) {
|
||||
folder.mkdirs();
|
||||
}
|
||||
File themeFile = new File(folder, "theme.yml");
|
||||
if (!themeFile.exists() && !themeFile.createNewFile()) {
|
||||
throw new FileNotFoundException("Failed to create theme.yml");
|
||||
}
|
||||
return themeFile;
|
||||
private static File getConfigFile(FileSystem fileSystem) {
|
||||
return fileSystem.getFileFromPluginFolder("theme.yml");
|
||||
}
|
||||
}
|
||||
|
@ -15,7 +15,7 @@ import utilities.Teardown;
|
||||
import utilities.mocks.BukkitMockUtil;
|
||||
|
||||
/**
|
||||
* Test for BukkitSystem.
|
||||
* Test for Bukkit PlanSystem.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@ -25,7 +25,7 @@ public class BukkitSystemTest {
|
||||
@ClassRule
|
||||
public static TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||
private static Plan planMock;
|
||||
private BukkitSystem bukkitSystem;
|
||||
private PlanSystem bukkitSystem;
|
||||
|
||||
@BeforeClass
|
||||
public static void setUpClass() throws Exception {
|
||||
|
@ -37,8 +37,8 @@ public class BungeeBukkitConnectionTest {
|
||||
@Rule
|
||||
public ExpectedException thrown = ExpectedException.none();
|
||||
|
||||
private BukkitSystem bukkitSystem;
|
||||
private BungeeSystem bungeeSystem;
|
||||
private PlanSystem bukkitSystem;
|
||||
private PlanSystem bungeeSystem;
|
||||
|
||||
private UUID bukkitUUID;
|
||||
private UUID bungeeUUID;
|
||||
|
@ -16,7 +16,7 @@ import utilities.Teardown;
|
||||
import utilities.mocks.BungeeMockUtil;
|
||||
|
||||
/**
|
||||
* Test for BukkitSystem.
|
||||
* Test for Bungee PlanSystem.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@ -28,7 +28,7 @@ public class BungeeSystemTest {
|
||||
private static PlanBungee planMock;
|
||||
@Rule
|
||||
public ExpectedException thrown = ExpectedException.none();
|
||||
private BungeeSystem bungeeSystem;
|
||||
private PlanSystem bungeeSystem;
|
||||
|
||||
@BeforeClass
|
||||
public static void setUpClass() throws Exception {
|
||||
|
@ -15,7 +15,7 @@ import utilities.Teardown;
|
||||
import utilities.mocks.SpongeMockUtil;
|
||||
|
||||
/**
|
||||
* Test for BukkitSystem.
|
||||
* Test for Sponge PlanSystem.
|
||||
*
|
||||
* @author Rsl1122
|
||||
*/
|
||||
@ -25,7 +25,7 @@ public class SpongeSystemTest {
|
||||
@ClassRule
|
||||
public static TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||
private static PlanSponge planMock;
|
||||
private SpongeSystem spongeSystem;
|
||||
private PlanSystem spongeSystem;
|
||||
|
||||
@BeforeClass
|
||||
public static void setUpClass() throws Exception {
|
||||
|
@ -2,7 +2,7 @@ package com.djrapitops.plan.system.cache;
|
||||
|
||||
import com.djrapitops.plan.Plan;
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.system.BukkitSystem;
|
||||
import com.djrapitops.plan.system.PlanSystem;
|
||||
import com.djrapitops.plan.system.settings.Settings;
|
||||
import com.djrapitops.plugin.StaticHolder;
|
||||
import org.junit.*;
|
||||
@ -45,7 +45,7 @@ public class GeolocationCacheTest {
|
||||
@Ignore
|
||||
public void testGeolocationCache() throws EnableException {
|
||||
Settings.WEBSERVER_PORT.setTemporaryValue(9005);
|
||||
BukkitSystem system = null; //TODO
|
||||
PlanSystem system = null; //TODO
|
||||
try {
|
||||
system.enable();
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
package com.djrapitops.plan.system.settings.network;
|
||||
|
||||
import com.djrapitops.plan.Plan;
|
||||
import com.djrapitops.plan.api.exceptions.connection.UnsupportedTransferDatabaseException;
|
||||
import com.djrapitops.plan.system.database.databases.sql.SQLDB;
|
||||
import com.djrapitops.plan.system.database.databases.sql.tables.ServerTable;
|
||||
import com.djrapitops.plan.system.info.server.Server;
|
||||
@ -57,8 +56,9 @@ public class NetworkSettingsTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testTransfer() throws UnsupportedTransferDatabaseException {
|
||||
NetworkSettings networkSettings = new NetworkSettings();
|
||||
@Ignore
|
||||
public void testTransfer() {
|
||||
NetworkSettings networkSettings = null; // TODO new NetworkSettings();
|
||||
networkSettings.placeToDatabase();
|
||||
networkSettings.loadFromDatabase();
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ package com.djrapitops.plan.system.webserver;
|
||||
|
||||
import com.djrapitops.plan.Plan;
|
||||
import com.djrapitops.plan.api.exceptions.connection.*;
|
||||
import com.djrapitops.plan.system.BukkitSystem;
|
||||
import com.djrapitops.plan.system.PlanSystem;
|
||||
import com.djrapitops.plan.system.settings.Settings;
|
||||
import com.djrapitops.plan.utilities.Base64Util;
|
||||
import org.junit.*;
|
||||
@ -25,7 +25,7 @@ public class HTTPSWebServerAuthTest {
|
||||
|
||||
@ClassRule
|
||||
public static TemporaryFolder temporaryFolder = new TemporaryFolder();
|
||||
private static BukkitSystem bukkitSystem;
|
||||
private static PlanSystem bukkitSystem;
|
||||
|
||||
@BeforeClass
|
||||
public static void setUpClass() throws Exception {
|
||||
|
@ -7,7 +7,7 @@ package utilities.mocks;
|
||||
import com.djrapitops.plan.Plan;
|
||||
import com.djrapitops.plan.api.exceptions.EnableException;
|
||||
import com.djrapitops.plan.api.exceptions.database.DBException;
|
||||
import com.djrapitops.plan.system.BukkitSystem;
|
||||
import com.djrapitops.plan.system.PlanSystem;
|
||||
import com.djrapitops.plan.system.database.DBSystem;
|
||||
import com.djrapitops.plan.system.database.databases.sql.SQLDB;
|
||||
import com.djrapitops.plugin.StaticHolder;
|
||||
@ -22,7 +22,7 @@ import java.io.File;
|
||||
*/
|
||||
public class SystemMockUtil {
|
||||
|
||||
private BukkitSystem bukkitSystem;
|
||||
private PlanSystem bukkitSystem;
|
||||
|
||||
public static SystemMockUtil setUp(File dataFolder) throws Exception {
|
||||
StaticHolder.saveInstance(SystemMockUtil.class, Plan.class);
|
||||
|
Loading…
Reference in New Issue
Block a user