mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2025-06-25 02:04:44 +02:00
Reformat code
This commit is contained in:
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
};
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,6 @@ import com.intellectualcrafters.plot.object.PlotId;
|
||||
|
||||
/**
|
||||
* Called when a plot component is set
|
||||
*
|
||||
*/
|
||||
public class PlotComponentSetEvent extends PlotEvent {
|
||||
|
||||
|
@ -6,7 +6,6 @@ import com.intellectualcrafters.plot.object.PlotId;
|
||||
|
||||
/**
|
||||
* Called when a plot is deleted
|
||||
*
|
||||
*/
|
||||
public class PlotDeleteEvent extends PlotEvent {
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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 {
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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 {
|
||||
|
@ -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> {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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");
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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];
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user