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,17 +31,19 @@ import javax.inject.Inject;
public class BungeeSystem extends PlanSystem {
@Inject
public BungeeSystem(PlanBungee plugin,
VersionCheckSystem versionCheckSystem,
FileSystem fileSystem,
BungeeConfigSystem bungeeConfigSystem,
BungeeServerInfo bungeeServerInfo,
BungeeCacheSystem bungeeCacheSystem,
DBSystem databaseSystem,
WebServerSystem webServerSystem,
HookHandler hookHandler,
ExportSystem exportSystem,
PlanAPI planAPI
public BungeeSystem(
PlanBungee plugin,
VersionCheckSystem versionCheckSystem,
FileSystem fileSystem,
BungeeConfigSystem bungeeConfigSystem,
InfoSystem infoSystem,
ServerInfo serverInfo,
BungeeCacheSystem bungeeCacheSystem,
DBSystem databaseSystem,
WebServerSystem webServerSystem,
HookHandler hookHandler,
ExportSystem exportSystem,
PlanAPI planAPI
) {
super(webServerSystem);
setTestSystem(this);
@ -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