Update README / pom / merge with 8629c4a6f5

closes #809
This commit is contained in:
Jesse Boyd 2016-01-11 07:00:56 +11:00
parent 00b6158181
commit af79100f7d
79 changed files with 946 additions and 939 deletions

View File

@ -17,8 +17,8 @@ is to provide a lag-free and smooth experience.
### Developer Resources
* *Outdated* [JavaDocs](http://empcraft.com/plotsquared/doc/)
* [~~Build Server~~](http://ci.intellectualsites.com/job/PlotSquared/)
* [~~Maven Repo~~](http://mvn.intellectualsites.com/content/repositories/intellectualsites/)
* [~~Build Server~~](http://ci.xephi.fr/job/PlotSquared/)
* [~~Maven Repo~~](http://ci.xephi.fr/plugin/repository/everything/)
# Maven
@ -27,13 +27,13 @@ We're now on maven!
<!-- Repository -->
<repository>
<id>intellectualsites</id>
<url>http://mvn.intellectualsites.com/content/repositories/intellectualsites/</url>
<url>http://ci.xephi.fr/plugin/repository/everything/</url>
</repository>
<!-- Dependency -->
<dependency>
<groupId>com.intellectualcrafters</groupId>
<artifactId>PlotSquared</artifactId>
<version>2.12.9</version>
<version>3.2.24</version>
</dependency>
```

View File

@ -8,7 +8,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<artifactId>PlotSquared</artifactId>
<version>3.2.24</version>
<version>3.2.25</version>
<name>PlotSquared</name>
<packaging>jar</packaging>
<build>
@ -164,11 +164,6 @@
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>me.confuser</groupId>
<artifactId>BarAPI</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>

View File

@ -11,7 +11,7 @@ import java.util.Set;
* A type of {@link ConfigurationSection} that is stored in memory.
*/
public class MemorySection implements ConfigurationSection {
protected final Map<String, Object> map = new LinkedHashMap<String, Object>();
protected final Map<String, Object> map = new LinkedHashMap<>();
private final Configuration root;
private final ConfigurationSection parent;
private final String path;
@ -24,7 +24,8 @@ public class MemorySection implements ConfigurationSection {
if (obj instanceof String) {
try {
return Double.parseDouble((String) obj);
} catch (final Exception e) {}
} catch (NumberFormatException ignored) {
}
} else if (obj instanceof List) {
final List<?> val = ((List<?>) obj);
if (val.size() > 0) {
@ -41,7 +42,8 @@ public class MemorySection implements ConfigurationSection {
if (obj instanceof String) {
try {
return Integer.parseInt((String) obj);
} catch (final Exception e) {}
} catch (NumberFormatException ignored) {
}
} else if (obj instanceof List) {
final List<?> val = ((List<?>) obj);
if (val.size() > 0) {
@ -58,7 +60,8 @@ public class MemorySection implements ConfigurationSection {
if (obj instanceof String) {
try {
return Long.parseLong((String) obj);
} catch (final Exception e) {}
} catch (NumberFormatException ignored) {
}
} else if (obj instanceof List) {
final List<?> val = ((List<?>) obj);
if (val.size() > 0) {
@ -119,7 +122,7 @@ public class MemorySection implements ConfigurationSection {
@Override
public Set<String> getKeys(final boolean deep) {
final Set<String> result = new LinkedHashSet<String>();
final Set<String> result = new LinkedHashSet<>();
final Configuration root = getRoot();
if ((root != null) && root.options().copyDefaults()) {
@ -137,7 +140,7 @@ public class MemorySection implements ConfigurationSection {
@Override
public Map<String, Object> getValues(final boolean deep) {
final Map<String, Object> result = new LinkedHashMap<String, Object>();
final Map<String, Object> result = new LinkedHashMap<>();
final Configuration root = getRoot();
if ((root != null) && root.options().copyDefaults()) {
@ -462,10 +465,10 @@ public class MemorySection implements ConfigurationSection {
final List<?> list = getList(path);
if (list == null) {
return new ArrayList<String>(0);
return new ArrayList<>(0);
}
final List<String> result = new ArrayList<String>();
final List<String> result = new ArrayList<>();
for (final Object object : list) {
if ((object instanceof String) || (isPrimitiveWrapper(object))) {
@ -481,10 +484,10 @@ public class MemorySection implements ConfigurationSection {
final List<?> list = getList(path);
if (list == null) {
return new ArrayList<Integer>(0);
return new ArrayList<>(0);
}
final List<Integer> result = new ArrayList<Integer>();
final List<Integer> result = new ArrayList<>();
for (final Object object : list) {
if (object instanceof Integer) {
@ -492,9 +495,10 @@ public class MemorySection implements ConfigurationSection {
} else if (object instanceof String) {
try {
result.add(Integer.valueOf((String) object));
} catch (final Exception ex) {}
} catch (NumberFormatException ignored) {
}
} else if (object instanceof Character) {
result.add((int) ((Character) object).charValue());
result.add((int) (Character) object);
} else if (object instanceof Number) {
result.add(((Number) object).intValue());
}
@ -508,10 +512,10 @@ public class MemorySection implements ConfigurationSection {
final List<?> list = getList(path);
if (list == null) {
return new ArrayList<Boolean>(0);
return new ArrayList<>(0);
}
final List<Boolean> result = new ArrayList<Boolean>();
final List<Boolean> result = new ArrayList<>();
for (final Object object : list) {
if (object instanceof Boolean) {
@ -533,10 +537,10 @@ public class MemorySection implements ConfigurationSection {
final List<?> list = getList(path);
if (list == null) {
return new ArrayList<Double>(0);
return new ArrayList<>(0);
}
final List<Double> result = new ArrayList<Double>();
final List<Double> result = new ArrayList<>();
for (final Object object : list) {
if (object instanceof Double) {
@ -544,9 +548,10 @@ public class MemorySection implements ConfigurationSection {
} else if (object instanceof String) {
try {
result.add(Double.valueOf((String) object));
} catch (final Exception ex) {}
} catch (NumberFormatException ignored) {
}
} else if (object instanceof Character) {
result.add((double) ((Character) object).charValue());
result.add((double) (Character) object);
} else if (object instanceof Number) {
result.add(((Number) object).doubleValue());
}
@ -560,10 +565,10 @@ public class MemorySection implements ConfigurationSection {
final List<?> list = getList(path);
if (list == null) {
return new ArrayList<Float>(0);
return new ArrayList<>(0);
}
final List<Float> result = new ArrayList<Float>();
final List<Float> result = new ArrayList<>();
for (final Object object : list) {
if (object instanceof Float) {
@ -571,9 +576,10 @@ public class MemorySection implements ConfigurationSection {
} else if (object instanceof String) {
try {
result.add(Float.valueOf((String) object));
} catch (final Exception ex) {}
} catch (NumberFormatException ignored) {
}
} else if (object instanceof Character) {
result.add((float) ((Character) object).charValue());
result.add((float) (Character) object);
} else if (object instanceof Number) {
result.add(((Number) object).floatValue());
}
@ -587,10 +593,10 @@ public class MemorySection implements ConfigurationSection {
final List<?> list = getList(path);
if (list == null) {
return new ArrayList<Long>(0);
return new ArrayList<>(0);
}
final List<Long> result = new ArrayList<Long>();
final List<Long> result = new ArrayList<>();
for (final Object object : list) {
if (object instanceof Long) {
@ -598,9 +604,10 @@ public class MemorySection implements ConfigurationSection {
} else if (object instanceof String) {
try {
result.add(Long.valueOf((String) object));
} catch (final Exception ex) {}
} catch (NumberFormatException ignored) {
}
} else if (object instanceof Character) {
result.add((long) ((Character) object).charValue());
result.add((long) (Character) object);
} else if (object instanceof Number) {
result.add(((Number) object).longValue());
}
@ -614,10 +621,10 @@ public class MemorySection implements ConfigurationSection {
final List<?> list = getList(path);
if (list == null) {
return new ArrayList<Byte>(0);
return new ArrayList<>(0);
}
final List<Byte> result = new ArrayList<Byte>();
final List<Byte> result = new ArrayList<>();
for (final Object object : list) {
if (object instanceof Byte) {
@ -625,7 +632,8 @@ public class MemorySection implements ConfigurationSection {
} else if (object instanceof String) {
try {
result.add(Byte.valueOf((String) object));
} catch (final Exception ex) {}
} catch (NumberFormatException ignored) {
}
} else if (object instanceof Character) {
result.add((byte) ((Character) object).charValue());
} else if (object instanceof Number) {
@ -641,10 +649,10 @@ public class MemorySection implements ConfigurationSection {
final List<?> list = getList(path);
if (list == null) {
return new ArrayList<Character>(0);
return new ArrayList<>(0);
}
final List<Character> result = new ArrayList<Character>();
final List<Character> result = new ArrayList<>();
for (final Object object : list) {
if (object instanceof Character) {
@ -668,10 +676,10 @@ public class MemorySection implements ConfigurationSection {
final List<?> list = getList(path);
if (list == null) {
return new ArrayList<Short>(0);
return new ArrayList<>(0);
}
final List<Short> result = new ArrayList<Short>();
final List<Short> result = new ArrayList<>();
for (final Object object : list) {
if (object instanceof Short) {
@ -679,7 +687,8 @@ public class MemorySection implements ConfigurationSection {
} else if (object instanceof String) {
try {
result.add(Short.valueOf((String) object));
} catch (final Exception ex) {}
} catch (NumberFormatException ignored) {
}
} else if (object instanceof Character) {
result.add((short) ((Character) object).charValue());
} else if (object instanceof Number) {
@ -693,7 +702,7 @@ public class MemorySection implements ConfigurationSection {
@Override
public List<Map<?, ?>> getMapList(final String path) {
final List<?> list = getList(path);
final List<Map<?, ?>> result = new ArrayList<Map<?, ?>>();
final List<Map<?, ?>> result = new ArrayList<>();
if (list == null) {
return result;
@ -827,16 +836,14 @@ public class MemorySection implements ConfigurationSection {
final char separator = root.options().pathSeparator();
final StringBuilder builder = new StringBuilder();
if (section != null) {
for (ConfigurationSection parent = section; (parent != null) && (parent != relativeTo); parent = parent.getParent()) {
if (builder.length() > 0) {
builder.insert(0, separator);
}
builder.insert(0, parent.getName());
for (ConfigurationSection parent = section; (parent != null) && (parent != relativeTo); parent = parent.getParent()) {
if (builder.length() > 0) {
builder.insert(0, separator);
}
builder.insert(0, parent.getName());
}
if ((key != null) && (key.length() > 0)) {
if (builder.length() > 0) {
builder.append(separator);
@ -851,7 +858,7 @@ public class MemorySection implements ConfigurationSection {
@Override
public String toString() {
final Configuration root = getRoot();
return new StringBuilder().append(getClass().getSimpleName()).append("[path='").append(getCurrentPath()).append("', root='").append(root == null ? null : root.getClass().getSimpleName())
.append("']").toString();
return getClass().getSimpleName() + "[path='" + getCurrentPath() + "', root='" + (root == null ? null : root.getClass().getSimpleName()) +
"']";
}
}

View File

@ -1,5 +1,10 @@
package com.intellectualcrafters.configuration.file;
import com.intellectualcrafters.configuration.Configuration;
import com.intellectualcrafters.configuration.InvalidConfigurationException;
import com.intellectualcrafters.configuration.MemoryConfiguration;
import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@ -14,12 +19,6 @@ import java.io.Writer;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import org.yaml.snakeyaml.external.biz.base64Coder.Base64Coder;
import com.intellectualcrafters.configuration.Configuration;
import com.intellectualcrafters.configuration.InvalidConfigurationException;
import com.intellectualcrafters.configuration.MemoryConfiguration;
/**
* This is a base class for all File based implementations of {@link
* Configuration}
@ -99,13 +98,10 @@ public abstract class FileConfiguration extends MemoryConfiguration {
file.getParentFile().mkdirs();
final String data = saveToString();
final Writer writer = new OutputStreamWriter(new FileOutputStream(file), UTF8_OVERRIDE && !UTF_BIG ? StandardCharsets.UTF_8 : Charset.defaultCharset());
try {
try (Writer writer = new OutputStreamWriter(new FileOutputStream(file),
UTF8_OVERRIDE && !UTF_BIG ? StandardCharsets.UTF_8 : Charset.defaultCharset())) {
writer.write(data);
} finally {
writer.close();
}
}
@ -212,19 +208,16 @@ public abstract class FileConfiguration extends MemoryConfiguration {
* @throws IllegalArgumentException thrown when reader is null
*/
public void load(final Reader reader) throws IOException, InvalidConfigurationException {
final BufferedReader input = reader instanceof BufferedReader ? (BufferedReader) reader : new BufferedReader(reader);
final StringBuilder builder = new StringBuilder();
try {
try (BufferedReader input = reader instanceof BufferedReader ? (BufferedReader) reader : new BufferedReader(reader)) {
String line;
while ((line = input.readLine()) != null) {
builder.append(line);
builder.append('\n');
}
} finally {
input.close();
}
loadFromString(builder.toString());

View File

@ -18,7 +18,6 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
@ -385,15 +384,21 @@ public class PS {
*
* @param plot Plot Object to update
*/
public void updatePlot(final Plot plot) {
final String world = plot.world;
if (!plots.containsKey(world)) {
plots.put(world, new ConcurrentHashMap<PlotId, Plot>());
}
plots.get(world).put(plot.id, plot);
public boolean updatePlot(final Plot plot) {
for (PlotPlayer pp : plot.getPlayersInPlot()) {
pp.setMeta("lastplot", plot);
}
ConcurrentHashMap<PlotId, Plot> map = plots.get(plot.world);
if (map == null) {
map = new ConcurrentHashMap<PlotId, Plot>();
map.put(plot.id, plot);
plots.put(plot.world, map);
System.out.println("UPDATING PLOT 2!: " + plot);
return true;
} else {
System.out.println("UPDATING PLOT!: " + plot);
return map.put(plot.id, plot) == null;
}
}
/**
@ -633,7 +638,7 @@ public class PS {
}
hardmax = Math.min(hardmax, max);
final Plot[] cache = new Plot[hardmax + 1];
final List<Plot> overflow = new ArrayList<Plot>(overflowSize);
final List<Plot> overflow = new ArrayList<>(overflowSize);
final ArrayList<Plot> extra = new ArrayList<>();
for (final Plot plot : plots) {
final int hash = MathMan.getPositiveId(plot.hashCode());
@ -643,7 +648,7 @@ public class PS {
} else {
extra.add(plot);
}
} else if ((Math.abs(plot.id.x) > 15446) || (Math.abs(plot.id.y) > 15446)) {
} else if ((Math.abs(plot.getId().x) > 15446) || (Math.abs(plot.getId().y) > 15446)) {
extra.add(plot);
} else {
overflow.add(plot);
@ -651,15 +656,13 @@ public class PS {
}
final Plot[] overflowArray = overflow.toArray(new Plot[overflow.size()]);
sortPlotsByHash(overflowArray);
final ArrayList<Plot> result = new ArrayList<Plot>(cache.length + overflowArray.length);
final ArrayList<Plot> result = new ArrayList<>(cache.length + overflowArray.length);
for (final Plot plot : cache) {
if (plot != null) {
result.add(plot);
}
}
for (final Plot plot : overflowArray) {
result.add(plot);
}
Collections.addAll(result, overflowArray);
for (final Plot plot : extra) {
result.add(plot);
}
@ -678,14 +681,13 @@ public class PS {
if (input instanceof ArrayList<?>) {
list = (List<Plot>) input;
} else {
list = new ArrayList<Plot>(input);
list = new ArrayList<>(input);
}
long min = Integer.MAX_VALUE;
long max = 0;
final int size = list.size();
final int limit = Math.min(1048576, size * 2);
for (int i = 0; i < size; i++) {
final Plot plot = list.get(i);
for (final Plot plot : list) {
final long time = plot.getTimestamp();
if (time < min) {
min = time;
@ -701,8 +703,7 @@ public class PS {
if ((range > limit) && (size > 1024)) {
plots = new Plot[limit];
final int factor = (int) ((range / limit));
for (int i = 0; i < size; i++) {
Plot plot = list.get(i);
for (Plot plot : list) {
int index = (int) (plot.getTimestamp() - min) / factor;
if (index < 0) {
index = 0;
@ -730,7 +731,7 @@ public class PS {
}
}
} else if ((range < size) || (size < 1024)) {
final ArrayList<Plot> result = new ArrayList<Plot>(list);
final ArrayList<Plot> result = new ArrayList<>(list);
Collections.sort(result, new Comparator<Plot>() {
@Override
public int compare(final Plot a, final Plot b) {
@ -745,8 +746,7 @@ public class PS {
return result;
} else if (min != 0) {
plots = new Plot[(int) range];
for (int i = 0; i < size; i++) {
Plot plot = list.get(i);
for (Plot plot : list) {
int index = (int) (plot.getTimestamp() - min);
if (index >= plots.length) {
overflow.add(plot);
@ -772,8 +772,7 @@ public class PS {
}
} else {
plots = new Plot[(int) range];
for (int i = 0; i < size; i++) {
Plot plot = list.get(i);
for (Plot plot : list) {
int index = (int) (plot.getTimestamp());
if (index >= plots.length) {
overflow.add(plot);
@ -824,7 +823,7 @@ public class PS {
return result;
} catch (final Exception e) {
e.printStackTrace();
final ArrayList<Plot> result = new ArrayList<Plot>(list);
final ArrayList<Plot> result = new ArrayList<>(list);
Collections.sort(result, new Comparator<Plot>() {
@Override
public int compare(final Plot a, final Plot b) {
@ -848,10 +847,10 @@ public class PS {
public void sortPlotsByHash(final Plot[] input) {
final List<Plot>[] bucket = new ArrayList[32];
for (int i = 0; i < bucket.length; i++) {
bucket[i] = new ArrayList<Plot>();
bucket[i] = new ArrayList<>();
}
boolean maxLength = false;
int tmp = -1, placement = 1;
int tmp, placement = 1;
while (!maxLength) {
maxLength = true;
for (final Plot i : input) {
@ -882,7 +881,7 @@ public class PS {
final int SIZE = 100;
final List<Plot>[] bucket = new ArrayList[SIZE];
for (int i = 0; i < bucket.length; i++) {
bucket[i] = new ArrayList<Plot>();
bucket[i] = new ArrayList<>();
}
boolean maxLength = false;
int tmp = -1, placement = 1;
@ -907,7 +906,7 @@ public class PS {
}
public enum SortType {
CREATION_DATE, CREATION_DATE_TIMESTAMP, DISTANCE_FROM_ORIGIN;
CREATION_DATE, CREATION_DATE_TIMESTAMP, DISTANCE_FROM_ORIGIN
}
/**
@ -921,7 +920,7 @@ public class PS {
// group by world
// sort each
final HashMap<String, Collection<Plot>> map = new HashMap<>();
final ArrayList<String> worlds = new ArrayList<String>(getPlotWorlds());
final ArrayList<String> worlds = new ArrayList<>(getPlotWorlds());
int totalSize = 0;
for (final Entry<String, ConcurrentHashMap<PlotId, Plot>> entry : this.plots.entrySet()) {
totalSize += entry.getValue().size();
@ -955,7 +954,7 @@ public class PS {
return a.hashCode() - b.hashCode();
}
});
final ArrayList<Plot> toReturn = new ArrayList<Plot>(plots.size());
final ArrayList<Plot> toReturn = new ArrayList<>(plots.size());
for (final String world : worlds) {
switch (type) {
case CREATION_DATE:
@ -1068,9 +1067,6 @@ public class PS {
return strings.toArray(new String[strings.size()]);
}
private volatile String lastWorld;
private volatile Map<PlotId, Plot> lastMap;
/**
* Get a map of the plots for a world
* @param world
@ -1080,9 +1076,6 @@ public class PS {
public HashMap<PlotId, Plot> getPlots(final String world) {
final ConcurrentHashMap<PlotId, Plot> myplots = plots.get(world);
if (myplots != null) {
if (world == lastWorld) {
return new HashMap<>(lastMap);
}
return new HashMap<>(myplots);
}
return new HashMap<>(0);
@ -1097,7 +1090,7 @@ public class PS {
return map.values();
}
catch (Throwable e) {e.printStackTrace();}
HashSet<Plot> toReturn = new HashSet<Plot>(map.entrySet().size());
HashSet<Plot> toReturn = new HashSet<>(map.entrySet().size());
for (Entry<PlotId, Plot> entry : map.entrySet()) {
toReturn.add(entry.getValue());
}
@ -1105,16 +1098,9 @@ public class PS {
}
public Plot getPlot(final String world, final PlotId id) {
if (world == lastWorld) {
if (lastMap != null) {
return lastMap.get(id);
}
return null;
}
lastWorld = world;
lastMap = plots.get(world);
if (lastMap != null) {
return lastMap.get(id);
ConcurrentHashMap<PlotId, Plot> map = plots.get(world);
if (map != null) {
return map.get(id);
}
return null;
}
@ -1336,12 +1322,14 @@ public class PS {
}
case "f":
case "floor": {
config.set(base + "plot.floor", new ArrayList<String>(Arrays.asList(StringMan.join(Configuration.BLOCKLIST.parseString(value), ",").split(","))));
config.set(base + "plot.floor",
new ArrayList<>(Arrays.asList(StringMan.join(Configuration.BLOCKLIST.parseString(value), ",").split(","))));
break;
}
case "m":
case "main": {
config.set(base + "plot.filling", new ArrayList<String>(Arrays.asList(StringMan.join(Configuration.BLOCKLIST.parseString(value), ",").split(","))));
config.set(base + "plot.filling",
new ArrayList<>(Arrays.asList(StringMan.join(Configuration.BLOCKLIST.parseString(value), ",").split(","))));
break;
}
case "w":
@ -1968,6 +1956,7 @@ public class PS {
Settings.METRICS = config.getBoolean("metrics");
Settings.UPDATE_NOTIFICATIONS = config.getBoolean("update-notifications");
Settings.MERGE_REMOVES_ROADS = config.getBoolean("merge.remove-terrain");
Settings.AUTO_PURGE = config.getBoolean("auto-purge", false);
}
/**

View File

@ -21,17 +21,6 @@
package com.intellectualcrafters.plot.api;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;
import java.util.UUID;
import org.bukkit.Location;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import com.intellectualcrafters.configuration.file.YamlConfiguration;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.commands.MainCommand;
@ -53,6 +42,16 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
import com.intellectualcrafters.plot.uuid.UUIDWrapper;
import com.plotsquared.bukkit.util.BukkitSetBlockManager;
import com.plotsquared.bukkit.util.BukkitUtil;
import org.bukkit.Location;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Set;
import java.util.UUID;
/**
* PlotSquared API
@ -262,7 +261,7 @@ public class PlotAPI {
perms.add(c.s());
}
}
return perms.toArray(new String[0]);
return perms.toArray(new String[perms.size()]);
}
/**
@ -376,7 +375,7 @@ public class PlotAPI {
*
* @param msg Message that should be sent to the console
*
* @see MainUtil#sendConsoleMessage(String)
* @see MainUtil#sendConsoleMessage(C, String...)
*/
public void sendConsoleMessage(final String msg) {
PS.log(msg);;
@ -553,9 +552,9 @@ public class PlotAPI {
*/
public Location[] getLocations(final Plot p) {
return new Location[] {
BukkitUtil.getLocation(MainUtil.getPlotBottomLocAbs(p.world, p.id).subtract(1, 0, 1)),
BukkitUtil.getLocation(MainUtil.getPlotTopLocAbs(p.world, p.id)),
BukkitUtil.getLocation(MainUtil.getPlotHome(p.world, p.id)) };
BukkitUtil.getLocation(MainUtil.getPlotBottomLocAbs(p.world, p.getId()).subtract(1, 0, 1)),
BukkitUtil.getLocation(MainUtil.getPlotTopLocAbs(p.world, p.getId())),
BukkitUtil.getLocation(MainUtil.getPlotHome(p.world, p.getId())) };
}
/**
@ -569,7 +568,7 @@ public class PlotAPI {
* @see Plot
*/
public Location getHomeLocation(final Plot p) {
return BukkitUtil.getLocation(MainUtil.getPlotHome(p.world, p.id));
return BukkitUtil.getLocation(MainUtil.getPlotHome(p.world, p.getId()));
}
/**
@ -583,7 +582,7 @@ public class PlotAPI {
* @see Plot
*/
public Location getBottomLocation(final Plot p) {
return BukkitUtil.getLocation(MainUtil.getPlotBottomLocAbs(p.world, p.id).subtract(1, 0, 1));
return BukkitUtil.getLocation(MainUtil.getPlotBottomLocAbs(p.world, p.getId()).subtract(1, 0, 1));
}
/**
@ -597,7 +596,7 @@ public class PlotAPI {
* @see Plot
*/
public Location getTopLocation(final Plot p) {
return BukkitUtil.getLocation(MainUtil.getPlotTopLocAbs(p.world, p.id));
return BukkitUtil.getLocation(MainUtil.getPlotTopLocAbs(p.world, p.getId()));
}
/**

View File

@ -20,9 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import java.util.UUID;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.object.Location;
@ -35,6 +32,8 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
import com.plotsquared.general.commands.Argument;
import com.plotsquared.general.commands.CommandDeclaration;
import java.util.UUID;
@CommandDeclaration(
command = "add",
aliases = { "a" },
@ -87,7 +86,7 @@ public class Add extends SubCommand {
if (plot.removeTrusted(uuid)) {
plot.addMember(uuid);
} else {
if ((plot.getMembers().size() + plot.getTrusted().size()) >= PS.get().getPlotWorld(plot.world).MAX_PLOT_MEMBERS) {
if ((plot.getMembers().size() + plot.getTrusted().size()) >= plot.getWorld().MAX_PLOT_MEMBERS) {
MainUtil.sendMessage(plr, C.PLOT_MAX_MEMBERS);
return false;
}

View File

@ -202,16 +202,12 @@ public class Auto extends SubCommand {
MainUtil.lastPlot.put(worldname, getNextPlot(getLastPlot(worldname), 1));
}
} else {
boolean lastPlot = true;
while (!br) {
final PlotId start = getNextPlot(getLastPlot(worldname), 1);
// Checking if the current set of plots is a viable option.
MainUtil.lastPlot.put(worldname, start);
if (lastPlot) {}
if ((PS.get().getPlot(worldname, start) != null) && (PS.get().getPlot(worldname, start).owner != null)) {
continue;
} else {
lastPlot = false;
}
final PlotId end = new PlotId((start.x + size_x) - 1, (start.y + size_z) - 1);
if (MainUtil.canClaim(plr, worldname, start, end)) {

View File

@ -20,8 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import java.util.Set;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.flag.Flag;
@ -35,6 +33,8 @@ import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.plotsquared.general.commands.CommandDeclaration;
import java.util.Set;
@CommandDeclaration(
command = "buy",
aliases = { "b" },
@ -97,7 +97,7 @@ public class Buy extends SubCommand {
EconHandler.manager.depositMoney(UUIDHandler.getUUIDWrapper().getOfflinePlayer(plot.owner), price);
final PlotPlayer owner = UUIDHandler.getPlayer(plot.owner);
if (owner != null) {
sendMessage(plr, C.PLOT_SOLD, plot.id + "", plr.getName(), price + "");
sendMessage(plr, C.PLOT_SOLD, plot.getId() + "", plr.getName(), price + "");
}
FlagManager.removePlotFlag(plot, "price");
}

View File

@ -64,11 +64,11 @@ public class Claim extends SubCommand {
MainUtil.teleportPlayer(player, loc, plot);
}
final String world = plot.world;
final PlotWorld plotworld = PS.get().getPlotWorld(world);
final Plot plot2 = PS.get().getPlot(world, plot.id);
final PlotWorld plotworld = plot.getWorld();
final Plot plot2 = PS.get().getPlot(world, plot.getId());
if (plotworld.SCHEMATIC_ON_CLAIM) {
Schematic sch;
if (schematic.equals("")) {
if (schematic.isEmpty()) {
sch = SchematicHandler.manager.getSchematic(plotworld.SCHEMATIC_FILE);
} else {
sch = SchematicHandler.manager.getSchematic(schematic);
@ -110,7 +110,7 @@ public class Claim extends SubCommand {
if (!MainUtil.canClaim(plr, plot)) {
return sendMessage(plr, C.PLOT_IS_CLAIMED);
}
final PlotWorld world = PS.get().getPlotWorld(plot.world);
final PlotWorld world = plot.getWorld();
if ((EconHandler.manager != null) && world.USE_ECONOMY) {
final double cost = world.PLOT_PRICE;
if (cost > 0d) {

View File

@ -114,7 +114,7 @@ public class Clear extends SubCommand {
}
};
if (Settings.CONFIRM_CLEAR && !(Permissions.hasPermission(plr, "plots.confirm.bypass"))) {
CmdConfirm.addPending(plr, "/plot clear " + plot.id, runnable);
CmdConfirm.addPending(plr, "/plot clear " + plot.getId(), runnable);
} else {
TaskManager.runTask(runnable);
}

View File

@ -249,7 +249,7 @@ public class Cluster extends SubCommand {
return false;
}
}
final PlotWorld plotworld = PS.get().getPlotWorld(plr.getLocation().getWorld());
final PlotWorld plotworld = plr.getLocation().getPlotWorld();
if (plotworld.TYPE == 2) {
final ArrayList<Plot> toRemove = new ArrayList<>();
for (final Plot plot : PS.get().getPlotsInWorld(plr.getLocation().getWorld())) {

View File

@ -121,7 +121,7 @@ public class Condense extends SubCommand {
while ((start.x <= minimum_radius) && (start.y <= minimum_radius)) {
final Plot plot = MainUtil.getPlotAbs(worldname, start);
if (!plot.hasOwner()) {
free.add(plot.id);
free.add(plot.getId());
}
start = Auto.getNextPlot(start, 1);
}
@ -225,8 +225,8 @@ public class Condense extends SubCommand {
public Set<PlotId> getPlots(final Collection<Plot> plots, final int radius) {
final HashSet<PlotId> outside = new HashSet<>();
for (final Plot plot : plots) {
if ((plot.id.x > radius) || (plot.id.x < -radius) || (plot.id.y > radius) || (plot.id.y < -radius)) {
outside.add(plot.id);
if ((plot.getId().x > radius) || (plot.getId().x < -radius) || (plot.getId().y > radius) || (plot.getId().y < -radius)) {
outside.add(plot.getId());
}
}
return outside;

View File

@ -20,7 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.generator.HybridPlotWorld;
import com.intellectualcrafters.plot.generator.HybridUtils;
@ -47,7 +46,7 @@ public class CreateRoadSchematic extends SubCommand {
if (plot == null) {
return sendMessage(player, C.NOT_IN_PLOT);
}
if (!(PS.get().getPlotWorld(loc.getWorld()) instanceof HybridPlotWorld)) {
if (!(loc.getPlotWorld() instanceof HybridPlotWorld)) {
return sendMessage(player, C.NOT_IN_PLOT_WORLD);
}
HybridUtils.manager.setupRoadSchematic(plot);

View File

@ -1,11 +1,5 @@
package com.intellectualcrafters.plot.commands;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.database.MySQL;
@ -18,6 +12,12 @@ import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.TaskManager;
import com.plotsquared.general.commands.CommandDeclaration;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map.Entry;
import java.util.concurrent.ConcurrentHashMap;
@CommandDeclaration(
command = "database",
aliases = { "convert" },
@ -95,7 +95,7 @@ public class Database extends SubCommand {
for (final Entry<String, ConcurrentHashMap<PlotId, Plot>> entry : map.entrySet()) {
for (final Entry<PlotId, Plot> entry2 : entry.getValue().entrySet()) {
final Plot plot = entry2.getValue();
if (PS.get().getPlot(plot.world, plot.id) != null) {
if (PS.get().getPlot(plot.world, plot.getId()) != null) {
MainUtil.sendMessage(player, "Skipping duplicate plot: " + plot + " | id=" + plot.temp);
continue;
}

View File

@ -96,8 +96,8 @@ public class DebugClaimTest extends SubCommand {
final ArrayList<Plot> plots = new ArrayList<>();
for (final PlotId id : MainUtil.getPlotSelectionIds(min, max)) {
final Plot plot = MainUtil.getPlotAbs(world, id);
if (PS.get().getPlot(world, plot.id) != null) {
MainUtil.sendMessage(plr, " - &cDB Already contains: " + plot.id);
if (PS.get().getPlot(world, plot.getId()) != null) {
MainUtil.sendMessage(plr, " - &cDB Already contains: " + plot.getId());
continue;
}
final Location loc = manager.getSignLoc(plotworld, plot);
@ -125,11 +125,11 @@ public class DebugClaimTest extends SubCommand {
uuid = UUIDHandler.getUUID(line, null);
}
if (uuid != null) {
MainUtil.sendMessage(plr, " - &aFound plot: " + plot.id + " : " + line);
MainUtil.sendMessage(plr, " - &aFound plot: " + plot.getId() + " : " + line);
plot.owner = uuid;
plots.add(plot);
} else {
MainUtil.sendMessage(plr, " - &cInvalid playername: " + plot.id + " : " + line);
MainUtil.sendMessage(plr, " - &cInvalid playername: " + plot.getId() + " : " + line);
}
}
}

View File

@ -20,26 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.script.SimpleScriptContext;
import com.google.common.io.Files;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
@ -74,6 +54,26 @@ import com.plotsquared.bukkit.util.BukkitHybridUtils;
import com.plotsquared.general.commands.Command;
import com.plotsquared.general.commands.CommandDeclaration;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.charset.StandardCharsets;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import javax.script.Bindings;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.script.SimpleScriptContext;
@CommandDeclaration(command = "debugexec", permission = "plots.admin", description = "Mutli-purpose debug command", aliases = { "exec" }, category = CommandCategory.DEBUG)
public class DebugExec extends SubCommand {
@ -286,7 +286,7 @@ public class DebugExec extends SubCommand {
}
MainUtil.sendMessage(player, "Expired plots (" + ExpireManager.expiredPlots.get(args[1]).size() + "):");
for (final Plot plot : ExpireManager.expiredPlots.get(args[1])) {
MainUtil.sendMessage(player, " - " + plot.world + ";" + plot.id.x + ";" + plot.id.y + ";" + UUIDHandler.getName(plot.owner) + " : " + ExpireManager.dates.get(plot.owner));
MainUtil.sendMessage(player, " - " + plot.world + ";" + plot.getId().x + ";" + plot.getId().y + ";" + UUIDHandler.getName(plot.owner) + " : " + ExpireManager.dates.get(plot.owner));
}
return true;
}

View File

@ -47,7 +47,7 @@ public class DebugRoadRegen extends SubCommand {
public boolean onCommand(final PlotPlayer player, final String... args) {
final Location loc = player.getLocation();
final String world = loc.getWorld();
final PlotWorld plotworld = PS.get().getPlotWorld(world);
final PlotWorld plotworld = loc.getPlotWorld();
if (!(plotworld instanceof HybridPlotWorld)) {
return sendMessage(player, C.NOT_IN_PLOT_WORLD);
}
@ -66,14 +66,14 @@ public class DebugRoadRegen extends SubCommand {
}
}
final boolean result = HybridUtils.manager.regenerateRoad(world, chunk, extend);
MainUtil.sendMessage(player, "&6Regenerating chunk: " + chunk.x + "," + chunk.z + "\n&6 - Result: " + (result == true ? "&aSuccess" : "&cFailed"));
MainUtil.sendMessage(player, "&6Regenerating chunk: " + chunk.x + "," + chunk.z + "\n&6 - Result: " + (result ? "&aSuccess" : "&cFailed"));
MainUtil.sendMessage(player, "&cTo regenerate all roads: /plot regenallroads");
} else {
final HybridPlotManager manager = (HybridPlotManager) PS.get().getPlotManager(world);
manager.createRoadEast(plotworld, plot);
manager.createRoadSouth(plotworld, plot);
manager.createRoadSouthEast(plotworld, plot);
MainUtil.sendMessage(player, "&6Regenerating plot south/east roads: " + plot.id + "\n&6 - Result: &aSuccess");
MainUtil.sendMessage(player, "&6Regenerating plot south/east roads: " + plot.getId() + "\n&6 - Result: &aSuccess");
MainUtil.sendMessage(player, "&cTo regenerate all roads: /plot regenallroads");
}
return true;

View File

@ -20,9 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import java.util.HashSet;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.object.Location;
@ -36,6 +33,8 @@ import com.intellectualcrafters.plot.util.Permissions;
import com.intellectualcrafters.plot.util.TaskManager;
import com.plotsquared.general.commands.CommandDeclaration;
import java.util.HashSet;
@CommandDeclaration(
command = "delete",
permission = "plots.delete",
@ -60,7 +59,7 @@ public class Delete extends SubCommand {
if (!plot.isOwner(plr.getUUID()) && !Permissions.hasPermission(plr, "plots.admin.command.delete")) {
return !sendMessage(plr, C.NO_PLOT_PERMS);
}
final PlotWorld plotworld = PS.get().getPlotWorld(plot.world);
final PlotWorld plotworld = plot.getWorld();
final HashSet<Plot> plots = MainUtil.getConnectedPlots(plot);
final Runnable run = new Runnable() {
@Override
@ -93,7 +92,7 @@ public class Delete extends SubCommand {
}
};
if (Settings.CONFIRM_DELETE && !(Permissions.hasPermission(plr, "plots.confirm.bypass"))) {
CmdConfirm.addPending(plr, "/plot delete " + plot.id, run);
CmdConfirm.addPending(plr, "/plot delete " + plot.getId(), run);
} else {
TaskManager.runTask(run);
}

View File

@ -48,7 +48,7 @@ public class Download extends SubCommand {
}
plot.addRunning();
MainUtil.sendMessage(plr, C.GENERATING_LINK);
SchematicHandler.manager.getCompoundTag(plot.world, plot.id, new RunnableVal<CompoundTag>() {
SchematicHandler.manager.getCompoundTag(plot.world, plot.getId(), new RunnableVal<CompoundTag>() {
@Override
public void run() {
TaskManager.runTaskAsync(new Runnable() {

View File

@ -94,17 +94,20 @@ public class Info extends SubCommand {
};
final UUID uuid = player.getUUID();
final String name = MainUtil.getName(plot.owner);
inv.setItem(1, new PlotItemStack(388, (short) 0, 1, "&cPlot Info", new String[] {
"&cID: &6" + plot.getId().toString(),
"&cOwner: &6" + name,
"&cAlias: &6" + plot.getAlias(),
"&cBiome: &6" + plot.getBiome().toString().replaceAll("_", "").toLowerCase(),
"&cCan Build: &6" + plot.isAdded(uuid),
"&cIs Denied: &6" + plot.isDenied(uuid) }));
inv.setItem(1, new PlotItemStack(388, (short) 0, 1, "&cTrusted", new String[] { "&cAmount: &6" + plot.getTrusted().size(), "&8Click to view a list of the trusted users" }));
inv.setItem(1, new PlotItemStack(388, (short) 0, 1, "&cMembers", new String[] { "&cAmount: &6" + plot.getMembers().size(), "&8Click to view a list of plot members" }));
inv.setItem(1, new PlotItemStack(388, (short) 0, 1, "&cDenied", new String[] { "&cDenied", "&cAmount: &6" + plot.getDenied().size(), "&8Click to view a list of denied players" }));
inv.setItem(1, new PlotItemStack(388, (short) 0, 1, "&cFlags", new String[] { "&cFlags", "&cAmount: &6" + plot.getFlags().size(), "&8Click to view a list of plot flags" }));
inv.setItem(1, new PlotItemStack(388, (short) 0, 1, "&cPlot Info", "&cID: &6" + plot.getId().toString(),
"&cOwner: &6" + name,
"&cAlias: &6" + plot.getAlias(),
"&cBiome: &6" + plot.getBiome().replaceAll("_", "").toLowerCase(),
"&cCan Build: &6" + plot.isAdded(uuid),
"&cIs Denied: &6" + plot.isDenied(uuid)));
inv.setItem(1, new PlotItemStack(388, (short) 0, 1, "&cTrusted", "&cAmount: &6" + plot.getTrusted().size(),
"&8Click to view a list of the trusted users"));
inv.setItem(1, new PlotItemStack(388, (short) 0, 1, "&cMembers", "&cAmount: &6" + plot.getMembers().size(),
"&8Click to view a list of plot members"));
inv.setItem(1, new PlotItemStack(388, (short) 0, 1, "&cDenied", "&cDenied", "&cAmount: &6" + plot.getDenied().size(),
"&8Click to view a list of denied players"));
inv.setItem(1, new PlotItemStack(388, (short) 0, 1, "&cFlags", "&cFlags", "&cAmount: &6" + plot.getFlags().size(),
"&8Click to view a list of plot flags"));
inv.openInventory();
return true;
}
@ -118,7 +121,7 @@ public class Info extends SubCommand {
}
// Unclaimed?
if (!hasOwner && !containsEveryone && !trustedEveryone) {
MainUtil.sendMessage(player, C.PLOT_INFO_UNCLAIMED, (plot.id.x + ";" + plot.id.y));
MainUtil.sendMessage(player, C.PLOT_INFO_UNCLAIMED, (plot.getId().x + ";" + plot.getId().y));
return true;
}
String info = C.PLOT_INFO.s();

View File

@ -40,7 +40,7 @@ public class Kick extends SubCommand {
if (plot == null) {
return !sendMessage(plr, C.NOT_IN_PLOT);
}
if ((plot == null) || ((!plot.hasOwner() || !plot.isOwner(plr.getUUID())) && !Permissions.hasPermission(plr, "plots.admin.command.kick"))) {
if (((!plot.hasOwner() || !plot.isOwner(plr.getUUID())) && !Permissions.hasPermission(plr, "plots.admin.command.kick"))) {
MainUtil.sendMessage(plr, C.NO_PLOT_PERMS);
return false;
}

View File

@ -20,12 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.object.ConsolePlayer;
@ -43,9 +37,17 @@ import com.plotsquared.general.commands.Command;
import com.plotsquared.general.commands.CommandHandlingOutput;
import com.plotsquared.general.commands.CommandManager;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
/**
* PlotSquared command class
*
*
*/
public class MainCommand extends CommandManager<PlotPlayer> {
@ -325,9 +327,7 @@ public class MainCommand extends CommandManager<PlotPlayer> {
count += 5;
}
}
for (String word : cmd.getDescription().split(" ")) {
desc.add(word);
}
Collections.addAll(desc, cmd.getDescription().split(" "));
for (String arg : args) {
if (perm.startsWith(arg)) {
count++;

View File

@ -20,10 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import java.util.HashSet;
import java.util.UUID;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.object.Location;
@ -38,6 +34,9 @@ import com.intellectualcrafters.plot.util.StringMan;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.plotsquared.general.commands.CommandDeclaration;
import java.util.HashSet;
import java.util.UUID;
@CommandDeclaration(
command = "merge",
aliases = { "m" },
@ -79,7 +78,7 @@ public class Merge extends SubCommand {
if (plot == null) {
return !sendMessage(plr, C.NOT_IN_PLOT);
}
if ((plot == null) || !plot.hasOwner()) {
if (!plot.hasOwner()) {
MainUtil.sendMessage(plr, C.PLOT_UNOWNED);
return false;
}
@ -93,7 +92,7 @@ public class Merge extends SubCommand {
uuid = plot.owner;
}
}
final PlotWorld plotworld = PS.get().getPlotWorld(plot.world);
final PlotWorld plotworld = plot.getWorld();
if ((EconHandler.manager != null) && plotworld.USE_ECONOMY && plotworld.MERGE_PRICE > 0d && EconHandler.manager.getMoney(plr) < plotworld.MERGE_PRICE) {
sendMessage(plr, C.CANNOT_AFFORD_MERGE, plotworld.MERGE_PRICE + "");
return false;
@ -164,7 +163,7 @@ public class Merge extends SubCommand {
MainUtil.sendMessage(plr, C.SUCCESS_MERGE);
return true;
}
Plot adjacent = MainUtil.getPlotAbs(plot.world, MainUtil.getPlotIdRelative(plot.id, direction));
Plot adjacent = MainUtil.getPlotAbs(plot.world, MainUtil.getPlotIdRelative(plot.getId(), direction));
if (adjacent == null || !adjacent.hasOwner() || adjacent.getMerged((direction + 2) % 4) || adjacent.isOwner(uuid)) {
MainUtil.sendMessage(plr, C.NO_AVAILABLE_AUTOMERGE);
return false;
@ -204,7 +203,7 @@ public class Merge extends SubCommand {
}
});
}
if (isOnline == false) {
if (!isOnline) {
MainUtil.sendMessage(plr, C.NO_AVAILABLE_AUTOMERGE);
return false;
}

View File

@ -83,7 +83,7 @@ public class Owner extends SetCommand {
MainUtil.setSign(name, plot);
MainUtil.sendMessage(plr, C.SET_OWNER);
if (other != null) {
MainUtil.sendMessage(other, C.NOW_OWNER, plot.world + ";" + plot.id);
MainUtil.sendMessage(other, C.NOW_OWNER, plot.world + ";" + plot.getId());
}
return true;
}

View File

@ -85,8 +85,8 @@ public class Purge extends SubCommand {
return false;
}
final String worldname = args[1];
if (!PS.get().getAllPlotsRaw().containsKey(worldname)) {
MainUtil.sendMessage(plr, "INVALID WORLD");
if (!PS.get().isPlotWorld(worldname)) {
C.NOT_VALID_PLOT_WORLD.send(plr);
return false;
}
final String arg = args[0].toLowerCase();
@ -116,7 +116,7 @@ public class Purge extends SubCommand {
if (plot.owner != null) {
final String name = UUIDHandler.getName(plot.owner);
if (name == null) {
ids.add(plot.id);
ids.add(plot.getId());
}
}
}
@ -132,7 +132,7 @@ public class Purge extends SubCommand {
final Set<PlotId> ids = new HashSet<>();
for (final Plot plot : plots) {
if (plot.owner == null) {
ids.add(plot.id);
ids.add(plot.getId());
}
}
final int length = ids.size();
@ -147,7 +147,7 @@ public class Purge extends SubCommand {
final Set<Plot> plots = PS.get().getPlots(worldname, uuid);
final Set<PlotId> ids = new HashSet<>();
for (final Plot plot : plots) {
ids.add(plot.id);
ids.add(plot.getId());
}
final int length = ids.size();
DBFunc.purge(worldname, ids);

View File

@ -54,7 +54,7 @@ public class RegenAllRoads extends SubCommand {
MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot regenallroads <world> [height]");
return false;
}
} else {
} else if (args.length != 1) {
MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot regenallroads <world> [height]");
return false;
}

View File

@ -50,7 +50,7 @@ public class Save extends SubCommand {
return false;
}
plot.addRunning();
SchematicHandler.manager.getCompoundTag(plot.world, plot.id, new RunnableVal<CompoundTag>() {
SchematicHandler.manager.getCompoundTag(plot.world, plot.getId(), new RunnableVal<CompoundTag>() {
@Override
public void run() {
TaskManager.runTaskAsync(new Runnable() {
@ -60,7 +60,7 @@ public class Save extends SubCommand {
final String name = PS.get().IMP.getServerName().replaceAll("[^A-Za-z0-9]", "");
Location[] corners = MainUtil.getCorners(plot);
final int size = (corners[1].getX() - corners[0].getX()) + 1;
final PlotId id = plot.id;
final PlotId id = plot.getId();
final String world = plot.world.replaceAll("[^A-Za-z0-9]", "");
final String file = time + "_" + world + "_" + id.x + "_" + id.y + "_" + size + "_" + name;
final UUID uuid = plr.getUUID();

View File

@ -20,11 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Configuration;
import com.intellectualcrafters.plot.flag.AbstractFlag;
@ -43,6 +38,10 @@ import com.intellectualcrafters.plot.util.StringMan;
import com.plotsquared.general.commands.Command;
import com.plotsquared.general.commands.CommandDeclaration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
@CommandDeclaration(
command = "set",
description = "Set a plot value",
@ -67,10 +66,9 @@ public class Set extends SubCommand {
@Override
public boolean set(PlotPlayer plr, final Plot plot, String value) {
final String world = plr.getLocation().getWorld();
final PlotWorld plotworld = PS.get().getPlotWorld(world);
final PlotManager manager = PS.get().getPlotManager(world);
final String[] components = manager.getPlotComponents(plotworld, plot.id);
final PlotWorld plotworld = plr.getLocation().getPlotWorld();
final PlotManager manager = plr.getLocation().getPlotManager();
final String[] components = manager.getPlotComponents(plotworld, plot.getId());
final boolean allowUnsafe = DebugAllowUnsafe.unsafeAllowed.contains(plr.getUUID());
String[] args = value.split(" ");
@ -131,7 +129,7 @@ public class Set extends SubCommand {
}
plot.addRunning();
for (Plot current : MainUtil.getConnectedPlots(plot)) {
manager.setComponent(plotworld, current.id, component, blocks);
manager.setComponent(plotworld, current.getId(), component, blocks);
}
MainUtil.sendMessage(plr, C.GENERATING_COMPONENT);
SetBlockQueue.addNotify(new Runnable() {
@ -149,11 +147,11 @@ public class Set extends SubCommand {
}
public boolean noArgs(PlotPlayer plr) {
final ArrayList<String> newValues = new ArrayList<String>();
final ArrayList<String> newValues = new ArrayList<>();
newValues.addAll(Arrays.asList("biome", "alias", "home", "flag"));
Plot plot = plr.getCurrentPlot();
if (plot != null) {
newValues.addAll(Arrays.asList(plot.getManager().getPlotComponents(plot.getWorld(), plot.id)));
newValues.addAll(Arrays.asList(plot.getManager().getPlotComponents(plot.getWorld(), plot.getId())));
}
MainUtil.sendMessage(plr, C.SUBCOMMAND_SET_OPTIONS_HEADER.s() + StringMan.join(newValues, C.BLOCK_LIST_SEPARATER.formatted()));
return false;
@ -175,7 +173,7 @@ public class Set extends SubCommand {
return false;
}
// components
HashSet<String> components = new HashSet<String>(Arrays.asList(plot.getManager().getPlotComponents(plot.getWorld(), plot.id)));
HashSet<String> components = new HashSet<>(Arrays.asList(plot.getManager().getPlotComponents(plot.getWorld(), plot.getId())));
if (components.contains(args[0].toLowerCase())) {
return component.onCommand(plr, Arrays.copyOfRange(args, 0, args.length));
}

View File

@ -20,11 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map.Entry;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.ConfigurationNode;
@ -38,6 +33,11 @@ import com.intellectualcrafters.plot.util.SetupUtils;
import com.intellectualcrafters.plot.util.StringMan;
import com.plotsquared.general.commands.CommandDeclaration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map.Entry;
@CommandDeclaration(
command = "setup",
permission = "plots.admin.command.setup",
@ -48,15 +48,15 @@ category = CommandCategory.ACTIONS)
public class Setup extends SubCommand {
public void displayGenerators(final PlotPlayer plr) {
final StringBuffer message = new StringBuffer();
final StringBuilder message = new StringBuilder();
message.append("&6What generator do you want?");
for (final Entry<String, PlotGenerator<?>> entry : SetupUtils.generators.entrySet()) {
if (entry.getKey().equals("PlotSquared")) {
message.append("\n&8 - &2" + entry.getKey() + " (Default Generator)");
message.append("\n&8 - &2").append(entry.getKey()).append(" (Default Generator)");
} else if (entry.getValue().isFull()) {
message.append("\n&8 - &7" + entry.getKey() + " (Plot Generator)");
message.append("\n&8 - &7").append(entry.getKey()).append(" (Plot Generator)");
} else {
message.append("\n&8 - &7" + entry.getKey() + " (Unknown structure)");
message.append("\n&8 - &7").append(entry.getKey()).append(" (Unknown structure)");
}
}
MainUtil.sendMessage(plr, message.toString());
@ -109,8 +109,9 @@ public class Setup extends SubCommand {
break;
}
case 1: { // choose world type
final List<String> allTypes = Arrays.asList(new String[] { "default", "augmented", "partial" });
final List<String> allDesc = Arrays.asList(new String[] { "Standard plot generation", "Plot generation with vanilla terrain", "Vanilla with clusters of plots" });
final List<String> allTypes = Arrays.asList("default", "augmented", "partial");
final List<String> allDesc = Arrays.asList("Standard plot generation", "Plot generation with vanilla terrain",
"Vanilla with clusters of plots");
final ArrayList<String> types = new ArrayList<>();
if (SetupUtils.generators.get(object.setupGenerator).isFull()) {
types.add("default");
@ -170,7 +171,7 @@ public class Setup extends SubCommand {
break;
}
case 2: { // Choose terrain
final List<String> terrain = Arrays.asList(new String[] { "none", "ore", "road", "all" });
final List<String> terrain = Arrays.asList("none", "ore", "road", "all");
if ((args.length != 1) || !terrain.contains(args[0].toLowerCase())) {
MainUtil.sendMessage(plr, "&cYou must choose the terrain!"
+ "\n&8 - &2NONE&8 - &7No terrain at all"

View File

@ -58,7 +58,7 @@ public class Target extends SubCommand {
closest = plot;
}
}
id = closest.id;
id = closest.getId();
} else {
MainUtil.sendMessage(plr, C.NOT_VALID_PLOT_ID);
return false;

View File

@ -20,14 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.HashSet;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.object.ChunkLoc;
@ -42,6 +34,15 @@ import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.TaskManager;
import com.plotsquared.general.commands.CommandDeclaration;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.HashSet;
@CommandDeclaration(
command = "trim",
permission = "plots.admin",
@ -96,7 +97,8 @@ public class Trim extends SubCommand {
PS.debug("INVALID MCA: " + name);
}
}
} catch (final Exception e) {}
} catch (IOException e) {
}
}
}
}
@ -134,8 +136,8 @@ public class Trim extends SubCommand {
}
final Plot plot = plots.remove(0);
final Location pos1 = MainUtil.getPlotBottomLocAbs(world, plot.id);
final Location pos2 = MainUtil.getPlotTopLocAbs(world, plot.id);
final Location pos1 = MainUtil.getPlotBottomLocAbs(world, plot.getId());
final Location pos2 = MainUtil.getPlotTopLocAbs(world, plot.getId());
final int ccx1 = (pos1.getX() >> 9);
final int ccz1 = (pos1.getZ() >> 9);

View File

@ -20,9 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import java.util.UUID;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.object.Location;
@ -36,6 +33,8 @@ import com.plotsquared.bukkit.uuid.SQLUUIDHandler;
import com.plotsquared.general.commands.Argument;
import com.plotsquared.general.commands.CommandDeclaration;
import java.util.UUID;
@CommandDeclaration(
command = "trust",
aliases = { "t" },
@ -91,7 +90,7 @@ public class Trust extends SubCommand {
if (plot.removeMember(uuid)) {
plot.addTrusted(uuid);
} else {
if ((plot.getMembers().size() + plot.getTrusted().size()) >= PS.get().getPlotWorld(plot.world).MAX_PLOT_MEMBERS) {
if ((plot.getMembers().size() + plot.getTrusted().size()) >= plot.getWorld().MAX_PLOT_MEMBERS) {
MainUtil.sendMessage(plr, C.PLOT_MAX_MEMBERS);
return false;
}

View File

@ -53,6 +53,7 @@ public class Unclaim extends SubCommand {
return !sendMessage(plr, C.NO_PLOT_PERMS);
}
if (plot.unclaim()) {
plot.removeSign();
MainUtil.sendMessage(plr, C.UNCLAIM_SUCCESS);
} else {
MainUtil.sendMessage(plr, C.UNCLAIM_FAILED);

View File

@ -62,7 +62,7 @@ public class Unlink extends SubCommand {
}
};
if (Settings.CONFIRM_UNLINK && !(Permissions.hasPermission(plr, "plots.confirm.bypass"))) {
CmdConfirm.addPending(plr, "/plot unlink " + plot.id, runnable);
CmdConfirm.addPending(plr, "/plot unlink " + plot.getId(), runnable);
} else {
TaskManager.runTask(runnable);
}

View File

@ -20,14 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.object.Plot;
@ -39,6 +31,14 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
import com.plotsquared.general.commands.Argument;
import com.plotsquared.general.commands.CommandDeclaration;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.UUID;
@CommandDeclaration(
command = "visit",
permission = "plots.visit",
@ -93,7 +93,7 @@ public class Visit extends SubCommand {
} else {
final Plot plot = MainUtil.getPlotFromString(player, args[0], true);
if (plot != null) {
unsorted = new HashSet<>(Arrays.asList(plot.getBasePlot(false)));
unsorted = new HashSet<>(Collections.singletonList(plot.getBasePlot(false)));
}
}
break;

View File

@ -36,7 +36,7 @@ public class WE_Anywhere extends SubCommand {
@Override
public boolean onCommand(final PlotPlayer player, final String[] arguments) {
return MainCommand.onCommand(player, "plot", new String[] { "toggle", "worldedit" });
return MainCommand.onCommand(player, "plot", "toggle", "worldedit");
}
}

View File

@ -379,10 +379,12 @@ public class list extends SubCommand {
final PlotMessage flags = new PlotMessage().text(C.color(C.PLOT_INFO_FLAGS.s().replaceAll("%flags%", strFlags))).color("$1");
PlotMessage message = new PlotMessage().text("[").color("$3").text(i + "").command("/plot visit " + plot.world + ";" + plot.id).tooltip("/plot visit " + plot.world + ";" + plot.id)
PlotMessage message = new PlotMessage().text("[").color("$3").text(i + "").command("/plot visit " + plot.world + ";" + plot.getId()).tooltip("/plot visit " + plot.world + ";" + plot
.getId())
.color("$1").text("]").color("$3").text(" " + plot.toString())
.tooltip(trusted, members, flags).command("/plot info " + plot.world + ";" + plot.id)
.tooltip(trusted, members, flags).command("/plot info " + plot.world + ";" + plot.getId())
.color(color).text(" - ").color("$2");
String prefix = "";

View File

@ -32,9 +32,10 @@ public class plugin extends SubCommand {
@Override
public boolean onCommand(final PlotPlayer plr, final String[] args) {
MainUtil.sendMessage(plr, String.format("$2>> $1&lPlotSquared $2($1Version$2: $1%s$2)", StringMan.join(PS.get().IMP.getPluginVersion(), ".")));
MainUtil.sendMessage(plr, String.format("$2>> $1&lAuthors$2: $1Citymonstret $2& $1Empire92"));
MainUtil.sendMessage(plr, String.format("$2>> $1&lWiki$2: $1https://github.com/IntellectualCrafters/PlotSquared/wiki"));
MainUtil.sendMessage(plr, String.format("$2>> $1&lNewest Version$2: $1" + (PS.get().update == null ? StringMan.join(PS.get().IMP.getPluginVersion(), ".") : PS.get().update)));
MainUtil.sendMessage(plr, "$2>> $1&lAuthors$2: $1Citymonstret $2& $1Empire92");
MainUtil.sendMessage(plr, "$2>> $1&lWiki$2: $1https://github.com/IntellectualCrafters/PlotSquared/wiki");
MainUtil.sendMessage(plr,
"$2>> $1&lNewest Version$2: $1" + (PS.get().update == null ? StringMan.join(PS.get().IMP.getPluginVersion(), ".") : PS.get().update));
return true;
}
}

View File

@ -30,6 +30,7 @@ import java.util.List;
public class Settings {
public static boolean USE_SQLUUIDHANDLER = false;
public static boolean AUTO_PURGE = false;
/**
*
*/

View File

@ -40,6 +40,7 @@ import java.util.Set;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.atomic.AtomicInteger;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.Settings;
@ -392,8 +393,8 @@ public class SQLManager implements AbstractDB {
@Override
public void set(final PreparedStatement statement) throws SQLException {
statement.setString(1, uuid.toString());
statement.setInt(2, plot.id.x);
statement.setInt(3, plot.id.y);
statement.setInt(2, plot.getId().x);
statement.setInt(3, plot.getId().y);
statement.setString(4, plot.world);
}
@ -418,7 +419,7 @@ public class SQLManager implements AbstractDB {
// Creating datastructures
final HashMap<PlotId, Plot> plotMap = new HashMap<>();
for (final Plot plot : myList) {
plotMap.put(plot.id, plot);
plotMap.put(plot.getId(), plot);
}
final ArrayList<SettingsPair> settings = new ArrayList<>();
final ArrayList<UUIDPair> helpers = new ArrayList<>();
@ -573,8 +574,8 @@ public class SQLManager implements AbstractDB {
@Override
public void setMySQL(final PreparedStatement stmt, final int i, final Plot plot) throws SQLException {
stmt.setInt((i * 5) + 1, plot.id.x);
stmt.setInt((i * 5) + 2, plot.id.y);
stmt.setInt((i * 5) + 1, plot.getId().x);
stmt.setInt((i * 5) + 2, plot.getId().y);
try {
stmt.setString((i * 5) + 3, plot.owner.toString());
} catch (final Exception e) {
@ -587,8 +588,8 @@ public class SQLManager implements AbstractDB {
@Override
public void setSQLite(final PreparedStatement stmt, final int i, final Plot plot) throws SQLException {
stmt.setNull((i * 6) + 1, 4);
stmt.setInt((i * 6) + 2, plot.id.x);
stmt.setInt((i * 6) + 3, plot.id.y);
stmt.setInt((i * 6) + 2, plot.getId().x);
stmt.setInt((i * 6) + 3, plot.getId().y);
try {
stmt.setString((i * 6) + 4, plot.owner.toString());
} catch (final Exception e1) {
@ -600,8 +601,8 @@ public class SQLManager implements AbstractDB {
@Override
public void setSQL(final PreparedStatement stmt, final Plot plot) throws SQLException {
stmt.setInt(1, plot.id.x);
stmt.setInt(2, plot.id.y);
stmt.setInt(1, plot.getId().x);
stmt.setInt(2, plot.getId().y);
stmt.setString(3, plot.owner.toString());
stmt.setString(4, plot.world);
stmt.setTimestamp(5, new Timestamp(plot.getTimestamp()));
@ -629,7 +630,7 @@ public class SQLManager implements AbstractDB {
try {
int count = 0;
PreparedStatement preparedStmt = null;
String statement = null;
String statement;
int last = -1;
for (int j = 0; j <= amount; j++) {
final List<T> subList = objList.subList(j * packet, Math.min(size, (j + 1) * packet));
@ -639,13 +640,14 @@ public class SQLManager implements AbstractDB {
if (last == -1) {
last = subList.size();
statement = mod.getCreateMySQL(subList.size());
preparedStmt = connection.prepareStatement(statement.toString());
System.out.print(statement);
preparedStmt = connection.prepareStatement(statement);
}
if ((subList.size() != last) || (((count % 5000) == 0) && (count > 0))) {
preparedStmt.executeBatch();
preparedStmt.close();
statement = mod.getCreateMySQL(subList.size());
preparedStmt = connection.prepareStatement(statement.toString());
preparedStmt = connection.prepareStatement(statement);
}
for (int i = 0; i < subList.size(); i++) {
count++;
@ -672,7 +674,7 @@ public class SQLManager implements AbstractDB {
try {
int count = 0;
PreparedStatement preparedStmt = null;
String statement = null;
String statement;
int last = -1;
for (int j = 0; j <= amount; j++) {
final List<T> subList = objList.subList(j * packet, Math.min(size, (j + 1) * packet));
@ -682,13 +684,13 @@ public class SQLManager implements AbstractDB {
if (last == -1) {
last = subList.size();
statement = mod.getCreateSQLite(subList.size());
preparedStmt = connection.prepareStatement(statement.toString());
preparedStmt = connection.prepareStatement(statement);
}
if ((subList.size() != last) || (((count % 5000) == 0) && (count > 0))) {
preparedStmt.executeBatch();
preparedStmt.clearParameters();
statement = mod.getCreateSQLite(subList.size());
preparedStmt = connection.prepareStatement(statement.toString());
preparedStmt = connection.prepareStatement(statement);
}
for (int i = 0; i < subList.size(); i++) {
count++;
@ -707,9 +709,9 @@ public class SQLManager implements AbstractDB {
PS.debug("&cERROR 2: " + " | " + objList.get(0).getClass().getCanonicalName());
PS.debug("&6[WARN] " + "Could not bulk save!");
try {
PreparedStatement preparedStmt = null;
PreparedStatement preparedStmt;
final String nonBulk = mod.getCreateSQL();
preparedStmt = connection.prepareStatement(nonBulk.toString());
preparedStmt = connection.prepareStatement(nonBulk);
for (final T obj : objList) {
try {
mod.setSQL(preparedStmt, obj);
@ -874,7 +876,7 @@ public class SQLManager implements AbstractDB {
@Override
public void setMySQL(final PreparedStatement stmt, final int i, final Integer id) throws SQLException {
stmt.setInt((i * 1) + 1, id);
stmt.setInt((i) + 1, id);
}
@Override
@ -914,8 +916,8 @@ public class SQLManager implements AbstractDB {
addPlotTask(plot, new UniqueStatement("createPlot") {
@Override
public void set(final PreparedStatement stmt) throws SQLException {
stmt.setInt(1, plot.id.x);
stmt.setInt(2, plot.id.y);
stmt.setInt(1, plot.getId().x);
stmt.setInt(2, plot.getId().y);
stmt.setString(3, plot.owner.toString());
stmt.setString(4, plot.world);
stmt.setTimestamp(5, new Timestamp(plot.getTimestamp()));
@ -947,8 +949,8 @@ public class SQLManager implements AbstractDB {
addPlotTask(plot, new UniqueStatement("createPlotAndSettings_" + plot.hashCode()) {
@Override
public void set(final PreparedStatement stmt) throws SQLException {
stmt.setInt(1, plot.id.x);
stmt.setInt(2, plot.id.y);
stmt.setInt(1, plot.getId().x);
stmt.setInt(2, plot.getId().y);
stmt.setString(3, plot.owner.toString());
stmt.setString(4, plot.world);
stmt.setTimestamp(5, new Timestamp(plot.getTimestamp()));
@ -1007,7 +1009,7 @@ public class SQLManager implements AbstractDB {
// ResultSet set = meta.getTables(null, null, prefix + s, null);
if (!set.next()) {
create++;
} else {}
}
set.close();
}
if (create == 0) {
@ -1397,8 +1399,8 @@ public class SQLManager implements AbstractDB {
return plot.temp;
}
stmt = connection.prepareStatement("SELECT `id` FROM `" + prefix + "plot` WHERE `plot_id_x` = ? AND `plot_id_z` = ? AND world = ? ORDER BY `timestamp` ASC");
stmt.setInt(1, plot.id.x);
stmt.setInt(2, plot.id.y);
stmt.setInt(1, plot.getId().x);
stmt.setInt(2, plot.getId().y);
stmt.setString(3, plot.world);
final ResultSet r = stmt.executeQuery();
int id = Integer.MAX_VALUE;
@ -1503,21 +1505,56 @@ public class SQLManager implements AbstractDB {
}
public void deleteRows(final ArrayList<Integer> rowIds, final String table, final String column) {
setBulk(rowIds, new StmtMod<Integer>() {
@Override
public String getCreateMySQL(int size) {
return getCreateMySQL(1, "DELETE FROM `" + table + "` WHERE `" + prefix + column + "` IN ", size);
}
@Override
public String getCreateSQLite(int size) {
return getCreateMySQL(1, "DELETE FROM `" + table + "` WHERE `" + prefix + column + "` IN ", size);
}
@Override
public String getCreateSQL() {
return "DELETE FROM `" + table + "` WHERE `" + prefix + column + "` = ?";
}
@Override
public void setMySQL(PreparedStatement stmt, int i, Integer obj) throws SQLException {
stmt.setInt((i) + 1, obj);
}
@Override
public void setSQLite(PreparedStatement stmt, int i, Integer obj) throws SQLException {
stmt.setInt((i) + 1, obj);
}
@Override
public void setSQL(PreparedStatement stmt, Integer obj) throws SQLException {
stmt.setInt(1, obj);
}
}, null);
}
/**
* Load all plots, helpers, denied, trusted, and every setting from DB into a hashmap
*/
@Override
public ConcurrentHashMap<String, ConcurrentHashMap<PlotId, Plot>> getPlots() {
final ConcurrentHashMap<String, ConcurrentHashMap<PlotId, Plot>> newplots = new ConcurrentHashMap<String, ConcurrentHashMap<PlotId, Plot>>();
final ConcurrentHashMap<String, ConcurrentHashMap<PlotId, Plot>> newplots = new ConcurrentHashMap<>();
final HashMap<Integer, Plot> plots = new HashMap<>();
Statement stmt = null;
Statement stmt;
try {
Set<String> worlds = new HashSet<>();
if (PS.get().config.contains("worlds")) {
worlds = PS.get().config.getConfigurationSection("worlds").getKeys(false);
}
final HashMap<String, UUID> uuids = new HashMap<String, UUID>();
final HashMap<String, Integer> noExist = new HashMap<String, Integer>();
final HashMap<String, UUID> uuids = new HashMap<>();
final HashMap<String, AtomicInteger> noExist = new HashMap<>();
PlotId plot_id;
int id;
@ -1530,15 +1567,22 @@ public class SQLManager implements AbstractDB {
*/
stmt = connection.createStatement();
try (ResultSet r = stmt.executeQuery("SELECT `id`, `plot_id_x`, `plot_id_z`, `owner`, `world`, `timestamp` FROM `" + prefix + "plot`")) {
ArrayList<Integer> toDelete = new ArrayList<>();
while (r.next()) {
plot_id = new PlotId(r.getInt("plot_id_x"), r.getInt("plot_id_z"));
id = r.getInt("id");
final String worldname = r.getString("world");
if (!worlds.contains(worldname)) {
if (noExist.containsKey(worldname)) {
noExist.put(worldname, noExist.get(worldname) + 1);
if (Settings.AUTO_PURGE) {
toDelete.add(id);
continue;
} else {
noExist.put(worldname, 1);
AtomicInteger value = noExist.get(worldname);
if (value != null) {
value.incrementAndGet();
} else {
noExist.put(worldname, new AtomicInteger(1));
}
}
}
o = r.getString("owner");
@ -1550,7 +1594,8 @@ public class SQLManager implements AbstractDB {
Timestamp timestamp = null;
try {
timestamp = r.getTimestamp("timestamp");
} catch (final Exception e) {};
} catch (SQLException ignored) {
}
long time;
if (timestamp == null) {
time = plot_id.hashCode();
@ -1558,11 +1603,30 @@ public class SQLManager implements AbstractDB {
time = timestamp.getTime();
}
p = new Plot(plot_id, user, new HashSet<UUID>(), new HashSet<UUID>(), new HashSet<UUID>(), "", null, null, worldname, new boolean[] { false, false, false, false }, time, id);
ConcurrentHashMap<PlotId, Plot> map = newplots.get(worldname);
if (map != null) {
Plot last = map.put(p.id, p);
if (last != null) {
map.put(last.id, last);
if (Settings.AUTO_PURGE) {
toDelete.add(id);
} else {
PS.debug("&cPLOT " + id + " in `plot` is a duplicate. Delete this plot or set `auto-purge: true` in the settings.yml.");
}
continue;
}
} else {
map = new ConcurrentHashMap<PlotId, Plot>();
newplots.put(worldname, map);
map.put(p.id, p);
}
plots.put(id, p);
}
deleteRows(toDelete, "plot", "id");
}
if (Settings.CACHE_RATINGS) {
try (ResultSet r = stmt.executeQuery("SELECT `plot_plot_id`, `player`, `rating` FROM `" + prefix + "plot_rating`")) {
ArrayList<Integer> toDelete = new ArrayList<>();
while (r.next()) {
id = r.getInt("plot_plot_id");
o = r.getString("player");
@ -1574,13 +1638,16 @@ public class SQLManager implements AbstractDB {
final Plot plot = plots.get(id);
if (plot != null) {
if (plot.getSettings().ratings == null) {
plot.getSettings().ratings = new HashMap<UUID, Integer>();
plot.getSettings().ratings = new HashMap<>();
}
plot.getSettings().ratings.put(user, r.getInt("rating"));
} else if (Settings.AUTO_PURGE) {
toDelete.add(id);
} else {
PS.debug("&cPLOT " + id + " in plot_rating does not exist. Please create the plot or remove this entry.");
PS.debug("&cENTRY " + id + " in `plot_rating` does not exist. Create this plot or set `auto-purge: true` in the settings.yml.");
}
}
deleteRows(toDelete, "plot_rating", "plot_plot_id");
}
}
@ -1588,6 +1655,7 @@ public class SQLManager implements AbstractDB {
* Getting helpers
*/
try (ResultSet r = stmt.executeQuery("SELECT `user_uuid`, `plot_plot_id` FROM `" + prefix + "plot_helpers`")) {
ArrayList<Integer> toDelete = new ArrayList<>();
while (r.next()) {
id = r.getInt("plot_plot_id");
o = r.getString("user_uuid");
@ -1599,16 +1667,20 @@ public class SQLManager implements AbstractDB {
final Plot plot = plots.get(id);
if (plot != null) {
plot.getTrusted().add(user);
} else if (Settings.AUTO_PURGE) {
toDelete.add(id);
} else {
PS.debug("&cPLOT " + id + " in plot_helpers does not exist. Please create the plot or remove this entry.");
PS.debug("&cENTRY " + id + " in `plot_helpers` does not exist. Create this plot or set `auto-purge: true` in the settings.yml.");
}
}
deleteRows(toDelete, "plot_helpers", "plot_plot_id");
}
/*
* Getting trusted
*/
try (ResultSet r = stmt.executeQuery("SELECT `user_uuid`, `plot_plot_id` FROM `" + prefix + "plot_trusted`")) {
ArrayList<Integer> toDelete = new ArrayList<>();
while (r.next()) {
id = r.getInt("plot_plot_id");
o = r.getString("user_uuid");
@ -1620,16 +1692,20 @@ public class SQLManager implements AbstractDB {
final Plot plot = plots.get(id);
if (plot != null) {
plot.getMembers().add(user);
} else if (Settings.AUTO_PURGE) {
toDelete.add(id);
} else {
PS.debug("&cPLOT " + id + " in plot_trusted does not exist. Please create the plot or remove this entry.");
PS.debug("&cENTRY " + id + " in `plot_trusted` does not exist. Create this plot or set `auto-purge: true` in the settings.yml.");
}
}
deleteRows(toDelete, "plot_trusted", "plot_plot_id");
}
/*
* Getting denied
*/
try (ResultSet r = stmt.executeQuery("SELECT `user_uuid`, `plot_plot_id` FROM `" + prefix + "plot_denied`")) {
ArrayList<Integer> toDelete = new ArrayList<>();
while (r.next()) {
id = r.getInt("plot_plot_id");
o = r.getString("user_uuid");
@ -1641,22 +1717,22 @@ public class SQLManager implements AbstractDB {
final Plot plot = plots.get(id);
if (plot != null) {
plot.getDenied().add(user);
} else if (Settings.AUTO_PURGE) {
toDelete.add(id);
} else {
PS.debug("&cPLOT " + id + " in plot_denied does not exist. Please create the plot or remove this entry.");
PS.debug("&cENTRY " + id + " in `plot_denied` does not exist. Create this plot or set `auto-purge: true` in the settings.yml.");
}
}
deleteRows(toDelete, "plot_denied", "plot_plot_id");
}
try (ResultSet r = stmt.executeQuery("SELECT * FROM `" + prefix + "plot_settings`")) {
ArrayList<Integer> toDelete = new ArrayList<>();
while (r.next()) {
id = r.getInt("plot_plot_id");
final Plot plot = plots.get(id);
if (plot != null) {
plots.remove(id);
if (!newplots.containsKey(plot.world)) {
newplots.put(plot.world, new ConcurrentHashMap<PlotId, Plot>());
}
newplots.get(plot.world).put(plot.id, plot);
final String alias = r.getString("alias");
if (alias != null) {
plot.getSettings().setAlias(alias);
@ -1671,18 +1747,14 @@ public class SQLManager implements AbstractDB {
default:
try {
plot.getSettings().setPosition(BlockLoc.fromString(pos));
} catch (final Exception e) {}
} catch (final Exception ignored) {}
}
final Integer m = r.getInt("merged");
if (m != null) {
final boolean[] merged = new boolean[4];
for (int i = 0; i < 4; i++) {
merged[3 - i] = ((m) & (1 << i)) != 0;
}
plot.getSettings().setMerged(merged);
} else {
plot.getSettings().setMerged(new boolean[] { false, false, false, false });
final boolean[] merged = new boolean[4];
for (int i = 0; i < 4; i++) {
merged[3 - i] = ((m) & (1 << i)) != 0;
}
plot.getSettings().setMerged(merged);
String[] flags_string;
final String myflags = r.getString("flags");
if (myflags == null) {
@ -1723,30 +1795,26 @@ public class SQLManager implements AbstractDB {
this.setFlags(plot, flags.values());
}
plot.getSettings().flags = flags;
} else if (Settings.AUTO_PURGE) {
toDelete.add(id);
} else {
PS.debug("&cPLOT " + id + " in plot_settings does not exist. Please create the plot or remove this entry.");
PS.debug("&cENTRY " + id + " in `plot_settings` does not exist. Create this plot or set `auto-purge: true` in the settings.yml.");
}
}
stmt.close();
deleteRows(toDelete, "plot_settings", "plot_plot_id");
}
if (plots.entrySet().size() > 0) {
createEmptySettings(new ArrayList<Integer>(plots.keySet()), null);
createEmptySettings(new ArrayList<>(plots.keySet()), null);
for (Entry<Integer, Plot> entry : plots.entrySet()) {
Plot plot = entry.getValue();
plot.getSettings();
ConcurrentHashMap<PlotId, Plot> map = newplots.get(plot.world);
if (map == null) {
map = new ConcurrentHashMap<PlotId, Plot>();
newplots.put(plot.world, map);
}
map.put(plot.id, plot);
entry.getValue().getSettings();
}
}
boolean invalidPlot = false;
for (final Entry<String, Integer> entry : noExist.entrySet()) {
for (final Entry<String, AtomicInteger> entry : noExist.entrySet()) {
final String worldname = entry.getKey();
invalidPlot = true;
PS.debug("&c[WARNING] Found " + noExist.get(worldname) + " plots in DB for non existant world; '" + worldname + "'.");
PS.debug("&c[WARNING] Found " + entry.getValue().intValue() + " plots in DB for non existant world; '" + worldname + "'.");
}
if (invalidPlot) {
PS.debug("&c[WARNING] - Please create the world/s or remove the plots using the purge command");
@ -1815,8 +1883,8 @@ public class SQLManager implements AbstractDB {
addPlotTask(original, new UniqueStatement("movePlot") {
@Override
public void set(final PreparedStatement stmt) throws SQLException {
stmt.setInt(1, newPlot.id.x);
stmt.setInt(2, newPlot.id.y);
stmt.setInt(1, newPlot.getId().x);
stmt.setInt(2, newPlot.getId().y);
stmt.setString(3, newPlot.world);
stmt.setInt(4, getId(original));
}
@ -1883,13 +1951,13 @@ public class SQLManager implements AbstractDB {
String stmt_prefix = "";
final StringBuilder idstr2 = new StringBuilder("");
for (final Integer id : uniqueIds) {
idstr2.append(stmt_prefix + id);
idstr2.append(stmt_prefix).append(id);
stmt_prefix = " OR `id` = ";
}
stmt_prefix = "";
final StringBuilder idstr = new StringBuilder("");
for (final Integer id : uniqueIds) {
idstr.append(stmt_prefix + id);
idstr.append(stmt_prefix).append(id);
stmt_prefix = " OR `plot_plot_id` = ";
}
PreparedStatement stmt = connection.prepareStatement("DELETE FROM `" + prefix + "plot_helpers` WHERE `plot_plot_id` = " + idstr + "");
@ -1976,7 +2044,7 @@ public class SQLManager implements AbstractDB {
public void set(final PreparedStatement statement) throws SQLException {
if (plot != null) {
statement.setString(1, plot.world);
statement.setInt(2, plot.id.hashCode());
statement.setInt(2, plot.getId().hashCode());
statement.setString(3, comment.comment);
statement.setString(4, comment.inbox);
statement.setString(5, comment.senderName);
@ -2004,7 +2072,7 @@ public class SQLManager implements AbstractDB {
public void set(final PreparedStatement statement) throws SQLException {
if (plot != null) {
statement.setString(1, plot.world);
statement.setInt(2, plot.id.hashCode());
statement.setInt(2, plot.getId().hashCode());
statement.setString(3, inbox);
} else {
statement.setString(1, inbox);
@ -2028,7 +2096,7 @@ public class SQLManager implements AbstractDB {
public void set(final PreparedStatement statement) throws SQLException {
if (plot != null) {
statement.setString(1, plot.world);
statement.setInt(2, plot.id.hashCode());
statement.setInt(2, plot.getId().hashCode());
statement.setString(3, inbox);
} else {
statement.setString(1, inbox);
@ -2048,7 +2116,7 @@ public class SQLManager implements AbstractDB {
@Override
public void addBatch(final PreparedStatement statement) throws SQLException {
final ArrayList<PlotComment> comments = new ArrayList<PlotComment>();
final ArrayList<PlotComment> comments = new ArrayList<>();
final ResultSet set = statement.executeQuery();
PlotComment comment;
while (set.next()) {
@ -2078,7 +2146,7 @@ public class SQLManager implements AbstractDB {
@Override
public void set(final PreparedStatement statement) throws SQLException {
statement.setString(1, plot.world);
statement.setInt(2, plot.id.hashCode());
statement.setInt(2, plot.getId().hashCode());
statement.setString(3, comment.comment);
statement.setString(4, comment.inbox);
statement.setInt(5, (int) (comment.timestamp / 1000));
@ -2190,7 +2258,7 @@ public class SQLManager implements AbstractDB {
@Override
public HashMap<UUID, Integer> getRatings(final Plot plot) {
final HashMap<UUID, Integer> map = new HashMap<UUID, Integer>();
final HashMap<UUID, Integer> map = new HashMap<>();
try {
final PreparedStatement statement = connection.prepareStatement("SELECT `rating`, `player` FROM `" + prefix + "plot_rating` WHERE `plot_plot_id` = ? ");
statement.setInt(1, getId(plot));
@ -2285,8 +2353,8 @@ public class SQLManager implements AbstractDB {
if (PS.get().config.contains("worlds")) {
worlds = PS.get().config.getConfigurationSection("worlds").getKeys(false);
}
final HashMap<String, UUID> uuids = new HashMap<String, UUID>();
final HashMap<String, Integer> noExist = new HashMap<String, Integer>();
final HashMap<String, UUID> uuids = new HashMap<>();
final HashMap<String, Integer> noExist = new HashMap<>();
/*
* Getting clusters
*/
@ -2381,15 +2449,11 @@ public class SQLManager implements AbstractDB {
} catch (final Exception e) {}
}
final Integer m = r.getInt("merged");
if (m != null) {
final boolean[] merged = new boolean[4];
for (int i = 0; i < 4; i++) {
merged[3 - i] = ((m) & (1 << i)) != 0;
}
cluster.settings.setMerged(merged);
} else {
cluster.settings.setMerged(new boolean[] { false, false, false, false });
final boolean[] merged = new boolean[4];
for (int i = 0; i < 4; i++) {
merged[3 - i] = ((m) & (1 << i)) != 0;
}
cluster.settings.setMerged(merged);
String[] flags_string;
final String myflags = r.getString("flags");
if (myflags == null) {
@ -2730,7 +2794,7 @@ public class SQLManager implements AbstractDB {
toCreate.add(plot);
continue;
}
final Plot dataplot = worldplots.remove(plot.id);
final Plot dataplot = worldplots.remove(plot.getId());
if (dataplot == null) {
PS.debug("&8 - &7Creating plot (2): " + plot);
toCreate.add(plot);
@ -2742,7 +2806,7 @@ public class SQLManager implements AbstractDB {
setOwner(plot, plot.owner);
}
// trusted
if (!plot.getTrusted().equals(dataplot.trusted)) {
if (!plot.getTrusted().equals(dataplot.getTrusted())) {
final HashSet<UUID> toAdd = (HashSet<UUID>) plot.getTrusted().clone();
final HashSet<UUID> toRemove = (HashSet<UUID>) dataplot.getTrusted().clone();
toRemove.removeAll(plot.getTrusted());
@ -2759,7 +2823,7 @@ public class SQLManager implements AbstractDB {
}
}
}
if (!plot.getMembers().equals(dataplot.members)) {
if (!plot.getMembers().equals(dataplot.getMembers())) {
final HashSet<UUID> toAdd = (HashSet<UUID>) plot.getMembers().clone();
final HashSet<UUID> toRemove = (HashSet<UUID>) dataplot.getMembers().clone();
toRemove.removeAll(plot.getMembers());
@ -2776,7 +2840,7 @@ public class SQLManager implements AbstractDB {
}
}
}
if (!plot.getDenied().equals(dataplot.denied)) {
if (!plot.getDenied().equals(dataplot.getDenied())) {
final HashSet<UUID> toAdd = (HashSet<UUID>) plot.getDenied().clone();
final HashSet<UUID> toRemove = (HashSet<UUID>) dataplot.getDenied().clone();
toRemove.removeAll(plot.getDenied());
@ -2797,12 +2861,12 @@ public class SQLManager implements AbstractDB {
final PlotSettings ds = dataplot.getSettings();
final boolean[] pm = ps.getMerged();
final boolean[] dm = ds.getMerged();
if ((pm[0] != dm[0]) || (pm[1] != dm[1]) || (pm[1] != dm[1]) || (pm[1] != dm[1])) {
if ((pm[0] != dm[0]) || (pm[1] != dm[1])) {
PS.debug("&8 - &7Correcting merge for: " + plot);
setMerged(dataplot, ps.getMerged());
}
final HashMap<String, Flag> pf = ps.flags;
final HashMap<String, Flag> df = ds.flags;
final HashMap<String, Flag> pf = plot.getFlags();
final HashMap<String, Flag> df = dataplot.getFlags();
if ((pf.size() != 0) && (df.size() != 0)) {
if ((pf.size() != df.size()) || !StringMan.isEqual(StringMan.joinOrdered(pf.values(), ","), StringMan.joinOrdered(df.values(), ","))) {
PS.debug("&8 - &7Correcting flags for: " + plot);

View File

@ -11,9 +11,9 @@ public abstract class StmtMod<T> {
public String getCreateMySQL(final int size, final String query, final int params) {
final StringBuilder statement = new StringBuilder(query);
for (int i = 0; i < (size - 1); i++) {
statement.append("(" + StringMan.repeat(",(?)", params).substring(1) + "),");
statement.append("(" + StringMan.repeat(",?", params).substring(1) + "),");
}
statement.append("(" + StringMan.repeat(",(?)", params).substring(1) + ")");
statement.append("(" + StringMan.repeat(",?", params).substring(1) + ")");
return statement.toString();
}

View File

@ -415,8 +415,7 @@ public class FlagManager {
*/
public static AbstractFlag getFlag(final String string, final boolean create) {
if ((getFlag(string) == null) && create) {
final AbstractFlag flag = new AbstractFlag(string);
return flag;
return new AbstractFlag(string);
}
return getFlag(string);
}
@ -433,7 +432,7 @@ public class FlagManager {
}
public static HashMap<String, Flag> parseFlags(final List<String> flagstrings) {
final HashMap<String, Flag> map = new HashMap<String, Flag>();
final HashMap<String, Flag> map = new HashMap<>();
for (final String key : flagstrings) {
final String[] split;
if (key.contains(";")) {

View File

@ -1,7 +1,5 @@
package com.intellectualcrafters.plot.generator;
import java.util.ArrayList;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotBlock;
@ -12,6 +10,8 @@ import com.intellectualcrafters.plot.object.RegionWrapper;
import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.SetBlockQueue;
import java.util.ArrayList;
/**
* A plot manager with square plots which tesselate on a square grid with the following sections: ROAD, WALL, BORDER (wall), PLOT, FLOOR (plot)
*/
@ -58,9 +58,9 @@ public class ClassicPlotManager extends SquarePlotManager {
@Override
public boolean unclaimPlot(final PlotWorld plotworld, final Plot plot, final Runnable whenDone) {
final ClassicPlotWorld dpw = ((ClassicPlotWorld) plotworld);
setWallFilling(dpw, plot.id, new PlotBlock[] { dpw.WALL_FILLING });
setWallFilling(dpw, plot.getId(), new PlotBlock[] { dpw.WALL_FILLING });
if ((dpw.WALL_BLOCK.id != 0) || !dpw.WALL_BLOCK.equals(dpw.CLAIMED_WALL_BLOCK)) {
setWall(dpw, plot.id, new PlotBlock[] { dpw.WALL_BLOCK });
setWall(dpw, plot.getId(), new PlotBlock[] { dpw.WALL_BLOCK });
}
SetBlockQueue.addNotify(whenDone);
return true;
@ -84,7 +84,6 @@ public class ClassicPlotManager extends SquarePlotManager {
if (!plot.isBasePlot()) {
return false;
}
final ClassicPlotWorld dpw = (ClassicPlotWorld) plotworld;
for (RegionWrapper region : MainUtil.getRegions(plot)) {
Location pos1 = new Location(plot.world, region.minX, 1, region.minZ);
Location pos2 = new Location(plot.world, region.maxX, 255, region.maxZ);
@ -271,8 +270,8 @@ public class ClassicPlotManager extends SquarePlotManager {
@Override
public boolean createRoadEast(final PlotWorld plotworld, final Plot plot) {
final ClassicPlotWorld dpw = (ClassicPlotWorld) plotworld;
final Location pos1 = getPlotBottomLocAbs(plotworld, plot.id);
final Location pos2 = getPlotTopLocAbs(plotworld, plot.id);
final Location pos1 = getPlotBottomLocAbs(plotworld, plot.getId());
final Location pos2 = getPlotTopLocAbs(plotworld, plot.getId());
final int sx = pos2.getX() + 1;
final int ex = (sx + dpw.ROAD_WIDTH) - 1;
final int sz = pos1.getZ() - 2;
@ -293,8 +292,8 @@ public class ClassicPlotManager extends SquarePlotManager {
@Override
public boolean createRoadSouth(final PlotWorld plotworld, final Plot plot) {
final ClassicPlotWorld dpw = (ClassicPlotWorld) plotworld;
final Location pos1 = getPlotBottomLocAbs(plotworld, plot.id);
final Location pos2 = getPlotTopLocAbs(plotworld, plot.id);
final Location pos1 = getPlotBottomLocAbs(plotworld, plot.getId());
final Location pos2 = getPlotTopLocAbs(plotworld, plot.getId());
final int sz = pos2.getZ() + 1;
final int ez = (sz + dpw.ROAD_WIDTH) - 1;
final int sx = pos1.getX() - 2;
@ -314,7 +313,7 @@ public class ClassicPlotManager extends SquarePlotManager {
@Override
public boolean createRoadSouthEast(final PlotWorld plotworld, final Plot plot) {
final ClassicPlotWorld dpw = (ClassicPlotWorld) plotworld;
final Location pos2 = getPlotTopLocAbs(plotworld, plot.id);
final Location pos2 = getPlotTopLocAbs(plotworld, plot.getId());
final int sx = pos2.getX() + 1;
final int ex = (sx + dpw.ROAD_WIDTH) - 1;
final int sz = pos2.getZ() + 1;
@ -329,8 +328,8 @@ public class ClassicPlotManager extends SquarePlotManager {
@Override
public boolean removeRoadEast(final PlotWorld plotworld, final Plot plot) {
final ClassicPlotWorld dpw = (ClassicPlotWorld) plotworld;
final Location pos1 = getPlotBottomLocAbs(plotworld, plot.id);
final Location pos2 = getPlotTopLocAbs(plotworld, plot.id);
final Location pos1 = getPlotBottomLocAbs(plotworld, plot.getId());
final Location pos2 = getPlotTopLocAbs(plotworld, plot.getId());
final int sx = pos2.getX() + 1;
final int ex = (sx + dpw.ROAD_WIDTH) - 1;
final int sz = pos1.getZ() - 1;
@ -344,8 +343,8 @@ public class ClassicPlotManager extends SquarePlotManager {
@Override
public boolean removeRoadSouth(final PlotWorld plotworld, final Plot plot) {
final ClassicPlotWorld dpw = (ClassicPlotWorld) plotworld;
final Location pos1 = getPlotBottomLocAbs(plotworld, plot.id);
final Location pos2 = getPlotTopLocAbs(plotworld, plot.id);
final Location pos1 = getPlotBottomLocAbs(plotworld, plot.getId());
final Location pos2 = getPlotTopLocAbs(plotworld, plot.getId());
final int sz = pos2.getZ() + 1;
final int ez = (sz + dpw.ROAD_WIDTH) - 1;
final int sx = pos1.getX() - 1;
@ -359,7 +358,7 @@ public class ClassicPlotManager extends SquarePlotManager {
@Override
public boolean removeRoadSouthEast(final PlotWorld plotworld, final Plot plot) {
final ClassicPlotWorld dpw = (ClassicPlotWorld) plotworld;
final Location loc = getPlotTopLocAbs(dpw, plot.id);
final Location loc = getPlotTopLocAbs(dpw, plot.getId());
final int sx = loc.getX() + 1;
final int ex = (sx + dpw.ROAD_WIDTH) - 1;
final int sz = loc.getZ() + 1;
@ -412,7 +411,7 @@ public class ClassicPlotManager extends SquarePlotManager {
final PlotBlock unclaim = ((ClassicPlotWorld) plotworld).WALL_BLOCK;
final PlotBlock claim = ((ClassicPlotWorld) plotworld).CLAIMED_WALL_BLOCK;
if ((claim.id != 0) || !claim.equals(unclaim)) {
setWall(plotworld, plot.id, new PlotBlock[] { claim });
setWall(plotworld, plot.getId(), new PlotBlock[] { claim });
}
return true;
}

View File

@ -20,13 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.generator;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.commands.Template;
import com.intellectualcrafters.plot.object.ChunkLoc;
@ -43,11 +36,19 @@ import com.intellectualcrafters.plot.util.ChunkManager;
import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.SetBlockQueue;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
public class HybridPlotManager extends ClassicPlotManager {
@Override
public void exportTemplate(final PlotWorld plotworld) throws IOException {
final HashSet<FileBytes> files = new HashSet<>(Arrays.asList(new FileBytes("templates/" + "tmp-data.yml", Template.getBytes(plotworld))));
final HashSet<FileBytes> files = new HashSet<>(
Collections.singletonList(new FileBytes("templates/" + "tmp-data.yml", Template.getBytes(plotworld))));
final String psRoot = PS.get().IMP.getDirectory() + File.separator;
final String dir = "schematics" + File.separator + "GEN_ROAD_SCHEMATIC" + File.separator + plotworld.worldname + File.separator;
final String newDir = "schematics" + File.separator + "GEN_ROAD_SCHEMATIC" + File.separator + "__TEMP_DIR__" + File.separator;
@ -77,7 +78,7 @@ public class HybridPlotManager extends ClassicPlotManager {
if (!hpw.ROAD_SCHEMATIC_ENABLED) {
return true;
}
final PlotId id = plot.id;
final PlotId id = plot.getId();
final PlotId id2 = new PlotId(id.x + 1, id.y);
final Location bot = getPlotBottomLocAbs(hpw, id2);
final Location top = getPlotTopLocAbs(hpw, id);
@ -133,7 +134,7 @@ public class HybridPlotManager extends ClassicPlotManager {
if (!hpw.ROAD_SCHEMATIC_ENABLED) {
return true;
}
final PlotId id = plot.id;
final PlotId id = plot.getId();
final PlotId id2 = new PlotId(id.x, id.y + 1);
final Location bot = getPlotBottomLocAbs(hpw, id2);
final Location top = getPlotTopLocAbs(hpw, id);
@ -150,7 +151,7 @@ public class HybridPlotManager extends ClassicPlotManager {
if (!hpw.ROAD_SCHEMATIC_ENABLED) {
return true;
}
final PlotId id = plot.id;
final PlotId id = plot.getId();
final PlotId id2 = new PlotId(id.x + 1, id.y + 1);
final Location pos1 = getPlotTopLocAbs(hpw, id).add(1, 0, 1);
final Location pos2 = getPlotBottomLocAbs(hpw, id2);
@ -171,7 +172,7 @@ public class HybridPlotManager extends ClassicPlotManager {
final String world = plotworld.worldname;
final HybridPlotWorld dpw = ((HybridPlotWorld) plotworld);
final Location pos1 = MainUtil.getPlotBottomLocAbs(world, plot.id);
final Location pos1 = MainUtil.getPlotBottomLocAbs(world, plot.getId());
final Location pos2 = MainUtil.getPlotTopLoc_(plot);
// If augmented
final boolean canRegen = (plotworld.TYPE == 0) && (plotworld.TERRAIN == 0);

View File

@ -1,16 +1,5 @@
package com.intellectualcrafters.plot.generator;
import java.io.File;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
import com.intellectualcrafters.jnbt.CompoundTag;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
@ -33,6 +22,17 @@ import com.intellectualcrafters.plot.util.SchematicHandler;
import com.intellectualcrafters.plot.util.SetBlockQueue;
import com.intellectualcrafters.plot.util.TaskManager;
import java.io.File;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicInteger;
public abstract class HybridUtils {
public static HybridUtils manager;
@ -113,7 +113,7 @@ public abstract class HybridUtils {
public static boolean UPDATE = false;
public final ArrayList<ChunkLoc> getChunks(final ChunkLoc region) {
final ArrayList<ChunkLoc> chunks = new ArrayList<ChunkLoc>();
final ArrayList<ChunkLoc> chunks = new ArrayList<>();
final int sx = region.x << 5;
final int sz = region.z << 5;
for (int x = sx; x < (sx + 32); x++) {
@ -133,7 +133,7 @@ public abstract class HybridUtils {
if (whenDone == null) {
return;
}
final PlotWorld plotworld = PS.get().getPlotWorld(plot.world);
final PlotWorld plotworld = plot.getWorld();
if (!(plotworld instanceof ClassicPlotWorld)) {
whenDone.value = -1;
TaskManager.runTask(whenDone);
@ -185,14 +185,14 @@ public abstract class HybridUtils {
public boolean scheduleRoadUpdate(final String world, final Set<ChunkLoc> rgs, final int extend) {
HybridUtils.regions = rgs;
HybridUtils.world = world;
chunks = new HashSet<ChunkLoc>();
chunks = new HashSet<>();
final AtomicInteger count = new AtomicInteger(0);
final long baseTime = System.currentTimeMillis();
final AtomicInteger last = new AtomicInteger();
TaskManager.runTask(new Runnable() {
@Override
public void run() {
if (UPDATE == false) {
if (!UPDATE) {
last.set(0);
Iterator<ChunkLoc> iter = chunks.iterator();
while (iter.hasNext()) {
@ -212,7 +212,6 @@ public abstract class HybridUtils {
HybridUtils.UPDATE = false;
PS.debug(C.PREFIX.s() + "Finished road conversion");
// CANCEL TASK
return;
} else {
final Runnable task = this;
TaskManager.runTaskAsync(new Runnable() {
@ -298,8 +297,8 @@ public abstract class HybridUtils {
public boolean setupRoadSchematic(final Plot plot) {
final String world = plot.world;
final Location bot = MainUtil.getPlotBottomLocAbs(world, plot.id).subtract(1, 0, 1);
final Location top = MainUtil.getPlotTopLocAbs(world, plot.id);
final Location bot = MainUtil.getPlotBottomLocAbs(world, plot.getId()).subtract(1, 0, 1);
final Location top = MainUtil.getPlotTopLocAbs(world, plot.getId());
final HybridPlotWorld plotworld = (HybridPlotWorld) PS.get().getPlotWorld(world);
final int sx = (bot.getX() - plotworld.ROAD_WIDTH) + 1;
final int sz = bot.getZ() + 1;
@ -307,20 +306,13 @@ public abstract class HybridUtils {
final int ex = bot.getX();
final int ez = top.getZ();
final int ey = get_ey(world, sx, ex, sz, ez, sy);
final Location pos1 = new Location(world, sx, sy, sz);
final Location pos2 = new Location(world, ex, ey, ez);
final int bx = sx;
final int bz = sz - plotworld.ROAD_WIDTH;
final int by = sy;
final int tx = ex;
final int tz = sz - 1;
final int ty = get_ey(world, bx, tx, bz, tz, by);
final int ty = get_ey(world, sx, ex, bz, tz, sy);
final Set<RegionWrapper> sideroad = new HashSet<>(Arrays.asList(new RegionWrapper(sx, ex, sy, ey, sz, ez)));
final Set<RegionWrapper> intersection = new HashSet<>(Arrays.asList(new RegionWrapper(bx, tx, by, ty, bz, tz)));
final Location pos3 = new Location(world, bx, by, bz);
final Location pos4 = new Location(world, tx, ty, tz);
final Set<RegionWrapper> sideroad = new HashSet<>(Collections.singletonList(new RegionWrapper(sx, ex, sy, ey, sz, ez)));
final Set<RegionWrapper> intersection = new HashSet<>(Collections.singletonList(new RegionWrapper(sx, ex, sy, ty, bz, tz)));
final String dir = PS.get().IMP.getDirectory() + File.separator + "schematics" + File.separator + "GEN_ROAD_SCHEMATIC" + File.separator + plot.world + File.separator;
SchematicHandler.manager.getCompoundTag(world, sideroad, new RunnableVal<CompoundTag>() {
@Override

View File

@ -1,8 +1,5 @@
package com.intellectualcrafters.plot.generator;
import java.util.HashSet;
import java.util.Iterator;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
@ -12,6 +9,10 @@ import com.intellectualcrafters.plot.object.RegionWrapper;
import com.intellectualcrafters.plot.util.ChunkManager;
import com.intellectualcrafters.plot.util.MainUtil;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
/**
* A plot manager with a square grid layout, with square shaped plots
*/
@ -169,7 +170,7 @@ public abstract class SquarePlotManager extends GridPlotManager {
// northwest
return plot.getMerged(7) ? id : null;
}
PS.debug("invalid location: " + merged);
PS.debug("invalid location: " + Arrays.toString(merged));
} catch (Exception e) {
PS.debug("Invalid plot / road width in settings.yml for world: " + plotworld.worldname);
}

View File

@ -54,7 +54,7 @@ import com.intellectualcrafters.plot.util.TaskManager;
public class Plot {
/**
* plot ID
* Direct access is Deprecated: use getId()
* Direct access is Deprecated: use id
*/
@Deprecated
public final PlotId id;
@ -384,7 +384,7 @@ public class Plot {
* @return boolean false if the player is allowed to enter
*/
public boolean isDenied(final UUID uuid) {
return (getDenied() != null) && ((denied.contains(DBFunc.everyone) && !isAdded(uuid)) || (!isAdded(uuid) && denied.contains(uuid)));
return (denied != null) && ((denied.contains(DBFunc.everyone) && !isAdded(uuid)) || (!isAdded(uuid) && denied.contains(uuid)));
}
/**
@ -464,7 +464,7 @@ public class Plot {
origin = this;
PlotId min = id;
for (Plot plot : MainUtil.getConnectedPlots(this)) {
if (plot.id.y < min.y || (plot.id.y == min.y && plot.id.x < min.x)) {
if (plot.id.y < min.y || (plot.id.y.equals(min.y) && plot.id.x < min.x)) {
origin = plot;
min = plot.id;
}
@ -877,7 +877,7 @@ public class Plot {
* - Any setting from before plot creation will not be saved until the server is stopped properly. i.e. Set any values/options after plot creation.
* @return true if plot was created successfully
*/
public boolean create() {
public Plot create() {
return MainUtil.createPlot(owner, this);
}
@ -1053,7 +1053,7 @@ public class Plot {
if ((settings != null) && (settings.getAlias().length() > 1)) {
return settings.getAlias();
}
return world + ";" + getId().x + ";" + getId().y;
return world + ";" + id.x + ";" + id.y;
}
/**
@ -1064,7 +1064,7 @@ public class Plot {
public boolean removeDenied(final UUID uuid) {
if (uuid == DBFunc.everyone) {
boolean result = false;
for (UUID other : new HashSet<>(getDenied())) {
for (UUID other : new HashSet<>(denied)) {
result = result || PlotHandler.removeDenied(this, other);
}
return result;
@ -1080,7 +1080,7 @@ public class Plot {
public boolean removeTrusted(final UUID uuid) {
if (uuid == DBFunc.everyone) {
boolean result = false;
for (UUID other : new HashSet<>(getTrusted())) {
for (UUID other : new HashSet<>(trusted)) {
result = result || PlotHandler.removeTrusted(this, other);
}
return result;
@ -1094,9 +1094,12 @@ public class Plot {
* @param uuid
*/
public boolean removeMember(final UUID uuid) {
if (members == null) {
return false;
}
if (uuid == DBFunc.everyone) {
boolean result = false;
for (UUID other : new HashSet<>(getMembers())) {
for (UUID other : new HashSet<>(members)) {
result = result || PlotHandler.removeMember(this, other);
}
return result;
@ -1220,7 +1223,7 @@ public class Plot {
if (settings == null) {
return "";
}
return getSettings().getAlias();
return settings.getAlias();
}
/**
@ -1238,7 +1241,7 @@ public class Plot {
* @param merged
*/
public void setMerged(boolean[] merged) {
getSettings().merged = merged;
getSettings().setMerged(merged);
DBFunc.setMerged(this, merged);
MainUtil.connected_cache = null;
MainUtil.regions_cache = null;
@ -1266,7 +1269,7 @@ public class Plot {
if (value) {
Plot other = MainUtil.getPlotRelative(this, direction).getBasePlot(false);
if (!other.equals(getBasePlot(false))) {
Plot base = ((other.id.y < id.y) || ((other.id.y == id.y) && (other.id.x < id.x))) ? other : origin;
Plot base = ((other.id.y < id.y) || ((other.id.y.equals(id.y)) && (other.id.x < id.x))) ? other : origin;
origin.origin = base;
other.origin = base;
origin = base;

View File

@ -1,6 +1,6 @@
package com.intellectualcrafters.plot.object;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
@ -28,7 +28,7 @@ public class PlotHandler {
}
return owners;
}
return new HashSet<>(Arrays.asList(plot.owner));
return new HashSet<>(Collections.singletonList(plot.owner));
}
public static boolean isOwner(final Plot plot, final UUID uuid) {

View File

@ -84,41 +84,7 @@ public class PlotId {
}
public static PlotId unpair(int hash) {
if (hash >= 0) {
if ((hash % 2) == 0) {
// + +
hash /= 2;
final int i = (int) (Math.abs(-1 + Math.sqrt(1 + (8 * hash))) / 2);
final int idx = hash - ((i * (1 + i)) / 2);
final int idy = ((i * (3 + i)) / 2) - hash;
return new PlotId(idx, idy);
} else {
// + -
hash -= 1;
hash /= 2;
final int i = (int) (Math.abs(-1 + Math.sqrt(1 + (8 * hash))) / 2);
final int idx = hash - ((i * (1 + i)) / 2);
final int idy = ((i * (3 + i)) / 2) - hash;
return new PlotId(idx, -idy);
}
} else {
if ((hash % 2) == 0) {
// - +
hash /= -2;
final int i = (int) (Math.abs(-1 + Math.sqrt(1 + (8 * hash))) / 2);
final int idx = hash - ((i * (1 + i)) / 2);
final int idy = ((i * (3 + i)) / 2) - hash;
return new PlotId(-idx, idy);
} else {
// - -
hash += 1;
hash /= -2;
final int i = (int) (Math.abs(-1 + Math.sqrt(1 + (8 * hash))) / 2);
final int idx = hash - ((i * (1 + i)) / 2);
final int idy = ((i * (3 + i)) / 2) - hash;
return new PlotId(-idx, -idy);
}
}
return new PlotId(hash >> 16, hash & 0xFFFF);
}
private int hash;
@ -131,22 +97,7 @@ public class PlotId {
@Override
public int hashCode() {
if (hash == 0) {
if (x >= 0) {
if (y >= 0) {
hash = (x * x) + (3 * x) + (2 * x * y) + y + (y * y);
} else {
final int y1 = -y;
hash = (x * x) + (3 * x) + (2 * x * y1) + y1 + (y1 * y1) + 1;
}
} else {
final int x1 = -x;
if (y >= 0) {
hash = -((x1 * x1) + (3 * x1) + (2 * x1 * y) + y + (y * y));
} else {
final int y1 = -y;
hash = -((x1 * x1) + (3 * x1) + (2 * x1 * y1) + y1 + (y1 * y1) + 1);
}
}
hash = (x << 16) | (y & 0xFFFF);
}
return hash;
}

View File

@ -20,13 +20,13 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.object;
import com.intellectualcrafters.plot.commands.Template;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import com.intellectualcrafters.plot.commands.Template;
public abstract class PlotManager {
/*
* Plot locations (methods with Abs in them will not need to consider mega
@ -86,7 +86,8 @@ public abstract class PlotManager {
public abstract boolean finishPlotUnlink(final PlotWorld plotworld, final ArrayList<PlotId> plotIds);
public void exportTemplate(final PlotWorld plotworld) throws IOException {
final HashSet<FileBytes> files = new HashSet<>(Arrays.asList(new FileBytes("templates/" + "tmp-data.yml", Template.getBytes(plotworld))));
final HashSet<FileBytes> files = new HashSet<>(
Collections.singletonList(new FileBytes("templates/" + "tmp-data.yml", Template.getBytes(plotworld))));
Template.zipAll(plotworld.worldname, files);
}

View File

@ -20,11 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.intellectualcrafters.plot.object;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
import com.intellectualcrafters.configuration.ConfigurationSection;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.Configuration;
@ -36,6 +31,11 @@ import com.intellectualcrafters.plot.util.EconHandler;
import com.intellectualcrafters.plot.util.PlotGamemode;
import com.intellectualcrafters.plot.util.StringMan;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
/**
* @author Jesse Boyd
*/
@ -198,7 +198,7 @@ public abstract class PlotWorld {
if ((flags == null) || (flags.size() == 0)) {
flags = config.getStringList("flags");
if ((flags == null) || (flags.size() == 0)) {
flags = new ArrayList<String>();
flags = new ArrayList<>();
final ConfigurationSection section = config.getConfigurationSection("flags");
final Set<String> keys = section.getKeys(false);
for (final String key : keys) {
@ -233,7 +233,7 @@ public abstract class PlotWorld {
options.put("natural_mob_spawning", PlotWorld.MOB_SPAWNING_DEFAULT);
options.put("plot.auto_merge", PlotWorld.AUTO_MERGE_DEFAULT);
options.put("plot.create_signs", PlotWorld.ALLOW_SIGNS_DEFAULT);
options.put("plot.biome", PlotWorld.PLOT_BIOME_DEFAULT.toString());
options.put("plot.biome", PlotWorld.PLOT_BIOME_DEFAULT);
options.put("schematic.on_claim", PlotWorld.SCHEMATIC_ON_CLAIM_DEFAULT);
options.put("schematic.file", PlotWorld.SCHEMATIC_FILE_DEFAULT);
options.put("schematic.specify_on_claim", PlotWorld.SCHEMATIC_CLAIM_SPECIFY_DEFAULT);

View File

@ -1,14 +1,5 @@
package com.intellectualcrafters.plot.util;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map.Entry;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.flag.FlagManager;
@ -18,11 +9,19 @@ import com.intellectualcrafters.plot.object.ChunkLoc;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.object.RegionWrapper;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.StandardOpenOption;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map.Entry;
public class BO3Handler {
/**
@ -51,7 +50,7 @@ public class BO3Handler {
* @return
*/
public static boolean saveBO3(final PlotPlayer plr, final Plot plot) {
final PlotWorld plotworld = PS.get().getPlotWorld(plot.world);
final PlotWorld plotworld = plot.getWorld();
if (!(plotworld instanceof ClassicPlotWorld) || (plotworld.TYPE != 0)) {
MainUtil.sendMessage(plr, "BO3 exporting only supports type 0 classic generation.");
return false;

View File

@ -148,7 +148,7 @@ public class ClusterManager {
}
public static PlotCluster getCluster(final Plot plot) {
return getCluster(plot.world, plot.id);
return getCluster(plot.world, plot.getId());
}
public static PlotCluster getClusterAbs(final Location loc) {
@ -238,7 +238,7 @@ public class ClusterManager {
public static PlotId estimatePlotId(final Location loc) {
final Plot plot = MainUtil.getPlotAbs(loc);
if (plot != null) {
return plot.id;
return plot.getId();
}
final PlotId a = new PlotId(0, 0);
final PlotId b = new PlotId(1, 1);

View File

@ -100,13 +100,13 @@ public class ExpireManager {
for (final UUID helper : plot.getTrusted()) {
final PlotPlayer player = UUIDHandler.getPlayer(helper);
if (player != null) {
MainUtil.sendMessage(player, C.PLOT_REMOVED_USER, plot.id.toString());
MainUtil.sendMessage(player, C.PLOT_REMOVED_USER, plot.getId().toString());
}
}
for (final UUID helper : plot.getMembers()) {
final PlotPlayer player = UUIDHandler.getPlayer(helper);
if (player != null) {
MainUtil.sendMessage(player, C.PLOT_REMOVED_USER, plot.id.toString());
MainUtil.sendMessage(player, C.PLOT_REMOVED_USER, plot.getId().toString());
}
}
final PlotManager manager = PS.get().getPlotManager(world);

View File

@ -31,7 +31,7 @@ public class HastebinUtility {
final BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
final StringBuffer response = new StringBuffer();
final StringBuilder response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);

View File

@ -23,8 +23,8 @@ package com.intellectualcrafters.plot.util;
import java.nio.charset.StandardCharsets;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@ -54,6 +54,7 @@ import com.intellectualcrafters.plot.object.PlotCluster;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotManager;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotSettings;
import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.object.PseudoRandom;
import com.intellectualcrafters.plot.object.RegionWrapper;
@ -152,9 +153,9 @@ public class MainUtil {
return regions_cache;
}
if (!origin.isMerged()) {
final Location pos1 = MainUtil.getPlotBottomLocAbs(origin.world, origin.id);
final Location pos2 = MainUtil.getPlotTopLocAbs(origin.world, origin.id);
connected_cache = new HashSet<>(Arrays.asList(origin));
final Location pos1 = MainUtil.getPlotBottomLocAbs(origin.world, origin.getId());
final Location pos2 = MainUtil.getPlotTopLocAbs(origin.world, origin.getId());
connected_cache = new HashSet<>(Collections.singletonList(origin));
regions_cache = new HashSet<>(1);
regions_cache.add(new RegionWrapper(pos1.getX(), pos2.getX(), pos1.getY(), pos2.getY(), pos1.getZ(), pos2.getZ()));
return regions_cache;
@ -164,20 +165,20 @@ public class MainUtil {
HashSet<PlotId> visited = new HashSet<>();
ArrayList<PlotId> ids;
for (Plot current : plots) {
if (visited.contains(current.id)) {
if (visited.contains(current.getId())) {
continue;
}
boolean merge = true;
boolean tmp = true;
PlotId bot = new PlotId(current.id.x, current.id.y);
PlotId top = new PlotId(current.id.x, current.id.y);
PlotId bot = new PlotId(current.getId().x, current.getId().y);
PlotId top = new PlotId(current.getId().x, current.getId().y);
while (merge) {
merge = false;
ids = getPlotSelectionIds(new PlotId(bot.x, bot.y - 1), new PlotId(top.x, bot.y - 1));
tmp = true;
for (PlotId id : ids) {
Plot plot = MainUtil.getPlotAbs(origin.world, id);
if (plot == null || !plot.getMerged(2) || (visited.contains(plot.id))) {
if (plot == null || !plot.getMerged(2) || (visited.contains(plot.getId()))) {
tmp = false;
}
}
@ -189,7 +190,7 @@ public class MainUtil {
tmp = true;
for (PlotId id : ids) {
Plot plot = MainUtil.getPlotAbs(origin.world, id);
if (plot == null || !plot.getMerged(3) || (visited.contains(plot.id))) {
if (plot == null || !plot.getMerged(3) || (visited.contains(plot.getId()))) {
tmp = false;
}
}
@ -201,7 +202,7 @@ public class MainUtil {
tmp = true;
for (PlotId id : ids) {
Plot plot = MainUtil.getPlotAbs(origin.world, id);
if (plot == null || !plot.getMerged(0) || (visited.contains(plot.id))) {
if (plot == null || !plot.getMerged(0) || (visited.contains(plot.getId()))) {
tmp = false;
}
}
@ -213,7 +214,7 @@ public class MainUtil {
tmp = true;
for (PlotId id : ids) {
Plot plot = MainUtil.getPlotAbs(origin.world, id);
if (plot == null || !plot.getMerged(1) || (visited.contains(plot.id))) {
if (plot == null || !plot.getMerged(1) || (visited.contains(plot.getId()))) {
tmp = false;
}
}
@ -436,7 +437,7 @@ public class MainUtil {
}
}
if (id != null) {
if (plot.id.equals(id)) {
if (plot.getId().equals(id)) {
count++;
}
}
@ -568,7 +569,7 @@ public class MainUtil {
ArrayList<PlotId> ids = new ArrayList<>(plots.size());
for (Plot current : plots) {
current.setHome(null);
ids.add(current.id);
ids.add(current.getId());
}
final boolean result = EventUtil.manager.callUnlink(plot.world, ids);
if (!result) {
@ -578,8 +579,8 @@ public class MainUtil {
if (createSign) {
plot.removeSign();
}
final PlotManager manager = PS.get().getPlotManager(plot.world);
final PlotWorld plotworld = PS.get().getPlotWorld(plot.world);
final PlotManager manager = plot.getManager();
final PlotWorld plotworld = plot.getWorld();
if (createRoad) {
manager.startPlotUnlink(plotworld, ids);
}
@ -652,14 +653,14 @@ public class MainUtil {
/**
* Check if a plot is in a plot area.<br>
* - Useful as plot objects can be created with any location which may not be valid.
* @param location
* @param plot
* @return
*/
public static boolean isPlotArea(final Plot plot) {
if (!Settings.ENABLE_CLUSTERS) {
return true;
}
final PlotWorld plotworld = PS.get().getPlotWorld(plot.world);
final PlotWorld plotworld = plot.getWorld();
if (plotworld.TYPE == 2) {
return plot.getCluster() != null;
}
@ -743,7 +744,7 @@ public class MainUtil {
*/
public static Location getDefaultHome(Plot plot) {
plot = plot.getBasePlot(false);
final PlotWorld plotworld = PS.get().getPlotWorld(plot.world);
final PlotWorld plotworld = plot.getWorld();
if (plotworld.DEFAULT_HOME != null) {
final int x;
final int z;
@ -765,8 +766,8 @@ public class MainUtil {
RegionWrapper largest = getLargestRegion(plot);
final int x = ((largest.maxX - largest.minX) / 2) + largest.minX;
final int z = largest.minZ - 1;
final PlotManager manager = PS.get().getPlotManager(plot.world);
final int y = Math.max(getHeighestBlock(plot.world, x, z), manager.getSignLoc(PS.get().getPlotWorld(plot.world), plot).getY());
final PlotManager manager = plot.getManager();
final int y = Math.max(getHeighestBlock(plot.world, x, z), manager.getSignLoc(plot.getWorld(), plot).getY());
return new Location(plot.world, x, y + 1, z);
}
@ -782,7 +783,7 @@ public class MainUtil {
final boolean result = EventUtil.manager.callTeleport(player, from, plot);
if (result) {
final Location location;
if (PS.get().getPlotWorld(plot.world).HOME_ALLOW_NONMEMBER || plot.isAdded(player.getUUID())) {
if (plot.getWorld().HOME_ALLOW_NONMEMBER || plot.isAdded(player.getUUID())) {
location = MainUtil.getPlotHome(plot);
} else {
location = getDefaultHome(plot);
@ -855,7 +856,7 @@ public class MainUtil {
* @param loc
*/
public static void update(final String world, final ChunkLoc loc) {
BlockUpdateUtil.setBlockManager.update(world, Arrays.asList(loc));
BlockUpdateUtil.setBlockManager.update(world, Collections.singletonList(loc));
}
/**
@ -910,7 +911,7 @@ public class MainUtil {
* @return Plot relative
*/
public static Plot getPlotRelative(final Plot plot, final int direction) {
return getPlotAbs(plot.world, getPlotIdRelative(plot.id, direction));
return getPlotAbs(plot.world, getPlotIdRelative(plot.getId(), direction));
}
/**
@ -944,14 +945,14 @@ public class MainUtil {
for (final PlotId pid : MainUtil.getPlotSelectionIds(pos1, pos2)) {
final Plot plot = MainUtil.getPlotAbs(world, pid);
if (plot.hasOwner()) {
if ((plot.id.x > pos1.x) || (plot.id.y > pos1.y) || (plot.id.x < pos2.x) || (plot.id.y < pos2.y)) {
if ((plot.getId().x > pos1.x) || (plot.getId().y > pos1.y) || (plot.getId().x < pos2.x) || (plot.getId().y < pos2.y)) {
result.add(plot);
}
}
}
} else {
for (final Plot plot : PS.get().getPlotsInWorld(world)) {
if ((plot.id.x > pos1.x) || (plot.id.y > pos1.y) || (plot.id.x < pos2.x) || (plot.id.y < pos2.y)) {
if ((plot.getId().x > pos1.x) || (plot.getId().y > pos1.y) || (plot.getId().x < pos2.x) || (plot.getId().y < pos2.y)) {
result.add(plot);
}
}
@ -1051,7 +1052,7 @@ public class MainUtil {
if (plotworld.TERRAIN == 3) {
return;
}
final PlotId id = plot.id;
final PlotId id = plot.getId();
final PlotId id2 = new PlotId(id.x + 1, id.y + 1);
final Location pos1 = getPlotTopLocAbs(plot.world, id).add(1, 0, 1);
final Location pos2 = getPlotBottomLocAbs(plot.world, id2).subtract(1, 0, 1);
@ -1059,7 +1060,7 @@ public class MainUtil {
pos2.setY(256);
ChunkManager.manager.regenerateRegion(pos1, pos2, null);
} else {
PS.get().getPlotManager(plot.world).removeRoadSouthEast(plotworld, plot);
plot.getManager().removeRoadSouthEast(plotworld, plot);
}
}
@ -1074,7 +1075,7 @@ public class MainUtil {
if (plotworld.TERRAIN == 3) {
return;
}
final PlotId id = plot.id;
final PlotId id = plot.getId();
final PlotId id2 = new PlotId(id.x + 1, id.y);
final Location bot = getPlotBottomLocAbs(plot.world, id2);
final Location top = getPlotTopLocAbs(plot.world, id);
@ -1082,7 +1083,7 @@ public class MainUtil {
final Location pos2 = new Location(plot.world, bot.getX(), 256, top.getZ());
ChunkManager.manager.regenerateRegion(pos1, pos2, null);
} else {
PS.get().getPlotManager(plot.world).removeRoadEast(plotworld, plot);
plot.getManager().removeRoadEast(plotworld, plot);
}
}
@ -1097,7 +1098,7 @@ public class MainUtil {
if (plotworld.TERRAIN == 3) {
return;
}
final PlotId id = plot.id;
final PlotId id = plot.getId();
final PlotId id2 = new PlotId(id.x, id.y + 1);
final Location bot = getPlotBottomLocAbs(plot.world, id2);
final Location top = getPlotTopLocAbs(plot.world, id);
@ -1105,7 +1106,7 @@ public class MainUtil {
final Location pos2 = new Location(plot.world, top.getX(), 256, bot.getZ());
ChunkManager.manager.regenerateRegion(pos1, pos2, null);
} else {
PS.get().getPlotManager(plot.world).removeRoadSouth(plotworld, plot);
plot.getManager().removeRoadSouth(plotworld, plot);
}
}
@ -1118,8 +1119,8 @@ public class MainUtil {
*/
public static void mergePlot(final String world, Plot lesserPlot, Plot greaterPlot, final boolean removeRoads) {
final PlotWorld plotworld = PS.get().getPlotWorld(world);
if (lesserPlot.id.x.equals(greaterPlot.id.x)) {
if (lesserPlot.id.y > greaterPlot.id.y) {
if (lesserPlot.getId().x.equals(greaterPlot.getId().x)) {
if (lesserPlot.getId().y > greaterPlot.getId().y) {
Plot tmp = lesserPlot;
lesserPlot = greaterPlot;
greaterPlot = tmp;
@ -1135,15 +1136,15 @@ public class MainUtil {
removeRoadSouthEast(plotworld, lesserPlot);
}
MainUtil.removeRoadSouth(plotworld, lesserPlot);
Plot other = getPlotAbs(world, getPlotIdRelative(lesserPlot.id, 3));
Plot other = getPlotAbs(world, getPlotIdRelative(lesserPlot.getId(), 3));
if (other.getMerged(2) && other.getMerged(1)) {
MainUtil.removeRoadSouthEast(plotworld, other);
mergePlot(world, greaterPlot, getPlotAbs(world, getPlotIdRelative(greaterPlot.id, 3)), removeRoads);
mergePlot(world, greaterPlot, getPlotAbs(world, getPlotIdRelative(greaterPlot.getId(), 3)), removeRoads);
}
}
}
} else {
if (lesserPlot.id.x > greaterPlot.id.x) {
if (lesserPlot.getId().x > greaterPlot.getId().x) {
Plot tmp = lesserPlot;
lesserPlot = greaterPlot;
greaterPlot = tmp;
@ -1159,10 +1160,10 @@ public class MainUtil {
if (lesserPlot.getMerged(5)) {
removeRoadSouthEast(plotworld, lesserPlot);
}
Plot other = getPlotAbs(world, getPlotIdRelative(lesserPlot.id, 0));
Plot other = getPlotAbs(world, getPlotIdRelative(lesserPlot.getId(), 0));
if (other.getMerged(2) && other.getMerged(1)) {
MainUtil.removeRoadSouthEast(plotworld, other);
mergePlot(world, greaterPlot, getPlotAbs(world, getPlotIdRelative(greaterPlot.id, 0)), removeRoads);
mergePlot(world, greaterPlot, getPlotAbs(world, getPlotIdRelative(greaterPlot.getId(), 0)), removeRoads);
}
}
}
@ -1269,11 +1270,11 @@ public class MainUtil {
return;
}
final String rename = name == null ? "unknown" : name;
final PlotManager manager = PS.get().getPlotManager(p.world);
final PlotWorld plotworld = PS.get().getPlotWorld(p.world);
final PlotManager manager = p.getManager();
final PlotWorld plotworld = p.getWorld();
if (plotworld.ALLOW_SIGNS) {
final Location loc = manager.getSignLoc(plotworld, p);
final String id = p.id.x + ";" + p.id.y;
final String id = p.getId().x + ";" + p.getId().y;
final String[] lines = new String[] {
C.OWNER_SIGN_LINE_1.formatted().replaceAll("%id%", id),
C.OWNER_SIGN_LINE_2.formatted().replaceAll("%id%", id).replaceAll("%plr%", rename),
@ -1314,7 +1315,7 @@ public class MainUtil {
* Get the corner locations for a list of regions<br>
* @see Plot#getCorners()
* @param world
* @param region
* @param regions
* @return
*/
public static Location[] getCorners(String world, Collection<RegionWrapper> regions) {
@ -1353,22 +1354,22 @@ public class MainUtil {
*/
public static PlotId[] getCornerIds(Plot plot) {
if (!plot.isMerged()) {
return new PlotId[] { plot.id, plot.id };
return new PlotId[] { plot.getId(), plot.getId() };
}
PlotId min = new PlotId(plot.id.x, plot.id.y);
PlotId max = new PlotId(plot.id.x, plot.id.y);
PlotId min = new PlotId(plot.getId().x, plot.getId().y);
PlotId max = new PlotId(plot.getId().x, plot.getId().y);
for (Plot current : getConnectedPlots(plot)) {
if (current.id.x < min.x) {
min.x = current.id.x;
if (current.getId().x < min.x) {
min.x = current.getId().x;
}
else if (current.id.x > max.x) {
max.x = current.id.x;
else if (current.getId().x > max.x) {
max.x = current.getId().x;
}
if (current.id.y < min.y) {
min.y = current.id.y;
if (current.getId().y < min.y) {
min.y = current.getId().y;
}
else if (current.id.y > max.y) {
max.y = current.id.y;
else if (current.getId().y > max.y) {
max.y = current.getId().y;
}
}
return new PlotId[] { min, max };
@ -1398,7 +1399,7 @@ public class MainUtil {
HashSet<Plot> visited = new HashSet<>();
HashSet<PlotId> merged = new HashSet<>();
for (Plot current : getConnectedPlots(plot)) {
merged.add(current.id);
merged.add(current.getId());
}
ArrayDeque<Plot> frontier = new ArrayDeque<>(getConnectedPlots(plot));
Plot current;
@ -1413,8 +1414,8 @@ public class MainUtil {
Plot other = getPlotRelative(current, 0);
if (other.isOwner(uuid) && (other.getBasePlot(false).equals(current.getBasePlot(false)) || ((plots = other.getConnectedPlots()).size() <= max && frontier.addAll(plots) && (max -= plots.size()) != -1))) {
mergePlot(current.world, current, other, removeRoads);
merged.add(current.id);
merged.add(other.id);
merged.add(current.getId());
merged.add(other.getId());
toReturn = true;
}
}
@ -1422,8 +1423,8 @@ public class MainUtil {
Plot other = getPlotRelative(current, 1);
if (other.isOwner(uuid) && (other.getBasePlot(false).equals(current.getBasePlot(false)) || ((plots = other.getConnectedPlots()).size() <= max && frontier.addAll(plots) && (max -= plots.size()) != -1))) {
mergePlot(current.world, current, other, removeRoads);
merged.add(current.id);
merged.add(other.id);
merged.add(current.getId());
merged.add(other.getId());
toReturn = true;
}
}
@ -1431,8 +1432,8 @@ public class MainUtil {
Plot other = getPlotRelative(current, 2);
if (other.isOwner(uuid) && (other.getBasePlot(false).equals(current.getBasePlot(false)) || ((plots = other.getConnectedPlots()).size() <= max && frontier.addAll(plots) && (max -= plots.size()) != -1))) {
mergePlot(current.world, current, other, removeRoads);
merged.add(current.id);
merged.add(other.id);
merged.add(current.getId());
merged.add(other.getId());
toReturn = true;
}
}
@ -1440,14 +1441,14 @@ public class MainUtil {
Plot other = getPlotRelative(current, 3);
if (other.isOwner(uuid) && (other.getBasePlot(false).equals(current.getBasePlot(false)) || ((plots = other.getConnectedPlots()).size() <= max && frontier.addAll(plots) && (max -= plots.size()) != -1))) {
mergePlot(current.world, current, other, removeRoads);
merged.add(current.id);
merged.add(other.id);
merged.add(current.getId());
merged.add(other.getId());
toReturn = true;
}
}
}
if (removeRoads && toReturn) {
PlotManager manager = PS.get().getPlotManager(plot.world);
PlotManager manager = plot.getManager();
ArrayList<PlotId> ids = new ArrayList<>(merged);
manager.finishPlotMerge(plot.getWorld(), ids);
}
@ -1465,7 +1466,7 @@ public class MainUtil {
final String world = plot.world;
final PlotManager manager = PS.get().getPlotManager(world);
final PlotWorld plotworld = PS.get().getPlotWorld(world);
final PlotId id = new PlotId(Math.abs(plot.id.x) + 1, Math.abs(plot.id.x) + 1);
final PlotId id = new PlotId(Math.abs(plot.getId().x) + 1, Math.abs(plot.getId().x) + 1);
final Location bot = manager.getPlotBottomLocAbs(plotworld, id);
final Location top = manager.getPlotTopLocAbs(plotworld, id);
final int border = worldBorder.get(plot.world);
@ -1480,47 +1481,69 @@ public class MainUtil {
/**
* Create a plot and notify the world border and plot merger
*/
public static boolean createPlot(final UUID uuid, final Plot plot) {
public static Plot createPlot(final UUID uuid, final Plot plot) {
System.out.println("CLAIMING PLOT 1");
if (uuid == null) {
return null;
}
System.out.println("CLAIMING PLOT 2");
Plot existing = PS.get().getPlot(plot.world, plot.id);
if (existing != null) {
return existing;
}
if (MainUtil.worldBorder.containsKey(plot.world)) {
updateWorldBorder(plot);
}
final String w = plot.world;
if (PS.get().getPlot(plot.world, plot.id) != null) {
return true;
}
final Plot p = new Plot(w, plot.id, uuid);
if (p.owner == null) {
return false;
}
PS.get().updatePlot(p);
DBFunc.createPlotAndSettings(p, new Runnable() {
@Override
public void run() {
final PlotWorld plotworld = PS.get().getPlotWorld(plot.world);
if (plotworld.AUTO_MERGE) {
autoMerge(p, -1, Integer.MAX_VALUE, uuid, true);
plot.owner = uuid;
plot.getTrusted().clear();
plot.getMembers().clear();
plot.getDenied().clear();
plot.settings = new PlotSettings();
if (PS.get().updatePlot(plot)) {
DBFunc.createPlotAndSettings(plot, new Runnable() {
@Override
public void run() {
final PlotWorld plotworld = plot.getWorld();
if (plotworld.AUTO_MERGE) {
autoMerge(plot, -1, Integer.MAX_VALUE, uuid, true);
}
}
}
});
return true;
});
}
return plot;
}
/**
* Create a plot without notifying the merge function or world border manager
*/
public static Plot createPlotAbs(final UUID uuid, final Plot plot) {
final String w = plot.world;
Plot p = PS.get().getPlot(plot.world, plot.id);
if (p != null) {
return p;
}
p = new Plot(w, plot.id, uuid);
if (p.owner == null) {
if (uuid == null) {
return null;
}
PS.get().updatePlot(p);
DBFunc.createPlotAndSettings(p, null);
return p;
Plot existing = getPlot(plot.world, plot.id);
if (existing != null) {
return existing;
}
if (MainUtil.worldBorder.containsKey(plot.world)) {
updateWorldBorder(plot);
}
plot.owner = uuid;
plot.getTrusted().clear();
plot.getMembers().clear();
plot.getDenied().clear();
plot.settings = new PlotSettings();
if (PS.get().updatePlot(plot)) {
DBFunc.createPlotAndSettings(plot, new Runnable() {
@Override
public void run() {
final PlotWorld plotworld = plot.getWorld();
if (plotworld.AUTO_MERGE) {
autoMerge(plot, -1, Integer.MAX_VALUE, uuid, true);
}
}
});
}
return plot;
}
/**
@ -1598,7 +1621,7 @@ public class MainUtil {
* @return
*/
public static boolean clear(final Plot plot, final boolean isDelete, final Runnable whenDone) {
if (!EventUtil.manager.callClear(plot.world, plot.id)) {
if (!EventUtil.manager.callClear(plot.world, plot.getId())) {
return false;
}
final HashSet<RegionWrapper> regions = getRegions(plot);
@ -1608,8 +1631,8 @@ public class MainUtil {
removeSign(plot);
}
MainUtil.unlinkPlot(plot, true, !isDelete);
final PlotManager manager = PS.get().getPlotManager(plot.world);
final PlotWorld plotworld = PS.get().getPlotWorld(plot.world);
final PlotManager manager = plot.getManager();
final PlotWorld plotworld = plot.getWorld();
Runnable run = new Runnable() {
@Override
public void run() {
@ -1864,7 +1887,7 @@ public class MainUtil {
*
*/
public static Location getPlotHome(final Plot plot) {
return getPlotHome(plot.world, plot.id);
return getPlotHome(plot.world, plot.getId());
}
/**
@ -1905,17 +1928,17 @@ public class MainUtil {
* @return Location top of mega plot
*/
public static Location getPlotTopLoc_(Plot plot) {
Location top = getPlotTopLocAbs(plot.world, plot.id);
Location top = getPlotTopLocAbs(plot.world, plot.getId());
if (!plot.isMerged()) {
return top;
}
PlotId id;
if (plot.getMerged(2)) {
id = getPlotIdRelative(plot.id, 2);
id = getPlotIdRelative(plot.getId(), 2);
top.setZ(getPlotBottomLocAbs(plot.world, id).getZ() - 1);
}
if (plot.getMerged(1)) {
id = getPlotIdRelative(plot.id, 1);
id = getPlotIdRelative(plot.getId(), 1);
top.setX(getPlotBottomLocAbs(plot.world, id).getX() - 1);
}
return top;
@ -1931,17 +1954,17 @@ public class MainUtil {
* @return Location bottom of mega plot
*/
public static Location getPlotBottomLoc_(Plot plot) {
Location bot = getPlotBottomLocAbs(plot.world, plot.id);
Location bot = getPlotBottomLocAbs(plot.world, plot.getId());
if (!plot.isMerged()) {
return bot;
}
PlotId id;
if (plot.getMerged(0)) {
id = getPlotIdRelative(plot.id, 0);
id = getPlotIdRelative(plot.getId(), 0);
bot.setZ(getPlotTopLocAbs(plot.world, id).getZ() + 1);
}
if (plot.getMerged(3)) {
id = getPlotIdRelative(plot.id, 3);
id = getPlotIdRelative(plot.getId(), 3);
bot.setX(getPlotTopLocAbs(plot.world, id).getX() + 1);
}
return bot;
@ -2092,18 +2115,18 @@ public class MainUtil {
return false;
}
// Swap cached
final PlotId temp = new PlotId(p1.id.x.intValue(), p1.id.y.intValue());
p1.id.x = p2.id.x.intValue();
p1.id.y = p2.id.y.intValue();
p2.id.x = temp.x;
p2.id.y = temp.y;
final PlotId temp = new PlotId(p1.getId().x, p1.getId().y);
p1.getId().x = p2.getId().x;
p1.getId().y = p2.getId().y;
p2.getId().x = temp.x;
p2.getId().y = temp.y;
final Map<String, ConcurrentHashMap<PlotId, Plot>> raw = PS.get().getAllPlotsRaw();
raw.get(p1.world).remove(p1.id);
raw.get(p2.world).remove(p2.id);
p1.id.recalculateHash();
p2.id.recalculateHash();
raw.get(p1.world).put(p1.id, p1);
raw.get(p2.world).put(p2.id, p2);
raw.get(p1.world).remove(p1.getId());
raw.get(p2.world).remove(p2.getId());
p1.getId().recalculateHash();
p2.getId().recalculateHash();
raw.get(p1.world).put(p1.getId(), p1);
raw.get(p2.world).put(p2.getId(), p2);
// Swap database
DBFunc.dbManager.swapPlots(p2, p1);
TaskManager.runTaskLater(whenDone, 1);
@ -2129,11 +2152,11 @@ public class MainUtil {
return false;
}
final Map<String, ConcurrentHashMap<PlotId, Plot>> raw = PS.get().getAllPlotsRaw();
raw.get(pos1.world).remove(pos1.id);
pos1.id.x = (int) pos2.id.x;
pos1.id.y = (int) pos2.id.y;
pos1.id.recalculateHash();
raw.get(pos2.world).put(pos1.id, pos1);
raw.get(pos1.world).remove(pos1.getId());
pos1.getId().x = (int) pos2.getId().x;
pos1.getId().y = (int) pos2.getId().y;
pos1.getId().recalculateHash();
raw.get(pos2.world).put(pos1.getId(), pos1);
DBFunc.movePlot(pos1, pos2);
TaskManager.runTaskLater(whenDone, 1);
return true;
@ -2148,7 +2171,7 @@ public class MainUtil {
* @return
*/
public static boolean move(final Plot origin, final Plot destination, final Runnable whenDone, boolean allowSwap) {
PlotId offset = new PlotId(destination.id.x - origin.id.x, destination.id.y - origin.id.y);
PlotId offset = new PlotId(destination.getId().x - origin.getId().x, destination.getId().y - origin.getId().y);
Location db = destination.getBottomAbs();
Location ob = origin.getBottomAbs();
final int offsetX = db.getX() - ob.getX();
@ -2160,7 +2183,7 @@ public class MainUtil {
boolean occupied = false;
HashSet<Plot> plots = MainUtil.getConnectedPlots(origin);
for (Plot plot : plots) {
Plot other = MainUtil.getPlotAbs(destination.world, new PlotId(plot.id.x + offset.x, plot.id.y + offset.y));
Plot other = MainUtil.getPlotAbs(destination.world, new PlotId(plot.getId().x + offset.x, plot.getId().y + offset.y));
if (other.owner != null) {
if (!allowSwap) {
TaskManager.runTaskLater(whenDone, 1);
@ -2174,7 +2197,7 @@ public class MainUtil {
final ArrayDeque<RegionWrapper> regions = new ArrayDeque<>(getRegions(origin));
// move / swap data
for (Plot plot : plots) {
Plot other = MainUtil.getPlotAbs(destination.world, new PlotId(plot.id.x + offset.x, plot.id.y + offset.y));
Plot other = MainUtil.getPlotAbs(destination.world, new PlotId(plot.getId().x + offset.x, plot.getId().y + offset.y));
swapData(plot, other, null);
}
// copy terrain
@ -2235,7 +2258,7 @@ public class MainUtil {
* @return
*/
public static boolean copy(final Plot origin, final Plot destination, final Runnable whenDone) {
PlotId offset = new PlotId(destination.id.x - origin.id.x, destination.id.y - origin.id.y);
PlotId offset = new PlotId(destination.getId().x - origin.getId().x, destination.getId().y - origin.getId().y);
Location db = destination.getBottomAbs();
Location ob = origin.getBottomAbs();
final int offsetX = db.getX() - ob.getX();
@ -2246,7 +2269,7 @@ public class MainUtil {
}
HashSet<Plot> plots = MainUtil.getConnectedPlots(origin);
for (Plot plot : plots) {
Plot other = MainUtil.getPlotAbs(destination.world, new PlotId(plot.id.x + offset.x, plot.id.y + offset.y));
Plot other = MainUtil.getPlotAbs(destination.world, new PlotId(plot.getId().x + offset.x, plot.getId().y + offset.y));
if (other.owner != null) {
TaskManager.runTaskLater(whenDone, 1);
return false;
@ -2256,7 +2279,7 @@ public class MainUtil {
updateWorldBorder(destination);
// copy data
for (Plot plot : plots) {
Plot other = MainUtil.getPlotAbs(destination.world , new PlotId(plot.id.x + offset.x, plot.id.y + offset.y));
Plot other = MainUtil.getPlotAbs(destination.world , new PlotId(plot.getId().x + offset.x, plot.getId().y + offset.y));
other = createPlotAbs(plot.owner, other);
if ((plot.getFlags() != null) && (plot.getFlags().size() > 0)) {
other.getSettings().flags = plot.getFlags();
@ -2399,12 +2422,12 @@ public class MainUtil {
return null;
}
if (plot.settings == null) {
return new HashSet<>(Arrays.asList(plot));
return new HashSet<>(Collections.singletonList(plot));
}
boolean[] merged = plot.getMerged();
int hash = hash(merged);
if (hash == 0) {
return new HashSet<>(Arrays.asList(plot));
return new HashSet<>(Collections.singletonList(plot));
}
if (connected_cache != null && connected_cache.contains(plot)) {
return connected_cache;
@ -2416,7 +2439,7 @@ public class MainUtil {
connected_cache.add(plot);
Plot tmp;
if (merged[0]) {
tmp = getPlotAbs(plot.world, getPlotIdRelative(plot.id, 0));
tmp = getPlotAbs(plot.world, getPlotIdRelative(plot.getId(), 0));
if (!tmp.getMerged(2)) {
// invalid merge
PS.debug("Fixing invalid merge: " + plot);
@ -2432,7 +2455,7 @@ public class MainUtil {
frontier.add(tmp);
}
if (merged[1]) {
tmp = getPlotAbs(plot.world, getPlotIdRelative(plot.id, 1));
tmp = getPlotAbs(plot.world, getPlotIdRelative(plot.getId(), 1));
if (!tmp.getMerged(3)) {
// invalid merge
PS.debug("Fixing invalid merge: " + plot);
@ -2448,7 +2471,7 @@ public class MainUtil {
frontier.add(tmp);
}
if (merged[2]) {
tmp = getPlotAbs(plot.world, getPlotIdRelative(plot.id, 2));
tmp = getPlotAbs(plot.world, getPlotIdRelative(plot.getId(), 2));
if (!tmp.getMerged(0)) {
// invalid merge
PS.debug("Fixing invalid merge: " + plot);
@ -2464,7 +2487,7 @@ public class MainUtil {
frontier.add(tmp);
}
if (merged[3]) {
tmp = getPlotAbs(plot.world, getPlotIdRelative(plot.id, 3));
tmp = getPlotAbs(plot.world, getPlotIdRelative(plot.getId(), 3));
if (!tmp.getMerged(1)) {
// invalid merge
PS.debug("Fixing invalid merge: " + plot);
@ -2491,28 +2514,28 @@ public class MainUtil {
queuecache.remove(current);
merged = current.getMerged();
if (merged[0]) {
tmp = getPlotAbs(current.world, getPlotIdRelative(current.id, 0));
tmp = getPlotAbs(current.world, getPlotIdRelative(current.getId(), 0));
if (!queuecache.contains(tmp) && !connected_cache.contains(tmp)) {
queuecache.add(tmp);
frontier.add(tmp);
}
}
if (merged[1]) {
tmp = getPlotAbs(current.world, getPlotIdRelative(current.id, 1));
tmp = getPlotAbs(current.world, getPlotIdRelative(current.getId(), 1));
if (!queuecache.contains(tmp) && !connected_cache.contains(tmp)) {
queuecache.add(tmp);
frontier.add(tmp);
}
}
if (merged[2]) {
tmp = getPlotAbs(current.world, getPlotIdRelative(current.id, 2));
tmp = getPlotAbs(current.world, getPlotIdRelative(current.getId(), 2));
if (!queuecache.contains(tmp) && !connected_cache.contains(tmp)) {
queuecache.add(tmp);
frontier.add(tmp);
}
}
if (merged[3]) {
tmp = getPlotAbs(current.world, getPlotIdRelative(current.id, 3));
tmp = getPlotAbs(current.world, getPlotIdRelative(current.getId(), 3));
if (!queuecache.contains(tmp) && !connected_cache.contains(tmp)) {
queuecache.add(tmp);
frontier.add(tmp);
@ -2547,7 +2570,7 @@ public class MainUtil {
if (plot != null) {
return getConnectedPlots(plot);
}
return new HashSet<>(Arrays.asList(new Plot(world, id, null)));
return new HashSet<>(Collections.singletonList(new Plot(world, id, null)));
}
/**
@ -2693,7 +2716,7 @@ public class MainUtil {
* @return
*/
public static boolean setComponent(final Plot plot, final String component, final PlotBlock[] blocks) {
return PS.get().getPlotManager(plot.world).setComponent(PS.get().getPlotWorld(plot.world), plot.id, component, blocks);
return plot.getManager().setComponent(plot.getWorld(), plot.getId(), component, blocks);
}
/**
@ -2708,7 +2731,7 @@ public class MainUtil {
public static void format(String info, final Plot plot, final PlotPlayer player, final boolean full, final RunnableVal<String> whenDone) {
final int num = MainUtil.getConnectedPlots(plot).size();
final String alias = plot.getAlias().length() > 0 ? plot.getAlias() : C.NONE.s();
final Location bot = plot.getBottom();
final Location bot = plot.getCorners()[0];
final String biome = BlockManager.manager.getBiome(plot.world, bot.getX(), bot.getZ());
final String trusted = getPlayerList(plot.getTrusted());
final String members = getPlayerList(plot.getMembers());
@ -2725,7 +2748,7 @@ public class MainUtil {
final String owner = plot.owner == null ? "unowned" : getPlayerList(plot.getOwners());
info = info.replaceAll("%id%", plot.id.toString());
info = info.replaceAll("%id%", plot.getId().toString());
info = info.replaceAll("%alias%", alias);
info = info.replaceAll("%num%", num + "");
info = info.replaceAll("%desc%", description);
@ -2776,7 +2799,7 @@ public class MainUtil {
*/
public static String getPlayerList(final Collection<UUID> uuids) {
final ArrayList<UUID> l = new ArrayList<>(uuids);
if ((l == null) || (l.size() < 1)) {
if (l.size() < 1) {
return C.NONE.s();
}
final String c = C.PLOT_USER_LIST.s();

View File

@ -1,5 +1,20 @@
package com.intellectualcrafters.plot.util;
import com.google.common.base.Splitter;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.common.collect.Lists;
import com.google.common.collect.MapMaker;
import com.google.common.io.Closeables;
import com.google.common.io.Files;
import com.google.common.io.InputSupplier;
import com.google.common.io.OutputSupplier;
import com.google.common.primitives.Primitives;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.inventory.ItemStack;
import java.io.BufferedInputStream;
import java.io.DataInput;
import java.io.DataInputStream;
@ -16,6 +31,7 @@ import java.util.AbstractList;
import java.util.AbstractMap;
import java.util.AbstractSet;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@ -24,22 +40,6 @@ import java.util.concurrent.ConcurrentMap;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.Server;
import org.bukkit.inventory.ItemStack;
import com.google.common.base.Splitter;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.google.common.collect.Lists;
import com.google.common.collect.MapMaker;
import com.google.common.io.Closeables;
import com.google.common.io.Files;
import com.google.common.io.InputSupplier;
import com.google.common.io.OutputSupplier;
import com.google.common.primitives.Primitives;
public class NbtFactory {
// Convert between NBT id and the equivalent class in java
private static final BiMap<Integer, Class<?>> NBT_CLASS = HashBiMap.create();
@ -191,7 +191,7 @@ public class NbtFactory {
* @return An existing map, a new map or NULL.
*/
public NbtCompound getMap(final String key, final boolean createNew) {
return getMap(Arrays.asList(key), createNew);
return getMap(Collections.singletonList(key), createNew);
}
// Done

View File

@ -1,5 +1,30 @@
package com.intellectualcrafters.plot.util;
import com.google.common.collect.Lists;
import com.intellectualcrafters.jnbt.ByteArrayTag;
import com.intellectualcrafters.jnbt.CompoundTag;
import com.intellectualcrafters.jnbt.IntTag;
import com.intellectualcrafters.jnbt.ListTag;
import com.intellectualcrafters.jnbt.NBTInputStream;
import com.intellectualcrafters.jnbt.NBTOutputStream;
import com.intellectualcrafters.jnbt.ShortTag;
import com.intellectualcrafters.jnbt.StringTag;
import com.intellectualcrafters.jnbt.Tag;
import com.intellectualcrafters.json.JSONArray;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.generator.ClassicPlotWorld;
import com.intellectualcrafters.plot.object.ChunkLoc;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.object.RegionWrapper;
import com.intellectualcrafters.plot.object.RunnableVal;
import com.intellectualcrafters.plot.object.schematic.PlotItem;
import com.plotsquared.object.schematic.StateWrapper;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@ -29,31 +54,6 @@ import java.util.UUID;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import com.google.common.collect.Lists;
import com.intellectualcrafters.jnbt.ByteArrayTag;
import com.intellectualcrafters.jnbt.CompoundTag;
import com.intellectualcrafters.jnbt.IntTag;
import com.intellectualcrafters.jnbt.ListTag;
import com.intellectualcrafters.jnbt.NBTInputStream;
import com.intellectualcrafters.jnbt.NBTOutputStream;
import com.intellectualcrafters.jnbt.ShortTag;
import com.intellectualcrafters.jnbt.StringTag;
import com.intellectualcrafters.jnbt.Tag;
import com.intellectualcrafters.json.JSONArray;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.generator.ClassicPlotWorld;
import com.intellectualcrafters.plot.object.ChunkLoc;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.object.RegionWrapper;
import com.intellectualcrafters.plot.object.RunnableVal;
import com.intellectualcrafters.plot.object.schematic.PlotItem;
import com.plotsquared.object.schematic.StateWrapper;
public abstract class SchematicHandler {
public static SchematicHandler manager;
@ -85,9 +85,9 @@ public abstract class SchematicHandler {
}
final String name;
if (namingScheme == null) {
name = plot.id.x + ";" + plot.id.y + "," + plot.world + "," + o;
name = plot.getId().x + ";" + plot.getId().y + "," + plot.world + "," + o;
} else {
name = namingScheme.replaceAll("%owner%", o).replaceAll("%id%", plot.id.toString()).replaceAll("%idx%", plot.id.x + "").replaceAll("%idy%", plot.id.y + "")
name = namingScheme.replaceAll("%owner%", o).replaceAll("%id%", plot.getId().toString()).replaceAll("%idx%", plot.getId().x + "").replaceAll("%idy%", plot.getId().y + "")
.replaceAll("%world%", plot.world);
}
final String directory;
@ -97,21 +97,21 @@ public abstract class SchematicHandler {
directory = outputDir.getPath();
}
final Runnable THIS = this;
SchematicHandler.manager.getCompoundTag(plot.world, plot.id, new RunnableVal<CompoundTag>() {
SchematicHandler.manager.getCompoundTag(plot.world, plot.getId(), new RunnableVal<CompoundTag>() {
@Override
public void run() {
if (value == null) {
MainUtil.sendMessage(null, "&7 - Skipped plot &c" + plot.id);
MainUtil.sendMessage(null, "&7 - Skipped plot &c" + plot.getId());
} else {
TaskManager.runTaskAsync(new Runnable() {
@Override
public void run() {
MainUtil.sendMessage(null, "&6ID: " + plot.id);
MainUtil.sendMessage(null, "&6ID: " + plot.getId());
final boolean result = SchematicHandler.manager.save(value, directory + File.separator + name + ".schematic");
if (!result) {
MainUtil.sendMessage(null, "&7 - Failed to save &c" + plot.id);
MainUtil.sendMessage(null, "&7 - Failed to save &c" + plot.getId());
} else {
MainUtil.sendMessage(null, "&7 - &a success: " + plot.id);
MainUtil.sendMessage(null, "&7 - &a success: " + plot.getId());
}
TaskManager.runTask(new Runnable() {
@Override
@ -346,14 +346,12 @@ public abstract class SchematicHandler {
}
}
});
return;
}
}
});
} catch (final Exception e) {
e.printStackTrace();
TaskManager.runTask(whenDone);
return;
}
}
});

View File

@ -6,6 +6,7 @@ import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -97,6 +98,6 @@ public class UUIDFetcher implements Callable<Map<String, UUID>> {
}
public static UUID getUUIDOf(String name) throws Exception {
return new UUIDFetcher(Arrays.asList(name)).call().get(name);
return new UUIDFetcher(Collections.singletonList(name)).call().get(name);
}
}

View File

@ -2,21 +2,13 @@ package com.plotsquared.bukkit.chat;
import static com.plotsquared.bukkit.chat.TextualComponent.rawText;
import java.io.IOException;
import java.io.StringWriter;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonWriter;
import com.intellectualcrafters.configuration.serialization.ConfigurationSerializable;
import com.intellectualcrafters.configuration.serialization.ConfigurationSerialization;
import org.bukkit.Achievement;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
@ -28,13 +20,21 @@ import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonWriter;
import com.intellectualcrafters.configuration.serialization.ConfigurationSerializable;
import com.intellectualcrafters.configuration.serialization.ConfigurationSerialization;
import java.io.IOException;
import java.io.StringWriter;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.logging.Level;
/**
* Represents a formattable message. Such messages can use elements such as colors, formatting codes, hover and click data, and other features provided by the vanilla Minecraft <a href="http://minecraft.gamepedia.com/Tellraw#Raw_JSON_Text">JSON message formatter</a>.
@ -61,7 +61,7 @@ public class FancyMessage implements JsonRepresentedObject, Cloneable, Iterable<
@Override
public FancyMessage clone() throws CloneNotSupportedException {
final FancyMessage instance = (FancyMessage) super.clone();
instance.messageParts = new ArrayList<MessagePart>(messageParts.size());
instance.messageParts = new ArrayList<>(messageParts.size());
for (int i = 0; i < messageParts.size(); i++) {
instance.messageParts.add(i, messageParts.get(i).clone());
}
@ -79,7 +79,7 @@ public class FancyMessage implements JsonRepresentedObject, Cloneable, Iterable<
}
public FancyMessage(final TextualComponent firstPartText) {
messageParts = new ArrayList<MessagePart>();
messageParts = new ArrayList<>();
messageParts.add(new MessagePart(firstPartText));
jsonString = null;
dirty = false;
@ -503,9 +503,7 @@ public class FancyMessage implements JsonRepresentedObject, Cloneable, Iterable<
* @return This builder instance.
*/
public FancyMessage translationReplacements(final FancyMessage... replacements) {
for (final FancyMessage str : replacements) {
latest().translationReplacements.add(str);
}
Collections.addAll(latest().translationReplacements, replacements);
dirty = true;
@ -742,7 +740,7 @@ public class FancyMessage implements JsonRepresentedObject, Cloneable, Iterable<
// Doc copied from interface
@Override
public Map<String, Object> serialize() {
final HashMap<String, Object> map = new HashMap<String, Object>();
final HashMap<String, Object> map = new HashMap<>();
map.put("messageParts", messageParts);
// map.put("JSON", toJSONString());
return map;
@ -791,7 +789,7 @@ public class FancyMessage implements JsonRepresentedObject, Cloneable, Iterable<
// Deserialize text
if (TextualComponent.isTextKey(entry.getKey())) {
// The map mimics the YAML serialization, which has a "key" field and one or more "value" fields
final Map<String, Object> serializedMapForm = new HashMap<String, Object>(); // Must be object due to Bukkit serializer API compliance
final Map<String, Object> serializedMapForm = new HashMap<>(); // Must be object due to Bukkit serializer API compliance
serializedMapForm.put("key", entry.getKey());
if (entry.getValue().isJsonPrimitive()) {
// Assume string

View File

@ -1,18 +1,17 @@
package com.plotsquared.bukkit.database.plotme;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.HashMap;
import org.bukkit.Bukkit;
import org.bukkit.World;
import com.intellectualcrafters.configuration.file.FileConfiguration;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
import org.bukkit.Bukkit;
import org.bukkit.World;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Collections;
import java.util.HashMap;
public abstract class APlotMeConnector {
public abstract Connection getPlotMeConnection(final String plugin, final FileConfiguration plotConfig, final String dataFolder);
@ -42,15 +41,12 @@ public abstract class APlotMeConnector {
final String wallblock = plotConfig.getString("worlds." + world + ".WallBlockId"); //
PS.get().config.set("worlds." + actualWorldName + ".wall.block", wallblock);
final String floor = plotConfig.getString("worlds." + world + ".PlotFloorBlockId"); //
PS.get().config.set("worlds." + actualWorldName + ".plot.floor", Arrays.asList(floor));
PS.get().config.set("worlds." + actualWorldName + ".plot.floor", Collections.singletonList(floor));
final String filling = plotConfig.getString("worlds." + world + ".PlotFillingBlockId"); //
PS.get().config.set("worlds." + actualWorldName + ".plot.filling", Arrays.asList(filling));
PS.get().config.set("worlds." + actualWorldName + ".plot.filling", Collections.singletonList(filling));
final String road = plotConfig.getString("worlds." + world + ".RoadMainBlockId");
PS.get().config.set("worlds." + actualWorldName + ".road.block", road);
Integer height = plotConfig.getInt("worlds." + world + ".RoadHeight"); //
if (height == null) {
height = 64;
}
PS.get().config.set("worlds." + actualWorldName + ".road.height", height);
}

View File

@ -123,9 +123,7 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
e.printStackTrace();
owner = UUID.nameUUIDFromBytes(bytes);
}
if (owner != null) {
UUIDHandler.add(new StringWrapper(name), owner);
}
UUIDHandler.add(new StringWrapper(name), owner);
}
} catch (final Exception e) {
e.printStackTrace();
@ -166,13 +164,13 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
r.close();
stmt.close();
try {
PS.log(" - " + prefix + "Denied");
stmt = connection.prepareStatement("SELECT * FROM `" + prefix + "Denied`");
r = stmt.executeQuery();
while (r.next()) {
final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ"));
final String name = r.getString("player");
@ -195,9 +193,7 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
e.printStackTrace();
denied = UUID.nameUUIDFromBytes(bytes);
}
if (denied != null) {
UUIDHandler.add(new StringWrapper(name), denied);
}
UUIDHandler.add(new StringWrapper(name), denied);
}
} catch (final Exception e) {
e.printStackTrace();
@ -213,10 +209,10 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
plots.get(world).get(id).getDenied().add(denied);
}
}
stmt = connection.prepareStatement("SELECT * FROM `" + plugin + "Allowed`");
r = stmt.executeQuery();
while (r.next()) {
final PlotId id = new PlotId(r.getInt("idX"), r.getInt("idZ"));
final String name = r.getString("player");
@ -239,9 +235,7 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
e.printStackTrace();
helper = UUID.nameUUIDFromBytes(bytes);
}
if (helper != null) {
UUIDHandler.add(new StringWrapper(name), helper);
}
UUIDHandler.add(new StringWrapper(name), helper);
}
} catch (final Exception e) {
e.printStackTrace();
@ -257,11 +251,12 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
plots.get(world).get(id).getTrusted().add(helper);
}
}
r.close();
stmt.close();
} catch (final Exception e) {}
} catch (SQLException e) {
}
return plots;
}

View File

@ -30,6 +30,7 @@ import java.nio.file.Paths;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;
@ -51,7 +52,9 @@ import com.plotsquared.bukkit.generator.HybridGen;
/**
* Created 2014-08-17 for PlotSquared
*
*
*/
public class LikePlotMeConverter {
private final String plugin;
@ -128,7 +131,8 @@ public class LikePlotMeConverter {
content = content.replaceAll("PlotMe-DefaultGenerator", "PlotSquared");
content = content.replaceAll(plugin, "PlotSquared");
Files.write(path, content.getBytes(charset));
} catch (final Exception e) {}
} catch (IOException e) {
}
}
public boolean run(final APlotMeConnector connector) {
@ -210,7 +214,7 @@ public class LikePlotMeConverter {
pathwidth = 7;
}
PS.get().config.set("worlds." + world + ".road.width", pathwidth);
Integer pathheight = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".RoadHeight"); //
if ((pathheight == null) || (pathheight == 0)) {
pathheight = 64;
@ -232,21 +236,21 @@ public class LikePlotMeConverter {
if (floor == null) {
floor = "2";
}
PS.get().config.set("worlds." + world + ".plot.floor", Arrays.asList(floor));
PS.get().config.set("worlds." + world + ".plot.floor", Collections.singletonList(floor));
String filling = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".FillBlock"); //
if (filling == null) {
filling = "3";
}
PS.get().config.set("worlds." + world + ".plot.filling", Arrays.asList(filling));
PS.get().config.set("worlds." + world + ".plot.filling", Collections.singletonList(filling));
String road = PLOTME_DG_YML.getString("worlds." + plotMeWorldName + ".RoadMainBlock");
if (road == null) {
road = "5";
}
PS.get().config.set("worlds." + world + ".road.block", road);
Integer height = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".RoadHeight"); //
if ((height == null) || (height == 0)) {
if (height == 0) {
height = PLOTME_DG_YML.getInt("worlds." + plotMeWorldName + ".GroundHeight"); //
if ((height == null) || (height == 0)) {
if (height == 0) {
height = 64;
}
}
@ -255,12 +259,13 @@ public class LikePlotMeConverter {
PS.get().config.set("worlds." + actualWorldName + ".wall.height", height);
PS.get().config.save(PS.get().configFile);
}
} catch (final Exception e) {}
} catch (IOException e) {
}
}
for (final String world : plots.keySet()) {
int duplicate = 0;
for (final Plot plot : plots.get(world).values()) {
if (PS.get().getPlot(world, plot.id) == null) {
if (PS.get().getPlot(world, plot.getId()) == null) {
createdPlots.add(plot);
} else {
duplicate++;

View File

@ -136,8 +136,8 @@ public class PlotMeConnector_017 extends APlotMeConnector {
final Plot plot = entry.getValue();
final HashMap<PlotId, boolean[]> mergeMap = merges.get(plot.world);
if (mergeMap != null) {
if (mergeMap.containsKey(plot.id)) {
plot.setMerged(mergeMap.get(plot.id));
if (mergeMap.containsKey(plot.getId())) {
plot.setMerged(mergeMap.get(plot.getId()));
}
}
}
@ -188,7 +188,7 @@ public class PlotMeConnector_017 extends APlotMeConnector {
map = new HashMap<>();
processed.put(plot.world, map);
}
map.put(plot.id, plot);
map.put(plot.getId(), plot);
}
return processed;
}

View File

@ -20,15 +20,6 @@
////////////////////////////////////////////////////////////////////////////////////////////////////
package com.plotsquared.bukkit.generator;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.block.Biome;
import com.intellectualcrafters.plot.generator.HybridPlotManager;
import com.intellectualcrafters.plot.generator.HybridPlotWorld;
import com.intellectualcrafters.plot.object.PlotLoc;
@ -36,12 +27,22 @@ import com.intellectualcrafters.plot.object.PlotManager;
import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.object.PseudoRandom;
import com.intellectualcrafters.plot.object.RegionWrapper;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.block.Biome;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
/**
* The default generator is very messy, as we have decided to try externalize all calculations from within the loop. -
* You will see a lot of slower implementations have a single for loop. - This is perfectly fine to do, it will just
* mean world generation may take somewhat longer
*
*
*/
public class HybridGen extends BukkitPlotGenerator {
@ -120,7 +121,7 @@ public class HybridGen extends BukkitPlotGenerator {
biome = Biome.valueOf(this.plotworld.PLOT_BIOME);
try {
maxY = Bukkit.getWorld(plotworld.worldname).getMaxHeight();
} catch (final NullPointerException e) {}
} catch (final NullPointerException ignored) {}
if (maxY == 0) {
maxY = 256;
}
@ -176,7 +177,7 @@ public class HybridGen extends BukkitPlotGenerator {
public List<BukkitPlotPopulator> getPopulators(final String world) {
// You can have as many populators as you would like, e.g. tree
// populator, ore populator
return Arrays.asList((BukkitPlotPopulator) new HybridPop(plotworld));
return Collections.singletonList((BukkitPlotPopulator) new HybridPop(plotworld));
}
/**
@ -292,6 +293,5 @@ public class HybridGen extends BukkitPlotGenerator {
}
}
}
return;
}
}

View File

@ -123,7 +123,9 @@ import com.plotsquared.bukkit.util.BukkitUtil;
/**
* Player Events involving plots
*
*
*/
@SuppressWarnings({ "deprecation", "unchecked" })
public class PlayerEvents extends com.plotsquared.listener.PlotListener implements Listener {
@ -593,7 +595,7 @@ public class PlayerEvents extends com.plotsquared.listener.PlotListener implemen
final String message = event.getMessage();
String format = C.PLOT_CHAT_FORMAT.s();
final String sender = event.getPlayer().getDisplayName();
final PlotId id = plot.id;
final PlotId id = plot.getId();
final Set<Player> recipients = event.getRecipients();
recipients.clear();
for (final Player p : Bukkit.getOnlinePlayers()) {

View File

@ -1,6 +1,7 @@
package com.plotsquared.bukkit.listeners.worldedit;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@ -35,16 +36,16 @@ public class WEListener implements Listener {
public final HashSet<String> rad2 = new HashSet<>(Arrays.asList("fill", "fillr", "removenear", "remove"));
public final HashSet<String> rad2_1 = new HashSet<>(Arrays.asList("hcyl", "cyl"));
public final HashSet<String> rad2_2 = new HashSet<>(Arrays.asList("sphere", "pyramid"));
public final HashSet<String> rad2_3 = new HashSet<>(Arrays.asList("brush smooth"));
public final HashSet<String> rad3_1 = new HashSet<>(Arrays.asList("brush gravity"));
public final HashSet<String> rad2_3 = new HashSet<>(Collections.singletonList("brush smooth"));
public final HashSet<String> rad3_1 = new HashSet<>(Collections.singletonList("brush gravity"));
public final HashSet<String> rad3_2 = new HashSet<>(Arrays.asList("brush sphere", "brush cylinder"));
public final HashSet<String> region = new HashSet<>(Arrays.asList("move", "set", "replace", "overlay", "walls", "outline", "deform", "hollow", "smooth", "naturalize", "paste", "count", "distr",
"regen", "copy", "cut", "green", "setbiome"));
public final HashSet<String> regionExtend = new HashSet<>(Arrays.asList("stack"));
public final HashSet<String> regionExtend = new HashSet<>(Collections.singletonList("stack"));
public final HashSet<String> unregioned = new HashSet<>(Arrays.asList("paste", "redo", "undo", "rotate", "flip", "generate", "schematic", "schem"));
public final HashSet<String> unsafe1 = new HashSet<>(Arrays.asList("cs", ".s", "restore", "snapshot", "delchunks", "listchunks"));
public final HashSet<String> restricted = new HashSet<>(Arrays.asList("up"));
public final HashSet<String> restricted = new HashSet<>(Collections.singletonList("up"));
public final HashSet<String> other = new HashSet<>(Arrays.asList("undo", "redo"));
public boolean checkCommand(final List<String> list, final String cmd) {
@ -137,11 +138,9 @@ public class WEListener implements Listener {
final long volume = Math.abs((pos1.getBlockX() - pos2.getBlockX()) * (pos1.getBlockY() - pos2.getBlockY()) * (pos1.getBlockZ() - pos2.getBlockZ())) * modifier;
return checkVolume(pp, volume, max, e);
}
private final boolean set = false;
public boolean delay(final Player player, final String command, final boolean delayed) {
if (!Settings.QUEUE_COMMANDS || !Settings.EXPERIMENTAL_FAST_ASYNC_WORLDEDIT || set) {
if (!Settings.QUEUE_COMMANDS || !Settings.EXPERIMENTAL_FAST_ASYNC_WORLDEDIT) {
return false;
}
final boolean free = SetBlockQueue.addNotify(null);

View File

@ -1,13 +1,25 @@
package com.plotsquared.bukkit.util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.object.BlockLoc;
import com.intellectualcrafters.plot.object.ChunkLoc;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotLoc;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.object.RegionWrapper;
import com.intellectualcrafters.plot.object.RunnableVal;
import com.intellectualcrafters.plot.util.BlockUpdateUtil;
import com.intellectualcrafters.plot.util.ChunkManager;
import com.intellectualcrafters.plot.util.ClusterManager;
import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.SetBlockQueue.ChunkWrapper;
import com.intellectualcrafters.plot.util.TaskManager;
import com.plotsquared.bukkit.generator.AugmentedPopulator;
import com.plotsquared.bukkit.object.entity.EntityWrapper;
import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.DyeColor;
@ -43,26 +55,13 @@ import org.bukkit.generator.BlockPopulator;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.object.BlockLoc;
import com.intellectualcrafters.plot.object.ChunkLoc;
import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotBlock;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotLoc;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.object.RegionWrapper;
import com.intellectualcrafters.plot.object.RunnableVal;
import com.intellectualcrafters.plot.util.BlockUpdateUtil;
import com.intellectualcrafters.plot.util.ChunkManager;
import com.intellectualcrafters.plot.util.ClusterManager;
import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.SetBlockQueue.ChunkWrapper;
import com.intellectualcrafters.plot.util.TaskManager;
import com.plotsquared.bukkit.generator.AugmentedPopulator;
import com.plotsquared.bukkit.object.entity.EntityWrapper;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
public class BukkitChunkManager extends ChunkManager {
@Override
@ -83,7 +82,7 @@ public class BukkitChunkManager extends ChunkManager {
// Chunk chunk = worldObj.getChunkAt(loc.x, loc.z);
worldObj.regenerateChunk(loc.x, loc.z);
if (BlockUpdateUtil.setBlockManager != null) {
BlockUpdateUtil.setBlockManager.update(world, Arrays.asList(loc));
BlockUpdateUtil.setBlockManager.update(world, Collections.singletonList(loc));
}
for (final Player player : worldObj.getPlayers()) {
final org.bukkit.Location locObj = player.getLocation();
@ -854,8 +853,7 @@ public class BukkitChunkManager extends ChunkManager {
@Override
public boolean loadChunk(final String world, final ChunkLoc loc, final boolean force) {
boolean result = BukkitUtil.getWorld(world).getChunkAt(loc.x, loc.z).load(force);
return result;
return BukkitUtil.getWorld(world).getChunkAt(loc.x, loc.z).load(force);
}
@Override
@ -902,10 +900,8 @@ public class BukkitChunkManager extends ChunkManager {
BukkitSetBlockManager.setBlockManager.set(world2, xx, y, zz, 0, (byte) 0);
}
} else if (id2 == 0) {
if (id1 != 0) {
BukkitSetBlockManager.setBlockManager.set(world1, x, y, z, 0, (byte) 0);
BukkitSetBlockManager.setBlockManager.set(world2, xx, y, zz, id1, data1);
}
BukkitSetBlockManager.setBlockManager.set(world1, x, y, z, 0, (byte) 0);
BukkitSetBlockManager.setBlockManager.set(world2, xx, y, zz, id1, data1);
} else if (id1 == id2) {
if (data1 != data2) {
block1.setData(data2);
@ -948,8 +944,8 @@ public class BukkitChunkManager extends ChunkManager {
final int[] count = new int[6];
final World world = BukkitUtil.getWorld(plot.world);
final Location bot = MainUtil.getPlotBottomLocAbs(plot.world, plot.id);
final Location top = MainUtil.getPlotTopLocAbs(plot.world, plot.id);
final Location bot = MainUtil.getPlotBottomLocAbs(plot.world, plot.getId());
final Location top = MainUtil.getPlotTopLocAbs(plot.world, plot.getId());
final int bx = bot.getX() >> 4;
final int bz = bot.getZ() >> 4;
@ -985,7 +981,7 @@ public class BukkitChunkManager extends ChunkManager {
count(count, entity);
} else {
final PlotId id = MainUtil.getPlotId(BukkitUtil.getLocation(loc));
if (plot.id.equals(id)) {
if (plot.getId().equals(id)) {
count(count, entity);
}
}
@ -999,7 +995,7 @@ public class BukkitChunkManager extends ChunkManager {
for (final Entity entity : ents) {
if ((X == bx) || (X == tx) || (Z == bz) || (Z == tz)) {
final PlotId id = MainUtil.getPlotId(BukkitUtil.getLocation(entity));
if (plot.id.equals(id)) {
if (plot.getId().equals(id)) {
count(count, entity);
}
} else {
@ -1169,7 +1165,7 @@ public class BukkitChunkManager extends ChunkManager {
restoreEntities(world, 0, 0);
}
MainUtil.update(world.getName(), chunkLoc);
BukkitSetBlockManager.setBlockManager.update(Arrays.asList(new Chunk[] { chunk }));
BukkitSetBlockManager.setBlockManager.update(Collections.singletonList(chunk));
CURRENT_PLOT_CLEAR = null;
}

View File

@ -1,5 +1,6 @@
package com.plotsquared.bukkit.util;
import com.plotsquared.bukkit.object.BukkitPlayer;
import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.permission.Permission;
@ -54,19 +55,19 @@ public class BukkitEconHandler extends EconHandler {
public double getMoney(final PlotPlayer player) {
final double bal = super.getMoney(player);
if (Double.isNaN(bal)) {
return econ.getBalance(player.getName());
return econ.getBalance(((BukkitPlayer)player).player);
}
return bal;
}
@Override
public void withdrawMoney(final PlotPlayer player, final double amount) {
econ.withdrawPlayer(player.getName(), amount);
econ.withdrawPlayer(((BukkitPlayer)player).player, amount);
}
@Override
public void depositMoney(final PlotPlayer player, final double amount) {
econ.depositPlayer(player.getName(), amount);
econ.depositPlayer(((BukkitPlayer)player).player, amount);
}
@Override

View File

@ -11,7 +11,7 @@ public class BukkitTaskManager extends TaskManager {
return BukkitMain.THIS.getServer().getScheduler().scheduleSyncRepeatingTask(BukkitMain.THIS, r, interval, interval);
}
@Override
@SuppressWarnings("deprecation") @Override
public int taskRepeatAsync(final Runnable r, final int interval) {
return BukkitMain.THIS.getServer().getScheduler().scheduleAsyncRepeatingTask(BukkitMain.THIS, r, interval, interval);
}

View File

@ -24,10 +24,8 @@ public class LowerOfflineUUIDWrapper extends OfflineUUIDWrapper {
public LowerOfflineUUIDWrapper() {
try {
getOnline = Server.class.getMethod("getOnlinePlayers", new Class[0]);
} catch (final NoSuchMethodException e) {
e.printStackTrace();
} catch (final SecurityException e) {
getOnline = Server.class.getMethod("getOnlinePlayers");
} catch (final NoSuchMethodException | SecurityException e) {
e.printStackTrace();
}
}
@ -73,7 +71,8 @@ public class LowerOfflineUUIDWrapper extends OfflineUUIDWrapper {
@Override
public Player[] getOnlinePlayers() {
if (getOnline == null) {
return Bukkit.getOnlinePlayers().toArray(new Player[0]);
Collection<? extends Player> onlinePlayers = Bukkit.getOnlinePlayers();
return onlinePlayers.toArray(new Player[onlinePlayers.size()]);
}
try {
final Object players = getOnline.invoke(Bukkit.getServer(), arg);
@ -82,12 +81,13 @@ public class LowerOfflineUUIDWrapper extends OfflineUUIDWrapper {
} else {
@SuppressWarnings("unchecked")
final Collection<? extends Player> p = (Collection<? extends Player>) players;
return p.toArray(new Player[0]);
return p.toArray(new Player[p.size()]);
}
} catch (final Exception e) {
PS.debug("Failed to resolve online players");
getOnline = null;
return Bukkit.getOnlinePlayers().toArray(new Player[0]);
Collection<? extends Player> onlinePlayers = Bukkit.getOnlinePlayers();
return onlinePlayers.toArray(new Player[onlinePlayers.size()]);
}
}

View File

@ -25,10 +25,8 @@ public class OfflineUUIDWrapper extends UUIDWrapper {
public OfflineUUIDWrapper() {
try {
getOnline = Server.class.getMethod("getOnlinePlayers", new Class[0]);
} catch (final NoSuchMethodException e) {
e.printStackTrace();
} catch (final SecurityException e) {
getOnline = Server.class.getMethod("getOnlinePlayers");
} catch (final NoSuchMethodException | SecurityException e) {
e.printStackTrace();
}
}
@ -72,7 +70,8 @@ public class OfflineUUIDWrapper extends UUIDWrapper {
public Player[] getOnlinePlayers() {
if (getOnline == null) {
return Bukkit.getOnlinePlayers().toArray(new Player[0]);
Collection<? extends Player> onlinePlayers = Bukkit.getOnlinePlayers();
return onlinePlayers.toArray(new Player[onlinePlayers.size()]);
}
try {
final Object players = getOnline.invoke(Bukkit.getServer(), arg);
@ -81,12 +80,13 @@ public class OfflineUUIDWrapper extends UUIDWrapper {
} else {
@SuppressWarnings("unchecked")
final Collection<? extends Player> p = (Collection<? extends Player>) players;
return p.toArray(new Player[0]);
return p.toArray(new Player[p.size()]);
}
} catch (final Exception e) {
PS.debug("Failed to resolve online players");
getOnline = null;
return Bukkit.getOnlinePlayers().toArray(new Player[0]);
Collection<? extends Player> onlinePlayers = Bukkit.getOnlinePlayers();
return onlinePlayers.toArray(new Player[onlinePlayers.size()]);
}
}

View File

@ -1,22 +1,5 @@
package com.plotsquared.bukkit.uuid;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.HashMap;
import java.util.UUID;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import com.google.common.collect.HashBiMap;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
@ -29,6 +12,22 @@ import com.intellectualcrafters.plot.util.TaskManager;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.intellectualcrafters.plot.util.UUIDHandlerImplementation;
import com.intellectualcrafters.plot.uuid.UUIDWrapper;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayDeque;
import java.util.Collections;
import java.util.HashMap;
import java.util.UUID;
public class SQLUUIDHandler extends UUIDHandlerImplementation {
@ -220,7 +219,7 @@ public class SQLUUIDHandler extends UUIDHandlerImplementation {
connection.setUseCaches(false);
connection.setDoInput(true);
connection.setDoOutput(true);
String body = JSONArray.toJSONString(Arrays.asList(name));
String body = JSONArray.toJSONString(Collections.singletonList(name));
OutputStream stream = connection.getOutputStream();
stream.write(body.getBytes());
stream.flush();

View File

@ -24,7 +24,6 @@ import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import com.intellectualcrafters.plot.PS;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings;
import com.intellectualcrafters.plot.flag.Flag;
@ -46,7 +45,9 @@ import com.intellectualcrafters.plot.util.StringMan;
import com.intellectualcrafters.plot.util.TaskManager;
import com.intellectualcrafters.plot.util.UUIDHandler;
/**
/**
*/
public class PlotListener {
@ -55,7 +56,7 @@ public class PlotListener {
return false;
}
final Plot last = (Plot) pp.getMeta("lastplot");
if ((last != null) && !last.id.equals(plot.id)) {
if ((last != null) && !last.getId().equals(plot.getId())) {
plotExit(pp, last);
}
pp.setMeta("lastplot", MainUtil.getPlot(plot));
@ -103,7 +104,7 @@ public class PlotListener {
if (!Permissions.hasPermission(pp, "plots.gamemode.bypass")) {
pp.setGamemode((PlotGamemode) gamemodeFlag.getValue());
} else {
MainUtil.sendMessage(pp, StringMan.replaceAll(C.GAMEMODE_WAS_BYPASSED.s(), "{plot}", plot.id, "{gamemode}", gamemodeFlag.getValue()));
MainUtil.sendMessage(pp, StringMan.replaceAll(C.GAMEMODE_WAS_BYPASSED.s(), "{plot}", plot.getId(), "{gamemode}", gamemodeFlag.getValue()));
}
}
}
@ -163,10 +164,10 @@ public class PlotListener {
@Override
public void run() {
final Plot lastPlot = (Plot) pp.getMeta("lastplot");
if ((lastPlot != null) && plot.id.equals(lastPlot.id)) {
if ((lastPlot != null) && plot.getId().equals(lastPlot.getId())) {
final Map<String, String> replacements = new HashMap<>();
replacements.put("%x%", lastPlot.id.x + "");
replacements.put("%z%", lastPlot.id.y + "");
replacements.put("%x%", lastPlot.getId().x + "");
replacements.put("%z%", lastPlot.getId().y + "");
replacements.put("%world%", plot.world);
replacements.put("%greeting%", greeting);
replacements.put("%alias", plot.toString());
@ -188,7 +189,7 @@ public class PlotListener {
pp.deleteMeta("lastplot");
EventUtil.manager.callLeave(pp, plot);
if (plot.hasOwner()) {
final PlotWorld pw = PS.get().getPlotWorld(pp.getLocation().getWorld());
final PlotWorld pw = plot.getWorld();
if (pw == null) {
return true;
}

View File

@ -399,7 +399,7 @@ public class MainListener {
// - Getting displayname currently causes NPE, so wait until sponge fixes that
final String sender = player.getName();
final PlotId id = plot.id;
final PlotId id = plot.getId();
final String newMessage = StringMan.replaceAll(C.PLOT_CHAT_FORMAT.s(), "%plot_id%", id.x + ";" + id.y, "%sender%", sender);
final Text forcedMessage = event.getMessage();
// String forcedMessage = StringMan.replaceAll(C.PLOT_CHAT_FORCED.s(), "%plot_id%", id.x + ";" + id.y, "%sender%", sender);
@ -811,7 +811,7 @@ public class MainListener {
}
return;
}
} else if ((lastPlot != null) && id.equals(lastPlot.id)) {
} else if ((lastPlot != null) && id.equals(lastPlot.getId())) {
return;
} else {
final Plot plot = MainUtil.getPlot(worldname, id);
@ -873,7 +873,7 @@ public class MainListener {
}
return;
}
} else if ((lastPlot != null) && id.equals(lastPlot.id)) {
} else if ((lastPlot != null) && id.equals(lastPlot.getId())) {
return;
} else {
final Plot plot = MainUtil.getPlot(worldname, id);

View File

@ -1,11 +1,9 @@
package com.plotsquared.sponge.util;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
import com.intellectualcrafters.plot.commands.MainCommand;
import com.intellectualcrafters.plot.object.ConsolePlayer;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.plotsquared.sponge.SpongeMain;
import org.spongepowered.api.command.CommandCallable;
import org.spongepowered.api.command.CommandException;
import org.spongepowered.api.command.CommandResult;
@ -14,10 +12,11 @@ import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.text.Text;
import org.spongepowered.api.text.Texts;
import com.intellectualcrafters.plot.commands.MainCommand;
import com.intellectualcrafters.plot.object.ConsolePlayer;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.plotsquared.sponge.SpongeMain;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.UUID;
public class SpongeCommand implements CommandCallable {
@ -42,7 +41,7 @@ public class SpongeCommand implements CommandCallable {
@Override
public List<String> getSuggestions(final CommandSource cmd, final String string) throws CommandException {
// TODO Auto-generated method stub
return new ArrayList<>(Arrays.asList("TEST"));
return new ArrayList<>(Collections.singletonList("TEST"));
}
@Override

View File

@ -1,16 +1,16 @@
package com.plotsquared.sponge.uuid;
import java.util.UUID;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.profile.GameProfile;
import com.google.common.base.Charsets;
import com.intellectualcrafters.plot.object.OfflinePlotPlayer;
import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.UUIDHandler;
import com.intellectualcrafters.plot.uuid.UUIDWrapper;
import com.plotsquared.sponge.SpongeMain;
import org.spongepowered.api.entity.living.player.Player;
import org.spongepowered.api.profile.GameProfile;
import java.util.Collection;
import java.util.UUID;
public class SpongeLowerOfflineUUIDWrapper extends UUIDWrapper {
@ -75,7 +75,8 @@ public class SpongeLowerOfflineUUIDWrapper extends UUIDWrapper {
}
public Player[] getOnlinePlayers() {
return SpongeMain.THIS.getServer().getOnlinePlayers().toArray(new Player[0]);
Collection<Player> onlinePlayers = SpongeMain.THIS.getServer().getOnlinePlayers();
return onlinePlayers.toArray(new Player[onlinePlayers.size()]);
}
@Override

Binary file not shown.