mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-25 22:56:45 +01:00
Reformat code
This commit is contained in:
parent
d352804b5d
commit
bef3dbc6f4
@ -31,8 +31,8 @@ import com.sk89q.worldedit.extension.platform.Capability;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
import org.bstats.bukkit.Metrics;
|
import org.bstats.bukkit.Metrics;
|
||||||
import org.bukkit.*;
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.*;
|
||||||
import org.bukkit.command.PluginCommand;
|
import org.bukkit.command.PluginCommand;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
@ -48,7 +48,6 @@ import org.bukkit.plugin.java.JavaPlugin;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.net.URL;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static com.github.intellectualsites.plotsquared.plot.util.ReflectionUtils.getRefClass;
|
import static com.github.intellectualsites.plotsquared.plot.util.ReflectionUtils.getRefClass;
|
||||||
@ -60,7 +59,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
static {
|
static {
|
||||||
try {
|
try {
|
||||||
Settings.load(new File("plugins/PlotSquared/config/settings.yml"));
|
Settings.load(new File("plugins/PlotSquared/config/settings.yml"));
|
||||||
} catch (Throwable ignored) {}
|
} catch (Throwable ignored) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private final LegacyMappings legacyMappings = new BukkitLegacyMappings();
|
private final LegacyMappings legacyMappings = new BukkitLegacyMappings();
|
||||||
@ -110,8 +110,7 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS);
|
WorldEdit.getInstance().getPlatformManager().queryCapability(Capability.GAME_HOOKS);
|
||||||
} catch (final Throwable throwable) {
|
} catch (final Throwable throwable) {
|
||||||
throw new IllegalStateException(
|
throw new IllegalStateException(
|
||||||
"Failed to force load WorldEdit. Road schematics will fail to generate",
|
"Failed to force load WorldEdit. Road schematics will fail to generate", throwable);
|
||||||
throwable);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,25 +144,31 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
// Check for updates
|
// Check for updates
|
||||||
if (PlotSquared.get().getUpdateUtility() != null) {
|
if (PlotSquared.get().getUpdateUtility() != null) {
|
||||||
final UpdateUtility updateUtility = PlotSquared.get().getUpdateUtility();
|
final UpdateUtility updateUtility = PlotSquared.get().getUpdateUtility();
|
||||||
updateUtility.checkForUpdate(this.getPluginVersionString(), ((updateDescription, throwable) -> {
|
updateUtility
|
||||||
Bukkit.getScheduler().runTask(BukkitMain.this, () -> {
|
.checkForUpdate(this.getPluginVersionString(), ((updateDescription, throwable) -> {
|
||||||
getLogger().info("-------- PlotSquared Update Check --------");
|
Bukkit.getScheduler().runTask(BukkitMain.this, () -> {
|
||||||
if (throwable != null) {
|
getLogger().info("-------- PlotSquared Update Check --------");
|
||||||
getLogger().severe(String.format("Could not check for update. Reason: %s",
|
if (throwable != null) {
|
||||||
throwable.getMessage()));
|
getLogger().severe(String
|
||||||
} else {
|
.format("Could not check for update. Reason: %s",
|
||||||
if (updateDescription == null) {
|
throwable.getMessage()));
|
||||||
getLogger().info("You appear to be running the latest version of PlotSquared. Congratulations!");
|
|
||||||
} else {
|
} else {
|
||||||
getLogger().info("There appears to be a PlotSquared update available!");
|
if (updateDescription == null) {
|
||||||
getLogger().info(String.format("You are running version %s,"
|
getLogger().info(
|
||||||
+ " the newest available version is %s", getPluginVersionString(), updateDescription.getVersion()));
|
"You appear to be running the latest version of PlotSquared. Congratulations!");
|
||||||
getLogger().info(String.format("Update URL: %s", updateDescription.getUrl()));
|
} else {
|
||||||
|
getLogger()
|
||||||
|
.info("There appears to be a PlotSquared update available!");
|
||||||
|
getLogger().info(String.format("You are running version %s,"
|
||||||
|
+ " the newest available version is %s",
|
||||||
|
getPluginVersionString(), updateDescription.getVersion()));
|
||||||
|
getLogger().info(
|
||||||
|
String.format("Update URL: %s", updateDescription.getUrl()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
getLogger().info("-------- PlotSquared Update Check --------");
|
||||||
getLogger().info("-------- PlotSquared Update Check --------");
|
});
|
||||||
});
|
}));
|
||||||
}));
|
|
||||||
} else {
|
} else {
|
||||||
getLogger().warning("Update checking disabled. Skipping.");
|
getLogger().warning("Update checking disabled. Skipping.");
|
||||||
}
|
}
|
||||||
@ -246,8 +251,7 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
continue outer;
|
continue outer;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
result = world
|
result = world.unloadChunk(chunkI.getX(), chunkI.getZ(), true);
|
||||||
.unloadChunk(chunkI.getX(), chunkI.getZ(), true);
|
|
||||||
}
|
}
|
||||||
if (!result) {
|
if (!result) {
|
||||||
continue outer;
|
continue outer;
|
||||||
|
@ -6,8 +6,7 @@ import org.bukkit.event.HandlerList;
|
|||||||
import org.bukkit.event.player.PlayerEvent;
|
import org.bukkit.event.player.PlayerEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
*
|
||||||
|
|
||||||
*/
|
*/
|
||||||
public class PlayerLeavePlotEvent extends PlayerEvent {
|
public class PlayerLeavePlotEvent extends PlayerEvent {
|
||||||
|
|
||||||
|
@ -7,8 +7,7 @@ import org.bukkit.event.HandlerList;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
*
|
||||||
|
|
||||||
*/
|
*/
|
||||||
public class PlayerPlotHelperEvent extends PlotEvent {
|
public class PlayerPlotHelperEvent extends PlotEvent {
|
||||||
|
|
||||||
|
@ -7,8 +7,7 @@ import org.bukkit.event.HandlerList;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
*
|
||||||
|
|
||||||
*/
|
*/
|
||||||
public class PlayerPlotTrustedEvent extends PlotEvent {
|
public class PlayerPlotTrustedEvent extends PlotEvent {
|
||||||
|
|
||||||
|
@ -117,10 +117,11 @@ public class BukkitPlotGenerator extends ChunkGenerator
|
|||||||
return toAdd;
|
return toAdd;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override @NotNull public ChunkData generateChunkData(@NotNull World world, @NotNull Random random,
|
@Override @NotNull
|
||||||
int x, int z, @NotNull BiomeGrid biome) {
|
public ChunkData generateChunkData(@NotNull World world, @NotNull Random random, int x, int z,
|
||||||
|
@NotNull BiomeGrid biome) {
|
||||||
|
|
||||||
GenChunk result = new GenChunk();
|
GenChunk result = new GenChunk();
|
||||||
if (this.getPlotGenerator() instanceof SingleWorldGenerator) {
|
if (this.getPlotGenerator() instanceof SingleWorldGenerator) {
|
||||||
if (result.getCd() != null) {
|
if (result.getCd() != null) {
|
||||||
for (int cx = 0; cx < 16; cx++) {
|
for (int cx = 0; cx < 16; cx++) {
|
||||||
|
@ -32,10 +32,8 @@ import java.util.Random;
|
|||||||
return this.chunkGenerator.getClass().getName();
|
return this.chunkGenerator.getClass().getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override public PlotArea getNewPlotArea(String world, String id, PlotId min, PlotId max) {
|
||||||
public PlotArea getNewPlotArea(String world, String id, PlotId min, PlotId max) {
|
return PlotSquared.get().IMP.getDefaultGenerator().getNewPlotArea(world, id, min, max);
|
||||||
return PlotSquared.get().IMP.getDefaultGenerator()
|
|
||||||
.getNewPlotArea(world, id, min, max);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public BlockBucket[][] generateBlockBucketChunk(PlotArea settings) {
|
@Override public BlockBucket[][] generateBlockBucketChunk(PlotArea settings) {
|
||||||
@ -55,15 +53,14 @@ import java.util.Random;
|
|||||||
for (int y = 1; y < hpw.PLOT_HEIGHT; y++) {
|
for (int y = 1; y < hpw.PLOT_HEIGHT; y++) {
|
||||||
blockBuckets[y >> 4][((y & 0xF) << 8) | (z << 4) | x] = hpw.MAIN_BLOCK;
|
blockBuckets[y >> 4][((y & 0xF) << 8) | (z << 4) | x] = hpw.MAIN_BLOCK;
|
||||||
}
|
}
|
||||||
blockBuckets[hpw.PLOT_HEIGHT >> 4][((hpw.PLOT_HEIGHT & 0xF) << 8) | (z << 4)
|
blockBuckets[hpw.PLOT_HEIGHT >> 4][((hpw.PLOT_HEIGHT & 0xF) << 8) | (z << 4) | x] =
|
||||||
| x] = hpw.MAIN_BLOCK;
|
hpw.MAIN_BLOCK;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return blockBuckets;
|
return blockBuckets;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override public void generateChunk(final ScopedLocalBlockQueue result, PlotArea settings) {
|
||||||
public void generateChunk(final ScopedLocalBlockQueue result, PlotArea settings) {
|
|
||||||
World w = BukkitUtil.getWorld(world);
|
World w = BukkitUtil.getWorld(world);
|
||||||
Location min = result.getMin();
|
Location min = result.getMin();
|
||||||
int cx = min.getX() >> 4;
|
int cx = min.getX() >> 4;
|
||||||
|
@ -269,15 +269,13 @@ import static com.github.intellectualsites.plotsquared.plot.util.ReflectionUtils
|
|||||||
}
|
}
|
||||||
PlotSquared.debug(
|
PlotSquared.debug(
|
||||||
Captions.PREFIX.s() + "&a detected unsafe chunk and processed: " + (chunk.getX()
|
Captions.PREFIX.s() + "&a detected unsafe chunk and processed: " + (chunk.getX()
|
||||||
<< 4)
|
<< 4) + "," + (chunk.getX() << 4));
|
||||||
+ "," + (chunk.getX() << 4));
|
|
||||||
}
|
}
|
||||||
if (tiles.length > Settings.Chunk_Processor.MAX_TILES) {
|
if (tiles.length > Settings.Chunk_Processor.MAX_TILES) {
|
||||||
if (unload) {
|
if (unload) {
|
||||||
PlotSquared.debug(
|
PlotSquared.debug(
|
||||||
Captions.PREFIX.s() + "&c detected unsafe chunk: " + (chunk.getX() << 4) + ","
|
Captions.PREFIX.s() + "&c detected unsafe chunk: " + (chunk.getX() << 4) + ","
|
||||||
+ (
|
+ (chunk.getX() << 4));
|
||||||
chunk.getX() << 4));
|
|
||||||
cleanChunk(chunk);
|
cleanChunk(chunk);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -19,33 +19,34 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.event.entity.CreatureSpawnEvent;
|
import org.bukkit.event.entity.CreatureSpawnEvent;
|
||||||
import org.bukkit.event.entity.EntitySpawnEvent;
|
import org.bukkit.event.entity.EntitySpawnEvent;
|
||||||
import org.bukkit.event.entity.EntityTeleportEvent;
|
import org.bukkit.event.entity.EntityTeleportEvent;
|
||||||
import org.bukkit.event.vehicle.*;
|
import org.bukkit.event.vehicle.VehicleBlockCollisionEvent;
|
||||||
|
import org.bukkit.event.vehicle.VehicleCreateEvent;
|
||||||
|
import org.bukkit.event.vehicle.VehicleMoveEvent;
|
||||||
|
import org.bukkit.event.vehicle.VehicleUpdateEvent;
|
||||||
import org.bukkit.event.world.ChunkLoadEvent;
|
import org.bukkit.event.world.ChunkLoadEvent;
|
||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
import org.bukkit.metadata.MetadataValue;
|
import org.bukkit.metadata.MetadataValue;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class EntitySpawnListener implements Listener {
|
public class EntitySpawnListener implements Listener {
|
||||||
|
|
||||||
private static boolean ignoreTP = false;
|
|
||||||
|
|
||||||
private final static String KEY = "P2";
|
private final static String KEY = "P2";
|
||||||
|
private static boolean ignoreTP = false;
|
||||||
|
private static boolean hasPlotArea = false;
|
||||||
|
private static String areaName = null;
|
||||||
|
|
||||||
public static void testNether(Entity entity) {
|
public static void testNether(Entity entity) {
|
||||||
@NotNull World world = entity.getWorld();
|
@NotNull World world = entity.getWorld();
|
||||||
if (world.getEnvironment() != World.Environment.NETHER && world.getEnvironment() != World.Environment.THE_END) {
|
if (world.getEnvironment() != World.Environment.NETHER
|
||||||
|
&& world.getEnvironment() != World.Environment.THE_END) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
test(entity);
|
test(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean hasPlotArea = false;
|
|
||||||
private static String areaName = null;
|
|
||||||
|
|
||||||
public static void testCreate(Entity entity) {
|
public static void testCreate(Entity entity) {
|
||||||
@NotNull World world = entity.getWorld();
|
@NotNull World world = entity.getWorld();
|
||||||
if (areaName == world.getName()) {
|
if (areaName == world.getName()) {
|
||||||
@ -53,7 +54,8 @@ public class EntitySpawnListener implements Listener {
|
|||||||
areaName = world.getName();
|
areaName = world.getName();
|
||||||
hasPlotArea = PlotSquared.get().hasPlotArea(areaName);
|
hasPlotArea = PlotSquared.get().hasPlotArea(areaName);
|
||||||
}
|
}
|
||||||
if (!hasPlotArea) return;
|
if (!hasPlotArea)
|
||||||
|
return;
|
||||||
test(entity);
|
test(entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,11 +132,11 @@ import java.util.UUID;
|
|||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
Plot plot = event.getPlot();
|
Plot plot = event.getPlot();
|
||||||
Optional<IntervalFlag.Interval> feed = plot.getFlag(Flags.FEED);
|
Optional<IntervalFlag.Interval> feed = plot.getFlag(Flags.FEED);
|
||||||
feed.ifPresent(
|
feed.ifPresent(value -> feedRunnable
|
||||||
value -> feedRunnable.put(player.getUniqueId(), new Interval(value.getVal1(), value.getVal2(), 20)));
|
.put(player.getUniqueId(), new Interval(value.getVal1(), value.getVal2(), 20)));
|
||||||
Optional<IntervalFlag.Interval> heal = plot.getFlag(Flags.HEAL);
|
Optional<IntervalFlag.Interval> heal = plot.getFlag(Flags.HEAL);
|
||||||
heal.ifPresent(
|
heal.ifPresent(value -> healRunnable
|
||||||
value -> healRunnable.put(player.getUniqueId(), new Interval(value.getVal1(), value.getVal2(), 20)));
|
.put(player.getUniqueId(), new Interval(value.getVal1(), value.getVal2(), 20)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler public void onPlayerQuit(PlayerQuitEvent event) {
|
@EventHandler public void onPlayerQuit(PlayerQuitEvent event) {
|
||||||
|
@ -7,7 +7,6 @@ import com.github.intellectualsites.plotsquared.plot.object.Location;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotBlock;
|
import com.github.intellectualsites.plotsquared.plot.object.PlotBlock;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.*;
|
import com.github.intellectualsites.plotsquared.plot.util.*;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.GameMode;
|
import org.bukkit.GameMode;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.Sound;
|
import org.bukkit.Sound;
|
||||||
@ -17,13 +16,8 @@ import org.bukkit.event.Event;
|
|||||||
import org.bukkit.event.EventException;
|
import org.bukkit.event.EventException;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent;
|
import org.bukkit.event.player.PlayerTeleportEvent;
|
||||||
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
|
||||||
import org.bukkit.permissions.Permissible;
|
|
||||||
import org.bukkit.permissions.Permission;
|
|
||||||
import org.bukkit.permissions.PermissionAttachmentInfo;
|
import org.bukkit.permissions.PermissionAttachmentInfo;
|
||||||
import org.bukkit.permissions.PermissionDefault;
|
|
||||||
import org.bukkit.plugin.RegisteredListener;
|
import org.bukkit.plugin.RegisteredListener;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import org.jetbrains.annotations.Nullable;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@ -33,6 +27,7 @@ import java.util.stream.Collectors;
|
|||||||
|
|
||||||
public class BukkitPlayer extends PlotPlayer {
|
public class BukkitPlayer extends PlotPlayer {
|
||||||
|
|
||||||
|
private static boolean CHECK_EFFECTIVE = true;
|
||||||
public final Player player;
|
public final Player player;
|
||||||
private boolean offline;
|
private boolean offline;
|
||||||
private UUID uuid;
|
private UUID uuid;
|
||||||
@ -105,8 +100,6 @@ public class BukkitPlayer extends PlotPlayer {
|
|||||||
return this.player.hasPermission(permission);
|
return this.player.hasPermission(permission);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static boolean CHECK_EFFECTIVE = true;
|
|
||||||
|
|
||||||
@Override public int hasPermissionRange(String stub, int range) {
|
@Override public int hasPermissionRange(String stub, int range) {
|
||||||
if (hasPermission(Captions.PERMISSION_ADMIN.s())) {
|
if (hasPermission(Captions.PERMISSION_ADMIN.s())) {
|
||||||
return Integer.MAX_VALUE;
|
return Integer.MAX_VALUE;
|
||||||
|
@ -408,7 +408,8 @@ public class TitleManager_1_11 {
|
|||||||
|
|
||||||
private Method getMethod(Class<?> clazz, String name, Class<?>... args) {
|
private Method getMethod(Class<?> clazz, String name, Class<?>... args) {
|
||||||
for (Method m : clazz.getMethods()) {
|
for (Method m : clazz.getMethods()) {
|
||||||
if (m.getName().equals(name) && (args.length == 0 || ClassListEqual(args, m.getParameterTypes()))) {
|
if (m.getName().equals(name) && (args.length == 0 || ClassListEqual(args,
|
||||||
|
m.getParameterTypes()))) {
|
||||||
m.setAccessible(true);
|
m.setAccessible(true);
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
@ -394,8 +394,7 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
public void unloadChunk(final String world, final ChunkLoc loc, final boolean save,
|
public void unloadChunk(final String world, final ChunkLoc loc, final boolean save,
|
||||||
final boolean safe) {
|
final boolean safe) {
|
||||||
if (!PlotSquared.get().isMainThread(Thread.currentThread())) {
|
if (!PlotSquared.get().isMainThread(Thread.currentThread())) {
|
||||||
TaskManager
|
TaskManager.runTask(() -> BukkitUtil.getWorld(world).unloadChunk(loc.x, loc.z, save));
|
||||||
.runTask(() -> BukkitUtil.getWorld(world).unloadChunk(loc.x, loc.z, save));
|
|
||||||
} else {
|
} else {
|
||||||
BukkitUtil.getWorld(world).unloadChunk(loc.x, loc.z, save);
|
BukkitUtil.getWorld(world).unloadChunk(loc.x, loc.z, save);
|
||||||
}
|
}
|
||||||
|
@ -128,16 +128,22 @@ public class BukkitSetupUtils extends SetupUtils {
|
|||||||
PlotSquared.get().worlds.createSection(worldPath);
|
PlotSquared.get().worlds.createSection(worldPath);
|
||||||
}
|
}
|
||||||
if (steps.length != 0) {
|
if (steps.length != 0) {
|
||||||
ConfigurationSection worldSection = PlotSquared.get().worlds.getConfigurationSection(worldPath);
|
ConfigurationSection worldSection =
|
||||||
|
PlotSquared.get().worlds.getConfigurationSection(worldPath);
|
||||||
for (ConfigurationNode step : steps) {
|
for (ConfigurationNode step : steps) {
|
||||||
worldSection.set(step.getConstant(), step.getValue());
|
worldSection.set(step.getConstant(), step.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PlotSquared.get().worlds.set("worlds." + world + ".generator.type", object.type);
|
PlotSquared.get().worlds
|
||||||
PlotSquared.get().worlds.set("worlds." + world + ".generator.terrain", object.terrain);
|
.set("worlds." + world + ".generator.type", object.type);
|
||||||
PlotSquared.get().worlds.set("worlds." + world + ".generator.plugin", object.plotManager);
|
PlotSquared.get().worlds
|
||||||
if (object.setupGenerator != null && !object.setupGenerator.equals(object.plotManager)) {
|
.set("worlds." + world + ".generator.terrain", object.terrain);
|
||||||
PlotSquared.get().worlds.set("worlds." + world + ".generator.init", object.setupGenerator);
|
PlotSquared.get().worlds
|
||||||
|
.set("worlds." + world + ".generator.plugin", object.plotManager);
|
||||||
|
if (object.setupGenerator != null && !object.setupGenerator
|
||||||
|
.equals(object.plotManager)) {
|
||||||
|
PlotSquared.get().worlds
|
||||||
|
.set("worlds." + world + ".generator.init", object.setupGenerator);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GeneratorWrapper<?> gen = SetupUtils.generators.get(object.setupGenerator);
|
GeneratorWrapper<?> gen = SetupUtils.generators.get(object.setupGenerator);
|
||||||
|
@ -35,10 +35,6 @@ public class GenChunk extends ScopedLocalBlockQueue {
|
|||||||
this.biomes = Biome.values();
|
this.biomes = Biome.values();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setChunk(Chunk chunk) {
|
|
||||||
this.chunk = chunk;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Chunk getChunk() {
|
public Chunk getChunk() {
|
||||||
if (chunk == null) {
|
if (chunk == null) {
|
||||||
World worldObj = BukkitUtil.getWorld(world);
|
World worldObj = BukkitUtil.getWorld(world);
|
||||||
@ -49,6 +45,10 @@ public class GenChunk extends ScopedLocalBlockQueue {
|
|||||||
return chunk;
|
return chunk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setChunk(Chunk chunk) {
|
||||||
|
this.chunk = chunk;
|
||||||
|
}
|
||||||
|
|
||||||
public void setChunk(ChunkWrapper wrap) {
|
public void setChunk(ChunkWrapper wrap) {
|
||||||
chunk = null;
|
chunk = null;
|
||||||
world = wrap.world;
|
world = wrap.world;
|
||||||
|
@ -72,7 +72,7 @@ permissions:
|
|||||||
plots.permpack.basicinbox:
|
plots.permpack.basicinbox:
|
||||||
default: op
|
default: op
|
||||||
children:
|
children:
|
||||||
comments.notifications.enabled : true
|
comments.notifications.enabled: true
|
||||||
plots.inbox.read.public: true
|
plots.inbox.read.public: true
|
||||||
plots.inbox.modify.public: true
|
plots.inbox.modify.public: true
|
||||||
plots.inbox.modify.public: true
|
plots.inbox.modify.public: true
|
||||||
|
@ -1156,9 +1156,9 @@ import java.util.zip.ZipInputStream;
|
|||||||
+ areaGen);
|
+ areaGen);
|
||||||
PlotSquared.log(Captions.PREFIX + "&c | &9plotworld: &7" + pa);
|
PlotSquared.log(Captions.PREFIX + "&c | &9plotworld: &7" + pa);
|
||||||
PlotSquared.log(Captions.PREFIX + "&c | &9manager: &7" + pa);
|
PlotSquared.log(Captions.PREFIX + "&c | &9manager: &7" + pa);
|
||||||
PlotSquared
|
PlotSquared.log(
|
||||||
.log(Captions.PREFIX + "&cNote: &7Area created for cluster:" + name
|
Captions.PREFIX + "&cNote: &7Area created for cluster:" + name
|
||||||
+ " (invalid or old configuration?)");
|
+ " (invalid or old configuration?)");
|
||||||
areaGen.getPlotGenerator().initialize(pa);
|
areaGen.getPlotGenerator().initialize(pa);
|
||||||
areaGen.augment(pa);
|
areaGen.augment(pa);
|
||||||
toLoad.add(pa);
|
toLoad.add(pa);
|
||||||
@ -1613,12 +1613,13 @@ import java.util.zip.ZipInputStream;
|
|||||||
Settings.load(configFile);
|
Settings.load(configFile);
|
||||||
try {
|
try {
|
||||||
copyFile("updater.properties", "config");
|
copyFile("updater.properties", "config");
|
||||||
try (BufferedReader bufferedReader =
|
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
|
||||||
new BufferedReader(new InputStreamReader(new FileInputStream(new File(new File(this.IMP.getDirectory(),
|
new FileInputStream(new File(new File(this.IMP.getDirectory(), "config"),
|
||||||
"config"), "updater.properties"))))) {
|
"updater.properties"))))) {
|
||||||
final Properties properties = new Properties();
|
final Properties properties = new Properties();
|
||||||
properties.load(bufferedReader);
|
properties.load(bufferedReader);
|
||||||
final boolean enabled = Boolean.valueOf(properties.getOrDefault("enabled", true).toString());
|
final boolean enabled =
|
||||||
|
Boolean.valueOf(properties.getOrDefault("enabled", true).toString());
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
this.updateUtility = new UpdateUtility(properties.getProperty("path"),
|
this.updateUtility = new UpdateUtility(properties.getProperty("path"),
|
||||||
properties.getProperty("job"), properties.getProperty("artifact"));
|
properties.getProperty("job"), properties.getProperty("artifact"));
|
||||||
|
@ -15,8 +15,11 @@ import java.util.ArrayList;
|
|||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@CommandDeclaration(command = "area", permission = "plots.area", category = CommandCategory.ADMINISTRATION, requiredType = RequiredType.NONE, description = "Create a new PlotArea", aliases = "world", usage = "/plot area <create|info|list|tp|regen>", confirmation = true)
|
@CommandDeclaration(command = "area", permission = "plots.area",
|
||||||
public class Area extends SubCommand {
|
category = CommandCategory.ADMINISTRATION, requiredType = RequiredType.NONE,
|
||||||
|
description = "Create a new PlotArea", aliases = "world",
|
||||||
|
usage = "/plot area <create|info|list|tp|regen>", confirmation = true) public class Area
|
||||||
|
extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
||||||
if (args.length == 0) {
|
if (args.length == 0) {
|
||||||
|
@ -4,8 +4,8 @@ import com.github.intellectualsites.plotsquared.commands.CommandDeclaration;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
||||||
|
|
||||||
@CommandDeclaration(command = "chat", description = "Toggle plot chat on or off",
|
@CommandDeclaration(command = "chat", description = "Toggle plot chat on or off",
|
||||||
usage = "/plot chat [on|off]", permission = "plots.chat", category = CommandCategory.CHAT, requiredType = RequiredType.PLAYER)
|
usage = "/plot chat [on|off]", permission = "plots.chat", category = CommandCategory.CHAT,
|
||||||
public class Chat extends SubCommand {
|
requiredType = RequiredType.PLAYER) public class Chat extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(PlotPlayer player, String[] args) {
|
@Override public boolean onCommand(PlotPlayer player, String[] args) {
|
||||||
MainCommand.getInstance().toggle.chat(this, player, new String[0], null, null);
|
MainCommand.getInstance().toggle.chat(this, player, new String[0], null, null);
|
||||||
|
@ -141,9 +141,9 @@ import java.util.UUID;
|
|||||||
} else {
|
} else {
|
||||||
current = player.getPlayerClusterCount(player.getLocation().getWorld());
|
current = player.getPlayerClusterCount(player.getLocation().getWorld());
|
||||||
}
|
}
|
||||||
int allowed =
|
int allowed = Permissions
|
||||||
Permissions.hasPermissionRange(player, Captions.PERMISSION_CLUSTER_SIZE,
|
.hasPermissionRange(player, Captions.PERMISSION_CLUSTER_SIZE,
|
||||||
Settings.Limit.MAX_PLOTS);
|
Settings.Limit.MAX_PLOTS);
|
||||||
if (current + cluster.getArea() > allowed) {
|
if (current + cluster.getArea() > allowed) {
|
||||||
MainUtil.sendMessage(player, Captions.NO_PERMISSION,
|
MainUtil.sendMessage(player, Captions.NO_PERMISSION,
|
||||||
Captions.PERMISSION_CLUSTER_SIZE + "." + (current + cluster.getArea()));
|
Captions.PERMISSION_CLUSTER_SIZE + "." + (current + cluster.getArea()));
|
||||||
|
@ -11,31 +11,39 @@ import lombok.RequiredArgsConstructor;
|
|||||||
* Claiming CommandConfig.
|
* Claiming CommandConfig.
|
||||||
* Such as: /plot claim
|
* Such as: /plot claim
|
||||||
*/
|
*/
|
||||||
CLAIMING(Captions.COMMAND_CATEGORY_CLAIMING), /**
|
CLAIMING(Captions.COMMAND_CATEGORY_CLAIMING),
|
||||||
|
/**
|
||||||
* Teleportation CommandConfig.
|
* Teleportation CommandConfig.
|
||||||
* Such as: /plot visit
|
* Such as: /plot visit
|
||||||
*/
|
*/
|
||||||
TELEPORT(Captions.COMMAND_CATEGORY_TELEPPORT), /**
|
TELEPORT(Captions.COMMAND_CATEGORY_TELEPPORT),
|
||||||
|
/**
|
||||||
* Protection.
|
* Protection.
|
||||||
*/
|
*/
|
||||||
SETTINGS(Captions.COMMAND_CATEGORY_SETTINGS), /**
|
SETTINGS(Captions.COMMAND_CATEGORY_SETTINGS),
|
||||||
|
/**
|
||||||
* Chat.
|
* Chat.
|
||||||
*/
|
*/
|
||||||
CHAT(Captions.COMMAND_CATEGORY_CHAT), /**
|
CHAT(Captions.COMMAND_CATEGORY_CHAT),
|
||||||
|
/**
|
||||||
* Web.
|
* Web.
|
||||||
*/
|
*/
|
||||||
SCHEMATIC(Captions.COMMAND_CATEGORY_SCHEMATIC), /**
|
SCHEMATIC(Captions.COMMAND_CATEGORY_SCHEMATIC),
|
||||||
|
/**
|
||||||
* Cosmetic.
|
* Cosmetic.
|
||||||
*/
|
*/
|
||||||
APPEARANCE(Captions.COMMAND_CATEGORY_APPEARANCE), /**
|
APPEARANCE(Captions.COMMAND_CATEGORY_APPEARANCE),
|
||||||
|
/**
|
||||||
* Information CommandConfig.
|
* Information CommandConfig.
|
||||||
* Such as: /plot info
|
* Such as: /plot info
|
||||||
*/
|
*/
|
||||||
INFO(Captions.COMMAND_CATEGORY_INFO), /**
|
INFO(Captions.COMMAND_CATEGORY_INFO),
|
||||||
|
/**
|
||||||
* Debug CommandConfig.
|
* Debug CommandConfig.
|
||||||
* Such as: /plot debug
|
* Such as: /plot debug
|
||||||
*/
|
*/
|
||||||
DEBUG(Captions.COMMAND_CATEGORY_DEBUG), /**
|
DEBUG(Captions.COMMAND_CATEGORY_DEBUG),
|
||||||
|
/**
|
||||||
* Administration commands.
|
* Administration commands.
|
||||||
*/
|
*/
|
||||||
ADMINISTRATION(Captions.COMMAND_CATEGORY_ADMINISTRATION);
|
ADMINISTRATION(Captions.COMMAND_CATEGORY_ADMINISTRATION);
|
||||||
|
@ -11,8 +11,8 @@ import com.github.intellectualsites.plotsquared.plot.util.MathMan;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.util.TaskManager;
|
import com.github.intellectualsites.plotsquared.plot.util.TaskManager;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.WorldUtil;
|
import com.github.intellectualsites.plotsquared.plot.util.WorldUtil;
|
||||||
|
|
||||||
import java.util.*;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.*;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
@CommandDeclaration(command = "condense", permission = "plots.admin",
|
@CommandDeclaration(command = "condense", permission = "plots.admin",
|
||||||
|
@ -3,7 +3,6 @@ package com.github.intellectualsites.plotsquared.plot.commands;
|
|||||||
import com.github.intellectualsites.plotsquared.commands.Command;
|
import com.github.intellectualsites.plotsquared.commands.Command;
|
||||||
import com.github.intellectualsites.plotsquared.commands.CommandDeclaration;
|
import com.github.intellectualsites.plotsquared.commands.CommandDeclaration;
|
||||||
import com.github.intellectualsites.plotsquared.plot.PlotSquared;
|
import com.github.intellectualsites.plotsquared.plot.PlotSquared;
|
||||||
import com.github.intellectualsites.plotsquared.plot.config.Settings;
|
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotId;
|
import com.github.intellectualsites.plotsquared.plot.object.PlotId;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.RunnableVal2;
|
import com.github.intellectualsites.plotsquared.plot.object.RunnableVal2;
|
||||||
@ -38,7 +37,8 @@ import java.util.UUID;
|
|||||||
PlotId id = new PlotId(0, 0);
|
PlotId id = new PlotId(0, 0);
|
||||||
File container = PlotSquared.imp().getWorldContainer();
|
File container = PlotSquared.imp().getWorldContainer();
|
||||||
if (container.equals(new File("."))) {
|
if (container.equals(new File("."))) {
|
||||||
player.sendMessage("World container must be configured to be a separate directory to your base files!");
|
player.sendMessage(
|
||||||
|
"World container must be configured to be a separate directory to your base files!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (File folder : container.listFiles()) {
|
for (File folder : container.listFiles()) {
|
||||||
|
@ -3,9 +3,10 @@ package com.github.intellectualsites.plotsquared.plot.commands;
|
|||||||
import com.github.intellectualsites.plotsquared.commands.CommandDeclaration;
|
import com.github.intellectualsites.plotsquared.commands.CommandDeclaration;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
||||||
|
|
||||||
@CommandDeclaration(command = "dislike", permission = "plots.dislike", description = "Dislike the plot",
|
@CommandDeclaration(command = "dislike", permission = "plots.dislike",
|
||||||
usage = "/plot dislike [next|purge]", category = CommandCategory.INFO, requiredType = RequiredType.PLAYER)
|
description = "Dislike the plot", usage = "/plot dislike [next|purge]",
|
||||||
public class Dislike extends SubCommand {
|
category = CommandCategory.INFO, requiredType = RequiredType.PLAYER) public class Dislike
|
||||||
|
extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(PlotPlayer player, String[] args) {
|
@Override public boolean onCommand(PlotPlayer player, String[] args) {
|
||||||
return Like.handleLike(player, args, false);
|
return Like.handleLike(player, args, false);
|
||||||
|
@ -79,8 +79,7 @@ public class Help extends Command {
|
|||||||
for (CommandCategory c : CommandCategory.values()) {
|
for (CommandCategory c : CommandCategory.values()) {
|
||||||
builder.append("\n" + StringMan
|
builder.append("\n" + StringMan
|
||||||
.replaceAll(Captions.HELP_INFO_ITEM.s(), "%category%",
|
.replaceAll(Captions.HELP_INFO_ITEM.s(), "%category%",
|
||||||
c.toString().toLowerCase(),
|
c.toString().toLowerCase(), "%category_desc%", c.toString()));
|
||||||
"%category_desc%", c.toString()));
|
|
||||||
}
|
}
|
||||||
builder.append("\n").append(Captions.HELP_INFO_ITEM.s().replaceAll("%category%", "all")
|
builder.append("\n").append(Captions.HELP_INFO_ITEM.s().replaceAll("%category%", "all")
|
||||||
.replaceAll("%category_desc%", Captions.HELP_DISPLAY_ALL_COMMANDS.s()));
|
.replaceAll("%category_desc%", Captions.HELP_DISPLAY_ALL_COMMANDS.s()));
|
||||||
|
@ -12,8 +12,8 @@ import com.github.intellectualsites.plotsquared.plot.util.expiry.ExpireManager;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@CommandDeclaration(command = "info", aliases = "i", description = "Display plot info",
|
@CommandDeclaration(command = "info", aliases = "i", description = "Display plot info",
|
||||||
usage = "/plot info <id> [-f, to force info]", category = CommandCategory.INFO) public class Info
|
usage = "/plot info <id> [-f, to force info]", category = CommandCategory.INFO)
|
||||||
extends SubCommand {
|
public class Info extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
||||||
Plot plot;
|
Plot plot;
|
||||||
|
@ -17,14 +17,11 @@ import com.github.intellectualsites.plotsquared.plot.util.TaskManager;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@CommandDeclaration(command = "like", permission = "plots.like", description = "Like the plot",
|
@CommandDeclaration(command = "like", permission = "plots.like", description = "Like the plot",
|
||||||
usage = "/plot like [next|purge]", category = CommandCategory.INFO, requiredType = RequiredType.PLAYER)
|
usage = "/plot like [next|purge]", category = CommandCategory.INFO,
|
||||||
public class Like extends SubCommand {
|
requiredType = RequiredType.PLAYER) public class Like extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(PlotPlayer player, String[] args) {
|
protected static boolean handleLike(final PlotPlayer player, String[] args,
|
||||||
return handleLike(player, args, true);
|
final boolean like) {
|
||||||
}
|
|
||||||
|
|
||||||
protected static boolean handleLike(final PlotPlayer player, String[] args, final boolean like) {
|
|
||||||
final UUID uuid = player.getUUID();
|
final UUID uuid = player.getUUID();
|
||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
switch (args[0].toLowerCase()) {
|
switch (args[0].toLowerCase()) {
|
||||||
@ -143,4 +140,8 @@ public class Like extends SubCommand {
|
|||||||
return numLikes / (numLikes + numDislikes);
|
return numLikes / (numLikes + numDislikes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public boolean onCommand(PlotPlayer player, String[] args) {
|
||||||
|
return handleLike(player, args, true);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -363,13 +363,13 @@ public class ListCmd extends SubCommand {
|
|||||||
} else {
|
} else {
|
||||||
color = "$1";
|
color = "$1";
|
||||||
}
|
}
|
||||||
PlotMessage trusted =
|
PlotMessage trusted = new PlotMessage().text(Captions.color(
|
||||||
new PlotMessage().text(Captions.color(Captions.PLOT_INFO_TRUSTED.s()
|
Captions.PLOT_INFO_TRUSTED.s()
|
||||||
.replaceAll("%trusted%", MainUtil.getPlayerList(plot.getTrusted()))))
|
.replaceAll("%trusted%", MainUtil.getPlayerList(plot.getTrusted()))))
|
||||||
.color("$1");
|
.color("$1");
|
||||||
PlotMessage members =
|
PlotMessage members = new PlotMessage().text(Captions.color(
|
||||||
new PlotMessage().text(Captions.color(Captions.PLOT_INFO_MEMBERS.s()
|
Captions.PLOT_INFO_MEMBERS.s()
|
||||||
.replaceAll("%members%", MainUtil.getPlayerList(plot.getMembers()))))
|
.replaceAll("%members%", MainUtil.getPlayerList(plot.getMembers()))))
|
||||||
.color("$1");
|
.color("$1");
|
||||||
String strFlags = StringMan.join(plot.getFlags().values(), ",");
|
String strFlags = StringMan.join(plot.getFlags().values(), ",");
|
||||||
if (strFlags.isEmpty()) {
|
if (strFlags.isEmpty()) {
|
||||||
|
@ -198,8 +198,7 @@ public class MainCommand extends Command {
|
|||||||
Plot newPlot = Plot.fromString(area, args[0]);
|
Plot newPlot = Plot.fromString(area, args[0]);
|
||||||
if (newPlot != null && (player instanceof ConsolePlayer || newPlot.getArea()
|
if (newPlot != null && (player instanceof ConsolePlayer || newPlot.getArea()
|
||||||
.equals(area) || Permissions.hasPermission(player, Captions.PERMISSION_ADMIN))
|
.equals(area) || Permissions.hasPermission(player, Captions.PERMISSION_ADMIN))
|
||||||
&& !newPlot
|
&& !newPlot.isDenied(player.getUUID())) {
|
||||||
.isDenied(player.getUUID())) {
|
|
||||||
Location newLoc = newPlot.getCenter();
|
Location newLoc = newPlot.getCenter();
|
||||||
if (player.canTeleport(newLoc)) {
|
if (player.canTeleport(newLoc)) {
|
||||||
// Save meta
|
// Save meta
|
||||||
|
@ -11,8 +11,8 @@ import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.util.Permissions;
|
import com.github.intellectualsites.plotsquared.plot.util.Permissions;
|
||||||
|
|
||||||
@CommandDeclaration(usage = "/plot move <X;Z>", command = "move", description = "Move a plot",
|
@CommandDeclaration(usage = "/plot move <X;Z>", command = "move", description = "Move a plot",
|
||||||
aliases = {"debugmove"}, permission = "plots.move", category = CommandCategory.CLAIMING, requiredType = RequiredType.PLAYER)
|
aliases = {"debugmove"}, permission = "plots.move", category = CommandCategory.CLAIMING,
|
||||||
public class Move extends SubCommand {
|
requiredType = RequiredType.PLAYER) public class Move extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
||||||
Location loc = player.getLocation();
|
Location loc = player.getLocation();
|
||||||
|
@ -9,7 +9,8 @@ import com.github.intellectualsites.plotsquared.plot.object.RunnableVal2;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.object.RunnableVal3;
|
import com.github.intellectualsites.plotsquared.plot.object.RunnableVal3;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.StringMan;
|
import com.github.intellectualsites.plotsquared.plot.util.StringMan;
|
||||||
|
|
||||||
@CommandDeclaration(command = "near", aliases = "n", description = "Display nearby players", usage = "/plot near", category = CommandCategory.INFO, requiredType = RequiredType.PLAYER)
|
@CommandDeclaration(command = "near", aliases = "n", description = "Display nearby players",
|
||||||
|
usage = "/plot near", category = CommandCategory.INFO, requiredType = RequiredType.PLAYER)
|
||||||
public class Near extends Command {
|
public class Near extends Command {
|
||||||
public Near() {
|
public Near() {
|
||||||
super(MainCommand.getInstance(), true);
|
super(MainCommand.getInstance(), true);
|
||||||
|
@ -16,8 +16,8 @@ import java.util.Map.Entry;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@CommandDeclaration(command = "rate", permission = "plots.rate", description = "Rate the plot",
|
@CommandDeclaration(command = "rate", permission = "plots.rate", description = "Rate the plot",
|
||||||
usage = "/plot rate [#|next|purge]", aliases = "rt", category = CommandCategory.INFO, requiredType = RequiredType.PLAYER)
|
usage = "/plot rate [#|next|purge]", aliases = "rt", category = CommandCategory.INFO,
|
||||||
public class Rate extends SubCommand {
|
requiredType = RequiredType.PLAYER) public class Rate extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
||||||
if (args.length == 1) {
|
if (args.length == 1) {
|
||||||
|
@ -58,8 +58,8 @@ import java.util.Map.Entry;
|
|||||||
object.setup_index--;
|
object.setup_index--;
|
||||||
ConfigurationNode node = object.step[object.setup_index];
|
ConfigurationNode node = object.step[object.setup_index];
|
||||||
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
||||||
node.getDescription(),
|
node.getDescription(), node.getType().getType(),
|
||||||
node.getType().getType(), String.valueOf(node.getDefaultValue()));
|
String.valueOf(node.getDefaultValue()));
|
||||||
return false;
|
return false;
|
||||||
} else if (object.current > 0) {
|
} else if (object.current > 0) {
|
||||||
object.current--;
|
object.current--;
|
||||||
@ -131,8 +131,8 @@ import java.util.Map.Entry;
|
|||||||
}
|
}
|
||||||
ConfigurationNode step = object.step[object.setup_index];
|
ConfigurationNode step = object.step[object.setup_index];
|
||||||
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
||||||
step.getDescription(),
|
step.getDescription(), step.getType().getType(),
|
||||||
step.getType().getType(), String.valueOf(step.getDefaultValue()));
|
String.valueOf(step.getDefaultValue()));
|
||||||
} else {
|
} else {
|
||||||
if (gen.isFull()) {
|
if (gen.isFull()) {
|
||||||
object.plotManager = object.setupGenerator;
|
object.plotManager = object.setupGenerator;
|
||||||
@ -234,8 +234,8 @@ import java.util.Map.Entry;
|
|||||||
}
|
}
|
||||||
ConfigurationNode step = object.step[object.setup_index];
|
ConfigurationNode step = object.step[object.setup_index];
|
||||||
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
||||||
step.getDescription(),
|
step.getDescription(), step.getType().getType(),
|
||||||
step.getType().getType(), String.valueOf(step.getDefaultValue()));
|
String.valueOf(step.getDefaultValue()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 6: // world setup
|
case 6: // world setup
|
||||||
@ -248,8 +248,8 @@ import java.util.Map.Entry;
|
|||||||
ConfigurationNode step = object.step[object.setup_index];
|
ConfigurationNode step = object.step[object.setup_index];
|
||||||
if (args.length < 1) {
|
if (args.length < 1) {
|
||||||
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
||||||
step.getDescription(),
|
step.getDescription(), step.getType().getType(),
|
||||||
step.getType().getType(), String.valueOf(step.getDefaultValue()));
|
String.valueOf(step.getDefaultValue()));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -269,14 +269,14 @@ import java.util.Map.Entry;
|
|||||||
}
|
}
|
||||||
step = object.step[object.setup_index];
|
step = object.step[object.setup_index];
|
||||||
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
||||||
step.getDescription(),
|
step.getDescription(), step.getType().getType(),
|
||||||
step.getType().getType(), String.valueOf(step.getDefaultValue()));
|
String.valueOf(step.getDefaultValue()));
|
||||||
return false;
|
return false;
|
||||||
} else {
|
} else {
|
||||||
sendMessage(player, Captions.SETUP_INVALID_ARG, args[0], step.getConstant());
|
sendMessage(player, Captions.SETUP_INVALID_ARG, args[0], step.getConstant());
|
||||||
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
sendMessage(player, Captions.SETUP_STEP, object.setup_index + 1,
|
||||||
step.getDescription(),
|
step.getDescription(), step.getType().getType(),
|
||||||
step.getType().getType(), String.valueOf(step.getDefaultValue()));
|
String.valueOf(step.getDefaultValue()));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
case 7:
|
case 7:
|
||||||
|
@ -23,17 +23,16 @@ public abstract class SubCommand extends Command {
|
|||||||
setRequiredArguments(arguments);
|
setRequiredArguments(arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean sendMessage(PlotPlayer player, Captions message, Object... args) {
|
||||||
|
message.send(player, args);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
@Override public void execute(PlotPlayer player, String[] args,
|
@Override public void execute(PlotPlayer player, String[] args,
|
||||||
RunnableVal3<Command, Runnable, Runnable> confirm,
|
RunnableVal3<Command, Runnable, Runnable> confirm,
|
||||||
RunnableVal2<Command, CommandResult> whenDone) {
|
RunnableVal2<Command, CommandResult> whenDone) {
|
||||||
onCommand(player, args);
|
onCommand(player, args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public abstract boolean onCommand(PlotPlayer player, String[] args);
|
public abstract boolean onCommand(PlotPlayer player, String[] args);
|
||||||
|
|
||||||
public static boolean sendMessage(PlotPlayer player, Captions message, Object... args) {
|
|
||||||
message.send(player, args);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -7,8 +7,9 @@ import com.github.intellectualsites.plotsquared.plot.object.Plot;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.*;
|
import com.github.intellectualsites.plotsquared.plot.util.*;
|
||||||
|
|
||||||
@CommandDeclaration(command = "unlink", aliases = {"u",
|
@CommandDeclaration(command = "unlink", aliases = {"u", "unmerge"},
|
||||||
"unmerge"}, description = "Unlink a mega-plot", usage = "/plot unlink [createroads]", requiredType = RequiredType.PLAYER, category = CommandCategory.SETTINGS, confirmation = true)
|
description = "Unlink a mega-plot", usage = "/plot unlink [createroads]",
|
||||||
|
requiredType = RequiredType.PLAYER, category = CommandCategory.SETTINGS, confirmation = true)
|
||||||
public class Unlink extends SubCommand {
|
public class Unlink extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
||||||
|
@ -14,8 +14,8 @@ import com.github.intellectualsites.plotsquared.plot.util.UUIDHandler;
|
|||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@CommandDeclaration(command = "visit", permission = "plots.visit",
|
@CommandDeclaration(command = "visit", permission = "plots.visit",
|
||||||
description = "Visit someones plot", usage = "/plot visit [<player>|<alias>|<world>|<id>] [#]", aliases = {
|
description = "Visit someones plot", usage = "/plot visit [<player>|<alias>|<world>|<id>] [#]",
|
||||||
"v", "tp", "teleport", "goto", "home", "h"}, requiredType = RequiredType.PLAYER,
|
aliases = {"v", "tp", "teleport", "goto", "home", "h"}, requiredType = RequiredType.PLAYER,
|
||||||
category = CommandCategory.TELEPORT) public class Visit extends Command {
|
category = CommandCategory.TELEPORT) public class Visit extends Command {
|
||||||
|
|
||||||
public Visit() {
|
public Visit() {
|
||||||
|
@ -378,8 +378,8 @@ public enum Captions {
|
|||||||
RATING_ALREADY_EXISTS("$2You have already rated plot $2%s", "Ratings"), RATING_APPLIED(
|
RATING_ALREADY_EXISTS("$2You have already rated plot $2%s", "Ratings"), RATING_APPLIED(
|
||||||
"$4You successfully rated plot $2%s", "Ratings"),
|
"$4You successfully rated plot $2%s", "Ratings"),
|
||||||
|
|
||||||
RATING_DISLIKED("$4You successfully disliked plot $2%s", "Ratings"),
|
RATING_DISLIKED("$4You successfully disliked plot $2%s", "Ratings"), RATING_LIKED(
|
||||||
RATING_LIKED("$4You successfully liked plot $2%s", "Ratings"),
|
"$4You successfully liked plot $2%s", "Ratings"),
|
||||||
|
|
||||||
RATING_NOT_YOUR_OWN("$2You cannot rate your own plot", "Ratings"), RATING_NOT_DONE(
|
RATING_NOT_YOUR_OWN("$2You cannot rate your own plot", "Ratings"), RATING_NOT_DONE(
|
||||||
"$2You can only rate finished plots.", "Ratings"),
|
"$2You can only rate finished plots.", "Ratings"),
|
||||||
|
@ -317,8 +317,7 @@ public class Settings extends Config {
|
|||||||
public static final class Ratings {
|
public static final class Ratings {
|
||||||
@Comment("Replace the rating system with a like system. Will add /plot like/dislike,"
|
@Comment("Replace the rating system with a like system. Will add /plot like/dislike,"
|
||||||
+ " and remove the rating command") public static boolean USE_LIKES = false;
|
+ " and remove the rating command") public static boolean USE_LIKES = false;
|
||||||
@Comment("Rating categories")
|
@Comment("Rating categories") public static List<String> CATEGORIES = new ArrayList<>();
|
||||||
public static List<String> CATEGORIES = new ArrayList<>();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -42,11 +42,9 @@ public class HybridPlotManager extends ClassicPlotManager {
|
|||||||
files.add(new FileBytes(newDir + "intersection.schem",
|
files.add(new FileBytes(newDir + "intersection.schem",
|
||||||
Files.readAllBytes(intersection.toPath())));
|
Files.readAllBytes(intersection.toPath())));
|
||||||
}
|
}
|
||||||
File plot =
|
File plot = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), dir + "plot.schem");
|
||||||
MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), dir + "plot.schem");
|
|
||||||
if (plot.exists()) {
|
if (plot.exists()) {
|
||||||
files.add(
|
files.add(new FileBytes(newDir + "plot.schem", Files.readAllBytes(plot.toPath())));
|
||||||
new FileBytes(newDir + "plot.schem", Files.readAllBytes(plot.toPath())));
|
|
||||||
}
|
}
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -34,8 +34,8 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
|||||||
public short PATH_WIDTH_LOWER;
|
public short PATH_WIDTH_LOWER;
|
||||||
public short PATH_WIDTH_UPPER;
|
public short PATH_WIDTH_UPPER;
|
||||||
public HashMap<Integer, BaseBlock[]> G_SCH;
|
public HashMap<Integer, BaseBlock[]> G_SCH;
|
||||||
private Location SIGN_LOCATION;
|
|
||||||
public int SCHEM_Y;
|
public int SCHEM_Y;
|
||||||
|
private Location SIGN_LOCATION;
|
||||||
|
|
||||||
public HybridPlotWorld(String worldName, String id, IndependentPlotGenerator generator,
|
public HybridPlotWorld(String worldName, String id, IndependentPlotGenerator generator,
|
||||||
PlotId min, PlotId max) {
|
PlotId min, PlotId max) {
|
||||||
@ -134,13 +134,17 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
|||||||
|
|
||||||
public void setupSchematics() throws SchematicHandler.UnsupportedFormatException {
|
public void setupSchematics() throws SchematicHandler.UnsupportedFormatException {
|
||||||
this.G_SCH = new HashMap<>();
|
this.G_SCH = new HashMap<>();
|
||||||
File root = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), "schematics/GEN_ROAD_SCHEMATIC/" + this.worldname);
|
File root = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(),
|
||||||
|
"schematics/GEN_ROAD_SCHEMATIC/" + this.worldname);
|
||||||
File schematic1File = new File(root, "sideroad.schem");
|
File schematic1File = new File(root, "sideroad.schem");
|
||||||
if (!schematic1File.exists()) schematic1File = new File(root, "sideroad.schematic");
|
if (!schematic1File.exists())
|
||||||
|
schematic1File = new File(root, "sideroad.schematic");
|
||||||
File schematic2File = new File(root, "intersection.schem");
|
File schematic2File = new File(root, "intersection.schem");
|
||||||
if (!schematic2File.exists()) schematic2File = new File(root, "intersection.schematic");
|
if (!schematic2File.exists())
|
||||||
|
schematic2File = new File(root, "intersection.schematic");
|
||||||
File schematic3File = new File(root, "plot.schem");
|
File schematic3File = new File(root, "plot.schem");
|
||||||
if (!schematic3File.exists()) schematic3File = new File(root, "plot.schematic");
|
if (!schematic3File.exists())
|
||||||
|
schematic3File = new File(root, "plot.schematic");
|
||||||
Schematic schematic1 = SchematicHandler.manager.getSchematic(schematic1File);
|
Schematic schematic1 = SchematicHandler.manager.getSchematic(schematic1File);
|
||||||
Schematic schematic2 = SchematicHandler.manager.getSchematic(schematic2File);
|
Schematic schematic2 = SchematicHandler.manager.getSchematic(schematic2File);
|
||||||
Schematic schematic3 = SchematicHandler.manager.getSchematic(schematic3File);
|
Schematic schematic3 = SchematicHandler.manager.getSchematic(schematic3File);
|
||||||
@ -193,7 +197,8 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
|||||||
for (short x = 0; x < w3; x++) {
|
for (short x = 0; x < w3; x++) {
|
||||||
for (short z = 0; z < l3; z++) {
|
for (short z = 0; z < l3; z++) {
|
||||||
for (short y = 0; y < h3; y++) {
|
for (short y = 0; y < h3; y++) {
|
||||||
BaseBlock id = blockArrayClipboard3.getFullBlock(BlockVector3.at(x + min.getBlockX(), y + min.getBlockY(), z + min.getBlockZ()));
|
BaseBlock id = blockArrayClipboard3.getFullBlock(BlockVector3
|
||||||
|
.at(x + min.getBlockX(), y + min.getBlockY(), z + min.getBlockZ()));
|
||||||
if (!id.getBlockType().getMaterial().isAir()) {
|
if (!id.getBlockType().getMaterial().isAir()) {
|
||||||
addOverlayBlock((short) (x + shift + oddshift + centerShiftX),
|
addOverlayBlock((short) (x + shift + oddshift + centerShiftX),
|
||||||
(short) (y + plotY), (short) (z + shift + oddshift + centerShiftZ),
|
(short) (y + plotY), (short) (z + shift + oddshift + centerShiftZ),
|
||||||
@ -253,7 +258,8 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
|||||||
for (short x = 0; x < w1; x++) {
|
for (short x = 0; x < w1; x++) {
|
||||||
for (short z = 0; z < l1; z++) {
|
for (short z = 0; z < l1; z++) {
|
||||||
for (short y = 0; y < h1; y++) {
|
for (short y = 0; y < h1; y++) {
|
||||||
BaseBlock id = blockArrayClipboard1.getFullBlock(BlockVector3.at(x + min.getBlockX(), y + min.getBlockY(), z + min.getBlockZ()));
|
BaseBlock id = blockArrayClipboard1.getFullBlock(BlockVector3
|
||||||
|
.at(x + min.getBlockX(), y + min.getBlockY(), z + min.getBlockZ()));
|
||||||
if (!id.getBlockType().getMaterial().isAir()) {
|
if (!id.getBlockType().getMaterial().isAir()) {
|
||||||
addOverlayBlock((short) (x - shift), (short) (y + roadY),
|
addOverlayBlock((short) (x - shift), (short) (y + roadY),
|
||||||
(short) (z + shift + oddshift), id, false, h1);
|
(short) (z + shift + oddshift), id, false, h1);
|
||||||
@ -273,7 +279,8 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
|||||||
for (short x = 0; x < w2; x++) {
|
for (short x = 0; x < w2; x++) {
|
||||||
for (short z = 0; z < l2; z++) {
|
for (short z = 0; z < l2; z++) {
|
||||||
for (short y = 0; y < h2; y++) {
|
for (short y = 0; y < h2; y++) {
|
||||||
BaseBlock id = blockArrayClipboard2.getFullBlock(BlockVector3.at(x + min.getBlockX(), y + min.getBlockY(), z + min.getBlockZ()));
|
BaseBlock id = blockArrayClipboard2.getFullBlock(BlockVector3
|
||||||
|
.at(x + min.getBlockX(), y + min.getBlockY(), z + min.getBlockZ()));
|
||||||
if (!id.getBlockType().getMaterial().isAir()) {
|
if (!id.getBlockType().getMaterial().isAir()) {
|
||||||
addOverlayBlock((short) (x - shift), (short) (y + roadY),
|
addOverlayBlock((short) (x - shift), (short) (y + roadY),
|
||||||
(short) (z - shift), id, false, h2);
|
(short) (z - shift), id, false, h2);
|
||||||
|
@ -345,7 +345,8 @@ public abstract class HybridUtils {
|
|||||||
if (condition) {
|
if (condition) {
|
||||||
BaseBlock[] blocks = plotWorld.G_SCH.get(MathMan.pair(absX, absZ));
|
BaseBlock[] blocks = plotWorld.G_SCH.get(MathMan.pair(absX, absZ));
|
||||||
int minY = plotWorld.SCHEM_Y;
|
int minY = plotWorld.SCHEM_Y;
|
||||||
if (!Settings.Schematics.PASTE_ON_TOP) minY = 1;
|
if (!Settings.Schematics.PASTE_ON_TOP)
|
||||||
|
minY = 1;
|
||||||
int maxY = Math.max(extend, blocks.length);
|
int maxY = Math.max(extend, blocks.length);
|
||||||
if (blocks != null) {
|
if (blocks != null) {
|
||||||
for (int y = 0; y < maxY; y++) {
|
for (int y = 0; y < maxY; y++) {
|
||||||
|
@ -95,8 +95,7 @@ public class PlotListener {
|
|||||||
} else {
|
} else {
|
||||||
MainUtil.sendMessage(player, StringMan
|
MainUtil.sendMessage(player, StringMan
|
||||||
.replaceAll(Captions.GAMEMODE_WAS_BYPASSED.s(), "{plot}",
|
.replaceAll(Captions.GAMEMODE_WAS_BYPASSED.s(), "{plot}",
|
||||||
plot.getId(),
|
plot.getId(), "{gamemode}", gamemodeFlag.get()));
|
||||||
"{gamemode}", gamemodeFlag.get()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -109,8 +108,7 @@ public class PlotListener {
|
|||||||
} else {
|
} else {
|
||||||
MainUtil.sendMessage(player, StringMan
|
MainUtil.sendMessage(player, StringMan
|
||||||
.replaceAll(Captions.GAMEMODE_WAS_BYPASSED.s(), "{plot}",
|
.replaceAll(Captions.GAMEMODE_WAS_BYPASSED.s(), "{plot}",
|
||||||
plot.getId(),
|
plot.getId(), "{gamemode}", guestGamemodeFlag.get()));
|
||||||
"{gamemode}", guestGamemodeFlag.get()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -158,8 +156,7 @@ public class PlotListener {
|
|||||||
}
|
}
|
||||||
if (titles) {
|
if (titles) {
|
||||||
if (!Captions.TITLE_ENTERED_PLOT.s().isEmpty() || !Captions.TITLE_ENTERED_PLOT_SUB
|
if (!Captions.TITLE_ENTERED_PLOT.s().isEmpty() || !Captions.TITLE_ENTERED_PLOT_SUB
|
||||||
.s()
|
.s().isEmpty()) {
|
||||||
.isEmpty()) {
|
|
||||||
TaskManager.runTaskLaterAsync(() -> {
|
TaskManager.runTaskLaterAsync(() -> {
|
||||||
Plot lastPlot = player.getMeta(PlotPlayer.META_LAST_PLOT);
|
Plot lastPlot = player.getMeta(PlotPlayer.META_LAST_PLOT);
|
||||||
if ((lastPlot != null) && plot.getId().equals(lastPlot.getId())) {
|
if ((lastPlot != null) && plot.getId().equals(lastPlot.getId())) {
|
||||||
@ -206,8 +203,7 @@ public class PlotListener {
|
|||||||
} else {
|
} else {
|
||||||
MainUtil.sendMessage(player, StringMan
|
MainUtil.sendMessage(player, StringMan
|
||||||
.replaceAll(Captions.GAMEMODE_WAS_BYPASSED.s(), "{plot}",
|
.replaceAll(Captions.GAMEMODE_WAS_BYPASSED.s(), "{plot}",
|
||||||
plot.toString(),
|
plot.toString(), "{gamemode}", pw.GAMEMODE.name().toLowerCase()));
|
||||||
"{gamemode}", pw.GAMEMODE.name().toLowerCase()));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -215,10 +211,10 @@ public class PlotListener {
|
|||||||
farewell.ifPresent(s -> MainUtil
|
farewell.ifPresent(s -> MainUtil
|
||||||
.format(Captions.PREFIX_FAREWELL.s() + s, plot, player, false,
|
.format(Captions.PREFIX_FAREWELL.s() + s, plot, player, false,
|
||||||
new RunnableVal<String>() {
|
new RunnableVal<String>() {
|
||||||
@Override public void run(String value) {
|
@Override public void run(String value) {
|
||||||
MainUtil.sendMessage(player, value);
|
MainUtil.sendMessage(player, value);
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
Optional<Boolean> leave = plot.getFlag(Flags.NOTIFY_LEAVE);
|
Optional<Boolean> leave = plot.getFlag(Flags.NOTIFY_LEAVE);
|
||||||
if (leave.isPresent() && leave.get()) {
|
if (leave.isPresent() && leave.get()) {
|
||||||
if (!Permissions.hasPermission(player, "plots.flag.notify-enter.bypass")) {
|
if (!Permissions.hasPermission(player, "plots.flag.notify-enter.bypass")) {
|
||||||
|
@ -163,8 +163,7 @@ public class ProcessedWEExtent extends AbstractDelegateExtent {
|
|||||||
this.Eblocked = true;
|
this.Eblocked = true;
|
||||||
PlotSquared.debug(
|
PlotSquared.debug(
|
||||||
Captions.PREFIX + "&cdetected unsafe WorldEdit: " + location.getBlockX() + ","
|
Captions.PREFIX + "&cdetected unsafe WorldEdit: " + location.getBlockX() + ","
|
||||||
+ location
|
+ location.getBlockZ());
|
||||||
.getBlockZ());
|
|
||||||
}
|
}
|
||||||
if (WEManager.maskContains(this.mask, location.getBlockX(), location.getBlockY(),
|
if (WEManager.maskContains(this.mask, location.getBlockX(), location.getBlockY(),
|
||||||
location.getBlockZ())) {
|
location.getBlockZ())) {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package com.github.intellectualsites.plotsquared.plot.object;
|
package com.github.intellectualsites.plotsquared.plot.object;
|
||||||
|
|
||||||
import com.github.intellectualsites.plotsquared.configuration.serialization.ConfigurationSerializable;
|
import com.github.intellectualsites.plotsquared.configuration.serialization.ConfigurationSerializable;
|
||||||
import com.github.intellectualsites.plotsquared.plot.config.Captions;
|
|
||||||
import com.github.intellectualsites.plotsquared.plot.config.Configuration;
|
import com.github.intellectualsites.plotsquared.plot.config.Configuration;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.collection.RandomCollection;
|
import com.github.intellectualsites.plotsquared.plot.object.collection.RandomCollection;
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
@ -56,7 +55,8 @@ import java.util.Map.Entry;
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addBlock(@NonNull final PlotBlock block, double chance) {
|
private void addBlock(@NonNull final PlotBlock block, double chance) {
|
||||||
if (chance == -1) chance = 1;
|
if (chance == -1)
|
||||||
|
chance = 1;
|
||||||
this.blocks.put(block, chance);
|
this.blocks.put(block, chance);
|
||||||
this.compiled = false;
|
this.compiled = false;
|
||||||
if (head == null) {
|
if (head == null) {
|
||||||
|
@ -3,7 +3,8 @@ package com.github.intellectualsites.plotsquared.plot.object;
|
|||||||
public enum Direction {
|
public enum Direction {
|
||||||
NORTH(0, "north"), EAST(1, "east"), SOUTH(2, "south"), WEST(3, "west"), NORTHEAST(4,
|
NORTH(0, "north"), EAST(1, "east"), SOUTH(2, "south"), WEST(3, "west"), NORTHEAST(4,
|
||||||
"northeast"), SOUTHEAST(5, "southeast"), SOUTHWEST(6, "southwest"), NORTHWEST(7,
|
"northeast"), SOUTHEAST(5, "southeast"), SOUTHWEST(6, "southwest"), NORTHWEST(7,
|
||||||
"northwest"),;
|
"northwest"),
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
private int index;
|
private int index;
|
||||||
|
@ -58,6 +58,7 @@ public class Plot {
|
|||||||
* plot owner
|
* plot owner
|
||||||
* (Merged plots can have multiple owners)
|
* (Merged plots can have multiple owners)
|
||||||
* Direct access is Deprecated: use getOwners()
|
* Direct access is Deprecated: use getOwners()
|
||||||
|
*
|
||||||
* @deprecated
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
@Deprecated public UUID owner;
|
@Deprecated public UUID owner;
|
||||||
@ -344,6 +345,7 @@ public class Plot {
|
|||||||
* plot owner
|
* plot owner
|
||||||
* (Merged plots can have multiple owners)
|
* (Merged plots can have multiple owners)
|
||||||
* Direct access is Deprecated: use getOwners()
|
* Direct access is Deprecated: use getOwners()
|
||||||
|
*
|
||||||
* @deprecated
|
* @deprecated
|
||||||
*/
|
*/
|
||||||
@Deprecated public UUID getOwner() {
|
@Deprecated public UUID getOwner() {
|
||||||
@ -353,6 +355,32 @@ public class Plot {
|
|||||||
return this.owner;
|
return this.owner;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the plot owner (and update the database)
|
||||||
|
*
|
||||||
|
* @param owner uuid to set as owner
|
||||||
|
*/
|
||||||
|
public void setOwner(UUID owner) {
|
||||||
|
if (!hasOwner()) {
|
||||||
|
this.owner = owner;
|
||||||
|
create();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!isMerged()) {
|
||||||
|
if (!this.owner.equals(owner)) {
|
||||||
|
this.owner = owner;
|
||||||
|
DBFunc.setOwner(this, owner);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (Plot current : getConnectedPlots()) {
|
||||||
|
if (!owner.equals(current.owner)) {
|
||||||
|
current.owner = owner;
|
||||||
|
DBFunc.setOwner(current, owner);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a immutable set of owner UUIDs for a plot (supports multi-owner mega-plots).
|
* Gets a immutable set of owner UUIDs for a plot (supports multi-owner mega-plots).
|
||||||
* <p>
|
* <p>
|
||||||
@ -748,32 +776,6 @@ public class Plot {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the plot owner (and update the database)
|
|
||||||
*
|
|
||||||
* @param owner uuid to set as owner
|
|
||||||
*/
|
|
||||||
public void setOwner(UUID owner) {
|
|
||||||
if (!hasOwner()) {
|
|
||||||
this.owner = owner;
|
|
||||||
create();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!isMerged()) {
|
|
||||||
if (!this.owner.equals(owner)) {
|
|
||||||
this.owner = owner;
|
|
||||||
DBFunc.setOwner(this, owner);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
for (Plot current : getConnectedPlots()) {
|
|
||||||
if (!owner.equals(current.owner)) {
|
|
||||||
current.owner = owner;
|
|
||||||
DBFunc.setOwner(current, owner);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the plot owner (and update the database)
|
* Sets the plot owner (and update the database)
|
||||||
*
|
*
|
||||||
|
@ -34,7 +34,8 @@ public class PlotId {
|
|||||||
*/
|
*/
|
||||||
@Nonnull public static PlotId fromString(@Nonnull String string) {
|
@Nonnull public static PlotId fromString(@Nonnull String string) {
|
||||||
PlotId plot = fromStringOrNull(string);
|
PlotId plot = fromStringOrNull(string);
|
||||||
if (plot == null) throw new IllegalArgumentException("Cannot create PlotID. String invalid.");
|
if (plot == null)
|
||||||
|
throw new IllegalArgumentException("Cannot create PlotID. String invalid.");
|
||||||
return plot;
|
return plot;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,6 +102,7 @@ public class PlotId {
|
|||||||
public PlotId getRelative(Direction direction) {
|
public PlotId getRelative(Direction direction) {
|
||||||
return getRelative(direction.getIndex());
|
return getRelative(direction.getIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the PlotId in a relative direction
|
* Get the PlotId in a relative direction
|
||||||
* 0 = north<br>
|
* 0 = north<br>
|
||||||
|
@ -33,6 +33,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize a new {@link PlotLoc} and set the Y value to {@code -1}
|
* Initialize a new {@link PlotLoc} and set the Y value to {@code -1}
|
||||||
|
*
|
||||||
* @param x X value
|
* @param x X value
|
||||||
* @param z Y value
|
* @param z Y value
|
||||||
*/
|
*/
|
||||||
|
@ -428,6 +428,7 @@ public abstract class PlotPlayer implements CommandCaller, OfflinePlotPlayer {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Determines whether or not the player can fly.
|
* Determines whether or not the player can fly.
|
||||||
|
*
|
||||||
* @return {@code true} if the player is allowed to fly
|
* @return {@code true} if the player is allowed to fly
|
||||||
*/
|
*/
|
||||||
public abstract boolean getFlight();
|
public abstract boolean getFlight();
|
||||||
@ -466,7 +467,8 @@ public abstract class PlotPlayer implements CommandCaller, OfflinePlotPlayer {
|
|||||||
*/
|
*/
|
||||||
public void unregister() {
|
public void unregister() {
|
||||||
Plot plot = getCurrentPlot();
|
Plot plot = getCurrentPlot();
|
||||||
if (plot != null && Settings.Enabled_Components.PERSISTENT_META && plot.getArea() instanceof SinglePlotArea) {
|
if (plot != null && Settings.Enabled_Components.PERSISTENT_META && plot
|
||||||
|
.getArea() instanceof SinglePlotArea) {
|
||||||
PlotId id = plot.getId();
|
PlotId id = plot.getId();
|
||||||
int x = id.x;
|
int x = id.x;
|
||||||
int z = id.y;
|
int z = id.y;
|
||||||
@ -581,17 +583,21 @@ public abstract class PlotPlayer implements CommandCaller, OfflinePlotPlayer {
|
|||||||
TaskManager.runTask(() -> {
|
TaskManager.runTask(() -> {
|
||||||
if (getMeta("teleportOnLogin", true)) {
|
if (getMeta("teleportOnLogin", true)) {
|
||||||
teleport(loc);
|
teleport(loc);
|
||||||
sendMessage(Captions.TELEPORTED_TO_PLOT.f() + " (quitLoc) (" + plotX + "," + plotZ + ")");
|
sendMessage(
|
||||||
|
Captions.TELEPORTED_TO_PLOT.f() + " (quitLoc) (" + plotX
|
||||||
|
+ "," + plotZ + ")");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (!PlotSquared.get().isMainThread(Thread.currentThread())) {
|
} else if (!PlotSquared.get().isMainThread(Thread.currentThread())) {
|
||||||
if (getMeta("teleportOnLogin", true)) {
|
if (getMeta("teleportOnLogin", true)) {
|
||||||
if (plot.teleportPlayer(PlotPlayer.this)) {
|
if (plot.teleportPlayer(PlotPlayer.this)) {
|
||||||
TaskManager.runTask(() -> {
|
TaskManager.runTask(() -> {
|
||||||
if (getMeta("teleportOnLogin",true)) {
|
if (getMeta("teleportOnLogin", true)) {
|
||||||
if (plot.isLoaded()) {
|
if (plot.isLoaded()) {
|
||||||
teleport(loc);
|
teleport(loc);
|
||||||
sendMessage(Captions.TELEPORTED_TO_PLOT.f() + " (quitLoc-unloaded) (" + plotX + "," + plotZ + ")");
|
sendMessage(Captions.TELEPORTED_TO_PLOT.f()
|
||||||
|
+ " (quitLoc-unloaded) (" + plotX + "," + plotZ
|
||||||
|
+ ")");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package com.github.intellectualsites.plotsquared.plot.object;
|
package com.github.intellectualsites.plotsquared.plot.object;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
public class StringWrapper {
|
public class StringWrapper {
|
||||||
|
|
||||||
|
@ -38,8 +38,7 @@ public class FlatRandomCollection<T> extends RandomCollection<T> {
|
|||||||
this.values = (T[]) parsed.toArray();
|
this.values = (T[]) parsed.toArray();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override public T next() {
|
||||||
public T next() {
|
|
||||||
return values[random.nextInt(values.length)];
|
return values[random.nextInt(values.length)];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,14 +20,14 @@ public abstract class RandomCollection<T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Random getRandom() {
|
||||||
|
return random;
|
||||||
|
}
|
||||||
|
|
||||||
public void setRandom(Random random) {
|
public void setRandom(Random random) {
|
||||||
checkNotNull(random);
|
checkNotNull(random);
|
||||||
this.random = random;
|
this.random = random;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Random getRandom() {
|
|
||||||
return random;
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract T next();
|
public abstract T next();
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,8 @@ public class SimpleRandomCollection<E> extends RandomCollection<E> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void add(double weight, E result) {
|
public void add(double weight, E result) {
|
||||||
if (weight <= 0) return;
|
if (weight <= 0)
|
||||||
|
return;
|
||||||
total += weight;
|
total += weight;
|
||||||
map.put(total, result);
|
map.put(total, result);
|
||||||
}
|
}
|
||||||
|
@ -5,13 +5,7 @@ import com.github.intellectualsites.plotsquared.plot.PlotSquared;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.config.Configuration;
|
import com.github.intellectualsites.plotsquared.plot.config.Configuration;
|
||||||
import com.github.intellectualsites.plotsquared.plot.config.ConfigurationNode;
|
import com.github.intellectualsites.plotsquared.plot.config.ConfigurationNode;
|
||||||
import com.github.intellectualsites.plotsquared.plot.generator.GridPlotWorld;
|
import com.github.intellectualsites.plotsquared.plot.generator.GridPlotWorld;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.Location;
|
import com.github.intellectualsites.plotsquared.plot.object.*;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.Plot;
|
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotId;
|
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotLoc;
|
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotSettings;
|
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.RunnableVal;
|
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.SetupObject;
|
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.SetupUtils;
|
import com.github.intellectualsites.plotsquared.plot.util.SetupUtils;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.TaskManager;
|
import com.github.intellectualsites.plotsquared.plot.util.TaskManager;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.WorldUtil;
|
import com.github.intellectualsites.plotsquared.plot.util.WorldUtil;
|
||||||
@ -66,13 +60,15 @@ public class SinglePlotArea extends GridPlotWorld {
|
|||||||
File levelDat = new File(src, "level.dat");
|
File levelDat = new File(src, "level.dat");
|
||||||
if (levelDat.exists()) {
|
if (levelDat.exists()) {
|
||||||
try {
|
try {
|
||||||
Files.copy(levelDat.toPath(), new File(dest, levelDat.getName()).toPath());
|
Files.copy(levelDat.toPath(),
|
||||||
|
new File(dest, levelDat.getName()).toPath());
|
||||||
File data = new File(src, "data");
|
File data = new File(src, "data");
|
||||||
if (data.exists()) {
|
if (data.exists()) {
|
||||||
File dataDest = new File(dest, "data");
|
File dataDest = new File(dest, "data");
|
||||||
dataDest.mkdirs();
|
dataDest.mkdirs();
|
||||||
for (File file : data.listFiles()) {
|
for (File file : data.listFiles()) {
|
||||||
Files.copy(file.toPath(), new File(dataDest, file.getName()).toPath());
|
Files.copy(file.toPath(),
|
||||||
|
new File(dataDest, file.getName()).toPath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (IOException ignore) {
|
} catch (IOException ignore) {
|
||||||
|
@ -96,7 +96,9 @@ public class SinglePlotAreaManager extends DefaultPlotAreaManager {
|
|||||||
if (found != null && found.length != 0) {
|
if (found != null && found.length != 0) {
|
||||||
return found;
|
return found;
|
||||||
}
|
}
|
||||||
return isWorld(world) || world.equals("*") ? array : all.length == 0 ? noPlotAreas : super.getPlotAreas(world, region);
|
return isWorld(world) || world.equals("*") ?
|
||||||
|
array :
|
||||||
|
all.length == 0 ? noPlotAreas : super.getPlotAreas(world, region);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public PlotArea[] getAllPlotAreas() {
|
@Override public PlotArea[] getAllPlotAreas() {
|
||||||
|
@ -12,9 +12,11 @@ import java.util.concurrent.ConcurrentHashMap;
|
|||||||
|
|
||||||
public abstract class ChunkManager {
|
public abstract class ChunkManager {
|
||||||
|
|
||||||
|
private static final Map<ChunkLoc, RunnableVal<ScopedLocalBlockQueue>> forceChunks =
|
||||||
|
new ConcurrentHashMap<>();
|
||||||
|
private static final Map<ChunkLoc, RunnableVal<ScopedLocalBlockQueue>> addChunks =
|
||||||
|
new ConcurrentHashMap<>();
|
||||||
public static ChunkManager manager = null;
|
public static ChunkManager manager = null;
|
||||||
private static final Map<ChunkLoc, RunnableVal<ScopedLocalBlockQueue>> forceChunks = new ConcurrentHashMap<>();
|
|
||||||
private static final Map<ChunkLoc, RunnableVal<ScopedLocalBlockQueue>> addChunks = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
public static ChunkLoc getChunkChunk(Location location) {
|
public static ChunkLoc getChunkChunk(Location location) {
|
||||||
int x = location.getX() >> 9;
|
int x = location.getX() >> 9;
|
||||||
|
@ -8,7 +8,6 @@ import com.github.intellectualsites.plotsquared.plot.flag.Flags;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.listener.PlayerBlockEventType;
|
import com.github.intellectualsites.plotsquared.plot.listener.PlayerBlockEventType;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.*;
|
import com.github.intellectualsites.plotsquared.plot.object.*;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.worlds.SinglePlotArea;
|
import com.github.intellectualsites.plotsquared.plot.object.worlds.SinglePlotArea;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.worlds.SinglePlotAreaManager;
|
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.expiry.ExpireManager;
|
import com.github.intellectualsites.plotsquared.plot.util.expiry.ExpireManager;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
@ -77,7 +76,8 @@ public abstract class EventUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
final Plot plot = player.getCurrentPlot();
|
final Plot plot = player.getCurrentPlot();
|
||||||
if (Settings.Teleport.ON_LOGIN && plot != null && !(plot.getArea() instanceof SinglePlotArea)) {
|
if (Settings.Teleport.ON_LOGIN && plot != null && !(plot
|
||||||
|
.getArea() instanceof SinglePlotArea)) {
|
||||||
TaskManager.runTask(() -> plot.teleportPlayer(player));
|
TaskManager.runTask(() -> plot.teleportPlayer(player));
|
||||||
MainUtil.sendMessage(player,
|
MainUtil.sendMessage(player,
|
||||||
Captions.TELEPORTED_TO_ROAD.f() + " (on-login) " + "(" + plot.getId().x + ";" + plot
|
Captions.TELEPORTED_TO_ROAD.f() + " (on-login) " + "(" + plot.getId().x + ";" + plot
|
||||||
@ -154,8 +154,8 @@ public abstract class EventUtil {
|
|||||||
if (plot.hasOwner()) {
|
if (plot.hasOwner()) {
|
||||||
return Permissions
|
return Permissions
|
||||||
.hasPermission(player, Captions.PERMISSION_ADMIN_INTERACT_OTHER.s(), false)
|
.hasPermission(player, Captions.PERMISSION_ADMIN_INTERACT_OTHER.s(), false)
|
||||||
|| !(
|
|| !(!notifyPerms || MainUtil
|
||||||
!notifyPerms || MainUtil.sendMessage(player, Captions.FLAG_TUTORIAL_USAGE,
|
.sendMessage(player, Captions.FLAG_TUTORIAL_USAGE,
|
||||||
Captions.FLAG_HANGING_BREAK.s()));
|
Captions.FLAG_HANGING_BREAK.s()));
|
||||||
}
|
}
|
||||||
return Permissions
|
return Permissions
|
||||||
@ -173,8 +173,8 @@ public abstract class EventUtil {
|
|||||||
if (plot.hasOwner()) {
|
if (plot.hasOwner()) {
|
||||||
return Permissions
|
return Permissions
|
||||||
.hasPermission(player, Captions.PERMISSION_ADMIN_INTERACT_OTHER.s(), false)
|
.hasPermission(player, Captions.PERMISSION_ADMIN_INTERACT_OTHER.s(), false)
|
||||||
|| !(
|
|| !(!notifyPerms || MainUtil
|
||||||
!notifyPerms || MainUtil.sendMessage(player, Captions.FLAG_TUTORIAL_USAGE,
|
.sendMessage(player, Captions.FLAG_TUTORIAL_USAGE,
|
||||||
Captions.FLAG_MISC_BREAK.s()));
|
Captions.FLAG_MISC_BREAK.s()));
|
||||||
}
|
}
|
||||||
return Permissions
|
return Permissions
|
||||||
@ -219,9 +219,8 @@ public abstract class EventUtil {
|
|||||||
.contains(block.getPlotBlock())) {
|
.contains(block.getPlotBlock())) {
|
||||||
return Permissions
|
return Permissions
|
||||||
.hasPermission(player, Captions.PERMISSION_ADMIN_INTERACT_OTHER.s(), false)
|
.hasPermission(player, Captions.PERMISSION_ADMIN_INTERACT_OTHER.s(), false)
|
||||||
|| !(
|
|| !(!notifyPerms || MainUtil
|
||||||
!notifyPerms || MainUtil.sendMessage(player, Captions.FLAG_TUTORIAL_USAGE,
|
.sendMessage(player, Captions.FLAG_TUTORIAL_USAGE, Captions.FLAG_USE.s()));
|
||||||
Captions.FLAG_USE.s()));
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -115,10 +115,10 @@ import java.util.Map;
|
|||||||
if (worldSection.contains(entry.getKey())) {
|
if (worldSection.contains(entry.getKey())) {
|
||||||
if (entry.getValue() == ConfigurationType.BLOCK) {
|
if (entry.getValue() == ConfigurationType.BLOCK) {
|
||||||
this.convertBlock(worldSection, entry.getKey(),
|
this.convertBlock(worldSection, entry.getKey(),
|
||||||
worldSection.getString(entry.getKey()));
|
worldSection.getString(entry.getKey()));
|
||||||
} else {
|
} else {
|
||||||
this.convertBlockList(worldSection, entry.getKey(),
|
this.convertBlockList(worldSection, entry.getKey(),
|
||||||
worldSection.getStringList(entry.getKey()));
|
worldSection.getStringList(entry.getKey()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -735,7 +735,8 @@ public class MainUtil {
|
|||||||
seen = Captions.NEVER.s();
|
seen = Captions.NEVER.s();
|
||||||
}
|
}
|
||||||
Optional<String> descriptionFlag = plot.getFlag(Flags.DESCRIPTION);
|
Optional<String> descriptionFlag = plot.getFlag(Flags.DESCRIPTION);
|
||||||
String description = !descriptionFlag.isPresent() ? Captions.NONE.s() :
|
String description = !descriptionFlag.isPresent() ?
|
||||||
|
Captions.NONE.s() :
|
||||||
Flags.DESCRIPTION.valueToString(descriptionFlag.get());
|
Flags.DESCRIPTION.valueToString(descriptionFlag.get());
|
||||||
|
|
||||||
StringBuilder flags = new StringBuilder();
|
StringBuilder flags = new StringBuilder();
|
||||||
@ -779,10 +780,12 @@ public class MainUtil {
|
|||||||
TaskManager.runTaskAsync(() -> {
|
TaskManager.runTaskAsync(() -> {
|
||||||
String info1;
|
String info1;
|
||||||
if (Settings.Ratings.USE_LIKES) {
|
if (Settings.Ratings.USE_LIKES) {
|
||||||
info1 = newInfo.replaceAll("%rating%", String.format("%.0f%%", Like.getLikesPercentage(plot) * 100D));
|
info1 = newInfo.replaceAll("%rating%",
|
||||||
|
String.format("%.0f%%", Like.getLikesPercentage(plot) * 100D));
|
||||||
} else {
|
} else {
|
||||||
int max = 10;
|
int max = 10;
|
||||||
if (Settings.Ratings.CATEGORIES != null && !Settings.Ratings.CATEGORIES.isEmpty()) {
|
if (Settings.Ratings.CATEGORIES != null && !Settings.Ratings.CATEGORIES
|
||||||
|
.isEmpty()) {
|
||||||
max = 8;
|
max = 8;
|
||||||
}
|
}
|
||||||
if (full && Settings.Ratings.CATEGORIES != null
|
if (full && Settings.Ratings.CATEGORIES != null
|
||||||
|
@ -253,9 +253,11 @@ public abstract class SchematicHandler {
|
|||||||
if (!name.endsWith(".schem") && !name.endsWith(".schematic")) {
|
if (!name.endsWith(".schem") && !name.endsWith(".schematic")) {
|
||||||
name = name + ".schem";
|
name = name + ".schem";
|
||||||
}
|
}
|
||||||
File file = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.SCHEMATICS + File.separator + name);
|
File file = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(),
|
||||||
|
Settings.Paths.SCHEMATICS + File.separator + name);
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
file = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.SCHEMATICS + File.separator + name + "atic");
|
file = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(),
|
||||||
|
Settings.Paths.SCHEMATICS + File.separator + name + "atic");
|
||||||
}
|
}
|
||||||
return getSchematic(file);
|
return getSchematic(file);
|
||||||
}
|
}
|
||||||
@ -270,7 +272,8 @@ public abstract class SchematicHandler {
|
|||||||
MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.SCHEMATICS);
|
MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.SCHEMATICS);
|
||||||
final List<String> names = new ArrayList<>();
|
final List<String> names = new ArrayList<>();
|
||||||
if (parent.exists()) {
|
if (parent.exists()) {
|
||||||
final String[] rawNames = parent.list((dir, name) -> name.endsWith(".schematic") || name.endsWith(".schem"));
|
final String[] rawNames =
|
||||||
|
parent.list((dir, name) -> name.endsWith(".schematic") || name.endsWith(".schem"));
|
||||||
if (rawNames != null) {
|
if (rawNames != null) {
|
||||||
final List<String> transformed = Arrays.stream(rawNames)
|
final List<String> transformed = Arrays.stream(rawNames)
|
||||||
.map(rawName -> rawName.substring(0, rawName.length() - 10))
|
.map(rawName -> rawName.substring(0, rawName.length() - 10))
|
||||||
|
@ -29,15 +29,14 @@ public class UpdateUtility {
|
|||||||
|
|
||||||
private void fetchLatestBuildInfo(final BiConsumer<BuildInfo, Throwable> whenDone) {
|
private void fetchLatestBuildInfo(final BiConsumer<BuildInfo, Throwable> whenDone) {
|
||||||
this.jenkins.getJobInfo(jobName).whenCompleteAsync((jobInfo, exception) -> {
|
this.jenkins.getJobInfo(jobName).whenCompleteAsync((jobInfo, exception) -> {
|
||||||
if (jobInfo == null && exception != null) {
|
if (jobInfo == null && exception != null) {
|
||||||
whenDone.accept(null, exception);
|
whenDone.accept(null, exception);
|
||||||
} else if (jobInfo != null) {
|
} else if (jobInfo != null) {
|
||||||
jobInfo.getLastSuccessfulBuild().getBuildInfo()
|
jobInfo.getLastSuccessfulBuild().getBuildInfo().whenComplete(whenDone);
|
||||||
.whenComplete(whenDone);
|
} else {
|
||||||
} else {
|
whenDone.accept(null, new IllegalStateException(
|
||||||
whenDone.accept(null, new IllegalStateException(
|
String.format("Could not fetch job info for job %s", this.jobName)));
|
||||||
String.format("Could not fetch job info for job %s", this.jobName)));
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,17 +46,19 @@ public class UpdateUtility {
|
|||||||
whenDone.accept(null, throwable);
|
whenDone.accept(null, throwable);
|
||||||
} else {
|
} else {
|
||||||
final Collection<ArtifactDescription> artifacts = buildInfo.getArtifacts();
|
final Collection<ArtifactDescription> artifacts = buildInfo.getArtifacts();
|
||||||
final Optional<ArtifactDescription> artifact = artifacts.stream().filter(artifactDescription -> {
|
final Optional<ArtifactDescription> artifact =
|
||||||
final String name = artifactDescription.getFileName();
|
artifacts.stream().filter(artifactDescription -> {
|
||||||
final Matcher matcher = artifactPattern.matcher(name);
|
final String name = artifactDescription.getFileName();
|
||||||
return matcher.matches();
|
final Matcher matcher = artifactPattern.matcher(name);
|
||||||
}).findAny();
|
return matcher.matches();
|
||||||
|
}).findAny();
|
||||||
if (artifact.isPresent()) {
|
if (artifact.isPresent()) {
|
||||||
final ArtifactDescription artifactDescription = artifact.get();
|
final ArtifactDescription artifactDescription = artifact.get();
|
||||||
whenDone.accept(artifactDescription, null);
|
whenDone.accept(artifactDescription, null);
|
||||||
} else {
|
} else {
|
||||||
whenDone.accept(null,
|
whenDone.accept(null, new NullPointerException(String
|
||||||
new NullPointerException(String.format("Could not find any matching artifacts in build %d", buildInfo.getId())));
|
.format("Could not find any matching artifacts in build %d",
|
||||||
|
buildInfo.getId())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -67,30 +68,34 @@ public class UpdateUtility {
|
|||||||
final BiConsumer<UpdateDescription, Throwable> whenDone) {
|
final BiConsumer<UpdateDescription, Throwable> whenDone) {
|
||||||
this.getMatchingArtifact(((artifactDescription, throwable) -> {
|
this.getMatchingArtifact(((artifactDescription, throwable) -> {
|
||||||
if (throwable != null) {
|
if (throwable != null) {
|
||||||
whenDone.accept(null, new RuntimeException(
|
whenDone.accept(null, new RuntimeException(String
|
||||||
String.format("Failed to read artifact description: %s", throwable.getMessage()), throwable));
|
.format("Failed to read artifact description: %s", throwable.getMessage()),
|
||||||
|
throwable));
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
final String version = this.isNewer(currentVersion, artifactDescription);
|
final String version = this.isNewer(currentVersion, artifactDescription);
|
||||||
if (version != null) {
|
if (version != null) {
|
||||||
whenDone.accept(new UpdateDescription(version, artifactDescription.getUrl()),
|
whenDone
|
||||||
null);
|
.accept(new UpdateDescription(version, artifactDescription.getUrl()),
|
||||||
|
null);
|
||||||
} else {
|
} else {
|
||||||
whenDone.accept(null, null);
|
whenDone.accept(null, null);
|
||||||
}
|
}
|
||||||
} catch (final Throwable exception) {
|
} catch (final Throwable exception) {
|
||||||
whenDone.accept(null,
|
whenDone.accept(null, new RuntimeException(
|
||||||
new RuntimeException(String.format("Failed to compare versions: %s",
|
String.format("Failed to compare versions: %s", exception.getMessage()),
|
||||||
exception.getMessage()), exception));
|
exception));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
private String isNewer(@NonNull final String currentVersion, @NonNull final ArtifactDescription artifact) {
|
private String isNewer(@NonNull final String currentVersion,
|
||||||
|
@NonNull final ArtifactDescription artifact) {
|
||||||
final Matcher matcher = artifactPattern.matcher(artifact.getFileName());
|
final Matcher matcher = artifactPattern.matcher(artifact.getFileName());
|
||||||
if (!matcher.matches()) {
|
if (!matcher.matches()) {
|
||||||
throw new IllegalArgumentException("Artifact file name does not match artifact pattern");
|
throw new IllegalArgumentException(
|
||||||
|
"Artifact file name does not match artifact pattern");
|
||||||
}
|
}
|
||||||
final String version = matcher.group("version");
|
final String version = matcher.group("version");
|
||||||
if (version == null) {
|
if (version == null) {
|
||||||
@ -101,12 +106,14 @@ public class UpdateUtility {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Compare two given versions in the format $major.$minor
|
* Compare two given versions in the format $major.$minor
|
||||||
|
*
|
||||||
* @param oldVersion current version
|
* @param oldVersion current version
|
||||||
* @param newVersion other version
|
* @param newVersion other version
|
||||||
* @return -1 if the current version is older, 1 is the versions are the same,
|
* @return -1 if the current version is older, 1 is the versions are the same,
|
||||||
* and 1 if the current version is newer
|
* and 1 if the current version is newer
|
||||||
*/
|
*/
|
||||||
private int compareVersions(@NonNull final String oldVersion, @NonNull final String newVersion) {
|
private int compareVersions(@NonNull final String oldVersion,
|
||||||
|
@NonNull final String newVersion) {
|
||||||
// Versions look this this: major.minor :P
|
// Versions look this this: major.minor :P
|
||||||
final int[] oldNums = splitVersion(oldVersion);
|
final int[] oldNums = splitVersion(oldVersion);
|
||||||
final int[] newNums = splitVersion(newVersion);
|
final int[] newNums = splitVersion(newVersion);
|
||||||
@ -131,16 +138,18 @@ public class UpdateUtility {
|
|||||||
private int[] splitVersion(@NonNull final String versionString) {
|
private int[] splitVersion(@NonNull final String versionString) {
|
||||||
final String[] parts = versionString.split("\\.");
|
final String[] parts = versionString.split("\\.");
|
||||||
switch (parts.length) {
|
switch (parts.length) {
|
||||||
case 0: return new int[] {-1, -1};
|
case 0:
|
||||||
case 1: return new int[] {-1, Integer.parseInt(parts[0])};
|
return new int[] {-1, -1};
|
||||||
case 2: return new int[] {Integer.parseInt(parts[0]), Integer.parseInt(parts[1])};
|
case 1:
|
||||||
default: return null;
|
return new int[] {-1, Integer.parseInt(parts[0])};
|
||||||
|
case 2:
|
||||||
|
return new int[] {Integer.parseInt(parts[0]), Integer.parseInt(parts[1])};
|
||||||
|
default:
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Getter
|
@Getter @RequiredArgsConstructor public static class UpdateDescription {
|
||||||
@RequiredArgsConstructor
|
|
||||||
public static class UpdateDescription {
|
|
||||||
private final String version;
|
private final String version;
|
||||||
private final String url;
|
private final String url;
|
||||||
}
|
}
|
||||||
|
@ -5,11 +5,9 @@ This will increase a player's allowed plots by the provided value
|
|||||||
var uuid = UUIDHandler.getUUID('%s0', null);
|
var uuid = UUIDHandler.getUUID('%s0', null);
|
||||||
if (uuid === null) {
|
if (uuid === null) {
|
||||||
C_INVALID_PLAYER.send(PlotPlayer, '%s0');
|
C_INVALID_PLAYER.send(PlotPlayer, '%s0');
|
||||||
}
|
} else if (!MathMan.class.static.isInteger('%s1')) {
|
||||||
else if (!MathMan.class.static.isInteger('%s1')) {
|
|
||||||
C_NOT_VALID_NUMBER.send(PlotPlayer, '(0, ' + Settings.MAX_PLOTS + ')');
|
C_NOT_VALID_NUMBER.send(PlotPlayer, '(0, ' + Settings.MAX_PLOTS + ')');
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
var amount = parseInt('%s1');
|
var amount = parseInt('%s1');
|
||||||
var pp = IMP.wrapPlayer(UUIDHandler.getUUIDWrapper().getOfflinePlayer(uuid).player);
|
var pp = IMP.wrapPlayer(UUIDHandler.getUUIDWrapper().getOfflinePlayer(uuid).player);
|
||||||
var allowed = pp.getAllowedPlots();
|
var allowed = pp.getAllowedPlots();
|
||||||
|
@ -35,14 +35,12 @@ if ("%s0" === "true") {
|
|||||||
var plot = plots.get(i);
|
var plot = plots.get(i);
|
||||||
plot.autoMerge(-1, 250000, plot.owner, true);
|
plot.autoMerge(-1, 250000, plot.owner, true);
|
||||||
}
|
}
|
||||||
}
|
} else if ("%s0" === "false") {
|
||||||
else if ("%s0" === "false") {
|
|
||||||
for (var i = 0; i < plots.size(); i++) {
|
for (var i = 0; i < plots.size(); i++) {
|
||||||
var plot = plots.get(i);
|
var plot = plots.get(i);
|
||||||
plot.autoMerge(-1, 250000, plot.owner, false);
|
plot.autoMerge(-1, 250000, plot.owner, false);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
C_COMMAND_SYNTAX.send(PlotPlayer, "/plot debugexec automerge.js <removeroads>");
|
C_COMMAND_SYNTAX.send(PlotPlayer, "/plot debugexec automerge.js <removeroads>");
|
||||||
MainUtil.class.static.sendMessage(PlotPlayer, "$1<removeroads> is true or false if you want to remove roads when auto merging");
|
MainUtil.class.static.sendMessage(PlotPlayer, "$1<removeroads> is true or false if you want to remove roads when auto merging");
|
||||||
}
|
}
|
||||||
|
@ -27,7 +27,6 @@ if (PS.hasPlotArea("%s0")) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
PS.class.static.log(plot);
|
PS.class.static.log(plot);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlotPlayer.sendMessage("Usage: /plot debugexec runasync furthest.js <plotworld>");
|
PlotPlayer.sendMessage("Usage: /plot debugexec runasync furthest.js <plotworld>");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user