mirror of
https://github.com/Multiverse/Multiverse-Core.git
synced 2025-02-16 20:41:59 +01:00
Metrics!
This commit is contained in:
parent
3e7841afc9
commit
8a4ba2a66c
18
pom.xml
18
pom.xml
@ -20,6 +20,10 @@
|
|||||||
<id>Bukkit Official</id>
|
<id>Bukkit Official</id>
|
||||||
<url>http://repo.bukkit.org/content/repositories/public</url>
|
<url>http://repo.bukkit.org/content/repositories/public</url>
|
||||||
</repository>
|
</repository>
|
||||||
|
<repository>
|
||||||
|
<id>mcstats</id>
|
||||||
|
<url>http://repo.mcstats.org/content/repositories/snapshots</url>
|
||||||
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<pluginRepositories>
|
<pluginRepositories>
|
||||||
@ -152,6 +156,7 @@
|
|||||||
<include>me.main__.util:SerializationConfig</include>
|
<include>me.main__.util:SerializationConfig</include>
|
||||||
<include>com.fernferret.allpay:AllPay</include>
|
<include>com.fernferret.allpay:AllPay</include>
|
||||||
<include>com.pneumaticraft.commandhandler:CommandHandler</include>
|
<include>com.pneumaticraft.commandhandler:CommandHandler</include>
|
||||||
|
<include>org.mcstats:metrics</include>
|
||||||
</includes>
|
</includes>
|
||||||
</artifactSet>
|
</artifactSet>
|
||||||
<relocations>
|
<relocations>
|
||||||
@ -167,6 +172,10 @@
|
|||||||
<pattern>com.pneumaticraft.commandhandler</pattern>
|
<pattern>com.pneumaticraft.commandhandler</pattern>
|
||||||
<shadedPattern>com.pneumaticraft.commandhandler.multiverse</shadedPattern>
|
<shadedPattern>com.pneumaticraft.commandhandler.multiverse</shadedPattern>
|
||||||
</relocation>
|
</relocation>
|
||||||
|
<relocation>
|
||||||
|
<pattern>org.mcstats</pattern>
|
||||||
|
<shadedPattern>org.mcstats.multiverse</shadedPattern>
|
||||||
|
</relocation>
|
||||||
</relocations>
|
</relocations>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
@ -221,6 +230,15 @@
|
|||||||
<scope>compile</scope>
|
<scope>compile</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- End of CommandHandler Dependency -->
|
<!-- End of CommandHandler Dependency -->
|
||||||
|
<!-- Start of Metrics Dependency -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mcstats</groupId>
|
||||||
|
<artifactId>metrics</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<type>jar</type>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
<!-- End of Metrics Dependency -->
|
||||||
<!-- Start of Test Dependencies -->
|
<!-- Start of Test Dependencies -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>junit</groupId>
|
<groupId>junit</groupId>
|
||||||
|
@ -75,6 +75,7 @@ import com.pneumaticraft.commandhandler.CommandHandler;
|
|||||||
import me.main__.util.SerializationConfig.SerializationConfig;
|
import me.main__.util.SerializationConfig.SerializationConfig;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World.Environment;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.configuration.Configuration;
|
import org.bukkit.configuration.Configuration;
|
||||||
@ -84,6 +85,7 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.PluginManager;
|
import org.bukkit.plugin.PluginManager;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
import org.mcstats.Metrics;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -91,10 +93,12 @@ import java.util.ArrayList;
|
|||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
@ -303,6 +307,95 @@ public class MultiverseCore extends JavaPlugin implements MVPlugin, Core {
|
|||||||
this.log(Level.INFO, "Spout integration enabled.");
|
this.log(Level.INFO, "Spout integration enabled.");
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
this.setupMetrics();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plotter for Environment-Values.
|
||||||
|
*/
|
||||||
|
private static final class EnvironmentPlotter extends Metrics.Plotter {
|
||||||
|
private MultiverseCore core;
|
||||||
|
private final Environment env;
|
||||||
|
|
||||||
|
public EnvironmentPlotter(MultiverseCore core, Environment env) {
|
||||||
|
super(envToString(env));
|
||||||
|
this.core = core;
|
||||||
|
this.env = env;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String envToString(Environment env) {
|
||||||
|
return new StringBuilder().append(env.name().toUpperCase().charAt(0))
|
||||||
|
.append(env.name().toLowerCase().substring(1)).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getValue() {
|
||||||
|
int count = 0;
|
||||||
|
for (MultiverseWorld w : core.getMVWorldManager().getMVWorlds())
|
||||||
|
if (w.getEnvironment() == env)
|
||||||
|
count++;
|
||||||
|
System.out.println(String.format("Tracking %d worlds of type %s", count, env));
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Plotter for Generator-Values.
|
||||||
|
*/
|
||||||
|
private static final class GeneratorPlotter extends Metrics.Plotter {
|
||||||
|
private MultiverseCore core;
|
||||||
|
private final String gen;
|
||||||
|
|
||||||
|
public GeneratorPlotter(MultiverseCore core, String gen) {
|
||||||
|
super(gen);
|
||||||
|
this.core = core;
|
||||||
|
this.gen = gen;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getValue() {
|
||||||
|
int count = 0;
|
||||||
|
for (MultiverseWorld w : core.getMVWorldManager().getMVWorlds())
|
||||||
|
if (w.getGenerator().equals(gen))
|
||||||
|
count++;
|
||||||
|
System.out.println(String.format("Tracking %d worlds of type %s", count, gen));
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setupMetrics() {
|
||||||
|
try {
|
||||||
|
Metrics m = new Metrics(this);
|
||||||
|
|
||||||
|
|
||||||
|
Metrics.Graph envGraph = m.createGraph("worlds_by_env");
|
||||||
|
for (Environment env : Environment.values())
|
||||||
|
envGraph.addPlotter(new EnvironmentPlotter(this, env));
|
||||||
|
|
||||||
|
|
||||||
|
m.addCustomData(new Metrics.Plotter("world_count") {
|
||||||
|
@Override
|
||||||
|
public int getValue() {
|
||||||
|
return getMVWorldManager().getMVWorlds().size();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Set<String> gens = new HashSet<String>();
|
||||||
|
for (MultiverseWorld w : this.getMVWorldManager().getMVWorlds())
|
||||||
|
gens.add(w.getGenerator());
|
||||||
|
gens.remove(null);
|
||||||
|
gens.remove("null");
|
||||||
|
Metrics.Graph genGraph = m.createGraph("custom_gens");
|
||||||
|
for (String gen : gens)
|
||||||
|
genGraph.addPlotter(new GeneratorPlotter(this, gen));
|
||||||
|
|
||||||
|
m.start();
|
||||||
|
System.out.println("Metrics have run!");
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initializeDestinationFactory() {
|
private void initializeDestinationFactory() {
|
||||||
|
@ -30,6 +30,7 @@ import org.bukkit.scheduler.BukkitScheduler;
|
|||||||
import org.mockito.Matchers;
|
import org.mockito.Matchers;
|
||||||
import org.mockito.invocation.InvocationOnMock;
|
import org.mockito.invocation.InvocationOnMock;
|
||||||
import org.mockito.stubbing.Answer;
|
import org.mockito.stubbing.Answer;
|
||||||
|
import org.powermock.api.easymock.PowerMock;
|
||||||
import org.powermock.api.mockito.PowerMockito;
|
import org.powermock.api.mockito.PowerMockito;
|
||||||
import org.powermock.core.MockGateway;
|
import org.powermock.core.MockGateway;
|
||||||
|
|
||||||
@ -60,6 +61,12 @@ public class TestInstanceCreator {
|
|||||||
MockGateway.MOCK_STANDARD_METHODS = false;
|
MockGateway.MOCK_STANDARD_METHODS = false;
|
||||||
|
|
||||||
core = PowerMockito.spy(new MultiverseCore());
|
core = PowerMockito.spy(new MultiverseCore());
|
||||||
|
PowerMockito.doAnswer(new Answer<Void>() {
|
||||||
|
@Override
|
||||||
|
public Void answer(InvocationOnMock invocation) throws Throwable {
|
||||||
|
return null; // don't run metrics in tests
|
||||||
|
}
|
||||||
|
}).when(core, "setupMetrics");
|
||||||
|
|
||||||
// Let's let all MV files go to bin/test
|
// Let's let all MV files go to bin/test
|
||||||
doReturn(pluginDirectory).when(core).getDataFolder();
|
doReturn(pluginDirectory).when(core).getDataFolder();
|
||||||
|
Loading…
Reference in New Issue
Block a user