mirror of
https://github.com/TotalFreedomMC/TF-WorldGuardExtraFlagsPlugin.git
synced 2024-12-27 01:34:13 +00:00
Added bStats
This commit is contained in:
parent
3fbd10e078
commit
46cc45fc77
5 changed files with 102 additions and 2 deletions
|
@ -1,4 +1,6 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>net.goldtreeservers</groupId>
|
||||
|
@ -25,6 +27,12 @@
|
|||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<relocations>
|
||||
<relocation>
|
||||
<pattern>org.bstats</pattern>
|
||||
<shadedPattern>net.goldtreeservers.worldguardextraflags.bstats</shadedPattern>
|
||||
</relocation>
|
||||
</relocations>
|
||||
<filters>
|
||||
<filter>
|
||||
<artifact>*:*</artifact>
|
||||
|
@ -61,6 +69,10 @@
|
|||
<id>dmulloy2-repo</id>
|
||||
<url>http://repo.dmulloy2.net/nexus/repository/public/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>CodeMC</id>
|
||||
<url>https://repo.codemc.org/repository/maven-public</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<dependencies>
|
||||
|
@ -131,5 +143,11 @@
|
|||
<version>4.5.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.bstats</groupId>
|
||||
<artifactId>bstats-bukkit</artifactId>
|
||||
<version>1.7</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -1,7 +1,14 @@
|
|||
package net.goldtreeservers.worldguardextraflags;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.ParameterizedType;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.block.BlockState;
|
||||
import org.bukkit.event.entity.EntityToggleGlideEvent;
|
||||
|
@ -10,10 +17,12 @@ import org.bukkit.plugin.Plugin;
|
|||
|
||||
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
||||
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
||||
import com.sk89q.worldguard.protection.flags.Flag;
|
||||
|
||||
import lombok.Getter;
|
||||
import net.goldtreeservers.worldguardextraflags.essentials.EssentialsHelper;
|
||||
import net.goldtreeservers.worldguardextraflags.fawe.FAWEHelper;
|
||||
import net.goldtreeservers.worldguardextraflags.flags.Flags;
|
||||
import net.goldtreeservers.worldguardextraflags.listeners.BlockListener;
|
||||
import net.goldtreeservers.worldguardextraflags.listeners.EntityListener;
|
||||
import net.goldtreeservers.worldguardextraflags.listeners.EntityListenerOnePointNine;
|
||||
|
@ -192,6 +201,58 @@ public class WorldGuardExtraFlagsPlugin extends AbstractWorldGuardExtraFlagsPlug
|
|||
{
|
||||
this.getWorldGuardCommunicator().doUnloadChunkFlagCheck(world);
|
||||
}
|
||||
|
||||
this.setupMetrics();
|
||||
}
|
||||
|
||||
private void setupMetrics()
|
||||
{
|
||||
final int bStatsPluginId = 7301;
|
||||
|
||||
Metrics metrics = new Metrics(this, bStatsPluginId);
|
||||
metrics.addCustomChart(new Metrics.AdvancedPie("flags_count", new Callable<Map<String, Integer>>()
|
||||
{
|
||||
private final Set<Flag<?>> flags = WorldGuardExtraFlagsPlugin.this.getPluginFlags();
|
||||
|
||||
@Override
|
||||
public Map<String, Integer> call() throws Exception
|
||||
{
|
||||
Map<Flag<?>, Integer> valueMap = this.flags.stream().collect(Collectors.toMap((v) -> v, (v) -> 0));
|
||||
|
||||
WorldGuardExtraFlagsPlugin.this.getWorldGuardCommunicator().getRegionContainer().getLoaded().forEach((m) ->
|
||||
{
|
||||
m.getRegions().values().forEach((r) ->
|
||||
{
|
||||
r.getFlags().keySet().forEach((f) ->
|
||||
{
|
||||
valueMap.computeIfPresent(f, (k, v) -> v + 1);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
return valueMap.entrySet().stream().collect(Collectors.toMap((v) -> v.getKey().getName(), (v) -> v.getValue()));
|
||||
}
|
||||
}));
|
||||
|
||||
System.out.println(metrics.getPluginData().toString());
|
||||
}
|
||||
|
||||
private Set<Flag<?>> getPluginFlags()
|
||||
{
|
||||
Set<Flag<?>> flags = new HashSet<>();
|
||||
|
||||
for (Field field : Flags.class.getFields())
|
||||
{
|
||||
try
|
||||
{
|
||||
flags.add((Flag<?>)field.get(null));
|
||||
}
|
||||
catch (IllegalArgumentException | IllegalAccessException e)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
return flags;
|
||||
}
|
||||
|
||||
public static WorldGuardCommunicator createWorldGuardCommunicator()
|
||||
|
|
|
@ -1,9 +1,13 @@
|
|||
package net.goldtreeservers.worldguardextraflags.wg.wrappers;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.World;
|
||||
|
||||
public abstract class AbstractRegionContainerWrapper
|
||||
{
|
||||
public abstract AbstractRegionQueryWrapper createQuery();
|
||||
public abstract AbstractRegionManagerWrapper get(World world);
|
||||
|
||||
public abstract List<AbstractRegionManagerWrapper> getLoaded();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package net.goldtreeservers.worldguardextraflags.wg.wrappers.v6;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.bukkit.World;
|
||||
|
||||
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
||||
|
@ -21,4 +24,10 @@ public class RegionContainerWrapper extends AbstractRegionContainerWrapper
|
|||
{
|
||||
return new RegionManagerWrapper(WorldGuardPlugin.inst().getRegionManager(world));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AbstractRegionManagerWrapper> getLoaded()
|
||||
{
|
||||
return WorldGuardPlugin.inst().getRegionContainer().getLoaded().stream().map((m) -> new RegionManagerWrapper(m)).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
package net.goldtreeservers.worldguardextraflags.wg.wrappers.v7;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.bukkit.World;
|
||||
|
||||
import com.sk89q.worldedit.bukkit.BukkitAdapter;
|
||||
|
@ -11,7 +14,6 @@ import net.goldtreeservers.worldguardextraflags.wg.wrappers.AbstractRegionQueryW
|
|||
|
||||
public class RegionContainerWrapper extends AbstractRegionContainerWrapper
|
||||
{
|
||||
|
||||
@Override
|
||||
public AbstractRegionQueryWrapper createQuery()
|
||||
{
|
||||
|
@ -23,4 +25,10 @@ public class RegionContainerWrapper extends AbstractRegionContainerWrapper
|
|||
{
|
||||
return new RegionManagerWrapper(WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(world)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AbstractRegionManagerWrapper> getLoaded()
|
||||
{
|
||||
return WorldGuard.getInstance().getPlatform().getRegionContainer().getLoaded().stream().map((m) -> new RegionManagerWrapper(m)).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue