101 lines
3.9 KiB
Diff
101 lines
3.9 KiB
Diff
From 4e6febc78313c1e5344d05b05d0931df148f6c4f Mon Sep 17 00:00:00 2001
|
|
From: Thinkofdeath <thethinkofdeath@gmail.com>
|
|
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 4561825..ff35b43 100644
|
|
--- a/src/main/java/net/minecraft/server/ServerStatisticManager.java
|
|
+++ b/src/main/java/net/minecraft/server/ServerStatisticManager.java
|
|
@@ -31,6 +31,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() {
|
|
@@ -48,6 +56,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) {
|
|
@@ -57,6 +66,7 @@ public class ServerStatisticManager extends StatisticManager {
|
|
}
|
|
|
|
public void setStatistic(EntityHuman entityhuman, Statistic statistic, int i) {
|
|
+ if ( org.spigotmc.SpigotConfig.disableStatSaving ) return; // Spigot
|
|
int j = statistic.d() ? this.getStatisticValue(statistic) : 0;
|
|
|
|
super.setStatistic(entityhuman, statistic, i);
|
|
@@ -210,4 +220,4 @@ public class ServerStatisticManager extends StatisticManager {
|
|
return this.g;
|
|
}
|
|
|
|
-}
|
|
+}
|
|
\ No newline at end of file
|
|
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
|
|
index f3187f8..9566cfa 100644
|
|
--- a/src/main/java/org/spigotmc/SpigotConfig.java
|
|
+++ b/src/main/java/org/spigotmc/SpigotConfig.java
|
|
@@ -10,10 +10,12 @@ 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 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;
|
|
|
|
@@ -232,4 +234,31 @@ public class SpigotConfig
|
|
private static void lateBind() {
|
|
lateBind = getBoolean( "settings.late-bind", false );
|
|
}
|
|
+
|
|
+ public static boolean disableStatSaving;
|
|
+ public static TObjectIntHashMap<String> forcedStats = new TObjectIntHashMap<String>();
|
|
+ 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 ) )
|
|
+ {
|
|
+ forcedStats.put( name, section.getInt( name ) );
|
|
+ }
|
|
+ }
|
|
+
|
|
+ if ( disableStatSaving && section.getInt( "achievement.openInventory", 0 ) < 1 )
|
|
+ {
|
|
+ Bukkit.getLogger().warning( "*** WARNING *** stats.disable-saving is true but stats.forced-stats.achievement.openInventory" +
|
|
+ " isn't set to 1. Disabling stat saving without forcing the achievement may cause it to get stuck on the player's " +
|
|
+ "screen." );
|
|
+ }
|
|
+ }
|
|
}
|
|
--
|
|
2.1.0
|
|
|