Add regular_players and network_regular_players placeholders

Affects issues:
- Close #3425
This commit is contained in:
Aurora Lahtela 2024-01-27 13:38:06 +02:00
parent 01ce503c77
commit 7494902e46
1 changed files with 12 additions and 0 deletions

View File

@ -22,9 +22,13 @@ import com.djrapitops.plan.delivery.formatting.Formatters;
import com.djrapitops.plan.identification.Server; import com.djrapitops.plan.identification.Server;
import com.djrapitops.plan.identification.ServerInfo; import com.djrapitops.plan.identification.ServerInfo;
import com.djrapitops.plan.identification.ServerUUID; import com.djrapitops.plan.identification.ServerUUID;
import com.djrapitops.plan.settings.config.PlanConfig;
import com.djrapitops.plan.settings.config.paths.TimeSettings;
import com.djrapitops.plan.storage.database.DBSystem; import com.djrapitops.plan.storage.database.DBSystem;
import com.djrapitops.plan.storage.database.Database; import com.djrapitops.plan.storage.database.Database;
import com.djrapitops.plan.storage.database.queries.Query; import com.djrapitops.plan.storage.database.queries.Query;
import com.djrapitops.plan.storage.database.queries.analysis.ActivityIndexQueries;
import com.djrapitops.plan.storage.database.queries.analysis.NetworkActivityIndexQueries;
import com.djrapitops.plan.storage.database.queries.analysis.PlayerCountQueries; import com.djrapitops.plan.storage.database.queries.analysis.PlayerCountQueries;
import com.djrapitops.plan.storage.database.queries.analysis.TopListQueries; import com.djrapitops.plan.storage.database.queries.analysis.TopListQueries;
import com.djrapitops.plan.storage.database.queries.objects.ServerQueries; import com.djrapitops.plan.storage.database.queries.objects.ServerQueries;
@ -50,16 +54,19 @@ import static com.djrapitops.plan.utilities.MiscUtils.*;
@Singleton @Singleton
public class ServerPlaceHolders implements Placeholders { public class ServerPlaceHolders implements Placeholders {
private final PlanConfig config;
private final DBSystem dbSystem; private final DBSystem dbSystem;
private final ServerInfo serverInfo; private final ServerInfo serverInfo;
private final Formatters formatters; private final Formatters formatters;
@Inject @Inject
public ServerPlaceHolders( public ServerPlaceHolders(
PlanConfig config,
DBSystem dbSystem, DBSystem dbSystem,
ServerInfo serverInfo, ServerInfo serverInfo,
Formatters formatters Formatters formatters
) { ) {
this.config = config;
this.dbSystem = dbSystem; this.dbSystem = dbSystem;
this.serverInfo = serverInfo; this.serverInfo = serverInfo;
this.formatters = formatters; this.formatters = formatters;
@ -200,6 +207,11 @@ public class ServerPlaceHolders implements Placeholders {
placeholders.registerStatic("server_uuid", placeholders.registerStatic("server_uuid",
serverInfo::getServerUUID); serverInfo::getServerUUID);
placeholders.registerStatic("regular_players",
parameters -> database.query(ActivityIndexQueries.fetchRegularPlayerCount(System.currentTimeMillis(), getServerUUID(parameters), config.get(TimeSettings.ACTIVE_PLAY_THRESHOLD))));
placeholders.registerStatic("network_regular_players",
() -> database.query(NetworkActivityIndexQueries.fetchRegularPlayerCount(System.currentTimeMillis(), config.get(TimeSettings.ACTIVE_PLAY_THRESHOLD))));
registerDynamicCategoryPlaceholders(placeholders, database); registerDynamicCategoryPlaceholders(placeholders, database);
} }