Skip to content

Commit

Permalink
NEEDS LATEST WORLDEDIT - Moved report framework to WorldEdit, and mad…
Browse files Browse the repository at this point in the history
…e most config values be accessible without the BukkitWorldGuardWorldConfiguration
  • Loading branch information
me4502 committed Aug 15, 2018
1 parent 44e3f72 commit b4bda6b
Show file tree
Hide file tree
Showing 28 changed files with 170 additions and 809 deletions.
Expand Up @@ -25,7 +25,7 @@
import com.sk89q.worldguard.protection.managers.storage.DriverType;
import com.sk89q.worldguard.protection.managers.storage.RegionDriver;
import com.sk89q.worldguard.session.handler.WaterBreathing;
import com.sk89q.worldguard.util.report.Unreported;
import com.sk89q.worldedit.util.report.Unreported;

import java.io.File;
import java.util.HashMap;
Expand Down
Expand Up @@ -19,12 +19,15 @@

package com.sk89q.worldguard.config;

import com.sk89q.worldedit.world.entity.EntityType;
import com.sk89q.worldedit.world.registry.LegacyMapper;
import com.sk89q.worldguard.blacklist.Blacklist;
import com.sk89q.worldguard.util.report.Unreported;
import com.sk89q.worldedit.util.report.Unreported;

import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.logging.Logger;
import java.util.stream.Collectors;

