mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2024-12-28 20:17:42 +01:00
Fixed Absolute Path detection
Fixed ArrayOutOfBounds Fixed Player page Typo fix
This commit is contained in:
parent
681bfa2b9b
commit
eb4ee0f68c
@ -30,6 +30,6 @@ public class PlanWorldChangeListener implements Listener {
|
|||||||
}
|
}
|
||||||
UUID uuid = p.getUniqueId();
|
UUID uuid = p.getUniqueId();
|
||||||
long time = MiscUtils.getTime();
|
long time = MiscUtils.getTime();
|
||||||
handler.addToPool(new PlaytimeDependentInfo(uuid, InfoType.GM, time, p.getGameMode().name(), p.getWorld().getName()));
|
handler.addToPool(new PlaytimeDependentInfo(uuid, InfoType.WORLD, time, p.getGameMode().name(), p.getWorld().getName()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -344,7 +344,11 @@ public abstract class SQLDB extends Database {
|
|||||||
Map<String, Long> gmTimes = gmTimesTable.getGMTimes(userId);
|
Map<String, Long> gmTimes = gmTimesTable.getGMTimes(userId);
|
||||||
data.getGmTimes().setTimes(gmTimes);
|
data.getGmTimes().setTimes(gmTimes);
|
||||||
Map<String, Long> worldTimes = worldTimesTable.getWorldTimes(userId);
|
Map<String, Long> worldTimes = worldTimesTable.getWorldTimes(userId);
|
||||||
data.getWorldTimes().setTimes(worldTimes);
|
WorldTimes worldT = data.getWorldTimes();
|
||||||
|
worldT.setTimes(worldTimes);
|
||||||
|
if (worldT.getLastStateChange() == 0) {
|
||||||
|
worldT.setLastStateChange(data.getPlayTime());
|
||||||
|
}
|
||||||
|
|
||||||
List<SessionData> sessions = sessionsTable.getSessionData(userId);
|
List<SessionData> sessions = sessionsTable.getSessionData(userId);
|
||||||
data.addSessions(sessions);
|
data.addSessions(sessions);
|
||||||
@ -394,13 +398,19 @@ public abstract class SQLDB extends Database {
|
|||||||
UUID uuid = uData.getUuid();
|
UUID uuid = uData.getUuid();
|
||||||
Integer id = userIds.get(uuid);
|
Integer id = userIds.get(uuid);
|
||||||
uData.addIpAddresses(ipList.get(id));
|
uData.addIpAddresses(ipList.get(id));
|
||||||
List<String> nickNames = nicknames.get(id);
|
List<String> userNicks = nicknames.get(id);
|
||||||
uData.addNicknames(nickNames);
|
uData.addNicknames(userNicks);
|
||||||
uData.setLastNick(nickNames.get(nickNames.size()-1));
|
if (!userNicks.isEmpty()) {
|
||||||
|
uData.setLastNick(userNicks.get(userNicks.size() - 1));
|
||||||
|
}
|
||||||
uData.addSessions(sessionData.get(id));
|
uData.addSessions(sessionData.get(id));
|
||||||
uData.setPlayerKills(playerKills.get(id));
|
uData.setPlayerKills(playerKills.get(id));
|
||||||
uData.getGmTimes().setTimes(gmTimes.get(id));
|
uData.getGmTimes().setTimes(gmTimes.get(id));
|
||||||
uData.getWorldTimes().setTimes(worldTimes.get(id));
|
WorldTimes worldT = uData.getWorldTimes();
|
||||||
|
worldT.setTimes(worldTimes.get(id));
|
||||||
|
if (worldT.getLastStateChange() == 0) {
|
||||||
|
worldT.setLastStateChange(uData.getPlayTime());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Benchmark.stop("Database: Get UserData for " + uuidsCol.size());
|
Benchmark.stop("Database: Get UserData for " + uuidsCol.size());
|
||||||
|
@ -20,6 +20,7 @@ import javax.net.ssl.*;
|
|||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.security.*;
|
import java.security.*;
|
||||||
import java.security.cert.Certificate;
|
import java.security.cert.Certificate;
|
||||||
import java.security.cert.CertificateException;
|
import java.security.cert.CertificateException;
|
||||||
@ -169,7 +170,7 @@ public class WebServer {
|
|||||||
|
|
||||||
private boolean startHttpsServer() throws IOException {
|
private boolean startHttpsServer() throws IOException {
|
||||||
String keyStorePath = Settings.WEBSERVER_CERTIFICATE_PATH.toString();
|
String keyStorePath = Settings.WEBSERVER_CERTIFICATE_PATH.toString();
|
||||||
if (!keyStorePath.contains(":")) {
|
if (!Paths.get(keyStorePath).isAbsolute()) {
|
||||||
keyStorePath = plugin.getDataFolder() + keyStorePath;
|
keyStorePath = plugin.getDataFolder() + keyStorePath;
|
||||||
}
|
}
|
||||||
char[] storepass = Settings.WEBSERVER_CERTIFICATE_STOREPASS.toString().toCharArray();
|
char[] storepass = Settings.WEBSERVER_CERTIFICATE_STOREPASS.toString().toCharArray();
|
||||||
|
@ -13,6 +13,7 @@ import java.io.File;
|
|||||||
import java.io.FileNotFoundException;
|
import java.io.FileNotFoundException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -34,7 +35,7 @@ public class ExportUtility {
|
|||||||
*/
|
*/
|
||||||
public static File getFolder() {
|
public static File getFolder() {
|
||||||
String path = Settings.ANALYSIS_EXPORT_PATH.toString();
|
String path = Settings.ANALYSIS_EXPORT_PATH.toString();
|
||||||
if (path.contains(":")) {
|
if (Paths.get(path).isAbsolute()) {
|
||||||
File folder = new File(path);
|
File folder = new File(path);
|
||||||
if (folder.exists()
|
if (folder.exists()
|
||||||
&& folder.isDirectory()) {
|
&& folder.isDirectory()) {
|
||||||
|
@ -412,7 +412,7 @@
|
|||||||
<div class="headerbox">
|
<div class="headerbox">
|
||||||
<div class="header-icon">
|
<div class="header-icon">
|
||||||
<div class="header-label"><i class="fa fa-crosshairs" aria-hidden="true"></i><span
|
<div class="header-label"><i class="fa fa-crosshairs" aria-hidden="true"></i><span
|
||||||
class="header-text"> Last 10 Kills</span></div>
|
class="header-text"> Last 25 Kills</span></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="infobox" style="float: right;">
|
<div class="infobox" style="float: right;">
|
||||||
<div class="info-icon">
|
<div class="info-icon">
|
||||||
@ -490,6 +490,33 @@
|
|||||||
<script src="https://www.kryogenix.org/code/browser/sorttable/sorttable.js"></script>
|
<script src="https://www.kryogenix.org/code/browser/sorttable/sorttable.js"></script>
|
||||||
<script src="https://code.highcharts.com/stock/highstock.js"></script>
|
<script src="https://code.highcharts.com/stock/highstock.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
function formatTime(seconds) {
|
||||||
|
var out = "";
|
||||||
|
seconds = Math.floor(seconds / 1000);
|
||||||
|
|
||||||
|
var dd = Math.floor(seconds / 86400);
|
||||||
|
seconds -= (dd * 86400);
|
||||||
|
|
||||||
|
var dh = Math.floor(seconds / 3600);
|
||||||
|
seconds -= (dh * 3600);
|
||||||
|
|
||||||
|
var dm = Math.floor(seconds / 60);
|
||||||
|
seconds -= (dm * 60);
|
||||||
|
|
||||||
|
seconds = Math.floor(seconds);
|
||||||
|
|
||||||
|
if (dd != 0) {
|
||||||
|
out += dd.toString() + "d ";
|
||||||
|
}
|
||||||
|
if (dh != 0) {
|
||||||
|
out += dh.toString() + "h ";
|
||||||
|
}
|
||||||
|
if (dm != 0) {
|
||||||
|
out += dm.toString() + "m ";
|
||||||
|
}
|
||||||
|
out += seconds.toString() + "s ";
|
||||||
|
return out;
|
||||||
|
}
|
||||||
var playersOnlineSeries = {
|
var playersOnlineSeries = {
|
||||||
name: 'Online',
|
name: 'Online',
|
||||||
data: %playersonlineseries%,
|
data: %playersonlineseries%,
|
||||||
@ -753,32 +780,9 @@
|
|||||||
function countUpTimer() {
|
function countUpTimer() {
|
||||||
var now = new Date();
|
var now = new Date();
|
||||||
var begin = new Date(%refreshlong%);
|
var begin = new Date(%refreshlong%);
|
||||||
var out = "";
|
|
||||||
|
|
||||||
var seconds = now.getTime() - begin.getTime();
|
var seconds = now.getTime() - begin.getTime();
|
||||||
seconds = Math.floor(seconds / 1000);
|
|
||||||
|
|
||||||
var dd = Math.floor(seconds / 86400);
|
var out = formatTime(seconds);
|
||||||
seconds -= (dd * 86400);
|
|
||||||
|
|
||||||
var dh = Math.floor(seconds / 3600);
|
|
||||||
seconds -= (dh * 3600);
|
|
||||||
|
|
||||||
var dm = Math.floor(seconds / 60);
|
|
||||||
seconds -= (dm * 60);
|
|
||||||
|
|
||||||
seconds = Math.floor(seconds);
|
|
||||||
|
|
||||||
if (dd != 0) {
|
|
||||||
out += dd.toString() + "d ";
|
|
||||||
}
|
|
||||||
if (dh != 0) {
|
|
||||||
out += dh.toString() + "h ";
|
|
||||||
}
|
|
||||||
if (dm != 0) {
|
|
||||||
out += dm.toString() + "m ";
|
|
||||||
}
|
|
||||||
out += seconds.toString() + "s ";
|
|
||||||
|
|
||||||
document.getElementById('divTime').innerHTML = out;
|
document.getElementById('divTime').innerHTML = out;
|
||||||
setTimeout('countUpTimer()', 1000);
|
setTimeout('countUpTimer()', 1000);
|
||||||
|
Loading…
Reference in New Issue
Block a user