Merge branch '4.0.0-BungeeCord-Support' of https://github.com/Rsl1122/Plan-PlayerAnalytics

This commit is contained in:
Fuzzlemann 2017-08-18 12:29:59 +02:00
commit 21aec1fb6d
10 changed files with 117 additions and 33 deletions

View File

@ -265,7 +265,7 @@ public class Plan extends BukkitPlugin<Plan> {
getPluginLogger().endAllDebugs(); getPluginLogger().endAllDebugs();
Log.info(Locale.get(Msg.DISABLED).toString()); Log.info(Locale.get(Msg.DISABLED).toString());
Locale.unload(); // Locale.unload();
} }
private void registerListeners() { private void registerListeners() {

View File

@ -36,6 +36,8 @@ public enum Settings {
PROCESS_GET_LIMIT("Settings.Cache.Processing.GetLimit"), PROCESS_GET_LIMIT("Settings.Cache.Processing.GetLimit"),
PROCESS_SAVE_LIMIT("Settings.Cache.Processing.SaveLimit"), PROCESS_SAVE_LIMIT("Settings.Cache.Processing.SaveLimit"),
PROCESS_CLEAR_LIMIT("Settings.Cache.Processing.ClearLimit"), PROCESS_CLEAR_LIMIT("Settings.Cache.Processing.ClearLimit"),
TPS_GRAPH_HIGH("Customization.Colors.HTML.TPSGraph.TPSHigh"),
TPS_GRAPH_MED("Customization.Colors.HTML.TPSGraph.TPSMedium"),
// String // String
DEBUG("Settings.Debug"), DEBUG("Settings.Debug"),
ALTERNATIVE_IP("Settings.WebServer.AlternativeIP"), ALTERNATIVE_IP("Settings.WebServer.AlternativeIP"),
@ -73,6 +75,9 @@ public enum Settings {
HCOLOR_SEC("Customization.Colors.HTML.UI.Secondary"), HCOLOR_SEC("Customization.Colors.HTML.UI.Secondary"),
HCOLOR_TER("Customization.Colors.HTML.UI.Tertiary"), HCOLOR_TER("Customization.Colors.HTML.UI.Tertiary"),
HCOLOR_TER_DARK("Customization.Colors.HTML.UI.TertiaryDark"), HCOLOR_TER_DARK("Customization.Colors.HTML.UI.TertiaryDark"),
HCOLOR_TPS_HIGH("Customization.Colors.HTML.TPSGraph.TPSHighCol"),
HCOLOR_TPS_MED("Customization.Colors.HTML.TPSGraph.TPSMediumCol"),
HCOLOR_TPS_LOW("Customization.Colors.HTML.TPSGraph.TPSLowCol"),
HCOLOR_ACT_ONL("Customization.Colors.HTML.ActivityGraph.OnlinePlayers"), HCOLOR_ACT_ONL("Customization.Colors.HTML.ActivityGraph.OnlinePlayers"),
HCOLOR_ACTP_ACT("Customization.Colors.HTML.ActivityPie.Active"), HCOLOR_ACTP_ACT("Customization.Colors.HTML.ActivityPie.Active"),
HCOLOR_ACTP_BAN("Customization.Colors.HTML.ActivityPie.Banned"), HCOLOR_ACTP_BAN("Customization.Colors.HTML.ActivityPie.Banned"),

View File

@ -79,18 +79,20 @@ public class AnalyzeCommand extends SubCommand {
} }
}).runTaskAsynchronously(); }).runTaskAsynchronously();
} }
updateCache(); updateCache(sender);
runMessageSenderTask(sender);
return true; return true;
} }
private void updateCache() { private void updateCache(ISender sender) {
if (!analysisCache.isCached() || MiscUtils.getTime() - analysisCache.getData().getRefreshDate() > TimeAmount.MINUTE.ms()) { if (!analysisCache.isCached() || MiscUtils.getTime() - analysisCache.getData().getRefreshDate() > TimeAmount.MINUTE.ms()) {
int bootAnID = plugin.getBootAnalysisTaskID(); int bootAnID = plugin.getBootAnalysisTaskID();
if (bootAnID != -1) { if (bootAnID != -1) {
plugin.getServer().getScheduler().cancelTask(bootAnID); plugin.getServer().getScheduler().cancelTask(bootAnID);
} }
analysisCache.addNotification(sender);
analysisCache.updateCache(); analysisCache.updateCache();
} else {
analysisCache.sendAnalysisMessage(sender);
} }
} }

