From d167e750dd8f6de2d93ea7b48ac1083ea4003408 Mon Sep 17 00:00:00 2001 From: Thinkofdeath Date: Tue, 7 Jan 2014 15:56:26 +0000 Subject: [PATCH] Allow statistics to be disabled/forced diff --git a/src/main/java/net/minecraft/server/ServerStatisticManager.java b/src/main/java/net/minecraft/server/ServerStatisticManager.java index 7360141ac..14af226f3 100644 --- a/src/main/java/net/minecraft/server/ServerStatisticManager.java +++ b/src/main/java/net/minecraft/server/ServerStatisticManager.java @@ -30,6 +30,14 @@ public class ServerStatisticManager extends StatisticManager { public ServerStatisticManager(MinecraftServer minecraftserver, File file) { this.c = minecraftserver; this.d = file; + // Spigot start + for ( String name : org.spigotmc.SpigotConfig.forcedStats.keySet() ) + { + StatisticWrapper wrapper = new StatisticWrapper(); + wrapper.a( org.spigotmc.SpigotConfig.forcedStats.get( name ) ); + a.put( StatisticList.getStatistic( name ), wrapper ); + } + // Spigot end } public void a() { @@ -47,6 +55,7 @@ public class ServerStatisticManager extends StatisticManager { } public void b() { + if ( org.spigotmc.SpigotConfig.disableStatSaving ) return; // Spigot try { FileUtils.writeStringToFile(this.d, a(this.a)); } catch (IOException ioexception) { @@ -56,6 +65,7 @@ public class ServerStatisticManager extends StatisticManager { } public void setStatistic(EntityHuman entityhuman, Statistic statistic, int i) { + if ( org.spigotmc.SpigotConfig.disableStatSaving ) return; // Spigot super.setStatistic(entityhuman, statistic, i); this.e.add(statistic); } diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java index d09d53be5..2555cc582 100644 --- a/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java @@ -10,10 +10,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Level; +import gnu.trove.map.hash.TObjectIntHashMap; import net.minecraft.server.MinecraftServer; +import net.minecraft.server.StatisticList; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.Command; +import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; @@ -234,4 +237,29 @@ public class SpigotConfig private static void lateBind() { lateBind = getBoolean( "settings.late-bind", false ); } + + public static boolean disableStatSaving; + public static TObjectIntHashMap forcedStats = new TObjectIntHashMap(); + private static void stats() + { + disableStatSaving = getBoolean( "stats.disable-saving", false ); + + if ( !config.contains( "stats.forced-stats" ) ) { + config.createSection( "stats.forced-stats" ); + } + + ConfigurationSection section = config.getConfigurationSection( "stats.forced-stats" ); + for ( String name : section.getKeys( true ) ) + { + if ( section.isInt( name ) ) + { + if ( StatisticList.getStatistic(name) == null ) + { + Bukkit.getLogger().log(Level.WARNING, "Ignoring non existent stats.forced-stats " + name); + continue; + } + forcedStats.put( name, section.getInt( name ) ); + } + } + } } -- 2.14.1