126 lines
4.6 KiB
Java
126 lines
4.6 KiB
Java
package me.ryanhamshire.GriefPrevention.metrics;
|
|
|
|
import me.ryanhamshire.GriefPrevention.ClaimsMode;
|
|
import me.ryanhamshire.GriefPrevention.GriefPrevention;
|
|
import org.bukkit.World;
|
|
|
|
import java.util.concurrent.Callable;
|
|
|
|
/**
|
|
* Created on 9/22/2018.
|
|
*
|
|
* @author RoboMWM
|
|
*/
|
|
public class MetricsHandler
|
|
{
|
|
private Metrics metrics;
|
|
public MetricsHandler(GriefPrevention plugin, String dataMode)
|
|
{
|
|
metrics = new Metrics(plugin);
|
|
|
|
try
|
|
{
|
|
addSimplePie("custom_build", plugin.getDescription().getVersion().equals("15.2.2"));
|
|
addSimplePie("bukkit_impl", plugin.getServer().getVersion().split("-")[1]);
|
|
}
|
|
catch (Throwable ignored){}
|
|
|
|
//enums and etc. would be amazing.
|
|
|
|
addSimplePie("lock_death_drops_pvp", plugin.config_lockDeathDropsInPvpWorlds);
|
|
addSimplePie("lock_death_drops_nonpvp", plugin.config_lockDeathDropsInNonPvpWorlds);
|
|
|
|
//PvP - only send PvP configs for those who use them
|
|
boolean pvpApplies = false;
|
|
for (World world : plugin.getServer().getWorlds())
|
|
{
|
|
if (plugin.pvpRulesApply(world))
|
|
{
|
|
addSimplePie("no_pvp_in_player_claims", plugin.config_pvp_noCombatInPlayerLandClaims);
|
|
addSimplePie("protect_pets_pvp", plugin.config_pvp_protectPets);
|
|
addSimplePie("protect_fresh_spawns_pvp", plugin.config_pvp_protectFreshSpawns);
|
|
pvpApplies = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
addSimplePie("uses_pvp", pvpApplies);
|
|
|
|
//spam
|
|
addSimplePie("uses_spam", plugin.config_spam_enabled);
|
|
if (plugin.config_spam_enabled)
|
|
{
|
|
addSimplePie("ban_spam_offenders", plugin.config_spam_banOffenders);
|
|
addSimplePie("use_ban_command", plugin.config_ban_useCommand);
|
|
}
|
|
|
|
//Used for claims?
|
|
boolean claimsEnabled = false;
|
|
for (ClaimsMode mode : plugin.config_claims_worldModes.values())
|
|
{
|
|
if (mode != ClaimsMode.Disabled)
|
|
{
|
|
claimsEnabled = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
addSimplePie("uses_claims", claimsEnabled);
|
|
|
|
//Don't send any claim/nature-related configs if claim protections aren't used at all
|
|
if (!claimsEnabled)
|
|
return;
|
|
|
|
//How many people want vanilla fire behavior?
|
|
addSimplePie("fire_spreads", plugin.config_fireSpreads);
|
|
addSimplePie("fire_destroys", plugin.config_fireDestroys);
|
|
|
|
//Everything that is wooden should be accessible by default?
|
|
addSimplePie("lock_wooden_doors", plugin.config_claims_lockWoodenDoors);
|
|
addSimplePie("lock_fence_gates", plugin.config_claims_lockFenceGates);
|
|
addSimplePie("lock_trapdoors", plugin.config_claims_lockTrapDoors);
|
|
|
|
addSimplePie("protect_horses", plugin.config_claims_protectHorses);
|
|
addSimplePie("prevent_buttons_switches", plugin.config_claims_preventButtonsSwitches);
|
|
addSimplePie("villager_trading_requires_trust", plugin.config_claims_villagerTradingRequiresTrust);
|
|
|
|
//CPU-intensive options
|
|
addSimplePie("survival_nature_restoration", plugin.config_claims_survivalAutoNatureRestoration);
|
|
addSimplePie("portals_require_build_permission", plugin.config_claims_portalsRequirePermission);
|
|
addSimplePie("block_sky_trees", plugin.config_blockSkyTrees);
|
|
addSimplePie("limit_tree_growth", plugin.config_limitTreeGrowth);
|
|
|
|
addSimplePie("pistons_only_work_in_claims", plugin.config_pistonsInClaimsOnly);
|
|
addSimplePie("creatures_trample_crops", plugin.config_creaturesTrampleCrops);
|
|
|
|
addSimplePie("claim_tool", plugin.config_claims_modificationTool.name());
|
|
addSimplePie("claim_inspect_tool", plugin.config_claims_investigationTool.name());
|
|
|
|
addSimplePie("block_surface_creeper_explosions", plugin.config_blockSurfaceCreeperExplosions);
|
|
addSimplePie("block_surface_other_explosions", plugin.config_blockSurfaceOtherExplosions);
|
|
addSimplePie("endermen_move_blocks", plugin.config_endermenMoveBlocks);
|
|
|
|
addSimplePie("storage_mode", dataMode);
|
|
|
|
//siege
|
|
addSimplePie("uses_siege", !plugin.config_siege_enabledWorlds.isEmpty());
|
|
}
|
|
|
|
private void addSimplePie(String id, boolean value)
|
|
{
|
|
addSimplePie(id, Boolean.toString(value));
|
|
}
|
|
|
|
private void addSimplePie(String id, String value)
|
|
{
|
|
metrics.addCustomChart(new Metrics.SimplePie(id, new Callable<String>()
|
|
{
|
|
@Override
|
|
public String call() throws Exception
|
|
{
|
|
return value;
|
|
}
|
|
}));
|
|
}
|
|
}
|