Expand Down Expand Up @@ -59,6 +62,101 @@ public abstract class WorldConfiguration {
public boolean simulateSponge;
public int spongeRadius;
public boolean redstoneSponges;
public boolean summaryOnStart;
public boolean opPermissions;
public boolean buildPermissions;
public String buildPermissionDenyMessage = "";
public boolean fireSpreadDisableToggle;
public boolean itemDurability;
public boolean disableExpDrops;
public boolean blockPotionsAlways;
public boolean pumpkinScuba;
public boolean noPhysicsGravel;
public boolean noPhysicsSand;
public boolean ropeLadders;
public boolean allowPortalAnywhere;
public Set<String> preventWaterDamage;
public boolean blockLighter;
public boolean disableFireSpread;
public Set<String> disableFireSpreadBlocks;
public boolean preventLavaFire;
public Set<String> allowedLavaSpreadOver;
public boolean blockTNTExplosions;
public boolean blockTNTBlockDamage;
public boolean blockCreeperExplosions;
public boolean blockCreeperBlockDamage;
public boolean blockWitherExplosions;
public boolean blockWitherBlockDamage;
public boolean blockWitherSkullExplosions;
public boolean blockWitherSkullBlockDamage;
public boolean blockEnderDragonBlockDamage;
public boolean blockEnderDragonPortalCreation;
public boolean blockFireballExplosions;
public boolean blockFireballBlockDamage;
public boolean blockOtherExplosions;
public boolean blockEntityPaintingDestroy;
public boolean blockEntityItemFrameDestroy;
public boolean blockEntityArmorStandDestroy;
public boolean blockPluginSpawning;
public boolean blockGroundSlimes;
public boolean blockZombieDoorDestruction;
public boolean disableContactDamage;
public boolean disableFallDamage;
public boolean disableLavaDamage;
public boolean disableFireDamage;
public boolean disableLightningDamage;
public boolean disableDrowningDamage;
public boolean disableSuffocationDamage;
public boolean teleportOnSuffocation;
public boolean disableVoidDamage;
public boolean teleportOnVoid;
public boolean disableExplosionDamage;
public boolean disableMobDamage;
public boolean highFreqFlags;
public boolean checkLiquidFlow;
public String regionWand;
public Set<EntityType> blockCreatureSpawn;
public boolean allowTamedSpawns;
public int maxClaimVolume;
public boolean claimOnlyInsideExistingRegions;
public int maxRegionCountPerPlayer;
public boolean antiWolfDumbness;
public boolean signChestProtection;
public boolean disableSignChestProtectionCheck;
public boolean removeInfiniteStacks;
public boolean disableCreatureCropTrampling;
public boolean disablePlayerCropTrampling;
public boolean preventLightningFire;
public Set<String> disallowedLightningBlocks;
public boolean disableThunder;
public boolean disableWeather;
public boolean alwaysRaining;
public boolean alwaysThundering;
public boolean disablePigZap;
public boolean disableCreeperPower;
public boolean disableHealthRegain;
public boolean disableMushroomSpread;
public boolean disableIceMelting;
public boolean disableSnowMelting;
public boolean disableSnowFormation;
public boolean disableIceFormation;
public boolean disableLeafDecay;
public boolean disableGrassGrowth;
public boolean disableMyceliumSpread;
public boolean disableVineGrowth;
public boolean disableEndermanGriefing;
public boolean disableSnowmanTrails;
public boolean disableSoilDehydration;
public Set<String> allowedSnowFallOver;
public boolean regionInvinciblityRemovesMobs;
public boolean regionNetherPortalProtection;
public boolean fakePlayerBuildOverride;
public boolean explosionFlagCancellation;
public boolean disableDeathMessages;
public boolean disableObsidianGenerators;
public boolean strictEntitySpawn;
public boolean ignoreHopperMoveEvents;
protected Map<String, Integer> maxRegionCounts;

/**
* Load the configuration.
Expand Down
Expand Up @@ -26,7 +26,7 @@
import com.sk89q.worldguard.protection.managers.storage.RegionDriver;
import com.sk89q.worldguard.protection.managers.storage.file.DirectoryYamlDriver;
import com.sk89q.worldguard.protection.managers.storage.sql.SQLDriver;
import com.sk89q.worldguard.util.report.Unreported;
import com.sk89q.worldedit.util.report.Unreported;
import com.sk89q.worldguard.util.sql.DataSourceConfig;

import java.io.File;
Expand Down
Expand Up @@ -20,7 +20,7 @@
package com.sk89q.worldguard.config;

import com.sk89q.util.yaml.YAMLProcessor;
import com.sk89q.worldguard.util.report.Unreported;
import com.sk89q.worldedit.util.report.Unreported;

import java.util.ArrayList;
import java.util.List;
Expand Down
Expand Up @@ -19,26 +19,29 @@

package com.sk89q.worldguard.util.profiler;

import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;

import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture;

import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
import java.lang.management.ThreadMXBean;
import java.util.*;
import java.util.Map;
import java.util.SortedMap;
import java.util.Timer;
import java.util.TimerTask;
import java.util.TreeMap;
import java.util.concurrent.TimeUnit;

import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
import java.util.function.Predicate;

public class SamplerBuilder {

private static final Timer timer = new Timer("WorldGuard Sampler", true);
private int interval = 100;
private long runTime = TimeUnit.MINUTES.toMillis(5);
private Predicate<ThreadInfo> threadFilter = Predicates.alwaysTrue();
private Predicate<ThreadInfo> threadFilter = thread -> true;

public int getInterval() {
return interval;
Expand Down Expand Up @@ -78,7 +81,7 @@ public static class Sampler extends TimerTask {
private final Predicate<ThreadInfo> threadFilter;
private final long endTime;

private final SortedMap<String, StackNode> nodes = new TreeMap<String, StackNode>();
private final SortedMap<String, StackNode> nodes = new TreeMap<>();
private final ThreadMXBean threadBean = ManagementFactory.getThreadMXBean();
private final SettableFuture<Sampler> future = SettableFuture.create();

Expand Down Expand Up @@ -119,7 +122,7 @@ public synchronized void run() {
String threadName = threadInfo.getThreadName();
StackTraceElement[] stack = threadInfo.getStackTrace();

if (threadName != null && stack != null && threadFilter.apply(threadInfo)) {
if (threadName != null && stack != null && threadFilter.test(threadInfo)) {
StackNode node = getNode(threadName);
node.log(stack, interval);
}
Expand Down
Expand Up @@ -40,13 +40,7 @@ public String getMethodName() {

@Override
public int compareTo(StackNode o) {
if (getTotalTime() == o.getTotalTime()) {
return 0;
} else if (getTotalTime()> o.getTotalTime()) {
return -1;
} else {
return 1;
}
return Long.compare(o.getTotalTime(), getTotalTime());
}

}
Expand Up @@ -19,9 +19,8 @@

package com.sk89q.worldguard.util.profiler;

import com.google.common.base.Predicate;

import java.lang.management.ThreadInfo;
import java.util.function.Predicate;

public class ThreadIdFilter implements Predicate<ThreadInfo> {

Expand All @@ -32,7 +31,7 @@ public ThreadIdFilter(long id) {
}

@Override
public boolean apply(ThreadInfo threadInfo) {
public boolean test(ThreadInfo threadInfo) {
return threadInfo.getThreadId() == id;
}
}
Expand Up @@ -19,9 +19,8 @@

package com.sk89q.worldguard.util.profiler;

import com.google.common.base.Predicate;

import java.lang.management.ThreadInfo;
import java.util.function.Predicate;

import static com.google.common.base.Preconditions.checkNotNull;

Expand All @@ -35,7 +34,7 @@ public ThreadNameFilter(String name) {
}

@Override
public boolean apply(ThreadInfo threadInfo) {
public boolean test(ThreadInfo threadInfo) {
return threadInfo.getThreadName().equalsIgnoreCase(name);
}

Expand Down
Expand Up @@ -17,38 +17,34 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

package com.sk89q.worldguard.bukkit.util.report;
package com.sk89q.worldguard.util.report;

import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.extension.platform.Capability;
import com.sk89q.worldedit.util.report.DataReport;
import com.sk89q.worldedit.util.report.ShallowObjectReport;
import com.sk89q.worldedit.world.World;
import com.sk89q.worldguard.WorldGuard;
import com.sk89q.worldguard.blacklist.Blacklist;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.config.WorldConfiguration;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import com.sk89q.worldguard.util.report.DataReport;
import com.sk89q.worldguard.util.report.RegionReport;
import com.sk89q.worldguard.util.report.ShallowObjectReport;
import org.bukkit.Bukkit;
import org.bukkit.World;

import java.util.List;

public class ConfigReport extends DataReport {

public ConfigReport(WorldGuardPlugin plugin) {
public ConfigReport() {
super("WorldGuard Configuration");

List<World> worlds = Bukkit.getServer().getWorlds();
List<? extends World> worlds = WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS).getWorlds();

append("Configuration", new ShallowObjectReport("Configuration", WorldGuard.getInstance().getPlatform().getGlobalStateManager()));

for (World world : worlds) {
com.sk89q.worldedit.world.World weWorld = BukkitAdapter.adapt(world);
WorldConfiguration config = WorldGuard.getInstance().getPlatform().getGlobalStateManager().get(weWorld);
WorldConfiguration config = WorldGuard.getInstance().getPlatform().getGlobalStateManager().get(world);

DataReport report = new DataReport("World: " + world.getName());
report.append("UUID", world.getUID());
report.append("Configuration", new ShallowObjectReport("Configuration", config));

Blacklist blacklist = config.getBlacklist();
Expand All @@ -61,7 +57,7 @@ public ConfigReport(WorldGuardPlugin plugin) {
report.append("Blacklist", "<Disabled>");
}

RegionManager regions = WorldGuard.getInstance().getPlatform().getRegionContainer().get(weWorld);
RegionManager regions = WorldGuard.getInstance().getPlatform().getRegionContainer().get(world);
if (regions != null) {
DataReport section = new DataReport("Regions");
section.append("Region Count", regions.size());
Expand Down

0 comments on commit b4bda6b

Please sign in to comment.