BungeeInfoSystem initialized by Dagger

This commit is contained in:
Rsl1122 2018-08-23 09:18:04 +03:00
parent 20b651f909
commit 8d28169c6c
6 changed files with 94 additions and 35 deletions

View File

@ -7,15 +7,11 @@ 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.BungeeAPIModule;
import com.djrapitops.plan.modules.bungee.BungeeConfigModule;
import com.djrapitops.plan.modules.bungee.BungeeDatabaseModule;
import com.djrapitops.plan.modules.bungee.BungeeInfoModule;
import com.djrapitops.plan.modules.bungee.*;
import com.djrapitops.plan.modules.common.ExportModule;
import com.djrapitops.plan.modules.common.LocaleModule;
import com.djrapitops.plan.modules.common.PluginHookModule;
import com.djrapitops.plan.modules.common.VersionCheckModule;
import com.djrapitops.plan.modules.server.ServerInfoSystemModule;
import com.djrapitops.plan.system.BungeeSystem;
import com.djrapitops.plan.system.locale.Locale;
import com.djrapitops.plan.system.locale.lang.PluginLang;
@ -34,10 +30,8 @@ import dagger.Module;
import dagger.Provides;
import javax.inject.Named;
import javax.inject.Singleton;
import java.io.InputStream;
@Singleton
@Component(modules = {
BungeePlanModule.class,
APFModule.class,
@ -45,9 +39,9 @@ import java.io.InputStream;
VersionCheckModule.class,
BungeeConfigModule.class,
LocaleModule.class,
BungeeInfoSystemModule.class,
BungeeInfoModule.class,
BungeeDatabaseModule.class,
ServerInfoSystemModule.class,
PluginHookModule.class,
BungeeAPIModule.class
})
@ -60,7 +54,6 @@ interface PlanBungeeComponent {
@Component.Builder
interface Builder {
@Singleton
@BindsInstance
Builder plan(PlanBungee plan);

View File

@ -1,6 +1,8 @@
package com.djrapitops.plan.modules.bungee;
import com.djrapitops.plan.PlanBungee;
import com.djrapitops.plan.system.info.server.BungeeServerInfo;
import com.djrapitops.plan.system.info.server.ServerInfo;
import com.djrapitops.plan.system.info.server.properties.BungeeServerProperties;
import com.djrapitops.plan.system.info.server.properties.ServerProperties;
import dagger.Module;
@ -14,6 +16,11 @@ import dagger.Provides;
@Module
public class BungeeInfoModule {
@Provides
ServerInfo provideBungeeServerInfo(BungeeServerInfo bungeeServerInfo) {
return bungeeServerInfo;
}
@Provides
ServerProperties provideServerProperties(PlanBungee plugin) {
return new BungeeServerProperties(plugin.getProxy());

View File

@ -0,0 +1,32 @@
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 InfoSystem.
*
* @author Rsl1122
*/
@Module
public class BungeeInfoSystemModule {
@Provides
@Singleton
InfoSystem provideBungeeInfoSystem(BungeeInfoSystem bungeeInfoSystem) {
return bungeeInfoSystem;
}
@Provides
@Singleton
ConnectionSystem provideBungeeConnectionSystem(BungeeConnectionSystem bungeeConnectionSystem) {
return bungeeConnectionSystem;
}
}

View File

@ -12,8 +12,8 @@ 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.BungeeInfoSystem;
import com.djrapitops.plan.system.info.server.BungeeServerInfo;
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.settings.config.BungeeConfigSystem;
import com.djrapitops.plan.system.settings.network.NetworkSettings;
@ -31,11 +31,13 @@ import javax.inject.Inject;
public class BungeeSystem extends PlanSystem {
@Inject
public BungeeSystem(PlanBungee plugin,
public BungeeSystem(
PlanBungee plugin,
VersionCheckSystem versionCheckSystem,
FileSystem fileSystem,
BungeeConfigSystem bungeeConfigSystem,
BungeeServerInfo bungeeServerInfo,
InfoSystem infoSystem,
ServerInfo serverInfo,
BungeeCacheSystem bungeeCacheSystem,
DBSystem databaseSystem,
WebServerSystem webServerSystem,
@ -55,8 +57,8 @@ public class BungeeSystem extends PlanSystem {
listenerSystem = new BungeeListenerSystem(plugin);
taskSystem = new BungeeTaskSystem(plugin.getRunnableFactory());
infoSystem = new BungeeInfoSystem();
serverInfo = bungeeServerInfo;
this.infoSystem = infoSystem;
this.serverInfo = serverInfo;
this.hookHandler = hookHandler;
this.planAPI = planAPI;

View File

@ -7,7 +7,7 @@ package com.djrapitops.plan.system.info;
import com.djrapitops.plan.api.exceptions.ParseException;
import com.djrapitops.plan.api.exceptions.connection.NoServersException;
import com.djrapitops.plan.api.exceptions.connection.WebException;
import com.djrapitops.plan.system.info.connection.BungeeConnectionSystem;
import com.djrapitops.plan.system.info.connection.ConnectionSystem;
import com.djrapitops.plan.system.info.request.CacheRequest;
import com.djrapitops.plan.system.info.request.GenerateInspectPageRequest;
import com.djrapitops.plan.system.info.request.InfoRequest;
@ -17,6 +17,8 @@ import com.djrapitops.plan.system.webserver.cache.ResponseCache;
import com.djrapitops.plan.system.webserver.response.errors.InternalErrorResponse;
import com.djrapitops.plan.system.webserver.response.pages.NetworkPageResponse;
import javax.inject.Inject;
/**
* InfoSystem for Bungee.
*
@ -24,8 +26,13 @@ import com.djrapitops.plan.system.webserver.response.pages.NetworkPageResponse;
*/
public class BungeeInfoSystem extends InfoSystem {
public BungeeInfoSystem() {
super(new BungeeConnectionSystem());
private final ServerInfo serverInfo;
@Inject
public BungeeInfoSystem(ConnectionSystem connectionSystem, ServerInfo serverInfo) {
super(connectionSystem);
this.serverInfo = serverInfo;
}
@Override
@ -41,7 +48,7 @@ public class BungeeInfoSystem extends InfoSystem {
@Override
public void updateNetworkPage() {
ResponseCache.cacheResponse(PageId.SERVER.of(ServerInfo.getServerUUID_Old()), () -> {
ResponseCache.cacheResponse(PageId.SERVER.of(serverInfo.getServerUUID()), () -> {
try {
return new NetworkPageResponse();
} catch (ParseException e) {

View File

@ -10,10 +10,12 @@ import com.djrapitops.plan.system.database.databases.Database;
import com.djrapitops.plan.system.info.request.*;
import com.djrapitops.plan.system.info.server.Server;
import com.djrapitops.plan.system.info.server.ServerInfo;
import com.djrapitops.plan.system.webserver.WebServerSystem;
import com.djrapitops.plan.system.webserver.WebServer;
import com.djrapitops.plugin.api.TimeAmount;
import com.djrapitops.plugin.api.utility.log.Log;
import com.djrapitops.plugin.logging.L;
import com.djrapitops.plugin.logging.error.ErrorHandler;
import javax.inject.Inject;
import java.util.UUID;
/**
@ -23,19 +25,35 @@ import java.util.UUID;
*/
public class BungeeConnectionSystem extends ConnectionSystem {
private final Database database;
private final ServerInfo serverInfo;
private final WebServer webServer;
private ErrorHandler errorHandler;
private long latestServerMapRefresh;
public BungeeConnectionSystem() {
@Inject
public BungeeConnectionSystem(
Database database,
ServerInfo serverInfo,
WebServer webServer,
ErrorHandler errorHandler
) {
this.database = database;
this.serverInfo = serverInfo;
this.webServer = webServer;
this.errorHandler = errorHandler;
latestServerMapRefresh = 0;
}
private void refreshServerMap() {
if (latestServerMapRefresh < System.currentTimeMillis() - TimeAmount.SECOND.ms() * 15L) {
try {
bukkitServers = Database.getActive().fetch().getBukkitServers();
bukkitServers = database.fetch().getBukkitServers();
latestServerMapRefresh = System.currentTimeMillis();
} catch (DBOpException e) {
Log.toLog(this.getClass(), e);
errorHandler.log(L.ERROR, this.getClass(), e);
}
}
}
@ -46,7 +64,7 @@ public class BungeeConnectionSystem extends ConnectionSystem {
Server server = null;
if (infoRequest instanceof CacheRequest || infoRequest instanceof GenerateInspectPageRequest) {
// Run locally
return ServerInfo.getServer_Old();
return serverInfo.getServer();
} else if (infoRequest instanceof GenerateAnalysisPageRequest) {
UUID serverUUID = ((GenerateAnalysisPageRequest) infoRequest).getServerUUID();
server = bukkitServers.get(serverUUID);
@ -75,7 +93,7 @@ public class BungeeConnectionSystem extends ConnectionSystem {
@Override
public String getMainAddress() {
return WebServerSystem.getInstance().getWebServer().getAccessAddress();
return webServer.getAccessAddress();
}
@Override