View File

@ -1,6 +1,7 @@
package main.java.com.djrapitops.plan.data.analysis; package main.java.com.djrapitops.plan.data.analysis;
import com.djrapitops.plugin.api.TimeAmount; import com.djrapitops.plugin.api.TimeAmount;
import main.java.com.djrapitops.plan.Settings;
import main.java.com.djrapitops.plan.data.TPS; import main.java.com.djrapitops.plan.data.TPS;
import main.java.com.djrapitops.plan.ui.html.graphs.CPUGraphCreator; import main.java.com.djrapitops.plan.ui.html.graphs.CPUGraphCreator;
import main.java.com.djrapitops.plan.ui.html.graphs.RamGraphCreator; import main.java.com.djrapitops.plan.ui.html.graphs.RamGraphCreator;
@ -40,6 +41,11 @@ public class TPSPart extends RawData {
List<TPS> week = TPSGraphCreator.filterTPS(tpsData, now - TimeAmount.WEEK.ms()); List<TPS> week = TPSGraphCreator.filterTPS(tpsData, now - TimeAmount.WEEK.ms());
List<TPS> day = TPSGraphCreator.filterTPS(tpsData, now - TimeAmount.DAY.ms()); List<TPS> day = TPSGraphCreator.filterTPS(tpsData, now - TimeAmount.DAY.ms());
addValue("tpshighcol", "#"+ Settings.HCOLOR_TPS_HIGH);
addValue("tpsmediumcol", "#"+ Settings.HCOLOR_TPS_MED);
addValue("tpslowcol", "#"+ Settings.HCOLOR_TPS_LOW);
addValue("tpsmedium", Settings.TPS_GRAPH_MED.getNumber());
addValue("tpshigh", Settings.TPS_GRAPH_HIGH.getNumber());
addValue("tpsseries", TPSGraphCreator.buildSeriesDataString(tpsData)); addValue("tpsseries", TPSGraphCreator.buildSeriesDataString(tpsData));
addValue("cpuseries", CPUGraphCreator.buildSeriesDataString(tpsData)); addValue("cpuseries", CPUGraphCreator.buildSeriesDataString(tpsData));

View File

@ -1,8 +1,22 @@
package main.java.com.djrapitops.plan.data.cache; package main.java.com.djrapitops.plan.data.cache;
import com.djrapitops.plugin.command.CommandUtils;
import com.djrapitops.plugin.command.ISender;
import com.djrapitops.plugin.utilities.player.IPlayer;
import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.Settings;
import main.java.com.djrapitops.plan.data.AnalysisData; import main.java.com.djrapitops.plan.data.AnalysisData;
import main.java.com.djrapitops.plan.locale.Locale;
import main.java.com.djrapitops.plan.locale.Msg;
import main.java.com.djrapitops.plan.ui.text.TextUI;
import main.java.com.djrapitops.plan.utilities.HtmlUtils;
import main.java.com.djrapitops.plan.utilities.analysis.Analysis; import main.java.com.djrapitops.plan.utilities.analysis.Analysis;
import org.bukkit.entity.Player;
import java.util.HashSet;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;
/** /**
* This class is used to store the most recent AnalysisData object and to run * This class is used to store the most recent AnalysisData object and to run
@ -13,10 +27,13 @@ import main.java.com.djrapitops.plan.utilities.analysis.Analysis;
*/ */
public class AnalysisCacheHandler { public class AnalysisCacheHandler {
private final Plan plugin;
private final Analysis analysis; private final Analysis analysis;
private AnalysisData cache; private AnalysisData cache;
private boolean analysisEnabled; private boolean analysisEnabled;
private Set<UUID> notifyWhenCached;
/** /**
* Class Constructor. * Class Constructor.
* <p> * <p>
@ -25,8 +42,10 @@ public class AnalysisCacheHandler {
* @param plugin Current instance of Plan * @param plugin Current instance of Plan
*/ */
public AnalysisCacheHandler(Plan plugin) { public AnalysisCacheHandler(Plan plugin) {
this.plugin = plugin;
analysis = new Analysis(plugin); analysis = new Analysis(plugin);
analysisEnabled = true; analysisEnabled = true;
notifyWhenCached = new HashSet<>();
} }
/** /**
@ -43,6 +62,33 @@ public class AnalysisCacheHandler {
*/ */
public void cache(AnalysisData data) { public void cache(AnalysisData data) {
cache = data; cache = data;
for (UUID uuid : notifyWhenCached) {
Optional<IPlayer> player = plugin.fetch().getPlayer(uuid);
if (player.isPresent()) {
sendAnalysisMessage(player.get());
}
}
notifyWhenCached.clear();
}
public void sendAnalysisMessage(ISender sender) {
boolean textUI = Settings.USE_ALTERNATIVE_UI.isTrue();
sender.sendMessage(Locale.get(Msg.CMD_HEADER_ANALYZE).toString());
if (textUI) {
sender.sendMessage(TextUI.getAnalysisMessages());
} else {
// Link
String url = HtmlUtils.getServerAnalysisUrlWithProtocol();
String message = Locale.get(Msg.CMD_INFO_LINK).toString();
boolean console = !CommandUtils.isPlayer(sender);
if (console) {
sender.sendMessage(message + url);
} else {
sender.sendMessage(message);
sender.sendLink(" ", Locale.get(Msg.CMD_INFO_CLICK_ME).toString(), url);
}
}
sender.sendMessage(Locale.get(Msg.CMD_CONSTANT_FOOTER).toString());
} }
/** /**
@ -83,4 +129,10 @@ public class AnalysisCacheHandler {
analysis.setTaskId(-1); analysis.setTaskId(-1);
analysisEnabled = true; analysisEnabled = true;
} }
public void addNotification(ISender sender) {
if (CommandUtils.isPlayer(sender)) {
notifyWhenCached.add(((Player) sender.getSender()).getUniqueId());
}
}
} }

View File

@ -47,8 +47,12 @@ public class PunchCardGraphCreator {
if (value == 0) { if (value == 0) {
continue; continue;
} }
arrayBuilder.append("{x:").append(j * 3600000) if (j == 0) {
.append(", y:").append(i) arrayBuilder.append("{x:").append(24 * 3600000);
} else {
arrayBuilder.append("{x:").append(j * 3600000);
}
arrayBuilder.append(", y:").append(i)
.append(", z:").append(value). .append(", z:").append(value).
append(", marker: { radius:").append(value) append(", marker: { radius:").append(value)
.append("}}"); .append("}}");

View File

@ -229,7 +229,7 @@ public class Analysis {
if (analysisTypes.contains(boolTot)) { if (analysisTypes.contains(boolTot)) {
replaceMap.put(source.getPlaceholder(boolTot.getPlaceholderModifier()), AnalysisUtils.getBooleanTotal(boolTot, source, uuids)); replaceMap.put(source.getPlaceholder(boolTot.getPlaceholderModifier()), AnalysisUtils.getBooleanTotal(boolTot, source, uuids));
} }
} catch (Exception | NoClassDefFoundError | NoSuchFieldError e) { } catch (Exception | NoClassDefFoundError | NoSuchFieldError | NoSuchMethodError e) {
Log.error("A PluginData-source caused an exception: " + source.getPlaceholder("").replace("%", "")); Log.error("A PluginData-source caused an exception: " + source.getPlaceholder("").replace("%", ""));
Log.toLog(this.getClass().getName(), e); Log.toLog(this.getClass().getName(), e);

View File

@ -694,7 +694,16 @@
name: 'TPS', name: 'TPS',
data: %tpsseries%, data: %tpsseries%,
type: 'spline', type: 'spline',
color: '#b74343', zones: [{
value: %tpsmedium%,
color: '%tpslowcol%'
}, {
value: %tpshigh%,
color: '%tpsmediumcol%'
}, {
value: 30,
color: '%tpshighcol%'
}],
tooltip: { tooltip: {
valueDecimals: 2 valueDecimals: 2
}, },

View File

@ -70,6 +70,12 @@ Customization:
Secondary: 5cb239 Secondary: 5cb239
Tertiary: 89c471 Tertiary: 89c471
TertiaryDark: 5da341 TertiaryDark: 5da341
TPSGraph:
TPSHigh: 18
TPSMedium: 10
TPSHighCol: 267F00
TPSMediumCol: e5cc12
TPSLowCol: b74343
ActivityGraph: ActivityGraph:
OnlinePlayers: '1E90FF' OnlinePlayers: '1E90FF'
NewPlayers: '228B22' NewPlayers: '228B22'

View File

@ -1,7 +1,7 @@
name: Plan name: Plan
author: Rsl1122 author: Rsl1122
main: main.java.com.djrapitops.plan.Plan main: main.java.com.djrapitops.plan.Plan
version: 3.6.3 version: 3.6.4
softdepend: softdepend:
- OnTime - OnTime
- EssentialsX - EssentialsX