diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/BukkitPlatform.java b/Bukkit/src/main/java/com/plotsquared/bukkit/BukkitPlatform.java
index 11fdea5e3..90fbec806 100644
--- a/Bukkit/src/main/java/com/plotsquared/bukkit/BukkitPlatform.java
+++ b/Bukkit/src/main/java/com/plotsquared/bukkit/BukkitPlatform.java
@@ -70,6 +70,7 @@ import com.plotsquared.core.configuration.ChatFormatter;
import com.plotsquared.core.configuration.ConfigurationNode;
import com.plotsquared.core.configuration.ConfigurationSection;
import com.plotsquared.core.configuration.Settings;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.database.DBFunc;
import com.plotsquared.core.generator.GeneratorWrapper;
import com.plotsquared.core.generator.HybridGen;
@@ -188,7 +189,9 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
private PlotAreaManager plotAreaManager;
private EventDispatcher eventDispatcher;
private PlotListener plotListener;
-
+ private YamlConfiguration worldConfiguration;
+ private File worldfile;
+
@Override public int[] getServerVersion() {
if (this.version == null) {
try {
@@ -224,6 +227,8 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
this.eventDispatcher = plotSquared.getEventDispatcher();
this.plotListener = plotSquared.getPlotListener();
this.playerManager = new BukkitPlayerManager(this.plotAreaManager, this.eventDispatcher);
+ this.worldConfiguration = plotSquared.getWorldConfiguration();
+ this.worldfile = plotSquared.getWorldsFile();
if (PlotSquared.platform().getServerVersion()[1] < 13) {
System.out.println(
@@ -903,7 +908,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
}
@Override public void registerPlayerEvents() {
- final PlayerEvents main = new PlayerEvents(this.plotAreaManager, this.eventDispatcher);
+ final PlayerEvents main = new PlayerEvents(this.plotAreaManager, this.eventDispatcher, worldEdit);
getServer().getPluginManager().registerEvents(main, this);
getServer().getPluginManager().registerEvents(new EntitySpawnListener(), this);
if (PaperLib.isPaper() && Settings.Paper_Components.PAPER_LISTENERS) {
@@ -1002,7 +1007,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
}
@Override public SetupUtils initSetupUtils() {
- return new BukkitSetupUtils(this.plotAreaManager);
+ return new BukkitSetupUtils(this.plotAreaManager, this.worldConfiguration, this.worldfile);
}
@Override public void startMetrics() {
@@ -1057,7 +1062,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
}
@NotNull @Override public IndependentPlotGenerator getDefaultGenerator() {
- return new HybridGen(this.eventDispatcher, this.plotListener);
+ return new HybridGen(this.eventDispatcher, this.plotListener, this.worldConfiguration);
}
@Override public InventoryUtil initInventoryUtil() {
@@ -1068,8 +1073,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
World world = BukkitUtil.getWorld(worldName);
if (world == null) {
// create world
- ConfigurationSection worldConfig =
- PlotSquared.get().worlds.getConfigurationSection("worlds." + worldName);
+ ConfigurationSection worldConfig = this.worldConfiguration.getConfigurationSection("worlds." + worldName);
String manager = worldConfig.getString("generator.plugin", getPluginName());
PlotAreaBuilder builder = new PlotAreaBuilder().plotManager(manager)
.generatorName(worldConfig.getString("generator.init", manager))
@@ -1096,7 +1100,7 @@ public final class BukkitPlatform extends JavaPlugin implements Listener, PlotPl
PlotSquared.get().loadWorld(worldName, (BukkitPlotGenerator) gen);
} else if (gen != null) {
PlotSquared.get().loadWorld(worldName, new BukkitPlotGenerator(worldName, gen, this.plotAreaManager));
- } else if (PlotSquared.get().worlds.contains("worlds." + worldName)) {
+ } else if (this.worldConfiguration.contains("worlds." + worldName)) {
PlotSquared.get().loadWorld(worldName, null);
}
}
diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEvents.java b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEvents.java
index a758387bf..37b73bdf4 100644
--- a/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEvents.java
+++ b/Bukkit/src/main/java/com/plotsquared/bukkit/listener/PlayerEvents.java
@@ -109,6 +109,7 @@ import com.plotsquared.core.util.PremiumVerification;
import com.plotsquared.core.util.RegExUtil;
import com.plotsquared.core.util.entity.EntityCategories;
import com.plotsquared.core.util.task.TaskManager;
+import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.world.block.BlockType;
import io.papermc.lib.PaperLib;
@@ -234,6 +235,7 @@ import java.util.regex.Pattern;
private final PlotAreaManager plotAreaManager;
private final EventDispatcher eventDispatcher;
+ private final WorldEdit worldEdit;
private boolean pistonBlocks = true;
private float lastRadius;
@@ -243,10 +245,13 @@ import java.util.regex.Pattern;
private PlayerMoveEvent moveTmp;
private String internalVersion;
- public PlayerEvents(@NotNull final PlotAreaManager plotAreaManager, @NotNull final EventDispatcher eventDispatcher) {
+ public PlayerEvents(@NotNull final PlotAreaManager plotAreaManager,
+ @NotNull final EventDispatcher eventDispatcher,
+ @NotNull final WorldEdit worldEdit) {
super(eventDispatcher);
this.plotAreaManager = plotAreaManager;
this.eventDispatcher = eventDispatcher;
+ this.worldEdit = worldEdit;
try {
fieldPlayer = PlayerEvent.class.getDeclaredField("player");
fieldPlayer.setAccessible(true);
@@ -1077,9 +1082,9 @@ import java.util.regex.Pattern;
if (Permissions.hasPermission(pp, Captions.PERMISSION_ADMIN_DESTROY_ROAD)) {
return;
}
- if (PlotSquared.get().worldedit != null && pp.getAttribute("worldedit")) {
+ if (this.worldEdit!= null && pp.getAttribute("worldedit")) {
if (player.getInventory().getItemInMainHand().getType() == Material
- .getMaterial(PlotSquared.get().worldedit.getConfiguration().wandItem)) {
+ .getMaterial(this.worldEdit.getConfiguration().wandItem)) {
return;
}
}
@@ -1150,7 +1155,7 @@ import java.util.regex.Pattern;
if (plot != null) {
plotExit(pp, plot);
}
- if (PlotSquared.get().worldedit != null) {
+ if (this.worldEdit != null) {
if (!Permissions.hasPermission(pp, Captions.PERMISSION_WORLDEDIT_BYPASS)) {
if (pp.getAttribute("worldedit")) {
pp.removeAttribute("worldedit");
@@ -2114,9 +2119,9 @@ import java.util.regex.Pattern;
default:
return;
}
- if (PlotSquared.get().worldedit != null && pp.getAttribute("worldedit")) {
+ if (this.worldEdit != null && pp.getAttribute("worldedit")) {
if (event.getMaterial() == Material
- .getMaterial(PlotSquared.get().worldedit.getConfiguration().wandItem)) {
+ .getMaterial(this.worldEdit.getConfiguration().wandItem)) {
return;
}
}
diff --git a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitSetupUtils.java b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitSetupUtils.java
index 809a93c72..838b620c5 100644
--- a/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitSetupUtils.java
+++ b/Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitSetupUtils.java
@@ -27,8 +27,11 @@ package com.plotsquared.bukkit.util;
import com.plotsquared.bukkit.generator.BukkitPlotGenerator;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.WorldConfig;
+import com.plotsquared.core.annoations.WorldFile;
import com.plotsquared.core.configuration.ConfigurationNode;
import com.plotsquared.core.configuration.ConfigurationSection;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.generator.GeneratorWrapper;
import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.PlotAreaType;
@@ -45,6 +48,7 @@ import org.bukkit.generator.ChunkGenerator;
import org.bukkit.plugin.Plugin;
import org.jetbrains.annotations.NotNull;
+import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map.Entry;
@@ -53,9 +57,15 @@ import java.util.Objects;
public class BukkitSetupUtils extends SetupUtils {
private final PlotAreaManager plotAreaManager;
+ private final YamlConfiguration worldConfiguration;
+ private final File worldFile;
- public BukkitSetupUtils(@NotNull final PlotAreaManager plotAreaManager) {
+ public BukkitSetupUtils(@NotNull final PlotAreaManager plotAreaManager,
+ @WorldConfig @NotNull final YamlConfiguration worldConfiguration,
+ @WorldFile @NotNull final File worldFile) {
this.plotAreaManager = plotAreaManager;
+ this.worldConfiguration = worldConfiguration;
+ this.worldFile = worldFile;
}
@Override public void updateGenerators() {
@@ -115,11 +125,10 @@ public class BukkitSetupUtils extends SetupUtils {
switch (type) {
case PARTIAL: {
if (object.id != null) {
- if (!PlotSquared.get().worlds.contains(worldPath)) {
- PlotSquared.get().worlds.createSection(worldPath);
+ if (!this.worldConfiguration.contains(worldPath)) {
+ this.worldConfiguration.createSection(worldPath);
}
- ConfigurationSection worldSection =
- PlotSquared.get().worlds.getConfigurationSection(worldPath);
+ ConfigurationSection worldSection = this.worldConfiguration.getConfigurationSection(worldPath);
String areaName = object.id + "-" + object.min + "-" + object.max;
String areaPath = "areas." + areaName;
if (!worldSection.contains(areaPath)) {
@@ -159,26 +168,21 @@ public class BukkitSetupUtils extends SetupUtils {
}
case AUGMENTED: {
if (!object.plotManager.endsWith(":single")) {
- if (!PlotSquared.get().worlds.contains(worldPath)) {
- PlotSquared.get().worlds.createSection(worldPath);
+ if (!this.worldConfiguration.contains(worldPath)) {
+ this.worldConfiguration.createSection(worldPath);
}
if (steps.length != 0) {
- ConfigurationSection worldSection =
- PlotSquared.get().worlds.getConfigurationSection(worldPath);
+ ConfigurationSection worldSection = this.worldConfiguration.getConfigurationSection(worldPath);
for (ConfigurationNode step : steps) {
worldSection.set(step.getConstant(), step.getValue());
}
}
- PlotSquared.get().worlds
- .set("worlds." + world + ".generator.type", object.type.toString());
- PlotSquared.get().worlds
- .set("worlds." + world + ".generator.terrain", object.terrain.toString());
- PlotSquared.get().worlds
- .set("worlds." + world + ".generator.plugin", object.plotManager);
+ this.worldConfiguration.set("worlds." + world + ".generator.type", object.type.toString());
+ this.worldConfiguration.set("worlds." + world + ".generator.terrain", object.terrain.toString());
+ this.worldConfiguration.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);
+ this.worldConfiguration.set("worlds." + world + ".generator.init", object.setupGenerator);
}
}
GeneratorWrapper> gen = SetupUtils.generators.get(object.setupGenerator);
@@ -189,11 +193,10 @@ public class BukkitSetupUtils extends SetupUtils {
}
case NORMAL: {
if (steps.length != 0) {
- if (!PlotSquared.get().worlds.contains(worldPath)) {
- PlotSquared.get().worlds.createSection(worldPath);
+ if (!this.worldConfiguration.contains(worldPath)) {
+ this.worldConfiguration.createSection(worldPath);
}
- ConfigurationSection worldSection =
- PlotSquared.get().worlds.getConfigurationSection(worldPath);
+ ConfigurationSection worldSection = this.worldConfiguration.getConfigurationSection(worldPath);
for (ConfigurationNode step : steps) {
worldSection.set(step.getConstant(), step.getValue());
}
@@ -203,7 +206,7 @@ public class BukkitSetupUtils extends SetupUtils {
}
try {
- PlotSquared.get().worlds.save(PlotSquared.get().worldsFile);
+ this.worldConfiguration.save(this.worldFile);
} catch (IOException e) {
e.printStackTrace();
}
@@ -228,11 +231,11 @@ public class BukkitSetupUtils extends SetupUtils {
switch (type) {
case PARTIAL: {
if (builder.areaName() != null) {
- if (!PlotSquared.get().worlds.contains(worldPath)) {
- PlotSquared.get().worlds.createSection(worldPath);
+ if (!this.worldConfiguration.contains(worldPath)) {
+ this.worldConfiguration.createSection(worldPath);
}
ConfigurationSection worldSection =
- PlotSquared.get().worlds.getConfigurationSection(worldPath);
+ this.worldConfiguration.getConfigurationSection(worldPath);
String areaName = builder.areaName() + "-" + builder.minimumId() + "-" + builder.maximumId();
String areaPath = "areas." + areaName;
if (!worldSection.contains(areaPath)) {
@@ -272,25 +275,25 @@ public class BukkitSetupUtils extends SetupUtils {
}
case AUGMENTED: {
if (!builder.plotManager().endsWith(":single")) {
- if (!PlotSquared.get().worlds.contains(worldPath)) {
- PlotSquared.get().worlds.createSection(worldPath);
+ if (!this.worldConfiguration.contains(worldPath)) {
+ this.worldConfiguration.createSection(worldPath);
}
if (steps.length != 0) {
ConfigurationSection worldSection =
- PlotSquared.get().worlds.getConfigurationSection(worldPath);
+ this.worldConfiguration.getConfigurationSection(worldPath);
for (ConfigurationNode step : steps) {
worldSection.set(step.getConstant(), step.getValue());
}
}
- PlotSquared.get().worlds
+ this.worldConfiguration
.set("worlds." + world + ".generator.type", builder.plotAreaType().toString());
- PlotSquared.get().worlds
+ this.worldConfiguration
.set("worlds." + world + ".generator.terrain", builder.terrainType().toString());
- PlotSquared.get().worlds
+ this.worldConfiguration
.set("worlds." + world + ".generator.plugin", builder.plotManager());
if (builder.generatorName() != null && !builder.generatorName()
.equals(builder.plotManager())) {
- PlotSquared.get().worlds
+ this.worldConfiguration
.set("worlds." + world + ".generator.init", builder.generatorName());
}
}
@@ -302,11 +305,11 @@ public class BukkitSetupUtils extends SetupUtils {
}
case NORMAL: {
if (steps.length != 0) {
- if (!PlotSquared.get().worlds.contains(worldPath)) {
- PlotSquared.get().worlds.createSection(worldPath);
+ if (!this.worldConfiguration.contains(worldPath)) {
+ this.worldConfiguration.createSection(worldPath);
}
ConfigurationSection worldSection =
- PlotSquared.get().worlds.getConfigurationSection(worldPath);
+ this.worldConfiguration.getConfigurationSection(worldPath);
for (ConfigurationNode step : steps) {
worldSection.set(step.getConstant(), step.getValue());
}
@@ -316,7 +319,7 @@ public class BukkitSetupUtils extends SetupUtils {
}
try {
- PlotSquared.get().worlds.save(PlotSquared.get().worldsFile);
+ this.worldConfiguration.save(this.worldFile);
} catch (IOException e) {
e.printStackTrace();
}
diff --git a/Core/src/main/java/com/plotsquared/core/PlotAPI.java b/Core/src/main/java/com/plotsquared/core/PlotAPI.java
index eb1c99607..ff4101a5c 100644
--- a/Core/src/main/java/com/plotsquared/core/PlotAPI.java
+++ b/Core/src/main/java/com/plotsquared/core/PlotAPI.java
@@ -27,7 +27,6 @@ package com.plotsquared.core;
import com.plotsquared.core.configuration.Caption;
import com.plotsquared.core.configuration.Captions;
-import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.location.Location;
import com.plotsquared.core.player.PlotPlayer;
import com.plotsquared.core.plot.Plot;
@@ -89,26 +88,6 @@ import java.util.UUID;
PlotSquared.get().addPlotArea(plotArea);
}
- /**
- * Gets the configuration file for this plugin.
- *
- * @return the configuration file for PlotSquared
- * =
- */
- public YamlConfiguration getConfig() {
- return PlotSquared.get().getConfig();
- }
-
- /**
- * Gets the PlotSquared storage file.
- *
- * @return storage configuration
- * @see PlotSquared#storage
- */
- public YamlConfiguration getStorage() {
- return PlotSquared.get().storage;
- }
-
/**
* ChunkManager class contains several useful methods.
*
diff --git a/Core/src/main/java/com/plotsquared/core/PlotSquared.java b/Core/src/main/java/com/plotsquared/core/PlotSquared.java
index f9c09b5b1..0796d40b4 100644
--- a/Core/src/main/java/com/plotsquared/core/PlotSquared.java
+++ b/Core/src/main/java/com/plotsquared/core/PlotSquared.java
@@ -144,16 +144,14 @@ public class PlotSquared {
@Getter private final UUIDPipeline backgroundUUIDPipeline =
new UUIDPipeline(Executors.newSingleThreadExecutor());
// WorldEdit instance
- public WorldEdit worldedit;
- public File styleFile;
- public File configFile;
- public File worldsFile;
- public File translationFile;
- public YamlConfiguration style;
- public YamlConfiguration worlds;
- public YamlConfiguration storage;
+ @Getter private WorldEdit worldedit;
+ @Getter private File configFile;
+ @Getter private File worldsFile;
+ public File translationFile; // TODO: REMOVE
+ public YamlConfiguration style; // TODO: REMOVE
+ @Getter private YamlConfiguration worldConfiguration;
// Temporary hold the plots/clusters before the worlds load
- public HashMap> clusters_tmp;
+ private HashMap> clustersTmp;
public HashMap> plots_tmp;
private YamlConfiguration config;
// Implementation logger
@@ -217,14 +215,33 @@ public class PlotSquared {
+ ".use_THIS.yml");
Captions.load(this.translationFile);
+ // WorldEdit
+ if (Settings.Enabled_Components.WORLDEDIT_RESTRICTIONS) {
+ try {
+ if (this.platform.initWorldEdit()) {
+ PlotSquared.log(Captions.PREFIX.getTranslated() + "&6" + this.platform.getPluginName()
+ + " hooked into WorldEdit.");
+ this.worldedit = WorldEdit.getInstance();
+ WorldEdit.getInstance().getEventBus().register(new WESubscriber(this.plotAreaManager));
+ if (Settings.Enabled_Components.COMMANDS) {
+ new WE_Anywhere();
+ }
+
+ }
+ } catch (Throwable e) {
+ PlotSquared.debug(
+ "Incompatible version of WorldEdit, please upgrade: http://builds.enginehub.org/job/worldedit?branch=master");
+ }
+ }
+
// Create Event utility class
- this.eventDispatcher = new EventDispatcher();
+ this.eventDispatcher = new EventDispatcher(this.worldedit);
// Create plot listener
this.plotListener = new PlotListener(this.eventDispatcher);
// Setup plotAreaManager
if (Settings.Enabled_Components.WORLDS) {
- this.plotAreaManager = new SinglePlotAreaManager(this.eventDispatcher, this.plotListener);
+ this.plotAreaManager = new SinglePlotAreaManager(this.eventDispatcher, this.plotListener, this.worldConfiguration);
} else {
this.plotAreaManager = new DefaultPlotAreaManager();
}
@@ -281,24 +298,6 @@ public class PlotSquared {
if (Settings.Enabled_Components.COMMANDS) {
this.platform.registerCommands();
}
- // WorldEdit
- if (Settings.Enabled_Components.WORLDEDIT_RESTRICTIONS) {
- try {
- if (this.platform.initWorldEdit()) {
- PlotSquared.log(Captions.PREFIX.getTranslated() + "&6" + this.platform.getPluginName()
- + " hooked into WorldEdit.");
- this.worldedit = WorldEdit.getInstance();
- WorldEdit.getInstance().getEventBus().register(new WESubscriber(this.plotAreaManager));
- if (Settings.Enabled_Components.COMMANDS) {
- new WE_Anywhere();
- }
-
- }
- } catch (Throwable e) {
- PlotSquared.debug(
- "Incompatible version of WorldEdit, please upgrade: http://builds.enginehub.org/job/worldedit?branch=master");
- }
- }
// Economy
if (Settings.Enabled_Components.ECONOMY) {
TaskManager.runTask(() -> EconHandler.initializeEconHandler());
@@ -314,7 +313,7 @@ public class PlotSquared {
}
// World generators:
- final ConfigurationSection section = this.worlds.getConfigurationSection("worlds");
+ final ConfigurationSection section = this.worldConfiguration.getConfigurationSection("worlds");
if (section != null) {
for (String world : section.getKeys(false)) {
if (world.equals("CheckingPlotSquaredGenerator")) {
@@ -505,10 +504,10 @@ public class PlotSquared {
}
}
Set clusters;
- if (clusters_tmp == null || (clusters = clusters_tmp.remove(plotArea.toString())) == null) {
+ if (clustersTmp == null || (clusters = clustersTmp.remove(plotArea.toString())) == null) {
if (plotArea.getType() == PlotAreaType.PARTIAL) {
- clusters = this.clusters_tmp != null ?
- this.clusters_tmp.get(plotArea.getWorldName()) :
+ clusters = this.clustersTmp != null ?
+ this.clustersTmp.get(plotArea.getWorldName()) :
null;
if (clusters != null) {
Iterator iterator = clusters.iterator();
@@ -594,10 +593,10 @@ public class PlotSquared {
for (Plot plot : area.getPlots()) {
map.put(plot.getId(), plot);
}
- if (this.clusters_tmp == null) {
- this.clusters_tmp = new HashMap<>();
+ if (this.clustersTmp == null) {
+ this.clustersTmp = new HashMap<>();
}
- this.clusters_tmp.put(area.toString(), area.getClusters());
+ this.clustersTmp.put(area.toString(), area.getClusters());
}
public Set getClusters(@NotNull final String world) {
@@ -932,13 +931,13 @@ public class PlotSquared {
}
this.plotAreaManager.addWorld(world);
Set worlds;
- if (this.worlds.contains("worlds")) {
- worlds = this.worlds.getConfigurationSection("worlds").getKeys(false);
+ if (this.worldConfiguration.contains("worlds")) {
+ worlds = this.worldConfiguration.getConfigurationSection("worlds").getKeys(false);
} else {
worlds = new HashSet<>();
}
String path = "worlds." + world;
- ConfigurationSection worldSection = this.worlds.getConfigurationSection(path);
+ ConfigurationSection worldSection = this.worldConfiguration.getConfigurationSection(path);
PlotAreaType type;
if (worldSection != null) {
type = MainUtil.getType(worldSection);
@@ -981,14 +980,14 @@ public class PlotSquared {
PlotSquared.log(Captions.PREFIX + "&3 - plotworld: &7" + plotArea.getClass().getName());
PlotSquared.log(
Captions.PREFIX + "&3 - plotAreaManager: &7" + plotManager.getClass().getName());
- if (!this.worlds.contains(path)) {
- this.worlds.createSection(path);
- worldSection = this.worlds.getConfigurationSection(path);
+ if (!this.worldConfiguration.contains(path)) {
+ this.worldConfiguration.createSection(path);
+ worldSection = this.worldConfiguration.getConfigurationSection(path);
}
plotArea.saveConfiguration(worldSection);
plotArea.loadDefaultConfiguration(worldSection);
try {
- this.worlds.save(this.worldsFile);
+ this.worldConfiguration.save(this.worldsFile);
} catch (IOException e) {
e.printStackTrace();
}
@@ -1009,7 +1008,7 @@ public class PlotSquared {
String gen_string = worldSection.getString("generator.plugin", platform.getPluginName());
if (type == PlotAreaType.PARTIAL) {
Set clusters =
- this.clusters_tmp != null ? this.clusters_tmp.get(world) : new HashSet<>();
+ this.clustersTmp != null ? this.clustersTmp.get(world) : new HashSet<>();
if (clusters == null) {
throw new IllegalArgumentException("No cluster exists for world: " + world);
}
@@ -1032,7 +1031,7 @@ public class PlotSquared {
pa.saveConfiguration(worldSection);
pa.loadDefaultConfiguration(worldSection);
try {
- this.worlds.save(this.worldsFile);
+ this.worldConfiguration.save(this.worldsFile);
} catch (IOException e) {
e.printStackTrace();
}
@@ -1061,7 +1060,7 @@ public class PlotSquared {
pa.saveConfiguration(worldSection);
pa.loadDefaultConfiguration(worldSection);
try {
- this.worlds.save(this.worldsFile);
+ this.worldConfiguration.save(this.worldsFile);
} catch (IOException e) {
e.printStackTrace();
}
@@ -1138,7 +1137,7 @@ public class PlotSquared {
}
pa.loadDefaultConfiguration(clone);
try {
- this.worlds.save(this.worldsFile);
+ this.worldConfiguration.save(this.worldsFile);
} catch (IOException e) {
e.printStackTrace();
}
@@ -1212,7 +1211,7 @@ public class PlotSquared {
}
HybridPlotWorld plotworld = new HybridPlotWorld(world, null, generator,
- null, null, this.eventDispatcher, this.plotListener);
+ null, null, this.eventDispatcher, this.plotListener, this.worldConfiguration);
for (String element : split) {
String[] pair = element.split("=");
if (pair.length != 2) {
@@ -1226,41 +1225,41 @@ public class PlotSquared {
switch (key) {
case "s":
case "size":
- this.worlds.set(base + "plot.size",
+ this.worldConfiguration.set(base + "plot.size",
ConfigurationUtil.INTEGER.parseString(value).shortValue());
break;
case "g":
case "gap":
- this.worlds.set(base + "road.width",
+ this.worldConfiguration.set(base + "road.width",
ConfigurationUtil.INTEGER.parseString(value).shortValue());
break;
case "h":
case "height":
- this.worlds.set(base + "road.height",
+ this.worldConfiguration.set(base + "road.height",
ConfigurationUtil.INTEGER.parseString(value).shortValue());
- this.worlds.set(base + "plot.height",
+ this.worldConfiguration.set(base + "plot.height",
ConfigurationUtil.INTEGER.parseString(value).shortValue());
- this.worlds.set(base + "wall.height",
+ this.worldConfiguration.set(base + "wall.height",
ConfigurationUtil.INTEGER.parseString(value).shortValue());
break;
case "f":
case "floor":
- this.worlds.set(base + "plot.floor",
+ this.worldConfiguration.set(base + "plot.floor",
ConfigurationUtil.BLOCK_BUCKET.parseString(value).toString());
break;
case "m":
case "main":
- this.worlds.set(base + "plot.filling",
+ this.worldConfiguration.set(base + "plot.filling",
ConfigurationUtil.BLOCK_BUCKET.parseString(value).toString());
break;
case "w":
case "wall":
- this.worlds.set(base + "wall.filling",
+ this.worldConfiguration.set(base + "wall.filling",
ConfigurationUtil.BLOCK_BUCKET.parseString(value).toString());
break;
case "b":
case "border":
- this.worlds.set(base + "wall.block",
+ this.worldConfiguration.set(base + "wall.block",
ConfigurationUtil.BLOCK_BUCKET.parseString(value).toString());
break;
default:
@@ -1275,10 +1274,10 @@ public class PlotSquared {
}
try {
ConfigurationSection section =
- this.worlds.getConfigurationSection("worlds." + world);
+ this.worldConfiguration.getConfigurationSection("worlds." + world);
plotworld.saveConfiguration(section);
plotworld.loadDefaultConfiguration(section);
- this.worlds.save(this.worldsFile);
+ this.worldConfiguration.save(this.worldsFile);
} catch (IOException e) {
e.printStackTrace();
}
@@ -1425,19 +1424,19 @@ public class PlotSquared {
this.platform.shutdown(); //shutdown used instead of disable because no database is set
return;
}
- DBFunc.dbManager = new SQLManager(database, Storage.PREFIX, this.eventDispatcher, this.plotListener);
+ DBFunc.dbManager = new SQLManager(database, Storage.PREFIX, this.eventDispatcher, this.plotListener, this.worldConfiguration);
this.plots_tmp = DBFunc.getPlots();
if (plotAreaManager instanceof SinglePlotAreaManager) {
SinglePlotArea area = ((SinglePlotAreaManager) plotAreaManager).getArea();
addPlotArea(area);
- ConfigurationSection section = worlds.getConfigurationSection("worlds.*");
+ ConfigurationSection section = worldConfiguration.getConfigurationSection("worlds.*");
if (section == null) {
- section = worlds.createSection("worlds.*");
+ section = worldConfiguration.createSection("worlds.*");
}
area.saveConfiguration(section);
area.loadDefaultConfiguration(section);
}
- this.clusters_tmp = DBFunc.getClusters();
+ this.clustersTmp = DBFunc.getClusters();
} catch (ClassNotFoundException | SQLException e) {
PlotSquared.log(Captions.PREFIX
+ "&cFailed to open DATABASE connection. The plugin will disable itself.");
@@ -1472,9 +1471,9 @@ public class PlotSquared {
if (getConfig().contains("worlds")) {
ConfigurationSection worldSection =
getConfig().getConfigurationSection("worlds");
- worlds.set("worlds", worldSection);
+ worldConfiguration.set("worlds", worldSection);
try {
- worlds.save(worldsFile);
+ worldConfiguration.save(worldsFile);
} catch (IOException e) {
PlotSquared.debug("Failed to save " + platform.getPluginName() + " worlds.yml");
e.printStackTrace();
@@ -1518,12 +1517,12 @@ public class PlotSquared {
PlotSquared.log(
"Could not create the worlds file, please create \"worlds.yml\" manually.");
}
- this.worlds = YamlConfiguration.loadConfiguration(this.worldsFile);
+ this.worldConfiguration = YamlConfiguration.loadConfiguration(this.worldsFile);
- if (this.worlds.contains("worlds")) {
- if (!this.worlds.contains("configuration_version") || (
- !this.worlds.getString("configuration_version")
- .equalsIgnoreCase(LegacyConverter.CONFIGURATION_VERSION) && !this.worlds
+ if (this.worldConfiguration.contains("worlds")) {
+ if (!this.worldConfiguration.contains("configuration_version") || (
+ !this.worldConfiguration.getString("configuration_version")
+ .equalsIgnoreCase(LegacyConverter.CONFIGURATION_VERSION) && !this.worldConfiguration
.getString("configuration_version").equalsIgnoreCase("v5"))) {
// Conversion needed
log(Captions.LEGACY_CONFIG_FOUND.getTranslated());
@@ -1532,10 +1531,10 @@ public class PlotSquared {
.copy(this.worldsFile, new File(folder, "worlds.yml.old"));
log(Captions.LEGACY_CONFIG_BACKUP.getTranslated());
final ConfigurationSection worlds =
- this.worlds.getConfigurationSection("worlds");
+ this.worldConfiguration.getConfigurationSection("worlds");
final LegacyConverter converter = new LegacyConverter(worlds);
converter.convert();
- this.worlds.set("worlds", worlds);
+ this.worldConfiguration.set("worlds", worlds);
this.setConfigurationVersion(LegacyConverter.CONFIGURATION_VERSION);
log(Captions.LEGACY_CONFIG_DONE.getTranslated());
} catch (final Exception e) {
@@ -1547,7 +1546,7 @@ public class PlotSquared {
return false;
}
} else {
- this.worlds.set("configuration_version", LegacyConverter.CONFIGURATION_VERSION);
+ this.worldConfiguration.set("configuration_version", LegacyConverter.CONFIGURATION_VERSION);
}
} catch (IOException ignored) {
PlotSquared.log("Failed to save settings.yml");
@@ -1564,20 +1563,21 @@ public class PlotSquared {
PlotSquared.log("Failed to save settings.yml");
}
try {
- this.styleFile = MainUtil.getFile(platform.getDirectory(),
+ // TODO: REMOVE
+ File styleFile = MainUtil.getFile(platform.getDirectory(),
Settings.Paths.TRANSLATIONS + File.separator + "style.yml");
- if (!this.styleFile.exists()) {
- if (!this.styleFile.getParentFile().exists()) {
- this.styleFile.getParentFile().mkdirs();
+ if (!styleFile.exists()) {
+ if (!styleFile.getParentFile().exists()) {
+ styleFile.getParentFile().mkdirs();
}
- if (!this.styleFile.createNewFile()) {
+ if (!styleFile.createNewFile()) {
PlotSquared.log(
"Could not create the style file, please create \"translations/style.yml\" manually");
}
}
- this.style = YamlConfiguration.loadConfiguration(this.styleFile);
+ this.style = YamlConfiguration.loadConfiguration(styleFile);
setupStyle();
- this.style.save(this.styleFile);
+ this.style.save(styleFile);
} catch (IOException err) {
err.printStackTrace();
PlotSquared.log("Failed to save style.yml");
@@ -1588,7 +1588,7 @@ public class PlotSquared {
PlotSquared.log(
"Could not the storage settings file, please create \"storage.yml\" manually.");
}
- this.storage = YamlConfiguration.loadConfiguration(this.storageFile);
+ YamlConfiguration.loadConfiguration(this.storageFile);
setupStorage();
} catch (IOException ignored) {
PlotSquared.log("Failed to save storage.yml");
@@ -1597,13 +1597,13 @@ public class PlotSquared {
}
public String getConfigurationVersion() {
- return this.worlds.get("configuration_version", LegacyConverter.CONFIGURATION_VERSION)
+ return this.worldConfiguration.get("configuration_version", LegacyConverter.CONFIGURATION_VERSION)
.toString();
}
public void setConfigurationVersion(final String newVersion) throws IOException {
- this.worlds.set("configuration_version", newVersion);
- this.worlds.save(this.worldsFile);
+ this.worldConfiguration.set("configuration_version", newVersion);
+ this.worldConfiguration.save(this.worldsFile);
}
/**
@@ -1612,7 +1612,7 @@ public class PlotSquared {
private void setupStorage() {
Storage.load(storageFile);
Storage.save(storageFile);
- storage = YamlConfiguration.loadConfiguration(storageFile);
+ YamlConfiguration.loadConfiguration(storageFile);
}
/**
diff --git a/Core/src/main/java/com/plotsquared/core/annoations/ConfigFile.java b/Core/src/main/java/com/plotsquared/core/annoations/ConfigFile.java
new file mode 100644
index 000000000..a74d13618
--- /dev/null
+++ b/Core/src/main/java/com/plotsquared/core/annoations/ConfigFile.java
@@ -0,0 +1,36 @@
+/*
+ * _____ _ _ _____ _
+ * | __ \| | | | / ____| | |
+ * | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
+ * | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
+ * | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
+ * |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
+ * | |
+ * |_|
+ * PlotSquared plot management system for Minecraft
+ * Copyright (C) 2020 IntellectualSites
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package com.plotsquared.core.annoations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ConfigFile {
+}
diff --git a/Core/src/main/java/com/plotsquared/core/annoations/WorldConfig.java b/Core/src/main/java/com/plotsquared/core/annoations/WorldConfig.java
new file mode 100644
index 000000000..2d10323cd
--- /dev/null
+++ b/Core/src/main/java/com/plotsquared/core/annoations/WorldConfig.java
@@ -0,0 +1,36 @@
+/*
+ * _____ _ _ _____ _
+ * | __ \| | | | / ____| | |
+ * | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
+ * | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
+ * | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
+ * |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
+ * | |
+ * |_|
+ * PlotSquared plot management system for Minecraft
+ * Copyright (C) 2020 IntellectualSites
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package com.plotsquared.core.annoations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface WorldConfig {
+}
diff --git a/Core/src/main/java/com/plotsquared/core/annoations/WorldFile.java b/Core/src/main/java/com/plotsquared/core/annoations/WorldFile.java
new file mode 100644
index 000000000..e01198f3d
--- /dev/null
+++ b/Core/src/main/java/com/plotsquared/core/annoations/WorldFile.java
@@ -0,0 +1,36 @@
+/*
+ * _____ _ _ _____ _
+ * | __ \| | | | / ____| | |
+ * | |__) | | ___ | |_| (___ __ _ _ _ __ _ _ __ ___ __| |
+ * | ___/| |/ _ \| __|\___ \ / _` | | | |/ _` | '__/ _ \/ _` |
+ * | | | | (_) | |_ ____) | (_| | |_| | (_| | | | __/ (_| |
+ * |_| |_|\___/ \__|_____/ \__, |\__,_|\__,_|_| \___|\__,_|
+ * | |
+ * |_|
+ * PlotSquared plot management system for Minecraft
+ * Copyright (C) 2020 IntellectualSites
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package com.plotsquared.core.annoations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface WorldFile {
+}
diff --git a/Core/src/main/java/com/plotsquared/core/command/Area.java b/Core/src/main/java/com/plotsquared/core/command/Area.java
index ad7fbe9f9..0465a96ac 100644
--- a/Core/src/main/java/com/plotsquared/core/command/Area.java
+++ b/Core/src/main/java/com/plotsquared/core/command/Area.java
@@ -26,9 +26,12 @@
package com.plotsquared.core.command;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.WorldConfig;
+import com.plotsquared.core.annoations.WorldFile;
import com.plotsquared.core.configuration.Captions;
import com.plotsquared.core.configuration.ConfigurationSection;
import com.plotsquared.core.configuration.ConfigurationUtil;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.events.TeleportCause;
import com.plotsquared.core.generator.AugmentedUtils;
import com.plotsquared.core.generator.HybridPlotWorld;
@@ -68,7 +71,6 @@ import com.sk89q.worldedit.math.BlockVector2;
import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldedit.regions.CuboidRegion;
import com.sk89q.worldedit.regions.Region;
-import lombok.RequiredArgsConstructor;
import org.jetbrains.annotations.NotNull;
import java.io.File;
@@ -88,13 +90,26 @@ import java.util.Set;
aliases = "world",
usage = "/plot area ",
confirmation = true)
-@RequiredArgsConstructor
public class Area extends SubCommand {
private final PlotAreaManager plotAreaManager;
private final EventDispatcher eventDispatcher;
private final PlotListener plotListener;
-
+ private final YamlConfiguration worldConfiguration;
+ private final File worldFile;
+
+ public Area(@NotNull final PlotAreaManager plotAreaManager,
+ @NotNull final EventDispatcher eventDispatcher,
+ @NotNull final PlotListener plotListener,
+ @WorldConfig @NotNull final YamlConfiguration worldConfiguration,
+ @WorldFile @NotNull final File worldFile) {
+ this.plotAreaManager = plotAreaManager;
+ this.eventDispatcher = eventDispatcher;
+ this.plotListener = plotListener;
+ this.worldConfiguration = worldConfiguration;
+ this.worldFile = worldFile;
+ }
+
@Override public boolean onCommand(final PlotPlayer> player, String[] args) {
if (args.length == 0) {
Captions.COMMAND_SYNTAX.send(player, getUsage());
@@ -150,7 +165,8 @@ public class Area extends SubCommand {
// There's only one plot in the area...
final PlotId plotId = new PlotId(1, 1);
final HybridPlotWorld hybridPlotWorld = new HybridPlotWorld(player.getLocation().getWorldName(), args[1],
- Objects.requireNonNull(PlotSquared.platform()).getDefaultGenerator(), plotId, plotId, this.eventDispatcher, this.plotListener);
+ Objects.requireNonNull(PlotSquared.platform()).getDefaultGenerator(), plotId, plotId,
+ this.eventDispatcher, this.plotListener, this.worldConfiguration);
// Plot size is the same as the region width
hybridPlotWorld.PLOT_WIDTH = hybridPlotWorld.SIZE = (short) selectedRegion.getWidth();
// We use a schematic generator
@@ -210,12 +226,10 @@ public class Area extends SubCommand {
final int offsetX = singlePos1.getX();
final int offsetZ = singlePos1.getZ();
if (offsetX != 0) {
- PlotSquared.get().worlds
- .set(path + ".road.offset.x", offsetX);
+ this.worldConfiguration.set(path + ".road.offset.x", offsetX);
}
if (offsetZ != 0) {
- PlotSquared.get().worlds
- .set(path + ".road.offset.z", offsetZ);
+ this.worldConfiguration.set(path + ".road.offset.z", offsetZ);
}
final String world = SetupUtils.manager.setupWorld(singleBuilder);
if (WorldUtil.IMP.isWorld(world)) {
@@ -303,12 +317,10 @@ public class Area extends SubCommand {
+ builder.minimumId() + '-' + builder.maximumId();
Runnable run = () -> {
if (offsetX != 0) {
- PlotSquared.get().worlds
- .set(path + ".road.offset.x", offsetX);
+ this.worldConfiguration.set(path + ".road.offset.x", offsetX);
}
if (offsetZ != 0) {
- PlotSquared.get().worlds
- .set(path + ".road.offset.z", offsetZ);
+ this.worldConfiguration.set(path + ".road.offset.z", offsetZ);
}
final String world = SetupUtils.manager.setupWorld(builder);
if (WorldUtil.IMP.isWorld(world)) {
@@ -351,7 +363,8 @@ public class Area extends SubCommand {
PlotAreaBuilder builder = new PlotAreaBuilder();
builder.worldName(split[0]);
final HybridPlotWorld pa = new HybridPlotWorld(builder.worldName(), id,
- PlotSquared.platform().getDefaultGenerator(), null, null, this.eventDispatcher, this.plotListener);
+ PlotSquared.platform().getDefaultGenerator(), null, null, this.eventDispatcher,
+ this.plotListener, this.worldConfiguration);
PlotArea other = this.plotAreaManager.getPlotArea(pa.getWorldName(), id);
if (other != null && Objects.equals(pa.getId(), other.getId())) {
Captions.SETUP_WORLD_TAKEN.send(player, pa.toString());
@@ -433,11 +446,10 @@ public class Area extends SubCommand {
}
Runnable run = () -> {
String path = "worlds." + pa.getWorldName();
- if (!PlotSquared.get().worlds.contains(path)) {
- PlotSquared.get().worlds.createSection(path);
+ if (!this.worldConfiguration.contains(path)) {
+ this.worldConfiguration.createSection(path);
}
- ConfigurationSection section =
- PlotSquared.get().worlds.getConfigurationSection(path);
+ ConfigurationSection section = this.worldConfiguration.getConfigurationSection(path);
pa.saveConfiguration(section);
pa.loadConfiguration(section);
builder.plotManager(PlotSquared.platform().getPluginName());
@@ -453,7 +465,7 @@ public class Area extends SubCommand {
.getWorldName());
}
try {
- PlotSquared.get().worlds.save(PlotSquared.get().worldsFile);
+ this.worldConfiguration.save(this.worldFile);
} catch (IOException e) {
e.printStackTrace();
}
diff --git a/Core/src/main/java/com/plotsquared/core/command/DatabaseCommand.java b/Core/src/main/java/com/plotsquared/core/command/DatabaseCommand.java
index d95e05087..4c7c78b20 100644
--- a/Core/src/main/java/com/plotsquared/core/command/DatabaseCommand.java
+++ b/Core/src/main/java/com/plotsquared/core/command/DatabaseCommand.java
@@ -26,6 +26,8 @@
package com.plotsquared.core.command;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.WorldConfig;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.database.DBFunc;
import com.plotsquared.core.database.Database;
import com.plotsquared.core.database.MySQL;
@@ -64,12 +66,14 @@ public class DatabaseCommand extends SubCommand {
private final PlotAreaManager plotAreaManager;
private final EventDispatcher eventDispatcher;
private final PlotListener plotListener;
+ private final YamlConfiguration worldConfiguration;
public DatabaseCommand(@NotNull final PlotAreaManager plotAreaManager, @NotNull final EventDispatcher eventDispatcher,
- @NotNull final PlotListener plotListener) {
+ @NotNull final PlotListener plotListener, @WorldConfig @NotNull final YamlConfiguration worldConfiguration) {
this.plotAreaManager = plotAreaManager;
this.eventDispatcher = eventDispatcher;
this.plotListener = plotListener;
+ this.worldConfiguration = worldConfiguration;
}
public static void insertPlots(final SQLManager manager, final List plots,
@@ -127,7 +131,7 @@ public class DatabaseCommand extends SubCommand {
MainUtil.sendMessage(player, "&6Starting...");
implementation = new SQLite(file);
SQLManager manager = new SQLManager(implementation, args.length == 3 ? args[2] : "",
- this.eventDispatcher, this.plotListener);
+ this.eventDispatcher, this.plotListener, this.worldConfiguration);
HashMap> map = manager.getPlots();
plots = new ArrayList<>();
for (Entry> entry : map.entrySet()) {
@@ -202,7 +206,7 @@ public class DatabaseCommand extends SubCommand {
return MainUtil.sendMessage(player, "/plot database [sqlite/mysql]");
}
try {
- SQLManager manager = new SQLManager(implementation, prefix, this.eventDispatcher, this.plotListener);
+ SQLManager manager = new SQLManager(implementation, prefix, this.eventDispatcher, this.plotListener, this.worldConfiguration);
DatabaseCommand.insertPlots(manager, plots, player);
return true;
} catch (ClassNotFoundException | SQLException e) {
diff --git a/Core/src/main/java/com/plotsquared/core/command/DebugExec.java b/Core/src/main/java/com/plotsquared/core/command/DebugExec.java
index 1d7c5901f..0006a6d83 100644
--- a/Core/src/main/java/com/plotsquared/core/command/DebugExec.java
+++ b/Core/src/main/java/com/plotsquared/core/command/DebugExec.java
@@ -60,8 +60,10 @@ import com.plotsquared.core.util.task.RunnableVal;
import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3;
import com.plotsquared.core.util.task.TaskManager;
+import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.world.block.BlockState;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import javax.script.Bindings;
import javax.script.ScriptContext;
@@ -87,12 +89,15 @@ public class DebugExec extends SubCommand {
private final PlotAreaManager plotAreaManager;
private final EventDispatcher eventDispatcher;
+ private final WorldEdit worldEdit;
private ScriptEngine engine;
private Bindings scope;
- public DebugExec(@NotNull final PlotAreaManager plotAreaManager, @NotNull final EventDispatcher eventDispatcher) {
+ public DebugExec(@NotNull final PlotAreaManager plotAreaManager, @NotNull final EventDispatcher eventDispatcher,
+ @Nullable final WorldEdit worldEdit) {
this.plotAreaManager = plotAreaManager;
this.eventDispatcher = eventDispatcher;
+ this.worldEdit = worldEdit;
init();
/*
try {
@@ -164,7 +169,7 @@ public class DebugExec extends SubCommand {
this.scope.put("PS", PlotSquared.get());
this.scope.put("GlobalBlockQueue", GlobalBlockQueue.IMP);
this.scope.put("ExpireManager", ExpireManager.IMP);
- if (PlotSquared.get().worldedit != null) {
+ if (this.worldEdit != null) {
this.scope.put("WEManager", new WEManager());
}
this.scope.put("TaskManager", TaskManager.IMP);
diff --git a/Core/src/main/java/com/plotsquared/core/command/DebugPaste.java b/Core/src/main/java/com/plotsquared/core/command/DebugPaste.java
index be5754cdb..aa1c80b21 100644
--- a/Core/src/main/java/com/plotsquared/core/command/DebugPaste.java
+++ b/Core/src/main/java/com/plotsquared/core/command/DebugPaste.java
@@ -28,6 +28,8 @@ package com.plotsquared.core.command;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.ConfigFile;
+import com.plotsquared.core.annoations.WorldFile;
import com.plotsquared.core.configuration.Captions;
import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.player.PlotPlayer;
@@ -36,6 +38,7 @@ import com.plotsquared.core.util.PremiumVerification;
import com.plotsquared.core.util.net.IncendoPaster;
import com.plotsquared.core.util.task.TaskManager;
import lombok.NonNull;
+import org.jetbrains.annotations.NotNull;
import java.io.BufferedReader;
import java.io.File;
@@ -59,6 +62,15 @@ import java.util.stream.Collectors;
requiredType = RequiredType.NONE)
public class DebugPaste extends SubCommand {
+ private final File configFile;
+ private final File worldfile;
+
+ public DebugPaste(@ConfigFile @NotNull final File configFile,
+ @WorldFile @NotNull final File worldFile) {
+ this.configFile = configFile;
+ this.worldfile = worldFile;
+ }
+
private static String readFile(@NonNull final File file) throws IOException {
final List lines;
try (final BufferedReader reader = new BufferedReader(new FileReader(file))) {
@@ -142,13 +154,13 @@ public class DebugPaste extends SubCommand {
try {
incendoPaster.addFile(new IncendoPaster.PasteFile("settings.yml",
- readFile(PlotSquared.get().configFile)));
+ readFile(this.configFile)));
} catch (final IllegalArgumentException ignored) {
MainUtil.sendMessage(player, "&cSkipping settings.yml because it's empty");
}
try {
incendoPaster.addFile(new IncendoPaster.PasteFile("worlds.yml",
- readFile(PlotSquared.get().worldsFile)));
+ readFile(this.worldfile)));
} catch (final IllegalArgumentException ignored) {
MainUtil.sendMessage(player, "&cSkipping worlds.yml because it's empty");
}
diff --git a/Core/src/main/java/com/plotsquared/core/command/MainCommand.java b/Core/src/main/java/com/plotsquared/core/command/MainCommand.java
index 25fe955c9..80692cca6 100644
--- a/Core/src/main/java/com/plotsquared/core/command/MainCommand.java
+++ b/Core/src/main/java/com/plotsquared/core/command/MainCommand.java
@@ -28,6 +28,7 @@ package com.plotsquared.core.command;
import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.configuration.Captions;
import com.plotsquared.core.configuration.Settings;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.listener.PlotListener;
import com.plotsquared.core.location.Location;
import com.plotsquared.core.player.ConsolePlayer;
@@ -41,7 +42,9 @@ import com.plotsquared.core.util.Expression;
import com.plotsquared.core.util.Permissions;
import com.plotsquared.core.util.task.RunnableVal2;
import com.plotsquared.core.util.task.RunnableVal3;
+import com.sk89q.worldedit.WorldEdit;
+import java.io.File;
import java.util.Arrays;
import java.util.concurrent.CompletableFuture;
@@ -68,17 +71,20 @@ public class MainCommand extends Command {
final PlotAreaManager plotAreaManager = PlotSquared.get().getPlotAreaManager();
final EventDispatcher eventDispatcher = PlotSquared.get().getEventDispatcher();
final PlotListener plotListener = PlotSquared.get().getPlotListener();
+ final YamlConfiguration worldconfiguration = PlotSquared.get().getWorldConfiguration();
+ final File worldFile = PlotSquared.get().getWorldsFile();
+ final WorldEdit worldEdit = PlotSquared.get().getWorldedit();
new Caps();
new Buy(eventDispatcher);
new Save(plotAreaManager);
new Load(plotAreaManager);
new Confirm();
- new Template(plotAreaManager);
+ new Template(plotAreaManager, worldconfiguration, worldFile);
new Download(plotAreaManager);
- new Template(plotAreaManager);
+ new Template(plotAreaManager, worldconfiguration, worldFile);
new Setup();
- new Area(plotAreaManager, eventDispatcher, plotListener);
+ new Area(plotAreaManager, eventDispatcher, plotListener, worldconfiguration, worldFile);
new DebugSaveTest();
new DebugLoadTest();
new CreateRoadSchematic();
@@ -103,20 +109,20 @@ public class MainCommand extends Command {
new SchematicCmd(plotAreaManager);
new PluginCmd();
new Purge(plotAreaManager, plotListener);
- new Reload(plotAreaManager);
+ new Reload(plotAreaManager, worldconfiguration, worldFile);
new Relight();
new Merge(eventDispatcher);
- new DebugPaste();
+ new DebugPaste(PlotSquared.get().getConfigFile(), PlotSquared.get().getWorldsFile());
new Unlink(eventDispatcher);
new Kick(plotAreaManager);
new Inbox();
new Comment();
- new DatabaseCommand(plotAreaManager, eventDispatcher, plotListener);
+ new DatabaseCommand(plotAreaManager, eventDispatcher, plotListener, worldconfiguration);
new Swap();
new Music();
new DebugRoadRegen();
new Trust(eventDispatcher);
- new DebugExec(plotAreaManager, eventDispatcher);
+ new DebugExec(plotAreaManager, eventDispatcher, worldEdit);
new FlagCommand();
new Target();
new Move(plotAreaManager);
diff --git a/Core/src/main/java/com/plotsquared/core/command/Reload.java b/Core/src/main/java/com/plotsquared/core/command/Reload.java
index 05067c837..0bf49442c 100644
--- a/Core/src/main/java/com/plotsquared/core/command/Reload.java
+++ b/Core/src/main/java/com/plotsquared/core/command/Reload.java
@@ -26,6 +26,8 @@
package com.plotsquared.core.command;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.WorldConfig;
+import com.plotsquared.core.annoations.WorldFile;
import com.plotsquared.core.configuration.Captions;
import com.plotsquared.core.configuration.ConfigurationSection;
import com.plotsquared.core.configuration.MemorySection;
@@ -36,6 +38,7 @@ import com.plotsquared.core.plot.world.PlotAreaManager;
import com.plotsquared.core.util.MainUtil;
import org.jetbrains.annotations.NotNull;
+import java.io.File;
import java.io.IOException;
import java.util.Objects;
@@ -48,9 +51,15 @@ import java.util.Objects;
public class Reload extends SubCommand {
private final PlotAreaManager plotAreaManager;
+ private final YamlConfiguration worldConfiguration;
+ private final File worldFile;
- public Reload(@NotNull final PlotAreaManager plotAreaManager) {
+ public Reload(@NotNull final PlotAreaManager plotAreaManager,
+ @WorldConfig @NotNull final YamlConfiguration worldConfiguration,
+ @WorldFile @NotNull final File worldFile) {
this.plotAreaManager = plotAreaManager;
+ this.worldConfiguration = worldConfiguration;
+ this.worldFile = worldFile;
}
@Override public boolean onCommand(PlotPlayer> player, String[] args) {
@@ -60,7 +69,7 @@ public class Reload extends SubCommand {
PlotSquared.get().setupConfigs();
Captions.load(PlotSquared.get().translationFile);
this.plotAreaManager.forEachPlotArea(area -> {
- ConfigurationSection worldSection = PlotSquared.get().worlds
+ ConfigurationSection worldSection = this.worldConfiguration
.getConfigurationSection("worlds." + area.getWorldName());
if (worldSection == null) {
return;
@@ -106,7 +115,7 @@ public class Reload extends SubCommand {
area.loadDefaultConfiguration(clone);
}
});
- PlotSquared.get().worlds.save(PlotSquared.get().worldsFile);
+ this.worldConfiguration.save(this.worldFile);
MainUtil.sendMessage(player, Captions.RELOADED_CONFIGS);
} catch (IOException e) {
e.printStackTrace();
diff --git a/Core/src/main/java/com/plotsquared/core/command/Template.java b/Core/src/main/java/com/plotsquared/core/command/Template.java
index 311927565..14290282d 100644
--- a/Core/src/main/java/com/plotsquared/core/command/Template.java
+++ b/Core/src/main/java/com/plotsquared/core/command/Template.java
@@ -26,6 +26,8 @@
package com.plotsquared.core.command;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.WorldConfig;
+import com.plotsquared.core.annoations.WorldFile;
import com.plotsquared.core.configuration.Captions;
import com.plotsquared.core.configuration.ConfigurationNode;
import com.plotsquared.core.configuration.ConfigurationSection;
@@ -64,9 +66,15 @@ import java.util.zip.ZipOutputStream;
public class Template extends SubCommand {
private final PlotAreaManager plotAreaManager;
+ private final YamlConfiguration worldConfiguration;
+ private final File worldFile;
- public Template(@NotNull final PlotAreaManager plotAreaManager) {
+ public Template(@NotNull final PlotAreaManager plotAreaManager,
+ @WorldConfig @NotNull final YamlConfiguration worldConfiguration,
+ @WorldFile @NotNull final File worldFile) {
this.plotAreaManager = plotAreaManager;
+ this.worldConfiguration = worldConfiguration;
+ this.worldFile = worldFile;
}
public static boolean extractAllFiles(String world, String template) {
@@ -113,8 +121,7 @@ public class Template extends SubCommand {
}
public static byte[] getBytes(PlotArea plotArea) {
- ConfigurationSection section =
- PlotSquared.get().worlds.getConfigurationSection("worlds." + plotArea.getWorldName());
+ ConfigurationSection section = PlotSquared.get().getWorldConfiguration().getConfigurationSection("worlds." + plotArea.getWorldName());
YamlConfiguration config = new YamlConfiguration();
String generator = SetupUtils.manager.getGenerator(plotArea);
if (generator != null) {
@@ -180,10 +187,10 @@ public class Template extends SubCommand {
File worldFile = MainUtil.getFile(PlotSquared.platform().getDirectory(),
Settings.Paths.TEMPLATES + File.separator + "tmp-data.yml");
YamlConfiguration worldConfig = YamlConfiguration.loadConfiguration(worldFile);
- PlotSquared.get().worlds.set("worlds." + world, worldConfig.get(""));
+ this.worldConfiguration.set("worlds." + world, worldConfig.get(""));
try {
- PlotSquared.get().worlds.save(PlotSquared.get().worldsFile);
- PlotSquared.get().worlds.load(PlotSquared.get().worldsFile);
+ this.worldConfiguration.save(this.worldFile);
+ this.worldConfiguration.load(this.worldFile);
} catch (InvalidConfigurationException | IOException e) {
e.printStackTrace();
}
diff --git a/Core/src/main/java/com/plotsquared/core/database/SQLManager.java b/Core/src/main/java/com/plotsquared/core/database/SQLManager.java
index ec6c61288..4226fc50b 100644
--- a/Core/src/main/java/com/plotsquared/core/database/SQLManager.java
+++ b/Core/src/main/java/com/plotsquared/core/database/SQLManager.java
@@ -27,10 +27,12 @@ package com.plotsquared.core.database;
import com.google.common.base.Charsets;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.WorldConfig;
import com.plotsquared.core.configuration.Captions;
import com.plotsquared.core.configuration.ConfigurationSection;
import com.plotsquared.core.configuration.Settings;
import com.plotsquared.core.configuration.Storage;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.listener.PlotListener;
import com.plotsquared.core.location.BlockLoc;
import com.plotsquared.core.plot.Plot;
@@ -132,6 +134,7 @@ public class SQLManager implements AbstractDB {
private final EventDispatcher eventDispatcher;
private final PlotListener plotListener;
+ private final YamlConfiguration worldConfiguration;
/**
* Constructor
@@ -141,12 +144,16 @@ public class SQLManager implements AbstractDB {
* @throws SQLException
* @throws ClassNotFoundException
*/
- public SQLManager(final Database database, String prefix,
- @NotNull final EventDispatcher eventDispatcher, @NotNull final PlotListener plotListener)
+ public SQLManager(@NotNull final Database database,
+ @NotNull final String prefix,
+ @NotNull final EventDispatcher eventDispatcher,
+ @NotNull final PlotListener plotListener,
+ @WorldConfig @NotNull final YamlConfiguration worldConfiguration)
throws SQLException, ClassNotFoundException {
// Private final
this.eventDispatcher = eventDispatcher;
this.plotListener = plotListener;
+ this.worldConfiguration = worldConfiguration;
this.database = database;
this.connection = database.openConnection();
this.mySQL = database instanceof MySQL;
@@ -1750,9 +1757,8 @@ public class SQLManager implements AbstractDB {
HashMap plots = new HashMap<>();
try {
HashSet areas = new HashSet<>();
- if (PlotSquared.get().worlds.contains("worlds")) {
- ConfigurationSection worldSection =
- PlotSquared.get().worlds.getConfigurationSection("worlds");
+ if (this.worldConfiguration.contains("worlds")) {
+ ConfigurationSection worldSection = this.worldConfiguration.getConfigurationSection("worlds");
if (worldSection != null) {
for (String worldKey : worldSection.getKeys(false)) {
areas.add(worldKey);
@@ -2714,9 +2720,8 @@ public class SQLManager implements AbstractDB {
HashMap clusters = new HashMap<>();
try {
HashSet areas = new HashSet<>();
- if (PlotSquared.get().worlds.contains("worlds")) {
- ConfigurationSection worldSection =
- PlotSquared.get().worlds.getConfigurationSection("worlds");
+ if (this.worldConfiguration.contains("worlds")) {
+ ConfigurationSection worldSection = this.worldConfiguration.getConfigurationSection("worlds");
if (worldSection != null) {
for (String worldKey : worldSection.getKeys(false)) {
areas.add(worldKey);
diff --git a/Core/src/main/java/com/plotsquared/core/generator/ClassicPlotWorld.java b/Core/src/main/java/com/plotsquared/core/generator/ClassicPlotWorld.java
index 52dcf6ccd..b1860b0f9 100644
--- a/Core/src/main/java/com/plotsquared/core/generator/ClassicPlotWorld.java
+++ b/Core/src/main/java/com/plotsquared/core/generator/ClassicPlotWorld.java
@@ -25,15 +25,18 @@
*/
package com.plotsquared.core.generator;
+import com.plotsquared.core.annoations.WorldConfig;
import com.plotsquared.core.configuration.ConfigurationNode;
import com.plotsquared.core.configuration.ConfigurationSection;
import com.plotsquared.core.configuration.ConfigurationUtil;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.listener.PlotListener;
import com.plotsquared.core.plot.BlockBucket;
import com.plotsquared.core.plot.PlotId;
import com.plotsquared.core.util.EventDispatcher;
import com.sk89q.worldedit.world.block.BlockTypes;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
@SuppressWarnings("WeakerAccess")
public abstract class ClassicPlotWorld extends SquarePlotWorld {
@@ -55,10 +58,15 @@ public abstract class ClassicPlotWorld extends SquarePlotWorld {
// BlockUtil.get((short) 155, (byte) 0);
public boolean PLOT_BEDROCK = true;
- public ClassicPlotWorld(String worldName, String id,
- @NotNull IndependentPlotGenerator generator, PlotId min, PlotId max, @NotNull final
- EventDispatcher eventDispatcher, @NotNull final PlotListener plotListener) {
- super(worldName, id, generator, min, max, eventDispatcher, plotListener);
+ public ClassicPlotWorld(@NotNull final String worldName,
+ @Nullable final String id,
+ @NotNull final IndependentPlotGenerator generator,
+ @NotNull final PlotId min,
+ @NotNull final PlotId max,
+ @NotNull final EventDispatcher eventDispatcher,
+ @NotNull final PlotListener plotListener,
+ @WorldConfig @NotNull final YamlConfiguration worldConfiguration) {
+ super(worldName, id, generator, min, max, eventDispatcher, plotListener, worldConfiguration);
}
/**
diff --git a/Core/src/main/java/com/plotsquared/core/generator/GridPlotWorld.java b/Core/src/main/java/com/plotsquared/core/generator/GridPlotWorld.java
index 9219cf2b5..3ba66db50 100644
--- a/Core/src/main/java/com/plotsquared/core/generator/GridPlotWorld.java
+++ b/Core/src/main/java/com/plotsquared/core/generator/GridPlotWorld.java
@@ -25,6 +25,8 @@
*/
package com.plotsquared.core.generator;
+import com.plotsquared.core.annoations.WorldConfig;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.listener.PlotListener;
import com.plotsquared.core.plot.PlotArea;
import com.plotsquared.core.plot.PlotId;
@@ -37,7 +39,7 @@ public abstract class GridPlotWorld extends PlotArea {
public GridPlotWorld(String worldName, String id, @NotNull IndependentPlotGenerator generator,
PlotId min, PlotId max, @NotNull final EventDispatcher eventDispatcher, @NotNull final
- PlotListener plotListener) {
- super(worldName, id, generator, min, max, eventDispatcher, plotListener);
+ PlotListener plotListener, @WorldConfig @NotNull final YamlConfiguration worldConfiguration) {
+ super(worldName, id, generator, min, max, eventDispatcher, plotListener, worldConfiguration);
}
}
diff --git a/Core/src/main/java/com/plotsquared/core/generator/HybridGen.java b/Core/src/main/java/com/plotsquared/core/generator/HybridGen.java
index 4014ddc8f..c7191f4c3 100644
--- a/Core/src/main/java/com/plotsquared/core/generator/HybridGen.java
+++ b/Core/src/main/java/com/plotsquared/core/generator/HybridGen.java
@@ -27,7 +27,9 @@ package com.plotsquared.core.generator;
import com.google.common.base.Preconditions;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.WorldConfig;
import com.plotsquared.core.configuration.Settings;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.listener.PlotListener;
import com.plotsquared.core.location.Location;
import com.plotsquared.core.plot.PlotArea;
@@ -38,13 +40,21 @@ import com.plotsquared.core.util.MathMan;
import com.sk89q.worldedit.world.biome.BiomeType;
import com.sk89q.worldedit.world.block.BaseBlock;
import com.sk89q.worldedit.world.block.BlockTypes;
-import lombok.RequiredArgsConstructor;
import org.jetbrains.annotations.NotNull;
-@RequiredArgsConstructor public class HybridGen extends IndependentPlotGenerator {
+public class HybridGen extends IndependentPlotGenerator {
private final EventDispatcher eventDispatcher;
private final PlotListener plotListener;
+ private final YamlConfiguration worldConfiguration;
+
+ public HybridGen(@NotNull final EventDispatcher eventDispatcher,
+ @NotNull final PlotListener plotListener,
+ @WorldConfig @NotNull final YamlConfiguration worldConfiguration) {
+ this.eventDispatcher = eventDispatcher;
+ this.plotListener = plotListener;
+ this.worldConfiguration = worldConfiguration;
+ }
@Override public String getName() {
return PlotSquared.platform().getPluginName();
@@ -227,7 +237,8 @@ import org.jetbrains.annotations.NotNull;
}
@Override public PlotArea getNewPlotArea(String world, String id, PlotId min, PlotId max) {
- return new HybridPlotWorld(world, id, this, min, max, this.eventDispatcher, this.plotListener);
+ return new HybridPlotWorld(world, id, this, min, max, this.eventDispatcher,
+ this.plotListener, this.worldConfiguration);
}
@Override public void initialize(PlotArea area) {
diff --git a/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java b/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java
index 4394de75e..246c89f3c 100644
--- a/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java
+++ b/Core/src/main/java/com/plotsquared/core/generator/HybridPlotWorld.java
@@ -26,9 +26,11 @@
package com.plotsquared.core.generator;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.WorldConfig;
import com.plotsquared.core.configuration.Captions;
import com.plotsquared.core.configuration.ConfigurationSection;
import com.plotsquared.core.configuration.Settings;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.listener.PlotListener;
import com.plotsquared.core.location.Location;
import com.plotsquared.core.plot.Plot;
@@ -74,10 +76,15 @@ public class HybridPlotWorld extends ClassicPlotWorld {
private Location SIGN_LOCATION;
@Getter private File root = null;
- public HybridPlotWorld(String worldName, String id, @NotNull IndependentPlotGenerator generator,
- PlotId min, PlotId max, @NotNull final EventDispatcher eventDispatcher, @NotNull final
- PlotListener plotListener) {
- super(worldName, id, generator, min, max, eventDispatcher, plotListener);
+ public HybridPlotWorld(final String worldName,
+ final String id,
+ @NotNull final IndependentPlotGenerator generator,
+ final PlotId min,
+ final PlotId max,
+ @NotNull final EventDispatcher eventDispatcher,
+ @NotNull final PlotListener plotListener,
+ @WorldConfig @NotNull final YamlConfiguration worldConfiguration) {
+ super(worldName, id, generator, min, max, eventDispatcher, plotListener, worldConfiguration);
}
public static byte wrap(byte data, int start) {
@@ -188,7 +195,7 @@ public class HybridPlotWorld extends ClassicPlotWorld {
}
}
- @Override public boolean isCompatible(PlotArea plotArea) {
+ @Override public boolean isCompatible(@NotNull final PlotArea plotArea) {
if (!(plotArea instanceof SquarePlotWorld)) {
return false;
}
diff --git a/Core/src/main/java/com/plotsquared/core/generator/SquarePlotWorld.java b/Core/src/main/java/com/plotsquared/core/generator/SquarePlotWorld.java
index 8a7f8667b..7d026f59a 100644
--- a/Core/src/main/java/com/plotsquared/core/generator/SquarePlotWorld.java
+++ b/Core/src/main/java/com/plotsquared/core/generator/SquarePlotWorld.java
@@ -26,7 +26,9 @@
package com.plotsquared.core.generator;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.WorldConfig;
import com.plotsquared.core.configuration.ConfigurationSection;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.listener.PlotListener;
import com.plotsquared.core.plot.PlotId;
import com.plotsquared.core.util.EventDispatcher;
@@ -41,8 +43,8 @@ public abstract class SquarePlotWorld extends GridPlotWorld {
public SquarePlotWorld(String worldName, String id, @NotNull IndependentPlotGenerator generator,
PlotId min, PlotId max, @NotNull final EventDispatcher eventDispatcher, @NotNull final
- PlotListener plotListener) {
- super(worldName, id, generator, min, max, eventDispatcher, plotListener);
+ PlotListener plotListener, @WorldConfig @NotNull final YamlConfiguration worldConfiguration) {
+ super(worldName, id, generator, min, max, eventDispatcher, plotListener, worldConfiguration);
}
@Override public void loadConfiguration(ConfigurationSection config) {
diff --git a/Core/src/main/java/com/plotsquared/core/plot/PlotArea.java b/Core/src/main/java/com/plotsquared/core/plot/PlotArea.java
index af5a169e4..f07aed20e 100644
--- a/Core/src/main/java/com/plotsquared/core/plot/PlotArea.java
+++ b/Core/src/main/java/com/plotsquared/core/plot/PlotArea.java
@@ -28,6 +28,7 @@ package com.plotsquared.core.plot;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.WorldConfig;
import com.plotsquared.core.collection.QuadMap;
import com.plotsquared.core.configuration.CaptionUtility;
import com.plotsquared.core.configuration.Captions;
@@ -35,6 +36,7 @@ import com.plotsquared.core.configuration.ConfigurationNode;
import com.plotsquared.core.configuration.ConfigurationSection;
import com.plotsquared.core.configuration.ConfigurationUtil;
import com.plotsquared.core.configuration.Settings;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.generator.GridPlotWorld;
import com.plotsquared.core.generator.IndependentPlotGenerator;
import com.plotsquared.core.listener.PlotListener;
@@ -137,11 +139,12 @@ public abstract class PlotArea {
private final EventDispatcher eventDispatcher;
private final PlotListener plotListener;
+ private final YamlConfiguration worldConfiguration;
public PlotArea(@NotNull final String worldName, @Nullable final String id,
@NotNull IndependentPlotGenerator generator, @Nullable final PlotId min,
@Nullable final PlotId max, @NotNull final EventDispatcher eventDispatcher,
- @NotNull final PlotListener plotListener) {
+ @NotNull final PlotListener plotListener, @WorldConfig @Nullable final YamlConfiguration worldConfiguration) {
this.worldName = worldName;
this.id = id;
this.plotManager = createManager();
@@ -160,6 +163,7 @@ public abstract class PlotArea {
this.worldHash = worldName.hashCode();
this.eventDispatcher = eventDispatcher;
this.plotListener = plotListener;
+ this.worldConfiguration = worldConfiguration;
}
@NotNull protected abstract PlotManager createManager();
@@ -242,8 +246,8 @@ public abstract class PlotArea {
* @param plotArea the {@code PlotArea} to compare
* @return true if both areas are compatible
*/
- public boolean isCompatible(PlotArea plotArea) {
- ConfigurationSection section = PlotSquared.get().worlds.getConfigurationSection("worlds");
+ public boolean isCompatible(@NotNull final PlotArea plotArea) {
+ final ConfigurationSection section = this.worldConfiguration.getConfigurationSection("worlds");
for (ConfigurationNode setting : plotArea.getSettingNodes()) {
Object constant = section.get(plotArea.worldName + '.' + setting.getConstant());
if (constant == null || !constant
diff --git a/Core/src/main/java/com/plotsquared/core/plot/expiration/PlotAnalysis.java b/Core/src/main/java/com/plotsquared/core/plot/expiration/PlotAnalysis.java
index 7819aa2a7..c0ec0f4c1 100644
--- a/Core/src/main/java/com/plotsquared/core/plot/expiration/PlotAnalysis.java
+++ b/Core/src/main/java/com/plotsquared/core/plot/expiration/PlotAnalysis.java
@@ -390,7 +390,7 @@ public class PlotAnalysis {
// Save calibration
PlotSquared.debug(" $1Saving calibration");
Settings.AUTO_CLEAR.put("auto-calibrated", settings);
- Settings.save(PlotSquared.get().worldsFile);
+ Settings.save(PlotSquared.get().getWorldsFile());
PlotSquared.debug("$1Done!");
running = false;
for (Plot plot : plots) {
diff --git a/Core/src/main/java/com/plotsquared/core/plot/world/SinglePlotArea.java b/Core/src/main/java/com/plotsquared/core/plot/world/SinglePlotArea.java
index 06c15182c..49bd4c339 100644
--- a/Core/src/main/java/com/plotsquared/core/plot/world/SinglePlotArea.java
+++ b/Core/src/main/java/com/plotsquared/core/plot/world/SinglePlotArea.java
@@ -26,9 +26,11 @@
package com.plotsquared.core.plot.world;
import com.plotsquared.core.PlotSquared;
+import com.plotsquared.core.annoations.WorldConfig;
import com.plotsquared.core.configuration.ConfigurationNode;
import com.plotsquared.core.configuration.ConfigurationSection;
import com.plotsquared.core.configuration.ConfigurationUtil;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.generator.GridPlotWorld;
import com.plotsquared.core.generator.SingleWorldGenerator;
import com.plotsquared.core.listener.PlotListener;
@@ -61,8 +63,11 @@ public class SinglePlotArea extends GridPlotWorld {
private final EventDispatcher eventDispatcher;
private final PlotListener plotListener;
- public SinglePlotArea(@NotNull final PlotAreaManager plotAreaManager, @NotNull final EventDispatcher eventDispatcher, @NotNull final PlotListener plotListener) {
- super("*", null, new SingleWorldGenerator(plotAreaManager), null, null, eventDispatcher, plotListener);
+ public SinglePlotArea(@NotNull final PlotAreaManager plotAreaManager,
+ @NotNull final EventDispatcher eventDispatcher,
+ @NotNull final PlotListener plotListener,
+ @WorldConfig @NotNull final YamlConfiguration worldConfiguration) {
+ super("*", null, new SingleWorldGenerator(plotAreaManager), null, null, eventDispatcher, plotListener, worldConfiguration);
this.eventDispatcher = eventDispatcher;
this.plotListener = plotListener;
this.setAllowSigns(false);
diff --git a/Core/src/main/java/com/plotsquared/core/plot/world/SinglePlotAreaManager.java b/Core/src/main/java/com/plotsquared/core/plot/world/SinglePlotAreaManager.java
index c478d8663..195d9b2fa 100644
--- a/Core/src/main/java/com/plotsquared/core/plot/world/SinglePlotAreaManager.java
+++ b/Core/src/main/java/com/plotsquared/core/plot/world/SinglePlotAreaManager.java
@@ -25,7 +25,9 @@
*/
package com.plotsquared.core.plot.world;
+import com.plotsquared.core.annoations.WorldConfig;
import com.plotsquared.core.collection.ArrayUtil;
+import com.plotsquared.core.configuration.file.YamlConfiguration;
import com.plotsquared.core.generator.SingleWorldGenerator;
import com.plotsquared.core.listener.PlotListener;
import com.plotsquared.core.location.Location;
@@ -42,9 +44,10 @@ public class SinglePlotAreaManager extends DefaultPlotAreaManager {
private SinglePlotArea area;
private PlotArea[] all;
- public SinglePlotAreaManager(@NotNull final EventDispatcher eventDispatcher, @NotNull final
- PlotListener plotListener) {
- this.area = new SinglePlotArea(this, eventDispatcher, plotListener);
+ public SinglePlotAreaManager(@NotNull final EventDispatcher eventDispatcher,
+ @NotNull final PlotListener plotListener,
+ @WorldConfig @NotNull final YamlConfiguration worldConfiguration) {
+ this.area = new SinglePlotArea(this, eventDispatcher, plotListener, worldConfiguration);
this.array = new SinglePlotArea[] {area};
this.all = new PlotArea[] {area};
SetupUtils.generators.put("PlotSquared:single",
diff --git a/Core/src/main/java/com/plotsquared/core/util/EventDispatcher.java b/Core/src/main/java/com/plotsquared/core/util/EventDispatcher.java
index cb554b754..c70ed6002 100644
--- a/Core/src/main/java/com/plotsquared/core/util/EventDispatcher.java
+++ b/Core/src/main/java/com/plotsquared/core/util/EventDispatcher.java
@@ -26,7 +26,6 @@
package com.plotsquared.core.util;
import com.google.common.eventbus.EventBus;
-import com.plotsquared.core.PlotSquared;
import com.plotsquared.core.configuration.CaptionUtility;
import com.plotsquared.core.configuration.Captions;
import com.plotsquared.core.configuration.Settings;
@@ -69,10 +68,12 @@ import com.plotsquared.core.plot.flag.implementations.VehiclePlaceFlag;
import com.plotsquared.core.plot.flag.types.BlockTypeWrapper;
import com.plotsquared.core.plot.world.SinglePlotArea;
import com.plotsquared.core.util.task.TaskManager;
+import com.sk89q.worldedit.WorldEdit;
import com.sk89q.worldedit.function.pattern.Pattern;
import com.sk89q.worldedit.world.block.BlockType;
import com.sk89q.worldedit.world.block.BlockTypes;
import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
@@ -80,9 +81,13 @@ import java.util.UUID;
public class EventDispatcher {
- private EventBus eventBus = new EventBus("PlotSquaredEvents");
+ private final EventBus eventBus = new EventBus("PlotSquaredEvents");
+ private final List