Skip to content

Commit 2eed379

Browse files
authored
Merge pull request #4791 from plan-player-analytics/4769
Bugfixes
2 parents 4090112 + 842f3ac commit 2eed379

5 files changed

Lines changed: 37 additions & 8 deletions

File tree

Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/line/LineGraph.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public String toHighChartsSeries() {
6464
}
6565
lastX = date;
6666

67-
arrayBuilder.append("[").append(date).append(",").append(y).append("]");
67+
arrayBuilder.append("[").append(date).append(",").append(y < 0 ? null : y).append("]");
6868
if (i < size - 1) {
6969
arrayBuilder.append(",");
7070
}

Plan/common/src/main/java/com/djrapitops/plan/storage/database/transactions/init/RemoveOldExtensionsTransaction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ private void removeProviders(Collection<Integer> providerIds, Collection<Integer
8888
if (!providerIds.isEmpty()) {
8989
execute(new ExecStatement(
9090
DELETE_FROM + ExtensionProviderTable.TABLE_NAME +
91-
WHERE + ExtensionProviderTable.PLUGIN_ID +
91+
WHERE + ExtensionProviderTable.ID +
9292
" IN (" + Sql.nParameters(providerIds.size()) + ")"
9393
) {
9494
@Override
@@ -100,7 +100,7 @@ public void prepare(PreparedStatement statement) throws SQLException {
100100
if (!tableProviderIds.isEmpty()) {
101101
execute(new ExecStatement(
102102
DELETE_FROM + ExtensionTableProviderTable.TABLE_NAME +
103-
WHERE + ExtensionTableProviderTable.PLUGIN_ID +
103+
WHERE + ExtensionTableProviderTable.ID +
104104
" IN (" + Sql.nParameters(tableProviderIds.size()) + ")"
105105
) {
106106
@Override

Plan/common/src/test/java/com/djrapitops/plan/storage/database/queries/ExtensionsDatabaseTest.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@
3535
import com.djrapitops.plan.gathering.domain.ActiveSession;
3636
import com.djrapitops.plan.gathering.domain.WorldTimes;
3737
import com.djrapitops.plan.identification.ServerUUID;
38+
import com.djrapitops.plan.settings.config.ExtensionSettings;
3839
import com.djrapitops.plan.storage.database.DatabaseTestPreparer;
3940
import com.djrapitops.plan.storage.database.transactions.commands.RemoveEverythingTransaction;
4041
import com.djrapitops.plan.storage.database.transactions.events.PlayerRegisterTransaction;
4142
import com.djrapitops.plan.storage.database.transactions.events.StoreSessionTransaction;
4243
import com.djrapitops.plan.storage.database.transactions.events.StoreWorldNameTransaction;
44+
import com.djrapitops.plan.storage.database.transactions.init.RemoveOldExtensionsTransaction;
4345
import com.fasterxml.jackson.databind.ObjectMapper;
4446
import com.fasterxml.jackson.databind.node.ObjectNode;
4547
import org.junit.jupiter.api.BeforeEach;
@@ -54,6 +56,7 @@
5456
import java.util.Map;
5557
import java.util.Objects;
5658
import java.util.UUID;
59+
import java.util.concurrent.TimeUnit;
5760

5861
import static org.junit.jupiter.api.Assertions.*;
5962

@@ -75,6 +78,10 @@ default void unregisterExtensions() {
7578
extensionService.unregister(new TableExtension());
7679
extensionService.unregister(new ThrowingExtension());
7780
extensionService.unregister(new ClickEventTestExtension());
81+
ExtensionSettings extensionSettings = config().getExtensionSettings();
82+
extensionSettings.setEnabled("PlayerExtension", true);
83+
extensionSettings.setEnabled("TableExtension", true);
84+
extensionSettings.setEnabled("ServerExtension", true);
7885
}
7986

8087
@Test
@@ -91,6 +98,28 @@ default void removeEverythingRemovesServerExtensionData() {
9198
assertTrue(db().query(new ExtensionServerDataQuery(serverUUID())).isEmpty());
9299
}
93100

101+
@Test
102+
default void removeOldExtensionDataCleansData() {
103+
db().executeTransaction(new PlayerRegisterTransaction(TestConstants.PLAYER_ONE_UUID, System::currentTimeMillis, TestConstants.PLAYER_ONE_NAME));
104+
105+
ExtensionSvc extensionService = extensionService();
106+
extensionService.register(new TableExtension());
107+
extensionService.register(new PlayerExtension());
108+
extensionService.register(new ServerExtension());
109+
extensionService.updatePlayerValues(playerUUID, TestConstants.PLAYER_ONE_NAME, CallEvents.MANUAL);
110+
extensionService.updateServerValues(CallEvents.MANUAL);
111+
112+
ExtensionSettings extensionSettings = config().getExtensionSettings();
113+
extensionSettings.setEnabled("PlayerExtension", false);
114+
extensionSettings.setEnabled("TableExtension", false);
115+
extensionSettings.setEnabled("ServerExtension", false);
116+
117+
db().executeTransaction(new RemoveOldExtensionsTransaction(extensionSettings, TimeUnit.DAYS.toMillis(1), serverUUID()));
118+
119+
assertTrue(db().query(new ExtensionPlayerDataQuery(playerUUID)).isEmpty());
120+
assertTrue(db().query(new ExtensionServerDataQuery(serverUUID())).isEmpty());
121+
}
122+
94123
@Test
95124
default void extensionPlayerValuesAreStored() {
96125
db().executeTransaction(new PlayerRegisterTransaction(TestConstants.PLAYER_ONE_UUID, System::currentTimeMillis, TestConstants.PLAYER_ONE_NAME));

Plan/react/dashboard/src/components/cards/server/graphs/GraphSeriesCard.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -288,11 +288,11 @@ export const GraphSeriesCard = ({id, identifier}: Props) => {
288288
name: t('html.label.ping'), icon: faSignal,
289289
color: 'var(--color-data-performance-ping)',
290290
permission: 'page.server.performance.graphs.ping',
291-
data: pingSeries ? [] : undefined
291+
data: pingSeries ? [{}] : undefined
292292
}, {
293293
show: false,
294294
id: PerformanceGraphId.PING_MIN,
295-
name: t('html.label.bestPing'), icon: faSignal, color: 'ping',
295+
name: t('html.label.bestPing'), icon: faSignal, color: "var(--color-graphs-ping-min)",
296296
permission: 'page.server.performance.graphs.ping',
297297
data: pingSeries?.min_ping_series,
298298
options: {
@@ -303,7 +303,7 @@ export const GraphSeriesCard = ({id, identifier}: Props) => {
303303
}, {
304304
show: false,
305305
id: PerformanceGraphId.PING_AVG,
306-
name: t('html.label.averagePing'), icon: faSignal, color: 'ping',
306+
name: t('html.label.averagePing'), icon: faSignal, color: "var(--color-graphs-ping-avg)",
307307
permission: 'page.server.performance.graphs.ping',
308308
data: pingSeries?.avg_ping_series,
309309
options: {
@@ -314,7 +314,7 @@ export const GraphSeriesCard = ({id, identifier}: Props) => {
314314
}, {
315315
show: false,
316316
id: PerformanceGraphId.PING_MAX,
317-
name: t('html.label.worstPing'), icon: faSignal, color: 'ping',
317+
name: t('html.label.worstPing'), icon: faSignal, color: "var(--color-graphs-ping-max)",
318318
permission: 'page.server.performance.graphs.ping',
319319
data: pingSeries?.max_ping_series,
320320
options: {

Plan/react/dashboard/src/util/format/useDateFormatter.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export const useDateFormatter = (includeSeconds, overrides = {}) => {
4242
const dayMs = 24 * 60 * 60 * 1000;
4343
const timestamp = date - offset;
4444
const now = Date.now() - offset;
45-
const fromStartOfToday = (now - offset) % dayMs;
45+
const fromStartOfToday = now % dayMs;
4646
const today = now - fromStartOfToday;
4747
const yesterday = today - dayMs;
4848
const tomorrow = today + dayMs;

0 commit comments

Comments
 (0)