Reformat code

This commit is contained in:
sauilitired
2018-08-10 17:01:10 +02:00
parent 02ee1e8fa1
commit 1646cd0f5a
437 changed files with 12795 additions and 14203 deletions

View File

@ -1,8 +1,8 @@
repositories {
maven { url = "https://oss.sonatype.org/content/repositories/snapshots/"}
maven {url "http://nexus.hc.to/content/repositories/pub_releases"}
maven {url "https://repo.potestas.xyz/main/"}
flatDir {dirs 'lib'}
maven { url = "https://oss.sonatype.org/content/repositories/snapshots/" }
maven { url "http://nexus.hc.to/content/repositories/pub_releases" }
maven { url "https://repo.potestas.xyz/main/" }
flatDir { dirs 'lib' }
}
dependencies {
@ -23,8 +23,8 @@ processResources {
from('src/main/resources') {
include 'plugin.yml'
expand(
name: project.parent.name,
version: project.parent.version
name: project.parent.name,
version: project.parent.version
)
}
}
@ -45,7 +45,7 @@ shadowJar {
shadowJar.doLast {
task ->
ant.checksum file: task.archivePath
ant.checksum file: task.archivePath
}
build.dependsOn(shadowJar);

View File

@ -8,7 +8,6 @@ import cn.nukkit.event.Listener;
import cn.nukkit.level.Level;
import cn.nukkit.level.format.FullChunk;
import cn.nukkit.level.generator.Generator;
import cn.nukkit.level.generator.Normal;
import cn.nukkit.metadata.MetadataValue;
import cn.nukkit.plugin.Plugin;
import cn.nukkit.plugin.PluginBase;
@ -35,9 +34,9 @@ import com.plotsquared.nukkit.util.block.NukkitLocalQueue;
import com.plotsquared.nukkit.uuid.FileUUIDHandler;
import com.plotsquared.nukkit.uuid.LowerOfflineUUIDWrapper;
import com.sk89q.worldedit.WorldEdit;
import java.io.File;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.util.*;
public final class NukkitMain extends PluginBase implements Listener, IPlotMain {
@ -47,8 +46,7 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
private int[] version;
private String name;
@Override
public int[] getServerVersion() {
@Override public int[] getServerVersion() {
if (this.version == null) {
try {
this.version = new int[3];
@ -59,14 +57,13 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
this.version[2] = Integer.parseInt(split[2]);
}
} catch (NumberFormatException e) {
return new int[]{1, 0, 0};
return new int[] {1, 0, 0};
}
}
return this.version;
}
@Override
public void onEnable() {
@Override public void onEnable() {
try {
this.name = getDescription().getName();
getServer().getName();
@ -80,8 +77,7 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
Generator.addGenerator(NukkitHybridGen.class, getPluginName(), 1);
if (Settings.Enabled_Components.WORLDS) {
TaskManager.IMP.taskRepeat(new Runnable() {
@Override
public void run() {
@Override public void run() {
unload();
}
}, 20);
@ -130,14 +126,12 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
}
}
@Override
public void onDisable() {
@Override public void onDisable() {
PS.get().disable();
getServer().getScheduler().cancelAllTasks();
}
@Override
public void log(String message) {
@Override public void log(String message) {
try {
message = C.color(message);
if (!Settings.Chat.CONSOLE_COLOR) {
@ -149,60 +143,52 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
}
}
@Override
public void disable() {
@Override public void disable() {
onDisable();
}
@Override
public int[] getPluginVersion() {
@Override public int[] getPluginVersion() {
String ver = getDescription().getVersion();
if (ver.contains("-")) {
ver = ver.split("-")[0];
}
String[] split = ver.split("\\.");
return new int[]{Integer.parseInt(split[0]), Integer.parseInt(split[1]), Integer.parseInt(split[2])};
return new int[] {Integer.parseInt(split[0]), Integer.parseInt(split[1]),
Integer.parseInt(split[2])};
}
@Override public String getPluginVersionString() {
return getDescription().getVersion();
}
@Override
public String getPluginName() {
@Override public String getPluginName() {
return name;
}
@Override
public void registerCommands() {
NukkitCommand bukkitCommand = new NukkitCommand("plot", new String[] {"p","plot","ps","plotsquared","p2","2"});
@Override public void registerCommands() {
NukkitCommand bukkitCommand =
new NukkitCommand("plot", new String[] {"p", "plot", "ps", "plotsquared", "p2", "2"});
getServer().getCommandMap().register("plot", bukkitCommand);
}
@Override
public File getDirectory() {
@Override public File getDirectory() {
return getDataFolder();
}
@Override
public File getWorldContainer() {
@Override public File getWorldContainer() {
return new File("worlds");
}
@Override
public TaskManager getTaskManager() {
@Override public TaskManager getTaskManager() {
return new NukkitTaskManager(this);
}
@Override
public void runEntityTask() {
@Override public void runEntityTask() {
PS.log(C.PREFIX + "KillAllEntities started.");
TaskManager.runTaskRepeat(new Runnable() {
@Override
public void run() {
@Override public void run() {
PS.get().foreachPlotArea(new RunnableVal<PlotArea>() {
@Override
public void run(PlotArea plotArea) {
@Override public void run(PlotArea plotArea) {
Level world = getServer().getLevelByName(plotArea.worldname);
try {
if (world == null) {
@ -213,7 +199,8 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
if (entity instanceof Player) {
continue;
}
com.intellectualcrafters.plot.object.Location location = NukkitUtil.getLocation(entity.getLocation());
com.intellectualcrafters.plot.object.Location location =
NukkitUtil.getLocation(entity.getLocation());
Plot plot = location.getPlot();
if (plot == null) {
if (location.isPlotArea()) {
@ -240,28 +227,23 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
}, 20);
}
@Override
public void registerPlayerEvents() {
@Override public void registerPlayerEvents() {
getServer().getPluginManager().registerEvents(new PlayerEvents(), this);
}
@Override
public void registerInventoryEvents() {
@Override public void registerInventoryEvents() {
PS.debug("Not implemented: registerPlotPlusEvents");
}
@Override
public void registerPlotPlusEvents() {
@Override public void registerPlotPlusEvents() {
PS.debug("Not implemented: registerPlotPlusEvents");
}
@Override
public void registerForceFieldEvents() {
@Override public void registerForceFieldEvents() {
PS.debug("Not implemented: registerPlotPlusEvents");
}
@Override
public boolean initWorldEdit() {
@Override public boolean initWorldEdit() {
if (getServer().getPluginManager().getPlugin("WorldEdit") != null) {
worldEdit = WorldEdit.getInstance();
return true;
@ -269,28 +251,23 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
return false;
}
@Override
public EconHandler getEconomyHandler() {
@Override public EconHandler getEconomyHandler() {
return null;
}
@Override
public QueueProvider initBlockQueue() {
@Override public QueueProvider initBlockQueue() {
return QueueProvider.of(NukkitLocalQueue.class, null);
}
@Override
public WorldUtil initWorldUtil() {
@Override public WorldUtil initWorldUtil() {
return new NukkitUtil(this);
}
@Override
public boolean initPlotMeConverter() {
@Override public boolean initPlotMeConverter() {
return false; // No PlotMe for MCPE
}
@Override
public GeneratorWrapper<?> getGenerator(String world, String name) {
@Override public GeneratorWrapper<?> getGenerator(String world, String name) {
if (name == null) {
return null;
}
@ -318,66 +295,56 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
return new NukkitHybridGen(map);
}
@Override
public HybridUtils initHybridUtils() {
@Override public HybridUtils initHybridUtils() {
return new NukkitHybridUtils();
}
@Override
public SetupUtils initSetupUtils() {
@Override public SetupUtils initSetupUtils() {
return new NukkitSetupUtils(this);
}
@Override
public UUIDHandlerImplementation initUUIDHandler() {
@Override public UUIDHandlerImplementation initUUIDHandler() {
Settings.UUID.FORCE_LOWERCASE = true;
Settings.UUID.OFFLINE = true;
LowerOfflineUUIDWrapper wrapper = new LowerOfflineUUIDWrapper();
return new FileUUIDHandler(wrapper);
}
@Override
public ChunkManager initChunkManager() {
@Override public ChunkManager initChunkManager() {
return new NukkitChunkManager();
}
@Override
public EventUtil initEventUtil() {
@Override public EventUtil initEventUtil() {
return new NukkitEventUtil(this);
}
@Override
public void unregister(PlotPlayer player) {
@Override public void unregister(PlotPlayer player) {
NukkitUtil.removePlayer(player.getName());
}
@Override
public void registerChunkProcessor() {
@Override public void registerChunkProcessor() {
PS.debug("Not implemented: registerChunkProcessor");
}
@Override
public void registerWorldEvents() {
@Override public void registerWorldEvents() {
getServer().getPluginManager().registerEvents(new WorldEvents(), this);
}
@Override
public InventoryUtil initInventoryUtil() {
@Override public InventoryUtil initInventoryUtil() {
return new NukkitInventoryUtil();
}
@Override
public void startMetrics() {
@Override public void startMetrics() {
new Metrics(this).start();
PS.log(C.PREFIX + "&6Metrics enabled.");
}
@Override
public void setGenerator(String worldName) {
@Override public void setGenerator(String worldName) {
Level world = getServer().getLevelByName(worldName);
if (world == null) {
// create world
ConfigurationSection worldConfig = PS.get().worlds.getConfigurationSection("worlds." + worldName);
ConfigurationSection worldConfig =
PS.get().worlds.getConfigurationSection("worlds." + worldName);
String manager = worldConfig.getString("generator.plugin", getPluginName());
SetupObject setup = new SetupObject();
setup.plotManager = manager;
@ -423,18 +390,15 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
}
}
@Override
public SchematicHandler initSchematicHandler() {
@Override public SchematicHandler initSchematicHandler() {
return new NukkitSchematicHandler(this);
}
@Override
public AbstractTitle initTitleManager() {
@Override public AbstractTitle initTitleManager() {
return new NukkitTitleUtil();
}
@Override
public PlotPlayer wrapPlayer(Object player) {
@Override public PlotPlayer wrapPlayer(Object player) {
if (player instanceof Player) {
return NukkitUtil.getPlayer((Player) player);
}
@ -450,13 +414,11 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
return null;
}
@Override
public String getNMSPackage() {
@Override public String getNMSPackage() {
return "";
}
@Override
public ChatManager<?> initChatManager() {
@Override public ChatManager<?> initChatManager() {
return new PlainChatManager();
}
@ -468,24 +430,22 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain
return new NukkitPlotGenerator(settings);
}
@Override
public List<String> getPluginIds() {
@Override public List<String> getPluginIds() {
ArrayList<String> names = new ArrayList<>();
for (Map.Entry<String, Plugin> entry : getServer().getPluginManager().getPlugins().entrySet()) {
for (Map.Entry<String, Plugin> entry : getServer().getPluginManager().getPlugins()
.entrySet()) {
Plugin plugin = entry.getValue();
names.add(entry.getKey() + ';' + plugin.getDescription().getVersion() + ':' + plugin.isEnabled());
names.add(entry.getKey() + ';' + plugin.getDescription().getVersion() + ':' + plugin
.isEnabled());
}
return names;
}
@Override
public IndependentPlotGenerator getDefaultGenerator() {
@Override public IndependentPlotGenerator getDefaultGenerator() {
return new HybridGen() {
@Override
public PlotManager getNewPlotManager() {
@Override public PlotManager getNewPlotManager() {
return new HybridPlotManager() {
@Override
public int getWorldHeight() {
@Override public int getWorldHeight() {
return 255;
}
};

View File

@ -19,7 +19,7 @@ public class ClusterFlagRemoveEvent extends Event implements Cancellable {
/**
* PlotFlagRemoveEvent: Called when a flag is removed from a plot.
*
* @param flag Flag that was removed
* @param flag Flag that was removed
* @param cluster PlotCluster from which the flag was removed
*/
public ClusterFlagRemoveEvent(Flag flag, PlotCluster cluster) {
@ -49,13 +49,11 @@ public class ClusterFlagRemoveEvent extends Event implements Cancellable {
return this.flag;
}
@Override
public boolean isCancelled() {
@Override public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(boolean b) {
@Override public void setCancelled(boolean b) {
this.cancelled = b;
}
}

View File

@ -45,13 +45,11 @@ public class PlayerClaimPlotEvent extends PlayerEvent implements Cancellable {
return this.auto;
}
@Override
public boolean isCancelled() {
@Override public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(boolean b) {
@Override public void setCancelled(boolean b) {
this.cancelled = b;
}
}

View File

@ -3,6 +3,7 @@ package com.plotsquared.nukkit.events;
import cn.nukkit.Player;
import cn.nukkit.event.HandlerList;
import com.intellectualcrafters.plot.object.Plot;
import java.util.UUID;
public class PlayerPlotDeniedEvent extends PlotEvent {

View File

@ -3,6 +3,7 @@ package com.plotsquared.nukkit.events;
import cn.nukkit.Player;
import cn.nukkit.event.HandlerList;
import com.intellectualcrafters.plot.object.Plot;
import java.util.UUID;
/**

View File

@ -3,6 +3,7 @@ package com.plotsquared.nukkit.events;
import cn.nukkit.Player;
import cn.nukkit.event.HandlerList;
import com.intellectualcrafters.plot.object.Plot;
import java.util.UUID;
/**

View File

@ -9,9 +9,6 @@ import com.intellectualcrafters.plot.object.Plot;
/**
* Called when a player teleports to a plot
*
*/
public class PlayerTeleportToPlotEvent extends PlayerEvent implements Cancellable {
@ -56,8 +53,7 @@ public class PlayerTeleportToPlotEvent extends PlayerEvent implements Cancellabl
return this.plot;
}
@Override
public boolean isCancelled() {
@Override public boolean isCancelled() {
return this.cancelled;
}
}

View File

@ -7,12 +7,12 @@ import com.intellectualcrafters.plot.object.PlotId;
/**
* Called when a plot is cleared
*
*/
public class PlotClearEvent extends PlotEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private boolean cancelled;
public PlotClearEvent(Plot plot) {
super(plot);
}
@ -40,13 +40,11 @@ public class PlotClearEvent extends PlotEvent implements Cancellable {
}
@Override
public boolean isCancelled() {
@Override public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(boolean b) {
@Override public void setCancelled(boolean b) {
this.cancelled = b;
}
}

View File

@ -6,7 +6,6 @@ import com.intellectualcrafters.plot.object.PlotId;
/**
* Called when a plot component is set
*
*/
public class PlotComponentSetEvent extends PlotEvent {

View File

@ -6,7 +6,6 @@ import com.intellectualcrafters.plot.object.PlotId;
/**
* Called when a plot is deleted
*
*/
public class PlotDeleteEvent extends PlotEvent {

View File

@ -7,7 +7,6 @@ import com.intellectualcrafters.plot.object.Plot;
/**
* Called when a Flag is added to a plot.
*
*/
public class PlotFlagAddEvent extends PlotEvent implements Cancellable {
@ -39,13 +38,11 @@ public class PlotFlagAddEvent extends PlotEvent implements Cancellable {
return this.flag;
}
@Override
public final boolean isCancelled() {
@Override public final boolean isCancelled() {
return this.cancelled;
}
@Override
public final void setCancelled(boolean cancelled) {
@Override public final void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}
}

View File

@ -7,7 +7,6 @@ import com.intellectualcrafters.plot.object.Plot;
/**
* Called when a flag is removed from a plot
*
*/
public class PlotFlagRemoveEvent extends PlotEvent implements Cancellable {
@ -39,13 +38,11 @@ public class PlotFlagRemoveEvent extends PlotEvent implements Cancellable {
return this.flag;
}
@Override
public final boolean isCancelled() {
@Override public final boolean isCancelled() {
return this.cancelled;
}
@Override
public final void setCancelled(boolean cancelled) {
@Override public final void setCancelled(boolean cancelled) {
this.cancelled = cancelled;
}
}

View File

@ -5,6 +5,7 @@ import cn.nukkit.event.HandlerList;
import cn.nukkit.level.Level;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
import java.util.ArrayList;
public class PlotMergeEvent extends PlotEvent implements Cancellable {
@ -44,13 +45,11 @@ public class PlotMergeEvent extends PlotEvent implements Cancellable {
return this.world;
}
@Override
public boolean isCancelled() {
@Override public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(boolean b) {
@Override public void setCancelled(boolean b) {
this.cancelled = b;
}
}

View File

@ -6,6 +6,7 @@ import cn.nukkit.event.HandlerList;
import cn.nukkit.level.Level;
import com.intellectualcrafters.plot.object.PlotArea;
import com.intellectualcrafters.plot.object.PlotId;
import java.util.ArrayList;
public class PlotUnlinkEvent extends Event implements Cancellable {
@ -49,13 +50,11 @@ public class PlotUnlinkEvent extends Event implements Cancellable {
return this.area;
}
@Override
public boolean isCancelled() {
@Override public boolean isCancelled() {
return this.cancelled;
}
@Override
public void setCancelled(boolean b) {
@Override public void setCancelled(boolean b) {
this.cancelled = b;
}
}

View File

@ -8,12 +8,14 @@ import cn.nukkit.level.format.FullChunk;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.generator.AugmentedUtils;
import com.plotsquared.nukkit.NukkitMain;
import java.util.concurrent.ConcurrentHashMap;
public class NukkitAugmentedGenerator implements Listener {
private static NukkitAugmentedGenerator generator;
private static ConcurrentHashMap<String, NukkitAugmentedGenerator> generators = new ConcurrentHashMap<>();
private static ConcurrentHashMap<String, NukkitAugmentedGenerator> generators =
new ConcurrentHashMap<>();
private NukkitAugmentedGenerator(NukkitMain plugin) {
plugin.getServer().getPluginManager().registerEvents(this, plugin);
@ -32,8 +34,7 @@ public class NukkitAugmentedGenerator implements Listener {
return generator;
}
@EventHandler
private void onChunkLoad(ChunkLoadEvent event) {
@EventHandler private void onChunkLoad(ChunkLoadEvent event) {
Level level = event.getLevel();
generator = generators.get(level.getName());
if (generator != null) {

View File

@ -7,17 +7,13 @@ import cn.nukkit.math.Vector3;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.generator.GeneratorWrapper;
import com.intellectualcrafters.plot.generator.IndependentPlotGenerator;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.PlotArea;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotManager;
import com.intellectualcrafters.plot.object.PseudoRandom;
import com.intellectualcrafters.plot.object.SetupObject;
import com.intellectualcrafters.plot.object.*;
import com.intellectualcrafters.plot.util.ChunkManager;
import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.block.ScopedLocalBlockQueue;
import com.plotsquared.nukkit.util.NukkitUtil;
import com.plotsquared.nukkit.util.block.NukkitWrappedChunk;
import java.util.Map;
public class NukkitPlotGenerator extends Generator implements GeneratorWrapper<Generator> {
@ -28,9 +24,9 @@ public class NukkitPlotGenerator extends Generator implements GeneratorWrapper<G
protected final boolean full;
protected final String world;
protected final Map<String, Object> settings;
protected final NukkitWrappedChunk chunkSetter;
protected boolean loaded = false;
protected cn.nukkit.level.ChunkManager chunkManager;
protected final NukkitWrappedChunk chunkSetter;
public NukkitPlotGenerator(Map<String, Object> map) {
if (map == null) {
@ -42,25 +38,24 @@ public class NukkitPlotGenerator extends Generator implements GeneratorWrapper<G
if (map.containsKey("generator")) {
final Generator cg = (Generator) map.get("generator");
if (cg instanceof NukkitPlotGenerator) {
throw new IllegalArgumentException("Generator: " + cg.getClass().getName() + " is already a NukkitPlotGenerator!");
throw new IllegalArgumentException(
"Generator: " + cg.getClass().getName() + " is already a NukkitPlotGenerator!");
}
this.full = false;
PS.debug("NukkitPlotGenerator does not fully support: " + cg);
this.platformGenerator = cg;
this.plotGenerator = new IndependentPlotGenerator() {
@Override
public void processSetup(SetupObject setup) {}
@Override public void processSetup(SetupObject setup) {
}
@Override
public void initialize(PlotArea area) {}
@Override public void initialize(PlotArea area) {
}
@Override
public PlotManager getNewPlotManager() {
@Override public PlotManager getNewPlotManager() {
return PS.get().IMP.getDefaultGenerator().getNewPlotManager();
}
@Override
public String getName() {
@Override public String getName() {
return cg.getClass().getName();
}
@ -70,7 +65,8 @@ public class NukkitPlotGenerator extends Generator implements GeneratorWrapper<G
}
@Override
public void generateChunk(final ScopedLocalBlockQueue result, PlotArea settings, PseudoRandom random) {
public void generateChunk(final ScopedLocalBlockQueue result, PlotArea settings,
PseudoRandom random) {
Location min = result.getMin();
int cx = min.getX() >> 4;
int cz = min.getZ() >> 4;
@ -88,28 +84,23 @@ public class NukkitPlotGenerator extends Generator implements GeneratorWrapper<G
}
}
@Override
public void augment(PlotArea area) {
@Override public void augment(PlotArea area) {
NukkitAugmentedGenerator.get(NukkitUtil.getWorld(area.worldname));
}
@Override
public boolean isFull() {
@Override public boolean isFull() {
return this.full;
}
@Override
public IndependentPlotGenerator getPlotGenerator() {
@Override public IndependentPlotGenerator getPlotGenerator() {
return this.plotGenerator;
}
@Override
public Generator getPlatformGenerator() {
@Override public Generator getPlatformGenerator() {
return this.platformGenerator;
}
@Override
public String toString() {
@Override public String toString() {
if (this.platformGenerator == this) {
return this.plotGenerator.getName();
}
@ -119,17 +110,15 @@ public class NukkitPlotGenerator extends Generator implements GeneratorWrapper<G
return this.platformGenerator.getClass().getName();
}
}
@Override
public boolean equals(Object obj) {
@Override public boolean equals(Object obj) {
if (obj == null) {
return false;
}
return toString().equals(obj.toString()) || toString().equals(obj.getClass().getName());
}
@Override
public int getId() {
@Override public int getId() {
return 1;
}
@ -144,8 +133,7 @@ public class NukkitPlotGenerator extends Generator implements GeneratorWrapper<G
}
}
@Override
public void generateChunk(int cx, int cz) {
@Override public void generateChunk(int cx, int cz) {
if (getPlatformGenerator() != this) {
getPlatformGenerator().generateChunk(cx, cz);
} else {
@ -173,8 +161,7 @@ public class NukkitPlotGenerator extends Generator implements GeneratorWrapper<G
}
}
@Override
public void populateChunk(int x, int z) {
@Override public void populateChunk(int x, int z) {
if (getPlatformGenerator() != this) {
getPlatformGenerator().populateChunk(x, z);
} else {
@ -182,23 +169,19 @@ public class NukkitPlotGenerator extends Generator implements GeneratorWrapper<G
}
}
@Override
public Map<String, Object> getSettings() {
@Override public Map<String, Object> getSettings() {
return settings;
}
@Override
public String getName() {
@Override public String getName() {
return plotGenerator.getName();
}
@Override
public Vector3 getSpawn() {
@Override public Vector3 getSpawn() {
return new Vector3(0, 61, 0);
}
@Override
public cn.nukkit.level.ChunkManager getChunkManager() {
@Override public cn.nukkit.level.ChunkManager getChunkManager() {
return chunkManager;
}
}

View File

@ -4,11 +4,7 @@ import cn.nukkit.Player;
import cn.nukkit.Server;
import cn.nukkit.block.Block;
import cn.nukkit.command.CommandSender;
import cn.nukkit.entity.Entity;
import cn.nukkit.entity.EntityCreature;
import cn.nukkit.entity.EntityHanging;
import cn.nukkit.entity.EntityHuman;
import cn.nukkit.entity.EntityLiving;
import cn.nukkit.entity.*;
import cn.nukkit.entity.item.EntityPotion;
import cn.nukkit.entity.item.EntityVehicle;
import cn.nukkit.entity.mob.EntityMob;
@ -16,39 +12,11 @@ import cn.nukkit.entity.passive.EntityAnimal;
import cn.nukkit.entity.passive.EntityTameable;
import cn.nukkit.entity.passive.EntityWaterAnimal;
import cn.nukkit.entity.projectile.EntityProjectile;
import cn.nukkit.event.Cancellable;
import cn.nukkit.event.Event;
import cn.nukkit.event.EventHandler;
import cn.nukkit.event.EventPriority;
import cn.nukkit.event.Listener;
import cn.nukkit.event.block.BlockBreakEvent;
import cn.nukkit.event.block.BlockBurnEvent;
import cn.nukkit.event.block.BlockFormEvent;
import cn.nukkit.event.block.BlockGrowEvent;
import cn.nukkit.event.block.BlockPlaceEvent;
import cn.nukkit.event.block.BlockSpreadEvent;
import cn.nukkit.event.block.BlockUpdateEvent;
import cn.nukkit.event.entity.EntityBlockChangeEvent;
import cn.nukkit.event.entity.EntityCombustByEntityEvent;
import cn.nukkit.event.entity.EntityCombustEvent;
import cn.nukkit.event.entity.EntityDamageByEntityEvent;
import cn.nukkit.event.entity.EntityDamageEvent;
import cn.nukkit.event.entity.EntityExplodeEvent;
import cn.nukkit.event.entity.EntitySpawnEvent;
import cn.nukkit.event.entity.ExplosionPrimeEvent;
import cn.nukkit.event.entity.ProjectileHitEvent;
import cn.nukkit.event.entity.ProjectileLaunchEvent;
import cn.nukkit.event.*;
import cn.nukkit.event.block.*;
import cn.nukkit.event.entity.*;
import cn.nukkit.event.inventory.InventoryCloseEvent;
import cn.nukkit.event.player.PlayerBucketEmptyEvent;
import cn.nukkit.event.player.PlayerBucketFillEvent;
import cn.nukkit.event.player.PlayerChatEvent;
import cn.nukkit.event.player.PlayerCommandPreprocessEvent;
import cn.nukkit.event.player.PlayerInteractEvent;
import cn.nukkit.event.player.PlayerJoinEvent;
import cn.nukkit.event.player.PlayerMoveEvent;
import cn.nukkit.event.player.PlayerQuitEvent;
import cn.nukkit.event.player.PlayerRespawnEvent;
import cn.nukkit.event.player.PlayerTeleportEvent;
import cn.nukkit.event.player.*;
import cn.nukkit.event.potion.PotionCollideEvent;
import cn.nukkit.event.redstone.RedstoneUpdateEvent;
import cn.nukkit.metadata.MetadataValue;
@ -59,30 +27,14 @@ import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.flag.Flags;
import com.intellectualcrafters.plot.flag.IntegerFlag;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotArea;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.StringWrapper;
import com.intellectualcrafters.plot.util.EventUtil;
import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.MathMan;
import com.intellectualcrafters.plot.util.Permissions;
import com.intellectualcrafters.plot.util.RegExUtil;
import com.intellectualcrafters.plot.util.TaskManager;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.intellectualcrafters.plot.object.*;
import com.intellectualcrafters.plot.util.*;
import com.plotsquared.listener.PlotListener;
import com.plotsquared.nukkit.object.NukkitPlayer;
import com.plotsquared.nukkit.util.NukkitUtil;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.Map.Entry;
import java.util.Set;
import java.util.UUID;
import java.util.regex.Pattern;
public class PlayerEvents extends PlotListener implements Listener {
@ -91,6 +43,112 @@ public class PlayerEvents extends PlotListener implements Listener {
// To prevent recursion
private boolean tmpTeleport = true;
public static boolean checkEntity(Plot plot, IntegerFlag... flags) {
if (Settings.Done.RESTRICT_BUILDING && Flags.DONE.isSet(plot)) {
return true;
}
int[] mobs = null;
for (IntegerFlag flag : flags) {
int i;
switch (flag.getName()) {
case "entity-cap":
i = 0;
break;
case "mob-cap":
i = 3;
break;
case "hostile-cap":
i = 2;
break;
case "animal-cap":
i = 1;
break;
case "vehicle-cap":
i = 4;
break;
case "misc-cap":
i = 5;
break;
default:
i = 0;
}
int cap = plot.getFlag(flag, Integer.MAX_VALUE);
if (cap == Integer.MAX_VALUE) {
continue;
}
if (cap == 0) {
return true;
}
if (mobs == null) {
mobs = plot.countEntities();
}
if (mobs[i] >= cap) {
plot.setMeta("EntityCount", mobs);
plot.setMeta("EntityCountTime", System.currentTimeMillis());
return true;
}
}
if (mobs != null) {
for (IntegerFlag flag : flags) {
int i;
switch (flag.getName()) {
case "entity-cap":
i = 0;
break;
case "mob-cap":
i = 3;
break;
case "hostile-cap":
i = 2;
break;
case "animal-cap":
i = 1;
break;
case "vehicle-cap":
i = 4;
break;
case "misc-cap":
i = 5;
break;
default:
i = 0;
}
mobs[i]++;
}
plot.setMeta("EntityCount", mobs);
plot.setMeta("EntityCountTime", System.currentTimeMillis());
}
return false;
}
public static boolean checkEntity(Entity entity, Plot plot) {
if (plot == null || !plot.hasOwner() || plot.getFlags().isEmpty() && plot
.getArea().DEFAULT_FLAGS.isEmpty()) {
return false;
}
if (entity instanceof EntityLiving) {
if (entity instanceof EntityCreature) {
if (entity instanceof EntityAnimal || entity instanceof EntityWaterAnimal) {
return checkEntity(plot, Flags.ENTITY_CAP, Flags.MOB_CAP, Flags.ANIMAL_CAP);
} else if (entity instanceof EntityMob) {
return checkEntity(plot, Flags.ENTITY_CAP, Flags.MOB_CAP, Flags.HOSTILE_CAP);
} else if (entity instanceof EntityHuman) {
return false;
} else {
return checkEntity(plot, Flags.ENTITY_CAP, Flags.MOB_CAP, Flags.MOB_CAP);
}
} else {
return checkEntity(plot, Flags.ENTITY_CAP, Flags.MOB_CAP);
}
} else if (entity instanceof EntityVehicle) {
return checkEntity(plot, Flags.ENTITY_CAP, Flags.VEHICLE_CAP);
} else if (entity instanceof EntityHanging) {
return checkEntity(plot, Flags.ENTITY_CAP, Flags.MISC_CAP);
} else {
return checkEntity(plot, Flags.ENTITY_CAP);
}
}
// TODO fix this
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onPhysicsEvent(BlockUpdateEvent event) {
@ -153,7 +211,9 @@ public class PlayerEvents extends PlotListener implements Listener {
public void onEntityCombustByEntity(EntityCombustEvent event) {
if (event instanceof EntityCombustByEntityEvent) {
EntityDamageByEntityEvent eventChange =
new EntityDamageByEntityEvent(((EntityCombustByEntityEvent) event).getCombuster(), event.getEntity(), EntityDamageEvent.DamageCause.FIRE_TICK, event.getDuration());
new EntityDamageByEntityEvent(((EntityCombustByEntityEvent) event).getCombuster(),
event.getEntity(), EntityDamageEvent.DamageCause.FIRE_TICK,
event.getDuration());
onEntityDamageByEntityEvent(eventChange);
}
}
@ -174,8 +234,7 @@ public class PlayerEvents extends PlotListener implements Listener {
}
}
@EventHandler
public void onProjectileLaunch(ProjectileLaunchEvent event) {
@EventHandler public void onProjectileLaunch(ProjectileLaunchEvent event) {
EntityProjectile entity = event.getEntity();
if (!(entity instanceof EntityPotion)) {
return;
@ -195,8 +254,7 @@ public class PlayerEvents extends PlotListener implements Listener {
}
}
@EventHandler
public boolean onProjectileHit(ProjectileHitEvent event) {
@EventHandler public boolean onProjectileHit(ProjectileHitEvent event) {
EntityProjectile entity = (EntityProjectile) event.getEntity();
Location loc = NukkitUtil.getLocation(entity);
if (!PS.get().hasPlotArea(loc.getWorld())) {
@ -217,7 +275,8 @@ public class PlayerEvents extends PlotListener implements Listener {
}
return true;
}
if (plot.isAdded(pp.getUUID()) || Permissions.hasPermission(pp, C.PERMISSION_PROJECTILE_OTHER)) {
if (plot.isAdded(pp.getUUID()) || Permissions
.hasPermission(pp, C.PERMISSION_PROJECTILE_OTHER)) {
return true;
}
kill(entity, event);
@ -244,7 +303,8 @@ public class PlayerEvents extends PlotListener implements Listener {
return;
}
Optional<List<String>> flag = plot.getFlag(Flags.BLOCKED_CMDS);
if (flag.isPresent() && !Permissions.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_BLOCKED_CMDS)) {
if (flag.isPresent() && !Permissions
.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_BLOCKED_CMDS)) {
List<String> blocked_cmds = flag.get();
for (String s : blocked_cmds) {
Pattern pattern;
@ -293,8 +353,7 @@ public class PlayerEvents extends PlotListener implements Listener {
// Async
TaskManager.runTaskLaterAsync(new Runnable() {
@Override
public void run() {
@Override public void run() {
if (!player.hasPlayedBefore() && player.isOnline()) {
player.save();
}
@ -587,13 +646,14 @@ public class PlayerEvents extends PlotListener implements Listener {
}
}
}
String newFormat = C.color(format.replace("%plot_id%", id.x + ";" + id.y).replace("%sender%", "{%0}").replace("%msg%", "{%1}"));
String newFormat = C.color(
format.replace("%plot_id%", id.x + ";" + id.y).replace("%sender%", "{%0}")
.replace("%msg%", "{%1}"));
event.setFormat(newFormat);
recipients.add(Server.getInstance().getConsoleSender());
}
@EventHandler(priority = EventPriority.LOWEST)
public void blockDestroy(BlockBreakEvent event) {
@EventHandler(priority = EventPriority.LOWEST) public void blockDestroy(BlockBreakEvent event) {
Player player = event.getPlayer();
Location location = NukkitUtil.getLocation(event.getBlock().getLocation());
PlotArea area = location.getPlotArea();
@ -604,8 +664,10 @@ public class PlayerEvents extends PlotListener implements Listener {
if (plot != null) {
PlotPlayer plotPlayer = NukkitUtil.getPlayer(player);
if (event.getBlock().getY() == 0) {
if (!Permissions.hasPermission(plotPlayer, C.PERMISSION_ADMIN_DESTROY_GROUNDLEVEL)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_DESTROY_GROUNDLEVEL);
if (!Permissions
.hasPermission(plotPlayer, C.PERMISSION_ADMIN_DESTROY_GROUNDLEVEL)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT,
C.PERMISSION_ADMIN_DESTROY_GROUNDLEVEL);
event.setCancelled(true);
return;
}
@ -614,7 +676,8 @@ public class PlayerEvents extends PlotListener implements Listener {
if (Permissions.hasPermission(plotPlayer, C.PERMISSION_ADMIN_DESTROY_UNOWNED)) {
return;
}
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_DESTROY_UNOWNED);
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT,
C.PERMISSION_ADMIN_DESTROY_UNOWNED);
event.setCancelled(true);
return;
}
@ -622,17 +685,19 @@ public class PlayerEvents extends PlotListener implements Listener {
Optional<HashSet<PlotBlock>> destroy = plot.getFlag(Flags.BREAK);
Block block = event.getBlock();
if (destroy.isPresent() && destroy.get()
.contains(PlotBlock.get((short) block.getId(), block.getDamage()))) {
.contains(PlotBlock.get((short) block.getId(), block.getDamage()))) {
return;
}
if (Permissions.hasPermission(plotPlayer, C.PERMISSION_ADMIN_DESTROY_OTHER)) {
return;
}
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_DESTROY_OTHER);
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT,
C.PERMISSION_ADMIN_DESTROY_OTHER);
event.setCancelled(true);
} else if (Settings.Done.RESTRICT_BUILDING && plot.getFlags().containsKey(Flags.DONE)) {
if (!Permissions.hasPermission(plotPlayer, C.PERMISSION_ADMIN_BUILD_OTHER)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_OTHER);
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT,
C.PERMISSION_ADMIN_BUILD_OTHER);
event.setCancelled(true);
return;
}
@ -644,7 +709,8 @@ public class PlayerEvents extends PlotListener implements Listener {
return;
}
if (PS.get().worldedit != null && pp.getAttribute("worldedit")) {
if (player.getInventory().getItemInHand().getId() == PS.get().worldedit.getConfiguration().wandItem) {
if (player.getInventory().getItemInHand().getId() == PS.get().worldedit
.getConfiguration().wandItem) {
return;
}
}
@ -664,12 +730,12 @@ public class PlayerEvents extends PlotListener implements Listener {
if (!entity.hasMetadata("plot")) {
entity.setMetadata("plot", new MetadataValue((Plugin) PS.get().IMP) {
private Plot plot = finalPlot;
@Override
public Object value() {
@Override public Object value() {
return plot;
}
@Override
public void invalidate() {
@Override public void invalidate() {
plot = null;
}
});
@ -707,7 +773,8 @@ public class PlayerEvents extends PlotListener implements Listener {
while (iterator.hasNext()) {
Block block = iterator.next();
location = NukkitUtil.getLocation(block.getLocation());
if (!area.contains(location.getX(), location.getZ()) || !origin.equals(area.getOwnedPlot(location))) {
if (!area.contains(location.getX(), location.getZ()) || !origin
.equals(area.getOwnedPlot(location))) {
iterator.remove();
}
}
@ -789,19 +856,23 @@ public class PlayerEvents extends PlotListener implements Listener {
if (plot == null || !plot.isAdded(pp.getUUID())) {
Block block = event.getBlock();
if (block != null) {
if (plot != null && Flags.USE.contains(plot, PlotBlock.get(block.getId(), block.getDamage()))) {
if (plot != null && Flags.USE
.contains(plot, PlotBlock.get(block.getId(), block.getDamage()))) {
return;
}
}
if (plot == null) {
if (Permissions.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_ROAD.s(), true)) {
if (Permissions
.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_ROAD.s(), true)) {
return;
}
} else if (!plot.hasOwner()) {
if (Permissions.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_UNOWNED.s(), true)) {
if (Permissions
.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_UNOWNED.s(), true)) {
return;
}
} else if (Permissions.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_OTHER.s(), true)) {
} else if (Permissions
.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_OTHER.s(), true)) {
return;
}
event.setCancelled(true);
@ -814,14 +885,17 @@ public class PlayerEvents extends PlotListener implements Listener {
Plot plot = pp.getCurrentPlot();
if (plot == null || !plot.isAdded(pp.getUUID())) {
if (plot == null) {
if (Permissions.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_ROAD.s(), true)) {
if (Permissions
.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_ROAD.s(), true)) {
return;
}
} else if (!plot.hasOwner()) {
if (Permissions.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_UNOWNED.s(), true)) {
if (Permissions
.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_UNOWNED.s(), true)) {
return;
}
} else if (Permissions.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_OTHER.s(), true)) {
} else if (Permissions
.hasPermission(pp, C.PERMISSION_ADMIN_INTERACT_OTHER.s(), true)) {
return;
}
event.setCancelled(true);
@ -886,123 +960,18 @@ public class PlayerEvents extends PlotListener implements Listener {
} else {
entity.setMetadata("plot", new MetadataValue((Plugin) PS.get().IMP) {
private Plot plot = finalPlot;
@Override
public Object value() {
@Override public Object value() {
return plot;
}
@Override
public void invalidate() {
@Override public void invalidate() {
plot = null;
}
});
}
}
public static boolean checkEntity(Plot plot, IntegerFlag... flags) {
if (Settings.Done.RESTRICT_BUILDING && Flags.DONE.isSet(plot)) {
return true;
}
int[] mobs = null;
for (IntegerFlag flag : flags) {
int i;
switch (flag.getName()) {
case "entity-cap":
i = 0;
break;
case "mob-cap":
i = 3;
break;
case "hostile-cap":
i = 2;
break;
case "animal-cap":
i = 1;
break;
case "vehicle-cap":
i = 4;
break;
case "misc-cap":
i = 5;
break;
default:
i = 0;
}
int cap = plot.getFlag(flag, Integer.MAX_VALUE);
if (cap == Integer.MAX_VALUE) {
continue;
}
if (cap == 0) {
return true;
}
if (mobs == null) {
mobs = plot.countEntities();
}
if (mobs[i] >= cap) {
plot.setMeta("EntityCount", mobs);
plot.setMeta("EntityCountTime", System.currentTimeMillis());
return true;
}
}
if (mobs != null) {
for (IntegerFlag flag : flags) {
int i;
switch (flag.getName()) {
case "entity-cap":
i = 0;
break;
case "mob-cap":
i = 3;
break;
case "hostile-cap":
i = 2;
break;
case "animal-cap":
i = 1;
break;
case "vehicle-cap":
i = 4;
break;
case "misc-cap":
i = 5;
break;
default:
i = 0;
}
mobs[i]++;
}
plot.setMeta("EntityCount", mobs);
plot.setMeta("EntityCountTime", System.currentTimeMillis());
}
return false;
}
public static boolean checkEntity(Entity entity, Plot plot) {
if (plot == null || !plot.hasOwner() || plot.getFlags().isEmpty() && plot.getArea().DEFAULT_FLAGS.isEmpty()) {
return false;
}
if (entity instanceof EntityLiving) {
if (entity instanceof EntityCreature) {
if (entity instanceof EntityAnimal || entity instanceof EntityWaterAnimal) {
return checkEntity(plot, Flags.ENTITY_CAP, Flags.MOB_CAP, Flags.ANIMAL_CAP);
} else if (entity instanceof EntityMob) {
return checkEntity(plot, Flags.ENTITY_CAP, Flags.MOB_CAP, Flags.HOSTILE_CAP);
} else if (entity instanceof EntityHuman){
return false;
} else {
return checkEntity(plot, Flags.ENTITY_CAP, Flags.MOB_CAP, Flags.MOB_CAP);
}
} else {
return checkEntity(plot, Flags.ENTITY_CAP, Flags.MOB_CAP);
}
} else if (entity instanceof EntityVehicle) {
return checkEntity(plot, Flags.ENTITY_CAP, Flags.VEHICLE_CAP);
} else if (entity instanceof EntityHanging){
return checkEntity(plot, Flags.ENTITY_CAP, Flags.MISC_CAP);
} else {
return checkEntity(plot, Flags.ENTITY_CAP);
}
}
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onBlockBurn(BlockBurnEvent event) {
Block b = event.getBlock();
@ -1061,8 +1030,7 @@ public class PlayerEvents extends PlotListener implements Listener {
NukkitUtil.getPlayer(event.getPlayer()).deleteMeta("inventory");
}
@EventHandler(priority = EventPriority.MONITOR)
public void onLeave(PlayerQuitEvent event) {
@EventHandler(priority = EventPriority.MONITOR) public void onLeave(PlayerQuitEvent event) {
if (TaskManager.TELEPORT_QUEUE.contains(event.getPlayer().getName())) {
TaskManager.TELEPORT_QUEUE.remove(event.getPlayer().getName());
}
@ -1091,12 +1059,14 @@ public class PlayerEvents extends PlotListener implements Listener {
if (Permissions.hasPermission(plotPlayer, C.PERMISSION_ADMIN_BUILD_UNOWNED)) {
return;
}
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_UNOWNED);
MainUtil
.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_UNOWNED);
event.setCancelled(true);
} else if (!plot.isAdded(plotPlayer.getUUID())) {
Optional<HashSet<PlotBlock>> use = plot.getFlag(Flags.USE);
Block block = event.getBlockClicked();
if (use.isPresent() && use.get().contains(PlotBlock.get(block.getId(), block.getDamage()))) {
if (use.isPresent() && use.get()
.contains(PlotBlock.get(block.getId(), block.getDamage()))) {
return;
}
if (Permissions.hasPermission(plotPlayer, C.PERMISSION_ADMIN_BUILD_OTHER)) {
@ -1125,7 +1095,8 @@ public class PlayerEvents extends PlotListener implements Listener {
}
return;
}
if (plot.isAdded(pp.getUUID()) || Permissions.hasPermission(pp, C.PERMISSION_PROJECTILE_OTHER)) {
if (plot.isAdded(pp.getUUID()) || Permissions
.hasPermission(pp, C.PERMISSION_PROJECTILE_OTHER)) {
return;
}
kill(entity, event);
@ -1141,7 +1112,8 @@ public class PlayerEvents extends PlotListener implements Listener {
Location dloc = NukkitUtil.getLocation(damager);
Location vloc = NukkitUtil.getLocation(victim);
PlotArea dArea = dloc.getPlotArea();
PlotArea vArea = dArea != null && dArea.contains(vloc.getX(), vloc.getZ()) ? dArea : vloc.getPlotArea();
PlotArea vArea =
dArea != null && dArea.contains(vloc.getX(), vloc.getZ()) ? dArea : vloc.getPlotArea();
if (dArea == null && vArea == null) {
return true;
}
@ -1204,68 +1176,81 @@ public class PlayerEvents extends PlotListener implements Listener {
if (player != null) {
PlotPlayer plotPlayer = NukkitUtil.getPlayer(player);
if (victim instanceof EntityHanging) { // hanging
if (plot != null && (plot.getFlag(Flags.HANGING_BREAK, false) || plot.isAdded(plotPlayer.getUUID()))) {
if (plot != null && (plot.getFlag(Flags.HANGING_BREAK, false) || plot
.isAdded(plotPlayer.getUUID()))) {
return true;
}
if (!Permissions.hasPermission(plotPlayer, "plots.admin.destroy." + stub)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.destroy." + stub);
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT,
"plots.admin.destroy." + stub);
return false;
}
} else if (false) { // TODO armor stand
if (plot != null && (plot.getFlag(Flags.MISC_BREAK, false) || plot.isAdded(plotPlayer.getUUID()))) {
if (plot != null && (plot.getFlag(Flags.MISC_BREAK, false) || plot
.isAdded(plotPlayer.getUUID()))) {
return true;
}
if (!Permissions.hasPermission(plotPlayer, "plots.admin.destroy." + stub)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.destroy." + stub);
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT,
"plots.admin.destroy." + stub);
return false;
}
} else if (victim instanceof EntityMob) { // victim is monster
if (plot != null && (plot.getFlag(Flags.HOSTILE_ATTACK, false) || plot.getFlag(Flags.PVE, false) || plot
.isAdded(plotPlayer.getUUID()))) {
if (plot != null && (plot.getFlag(Flags.HOSTILE_ATTACK, false) || plot
.getFlag(Flags.PVE, false) || plot.isAdded(plotPlayer.getUUID()))) {
return true;
}
if (!Permissions.hasPermission(plotPlayer, "plots.admin.pve." + stub)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.pve." + stub);
MainUtil
.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.pve." + stub);
return false;
}
} else if (victim instanceof EntityTameable) {
if (plot != null && (plot.getFlag(Flags.TAMED_ATTACK, false) || plot.getFlag(Flags.PVE, false) || plot.isAdded(plotPlayer.getUUID()))) {
if (plot != null && (plot.getFlag(Flags.TAMED_ATTACK, false) || plot
.getFlag(Flags.PVE, false) || plot.isAdded(plotPlayer.getUUID()))) {
return true;
}
if (!Permissions.hasPermission(plotPlayer, "plots.admin.pve." + stub)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.pve." + stub);
MainUtil
.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.pve." + stub);
return false;
}
} else if (victim instanceof Player) {
if (plot != null) {
if (Flags.PVP.isFalse(plot) && !Permissions.hasPermission(plotPlayer, "plots.admin.pvp." + stub)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.pvp." + stub);
if (Flags.PVP.isFalse(plot) && !Permissions
.hasPermission(plotPlayer, "plots.admin.pvp." + stub)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT,
"plots.admin.pvp." + stub);
return false;
} else {
return true;
}
}
if (!Permissions.hasPermission(plotPlayer, "plots.admin.pvp." + stub)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.pvp." + stub);
MainUtil
.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.pvp." + stub);
return false;
}
} else if (victim instanceof EntityCreature) { // victim is animal
if (plot != null && (plot.getFlag(Flags.ANIMAL_ATTACK, false) || plot.getFlag(Flags.PVE, false) || plot
.isAdded(plotPlayer.getUUID()))) {
if (plot != null && (plot.getFlag(Flags.ANIMAL_ATTACK, false) || plot
.getFlag(Flags.PVE, false) || plot.isAdded(plotPlayer.getUUID()))) {
return true;
}
if (!Permissions.hasPermission(plotPlayer, "plots.admin.pve." + stub)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.pve." + stub);
MainUtil
.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.pve." + stub);
return false;
}
} else if (victim instanceof EntityVehicle) { // Vehicles are managed in vehicle destroy event
return true;
} else { // victim is something else
if (plot != null && (plot.getFlag(Flags.PVE, false) || plot.isAdded(plotPlayer.getUUID()))) {
if (plot != null && (plot.getFlag(Flags.PVE, false) || plot
.isAdded(plotPlayer.getUUID()))) {
return true;
}
if (!Permissions.hasPermission(plotPlayer, "plots.admin.pve." + stub)) {
MainUtil.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.pve." + stub);
MainUtil
.sendMessage(plotPlayer, C.NO_PERMISSION_EVENT, "plots.admin.pve." + stub);
return false;
}
}
@ -1288,7 +1273,8 @@ public class PlayerEvents extends PlotListener implements Listener {
if (plot != null) {
if (!plot.hasOwner()) {
if (!Permissions.hasPermission(pp, C.PERMISSION_ADMIN_BUILD_UNOWNED)) {
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_UNOWNED);
MainUtil
.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_UNOWNED);
event.setCancelled(true);
return;
}
@ -1312,10 +1298,11 @@ public class PlayerEvents extends PlotListener implements Listener {
return;
}
}
if (location.getY() > area.MAX_BUILD_HEIGHT && location.getY() < area.MIN_BUILD_HEIGHT && !Permissions
.hasPermission(pp, C.PERMISSION_ADMIN_BUILD_HEIGHTLIMIT)) {
if (location.getY() > area.MAX_BUILD_HEIGHT && location.getY() < area.MIN_BUILD_HEIGHT
&& !Permissions.hasPermission(pp, C.PERMISSION_ADMIN_BUILD_HEIGHTLIMIT)) {
event.setCancelled(true);
MainUtil.sendMessage(pp, C.HEIGHT_LIMIT.s().replace("{limit}", String.valueOf(area.MAX_BUILD_HEIGHT)));
MainUtil.sendMessage(pp,
C.HEIGHT_LIMIT.s().replace("{limit}", String.valueOf(area.MAX_BUILD_HEIGHT)));
}
} else if (!Permissions.hasPermission(pp, C.PERMISSION_ADMIN_BUILD_OTHER)) {
MainUtil.sendMessage(pp, C.NO_PERMISSION_EVENT, C.PERMISSION_ADMIN_BUILD_ROAD);

View File

@ -11,6 +11,7 @@ import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.generator.GeneratorWrapper;
import com.intellectualcrafters.plot.object.PlotArea;
import com.plotsquared.nukkit.generator.NukkitPlotGenerator;
import java.util.HashMap;
public class WorldEvents implements Listener {

View File

@ -9,17 +9,14 @@ import cn.nukkit.utils.EventException;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.EconHandler;
import com.intellectualcrafters.plot.util.PlotGameMode;
import com.intellectualcrafters.plot.util.PlotWeather;
import com.intellectualcrafters.plot.util.StringMan;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.intellectualcrafters.plot.util.*;
import com.plotsquared.nukkit.util.NukkitUtil;
import java.util.Collections;
import java.util.UUID;
public class NukkitPlayer extends PlotPlayer {
public final Player player;
public boolean offline;
private UUID uuid;
@ -28,6 +25,7 @@ public class NukkitPlayer extends PlotPlayer {
/**
* <p>Please do not use this method. Instead use
* NukkitUtil.getPlayer(Player), as it caches player objects.</p>
*
* @param player
*/
public NukkitPlayer(Player player) {
@ -41,14 +39,12 @@ public class NukkitPlayer extends PlotPlayer {
super.populatePersistentMetaMap();
}
@Override
public Location getLocation() {
@Override public Location getLocation() {
Location location = super.getLocation();
return location == null ? NukkitUtil.getLocation(this.player) : location;
}
@Override
public UUID getUUID() {
@Override public UUID getUUID() {
if (this.uuid == null) {
this.uuid = UUIDHandler.getUUID(this);
}
@ -59,11 +55,11 @@ public class NukkitPlayer extends PlotPlayer {
return this.player.getLastPlayed();
}
@Override
public boolean canTeleport(Location loc) {
@Override public boolean canTeleport(Location loc) {
cn.nukkit.level.Location to = NukkitUtil.getLocation(loc);
cn.nukkit.level.Location from = player.getLocation();
PlayerTeleportEvent event = new PlayerTeleportEvent(player, from, to, PlayerTeleportEvent.TeleportCause.PLUGIN);
PlayerTeleportEvent event =
new PlayerTeleportEvent(player, from, to, PlayerTeleportEvent.TeleportCause.PLUGIN);
RegisteredListener[] listeners = event.getHandlers().getRegisteredListeners();
for (RegisteredListener listener : listeners) {
if (listener.getPlugin().getName().equals(PS.imp().getPluginName())) {
@ -92,62 +88,56 @@ public class NukkitPlayer extends PlotPlayer {
return true;
}
@Override
public boolean hasPermission(String permission) {
@Override public boolean hasPermission(String permission) {
if (this.offline && EconHandler.manager != null) {
return EconHandler.manager.hasPermission(getName(), permission);
}
return this.player.hasPermission(permission);
}
@Override
public boolean isPermissionSet(String permission) {
@Override public boolean isPermissionSet(String permission) {
return this.player.isPermissionSet(permission);
}
@Override
public void sendMessage(String message) {
if (!StringMan.isEqual(this.<String>getMeta("lastMessage"), message) || (System.currentTimeMillis() - this.<Long>getMeta("lastMessageTime") > 5000)) {
@Override public void sendMessage(String message) {
if (!StringMan.isEqual(this.<String>getMeta("lastMessage"), message) || (
System.currentTimeMillis() - this.<Long>getMeta("lastMessageTime") > 5000)) {
setMeta("lastMessage", message);
setMeta("lastMessageTime", System.currentTimeMillis());
this.player.sendMessage(message);
}
}
@Override
public void teleport(Location to) {
@Override public void teleport(Location to) {
if (Math.abs(to.getX()) >= 30000000 || Math.abs(to.getZ()) >= 30000000) {
return;
}
cn.nukkit.level.Location loc = new cn.nukkit.level.Location(to.getX() + 0.5, to.getY(), to.getZ() + 0.5, to.getYaw(), to.getPitch(), NukkitUtil.getWorld(to.getWorld()));
cn.nukkit.level.Location loc =
new cn.nukkit.level.Location(to.getX() + 0.5, to.getY(), to.getZ() + 0.5, to.getYaw(),
to.getPitch(), NukkitUtil.getWorld(to.getWorld()));
this.player.teleport(loc);
}
@Override
public String getName() {
@Override public String getName() {
if (this.name == null) {
this.name = this.player.getName();
}
return this.name;
}
@Override
public boolean isOnline() {
@Override public boolean isOnline() {
return !this.offline && this.player.isOnline();
}
@Override
public void setCompassTarget(Location location) {
@Override public void setCompassTarget(Location location) {
throw new UnsupportedOperationException("Not implemented yet: setCompassTarget");
}
@Override
public Location getLocationFull() {
@Override public Location getLocationFull() {
return NukkitUtil.getLocationFull(this.player);
}
@Override
public void setWeather(PlotWeather weather) {
@Override public void setWeather(PlotWeather weather) {
LevelEventPacket pk;
switch (weather) {
case RAIN: {
@ -179,9 +169,8 @@ public class NukkitPlayer extends PlotPlayer {
break;
}
}
@Override
public PlotGameMode getGameMode() {
@Override public PlotGameMode getGameMode() {
switch (this.player.getGamemode()) {
case 0:
return PlotGameMode.SURVIVAL;
@ -195,9 +184,8 @@ public class NukkitPlayer extends PlotPlayer {
return PlotGameMode.NOT_SET;
}
}
@Override
public void setGameMode(PlotGameMode gameMode) {
@Override public void setGameMode(PlotGameMode gameMode) {
switch (gameMode) {
case ADVENTURE:
this.player.setGamemode(2);
@ -216,29 +204,24 @@ public class NukkitPlayer extends PlotPlayer {
break;
}
}
@Override
public void setTime(long time) {
@Override public void setTime(long time) {
throw new UnsupportedOperationException("Not implemented yet: setTIme");
}
@Override
public void setFlight(boolean fly) {
this.player.setAllowFlight(fly);
}
@Override
public boolean getFlight() {
@Override public boolean getFlight() {
return player.getAllowFlight();
}
@Override
public void playMusic(Location location, int id) {
@Override public void setFlight(boolean fly) {
this.player.setAllowFlight(fly);
}
@Override public void playMusic(Location location, int id) {
throw new UnsupportedOperationException("Not implemented yet: playMusic");
}
@Override
public void kick(String message) {
@Override public void kick(String message) {
player.kick(message);
}
@ -246,8 +229,7 @@ public class NukkitPlayer extends PlotPlayer {
// Do nothing
}
@Override
public boolean isBanned() {
@Override public boolean isBanned() {
return this.player.isBanned();
}
}

View File

@ -5,22 +5,13 @@ import cn.nukkit.plugin.PluginDescription;
import cn.nukkit.utils.LogLevel;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.util.TaskManager;
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.io.*;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.Collections;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.UUID;
import java.util.*;
import java.util.zip.GZIPOutputStream;
public class Metrics {
@ -75,7 +66,6 @@ public class Metrics {
* GZip compress a string of bytes.
*
* @param input
*
* @return byte[] the file as a byte array
*/
public static byte[] gzip(String input) {
@ -103,7 +93,6 @@ public class Metrics {
* @param json
* @param key
* @param value
*
*/
private static void appendJSONPair(StringBuilder json, String key, String value) {
boolean isValueNumeric = false;
@ -131,7 +120,6 @@ public class Metrics {
* Escape a string to create a valid JSON string
*
* @param text
*
* @return String
*/
private static String escapeJSON(String text) {
@ -175,7 +163,6 @@ public class Metrics {
* Encode text as UTF-8
*
* @param text the text to encode
*
* @return the encoded text, as UTF-8
*/
private static String urlEncode(String text) throws UnsupportedEncodingException {
@ -187,7 +174,6 @@ public class Metrics {
* website. Plotters can be added to the graph object returned.
*
* @param name The name of the graph
*
* @return Graph object created. Will never return NULL under normal circumstances unless bad parameters are given
*/
public Graph createGraph(String name) {
@ -229,8 +215,8 @@ public class Metrics {
// Begin hitting the server with glorious data
this.taskId = TaskManager.IMP.taskRepeatAsync(new Runnable() {
private boolean firstPost = true;
@Override
public void run() {
@Override public void run() {
try {
postPlugin(!this.firstPost);
// After the first post we set firstPost to
@ -262,7 +248,6 @@ public class Metrics {
/**
* Disables metrics for the server by setting "opt-out" to true in the config file and canceling the metrics task.
*
*/
public void disable() {
// Disable Task, if it is running
@ -344,7 +329,8 @@ public class Metrics {
StringBuilder graphJson = new StringBuilder();
graphJson.append('{');
for (Plotter plotter : graph.getPlotters()) {
appendJSONPair(graphJson, plotter.getColumnName(), Integer.toString(plotter.getValue()));
appendJSONPair(graphJson, plotter.getColumnName(),
Integer.toString(plotter.getValue()));
}
graphJson.append('}');
if (!firstGraph) {
@ -382,7 +368,8 @@ public class Metrics {
connection.addRequestProperty("Connection", "close");
connection.setDoOutput(true);
if (this.debug) {
PS.debug("[Metrics] Prepared request for " + pluginName + " uncompressed=" + uncompressed.length + " compressed=" + compressed.length);
PS.debug("[Metrics] Prepared request for " + pluginName + " uncompressed="
+ uncompressed.length + " compressed=" + compressed.length);
}
try {
try (OutputStream os = connection.getOutputStream()) {
@ -390,7 +377,8 @@ public class Metrics {
os.flush();
}
String response;
try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(connection.getInputStream()))) {
response = reader.readLine();
if (this.debug) {
PS.debug("[Metrics] Response for " + pluginName + ": " + response);
@ -405,7 +393,8 @@ public class Metrics {
throw new IOException(response);
} else {
// Is this the first update this hour?
if ("1".equals(response) || response.contains("This is your first update this hour")) {
if ("1".equals(response) || response
.contains("This is your first update this hour")) {
synchronized (this.graphs) {
for (Graph graph : this.graphs) {
for (Plotter plotter : graph.getPlotters()) {
@ -491,13 +480,11 @@ public class Metrics {
return Collections.unmodifiableSet(this.plotters);
}
@Override
public int hashCode() {
@Override public int hashCode() {
return this.name.hashCode();
}
@Override
public boolean equals(Object object) {
@Override public boolean equals(Object object) {
if (!(object instanceof Graph)) {
return false;
}
@ -512,6 +499,7 @@ public class Metrics {
}
}
/**
* Interface used to collect custom data for a plugin
*/
@ -562,13 +550,11 @@ public class Metrics {
public void reset() {
}
@Override
public int hashCode() {
@Override public int hashCode() {
return getColumnName().hashCode();
}
@Override
public boolean equals(Object object) {
@Override public boolean equals(Object object) {
if (!(object instanceof Plotter)) {
return false;
}
@ -576,4 +562,4 @@ public class Metrics {
return plotter.name.equals(this.name) && plotter.getValue() == getValue();
}
}
}
}

View File

@ -12,18 +12,15 @@ public class NukkitChunkManager extends ChunkManager {
PS.debug("Not implemented: NukkitChunkManager");
}
@Override
public int[] countEntities(Plot plot) {
@Override public int[] countEntities(Plot plot) {
return new int[0];
}
@Override
public boolean loadChunk(String world, ChunkLoc loc, boolean force) {
@Override public boolean loadChunk(String world, ChunkLoc loc, boolean force) {
return true;
}
@Override
public void unloadChunk(String world, ChunkLoc loc, boolean save, boolean safe) {
@Override public void unloadChunk(String world, ChunkLoc loc, boolean save, boolean safe) {
}
@ -32,18 +29,17 @@ public class NukkitChunkManager extends ChunkManager {
return false;
}
@Override
public boolean regenerateRegion(Location pos1, Location pos2, boolean ignoreAugment, Runnable whenDone) {
@Override public boolean regenerateRegion(Location pos1, Location pos2, boolean ignoreAugment,
Runnable whenDone) {
return false;
}
@Override
public void clearAllEntities(Location pos1, Location pos2) {
@Override public void clearAllEntities(Location pos1, Location pos2) {
}
@Override
public void swap(Location bot1, Location top1, Location bot2, Location top2, Runnable whenDone) {
@Override public void swap(Location bot1, Location top1, Location bot2, Location top2,
Runnable whenDone) {
whenDone.run();
}
}

View File

@ -20,7 +20,8 @@ public class NukkitCommand extends Command {
if (commandSender instanceof Player) {
return MainCommand.onCommand(NukkitUtil.getPlayer((Player) commandSender), args);
}
if (commandSender instanceof ConsoleCommandSender || commandSender instanceof RemoteConsoleCommandSender) {
if (commandSender instanceof ConsoleCommandSender
|| commandSender instanceof RemoteConsoleCommandSender) {
return MainCommand.onCommand(ConsolePlayer.getConsole(), args);
}
return false;

View File

@ -4,32 +4,12 @@ import cn.nukkit.Player;
import cn.nukkit.event.Cancellable;
import cn.nukkit.event.Event;
import com.intellectualcrafters.plot.flag.Flag;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotArea;
import com.intellectualcrafters.plot.object.PlotCluster;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.Rating;
import com.intellectualcrafters.plot.object.*;
import com.intellectualcrafters.plot.util.EventUtil;
import com.plotsquared.nukkit.NukkitMain;
import com.plotsquared.nukkit.events.ClusterFlagRemoveEvent;
import com.plotsquared.nukkit.events.PlayerClaimPlotEvent;
import com.plotsquared.nukkit.events.PlayerEnterPlotEvent;
import com.plotsquared.nukkit.events.PlayerLeavePlotEvent;
import com.plotsquared.nukkit.events.PlayerPlotDeniedEvent;
import com.plotsquared.nukkit.events.PlayerPlotHelperEvent;
import com.plotsquared.nukkit.events.PlayerPlotTrustedEvent;
import com.plotsquared.nukkit.events.PlayerTeleportToPlotEvent;
import com.plotsquared.nukkit.events.PlotClearEvent;
import com.plotsquared.nukkit.events.PlotComponentSetEvent;
import com.plotsquared.nukkit.events.PlotDeleteEvent;
import com.plotsquared.nukkit.events.PlotFlagAddEvent;
import com.plotsquared.nukkit.events.PlotFlagRemoveEvent;
import com.plotsquared.nukkit.events.PlotMergeEvent;
import com.plotsquared.nukkit.events.PlotRateEvent;
import com.plotsquared.nukkit.events.PlotUnlinkEvent;
import com.plotsquared.nukkit.events.*;
import com.plotsquared.nukkit.object.NukkitPlayer;
import java.util.ArrayList;
import java.util.UUID;
@ -53,83 +33,67 @@ public class NukkitEventUtil extends EventUtil {
return !(event instanceof Cancellable) || !event.isCancelled();
}
@Override
public boolean callClaim(PlotPlayer player, Plot plot, boolean auto) {
@Override public boolean callClaim(PlotPlayer player, Plot plot, boolean auto) {
return callEvent(new PlayerClaimPlotEvent(getPlayer(player), plot, auto));
}
@Override
public boolean callTeleport(PlotPlayer player, Location from, Plot plot) {
@Override public boolean callTeleport(PlotPlayer player, Location from, Plot plot) {
return callEvent(new PlayerTeleportToPlotEvent(getPlayer(player), from, plot));
}
@Override
public boolean callComponentSet(Plot plot, String component) {
@Override public boolean callComponentSet(Plot plot, String component) {
return callEvent(new PlotComponentSetEvent(plot, component));
}
@Override
public boolean callClear(Plot plot) {
@Override public boolean callClear(Plot plot) {
return callEvent(new PlotClearEvent(plot));
}
@Override
public void callDelete(Plot plot) {
@Override public void callDelete(Plot plot) {
callEvent(new PlotDeleteEvent(plot));
}
@Override
public boolean callFlagAdd(Flag flag, Plot plot) {
@Override public boolean callFlagAdd(Flag flag, Plot plot) {
return callEvent(new PlotFlagAddEvent(flag, plot));
}
@Override
public boolean callFlagRemove(Flag<?> flag, Plot plot, Object value) {
@Override public boolean callFlagRemove(Flag<?> flag, Plot plot, Object value) {
return callEvent(new PlotFlagRemoveEvent(flag, plot));
}
@Override
public boolean callMerge(Plot plot, ArrayList<PlotId> plots) {
@Override public boolean callMerge(Plot plot, ArrayList<PlotId> plots) {
return callEvent(new PlotMergeEvent(NukkitUtil.getWorld(plot.getWorldName()), plot, plots));
}
@Override
public boolean callUnlink(PlotArea area, ArrayList<PlotId> plots) {
@Override public boolean callUnlink(PlotArea area, ArrayList<PlotId> plots) {
return callEvent(new PlotUnlinkEvent(NukkitUtil.getWorld(area.worldname), area, plots));
}
@Override
public void callEntry(PlotPlayer player, Plot plot) {
@Override public void callEntry(PlotPlayer player, Plot plot) {
callEvent(new PlayerEnterPlotEvent(getPlayer(player), plot));
}
@Override
public void callLeave(PlotPlayer player, Plot plot) {
@Override public void callLeave(PlotPlayer player, Plot plot) {
callEvent(new PlayerLeavePlotEvent(getPlayer(player), plot));
}
@Override
public void callDenied(PlotPlayer initiator, Plot plot, UUID player, boolean added) {
@Override public void callDenied(PlotPlayer initiator, Plot plot, UUID player, boolean added) {
callEvent(new PlayerPlotDeniedEvent(getPlayer(initiator), plot, player, added));
}
@Override
public void callTrusted(PlotPlayer initiator, Plot plot, UUID player, boolean added) {
@Override public void callTrusted(PlotPlayer initiator, Plot plot, UUID player, boolean added) {
callEvent(new PlayerPlotTrustedEvent(getPlayer(initiator), plot, player, added));
}
@Override
public void callMember(PlotPlayer initiator, Plot plot, UUID player, boolean added) {
@Override public void callMember(PlotPlayer initiator, Plot plot, UUID player, boolean added) {
callEvent(new PlayerPlotHelperEvent(getPlayer(initiator), plot, player, added));
}
@Override
public boolean callFlagRemove(Flag flag, Object object, PlotCluster cluster) {
@Override public boolean callFlagRemove(Flag flag, Object object, PlotCluster cluster) {
return callEvent(new ClusterFlagRemoveEvent(flag, cluster));
}
@Override
public Rating callRating(PlotPlayer player, Plot plot, Rating rating) {
@Override public Rating callRating(PlotPlayer player, Plot plot, Rating rating) {
PlotRateEvent event = new PlotRateEvent(player, rating, plot);
plugin.getServer().getPluginManager().callEvent(event);
return event.getRating();

View File

@ -12,8 +12,8 @@ public class NukkitHybridUtils extends HybridUtils {
PS.debug("Not implemented: NukkitHybridUtils");
}
@Override
public void analyzeRegion(final String world, final RegionWrapper region, final RunnableVal<PlotAnalysis> whenDone) {
@Override public void analyzeRegion(final String world, final RegionWrapper region,
final RunnableVal<PlotAnalysis> whenDone) {
throw new UnsupportedOperationException("NOT IMPLEMENTED YET");
}
}

View File

@ -30,18 +30,15 @@ public class NukkitInventoryUtil extends InventoryUtil {
return stack;
}
@Override
public void open(PlotInventory inv) {
@Override public void open(PlotInventory inv) {
return; // TODO
}
@Override
public void close(PlotInventory inv) {
@Override public void close(PlotInventory inv) {
return; // TODO
}
@Override
public void setItem(PlotInventory inv, int index, PlotItemStack item) {
@Override public void setItem(PlotInventory inv, int index, PlotItemStack item) {
return; // TODO
}
@ -59,8 +56,7 @@ public class NukkitInventoryUtil extends InventoryUtil {
return new PlotItemStack(id, (short) data, amount, name);
}
@Override
public PlotItemStack[] getItems(PlotPlayer player) {
@Override public PlotItemStack[] getItems(PlotPlayer player) {
NukkitPlayer bp = (NukkitPlayer) player;
PlayerInventory inv = bp.player.getInventory();
PlotItemStack[] items = new PlotItemStack[36];
@ -70,8 +66,7 @@ public class NukkitInventoryUtil extends InventoryUtil {
return items;
}
@Override
public boolean isOpen(PlotInventory inv) {
@Override public boolean isOpen(PlotInventory inv) {
return false; // TODO
}
}

View File

@ -4,13 +4,7 @@ import cn.nukkit.block.Block;
import cn.nukkit.level.Level;
import cn.nukkit.level.format.generic.BaseFullChunk;
import cn.nukkit.math.Vector3;
import com.intellectualcrafters.jnbt.ByteArrayTag;
import com.intellectualcrafters.jnbt.CompoundTag;
import com.intellectualcrafters.jnbt.IntTag;
import com.intellectualcrafters.jnbt.ListTag;
import com.intellectualcrafters.jnbt.ShortTag;
import com.intellectualcrafters.jnbt.StringTag;
import com.intellectualcrafters.jnbt.Tag;
import com.intellectualcrafters.jnbt.*;
import com.intellectualcrafters.plot.object.ChunkLoc;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.RegionWrapper;
@ -20,12 +14,9 @@ import com.intellectualcrafters.plot.util.SchematicHandler;
import com.intellectualcrafters.plot.util.TaskManager;
import com.intellectualcrafters.plot.util.block.LocalBlockQueue;
import com.plotsquared.nukkit.NukkitMain;
import java.io.IOException;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import java.util.*;
/**
* Schematic Handler.
@ -38,12 +29,11 @@ public class NukkitSchematicHandler extends SchematicHandler {
this.plugin = plugin;
}
@Override
public void getCompoundTag(final String world, final Set<RegionWrapper> regions, final RunnableVal<CompoundTag> whenDone) {
@Override public void getCompoundTag(final String world, final Set<RegionWrapper> regions,
final RunnableVal<CompoundTag> whenDone) {
// async
TaskManager.runTaskAsync(new Runnable() {
@Override
public void run() {
@Override public void run() {
// Main positions
Location[] corners = MainUtil.getCorners(world, regions);
final Location bot = corners[0];
@ -71,16 +61,18 @@ public class NukkitSchematicHandler extends SchematicHandler {
// Queue
final ArrayDeque<RegionWrapper> queue = new ArrayDeque<>(regions);
TaskManager.runTask(new Runnable() {
@Override
public void run() {
@Override public void run() {
if (queue.isEmpty()) {
TaskManager.runTaskAsync(new Runnable() {
@Override
public void run() {
@Override public void run() {
schematic.put("Blocks", new ByteArrayTag("Blocks", blocks));
schematic.put("Data", new ByteArrayTag("Data", blockData));
schematic.put("Entities", new ListTag("Entities", CompoundTag.class, new ArrayList<>()));
schematic.put("TileEntities", new ListTag("TileEntities", CompoundTag.class, tileEntities));
schematic.put("Entities",
new ListTag("Entities", CompoundTag.class,
new ArrayList<>()));
schematic.put("TileEntities",
new ListTag("TileEntities", CompoundTag.class,
tileEntities));
whenDone.value = new CompoundTag("Schematic", schematic);
TaskManager.runTask(whenDone);
System.gc();
@ -116,10 +108,10 @@ public class NukkitSchematicHandler extends SchematicHandler {
// Main thread
final Vector3 mutable = new Vector3();
TaskManager.runTask(new Runnable() {
@Override
public void run() {
@Override public void run() {
long start = System.currentTimeMillis();
while (!chunks.isEmpty() && System.currentTimeMillis() - start < 20) {
while (!chunks.isEmpty()
&& System.currentTimeMillis() - start < 20) {
// save schematics
ChunkLoc chunk = chunks.remove(0);
BaseFullChunk bc = worldObj.getChunk(chunk.x, chunk.z);

View File

@ -12,6 +12,7 @@ import com.intellectualcrafters.plot.util.SetupUtils;
import com.plotsquared.nukkit.NukkitMain;
import com.plotsquared.nukkit.generator.NukkitPlotGenerator;
import com.plotsquared.nukkit.util.block.NukkitHybridGen;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.HashMap;
@ -27,13 +28,11 @@ public class NukkitSetupUtils extends SetupUtils {
Generator.addGenerator(NukkitHybridGen.class, "PlotSquared", 1);
}
@Override
public void unload(String world, boolean save) {
@Override public void unload(String world, boolean save) {
plugin.getServer().unloadLevel(plugin.getServer().getLevelByName(world), save);
}
@Override
public void updateGenerators() {
@Override public void updateGenerators() {
if (!SetupUtils.generators.isEmpty()) {
return;
}
@ -45,8 +44,7 @@ public class NukkitSetupUtils extends SetupUtils {
SetupUtils.generators.put(PS.imp().getPluginName(), gen);
}
@Override
public String setupWorld(SetupObject object) {
@Override public String setupWorld(SetupObject object) {
SetupUtils.manager.updateGenerators();
ConfigurationNode[] steps = object.step == null ? new ConfigurationNode[0] : object.step;
String world = object.world;
@ -64,7 +62,8 @@ public class NukkitSetupUtils extends SetupUtils {
if (!worldSection.contains(areaPath)) {
worldSection.createSection(areaPath);
}
ConfigurationSection areaSection = worldSection.getConfigurationSection(areaPath);
ConfigurationSection areaSection =
worldSection.getConfigurationSection(areaPath);
HashMap<String, Object> options = new HashMap<>();
for (ConfigurationNode step : steps) {
options.put(step.getConstant(), step.getValue());
@ -72,7 +71,8 @@ public class NukkitSetupUtils extends SetupUtils {
options.put("generator.type", object.type);
options.put("generator.terrain", object.terrain);
options.put("generator.plugin", object.plotManager);
if (object.setupGenerator != null && !object.setupGenerator.equals(object.plotManager)) {
if (object.setupGenerator != null && !object.setupGenerator
.equals(object.plotManager)) {
options.put("generator.init", object.setupGenerator);
}
for (Entry<String, Object> entry : options.entrySet()) {
@ -101,8 +101,10 @@ public class NukkitSetupUtils extends SetupUtils {
PS.get().worlds.set("worlds." + world + ".generator.type", object.type);
PS.get().worlds.set("worlds." + world + ".generator.terrain", object.terrain);
PS.get().worlds.set("worlds." + world + ".generator.plugin", object.plotManager);
if (object.setupGenerator != null && !object.setupGenerator.equals(object.plotManager)) {
PS.get().worlds.set("worlds." + world + ".generator.init", object.setupGenerator);
if (object.setupGenerator != null && !object.setupGenerator
.equals(object.plotManager)) {
PS.get().worlds
.set("worlds." + world + ".generator.init", object.setupGenerator);
}
GeneratorWrapper<?> gen = SetupUtils.generators.get(object.setupGenerator);
if (gen != null && gen.isFull()) {
@ -124,16 +126,17 @@ public class NukkitSetupUtils extends SetupUtils {
HashMap<String, Object> map = new HashMap<>();
map.put("world", object.world);
map.put("plot-generator", PS.get().IMP.getDefaultGenerator());
if (!plugin.getServer().generateLevel(object.world, object.world.hashCode(), NukkitHybridGen.class, map)) {
if (!plugin.getServer()
.generateLevel(object.world, object.world.hashCode(), NukkitHybridGen.class, map)) {
plugin.getServer().loadLevel(object.world);
}
try {
// File nukkitFile = new File("nukkit.yml");
// YamlConfiguration nukkitYml = YamlConfiguration.loadConfiguration(nukkitFile);
// if (!nukkitYml.contains("worlds." + object.world + ".generator")) {
// nukkitYml.set("worlds." + object.world + ".generator", object.setupGenerator);
// nukkitYml.save(nukkitFile);
// }
// File nukkitFile = new File("nukkit.yml");
// YamlConfiguration nukkitYml = YamlConfiguration.loadConfiguration(nukkitFile);
// if (!nukkitYml.contains("worlds." + object.world + ".generator")) {
// nukkitYml.set("worlds." + object.world + ".generator", object.setupGenerator);
// nukkitYml.save(nukkitFile);
// }
} catch (Throwable e) {
e.printStackTrace();
}
@ -145,8 +148,7 @@ public class NukkitSetupUtils extends SetupUtils {
return object.world;
}
@Override
public String getGenerator(PlotArea plotArea) {
@Override public String getGenerator(PlotArea plotArea) {
if (SetupUtils.generators.isEmpty()) {
updateGenerators();
}

View File

@ -3,64 +3,58 @@ package com.plotsquared.nukkit.util;
import cn.nukkit.scheduler.TaskHandler;
import com.intellectualcrafters.plot.util.TaskManager;
import com.plotsquared.nukkit.NukkitMain;
import java.util.HashMap;
import java.util.concurrent.atomic.AtomicInteger;
public class NukkitTaskManager extends TaskManager {
private final NukkitMain plugin;
private AtomicInteger index = new AtomicInteger(0);
private HashMap<Integer, Integer> tasks = new HashMap<>();
public NukkitTaskManager(NukkitMain bukkitMain) {
this.plugin = bukkitMain;
}
private AtomicInteger index = new AtomicInteger(0);
private HashMap<Integer, Integer> tasks = new HashMap<>();
@Override
public int taskRepeat(Runnable r, int interval) {
TaskHandler task = this.plugin.getServer().getScheduler().scheduleRepeatingTask(r, interval, false);
@Override public int taskRepeat(Runnable r, int interval) {
TaskHandler task =
this.plugin.getServer().getScheduler().scheduleRepeatingTask(r, interval, false);
return task.getTaskId();
}
@SuppressWarnings("deprecation")
@Override
@SuppressWarnings("deprecation") @Override
public int taskRepeatAsync(Runnable r, int interval) {
TaskHandler task = this.plugin.getServer().getScheduler().scheduleRepeatingTask(r, interval, true);
TaskHandler task =
this.plugin.getServer().getScheduler().scheduleRepeatingTask(r, interval, true);
return task.getTaskId();
}
@Override
public void taskAsync(Runnable r) {
@Override public void taskAsync(Runnable r) {
if (r == null) {
return;
}
this.plugin.getServer().getScheduler().scheduleTask(r, true);
}
@Override
public void task(Runnable r) {
@Override public void task(Runnable r) {
if (r == null) {
return;
}
this.plugin.getServer().getScheduler().scheduleTask(r, false);
}
@Override
public void taskLater(Runnable r, int delay) {
@Override public void taskLater(Runnable r, int delay) {
if (r == null) {
return;
}
this.plugin.getServer().getScheduler().scheduleDelayedTask(r, delay);
}
@Override
public void taskLaterAsync(Runnable r, int delay) {
@Override public void taskLaterAsync(Runnable r, int delay) {
this.plugin.getServer().getScheduler().scheduleDelayedTask(r, delay, true);
}
@Override
public void cancelTask(int task) {
@Override public void cancelTask(int task) {
if (task != -1) {
this.plugin.getServer().getScheduler().cancelTask(task);
}

View File

@ -21,6 +21,7 @@ import com.intellectualcrafters.plot.object.schematic.PlotItem;
import com.intellectualcrafters.plot.util.*;
import com.plotsquared.nukkit.NukkitMain;
import com.plotsquared.nukkit.object.NukkitPlayer;
import java.lang.reflect.Field;
import java.util.ArrayList;
@ -65,17 +66,18 @@ public class NukkitUtil extends WorldUtil {
}
public static Location getLocation(cn.nukkit.level.Location location) {
return new Location(location.getLevel().getName(), MathMan.roundInt(location.getX()), MathMan.roundInt(location.getY()),
MathMan.roundInt(location.getZ()));
return new Location(location.getLevel().getName(), MathMan.roundInt(location.getX()),
MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()));
}
public static Location getLocation(cn.nukkit.level.Position location) {
return new Location(location.getLevel().getName(), MathMan.roundInt(location.getX()), MathMan.roundInt(location.getY()),
MathMan.roundInt(location.getZ()));
return new Location(location.getLevel().getName(), MathMan.roundInt(location.getX()),
MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()));
}
public static cn.nukkit.level.Location getLocation(Location location) {
return new cn.nukkit.level.Location(location.getX(), location.getY(), location.getZ(), 0, 0, getWorld(location.getWorld()));
return new cn.nukkit.level.Location(location.getX(), location.getY(), location.getZ(), 0, 0,
getWorld(location.getWorld()));
}
public static Level getWorld(String string) {
@ -101,28 +103,27 @@ public class NukkitUtil extends WorldUtil {
public static Location getLocation(Entity entity) {
cn.nukkit.level.Location location = entity.getLocation();
String world = location.getLevel().getName();
return new Location(world, location.getFloorX(), location.getFloorY(), location.getFloorZ());
return new Location(world, location.getFloorX(), location.getFloorY(),
location.getFloorZ());
}
public static Location getLocationFull(Entity entity) {
cn.nukkit.level.Location location = entity.getLocation();
return new Location(location.getLevel().getName(), MathMan.roundInt(location.getX()), MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()),
(float) location.getYaw(), (float) location.getPitch());
return new Location(location.getLevel().getName(), MathMan.roundInt(location.getX()),
MathMan.roundInt(location.getY()), MathMan.roundInt(location.getZ()),
(float) location.getYaw(), (float) location.getPitch());
}
@Override
public boolean isWorld(String worldName) {
@Override public boolean isWorld(String worldName) {
return getWorld(worldName) != null;
}
@Override
public String getBiome(String world, int x, int z) {
@Override public String getBiome(String world, int x, int z) {
int id = getWorld(world).getBiomeId(x, z);
return EnumBiome.getBiome(id).getName();
}
@Override
public void setSign(String worldName, int x, int y, int z, String[] lines) {
@Override public void setSign(String worldName, int x, int y, int z, String[] lines) {
Level world = getWorld(worldName);
BlockWallSign sign = new BlockWallSign(0);
Vector3 pos = new Vector3(x, y, z);
@ -134,8 +135,7 @@ public class NukkitUtil extends WorldUtil {
}
}
@Override
public String[] getSign(Location location) {
@Override public String[] getSign(Location location) {
Level world = getWorld(location.getWorld());
Vector3 pos = new Vector3(location.getX(), location.getY(), location.getZ());
BlockEntity tile = world.getBlockEntity(pos);
@ -145,40 +145,34 @@ public class NukkitUtil extends WorldUtil {
return null;
}
@Override
public Location getSpawn(PlotPlayer player) {
@Override public Location getSpawn(PlotPlayer player) {
return getLocation(((NukkitPlayer) player).player.getSpawn());
}
@Override
public Location getSpawn(String world) {
@Override public Location getSpawn(String world) {
Position loc = getWorld(world).getSpawnLocation();
return new Location(world, loc.getFloorX(), loc.getFloorY(), loc.getFloorZ(), 0, 0);
}
@Override
public void setSpawn(Location location) {
@Override public void setSpawn(Location location) {
Level world = getWorld(location.getWorld());
if (world != null) {
world.setSpawnLocation(new Vector3(location.getX(), location.getY(), location.getZ()));
}
}
@Override
public void saveWorld(String worldName) {
@Override public void saveWorld(String worldName) {
Level world = getWorld(worldName);
if (world != null) {
world.save();
}
}
@Override
public int getHighestBlock(String world, int x, int z) {
@Override public int getHighestBlock(String world, int x, int z) {
return getWorld(world).getHeightMap(x, z);
}
@Override
public int getBiomeFromString(String biomeString) {
@Override public int getBiomeFromString(String biomeString) {
try {
Biome biome = EnumBiome.getBiome(biomeString.toUpperCase());
return biome.getId();
@ -187,8 +181,7 @@ public class NukkitUtil extends WorldUtil {
}
}
@Override
public String[] getBiomeList() {
@Override public String[] getBiomeList() {
ArrayList<String> biomes = new ArrayList<>();
for (Field field : Biome.class.getDeclaredFields()) {
if (field.getName().equals(field.getName().toUpperCase())) {
@ -198,24 +191,22 @@ public class NukkitUtil extends WorldUtil {
return biomes.toArray(new String[biomes.size()]);
}
@Override
public boolean addItems(String worldName, PlotItem items) {
@Override public boolean addItems(String worldName, PlotItem items) {
return false;
}
@Override
public boolean isBlockSolid(PlotBlock block) {
@Override public boolean isBlockSolid(PlotBlock block) {
try {
Item item = Item.get(block.id, (int) block.data);
return (item != null && item.canBePlaced() && !Block.transparent[item.getId()] && Block.solid[item.getId()]);
return (item != null && item.canBePlaced() && !Block.transparent[item.getId()]
&& Block.solid[item.getId()]);
} catch (Exception ignored) {
ignored.printStackTrace();
return false;
}
}
@Override
public String getClosestMatchingName(PlotBlock block) {
@Override public String getClosestMatchingName(PlotBlock block) {
try {
return Item.get(block.id, (int) block.data).getName();
} catch (Exception ignored) {
@ -223,12 +214,13 @@ public class NukkitUtil extends WorldUtil {
}
}
@Override
public StringComparison<PlotBlock>.ComparisonResult getClosestBlock(String name) {
@Override public StringComparison<PlotBlock>.ComparisonResult getClosestBlock(String name) {
try {
Item item = Item.fromString(name);
return new StringComparison<PlotBlock>().new ComparisonResult(0, PlotBlock.get(item.getId(), item.getDamage()));
} catch (IllegalArgumentException ignored) {}
return new StringComparison<PlotBlock>().new ComparisonResult(0,
PlotBlock.get(item.getId(), item.getDamage()));
} catch (IllegalArgumentException ignored) {
}
try {
byte data;
String[] split = name.split(":");
@ -244,7 +236,8 @@ public class NukkitUtil extends WorldUtil {
id = Short.parseShort(split[0]);
match = 0;
} else {
StringComparison<Item>.ComparisonResult comparison = new StringComparison<>(name, Item.getCreativeItems()).getBestMatchAdvanced();
StringComparison<Item>.ComparisonResult comparison =
new StringComparison<>(name, Item.getCreativeItems()).getBestMatchAdvanced();
match = comparison.match;
id = (short) comparison.best.getId();
}
@ -252,12 +245,12 @@ public class NukkitUtil extends WorldUtil {
StringComparison<PlotBlock> outer = new StringComparison<>();
return outer.new ComparisonResult(match, block);
} catch (NumberFormatException ignored) {}
} catch (NumberFormatException ignored) {
}
return null;
}
@Override
public void setBiomes(String worldName, RegionWrapper region, String biomeString) {
@Override public void setBiomes(String worldName, RegionWrapper region, String biomeString) {
Level world = getWorld(worldName);
try {
int biome = (int) Biome.class.getDeclaredField(biomeString.toUpperCase()).get(null);
@ -271,8 +264,7 @@ public class NukkitUtil extends WorldUtil {
}
}
@Override
public PlotBlock getBlock(Location location) {
@Override public PlotBlock getBlock(Location location) {
Level world = getWorld(location.getWorld());
int id = world.getBlockIdAt(location.getX(), location.getY(), location.getZ());
if (id == 0) {
@ -282,8 +274,7 @@ public class NukkitUtil extends WorldUtil {
return PlotBlock.get(id, data);
}
@Override
public String getMainWorld() {
@Override public String getMainWorld() {
return plugin.getServer().getDefaultLevel().getName();
}
}

View File

@ -4,6 +4,7 @@ import cn.nukkit.level.Level;
import com.intellectualcrafters.plot.PS;
import com.plotsquared.nukkit.NukkitMain;
import com.plotsquared.nukkit.generator.NukkitPlotGenerator;
import java.util.Map;
public class NukkitHybridGen extends NukkitPlotGenerator {

View File

@ -14,26 +14,24 @@ import com.plotsquared.nukkit.NukkitMain;
public class NukkitLocalQueue<T> extends BasicLocalBlockQueue<T> {
private final Level level;
private Vector3 mutable;
public NukkitLocalQueue(String world) {
super(world);
this.level = ((NukkitMain) PS.get().IMP).getServer().getLevelByName(world);
}
@Override
public LocalChunk<T> getLocalChunk(int x, int z) {
@Override public LocalChunk<T> getLocalChunk(int x, int z) {
return (LocalChunk<T>) new BasicLocalChunk(this, x, z) {
// Custom stuff?
};
}
@Override
public void optimize() {
@Override public void optimize() {
}
@Override
public PlotBlock getBlock(int x, int y, int z) {
@Override public PlotBlock getBlock(int x, int y, int z) {
Block block = level.getBlock(getMut(x, y, z));
if (block == null) {
return PlotBlock.get(0, 0);
@ -45,23 +43,19 @@ public class NukkitLocalQueue<T> extends BasicLocalBlockQueue<T> {
return PlotBlock.get(id, block.getDamage());
}
@Override
public void refreshChunk(int x, int z) {
@Override public void refreshChunk(int x, int z) {
}
@Override
public void fixChunkLighting(int x, int z) {
@Override public void fixChunkLighting(int x, int z) {
// Do nothing
}
@Override
public final void regenChunk(int x, int z) {
@Override public final void regenChunk(int x, int z) {
level.regenerateChunk(x, z);
}
@Override
public final void setComponents(LocalChunk<T> lc) {
@Override public final void setComponents(LocalChunk<T> lc) {
setBlocks(lc);
setBiomes(lc);
}
@ -70,7 +64,6 @@ public class NukkitLocalQueue<T> extends BasicLocalBlockQueue<T> {
return level.getChunk(x, z);
}
private Vector3 mutable;
private Vector3 getMut(int x, int y, int z) {
mutable.x = x;
mutable.y = y;
@ -119,4 +112,4 @@ public class NukkitLocalQueue<T> extends BasicLocalBlockQueue<T> {
}
}
}
}
}

View File

@ -21,14 +21,12 @@ public class NukkitWrappedChunk extends ScopedLocalBlockQueue {
this.chunk = chunk;
}
@Override
public boolean setBlock(int x, int y, int z, int id, int data) {
@Override public boolean setBlock(int x, int y, int z, int id, int data) {
chunk.setBlock(x, y, z, id, data);
return true;
}
@Override
public PlotBlock getBlock(int x, int y, int z) {
@Override public PlotBlock getBlock(int x, int y, int z) {
int id = chunk.getBlockId(x, y, z);
if (id == 0) {
return PlotBlock.get(0, 0);
@ -37,16 +35,14 @@ public class NukkitWrappedChunk extends ScopedLocalBlockQueue {
return PlotBlock.get(id, data);
}
@Override
public boolean setBiome(int x, int z, String biome) {
@Override public boolean setBiome(int x, int z, String biome) {
Biome b = EnumBiome.getBiome(biome);
int id = b.getId();
chunk.setBiomeId(x, z, id);
return true;
}
@Override
public void fillBiome(String biome) {
@Override public void fillBiome(String biome) {
Biome b = EnumBiome.getBiome(biome);
int id = b.getId();
for (int x = 0; x < 16; x++) {
@ -56,8 +52,7 @@ public class NukkitWrappedChunk extends ScopedLocalBlockQueue {
}
}
@Override
public String getWorld() {
@Override public String getWorld() {
return world;
}
@ -69,13 +64,11 @@ public class NukkitWrappedChunk extends ScopedLocalBlockQueue {
return chunk.getZ();
}
@Override
public Location getMax() {
@Override public Location getMax() {
return new Location(getWorld(), 15 + (getX() << 4), 255, 15 + (getZ() << 4));
}
@Override
public Location getMin() {
@Override public Location getMin() {
return new Location(getWorld(), getX() << 4, 0, getZ() << 4);
}

View File

@ -5,8 +5,7 @@ import java.io.FilenameFilter;
public class DatFileFilter implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
@Override public boolean accept(File dir, String name) {
return name.endsWith(".dat");
}
}

View File

@ -9,6 +9,7 @@ import com.intellectualcrafters.plot.util.TaskManager;
import com.intellectualcrafters.plot.util.UUIDHandlerImplementation;
import com.intellectualcrafters.plot.util.expiry.ExpireManager;
import com.intellectualcrafters.plot.uuid.UUIDWrapper;
import java.io.File;
import java.util.HashMap;
import java.util.UUID;
@ -19,18 +20,17 @@ public class FileUUIDHandler extends UUIDHandlerImplementation {
super(wrapper);
}
@Override
public boolean startCaching(Runnable whenDone) {
@Override public boolean startCaching(Runnable whenDone) {
return super.startCaching(whenDone) && cache(whenDone);
}
public boolean cache(final Runnable whenDone) {
final File container = new File("players");
TaskManager.runTaskAsync(new Runnable() {
@Override
public void run() {
@Override public void run() {
PS.debug(C.PREFIX + "&6Starting player data caching for: " + container);
HashBiMap<StringWrapper, UUID> toAdd = HashBiMap.create(new HashMap<StringWrapper, UUID>());
HashBiMap<StringWrapper, UUID> toAdd =
HashBiMap.create(new HashMap<StringWrapper, UUID>());
for (File file : container.listFiles(new DatFileFilter())) {
String fileName = file.getName();
String name = fileName.substring(0, fileName.length() - 4);
@ -50,11 +50,9 @@ public class FileUUIDHandler extends UUIDHandlerImplementation {
return true;
}
@Override
public void fetchUUID(final String name, final RunnableVal<UUID> ifFetch) {
@Override public void fetchUUID(final String name, final RunnableVal<UUID> ifFetch) {
TaskManager.runTaskAsync(new Runnable() {
@Override
public void run() {
@Override public void run() {
ifFetch.value = FileUUIDHandler.this.uuidWrapper.getUUID(name);
TaskManager.runTask(ifFetch);
}

View File

@ -4,37 +4,35 @@ import com.google.common.base.Charsets;
import com.intellectualcrafters.plot.object.OfflinePlotPlayer;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.uuid.UUIDWrapper;
import java.util.UUID;
public class LowerOfflineUUIDWrapper extends UUIDWrapper {
@Override
public UUID getUUID(PlotPlayer player) {
return UUID.nameUUIDFromBytes(("OfflinePlayer:" + player.getName().toLowerCase()).getBytes(Charsets.UTF_8));
@Override public UUID getUUID(PlotPlayer player) {
return UUID.nameUUIDFromBytes(
("OfflinePlayer:" + player.getName().toLowerCase()).getBytes(Charsets.UTF_8));
}
@Override
public UUID getUUID(OfflinePlotPlayer player) {
return UUID.nameUUIDFromBytes(("OfflinePlayer:" + player.getName().toLowerCase()).getBytes(Charsets.UTF_8));
@Override public UUID getUUID(OfflinePlotPlayer player) {
return UUID.nameUUIDFromBytes(
("OfflinePlayer:" + player.getName().toLowerCase()).getBytes(Charsets.UTF_8));
}
@Override
public UUID getUUID(String name) {
return UUID.nameUUIDFromBytes(("OfflinePlayer:" + name.toLowerCase()).getBytes(Charsets.UTF_8));
@Override public UUID getUUID(String name) {
return UUID
.nameUUIDFromBytes(("OfflinePlayer:" + name.toLowerCase()).getBytes(Charsets.UTF_8));
}
@Override
public OfflinePlotPlayer getOfflinePlayer(UUID uuid) {
@Override public OfflinePlotPlayer getOfflinePlayer(UUID uuid) {
return null;
}
@Override
public OfflinePlotPlayer getOfflinePlayer(String name) {
@Override public OfflinePlotPlayer getOfflinePlayer(String name) {
return null;
}
@Override
public OfflinePlotPlayer[] getOfflinePlayers() {
@Override public OfflinePlotPlayer[] getOfflinePlayers() {
return new OfflinePlotPlayer[0];
}