diff --git a/.gitignore b/.gitignore
index 9ead3a473..71dadcdda 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
+PlotSquared/.project
# Created by https://www.gitignore.io
### Intellij ###
@@ -48,6 +49,8 @@ com_crashlytics_export_strings.xml
### Eclipse ###
+.classpath
+.project
*.pydevproject
.metadata
.gradle
@@ -93,8 +96,6 @@ local.properties
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
-.classpath
-.project
/target
/plotsquared/target
*.MF
\ No newline at end of file
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ByteArrayTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ByteArrayTag.java
index 32cdf131b..a73ecb9ba 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ByteArrayTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ByteArrayTag.java
@@ -4,9 +4,8 @@ package com.intellectualcrafters.jnbt;
* The {@code TAG_Byte_Array} tag.
*/
public final class ByteArrayTag extends Tag {
-
private final byte[] value;
-
+
/**
* Creates the tag with an empty name.
*
@@ -16,7 +15,7 @@ public final class ByteArrayTag extends Tag {
super();
this.value = value;
}
-
+
/**
* Creates the tag.
*
@@ -27,12 +26,12 @@ public final class ByteArrayTag extends Tag {
super(name);
this.value = value;
}
-
+
@Override
public byte[] getValue() {
return this.value;
}
-
+
@Override
public String toString() {
final StringBuilder hex = new StringBuilder();
@@ -50,5 +49,4 @@ public final class ByteArrayTag extends Tag {
}
return "TAG_Byte_Array" + append + ": " + hex;
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ByteTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ByteTag.java
index 8e2ad5638..388ed82e2 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ByteTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ByteTag.java
@@ -4,9 +4,8 @@ package com.intellectualcrafters.jnbt;
* The {@code TAG_Byte} tag.
*/
public final class ByteTag extends Tag {
-
private final byte value;
-
+
/**
* Creates the tag with an empty name.
*
@@ -16,7 +15,7 @@ public final class ByteTag extends Tag {
super();
this.value = value;
}
-
+
/**
* Creates the tag.
*
@@ -27,12 +26,12 @@ public final class ByteTag extends Tag {
super(name);
this.value = value;
}
-
+
@Override
public Byte getValue() {
return this.value;
}
-
+
@Override
public String toString() {
final String name = getName();
@@ -42,5 +41,4 @@ public final class ByteTag extends Tag {
}
return "TAG_Byte" + append + ": " + this.value;
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/CompoundTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/CompoundTag.java
index a8d0b052b..10c11b32c 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/CompoundTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/CompoundTag.java
@@ -9,9 +9,8 @@ import java.util.Map;
* The {@code TAG_Compound} tag.
*/
public final class CompoundTag extends Tag {
-
private final Map value;
-
+
/**
* Creates the tag with an empty name.
*
@@ -21,7 +20,7 @@ public final class CompoundTag extends Tag {
super();
this.value = Collections.unmodifiableMap(value);
}
-
+
/**
* Creates the tag.
*
@@ -32,7 +31,7 @@ public final class CompoundTag extends Tag {
super(name);
this.value = Collections.unmodifiableMap(value);
}
-
+
/**
* Returns whether this compound tag contains the given key.
*
@@ -43,12 +42,12 @@ public final class CompoundTag extends Tag {
public boolean containsKey(final String key) {
return this.value.containsKey(key);
}
-
+
@Override
public Map getValue() {
return this.value;
}
-
+
/**
* Return a new compound tag with the given values.
*
@@ -59,7 +58,7 @@ public final class CompoundTag extends Tag {
public CompoundTag setValue(final Map value) {
return new CompoundTag(getName(), value);
}
-
+
/**
* Create a compound tag builder.
*
@@ -68,7 +67,7 @@ public final class CompoundTag extends Tag {
public CompoundTagBuilder createBuilder() {
return new CompoundTagBuilder(new HashMap(this.value));
}
-
+
/**
* Get a byte array named with the given key.
If the key does not exist or its value is not a byte array
* tag, then an empty byte array will be returned.
@@ -85,7 +84,7 @@ public final class CompoundTag extends Tag {
return new byte[0];
}
}
-
+
/**
* Get a byte named with the given key.
If the key does not exist or its value is not a byte tag, then
* {@code 0} will be returned.
@@ -102,7 +101,7 @@ public final class CompoundTag extends Tag {
return (byte) 0;
}
}
-
+
/**
* Get a double named with the given key.
If the key does not exist or its value is not a double tag, then
* {@code 0} will be returned.
@@ -119,7 +118,7 @@ public final class CompoundTag extends Tag {
return 0;
}
}
-
+
/**
* Get a double named with the given key, even if it's another type of number.
If the key does not exist or
* its value is not a number, then {@code 0} will be returned.
@@ -132,27 +131,21 @@ public final class CompoundTag extends Tag {
final Tag tag = this.value.get(key);
if (tag instanceof ByteTag) {
return ((ByteTag) tag).getValue();
-
} else if (tag instanceof ShortTag) {
return ((ShortTag) tag).getValue();
-
} else if (tag instanceof IntTag) {
return ((IntTag) tag).getValue();
-
} else if (tag instanceof LongTag) {
return ((LongTag) tag).getValue();
-
} else if (tag instanceof FloatTag) {
return ((FloatTag) tag).getValue();
-
} else if (tag instanceof DoubleTag) {
return ((DoubleTag) tag).getValue();
-
} else {
return 0;
}
}
-
+
/**
* Get a float named with the given key.
If the key does not exist or its value is not a float tag, then
* {@code 0} will be returned.
@@ -169,7 +162,7 @@ public final class CompoundTag extends Tag {
return 0;
}
}
-
+
/**
* Get a {@code int[]} named with the given key.
If the key does not exist or its value is not an int array
* tag, then an empty array will be returned.
@@ -186,7 +179,7 @@ public final class CompoundTag extends Tag {
return new int[0];
}
}
-
+
/**
* Get an int named with the given key.
If the key does not exist or its value is not an int tag, then
* {@code 0} will be returned.
@@ -203,7 +196,7 @@ public final class CompoundTag extends Tag {
return 0;
}
}
-
+
/**
* Get an int named with the given key, even if it's another type of number.
If the key does not exist or
* its value is not a number, then {@code 0} will be returned.
@@ -216,27 +209,21 @@ public final class CompoundTag extends Tag {
final Tag tag = this.value.get(key);
if (tag instanceof ByteTag) {
return ((ByteTag) tag).getValue();
-
} else if (tag instanceof ShortTag) {
return ((ShortTag) tag).getValue();
-
} else if (tag instanceof IntTag) {
return ((IntTag) tag).getValue();
-
} else if (tag instanceof LongTag) {
return ((LongTag) tag).getValue().intValue();
-
} else if (tag instanceof FloatTag) {
return ((FloatTag) tag).getValue().intValue();
-
} else if (tag instanceof DoubleTag) {
return ((DoubleTag) tag).getValue().intValue();
-
} else {
return 0;
}
}
-
+
/**
* Get a list of tags named with the given key.
If the key does not exist or its value is not a list tag,
* then an empty list will be returned.
@@ -253,7 +240,7 @@ public final class CompoundTag extends Tag {
return Collections.emptyList();
}
}
-
+
/**
* Get a {@code TagList} named with the given key.
If the key does not exist or its value is not a list
* tag, then an empty tag list will be returned.
@@ -267,10 +254,10 @@ public final class CompoundTag extends Tag {
if (tag instanceof ListTag) {
return (ListTag) tag;
} else {
- return new ListTag(key, StringTag.class, Collections.emptyList());
+ return new ListTag(key, StringTag.class, Collections. emptyList());
}
}
-
+
/**
* Get a list of tags named with the given key.
If the key does not exist or its value is not a list tag,
* then an empty list will be returned. If the given key references a list but the list of of a different type, then
@@ -296,7 +283,7 @@ public final class CompoundTag extends Tag {
return Collections.emptyList();
}
}
-
+
/**
* Get a long named with the given key.
If the key does not exist or its value is not a long tag, then
* {@code 0} will be returned.
@@ -313,7 +300,7 @@ public final class CompoundTag extends Tag {
return 0L;
}
}
-
+
/**
* Get a long named with the given key, even if it's another type of number.
If the key does not exist or
* its value is not a number, then {@code 0} will be returned.
@@ -326,27 +313,21 @@ public final class CompoundTag extends Tag {
final Tag tag = this.value.get(key);
if (tag instanceof ByteTag) {
return ((ByteTag) tag).getValue();
-
} else if (tag instanceof ShortTag) {
return ((ShortTag) tag).getValue();
-
} else if (tag instanceof IntTag) {
return ((IntTag) tag).getValue();
-
} else if (tag instanceof LongTag) {
return ((LongTag) tag).getValue();
-
} else if (tag instanceof FloatTag) {
return ((FloatTag) tag).getValue().longValue();
-
} else if (tag instanceof DoubleTag) {
return ((DoubleTag) tag).getValue().longValue();
-
} else {
return 0L;
}
}
-
+
/**
* Get a short named with the given key.
If the key does not exist or its value is not a short tag, then
* {@code 0} will be returned.
@@ -363,7 +344,7 @@ public final class CompoundTag extends Tag {
return 0;
}
}
-
+
/**
* Get a string named with the given key.
If the key does not exist or its value is not a string tag, then
* {@code ""} will be returned.
@@ -380,7 +361,7 @@ public final class CompoundTag extends Tag {
return "";
}
}
-
+
@Override
public String toString() {
final String name = getName();
@@ -396,5 +377,4 @@ public final class CompoundTag extends Tag {
bldr.append("}");
return bldr.toString();
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/CompoundTagBuilder.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/CompoundTagBuilder.java
index 365b7322a..86e04e2fd 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/CompoundTagBuilder.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/CompoundTagBuilder.java
@@ -9,16 +9,15 @@ import java.util.Map;
* Helps create compound tags.
*/
public class CompoundTagBuilder {
-
private final Map entries;
-
+
/**
* Create a new instance.
*/
CompoundTagBuilder() {
this.entries = new HashMap();
}
-
+
/**
* Create a new instance and use the given map (which will be modified).
*
@@ -28,7 +27,7 @@ public class CompoundTagBuilder {
checkNotNull(value);
this.entries = value;
}
-
+
/**
* Create a new builder instance.
*
@@ -37,7 +36,7 @@ public class CompoundTagBuilder {
public static CompoundTagBuilder create() {
return new CompoundTagBuilder();
}
-
+
/**
* Put the given key and tag into the compound tag.
*
@@ -52,7 +51,7 @@ public class CompoundTagBuilder {
this.entries.put(key, value);
return this;
}
-
+
/**
* Put the given key and value into the compound tag as a {@code ByteArrayTag}.
*
@@ -64,7 +63,7 @@ public class CompoundTagBuilder {
public CompoundTagBuilder putByteArray(final String key, final byte[] value) {
return put(key, new ByteArrayTag(key, value));
}
-
+
/**
* Put the given key and value into the compound tag as a {@code ByteTag}.
*
@@ -76,7 +75,7 @@ public class CompoundTagBuilder {
public CompoundTagBuilder putByte(final String key, final byte value) {
return put(key, new ByteTag(key, value));
}
-
+
/**
* Put the given key and value into the compound tag as a {@code DoubleTag}.
*
@@ -88,7 +87,7 @@ public class CompoundTagBuilder {
public CompoundTagBuilder putDouble(final String key, final double value) {
return put(key, new DoubleTag(key, value));
}
-
+
/**
* Put the given key and value into the compound tag as a {@code FloatTag}.
*
@@ -100,7 +99,7 @@ public class CompoundTagBuilder {
public CompoundTagBuilder putFloat(final String key, final float value) {
return put(key, new FloatTag(key, value));
}
-
+
/**
* Put the given key and value into the compound tag as a {@code IntArrayTag}.
*
@@ -112,7 +111,7 @@ public class CompoundTagBuilder {
public CompoundTagBuilder putIntArray(final String key, final int[] value) {
return put(key, new IntArrayTag(key, value));
}
-
+
/**
* Put the given key and value into the compound tag as an {@code IntTag}.
*
@@ -124,7 +123,7 @@ public class CompoundTagBuilder {
public CompoundTagBuilder putInt(final String key, final int value) {
return put(key, new IntTag(key, value));
}
-
+
/**
* Put the given key and value into the compound tag as a {@code LongTag}.
*
@@ -136,7 +135,7 @@ public class CompoundTagBuilder {
public CompoundTagBuilder putLong(final String key, final long value) {
return put(key, new LongTag(key, value));
}
-
+
/**
* Put the given key and value into the compound tag as a {@code ShortTag}.
*
@@ -148,7 +147,7 @@ public class CompoundTagBuilder {
public CompoundTagBuilder putShort(final String key, final short value) {
return put(key, new ShortTag(key, value));
}
-
+
/**
* Put the given key and value into the compound tag as a {@code StringTag}.
*
@@ -160,7 +159,7 @@ public class CompoundTagBuilder {
public CompoundTagBuilder putString(final String key, final String value) {
return put(key, new StringTag(key, value));
}
-
+
/**
* Put all the entries from the given map into this map.
*
@@ -175,7 +174,7 @@ public class CompoundTagBuilder {
}
return this;
}
-
+
/**
* Build an unnamed compound tag with this builder's entries.
*
@@ -184,7 +183,7 @@ public class CompoundTagBuilder {
public CompoundTag build() {
return new CompoundTag(new HashMap(this.entries));
}
-
+
/**
* Build a new compound tag with this builder's entries.
*
@@ -195,5 +194,4 @@ public class CompoundTagBuilder {
public CompoundTag build(final String name) {
return new CompoundTag(name, new HashMap(this.entries));
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/DoubleTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/DoubleTag.java
index 2a4c52448..d85fd6135 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/DoubleTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/DoubleTag.java
@@ -4,9 +4,8 @@ package com.intellectualcrafters.jnbt;
* The {@code TAG_Double} tag.
*/
public final class DoubleTag extends Tag {
-
private final double value;
-
+
/**
* Creates the tag with an empty name.
*
@@ -16,7 +15,7 @@ public final class DoubleTag extends Tag {
super();
this.value = value;
}
-
+
/**
* Creates the tag.
*
@@ -27,12 +26,12 @@ public final class DoubleTag extends Tag {
super(name);
this.value = value;
}
-
+
@Override
public Double getValue() {
return this.value;
}
-
+
@Override
public String toString() {
final String name = getName();
@@ -42,5 +41,4 @@ public final class DoubleTag extends Tag {
}
return "TAG_Double" + append + ": " + this.value;
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/EndTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/EndTag.java
index 408206b1b..981925184 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/EndTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/EndTag.java
@@ -4,22 +4,20 @@ package com.intellectualcrafters.jnbt;
* The {@code TAG_End} tag.
*/
public final class EndTag extends Tag {
-
/**
* Creates the tag.
*/
public EndTag() {
super();
}
-
+
@Override
public Object getValue() {
return null;
}
-
+
@Override
public String toString() {
return "TAG_End";
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/FloatTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/FloatTag.java
index a9701340a..2dea1766f 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/FloatTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/FloatTag.java
@@ -4,9 +4,8 @@ package com.intellectualcrafters.jnbt;
* The {@code TAG_Float} tag.
*/
public final class FloatTag extends Tag {
-
private final float value;
-
+
/**
* Creates the tag with an empty name.
*
@@ -16,7 +15,7 @@ public final class FloatTag extends Tag {
super();
this.value = value;
}
-
+
/**
* Creates the tag.
*
@@ -27,12 +26,12 @@ public final class FloatTag extends Tag {
super(name);
this.value = value;
}
-
+
@Override
public Float getValue() {
return this.value;
}
-
+
@Override
public String toString() {
final String name = getName();
@@ -42,5 +41,4 @@ public final class FloatTag extends Tag {
}
return "TAG_Float" + append + ": " + this.value;
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/IntArrayTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/IntArrayTag.java
index 9439f051b..c4349f89e 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/IntArrayTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/IntArrayTag.java
@@ -6,9 +6,8 @@ import static com.google.common.base.Preconditions.checkNotNull;
* The {@code TAG_Int_Array} tag.
*/
public final class IntArrayTag extends Tag {
-
private final int[] value;
-
+
/**
* Creates the tag with an empty name.
*
@@ -19,7 +18,7 @@ public final class IntArrayTag extends Tag {
checkNotNull(value);
this.value = value;
}
-
+
/**
* Creates the tag.
*
@@ -31,12 +30,12 @@ public final class IntArrayTag extends Tag {
checkNotNull(value);
this.value = value;
}
-
+
@Override
public int[] getValue() {
return this.value;
}
-
+
@Override
public String toString() {
final StringBuilder hex = new StringBuilder();
@@ -54,5 +53,4 @@ public final class IntArrayTag extends Tag {
}
return "TAG_Int_Array" + append + ": " + hex;
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/IntTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/IntTag.java
index 7e5328f37..bee6eb7d7 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/IntTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/IntTag.java
@@ -4,9 +4,8 @@ package com.intellectualcrafters.jnbt;
* The {@code TAG_Int} tag.
*/
public final class IntTag extends Tag {
-
private final int value;
-
+
/**
* Creates the tag with an empty name.
*
@@ -16,7 +15,7 @@ public final class IntTag extends Tag {
super();
this.value = value;
}
-
+
/**
* Creates the tag.
*
@@ -27,12 +26,12 @@ public final class IntTag extends Tag {
super(name);
this.value = value;
}
-
+
@Override
public Integer getValue() {
return this.value;
}
-
+
@Override
public String toString() {
final String name = getName();
@@ -42,5 +41,4 @@ public final class IntTag extends Tag {
}
return "TAG_Int" + append + ": " + this.value;
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ListTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ListTag.java
index 434f1a95a..415721c30 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ListTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ListTag.java
@@ -12,10 +12,9 @@ import javax.annotation.Nullable;
* The {@code TAG_List} tag.
*/
public final class ListTag extends Tag {
-
private final Class extends Tag> type;
private final List value;
-
+
/**
* Creates the tag with an empty name.
*
@@ -28,7 +27,7 @@ public final class ListTag extends Tag {
this.type = type;
this.value = Collections.unmodifiableList(value);
}
-
+
/**
* Creates the tag.
*
@@ -42,7 +41,7 @@ public final class ListTag extends Tag {
this.type = type;
this.value = Collections.unmodifiableList(value);
}
-
+
/**
* Gets the type of item in this list.
*
@@ -51,12 +50,12 @@ public final class ListTag extends Tag {
public Class extends Tag> getType() {
return this.type;
}
-
+
@Override
public List getValue() {
return this.value;
}
-
+
/**
* Create a new list tag with this tag's name and type.
*
@@ -67,7 +66,7 @@ public final class ListTag extends Tag {
public ListTag setValue(final List list) {
return new ListTag(getName(), getType(), list);
}
-
+
/**
* Get the tag if it exists at the given index.
*
@@ -83,7 +82,7 @@ public final class ListTag extends Tag {
return null;
}
}
-
+
/**
* Get a byte array named with the given index.
If the index does not exist or its value is not a byte
* array tag, then an empty byte array will be returned.
@@ -100,7 +99,7 @@ public final class ListTag extends Tag {
return new byte[0];
}
}
-
+
/**
* Get a byte named with the given index.
If the index does not exist or its value is not a byte tag, then
* {@code 0} will be returned.
@@ -117,7 +116,7 @@ public final class ListTag extends Tag {
return (byte) 0;
}
}
-
+
/**
* Get a double named with the given index.
If the index does not exist or its value is not a double tag,
* then {@code 0} will be returned.
@@ -134,7 +133,7 @@ public final class ListTag extends Tag {
return 0;
}
}
-
+
/**
* Get a double named with the given index, even if it's another type of number.
If the index does not
* exist or its value is not a number, then {@code 0} will be returned.
@@ -147,27 +146,21 @@ public final class ListTag extends Tag {
final Tag tag = getIfExists(index);
if (tag instanceof ByteTag) {
return ((ByteTag) tag).getValue();
-
} else if (tag instanceof ShortTag) {
return ((ShortTag) tag).getValue();
-
} else if (tag instanceof IntTag) {
return ((IntTag) tag).getValue();
-
} else if (tag instanceof LongTag) {
return ((LongTag) tag).getValue();
-
} else if (tag instanceof FloatTag) {
return ((FloatTag) tag).getValue();
-
} else if (tag instanceof DoubleTag) {
return ((DoubleTag) tag).getValue();
-
} else {
return 0;
}
}
-
+
/**
* Get a float named with the given index.
If the index does not exist or its value is not a float tag,
* then {@code 0} will be returned.
@@ -184,7 +177,7 @@ public final class ListTag extends Tag {
return 0;
}
}
-
+
/**
* Get a {@code int[]} named with the given index.
If the index does not exist or its value is not an int
* array tag, then an empty array will be returned.
@@ -201,7 +194,7 @@ public final class ListTag extends Tag {
return new int[0];
}
}
-
+
/**
* Get an int named with the given index.
If the index does not exist or its value is not an int tag, then
* {@code 0} will be returned.
@@ -218,7 +211,7 @@ public final class ListTag extends Tag {
return 0;
}
}
-
+
/**
* Get an int named with the given index, even if it's another type of number.
If the index does not exist
* or its value is not a number, then {@code 0} will be returned.
@@ -231,27 +224,21 @@ public final class ListTag extends Tag {
final Tag tag = getIfExists(index);
if (tag instanceof ByteTag) {
return ((ByteTag) tag).getValue();
-
} else if (tag instanceof ShortTag) {
return ((ShortTag) tag).getValue();
-
} else if (tag instanceof IntTag) {
return ((IntTag) tag).getValue();
-
} else if (tag instanceof LongTag) {
return ((LongTag) tag).getValue().intValue();
-
} else if (tag instanceof FloatTag) {
return ((FloatTag) tag).getValue().intValue();
-
} else if (tag instanceof DoubleTag) {
return ((DoubleTag) tag).getValue().intValue();
-
} else {
return 0;
}
}
-
+
/**
* Get a list of tags named with the given index.
If the index does not exist or its value is not a list
* tag, then an empty list will be returned.
@@ -268,7 +255,7 @@ public final class ListTag extends Tag {
return Collections.emptyList();
}
}
-
+
/**
* Get a {@code TagList} named with the given index.
If the index does not exist or its value is not a list
* tag, then an empty tag list will be returned.
@@ -282,10 +269,10 @@ public final class ListTag extends Tag {
if (tag instanceof ListTag) {
return (ListTag) tag;
} else {
- return new ListTag(StringTag.class, Collections.emptyList());
+ return new ListTag(StringTag.class, Collections. emptyList());
}
}
-
+
/**
* Get a list of tags named with the given index.
If the index does not exist or its value is not a list
* tag, then an empty list will be returned. If the given index references a list but the list of of a different
@@ -311,7 +298,7 @@ public final class ListTag extends Tag {
return Collections.emptyList();
}
}
-
+
/**
* Get a long named with the given index.
If the index does not exist or its value is not a long tag, then
* {@code 0} will be returned.
@@ -328,7 +315,7 @@ public final class ListTag extends Tag {
return 0L;
}
}
-
+
/**
* Get a long named with the given index, even if it's another type of number.
If the index does not exist
* or its value is not a number, then {@code 0} will be returned.
@@ -341,27 +328,21 @@ public final class ListTag extends Tag {
final Tag tag = getIfExists(index);
if (tag instanceof ByteTag) {
return ((ByteTag) tag).getValue();
-
} else if (tag instanceof ShortTag) {
return ((ShortTag) tag).getValue();
-
} else if (tag instanceof IntTag) {
return ((IntTag) tag).getValue();
-
} else if (tag instanceof LongTag) {
return ((LongTag) tag).getValue();
-
} else if (tag instanceof FloatTag) {
return ((FloatTag) tag).getValue().longValue();
-
} else if (tag instanceof DoubleTag) {
return ((DoubleTag) tag).getValue().longValue();
-
} else {
return 0;
}
}
-
+
/**
* Get a short named with the given index.
If the index does not exist or its value is not a short tag,
* then {@code 0} will be returned.
@@ -378,7 +359,7 @@ public final class ListTag extends Tag {
return 0;
}
}
-
+
/**
* Get a string named with the given index.
If the index does not exist or its value is not a string tag,
* then {@code ""} will be returned.
@@ -395,7 +376,7 @@ public final class ListTag extends Tag {
return "";
}
}
-
+
@Override
public String toString() {
final String name = getName();
@@ -411,5 +392,4 @@ public final class ListTag extends Tag {
bldr.append("}");
return bldr.toString();
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ListTagBuilder.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ListTagBuilder.java
index 42992d2e6..a050599c5 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ListTagBuilder.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ListTagBuilder.java
@@ -11,10 +11,9 @@ import java.util.List;
* Helps create list tags.
*/
public class ListTagBuilder {
-
private final Class extends Tag> type;
private final List entries;
-
+
/**
* Create a new instance.
*
@@ -25,7 +24,7 @@ public class ListTagBuilder {
this.type = type;
this.entries = new ArrayList();
}
-
+
/**
* Create a new builder instance.
*
@@ -34,7 +33,7 @@ public class ListTagBuilder {
public static ListTagBuilder create(final Class extends Tag> type) {
return new ListTagBuilder(type);
}
-
+
/**
* Create a new builder instance.
*
@@ -43,23 +42,20 @@ public class ListTagBuilder {
@SafeVarargs
public static ListTagBuilder createWith(final T... entries) {
checkNotNull(entries);
-
if (entries.length == 0) {
throw new IllegalArgumentException("This method needs an array of at least one entry");
}
-
final Class extends Tag> type = entries[0].getClass();
for (int i = 1; i < entries.length; i++) {
if (!type.isInstance(entries[i])) {
throw new IllegalArgumentException("An array of different tag types was provided");
}
}
-
final ListTagBuilder builder = new ListTagBuilder(type);
builder.addAll(Arrays.asList(entries));
return builder;
}
-
+
/**
* Add the given tag.
*
@@ -75,7 +71,7 @@ public class ListTagBuilder {
this.entries.add(value);
return this;
}
-
+
/**
* Add all the tags in the given list.
*
@@ -90,7 +86,7 @@ public class ListTagBuilder {
}
return this;
}
-
+
/**
* Build an unnamed list tag with this builder's entries.
*
@@ -99,7 +95,7 @@ public class ListTagBuilder {
public ListTag build() {
return new ListTag(this.type, new ArrayList(this.entries));
}
-
+
/**
* Build a new list tag with this builder's entries.
*
@@ -110,5 +106,4 @@ public class ListTagBuilder {
public ListTag build(final String name) {
return new ListTag(name, this.type, new ArrayList(this.entries));
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/LongTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/LongTag.java
index a8d22218c..974a4d199 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/LongTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/LongTag.java
@@ -4,9 +4,8 @@ package com.intellectualcrafters.jnbt;
* The {@code TAG_Long} tag.
*/
public final class LongTag extends Tag {
-
private final long value;
-
+
/**
* Creates the tag with an empty name.
*
@@ -16,7 +15,7 @@ public final class LongTag extends Tag {
super();
this.value = value;
}
-
+
/**
* Creates the tag.
*
@@ -27,12 +26,12 @@ public final class LongTag extends Tag {
super(name);
this.value = value;
}
-
+
@Override
public Long getValue() {
return this.value;
}
-
+
@Override
public String toString() {
final String name = getName();
@@ -42,5 +41,4 @@ public final class LongTag extends Tag {
}
return "TAG_Long" + append + ": " + this.value;
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTConstants.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTConstants.java
index 65a13f4ec..604859fff 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTConstants.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTConstants.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.jnbt;
import java.nio.charset.Charset;
@@ -27,18 +26,15 @@ import java.nio.charset.Charset;
* A class which holds constant values.
*/
public final class NBTConstants {
-
public static final Charset CHARSET = Charset.forName("UTF-8");
-
public static final int TYPE_END = 0, TYPE_BYTE = 1, TYPE_SHORT = 2, TYPE_INT = 3, TYPE_LONG = 4, TYPE_FLOAT = 5, TYPE_DOUBLE = 6, TYPE_BYTE_ARRAY = 7, TYPE_STRING = 8, TYPE_LIST = 9, TYPE_COMPOUND = 10, TYPE_INT_ARRAY = 11;
-
+
/**
* Default private constructor.
*/
private NBTConstants() {
-
}
-
+
/**
* Convert a type ID to its corresponding {@link Tag} class.
*
@@ -78,5 +74,4 @@ public final class NBTConstants {
throw new IllegalArgumentException("Unknown tag type ID of " + id);
}
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTInputStream.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTInputStream.java
index 7aa319759..2c9a6610d 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTInputStream.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTInputStream.java
@@ -15,9 +15,8 @@ import java.util.Map;
* may be found at http://www.minecraft.net/docs/NBT.txt .
*/
public final class NBTInputStream implements Closeable {
-
private final DataInputStream is;
-
+
/**
* Creates a new {@code NBTInputStream}, which will source its data from the specified input stream.
*
@@ -28,7 +27,7 @@ public final class NBTInputStream implements Closeable {
public NBTInputStream(final InputStream is) throws IOException {
this.is = new DataInputStream(is);
}
-
+
/**
* Reads an NBT tag from the stream.
*
@@ -39,7 +38,7 @@ public final class NBTInputStream implements Closeable {
public Tag readTag() throws IOException {
return readTag(0);
}
-
+
/**
* Reads an NBT from the stream.
*
@@ -51,7 +50,6 @@ public final class NBTInputStream implements Closeable {
*/
private Tag readTag(final int depth) throws IOException {
final int type = this.is.readByte() & 0xFF;
-
String name;
if (type != NBTConstants.TYPE_END) {
final int nameLength = this.is.readShort() & 0xFFFF;
@@ -61,10 +59,9 @@ public final class NBTInputStream implements Closeable {
} else {
name = "";
}
-
return readTagPayload(type, name, depth);
}
-
+
/**
* Reads the payload of a tag, given the name and type.
*
@@ -109,7 +106,6 @@ public final class NBTInputStream implements Closeable {
case NBTConstants.TYPE_LIST:
final int childType = this.is.readByte();
length = this.is.readInt();
-
final List tagList = new ArrayList();
for (int i = 0; i < length; ++i) {
final Tag tag = readTagPayload(childType, "", depth + 1);
@@ -118,7 +114,6 @@ public final class NBTInputStream implements Closeable {
}
tagList.add(tag);
}
-
return new ListTag(name, NBTUtils.getTypeClass(childType), tagList);
case NBTConstants.TYPE_COMPOUND:
final Map tagMap = new HashMap();
@@ -130,7 +125,6 @@ public final class NBTInputStream implements Closeable {
tagMap.put(tag.getName(), tag);
}
}
-
return new CompoundTag(name, tagMap);
case NBTConstants.TYPE_INT_ARRAY:
length = this.is.readInt();
@@ -143,10 +137,9 @@ public final class NBTInputStream implements Closeable {
throw new IOException("Invalid tag type: " + type + ".");
}
}
-
+
@Override
public void close() throws IOException {
this.is.close();
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTOutputStream.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTOutputStream.java
index 65e3426e5..a4deec5a3 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTOutputStream.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTOutputStream.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.jnbt;
import java.io.Closeable;
@@ -36,12 +35,11 @@ import java.util.List;
* @author Graham Edgecombe
*/
public final class NBTOutputStream implements Closeable {
-
/**
* The output stream.
*/
private final DataOutputStream os;
-
+
/**
* Creates a new NBTOutputStream
, which will write data to the specified underlying output stream.
*
@@ -52,7 +50,7 @@ public final class NBTOutputStream implements Closeable {
public NBTOutputStream(final OutputStream os) throws IOException {
this.os = new DataOutputStream(os);
}
-
+
/**
* Writes a tag.
*
@@ -64,18 +62,15 @@ public final class NBTOutputStream implements Closeable {
final int type = NBTUtils.getTypeCode(tag.getClass());
final String name = tag.getName();
final byte[] nameBytes = name.getBytes(NBTConstants.CHARSET);
-
this.os.writeByte(type);
this.os.writeShort(nameBytes.length);
this.os.write(nameBytes);
-
if (type == NBTConstants.TYPE_END) {
throw new IOException("Named TAG_End not permitted.");
}
-
writeTagPayload(tag);
}
-
+
/**
* Writes tag payload.
*
@@ -126,7 +121,7 @@ public final class NBTOutputStream implements Closeable {
throw new IOException("Invalid tag type: " + type + ".");
}
}
-
+
/**
* Writes a TAG_Byte
tag.
*
@@ -137,7 +132,7 @@ public final class NBTOutputStream implements Closeable {
private void writeByteTagPayload(final ByteTag tag) throws IOException {
this.os.writeByte(tag.getValue());
}
-
+
/**
* Writes a TAG_Byte_Array
tag.
*
@@ -150,7 +145,7 @@ public final class NBTOutputStream implements Closeable {
this.os.writeInt(bytes.length);
this.os.write(bytes);
}
-
+
/**
* Writes a TAG_Compound
tag.
*
@@ -164,7 +159,7 @@ public final class NBTOutputStream implements Closeable {
}
this.os.writeByte((byte) 0); // end tag - better way?
}
-
+
/**
* Writes a TAG_List
tag.
*
@@ -176,14 +171,13 @@ public final class NBTOutputStream implements Closeable {
final Class extends Tag> clazz = tag.getType();
final List tags = tag.getValue();
final int size = tags.size();
-
this.os.writeByte(NBTUtils.getTypeCode(clazz));
this.os.writeInt(size);
for (final Tag tag1 : tags) {
writeTagPayload(tag1);
}
}
-
+
/**
* Writes a TAG_String
tag.
*
@@ -196,7 +190,7 @@ public final class NBTOutputStream implements Closeable {
this.os.writeShort(bytes.length);
this.os.write(bytes);
}
-
+
/**
* Writes a TAG_Double
tag.
*
@@ -207,7 +201,7 @@ public final class NBTOutputStream implements Closeable {
private void writeDoubleTagPayload(final DoubleTag tag) throws IOException {
this.os.writeDouble(tag.getValue());
}
-
+
/**
* Writes a TAG_Float
tag.
*
@@ -218,7 +212,7 @@ public final class NBTOutputStream implements Closeable {
private void writeFloatTagPayload(final FloatTag tag) throws IOException {
this.os.writeFloat(tag.getValue());
}
-
+
/**
* Writes a TAG_Long
tag.
*
@@ -229,7 +223,7 @@ public final class NBTOutputStream implements Closeable {
private void writeLongTagPayload(final LongTag tag) throws IOException {
this.os.writeLong(tag.getValue());
}
-
+
/**
* Writes a TAG_Int
tag.
*
@@ -240,7 +234,7 @@ public final class NBTOutputStream implements Closeable {
private void writeIntTagPayload(final IntTag tag) throws IOException {
this.os.writeInt(tag.getValue());
}
-
+
/**
* Writes a TAG_Short
tag.
*
@@ -251,7 +245,7 @@ public final class NBTOutputStream implements Closeable {
private void writeShortTagPayload(final ShortTag tag) throws IOException {
this.os.writeShort(tag.getValue());
}
-
+
/**
* Writes a TAG_Empty
tag.
*
@@ -262,7 +256,7 @@ public final class NBTOutputStream implements Closeable {
private void writeEndTagPayload(final EndTag tag) {
/* empty */
}
-
+
private void writeIntArrayTagPayload(final IntArrayTag tag) throws IOException {
final int[] data = tag.getValue();
this.os.writeInt(data.length);
@@ -270,10 +264,9 @@ public final class NBTOutputStream implements Closeable {
this.os.writeInt(element);
}
}
-
+
@Override
public void close() throws IOException {
this.os.close();
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTUtils.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTUtils.java
index fb7b85698..741fdf2ac 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTUtils.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/NBTUtils.java
@@ -6,13 +6,12 @@ import java.util.Map;
* A class which contains NBT-related utility methods.
*/
public final class NBTUtils {
-
/**
* Default private constructor.
*/
private NBTUtils() {
}
-
+
/**
* Gets the type name of a tag.
*
@@ -49,7 +48,7 @@ public final class NBTUtils {
throw new IllegalArgumentException("Invalid tag classs (" + clazz.getName() + ").");
}
}
-
+
/**
* Gets the type code of a tag class.
*
@@ -88,7 +87,7 @@ public final class NBTUtils {
throw new IllegalArgumentException("Invalid tag classs (" + clazz.getName() + ").");
}
}
-
+
/**
* Gets the class of a type of tag.
*
@@ -128,7 +127,7 @@ public final class NBTUtils {
throw new IllegalArgumentException("Invalid tag type : " + type + ".");
}
}
-
+
/**
* Get child tag of a NBT structure.
*
@@ -148,5 +147,4 @@ public final class NBTUtils {
}
return expected.cast(tag);
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ShortTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ShortTag.java
index b4fb7e2a8..df4ceb57e 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ShortTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/ShortTag.java
@@ -18,16 +18,14 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.jnbt;
/**
* The {@code TAG_Short} tag.
*/
public final class ShortTag extends Tag {
-
private final short value;
-
+
/**
* Creates the tag with an empty name.
*
@@ -37,7 +35,7 @@ public final class ShortTag extends Tag {
super();
this.value = value;
}
-
+
/**
* Creates the tag.
*
@@ -48,12 +46,12 @@ public final class ShortTag extends Tag {
super(name);
this.value = value;
}
-
+
@Override
public Short getValue() {
return this.value;
}
-
+
@Override
public String toString() {
final String name = getName();
@@ -63,5 +61,4 @@ public final class ShortTag extends Tag {
}
return "TAG_Short" + append + ": " + this.value;
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/StringTag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/StringTag.java
index 708331cec..8c0756e63 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/StringTag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/StringTag.java
@@ -6,9 +6,8 @@ import static com.google.common.base.Preconditions.checkNotNull;
* The {@code TAG_String} tag.
*/
public final class StringTag extends Tag {
-
private final String value;
-
+
/**
* Creates the tag with an empty name.
*
@@ -19,7 +18,7 @@ public final class StringTag extends Tag {
checkNotNull(value);
this.value = value;
}
-
+
/**
* Creates the tag.
*
@@ -31,12 +30,12 @@ public final class StringTag extends Tag {
checkNotNull(value);
this.value = value;
}
-
+
@Override
public String getValue() {
return this.value;
}
-
+
@Override
public String toString() {
final String name = getName();
@@ -46,5 +45,4 @@ public final class StringTag extends Tag {
}
return "TAG_String" + append + ": " + this.value;
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/Tag.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/Tag.java
index aa060c18e..395333e13 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/Tag.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/Tag.java
@@ -18,23 +18,21 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.jnbt;
/**
* Represents a NBT tag.
*/
public abstract class Tag {
-
private final String name;
-
+
/**
* Create a new tag with an empty name.
*/
Tag() {
this("");
}
-
+
/**
* Creates the tag with the specified name.
*
@@ -46,7 +44,7 @@ public abstract class Tag {
}
this.name = name;
}
-
+
/**
* Gets the name of this tag.
*
@@ -55,12 +53,11 @@ public abstract class Tag {
public final String getName() {
return this.name;
}
-
+
/**
* Gets the value of this tag.
*
* @return the value
*/
public abstract Object getValue();
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/WorldEditUtils.java b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/WorldEditUtils.java
index 30123a5ac..3f86f897a 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/WorldEditUtils.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/jnbt/WorldEditUtils.java
@@ -4,11 +4,8 @@ import org.bukkit.World;
public class WorldEditUtils {
public static void setNBT(final World world, final short id, final byte data, final int x, final int y, final int z, final com.intellectualcrafters.jnbt.CompoundTag tag) {
-
// final LocalWorld bukkitWorld = BukkitUtil.getLocalWorld(world);
-
// I need to somehow convert our CompoundTag to WorldEdit's
-
// final BaseBlock block = new BaseBlock(5, 5, (CompoundTag) tag);
// final Vector vector = new Vector(x, y, z);
// try {
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/CDL.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/CDL.java
index 7e2f3f847..9514eea56 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/CDL.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/CDL.java
@@ -18,7 +18,6 @@ package com.intellectualcrafters.json;
* @version 2014-05-03
*/
public class CDL {
-
/**
* Get the next value. The value can be wrapped in quotes. The value can be empty.
*
@@ -42,7 +41,7 @@ public class CDL {
case '\'':
q = c;
sb = new StringBuffer();
- for (; ; ) {
+ for (;;) {
c = x.next();
if (c == q) {
break;
@@ -61,7 +60,7 @@ public class CDL {
return x.nextTo(',');
}
}
-
+
/**
* Produce a JSONArray of strings from a row of comma delimited values.
*
@@ -73,14 +72,14 @@ public class CDL {
*/
public static JSONArray rowToJSONArray(final JSONTokener x) throws JSONException {
final JSONArray ja = new JSONArray();
- for (; ; ) {
+ for (;;) {
final String value = getValue(x);
char c = x.next();
if ((value == null) || ((ja.length() == 0) && (value.length() == 0) && (c != ','))) {
return null;
}
ja.put(value);
- for (; ; ) {
+ for (;;) {
if (c == ',') {
break;
}
@@ -94,7 +93,7 @@ public class CDL {
}
}
}
-
+
/**
* Produce a JSONObject from a row of comma delimited text, using a parallel JSONArray of strings to provides the
* names of the elements.
@@ -111,7 +110,7 @@ public class CDL {
final JSONArray ja = rowToJSONArray(x);
return ja != null ? ja.toJSONObject(names) : null;
}
-
+
/**
* Produce a comma delimited text row from a JSONArray. Values containing the comma character will be quoted.
* Troublesome characters may be removed.
@@ -147,7 +146,7 @@ public class CDL {
sb.append('\n');
return sb.toString();
}
-
+
/**
* Produce a JSONArray of JSONObjects from a comma delimited text string, using the first row as a source of names.
*
@@ -160,7 +159,7 @@ public class CDL {
public static JSONArray toJSONArray(final String string) throws JSONException {
return toJSONArray(new JSONTokener(string));
}
-
+
/**
* Produce a JSONArray of JSONObjects from a comma delimited text string, using the first row as a source of names.
*
@@ -173,7 +172,7 @@ public class CDL {
public static JSONArray toJSONArray(final JSONTokener x) throws JSONException {
return toJSONArray(rowToJSONArray(x), x);
}
-
+
/**
* Produce a JSONArray of JSONObjects from a comma delimited text string using a supplied JSONArray as the source of
* element names.
@@ -188,7 +187,7 @@ public class CDL {
public static JSONArray toJSONArray(final JSONArray names, final String string) throws JSONException {
return toJSONArray(names, new JSONTokener(string));
}
-
+
/**
* Produce a JSONArray of JSONObjects from a comma delimited text string using a supplied JSONArray as the source of
* element names.
@@ -205,7 +204,7 @@ public class CDL {
return null;
}
final JSONArray ja = new JSONArray();
- for (; ; ) {
+ for (;;) {
final JSONObject jo = rowToJSONObject(names, x);
if (jo == null) {
break;
@@ -217,7 +216,7 @@ public class CDL {
}
return ja;
}
-
+
/**
* Produce a comma delimited text from a JSONArray of JSONObjects. The first row will be a list of names obtained by
* inspecting the first JSONObject.
@@ -238,7 +237,7 @@ public class CDL {
}
return null;
}
-
+
/**
* Produce a comma delimited text from a JSONArray of JSONObjects using a provided list of names. The list of names
* is not included in the output.
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/Cookie.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/Cookie.java
index b5efcbd2d..ee4def328 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/Cookie.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/Cookie.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.json;
/**
@@ -29,7 +28,6 @@ package com.intellectualcrafters.json;
* @version 2014-05-03
*/
public class Cookie {
-
/**
* Produce a copy of a string in which the characters '+', '%', '=', ';' and control characters are replaced with
* "%hh". This is a gentle form of URL encoding, attempting to cause as little distortion to the string as possible.
@@ -58,7 +56,7 @@ public class Cookie {
}
return sb.toString();
}
-
+
/**
* Convert a cookie specification string into a JSONObject. The string will contain a name value pair separated by
* '='. The name and the value will be unescaped, possibly converting '+' and '%' sequences. The cookie properties
@@ -98,7 +96,7 @@ public class Cookie {
}
return jo;
}
-
+
/**
* Convert a JSONObject into a cookie specification string. The JSONObject must contain "name" and "value" members.
* If the JSONObject contains "expires", "domain", "path", or "secure" members, they will be appended to the cookie
@@ -112,7 +110,6 @@ public class Cookie {
*/
public static String toString(final JSONObject jo) throws JSONException {
final StringBuilder sb = new StringBuilder();
-
sb.append(escape(jo.getString("name")));
sb.append("=");
sb.append(escape(jo.getString("value")));
@@ -133,7 +130,7 @@ public class Cookie {
}
return sb.toString();
}
-
+
/**
* Convert %
hh sequences to single characters, and convert plus to space.
*
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/CookieList.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/CookieList.java
index 99437329f..01eba0b85 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/CookieList.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/CookieList.java
@@ -9,7 +9,6 @@ import java.util.Iterator;
* @version 2014-05-03
*/
public class CookieList {
-
/**
* Convert a cookie list into a JSONObject. A cookie list is a sequence of name/value pairs. The names are separated
* from the values by '='. The pairs are separated by ';'. The names and the values will be unescaped, possibly
@@ -35,7 +34,7 @@ public class CookieList {
}
return jo;
}
-
+
/**
* Convert a JSONObject into a cookie list. A cookie list is a sequence of name/value pairs. The names are separated
* from the values by '='. The pairs are separated by ';'. The characters '%', '+', '=', and ';' in the names and
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/HTTP.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/HTTP.java
index 786fbf38e..8bc44d340 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/HTTP.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/HTTP.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.json;
import java.util.Iterator;
@@ -30,12 +29,11 @@ import java.util.Iterator;
* @version 2014-05-03
*/
public class HTTP {
-
/**
* Carriage return/line feed.
*/
public static final String CRLF = "\r\n";
-
+
/**
* Convert an HTTP header string into a JSONObject. It can be a request header or a response header. A request
* header will contain
@@ -93,28 +91,20 @@ public class HTTP {
final JSONObject jo = new JSONObject();
final HTTPTokener x = new HTTPTokener(string);
String token;
-
token = x.nextToken();
if (token.toUpperCase().startsWith("HTTP")) {
-
// Response
-
jo.put("HTTP-Version", token);
jo.put("Status-Code", x.nextToken());
jo.put("Reason-Phrase", x.nextTo('\0'));
x.next();
-
} else {
-
// Request
-
jo.put("Method", token);
jo.put("Request-URI", x.nextToken());
jo.put("HTTP-Version", x.nextToken());
}
-
// Fields
-
while (x.more()) {
final String name = x.nextTo(':');
x.next(':');
@@ -123,7 +113,7 @@ public class HTTP {
}
return jo;
}
-
+
/**
* Convert a JSONObject into an HTTP header. A request header must contain
*
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/HTTPTokener.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/HTTPTokener.java
index 09cc1af60..5a3fb1e56 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/HTTPTokener.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/HTTPTokener.java
@@ -7,7 +7,6 @@ package com.intellectualcrafters.json;
* @version 2014-05-03
*/
public class HTTPTokener extends JSONTokener {
-
/**
* Construct an HTTPTokener from a string.
*
@@ -16,7 +15,7 @@ public class HTTPTokener extends JSONTokener {
public HTTPTokener(final String string) {
super(string);
}
-
+
/**
* Get the next token or string. This is used in parsing HTTP headers.
*
@@ -33,7 +32,7 @@ public class HTTPTokener extends JSONTokener {
} while (Character.isWhitespace(c));
if ((c == '"') || (c == '\'')) {
q = c;
- for (; ; ) {
+ for (;;) {
c = next();
if (c < ' ') {
throw syntaxError("Unterminated string.");
@@ -44,7 +43,7 @@ public class HTTPTokener extends JSONTokener {
sb.append(c);
}
}
- for (; ; ) {
+ for (;;) {
if ((c == 0) || Character.isWhitespace(c)) {
return sb.toString();
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONArray.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONArray.java
index d82e9c6a8..4725eec68 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONArray.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONArray.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.json;
import java.io.IOException;
@@ -58,19 +57,18 @@ import java.util.Map;
* @version 2014-05-03
*/
public class JSONArray {
-
/**
* The arrayList where the JSONArray's properties are kept.
*/
private final ArrayList myArrayList;
-
+
/**
* Construct an empty JSONArray.
*/
public JSONArray() {
this.myArrayList = new ArrayList();
}
-
+
/**
* Construct a JSONArray from a JSONTokener.
*
@@ -85,7 +83,7 @@ public class JSONArray {
}
if (x.nextClean() != ']') {
x.back();
- for (; ; ) {
+ for (;;) {
if (x.nextClean() == ',') {
x.back();
this.myArrayList.add(JSONObject.NULL);
@@ -108,7 +106,7 @@ public class JSONArray {
}
}
}
-
+
/**
* Construct a JSONArray from a source JSON text.
*
@@ -120,7 +118,7 @@ public class JSONArray {
public JSONArray(final String source) throws JSONException {
this(new JSONTokener(source));
}
-
+
/**
* Construct a JSONArray from a Collection.
*
@@ -134,7 +132,7 @@ public class JSONArray {
}
}
}
-
+
/**
* Construct a JSONArray from an array
*
@@ -151,7 +149,7 @@ public class JSONArray {
throw new JSONException("JSONArray initial value should be a string or collection or array.");
}
}
-
+
/**
* Get the object value associated with an index.
*
@@ -168,7 +166,7 @@ public class JSONArray {
}
return object;
}
-
+
/**
* Get the boolean value associated with an index. The string values "true" and "false" are converted to boolean.
*
@@ -187,7 +185,7 @@ public class JSONArray {
}
throw new JSONException("JSONArray[" + index + "] is not a boolean.");
}
-
+
/**
* Get the double value associated with an index.
*
@@ -205,7 +203,7 @@ public class JSONArray {
throw new JSONException("JSONArray[" + index + "] is not a number.");
}
}
-
+
/**
* Get the int value associated with an index.
*
@@ -223,7 +221,7 @@ public class JSONArray {
throw new JSONException("JSONArray[" + index + "] is not a number.");
}
}
-
+
/**
* Get the JSONArray associated with an index.
*
@@ -240,7 +238,7 @@ public class JSONArray {
}
throw new JSONException("JSONArray[" + index + "] is not a JSONArray.");
}
-
+
/**
* Get the JSONObject associated with an index.
*
@@ -257,7 +255,7 @@ public class JSONArray {
}
throw new JSONException("JSONArray[" + index + "] is not a JSONObject.");
}
-
+
/**
* Get the long value associated with an index.
*
@@ -275,7 +273,7 @@ public class JSONArray {
throw new JSONException("JSONArray[" + index + "] is not a number.");
}
}
-
+
/**
* Get the string associated with an index.
*
@@ -292,7 +290,7 @@ public class JSONArray {
}
throw new JSONException("JSONArray[" + index + "] not a string.");
}
-
+
/**
* Determine if the value is null.
*
@@ -303,7 +301,7 @@ public class JSONArray {
public boolean isNull(final int index) {
return JSONObject.NULL.equals(this.opt(index));
}
-
+
/**
* Make a string from the contents of this JSONArray. The separator
string is inserted between each
* element. Warning: This method assumes that the data structure is acyclical.
@@ -317,7 +315,6 @@ public class JSONArray {
public String join(final String separator) throws JSONException {
final int len = this.length();
final StringBuilder sb = new StringBuilder();
-
for (int i = 0; i < len; i += 1) {
if (i > 0) {
sb.append(separator);
@@ -326,7 +323,7 @@ public class JSONArray {
}
return sb.toString();
}
-
+
/**
* Get the number of elements in the JSONArray, included nulls.
*
@@ -335,7 +332,7 @@ public class JSONArray {
public int length() {
return this.myArrayList.size();
}
-
+
/**
* Get the optional object value associated with an index.
*
@@ -346,7 +343,7 @@ public class JSONArray {
public Object opt(final int index) {
return ((index < 0) || (index >= this.length())) ? null : this.myArrayList.get(index);
}
-
+
/**
* Get the optional boolean value associated with an index. It returns false if there is no value at that index, or
* if the value is not Boolean.TRUE or the String "true".
@@ -358,7 +355,7 @@ public class JSONArray {
public boolean optBoolean(final int index) {
return this.optBoolean(index, false);
}
-
+
/**
* Get the optional boolean value associated with an index. It returns the defaultValue if there is no value at that
* index or if it is not a Boolean or the String "true" or "false" (case insensitive).
@@ -375,7 +372,7 @@ public class JSONArray {
return defaultValue;
}
}
-
+
/**
* Get the optional double value associated with an index. NaN is returned if there is no value for the index, or if
* the value is not a number and cannot be converted to a number.
@@ -387,7 +384,7 @@ public class JSONArray {
public double optDouble(final int index) {
return this.optDouble(index, Double.NaN);
}
-
+
/**
* Get the optional double value associated with an index. The defaultValue is returned if there is no value for the
* index, or if the value is not a number and cannot be converted to a number.
@@ -404,7 +401,7 @@ public class JSONArray {
return defaultValue;
}
}
-
+
/**
* Get the optional int value associated with an index. Zero is returned if there is no value for the index, or if
* the value is not a number and cannot be converted to a number.
@@ -416,7 +413,7 @@ public class JSONArray {
public int optInt(final int index) {
return this.optInt(index, 0);
}
-
+
/**
* Get the optional int value associated with an index. The defaultValue is returned if there is no value for the
* index, or if the value is not a number and cannot be converted to a number.
@@ -433,7 +430,7 @@ public class JSONArray {
return defaultValue;
}
}
-
+
/**
* Get the optional JSONArray associated with an index.
*
@@ -445,7 +442,7 @@ public class JSONArray {
final Object o = this.opt(index);
return o instanceof JSONArray ? (JSONArray) o : null;
}
-
+
/**
* Get the optional JSONObject associated with an index. Null is returned if the key is not found, or null if the
* index has no value, or if the value is not a JSONObject.
@@ -458,7 +455,7 @@ public class JSONArray {
final Object o = this.opt(index);
return o instanceof JSONObject ? (JSONObject) o : null;
}
-
+
/**
* Get the optional long value associated with an index. Zero is returned if there is no value for the index, or if
* the value is not a number and cannot be converted to a number.
@@ -470,7 +467,7 @@ public class JSONArray {
public long optLong(final int index) {
return this.optLong(index, 0);
}
-
+
/**
* Get the optional long value associated with an index. The defaultValue is returned if there is no value for the
* index, or if the value is not a number and cannot be converted to a number.
@@ -487,7 +484,7 @@ public class JSONArray {
return defaultValue;
}
}
-
+
/**
* Get the optional string value associated with an index. It returns an empty string if there is no value at that
* index. If the value is not a string and is not null, then it is coverted to a string.
@@ -499,7 +496,7 @@ public class JSONArray {
public String optString(final int index) {
return this.optString(index, "");
}
-
+
/**
* Get the optional string associated with an index. The defaultValue is returned if the key is not found.
*
@@ -512,7 +509,7 @@ public class JSONArray {
final Object object = this.opt(index);
return JSONObject.NULL.equals(object) ? defaultValue : object.toString();
}
-
+
/**
* Append a boolean value. This increases the array's length by one.
*
@@ -524,7 +521,7 @@ public class JSONArray {
this.put(value ? Boolean.TRUE : Boolean.FALSE);
return this;
}
-
+
/**
* Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.
*
@@ -536,7 +533,7 @@ public class JSONArray {
this.put(new JSONArray(value));
return this;
}
-
+
/**
* Append a double value. This increases the array's length by one.
*
@@ -552,7 +549,7 @@ public class JSONArray {
this.put(d);
return this;
}
-
+
/**
* Append an int value. This increases the array's length by one.
*
@@ -564,7 +561,7 @@ public class JSONArray {
this.put(new Integer(value));
return this;
}
-
+
/**
* Append an long value. This increases the array's length by one.
*
@@ -576,7 +573,7 @@ public class JSONArray {
this.put(new Long(value));
return this;
}
-
+
/**
* Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.
*
@@ -588,7 +585,7 @@ public class JSONArray {
this.put(new JSONObject(value));
return this;
}
-
+
/**
* Append an object value. This increases the array's length by one.
*
@@ -601,7 +598,7 @@ public class JSONArray {
this.myArrayList.add(value);
return this;
}
-
+
/**
* Put or replace a boolean value in the JSONArray. If the index is greater than the length of the JSONArray, then
* null elements will be added as necessary to pad it out.
@@ -617,7 +614,7 @@ public class JSONArray {
this.put(index, value ? Boolean.TRUE : Boolean.FALSE);
return this;
}
-
+
/**
* Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.
*
@@ -632,7 +629,7 @@ public class JSONArray {
this.put(index, new JSONArray(value));
return this;
}
-
+
/**
* Put or replace a double value. If the index is greater than the length of the JSONArray, then null elements will
* be added as necessary to pad it out.
@@ -648,7 +645,7 @@ public class JSONArray {
this.put(index, new Double(value));
return this;
}
-
+
/**
* Put or replace an int value. If the index is greater than the length of the JSONArray, then null elements will be
* added as necessary to pad it out.
@@ -664,7 +661,7 @@ public class JSONArray {
this.put(index, new Integer(value));
return this;
}
-
+
/**
* Put or replace a long value. If the index is greater than the length of the JSONArray, then null elements will be
* added as necessary to pad it out.
@@ -680,7 +677,7 @@ public class JSONArray {
this.put(index, new Long(value));
return this;
}
-
+
/**
* Put a value in the JSONArray, where the value will be a JSONObject that is produced from a Map.
*
@@ -695,7 +692,7 @@ public class JSONArray {
this.put(index, new JSONObject(value));
return this;
}
-
+
/**
* Put or replace an object value in the JSONArray. If the index is greater than the length of the JSONArray, then
* null elements will be added as necessary to pad it out.
@@ -723,7 +720,7 @@ public class JSONArray {
}
return this;
}
-
+
/**
* Remove an index and close the hole.
*
@@ -734,7 +731,7 @@ public class JSONArray {
public Object remove(final int index) {
return (index >= 0) && (index < this.length()) ? this.myArrayList.remove(index) : null;
}
-
+
/**
* Determine if two JSONArrays are similar. They must contain similar sequences.
*
@@ -767,7 +764,7 @@ public class JSONArray {
}
return true;
}
-
+
/**
* Produce a JSONObject by combining a JSONArray of names with the values of this JSONArray.
*
@@ -787,7 +784,7 @@ public class JSONArray {
}
return jo;
}
-
+
/**
* Make a JSON text of this JSONArray. For compactness, no unnecessary whitespace is added. If it is not possible to
* produce a syntactically correct JSON text then null will be returned instead. This could occur if the array
@@ -805,7 +802,7 @@ public class JSONArray {
return null;
}
}
-
+
/**
* Make a prettyprinted JSON text of this JSONArray. Warning: This method assumes that the data structure is
* acyclical.
@@ -824,7 +821,7 @@ public class JSONArray {
return this.write(sw, indentFactor, 0).toString();
}
}
-
+
/**
* Write the contents of the JSONArray as JSON text to a writer. For compactness, no whitespace is added.
*
@@ -837,7 +834,7 @@ public class JSONArray {
public Writer write(final Writer writer) throws JSONException {
return this.write(writer, 0, 0);
}
-
+
/**
* Write the contents of the JSONArray as JSON text to a writer. For compactness, no whitespace is added.
*
@@ -855,12 +852,10 @@ public class JSONArray {
boolean commanate = false;
final int length = this.length();
writer.write('[');
-
if (length == 1) {
JSONObject.writeValue(writer, this.myArrayList.get(0), indentFactor, indent);
} else if (length != 0) {
final int newindent = indent + indentFactor;
-
for (int i = 0; i < length; i += 1) {
if (commanate) {
writer.write(',');
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONException.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONException.java
index 090d4e4f7..d15aae6d9 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONException.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONException.java
@@ -9,7 +9,7 @@ package com.intellectualcrafters.json;
public class JSONException extends RuntimeException {
private static final long serialVersionUID = 0;
private Throwable cause;
-
+
/**
* Constructs a JSONException with an explanatory message.
*
@@ -18,7 +18,7 @@ public class JSONException extends RuntimeException {
public JSONException(final String message) {
super(message);
}
-
+
/**
* Constructs a new JSONException with the specified cause.
*
@@ -28,7 +28,7 @@ public class JSONException extends RuntimeException {
super(cause.getMessage());
this.cause = cause;
}
-
+
/**
* Returns the cause of this exception or null if the cause is nonexistent or unknown.
*
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONML.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONML.java
index 307ac1bef..8d92ddf10 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONML.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONML.java
@@ -10,7 +10,6 @@ import java.util.Iterator;
* @version 2014-05-03
*/
public class JSONML {
-
/**
* Parse XML values and store them in a JSONArray.
*
@@ -31,13 +30,11 @@ public class JSONML {
JSONObject newjo = null;
Object token;
String tagName = null;
-
// Test for and skip past these forms:
//
//
//
// ... ?>
-
while (true) {
if (!x.more()) {
throw x.syntaxError("Bad XML");
@@ -47,9 +44,7 @@ public class JSONML {
token = x.nextToken();
if (token instanceof Character) {
if (token == XML.SLASH) {
-
// Close tag
-
token = x.nextToken();
if (!(token instanceof String)) {
throw new JSONException("Expected a closing name instead of '" + token + "'.");
@@ -59,9 +54,7 @@ public class JSONML {
}
return token;
} else if (token == XML.BANG) {
-
// 0);
}
} else if (token == XML.QUEST) {
-
//
-
x.skipPast("?>");
} else {
throw x.syntaxError("Misshaped tag");
}
-
// Open tag <
-
} else {
if (!(token instanceof String)) {
throw x.syntaxError("Bad tagName '" + token + "'.");
@@ -121,7 +110,7 @@ public class JSONML {
}
}
token = null;
- for (; ; ) {
+ for (;;) {
if (token == null) {
token = x.nextToken();
}
@@ -131,9 +120,7 @@ public class JSONML {
if (!(token instanceof String)) {
break;
}
-
// attribute = value
-
attribute = (String) token;
if (!arrayForm && ("tagName".equals(attribute) || "childNode".equals(attribute))) {
throw x.syntaxError("Reserved attribute.");
@@ -153,9 +140,7 @@ public class JSONML {
if (arrayForm && (newjo.length() > 0)) {
newja.put(newjo);
}
-
// Empty tag <.../>
-
if (token == XML.SLASH) {
if (x.nextToken() != XML.GT) {
throw x.syntaxError("Misshaped tag");
@@ -167,9 +152,7 @@ public class JSONML {
return newjo;
}
}
-
// Content, between <...> and
-
} else {
if (token != XML.GT) {
throw x.syntaxError("Misshaped tag");
@@ -200,7 +183,7 @@ public class JSONML {
}
}
}
-
+
/**
* Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform. Each
* XML tag is represented as a JSONArray in which the first element is the tag name. If the tag has attributes, then
@@ -216,7 +199,7 @@ public class JSONML {
public static JSONArray toJSONArray(final String string) throws JSONException {
return toJSONArray(new XMLTokener(string));
}
-
+
/**
* Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform. Each
* XML tag is represented as a JSONArray in which the first element is the tag name. If the tag has attributes, then
@@ -233,7 +216,7 @@ public class JSONML {
public static JSONArray toJSONArray(final XMLTokener x) throws JSONException {
return (JSONArray) parse(x, true, null);
}
-
+
/**
* Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform. Each
* XML tag is represented as a JSONObject with a "tagName" property. If the tag has attributes, then the attributes
@@ -251,7 +234,7 @@ public class JSONML {
public static JSONObject toJSONObject(final XMLTokener x) throws JSONException {
return (JSONObject) parse(x, false, null);
}
-
+
/**
* Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform. Each
* XML tag is represented as a JSONObject with a "tagName" property. If the tag has attributes, then the attributes
@@ -269,7 +252,7 @@ public class JSONML {
public static JSONObject toJSONObject(final String string) throws JSONException {
return toJSONObject(new XMLTokener(string));
}
-
+
/**
* Reverse the JSONML transformation, making an XML text from a JSONArray.
*
@@ -289,22 +272,17 @@ public class JSONML {
final StringBuilder sb = new StringBuilder();
String tagName;
String value;
-
// Emit = length) {
sb.append('/');
@@ -351,7 +327,7 @@ public class JSONML {
}
return sb.toString();
}
-
+
/**
* Reverse the JSONML transformation, making an XML text from a JSONObject. The JSONObject must contain a "tagName"
* property. If it has children, then it must have a "childNodes" property containing an array of objects. The other
@@ -373,9 +349,7 @@ public class JSONML {
Object object;
String tagName;
String value;
-
// Emit map;
-
+
/**
* Construct an empty JSONObject.
*/
public JSONObject() {
this.map = new HashMap();
}
-
+
/**
* Construct a JSONObject from a subset of another JSONObject. An array of strings is used to identify the keys that
* should be copied. Missing keys are ignored.
@@ -91,7 +91,7 @@ public class JSONObject {
}
}
}
-
+
/**
* Construct a JSONObject from a JSONTokener.
*
@@ -103,11 +103,10 @@ public class JSONObject {
this();
char c;
String key;
-
if (x.nextClean() != '{') {
throw x.syntaxError("A JSONObject text must begin with '{'");
}
- for (; ; ) {
+ for (;;) {
c = x.nextClean();
switch (c) {
case 0:
@@ -118,17 +117,13 @@ public class JSONObject {
x.back();
key = x.nextValue().toString();
}
-
// The key is followed by ':'.
-
c = x.nextClean();
if (c != ':') {
throw x.syntaxError("Expected a ':' after a key");
}
this.putOnce(key, x.nextValue());
-
// Pairs are separated by ','.
-
switch (x.nextClean()) {
case ';':
case ',':
@@ -144,7 +139,7 @@ public class JSONObject {
}
}
}
-
+
/**
* Construct a JSONObject from a Map.
*
@@ -163,7 +158,7 @@ public class JSONObject {
}
}
}
-
+
/**
* Construct a JSONObject from an Object using bean getters. It reflects on all of the public methods of the object.
* For each of the methods with no parameters and a name starting with "get"
or "is"
@@ -183,7 +178,7 @@ public class JSONObject {
this();
this.populateMap(bean);
}
-
+
/**
* Construct a JSONObject from an Object, using reflection to find the public members. The resulting JSONObject's
* keys will be the strings from the names array, and the values will be the field values associated with those keys
@@ -202,7 +197,7 @@ public class JSONObject {
}
}
}
-
+
/**
* Construct a JSONObject from a source JSON text string. This is the most commonly used JSONObject constructor.
*
@@ -214,7 +209,7 @@ public class JSONObject {
public JSONObject(final String source) throws JSONException {
this(new JSONTokener(source));
}
-
+
/**
* Construct a JSONObject from a ResourceBundle.
*
@@ -226,20 +221,16 @@ public class JSONObject {
public JSONObject(final String baseName, final Locale locale) throws JSONException {
this();
final ResourceBundle bundle = ResourceBundle.getBundle(baseName, locale, Thread.currentThread().getContextClassLoader());
-
// Iterate through the keys in the bundle.
-
final Enumeration keys = bundle.getKeys();
while (keys.hasMoreElements()) {
final Object key = keys.nextElement();
if (key != null) {
-
// Go through the path, ensuring that there is a nested
// JSONObject for each
// segment except the last. Add the value using the last
// segment's name into
// the deepest nested JSONObject.
-
final String[] path = ((String) key).split("\\.");
final int last = path.length - 1;
JSONObject target = this;
@@ -256,7 +247,7 @@ public class JSONObject {
}
}
}
-
+
/**
* Produce a string from a double. The string "null" will be returned if the number is not finite.
*
@@ -268,9 +259,7 @@ public class JSONObject {
if (Double.isInfinite(d) || Double.isNaN(d)) {
return "null";
}
-
// Shave off trailing zeros and decimal point, if possible.
-
String string = Double.toString(d);
if ((string.indexOf('.') > 0) && (string.indexOf('e') < 0) && (string.indexOf('E') < 0)) {
while (string.endsWith("0")) {
@@ -282,7 +271,7 @@ public class JSONObject {
}
return string;
}
-
+
/**
* Get an array of field names from a JSONObject.
*
@@ -302,7 +291,7 @@ public class JSONObject {
}
return names;
}
-
+
/**
* Get an array of field names from an Object.
*
@@ -324,7 +313,7 @@ public class JSONObject {
}
return names;
}
-
+
/**
* Produce a string from a Number.
*
@@ -339,9 +328,7 @@ public class JSONObject {
throw new JSONException("Null pointer");
}
testValidity(number);
-
// Shave off trailing zeros and decimal point, if possible.
-
String string = number.toString();
if ((string.indexOf('.') > 0) && (string.indexOf('e') < 0) && (string.indexOf('E') < 0)) {
while (string.endsWith("0")) {
@@ -353,7 +340,7 @@ public class JSONObject {
}
return string;
}
-
+
/**
* Produce a string in double quotes with backslash sequences in all the right places. A backslash will be inserted
* within , producing <\/, allowing JSON text to be delivered in HTML. In JSON text, a string cannot contain a
@@ -374,19 +361,17 @@ public class JSONObject {
}
}
}
-
+
public static Writer quote(final String string, final Writer w) throws IOException {
if ((string == null) || (string.length() == 0)) {
w.write("\"\"");
return w;
}
-
char b;
char c = 0;
String hhhh;
int i;
final int len = string.length();
-
w.write('"');
for (i = 0; i < len; i += 1) {
b = c;
@@ -432,7 +417,7 @@ public class JSONObject {
w.write('"');
return w;
}
-
+
/**
* Try to convert a string into a number, boolean, or null. If the string can't be converted, return the string.
*
@@ -454,12 +439,10 @@ public class JSONObject {
if (string.equalsIgnoreCase("null")) {
return JSONObject.NULL;
}
-
/*
* If it might be a number, try converting it. If a number cannot be
* produced, then the value will just be a string.
*/
-
final char b = string.charAt(0);
if (((b >= '0') && (b <= '9')) || (b == '-')) {
try {
@@ -483,7 +466,7 @@ public class JSONObject {
}
return string;
}
-
+
/**
* Throw an exception if the object is a NaN or infinite number.
*
@@ -504,7 +487,7 @@ public class JSONObject {
}
}
}
-
+
/**
* Make a JSON text of an Object value. If the object has an value.toJSONString() method, then that method will be
* used to produce the JSON text. The method is required to produce a strictly conforming text. If the object does
@@ -557,7 +540,7 @@ public class JSONObject {
}
return quote(value.toString());
}
-
+
/**
* Wrap an object, if necessary. If the object is null, return the NULL object. If it is an array or collection,
* wrap it in a JSONArray. If it is a map, wrap it in a JSONObject. If it is a standard property (Double, String, et
@@ -576,7 +559,6 @@ public class JSONObject {
if ((object instanceof JSONObject) || (object instanceof JSONArray) || NULL.equals(object) || (object instanceof JSONString) || (object instanceof Byte) || (object instanceof Character) || (object instanceof Short) || (object instanceof Integer) || (object instanceof Long) || (object instanceof Boolean) || (object instanceof Float) || (object instanceof Double) || (object instanceof String)) {
return object;
}
-
if (object instanceof Collection) {
return new JSONArray((Collection) object);
}
@@ -596,7 +578,7 @@ public class JSONObject {
return null;
}
}
-
+
static final Writer writeValue(final Writer writer, final Object value, final int indentFactor, final int indent) throws JSONException, IOException {
if ((value == null) || value.equals(null)) {
writer.write("null");
@@ -627,13 +609,13 @@ public class JSONObject {
}
return writer;
}
-
+
static final void indent(final Writer writer, final int indent) throws IOException {
for (int i = 0; i < indent; i += 1) {
writer.write(' ');
}
}
-
+
/**
* Accumulate values under a key. It is similar to the put method except that if there is already an object stored
* under the key then a JSONArray is stored under the key to hold all of the accumulated values. If there is already
@@ -661,7 +643,7 @@ public class JSONObject {
}
return this;
}
-
+
/**
* Append values to the array under a key. If the key does not exist in the JSONObject, then the key is put in the
* JSONObject with its value being a JSONArray containing the value parameter. If the key was already associated
@@ -686,7 +668,7 @@ public class JSONObject {
}
return this;
}
-
+
/**
* Get the value object associated with a key.
*
@@ -706,7 +688,7 @@ public class JSONObject {
}
return object;
}
-
+
/**
* Get the boolean value associated with a key.
*
@@ -725,7 +707,7 @@ public class JSONObject {
}
throw new JSONException("JSONObject[" + quote(key) + "] is not a Boolean.");
}
-
+
/**
* Get the double value associated with a key.
*
@@ -744,7 +726,7 @@ public class JSONObject {
throw new JSONException("JSONObject[" + quote(key) + "] is not a number.");
}
}
-
+
/**
* Get the int value associated with a key.
*
@@ -762,7 +744,7 @@ public class JSONObject {
throw new JSONException("JSONObject[" + quote(key) + "] is not an int.");
}
}
-
+
/**
* Get the JSONArray value associated with a key.
*
@@ -779,7 +761,7 @@ public class JSONObject {
}
throw new JSONException("JSONObject[" + quote(key) + "] is not a JSONArray.");
}
-
+
/**
* Get the JSONObject value associated with a key.
*
@@ -796,7 +778,7 @@ public class JSONObject {
}
throw new JSONException("JSONObject[" + quote(key) + "] is not a JSONObject.");
}
-
+
/**
* Get the long value associated with a key.
*
@@ -814,7 +796,7 @@ public class JSONObject {
throw new JSONException("JSONObject[" + quote(key) + "] is not a long.");
}
}
-
+
/**
* Get the string associated with a key.
*
@@ -831,7 +813,7 @@ public class JSONObject {
}
throw new JSONException("JSONObject[" + quote(key) + "] not a string.");
}
-
+
/**
* Determine if the JSONObject contains a specific key.
*
@@ -842,7 +824,7 @@ public class JSONObject {
public boolean has(final String key) {
return this.map.containsKey(key);
}
-
+
/**
* Increment a property of a JSONObject. If there is no such property, create one with a value of 1. If there is
* such a property, and if it is an Integer, Long, Double, or Float, then add one to it.
@@ -871,7 +853,7 @@ public class JSONObject {
}
return this;
}
-
+
/**
* Determine if the value associated with the key is null or if there is no value.
*
@@ -882,7 +864,7 @@ public class JSONObject {
public boolean isNull(final String key) {
return JSONObject.NULL.equals(this.opt(key));
}
-
+
/**
* Get an enumeration of the keys of the JSONObject.
*
@@ -891,7 +873,7 @@ public class JSONObject {
public Iterator keys() {
return this.keySet().iterator();
}
-
+
/**
* Get a set of keys of the JSONObject.
*
@@ -900,7 +882,7 @@ public class JSONObject {
public Set keySet() {
return this.map.keySet();
}
-
+
/**
* Get the number of keys stored in the JSONObject.
*
@@ -909,7 +891,7 @@ public class JSONObject {
public int length() {
return this.map.size();
}
-
+
/**
* Produce a JSONArray containing the names of the elements of this JSONObject.
*
@@ -923,7 +905,7 @@ public class JSONObject {
}
return ja.length() == 0 ? null : ja;
}
-
+
/**
* Get an optional value associated with a key.
*
@@ -934,7 +916,7 @@ public class JSONObject {
public Object opt(final String key) {
return key == null ? null : this.map.get(key);
}
-
+
/**
* Get an optional boolean associated with a key. It returns false if there is no such key, or if the value is not
* Boolean.TRUE or the String "true".
@@ -946,7 +928,7 @@ public class JSONObject {
public boolean optBoolean(final String key) {
return this.optBoolean(key, false);
}
-
+
/**
* Get an optional boolean associated with a key. It returns the defaultValue if there is no such key, or if it is
* not a Boolean or the String "true" or "false" (case insensitive).
@@ -963,7 +945,7 @@ public class JSONObject {
return defaultValue;
}
}
-
+
/**
* Get an optional double associated with a key, or NaN if there is no such key or if its value is not a number. If
* the value is a string, an attempt will be made to evaluate it as a number.
@@ -975,7 +957,7 @@ public class JSONObject {
public double optDouble(final String key) {
return this.optDouble(key, Double.NaN);
}
-
+
/**
* Get an optional double associated with a key, or the defaultValue if there is no such key or if its value is not
* a number. If the value is a string, an attempt will be made to evaluate it as a number.
@@ -992,7 +974,7 @@ public class JSONObject {
return defaultValue;
}
}
-
+
/**
* Get an optional int value associated with a key, or zero if there is no such key or if the value is not a number.
* If the value is a string, an attempt will be made to evaluate it as a number.
@@ -1004,7 +986,7 @@ public class JSONObject {
public int optInt(final String key) {
return this.optInt(key, 0);
}
-
+
/**
* Get an optional int value associated with a key, or the default if there is no such key or if the value is not a
* number. If the value is a string, an attempt will be made to evaluate it as a number.
@@ -1021,7 +1003,7 @@ public class JSONObject {
return defaultValue;
}
}
-
+
/**
* Get an optional JSONArray associated with a key. It returns null if there is no such key, or if its value is not
* a JSONArray.
@@ -1034,7 +1016,7 @@ public class JSONObject {
final Object o = this.opt(key);
return o instanceof JSONArray ? (JSONArray) o : null;
}
-
+
/**
* Get an optional JSONObject associated with a key. It returns null if there is no such key, or if its value is not
* a JSONObject.
@@ -1047,7 +1029,7 @@ public class JSONObject {
final Object object = this.opt(key);
return object instanceof JSONObject ? (JSONObject) object : null;
}
-
+
/**
* Get an optional long value associated with a key, or zero if there is no such key or if the value is not a
* number. If the value is a string, an attempt will be made to evaluate it as a number.
@@ -1059,7 +1041,7 @@ public class JSONObject {
public long optLong(final String key) {
return this.optLong(key, 0);
}
-
+
/**
* Get an optional long value associated with a key, or the default if there is no such key or if the value is not a
* number. If the value is a string, an attempt will be made to evaluate it as a number.
@@ -1076,7 +1058,7 @@ public class JSONObject {
return defaultValue;
}
}
-
+
/**
* Get an optional string associated with a key. It returns an empty string if there is no such key. If the value is
* not a string and is not null, then it is converted to a string.
@@ -1088,7 +1070,7 @@ public class JSONObject {
public String optString(final String key) {
return this.optString(key, "");
}
-
+
/**
* Get an optional string associated with a key. It returns the defaultValue if there is no such key.
*
@@ -1101,14 +1083,11 @@ public class JSONObject {
final Object object = this.opt(key);
return NULL.equals(object) ? defaultValue : object.toString();
}
-
+
private void populateMap(final Object bean) {
final Class klass = bean.getClass();
-
// If klass is a System class then set includeSuperClass to false.
-
final boolean includeSuperClass = klass.getClassLoader() != null;
-
final Method[] methods = includeSuperClass ? klass.getMethods() : klass.getDeclaredMethods();
for (final Method method : methods) {
try {
@@ -1130,7 +1109,6 @@ public class JSONObject {
} else if (!Character.isUpperCase(key.charAt(1))) {
key = key.substring(0, 1).toLowerCase() + key.substring(1);
}
-
final Object result = method.invoke(bean, (Object[]) null);
if (result != null) {
this.map.put(key, wrap(result));
@@ -1141,7 +1119,7 @@ public class JSONObject {
}
}
}
-
+
/**
* Put a key/boolean pair in the JSONObject.
*
@@ -1156,7 +1134,7 @@ public class JSONObject {
this.put(key, value ? Boolean.TRUE : Boolean.FALSE);
return this;
}
-
+
/**
* Put a key/value pair in the JSONObject, where the value will be a JSONArray which is produced from a Collection.
*
@@ -1171,7 +1149,7 @@ public class JSONObject {
this.put(key, new JSONArray(value));
return this;
}
-
+
/**
* Put a key/double pair in the JSONObject.
*
@@ -1186,7 +1164,7 @@ public class JSONObject {
this.put(key, new Double(value));
return this;
}
-
+
/**
* Put a key/int pair in the JSONObject.
*
@@ -1201,7 +1179,7 @@ public class JSONObject {
this.put(key, new Integer(value));
return this;
}
-
+
/**
* Put a key/long pair in the JSONObject.
*
@@ -1216,7 +1194,7 @@ public class JSONObject {
this.put(key, new Long(value));
return this;
}
-
+
/**
* Put a key/value pair in the JSONObject, where the value will be a JSONObject which is produced from a Map.
*
@@ -1231,7 +1209,7 @@ public class JSONObject {
this.put(key, new JSONObject(value));
return this;
}
-
+
/**
* Put a key/value pair in the JSONObject. If the value is null, then the key will be removed from the JSONObject if
* it is present.
@@ -1256,7 +1234,7 @@ public class JSONObject {
}
return this;
}
-
+
/**
* Put a key/value pair in the JSONObject, but only if the key and the value are both non-null, and only if there is
* not already a member with that name.
@@ -1277,7 +1255,7 @@ public class JSONObject {
}
return this;
}
-
+
/**
* Put a key/value pair in the JSONObject, but only if the key and the value are both non-null.
*
@@ -1295,7 +1273,7 @@ public class JSONObject {
}
return this;
}
-
+
/**
* Remove a name and its value, if present.
*
@@ -1306,7 +1284,7 @@ public class JSONObject {
public Object remove(final String key) {
return this.map.remove(key);
}
-
+
/**
* Determine if two JSONObjects are similar. They must contain the same set of names which must be associated with
* similar values.
@@ -1344,7 +1322,7 @@ public class JSONObject {
return false;
}
}
-
+
/**
* Produce a JSONArray containing the values of the members of this JSONObject.
*
@@ -1365,7 +1343,7 @@ public class JSONObject {
}
return ja;
}
-
+
/**
* Make a JSON text of this JSONObject. For compactness, no whitespace is added. If this would not result in a
* syntactically correct JSON text, then null will be returned instead.
@@ -1384,7 +1362,7 @@ public class JSONObject {
return null;
}
}
-
+
/**
* Make a prettyprinted JSON text of this JSONObject.
*
@@ -1404,7 +1382,7 @@ public class JSONObject {
return this.write(w, indentFactor, 0).toString();
}
}
-
+
/**
* Write the contents of the JSONObject as JSON text to a writer. For compactness, no whitespace is added.
*
@@ -1417,7 +1395,7 @@ public class JSONObject {
public Writer write(final Writer writer) throws JSONException {
return this.write(writer, 0, 0);
}
-
+
/**
* Write the contents of the JSONObject as JSON text to a writer. For compactness, no whitespace is added.
*
@@ -1433,7 +1411,6 @@ public class JSONObject {
final int length = this.length();
final Iterator keys = this.keys();
writer.write('{');
-
if (length == 1) {
final Object key = keys.next();
writer.write(quote(key.toString()));
@@ -1472,13 +1449,12 @@ public class JSONObject {
throw new JSONException(exception);
}
}
-
+
/**
* JSONObject.NULL is equivalent to the value that JavaScript calls null, whilst Java's null is equivalent to the
* value that JavaScript calls undefined.
*/
private static final class Null {
-
/**
* There is only intended to be a single instance of the NULL object, so the clone method returns itself.
*
@@ -1492,7 +1468,7 @@ public class JSONObject {
return this;
}
}
-
+
/**
* A Null object is equal to the null value and to itself.
*
@@ -1504,7 +1480,7 @@ public class JSONObject {
public boolean equals(final Object object) {
return (object == null) || (object == this);
}
-
+
/**
* Get the "null" string value.
*
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONStringer.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONStringer.java
index 053001408..d29ae0e46 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONStringer.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONStringer.java
@@ -40,7 +40,7 @@ public class JSONStringer extends JSONWriter {
public JSONStringer() {
super(new StringWriter());
}
-
+
/**
* Return the JSON text. This method is used to obtain the product of the JSONStringer instance. It will return
* null
if there was a problem in the construction of the JSON text (such as the calls to
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONTokener.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONTokener.java
index 7c465319a..62f0fa135 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONTokener.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONTokener.java
@@ -15,7 +15,6 @@ import java.io.StringReader;
* @version 2014-05-03
*/
public class JSONTokener {
-
private final Reader reader;
private long character;
private boolean eof;
@@ -23,7 +22,7 @@ public class JSONTokener {
private long line;
private char previous;
private boolean usePrevious;
-
+
/**
* Construct a JSONTokener from a Reader.
*
@@ -38,7 +37,7 @@ public class JSONTokener {
this.character = 1;
this.line = 1;
}
-
+
/**
* Construct a JSONTokener from an InputStream.
*
@@ -47,7 +46,7 @@ public class JSONTokener {
public JSONTokener(final InputStream inputStream) throws JSONException {
this(new InputStreamReader(inputStream));
}
-
+
/**
* Construct a JSONTokener from a string.
*
@@ -56,7 +55,7 @@ public class JSONTokener {
public JSONTokener(final String s) {
this(new StringReader(s));
}
-
+
/**
* Get the hex value of a character (base16).
*
@@ -76,7 +75,7 @@ public class JSONTokener {
}
return -1;
}
-
+
/**
* Back up one character. This provides a sort of lookahead capability, so that you can test for a digit or letter
* before attempting to parse the next number or identifier.
@@ -90,11 +89,11 @@ public class JSONTokener {
this.usePrevious = true;
this.eof = false;
}
-
+
public boolean end() {
return this.eof && !this.usePrevious;
}
-
+
/**
* Determine if the source string still contains characters that next() can consume.
*
@@ -108,7 +107,7 @@ public class JSONTokener {
this.back();
return true;
}
-
+
/**
* Get the next character in the source string.
*
@@ -125,7 +124,6 @@ public class JSONTokener {
} catch (final IOException exception) {
throw new JSONException(exception);
}
-
if (c <= 0) { // End of stream
this.eof = true;
c = 0;
@@ -144,7 +142,7 @@ public class JSONTokener {
this.previous = (char) c;
return this.previous;
}
-
+
/**
* Consume the next character, and check that it matches a specified character.
*
@@ -161,7 +159,7 @@ public class JSONTokener {
}
return n;
}
-
+
/**
* Get the next n characters.
*
@@ -175,10 +173,8 @@ public class JSONTokener {
if (n == 0) {
return "";
}
-
final char[] chars = new char[n];
int pos = 0;
-
while (pos < n) {
chars[pos] = this.next();
if (this.end()) {
@@ -188,7 +184,7 @@ public class JSONTokener {
}
return new String(chars);
}
-
+
/**
* Get the next char in the string, skipping whitespace.
*
@@ -197,14 +193,14 @@ public class JSONTokener {
* @throws JSONException
*/
public char nextClean() throws JSONException {
- for (; ; ) {
+ for (;;) {
final char c = this.next();
if ((c == 0) || (c > ' ')) {
return c;
}
}
}
-
+
/**
* Return the characters up to the next close quote character. Backslash processing is done. The formal JSON format
* does not allow strings in single quotes, but an implementation is allowed to accept them.
@@ -219,7 +215,7 @@ public class JSONTokener {
public String nextString(final char quote) throws JSONException {
char c;
final StringBuilder sb = new StringBuilder();
- for (; ; ) {
+ for (;;) {
c = this.next();
switch (c) {
case 0:
@@ -265,7 +261,7 @@ public class JSONTokener {
}
}
}
-
+
/**
* Get the text up but not including the specified character or the end of line, whichever comes first.
*
@@ -275,7 +271,7 @@ public class JSONTokener {
*/
public String nextTo(final char delimiter) throws JSONException {
final StringBuilder sb = new StringBuilder();
- for (; ; ) {
+ for (;;) {
final char c = this.next();
if ((c == delimiter) || (c == 0) || (c == '\n') || (c == '\r')) {
if (c != 0) {
@@ -286,7 +282,7 @@ public class JSONTokener {
sb.append(c);
}
}
-
+
/**
* Get the text up but not including one of the specified delimiter characters or the end of line, whichever comes
* first.
@@ -298,7 +294,7 @@ public class JSONTokener {
public String nextTo(final String delimiters) throws JSONException {
char c;
final StringBuilder sb = new StringBuilder();
- for (; ; ) {
+ for (;;) {
c = this.next();
if ((delimiters.indexOf(c) >= 0) || (c == 0) || (c == '\n') || (c == '\r')) {
if (c != 0) {
@@ -309,7 +305,7 @@ public class JSONTokener {
sb.append(c);
}
}
-
+
/**
* Get the next value. The value can be a Boolean, Double, Integer, JSONArray, JSONObject, Long, or String, or the
* JSONObject.NULL object.
@@ -321,7 +317,6 @@ public class JSONTokener {
public Object nextValue() throws JSONException {
char c = this.nextClean();
String string;
-
switch (c) {
case '"':
case '\'':
@@ -333,7 +328,6 @@ public class JSONTokener {
this.back();
return new JSONArray(this);
}
-
/*
* Handle unquoted text. This could be the values true, false, or
* null, or it can be a number. An implementation (such as this one)
@@ -341,21 +335,19 @@ public class JSONTokener {
* Accumulate characters until we reach the end of the text or a
* formatting character.
*/
-
final StringBuilder sb = new StringBuilder();
while ((c >= ' ') && (",:]}/\\\"[{;=#".indexOf(c) < 0)) {
sb.append(c);
c = this.next();
}
this.back();
-
string = sb.toString().trim();
if ("".equals(string)) {
throw this.syntaxError("Missing value");
}
return JSONObject.stringToValue(string);
}
-
+
/**
* Skip characters until the next character is the requested character. If the requested character is not found, no
* characters are skipped.
@@ -387,7 +379,7 @@ public class JSONTokener {
this.back();
return c;
}
-
+
/**
* Make a JSONException to signal a syntax error.
*
@@ -398,7 +390,7 @@ public class JSONTokener {
public JSONException syntaxError(final String message) {
return new JSONException(message + this.toString());
}
-
+
/**
* Make a printable string of this JSONTokener.
*
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONWriter.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONWriter.java
index 7017db3d5..a332af1f8 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONWriter.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/JSONWriter.java
@@ -55,7 +55,7 @@ public class JSONWriter {
* The stack top index. A value of 0 indicates that the stack is empty.
*/
private int top;
-
+
/**
* Make a fresh JSONWriter. It can be used to build one JSON text.
*/
@@ -66,7 +66,7 @@ public class JSONWriter {
this.top = 0;
this.writer = w;
}
-
+
/**
* Append a value.
*
@@ -97,7 +97,7 @@ public class JSONWriter {
}
throw new JSONException("Value out of sequence.");
}
-
+
/**
* Begin appending a new array. All values until the balancing endArray
will be appended to this array.
* The endArray
method must be called to mark the array's end.
@@ -116,7 +116,7 @@ public class JSONWriter {
}
throw new JSONException("Misplaced array.");
}
-
+
/**
* End something.
*
@@ -140,7 +140,7 @@ public class JSONWriter {
this.comma = true;
return this;
}
-
+
/**
* End an array. This method most be called to balance calls to array
.
*
@@ -151,7 +151,7 @@ public class JSONWriter {
public JSONWriter endArray() throws JSONException {
return this.end('a', ']');
}
-
+
/**
* End an object. This method most be called to balance calls to object
.
*
@@ -162,7 +162,7 @@ public class JSONWriter {
public JSONWriter endObject() throws JSONException {
return this.end('k', '}');
}
-
+
/**
* Append a key. The key will be associated with the next value. In an object, every value must be preceded by a
* key.
@@ -195,7 +195,7 @@ public class JSONWriter {
}
throw new JSONException("Misplaced key.");
}
-
+
/**
* Begin appending a new object. All keys and values until the balancing endObject
will be appended to
* this object. The endObject
method must be called to mark the object's end.
@@ -216,9 +216,8 @@ public class JSONWriter {
return this;
}
throw new JSONException("Misplaced object.");
-
}
-
+
/**
* Pop an array or object scope.
*
@@ -237,7 +236,7 @@ public class JSONWriter {
this.top -= 1;
this.mode = this.top == 0 ? 'd' : this.stack[this.top - 1] == null ? 'a' : 'k';
}
-
+
/**
* Push an array or object scope.
*
@@ -253,7 +252,7 @@ public class JSONWriter {
this.mode = jo == null ? 'a' : 'k';
this.top += 1;
}
-
+
/**
* Append either the value true
or the value false
.
*
@@ -266,7 +265,7 @@ public class JSONWriter {
public JSONWriter value(final boolean b) throws JSONException {
return this.append(b ? "true" : "false");
}
-
+
/**
* Append a double value.
*
@@ -279,7 +278,7 @@ public class JSONWriter {
public JSONWriter value(final double d) throws JSONException {
return this.value(new Double(d));
}
-
+
/**
* Append a long value.
*
@@ -292,7 +291,7 @@ public class JSONWriter {
public JSONWriter value(final long l) throws JSONException {
return this.append(Long.toString(l));
}
-
+
/**
* Append an object value.
*
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/Kim.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/Kim.java
index 332b0083e..03520de0d 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/Kim.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/Kim.java
@@ -27,7 +27,6 @@ package com.intellectualcrafters.json;
* @version 2013-04-18
*/
public class Kim {
-
/**
* The number of bytes in the kim. The number of bytes can be as much as three times the number of characters.
*/
@@ -44,7 +43,7 @@ public class Kim {
* The memoization of toString().
*/
private String string = null;
-
+
/**
* Make a kim from a portion of a byte array.
*
@@ -53,11 +52,9 @@ public class Kim {
* @param thru The index of the last byte plus one.
*/
public Kim(final byte[] bytes, final int from, final int thru) {
-
// As the bytes are copied into the new kim, a hashcode is computed
// using a
// modified Fletcher code.
-
int sum = 1;
int value;
this.hashcode = 0;
@@ -73,7 +70,7 @@ public class Kim {
this.hashcode += sum << 16;
}
}
-
+
/**
* Make a kim from a byte array.
*
@@ -83,7 +80,7 @@ public class Kim {
public Kim(final byte[] bytes, final int length) {
this(bytes, 0, length);
}
-
+
/**
* Make a new kim from a substring of an existing kim. The coordinates are in byte units, not character units.
*
@@ -94,7 +91,7 @@ public class Kim {
public Kim(final Kim kim, final int from, final int thru) {
this(kim.bytes, from, thru);
}
-
+
/**
* Make a kim from a string.
*
@@ -106,10 +103,8 @@ public class Kim {
final int stringLength = string.length();
this.hashcode = 0;
this.length = 0;
-
// First pass: Determine the length of the kim, allowing for the UTF-16
// to UTF-32 conversion, and then the UTF-32 to Kim conversion.
-
if (stringLength > 0) {
for (int i = 0; i < stringLength; i += 1) {
final int c = string.charAt(i);
@@ -128,11 +123,9 @@ public class Kim {
this.length += 3;
}
}
-
// Second pass: Allocate a byte array and fill that array with the
// conversion
// while computing the hashcode.
-
this.bytes = new byte[this.length];
int at = 0;
int b;
@@ -180,7 +173,7 @@ public class Kim {
this.hashcode += sum << 16;
}
}
-
+
/**
* Returns the number of bytes needed to contain the character in Kim format.
*
@@ -196,7 +189,7 @@ public class Kim {
}
return character <= 0x7F ? 1 : character <= 0x3FFF ? 2 : 3;
}
-
+
/**
* Returns the character at the specified index. The index refers to byte values and ranges from 0 to length - 1.
* The index of the next character is at index + Kim.characterSize(kim.characterAt(index)).
@@ -227,7 +220,7 @@ public class Kim {
}
throw new JSONException("Bad character at " + at);
}
-
+
/**
* Copy the contents of this kim to a byte array.
*
@@ -240,7 +233,7 @@ public class Kim {
System.arraycopy(this.bytes, 0, bytes, at, this.length);
return at + this.length;
}
-
+
/**
* Two kim objects containing exactly the same bytes in the same order are equal to each other.
*
@@ -262,7 +255,7 @@ public class Kim {
}
return java.util.Arrays.equals(this.bytes, that.bytes);
}
-
+
/**
* Get a byte from a kim.
*
@@ -278,7 +271,7 @@ public class Kim {
}
return (this.bytes[at]) & 0xFF;
}
-
+
/**
* Returns a hash code value for the kim.
*/
@@ -286,7 +279,7 @@ public class Kim {
public int hashCode() {
return this.hashcode;
}
-
+
/**
* Produce a UTF-16 String from this kim. The number of codepoints in the string will not be greater than the number
* of bytes in the kim, although it could be less.
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/Property.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/Property.java
index d846ff117..a177df954 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/Property.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/Property.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.json;
import java.util.Enumeration;
@@ -52,7 +51,7 @@ public class Property {
}
return jo;
}
-
+
/**
* Converts the JSONObject into a property file object.
*
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/XML.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/XML.java
index cd6ce153f..c14748a1c 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/XML.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/XML.java
@@ -9,52 +9,43 @@ import java.util.Iterator;
* @version 2014-05-03
*/
public class XML {
-
/**
* The Character '&'.
*/
public static final Character AMP = '&';
-
/**
* The Character '''.
*/
public static final Character APOS = '\'';
-
/**
* The Character '!'.
*/
public static final Character BANG = '!';
-
/**
* The Character '='.
*/
public static final Character EQ = '=';
-
/**
* The Character '>'.
*/
public static final Character GT = '>';
-
/**
* The Character '<'.
*/
public static final Character LT = '<';
-
/**
* The Character '?'.
*/
public static final Character QUEST = '?';
-
/**
* The Character '"'.
*/
public static final Character QUOT = '"';
-
/**
* The Character '/'.
*/
public static final Character SLASH = '/';
-
+
/**
* Replace special characters with XML escapes:
*
@@ -96,7 +87,7 @@ public class XML {
}
return sb.toString();
}
-
+
/**
* Throw an exception if the string contains whitespace. Whitespace is not allowed in tagNames and attributes.
*
@@ -116,7 +107,7 @@ public class XML {
}
}
}
-
+
/**
* Scan the content following the named tag, attaching it to the context.
*
@@ -135,7 +126,6 @@ public class XML {
String string;
String tagName;
Object token;
-
// Test for and skip past these forms:
//
//
@@ -145,11 +135,8 @@ public class XML {
// <>
// <=
// <<
-
token = x.nextToken();
-
// 0);
return false;
} else if (token == QUEST) {
-
//
-
x.skipPast("?>");
return false;
} else if (token == SLASH) {
-
// Close tag
-
token = x.nextToken();
if (name == null) {
throw x.syntaxError("Mismatched close tag " + token);
@@ -204,23 +187,18 @@ public class XML {
throw x.syntaxError("Misshaped close tag");
}
return true;
-
} else if (token instanceof Character) {
throw x.syntaxError("Misshaped tag");
-
// Open tag <
-
} else {
tagName = (String) token;
token = null;
jsonobject = new JSONObject();
- for (; ; ) {
+ for (;;) {
if (token == null) {
token = x.nextToken();
}
-
// attribute = value
-
if (token instanceof String) {
string = (String) token;
token = x.nextToken();
@@ -234,9 +212,7 @@ public class XML {
} else {
jsonobject.accumulate(string, "");
}
-
// Empty tag <.../>
-
} else if (token == SLASH) {
if (x.nextToken() != GT) {
throw x.syntaxError("Misshaped tag");
@@ -247,11 +223,9 @@ public class XML {
context.accumulate(tagName, "");
}
return false;
-
// Content, between <...> and
-
} else if (token == GT) {
- for (; ; ) {
+ for (;;) {
token = x.nextContent();
if (token == null) {
if (tagName != null) {
@@ -263,9 +237,7 @@ public class XML {
if (string.length() > 0) {
jsonobject.accumulate("content", XML.stringToValue(string));
}
-
// Nested element
-
} else if (token == LT) {
if (parse(x, jsonobject, tagName)) {
if (jsonobject.length() == 0) {
@@ -285,7 +257,7 @@ public class XML {
}
}
}
-
+
/**
* Try to convert a string into a number, boolean, or null. If the string can't be converted, return the string.
* This is much less ambitious than JSONObject.stringToValue, especially because it does not attempt to convert plus
@@ -305,11 +277,9 @@ public class XML {
if ("null".equalsIgnoreCase(string)) {
return JSONObject.NULL;
}
-
// If it might be a number, try converting it, first as a Long, and then
// as a
// Double. If that doesn't work, return the string.
-
try {
final char initial = string.charAt(0);
if ((initial == '-') || ((initial >= '0') && (initial <= '9'))) {
@@ -329,7 +299,7 @@ public class XML {
}
return string;
}
-
+
/**
* Convert a well-formed (but not necessarily valid) XML string into a JSONObject. Some information may be lost in
* this transformation because JSON is a data format and XML is a document format. XML uses elements, attributes,
@@ -352,7 +322,7 @@ public class XML {
}
return jo;
}
-
+
/**
* Convert a JSONObject into a well-formed, element-normal XML string.
*
@@ -365,7 +335,7 @@ public class XML {
public static String toString(final Object object) throws JSONException {
return toString(object, null);
}
-
+
/**
* Convert a JSONObject into a well-formed, element-normal XML string.
*
@@ -387,17 +357,13 @@ public class XML {
String string;
Object value;
if (object instanceof JSONObject) {
-
// Emit
-
if (tagName != null) {
sb.append('<');
sb.append(tagName);
sb.append('>');
}
-
// Loop thru the keys.
-
jo = (JSONObject) object;
keys = jo.keys();
while (keys.hasNext()) {
@@ -407,9 +373,7 @@ public class XML {
value = "";
}
string = value instanceof String ? (String) value : null;
-
// Emit content in body
-
if ("content".equals(key)) {
if (value instanceof JSONArray) {
ja = (JSONArray) value;
@@ -423,9 +387,7 @@ public class XML {
} else {
sb.append(escape(value.toString()));
}
-
// Emit an array of similar keys
-
} else if (value instanceof JSONArray) {
ja = (JSONArray) value;
length = ja.length();
@@ -447,27 +409,21 @@ public class XML {
sb.append('<');
sb.append(key);
sb.append("/>");
-
// Emit a new tag
-
} else {
sb.append(toString(value, key));
}
}
if (tagName != null) {
-
// Emit the close tag
-
sb.append("");
sb.append(tagName);
sb.append('>');
}
return sb.toString();
-
// XML does not have good support for arrays. If an array appears in
// a place
// where XML is lacking, synthesize an element.
-
} else {
if (object.getClass().isArray()) {
object = new JSONArray(object);
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/json/XMLTokener.java b/PlotSquared/src/main/java/com/intellectualcrafters/json/XMLTokener.java
index ab1513a72..1431939c7 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/json/XMLTokener.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/json/XMLTokener.java
@@ -7,12 +7,10 @@ package com.intellectualcrafters.json;
* @version 2014-05-03
*/
public class XMLTokener extends JSONTokener {
-
/**
* The table of entity values. It initially contains Character values for amp, apos, gt, lt, quot.
*/
public static final java.util.HashMap entity;
-
static {
entity = new java.util.HashMap(8);
entity.put("amp", XML.AMP);
@@ -21,7 +19,7 @@ public class XMLTokener extends JSONTokener {
entity.put("lt", XML.LT);
entity.put("quot", XML.QUOT);
}
-
+
/**
* Construct an XMLTokener from a string.
*
@@ -30,7 +28,7 @@ public class XMLTokener extends JSONTokener {
public XMLTokener(final String s) {
super(s);
}
-
+
/**
* Get the text in the CDATA block.
*
@@ -42,7 +40,7 @@ public class XMLTokener extends JSONTokener {
char c;
int i;
final StringBuilder sb = new StringBuilder();
- for (; ; ) {
+ for (;;) {
c = next();
if (end()) {
throw syntaxError("Unclosed CDATA");
@@ -55,7 +53,7 @@ public class XMLTokener extends JSONTokener {
}
}
}
-
+
/**
* Get the next XML outer token, trimming whitespace. There are two kinds of tokens: the '<' character which begins
* a markup tag, and the content text between markup tags.
@@ -77,7 +75,7 @@ public class XMLTokener extends JSONTokener {
return XML.LT;
}
sb = new StringBuilder();
- for (; ; ) {
+ for (;;) {
if ((c == '<') || (c == 0)) {
back();
return sb.toString().trim();
@@ -90,7 +88,7 @@ public class XMLTokener extends JSONTokener {
c = next();
}
}
-
+
/**
* Return the next entity. These entities are translated to Characters: & ' > <
* "
.
@@ -103,7 +101,7 @@ public class XMLTokener extends JSONTokener {
*/
public Object nextEntity(final char ampersand) throws JSONException {
final StringBuilder sb = new StringBuilder();
- for (; ; ) {
+ for (;;) {
final char c = next();
if (Character.isLetterOrDigit(c) || (c == '#')) {
sb.append(Character.toLowerCase(c));
@@ -117,7 +115,7 @@ public class XMLTokener extends JSONTokener {
final Object object = entity.get(string);
return object != null ? object : ampersand + string + ";";
}
-
+
/**
* Returns the next XML meta token. This is used for skipping over and ...?> structures.
*
@@ -150,7 +148,7 @@ public class XMLTokener extends JSONTokener {
case '"':
case '\'':
q = c;
- for (; ; ) {
+ for (;;) {
c = next();
if (c == 0) {
throw syntaxError("Unterminated string");
@@ -160,7 +158,7 @@ public class XMLTokener extends JSONTokener {
}
}
default:
- for (; ; ) {
+ for (;;) {
c = next();
if (Character.isWhitespace(c)) {
return Boolean.TRUE;
@@ -181,7 +179,7 @@ public class XMLTokener extends JSONTokener {
}
}
}
-
+
/**
* Get the next XML Token. These tokens are found inside of angle brackets. It may be one of these characters:
* / > = ! ?
or it may be a string wrapped in single quotes or double quotes, or it may be a name.
@@ -212,14 +210,12 @@ public class XMLTokener extends JSONTokener {
return XML.BANG;
case '?':
return XML.QUEST;
-
- // Quoted string
-
+ // Quoted string
case '"':
case '\'':
q = c;
sb = new StringBuilder();
- for (; ; ) {
+ for (;;) {
c = next();
if (c == 0) {
throw syntaxError("Unterminated string");
@@ -234,11 +230,9 @@ public class XMLTokener extends JSONTokener {
}
}
default:
-
// Name
-
sb = new StringBuilder();
- for (; ; ) {
+ for (;;) {
sb.append(c);
c = next();
if (Character.isWhitespace(c)) {
@@ -264,7 +258,7 @@ public class XMLTokener extends JSONTokener {
}
}
}
-
+
/**
* Skip characters until past the requested string. If it is not found, we are left at the end of the source with a
* result of false.
@@ -281,12 +275,10 @@ public class XMLTokener extends JSONTokener {
int offset = 0;
final int length = to.length();
final char[] circle = new char[length];
-
/*
* First fill the circle buffer with as many characters as are in the
* to string. If we reach an early end, bail.
*/
-
for (i = 0; i < length; i += 1) {
c = next();
if (c == 0) {
@@ -294,15 +286,11 @@ public class XMLTokener extends JSONTokener {
}
circle[i] = c;
}
-
/* We will loop, possibly for all of the remaining characters. */
-
- for (; ; ) {
+ for (;;) {
j = offset;
b = true;
-
/* Compare the circle buffer with the to string. */
-
for (i = 0; i < length; i += 1) {
if (circle[j] != to.charAt(i)) {
b = false;
@@ -313,15 +301,11 @@ public class XMLTokener extends JSONTokener {
j -= length;
}
}
-
/* If we exit the loop with b intact, then victory is ours. */
-
if (b) {
return true;
}
-
/* Get the next character. If there isn't one, then defeat is ours. */
-
c = next();
if (c == 0) {
return false;
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/BukkitMain.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/BukkitMain.java
new file mode 100644
index 000000000..1d5b63dea
--- /dev/null
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/BukkitMain.java
@@ -0,0 +1,340 @@
+package com.intellectualcrafters.plot;
+
+import java.io.File;
+import java.util.Arrays;
+
+import net.milkbowl.vault.economy.Economy;
+
+import org.bukkit.Bukkit;
+import org.bukkit.ChatColor;
+import org.bukkit.Chunk;
+import org.bukkit.World;
+import org.bukkit.command.PluginCommand;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.Player;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.Listener;
+import org.bukkit.event.player.PlayerCommandPreprocessEvent;
+import org.bukkit.event.world.WorldLoadEvent;
+import org.bukkit.generator.ChunkGenerator;
+import org.bukkit.plugin.Plugin;
+import org.bukkit.plugin.RegisteredServiceProvider;
+import org.bukkit.plugin.java.JavaPlugin;
+
+import com.intellectualcrafters.plot.commands.BukkitCommand;
+import com.intellectualcrafters.plot.commands.Buy;
+import com.intellectualcrafters.plot.commands.MainCommand;
+import com.intellectualcrafters.plot.commands.WE_Anywhere;
+import com.intellectualcrafters.plot.config.C;
+import com.intellectualcrafters.plot.config.Settings;
+import com.intellectualcrafters.plot.database.PlotMeConverter;
+import com.intellectualcrafters.plot.events.PlotDeleteEvent;
+import com.intellectualcrafters.plot.generator.BukkitHybridUtils;
+import com.intellectualcrafters.plot.generator.HybridGen;
+import com.intellectualcrafters.plot.generator.HybridUtils;
+import com.intellectualcrafters.plot.listeners.ForceFieldListener;
+import com.intellectualcrafters.plot.listeners.InventoryListener;
+import com.intellectualcrafters.plot.listeners.PlayerEvents;
+import com.intellectualcrafters.plot.listeners.PlayerEvents_1_8;
+import com.intellectualcrafters.plot.listeners.PlotPlusListener;
+import com.intellectualcrafters.plot.listeners.WorldEditListener;
+import com.intellectualcrafters.plot.object.PlotId;
+import com.intellectualcrafters.plot.util.BlockManager;
+import com.intellectualcrafters.plot.util.ConsoleColors;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.SetupUtils;
+import com.intellectualcrafters.plot.util.TaskManager;
+import com.intellectualcrafters.plot.util.bukkit.BukkitSetupUtils;
+import com.intellectualcrafters.plot.util.bukkit.BukkitTaskManager;
+import com.intellectualcrafters.plot.util.bukkit.BukkitUtil;
+import com.intellectualcrafters.plot.util.bukkit.Metrics;
+import com.intellectualcrafters.plot.util.bukkit.SendChunk;
+import com.intellectualcrafters.plot.util.bukkit.SetBlockFast;
+import com.intellectualcrafters.plot.util.bukkit.SetBlockFast_1_8;
+import com.intellectualcrafters.plot.util.bukkit.SetBlockManager;
+import com.intellectualcrafters.plot.util.bukkit.SetBlockSlow;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
+import com.sk89q.worldedit.bukkit.WorldEditPlugin;
+
+public class BukkitMain extends JavaPlugin implements Listener, IPlotMain {
+ public static BukkitMain THIS = null;
+ public static PlotSquared MAIN = null;
+
+ @EventHandler
+ public static void worldLoad(final WorldLoadEvent event) {
+ UUIDHandler.cacheAll(event.getWorld().getName());
+ }
+
+ public static boolean checkVersion(final int major, final int minor, final int minor2) {
+ try {
+ final String[] version = Bukkit.getBukkitVersion().split("-")[0].split("\\.");
+ final int a = Integer.parseInt(version[0]);
+ final int b = Integer.parseInt(version[1]);
+ int c = 0;
+ if (version.length == 3) {
+ c = Integer.parseInt(version[2]);
+ }
+ if ((a > major) || ((a == major) && (b > minor)) || ((a == major) && (b == minor) && (c >= minor2))) {
+ return true;
+ }
+ return false;
+ } catch (final Exception e) {
+ return false;
+ }
+ }
+
+ @EventHandler
+ public void PlayerCommand(final PlayerCommandPreprocessEvent event) {
+ final String message = event.getMessage();
+ if (message.toLowerCase().startsWith("/plotme")) {
+ final Plugin plotme = Bukkit.getPluginManager().getPlugin("PlotMe");
+ if (plotme == null) {
+ final Player player = event.getPlayer();
+ if (Settings.USE_PLOTME_ALIAS) {
+ player.performCommand(message.replace("/plotme", "plots"));
+ } else {
+ MainUtil.sendMessage(BukkitUtil.getPlayer(player), C.NOT_USING_PLOTME);
+ }
+ event.setCancelled(true);
+ }
+ }
+ }
+
+ @Override
+ public void onEnable() {
+ MAIN = new PlotSquared(this);
+ THIS = this;
+ if (Settings.METRICS) {
+ try {
+ final Metrics metrics = new Metrics(this);
+ metrics.start();
+ log(C.PREFIX.s() + "&6Metrics enabled.");
+ } catch (final Exception e) {
+ log(C.PREFIX.s() + "&cFailed to load up metrics.");
+ }
+ } else {
+ log("&dUsing metrics will allow us to improve the plugin, please consider it :)");
+ }
+ getServer().getPluginManager().registerEvents(this, this);
+ }
+
+ @Override
+ public void onDisable() {
+ MAIN.disable();
+ MAIN = null;
+ THIS = null;
+ }
+
+ @Override
+ public void log(String message) {
+ if ((THIS == null) || (Bukkit.getServer().getConsoleSender() == null)) {
+ System.out.println(ChatColor.stripColor(ConsoleColors.fromString(message)));
+ } else {
+ message = ChatColor.translateAlternateColorCodes('&', message);
+ if (!Settings.CONSOLE_COLOR) {
+ message = ChatColor.stripColor(message);
+ }
+ Bukkit.getServer().getConsoleSender().sendMessage(message);
+ }
+ }
+
+ @Override
+ public void disable() {
+ onDisable();
+ }
+
+ @Override
+ public String getVersion() {
+ return this.getDescription().getVersion();
+ }
+
+ @Override
+ public void registerCommands() {
+ final MainCommand command = new MainCommand();
+ final BukkitCommand bcmd = new BukkitCommand();
+ final PluginCommand plotCommand = getCommand("plots");
+ plotCommand.setExecutor(bcmd);
+ plotCommand.setAliases(Arrays.asList("p", "ps", "plotme", "plot"));
+ plotCommand.setTabCompleter(bcmd);
+ }
+
+ @Override
+ public File getDirectory() {
+ return getDataFolder();
+ }
+
+ @Override
+ public TaskManager getTaskManager() {
+ return new BukkitTaskManager();
+ }
+
+ @Override
+ public void runEntityTask() {
+ log(C.PREFIX.s() + "KillAllEntities started.");
+ TaskManager.runTaskRepeat(new Runnable() {
+ long ticked = 0l;
+ long error = 0l;
+ @Override
+ public void run() {
+ if (this.ticked > 36_000L) {
+ this.ticked = 0l;
+ if (this.error > 0) {
+ log(C.PREFIX.s() + "KillAllEntities has been running for 6 hours. Errors: " + this.error);
+ }
+ this.error = 0l;
+ }
+ World world;
+ for (final String w : PlotSquared.getPlotWorlds()) {
+ world = Bukkit.getWorld(w);
+ try {
+ if (world.getLoadedChunks().length < 1) {
+ continue;
+ }
+ for (final Chunk chunk : world.getLoadedChunks()) {
+ final Entity[] entities = chunk.getEntities();
+ Entity entity;
+ for (int i = entities.length - 1; i >= 0; i--) {
+ if (!((entity = entities[i]) instanceof Player) && (MainUtil.getPlot(BukkitUtil.getLocation(entity)) == null)) {
+ entity.remove();
+ }
+ }
+ }
+ } catch (final Throwable e) {
+ ++this.error;
+ } finally {
+ ++this.ticked;
+ }
+ }
+ }
+ }, 20);
+ }
+
+ @Override
+ final public ChunkGenerator getDefaultWorldGenerator(final String world, final String id) {
+ if (!PlotSquared.setupPlotWorld(world, id)) {
+ return null;
+ }
+ return new HybridGen(world);
+ }
+
+ @Override
+ public void registerPlayerEvents() {
+ getServer().getPluginManager().registerEvents(new PlayerEvents(), this);
+ if (checkVersion(1, 8, 0)) {
+ getServer().getPluginManager().registerEvents(new PlayerEvents_1_8(), this);
+ }
+ }
+
+ @Override
+ public void registerInventoryEvents() {
+ getServer().getPluginManager().registerEvents(new InventoryListener(), this);
+ }
+
+ @Override
+ public void registerPlotPlusEvents() {
+ PlotPlusListener.startRunnable(this);
+ getServer().getPluginManager().registerEvents(new PlotPlusListener(), this);
+ }
+
+ @Override
+ public void registerForceFieldEvents() {
+ getServer().getPluginManager().registerEvents(new ForceFieldListener(), this);
+ }
+
+ @Override
+ public void registerWorldEditEvents() {
+ if (getServer().getPluginManager().getPlugin("WorldEdit") != null) {
+ PlotSquared.worldEdit = (WorldEditPlugin) getServer().getPluginManager().getPlugin("WorldEdit");
+ final String version = PlotSquared.worldEdit.getDescription().getVersion();
+ if ((version != null) && version.startsWith("5.")) {
+ log("&cThis version of WorldEdit does not support PlotSquared.");
+ log("&cPlease use WorldEdit 6+ for masking support");
+ log("&c - http://builds.enginehub.org/job/worldedit");
+ } else {
+ getServer().getPluginManager().registerEvents(new WorldEditListener(), this);
+ MainCommand.subCommands.add(new WE_Anywhere());
+ }
+ }
+ }
+
+ @Override
+ public Economy getEconomy() {
+ if ((getServer().getPluginManager().getPlugin("Vault") != null) && getServer().getPluginManager().getPlugin("Vault").isEnabled()) {
+ final RegisteredServiceProvider economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
+ if (economyProvider != null) {
+ MainCommand.subCommands.add(new Buy());
+ return economyProvider.getProvider();
+ }
+ }
+ return null;
+ }
+
+ @Override
+ public BlockManager initBlockManager() {
+ if (checkVersion(1, 8, 0)) {
+ try {
+ SetBlockManager.setBlockManager = new SetBlockFast_1_8();
+ } catch (final Throwable e) {
+ e.printStackTrace();
+ SetBlockManager.setBlockManager = new SetBlockSlow();
+ }
+ } else {
+ try {
+ SetBlockManager.setBlockManager = new SetBlockFast();
+ } catch (final Throwable e) {
+ SetBlockManager.setBlockManager = new SetBlockSlow();
+ }
+ }
+ try {
+ new SendChunk();
+ MainUtil.canSendChunk = true;
+ } catch (final Throwable e) {
+ MainUtil.canSendChunk = false;
+ }
+ return BlockManager.manager = new BukkitUtil();
+ }
+
+ @Override
+ public boolean initPlotMeConverter() {
+ try {
+ new PlotMeConverter().runAsync();
+ } catch (final Exception e) {
+ e.printStackTrace();
+ }
+ if (Bukkit.getPluginManager().getPlugin("PlotMe") != null) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public void getGenerator(final String world, final String name) {
+ final Plugin gen_plugin = Bukkit.getPluginManager().getPlugin(name);
+ if ((gen_plugin != null) && gen_plugin.isEnabled()) {
+ gen_plugin.getDefaultWorldGenerator(world, "");
+ } else {
+ new HybridGen(world);
+ }
+ }
+
+ @Override
+ public boolean callRemovePlot(final String world, final PlotId id) {
+ final PlotDeleteEvent event = new PlotDeleteEvent(world, id);
+ Bukkit.getServer().getPluginManager().callEvent(event);
+ if (event.isCancelled()) {
+ event.setCancelled(true);
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public HybridUtils initHybridUtils() {
+ return new BukkitHybridUtils();
+ }
+
+ @Override
+ public SetupUtils initSetupUtils() {
+ return new BukkitSetupUtils();
+ }
+}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/IPlotMain.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/IPlotMain.java
new file mode 100644
index 000000000..76c59e5ac
--- /dev/null
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/IPlotMain.java
@@ -0,0 +1,51 @@
+package com.intellectualcrafters.plot;
+
+import java.io.File;
+
+import net.milkbowl.vault.economy.Economy;
+
+import com.intellectualcrafters.plot.generator.HybridUtils;
+import com.intellectualcrafters.plot.object.PlotId;
+import com.intellectualcrafters.plot.util.BlockManager;
+import com.intellectualcrafters.plot.util.SetupUtils;
+import com.intellectualcrafters.plot.util.TaskManager;
+
+public interface IPlotMain {
+ public void log(String message);
+
+ public File getDirectory();
+
+ public void disable();
+
+ public String getVersion();
+
+ public TaskManager getTaskManager();
+
+ public void runEntityTask();
+
+ public void registerCommands();
+
+ public void registerPlayerEvents();
+
+ public void registerInventoryEvents();
+
+ public void registerPlotPlusEvents();
+
+ public void registerForceFieldEvents();
+
+ public void registerWorldEditEvents();
+
+ public Economy getEconomy();
+
+ public BlockManager initBlockManager();
+
+ public SetupUtils initSetupUtils();
+
+ public HybridUtils initHybridUtils();
+
+ public boolean initPlotMeConverter();
+
+ public void getGenerator(String world, String name);
+
+ public boolean callRemovePlot(String world, PlotId id);
+}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotMain.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotMain.java
deleted file mode 100644
index 4d99365cd..000000000
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotMain.java
+++ /dev/null
@@ -1,1682 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// PlotSquared - A plot manager and world generator for the Bukkit API /
-// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
-// /
-// This program is free software; you can redistribute it and/or modify /
-// it under the terms of the GNU General Public License as published by /
-// the Free Software Foundation; either version 3 of the License, or /
-// (at your option) any later version. /
-// /
-// This program is distributed in the hope that it will be useful, /
-// but WITHOUT ANY WARRANTY; without even the implied warranty of /
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
-// GNU General Public License for more details. /
-// /
-// You should have received a copy of the GNU General Public License /
-// along with this program; if not, write to the Free Software Foundation, /
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
-// /
-// You can contact us via: support@intellectualsites.com /
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-package com.intellectualcrafters.plot;
-
-import com.intellectualcrafters.plot.commands.Buy;
-import com.intellectualcrafters.plot.commands.Cluster;
-import com.intellectualcrafters.plot.commands.MainCommand;
-import com.intellectualcrafters.plot.commands.WE_Anywhere;
-import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.config.Configuration;
-import com.intellectualcrafters.plot.config.ConfigurationNode;
-import com.intellectualcrafters.plot.config.Settings;
-import com.intellectualcrafters.plot.database.*;
-import com.intellectualcrafters.plot.events.PlayerTeleportToPlotEvent;
-import com.intellectualcrafters.plot.events.PlotDeleteEvent;
-import com.intellectualcrafters.plot.flag.AbstractFlag;
-import com.intellectualcrafters.plot.flag.FlagManager;
-import com.intellectualcrafters.plot.flag.FlagValue;
-import com.intellectualcrafters.plot.generator.AugmentedPopulator;
-import com.intellectualcrafters.plot.generator.HybridGen;
-import com.intellectualcrafters.plot.generator.HybridPlotWorld;
-import com.intellectualcrafters.plot.generator.SquarePlotManager;
-import com.intellectualcrafters.plot.listeners.*;
-import com.intellectualcrafters.plot.object.*;
-import com.intellectualcrafters.plot.titles.AbstractTitle;
-import com.intellectualcrafters.plot.titles.DefaultTitle;
-import com.intellectualcrafters.plot.util.*;
-import com.intellectualcrafters.plot.util.Logger.LogLevel;
-import com.intellectualcrafters.plot.uuid.DefaultUUIDWrapper;
-import com.intellectualcrafters.plot.uuid.OfflineUUIDWrapper;
-import com.sk89q.worldedit.bukkit.WorldEditPlugin;
-import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
-
-import me.confuser.barapi.BarAPI;
-import net.milkbowl.vault.economy.Economy;
-
-import org.bukkit.*;
-import org.bukkit.Location;
-import org.bukkit.command.PluginCommand;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.entity.Entity;
-import org.bukkit.entity.Player;
-import org.bukkit.event.EventHandler;
-import org.bukkit.event.Listener;
-import org.bukkit.event.player.PlayerCommandPreprocessEvent;
-import org.bukkit.event.world.WorldLoadEvent;
-import org.bukkit.generator.ChunkGenerator;
-import org.bukkit.plugin.Plugin;
-import org.bukkit.plugin.RegisteredServiceProvider;
-import org.bukkit.plugin.java.JavaPlugin;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.*;
-import java.util.Map.Entry;
-
-/**
- * PlotMain class.
- *
- * @author Citymonstret
- * @author Empire92
- */
-public class PlotMain extends JavaPlugin implements Listener {
- /**
- * Permission that allows for "everything"
- */
- public static final String ADMIN_PERMISSION = "plots.admin";
- /**
- * Storage version
- */
- public final static int storage_ver = 1;
- /**
- * All loaded plot worlds
- */
- private final static HashMap worlds = new HashMap<>();
- /**
- * All world managers
- */
- private final static HashMap managers = new HashMap<>();
- /**
- * style
- */
- public static File styleFile;
- public static YamlConfiguration styleConfig;
- /**
- * settings.properties
- */
- public static File configFile;
- /**
- * The main configuration file
- */
- public static YamlConfiguration config;
- /**
- * storage.properties
- */
- public static File storageFile;
- /**
- * Contains storage options
- */
- public static YamlConfiguration storage;
- /**
- * MySQL Connection
- */
- public static Connection connection;
- /**
- * WorldEdit object
- */
- public static WorldEditPlugin worldEdit = null;
- /**
- * BarAPI object
- */
- public static BarAPI barAPI = null;
- /**
- * World Guard Object
- */
- public static WorldGuardPlugin worldGuard = null;
- /**
- * World Guard Listener
- */
- public static WorldGuardListener worldGuardListener = null;
- /**
- * Economy Object (vault)
- */
- public static Economy economy;
- /**
- * Use Economy?
- */
- public static boolean useEconomy = false;
- private static PlotMain main = null;
- private static boolean LOADING_WORLD = false;
- /**
- * MySQL Object
- */
- private static MySQL mySQL;
- /**
- * List of all plots DO NOT USE EXCEPT FOR DATABASE PURPOSES
- */
- private static LinkedHashMap> plots;
-
- /**
- * Return an instance of MySQL
- */
- public static MySQL getMySQL() {
- return mySQL;
- }
- /**
- * Check a range of permissions e.g. 'plots.plot.<0-100>' Returns highest integer in range.
- *
- * @param player to check
- * @param stub to check
- * @param range tp check
- *
- * @return permitted range
- */
- public static int hasPermissionRange(final Player player, final String stub, final int range) {
- if ((player == null) || player.isOp() || player.hasPermission(ADMIN_PERMISSION)) {
- return Byte.MAX_VALUE;
- }
- if (player.hasPermission(stub + ".*")) {
- return Byte.MAX_VALUE;
- }
- for (int i = range; i > 0; i--) {
- if (player.hasPermission(stub + "." + i)) {
- return i;
- }
- }
- return 0;
- }
-
- /**
- * Check a player for a permission - Op has all permissions - checks for '*' nodes
- *
- * @param player to check
- * @param perms to check
- *
- * @return true of player has permissions
- */
- public static boolean hasPermissions(final Player player, final String[] perms) {
- // Assumes null player is console.
- if ((player == null) || player.isOp() || player.hasPermission(ADMIN_PERMISSION)) {
- return true;
- }
- for (final String perm : perms) {
- boolean permitted = false;
- if (player.hasPermission(perm)) {
- permitted = true;
- } else {
- final String[] nodes = perm.split("\\.");
- final StringBuilder n = new StringBuilder();
- for (int i = 0; i < (nodes.length - 1); i++) {
- n.append(nodes[i]).append(".");
- if (player.hasPermission(n + "*")) {
- permitted = true;
- break;
- }
- }
- }
- if (!permitted) {
- return false;
- }
- }
-
- return true;
- }
-
- /**
- * Check a player for a permission - Op has all permissions - checks for '*' nodes
- *
- * @param player to check
- * @param perm to check
- *
- * @return true if player has the permission
- */
- public static boolean hasPermission(final Player player, final String perm) {
- if ((player == null) || player.isOp() || player.hasPermission(ADMIN_PERMISSION)) {
- return true;
- }
- if (player.hasPermission(perm)) {
- return true;
- }
- final String[] nodes = perm.split("\\.");
- final StringBuilder n = new StringBuilder();
- for (int i = 0; i < (nodes.length - 1); i++) {
- n.append(nodes[i] + ("."));
- if (player.hasPermission(n + "*")) {
- return true;
- }
- }
-
- return false;
- }
-
- /**
- * Get all plots
- *
- * @return HashMap containing the plot ID and the plot object.
- */
- public static Set getPlots() {
- final ArrayList _plots = new ArrayList<>();
- for (final HashMap world : plots.values()) {
- _plots.addAll(world.values());
- }
- return new LinkedHashSet<>(_plots);
- }
-
- /**
- * Get a sorted list of plots
- *
- * @return sorted list
- */
- public static LinkedHashSet getPlotsSorted() {
- final ArrayList _plots = new ArrayList<>();
- for (final HashMap world : plots.values()) {
- _plots.addAll(world.values());
- }
- return new LinkedHashSet<>(_plots);
- }
-
- /**
- * @param player player
- *
- * @return Set Containing the players plots
- * - ignores non plot worlds
- */
- public static Set getPlots(final Player player) {
- final UUID uuid = UUIDHandler.getUUID(player);
- final ArrayList myplots = new ArrayList<>();
- for (final String world : plots.keySet()) {
- if (isPlotWorld(world)) {
- for (final Plot plot : plots.get(world).values()) {
- if (plot.hasOwner()) {
- if (plot.getOwner().equals(uuid)) {
- myplots.add(plot);
- }
- }
- }
- }
- }
- return new HashSet<>(myplots);
- }
-
- /**
- * @param world plot world
- * @param player plot owner
- *
- * @return players plots
- */
- public static Set getPlots(final World world, final Player player) {
- final UUID uuid = UUIDHandler.getUUID(player);
- return getPlots(world, uuid);
- }
-
- /**
- * @param world plot world
- * @param player plot owner
- *
- * @return players plots
- */
- public static Set getPlots(final World world, final UUID uuid) {
- final ArrayList myplots = new ArrayList<>();
- for (final Plot plot : getPlots(world).values()) {
- if (plot.hasOwner()) {
- if (plot.getOwner().equals(uuid)) {
- myplots.add(plot);
- }
- }
- }
- return new HashSet<>(myplots);
- }
-
- /**
- * Get plots for the specified world
- *
- * @param world A world, in which you want to search for plots
- *
- * @return HashMap containing Plot IDs and Plot Objects
- */
- public static HashMap getPlots(final String world) {
- if (plots.containsKey(world)) {
- return plots.get(world);
- }
- return new HashMap<>();
- }
-
- /**
- * @param world plot world
- *
- * @return plots in world
- */
- public static HashMap getPlots(final World world) {
- if (plots.containsKey(world.getName())) {
- return plots.get(world.getName());
- }
- return new HashMap<>();
- }
-
- /**
- * get all plot worlds
- */
- public static String[] getPlotWorlds() {
- final Set strings = worlds.keySet();
- return (strings.toArray(new String[strings.size()]));
- }
-
- /**
- * @return plots worlds
- */
- public static String[] getPlotWorldsString() {
- final Set strings = plots.keySet();
- return strings.toArray(new String[strings.size()]);
- }
-
- /**
- * @param world plotworld(?)
- *
- * @return true if the world is a plotworld
- */
- public static boolean isPlotWorld(final World world) {
- return (worlds.containsKey(world.getName()));
- }
-
- /**
- * @param world plotworld(?)
- *
- * @return true if the world is a plotworld
- */
- public static boolean isPlotWorld(final String world) {
- return (worlds.containsKey(world));
- }
-
- /**
- * @param world World to get manager for
- *
- * @return manager for world
- */
- public static PlotManager getPlotManager(final World world) {
- if (managers.containsKey(world.getName())) {
- return managers.get(world.getName());
- }
- return null;
- }
-
- /**
- * @param world world
- *
- * @return PlotManager
- */
- public static PlotManager getPlotManager(final String world) {
- if (managers.containsKey(world)) {
- return managers.get(world);
- }
- return null;
- }
-
- /**
- * @param world to search
- *
- * @return PlotWorld object
- */
- public static PlotWorld getWorldSettings(final World world) {
- if (worlds.containsKey(world.getName())) {
- return worlds.get(world.getName());
- }
- return null;
- }
-
- /**
- * @param world to search
- *
- * @return PlotWorld object
- */
- public static PlotWorld getWorldSettings(final String world) {
- if (worlds.containsKey(world)) {
- return worlds.get(world);
- }
- return null;
- }
-
- /**
- * @param world world to search
- *
- * @return set containing the plots for a world
- */
- public static Plot[] getWorldPlots(final World world) {
- final Collection values = plots.get(world.getName()).values();
- return (values.toArray(new Plot[values.size()]));
- }
-
- /**
- * Remove a plot
- *
- * @param world The Plot World
- * @param id The Plot ID
- * @param callEvent Whether or not to call the PlotDeleteEvent
- *
- * @return true if successful, false if not
- */
- public static boolean removePlot(final String world, final PlotId id, final boolean callEvent) {
- if (callEvent) {
- final PlotDeleteEvent event = new PlotDeleteEvent(world, id);
- Bukkit.getServer().getPluginManager().callEvent(event);
- if (event.isCancelled()) {
- event.setCancelled(true);
- return false;
- }
- }
- plots.get(world).remove(id);
-
- if (PlotHelper.lastPlot.containsKey(world)) {
- PlotId last = PlotHelper.lastPlot.get(world);
- int last_max = Math.max(last.x, last.y);
- int this_max = Math.max(id.x, id.y);
-
- if (this_max < last_max) {
- PlotHelper.lastPlot.put(world, id);
- }
- }
-
- return true;
- }
-
- /**
- * Replace the plot object with an updated version
- *
- * @param plot plot object
- */
- public static void updatePlot(final Plot plot) {
- final String world = plot.world;
- if (!plots.containsKey(world)) {
- plots.put(world, new HashMap());
- }
- plot.hasChanged = true;
- plots.get(world).put(plot.id, plot);
- }
-
- /**
- * Get the java version
- *
- * @return Java Version as a double
- */
- public static double getJavaVersion() {
- return Double.parseDouble(System.getProperty("java.specification.version"));
- }
-
- /**
- * Get MySQL Connection
- *
- * @return connection MySQL Connection.
- */
- public static Connection getConnection() {
- return connection;
- }
-
- /**
- * Send a message to the console.
- *
- * @param string message
- */
- public static void sendConsoleSenderMessage(final String string) {
- if (PlotMain.main == null || getMain().getServer().getConsoleSender() == null) {
- System.out.println(ChatColor.stripColor(ConsoleColors.fromString(string)));
- } else {
- String message = ChatColor.translateAlternateColorCodes('&', string);
- if (!Settings.CONSOLE_COLOR) {
- message = ChatColor.stripColor(message);
- }
- getMain().getServer().getConsoleSender().sendMessage(message);
- }
- }
-
- /**
- * Teleport a player to a plot
- *
- * @param player Player to teleport
- * @param from Previous Location
- * @param plot Plot to teleport to
- *
- * @return true if successful
- */
- public static boolean teleportPlayer(final Player player, final Location from, final Plot plot) {
- Plot bot = PlayerFunctions.getBottomPlot(player.getWorld(), plot);
- final PlayerTeleportToPlotEvent event = new PlayerTeleportToPlotEvent(player, from, bot);
- Bukkit.getServer().getPluginManager().callEvent(event);
- if (!event.isCancelled()) {
- final Location location = PlotHelper.getPlotHome(Bukkit.getWorld(bot.world), bot);
- if ((location.getBlockX() >= 29999999) || (location.getBlockX() <= -29999999) || (location.getBlockZ() >= 299999999) || (location.getBlockZ() <= -29999999)) {
- event.setCancelled(true);
- return false;
- }
- if (Settings.TELEPORT_DELAY == 0 || hasPermission(player, "plots.teleport.delay.bypass")) {
- PlayerFunctions.sendMessage(player, C.TELEPORTED_TO_PLOT);
- player.teleport(location);
- return true;
- }
- PlayerFunctions.sendMessage(player, C.TELEPORT_IN_SECONDS, Settings.TELEPORT_DELAY + "");
- Location loc = player.getLocation();
- final World world = player.getWorld();
- final int x = loc.getBlockX();
- final int z = loc.getBlockZ();
- final String name = player.getName();
- TaskManager.TELEPORT_QUEUE.add(name);
- TaskManager.runTaskLater(new Runnable() {
- @Override
- public void run() {
- if (!TaskManager.TELEPORT_QUEUE.contains(name)) {
- PlayerFunctions.sendMessage(player, C.TELEPORT_FAILED);
- return;
- }
- TaskManager.TELEPORT_QUEUE.remove(name);
- if (!player.isOnline()) {
- return;
- }
- Location loc = player.getLocation();
- if (!loc.getWorld().equals(world)) {
- PlayerFunctions.sendMessage(player, C.TELEPORT_FAILED);
- return;
- }
- if (loc.getBlockX() != x || loc.getBlockZ() != z) {
- PlayerFunctions.sendMessage(player, C.TELEPORT_FAILED);
- return;
- }
- PlayerFunctions.sendMessage(player, C.TELEPORTED_TO_PLOT);
- player.teleport(location);
- }
- }, Settings.TELEPORT_DELAY * 20);
- return true;
- }
- return !event.isCancelled();
- }
-
- /**
- * Send a message to the console
- *
- * @param c message
- */
- public static void sendConsoleSenderMessage(final C c) {
- sendConsoleSenderMessage(c.s());
- }
-
- /**
- * Broadcast publicly
- *
- * @param c message
- */
- public static void Broadcast(final C c) {
- Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', C.PREFIX.s() + c.s()));
- }
-
- /**
- * Returns the main class.
- *
- * @return (this class)
- */
- public static PlotMain getMain() {
- return PlotMain.main;
- }
-
- /**
- * Broadcast a message to all admins
- *
- * @param c message
- */
- public static void BroadcastWithPerms(final C c) {
- for (final Player player : Bukkit.getOnlinePlayers()) {
- if (player.hasPermission(ADMIN_PERMISSION)) {
- PlayerFunctions.sendMessage(player, c);
- }
- }
- System.out.println(ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', C.PREFIX.s() + c.s())));
- }
-
- /**
- * Reload all translations
- *
- * @throws IOException
- */
- public static void reloadTranslations() throws IOException {
- C.setupTranslations();
- }
-
- /**
- * Ge the last played time
- *
- * @param uuid UUID for the player
- *
- * @return last play time as a long
- */
- public static long getLastPlayed(final UUID uuid) {
- if (uuid == null) {
- return 0;
- }
- OfflinePlayer player;
- if (((player = UUIDHandler.uuidWrapper.getOfflinePlayer(uuid)) == null) || !player.hasPlayedBefore()) {
- return 0;
- }
- return player.getLastPlayed();
- }
-
- /**
- * Load configuration files
- */
- public static void configs() {
- final File folder = new File(getMain().getDataFolder() + File.separator + "config");
- if (!folder.exists() && !folder.mkdirs()) {
- sendConsoleSenderMessage(C.PREFIX.s() + "&cFailed to create the /plugins/config folder. Please create it manually.");
- }
- try {
- styleFile = new File(getMain().getDataFolder() + File.separator + "translations" + File.separator + "style.yml");
- if (!styleFile.exists()) {
- if (!styleFile.createNewFile()) {
- sendConsoleSenderMessage("Could not create the style file, please create \"translations/style.yml\" manually");
- }
- }
- styleConfig = YamlConfiguration.loadConfiguration(styleFile);
- setupStyle();
- } catch (final Exception err) {
- Logger.add(LogLevel.DANGER, "Failed to save style.yml");
- System.out.println("failed to save style.yml");
- }
- try {
- configFile = new File(getMain().getDataFolder() + File.separator + "config" + File.separator + "settings.yml");
- if (!configFile.exists()) {
- if (!configFile.createNewFile()) {
- sendConsoleSenderMessage("Could not create the settings file, please create \"settings.yml\" manually.");
- }
- }
- config = YamlConfiguration.loadConfiguration(configFile);
- setupConfig();
- } catch (final Exception err_trans) {
- Logger.add(LogLevel.DANGER, "Failed to save settings.yml");
- System.out.println("Failed to save settings.yml");
- }
- try {
- storageFile = new File(getMain().getDataFolder() + File.separator + "config" + File.separator + "storage.yml");
- if (!storageFile.exists()) {
- if (!storageFile.createNewFile()) {
- sendConsoleSenderMessage("Could not the storage settings file, please create \"storage.yml\" manually.");
- }
- }
- storage = YamlConfiguration.loadConfiguration(storageFile);
- setupStorage();
- } catch (final Exception err_trans) {
- Logger.add(LogLevel.DANGER, "Failed to save storage.yml");
- System.out.println("Failed to save storage.yml");
- }
- try {
- styleConfig.save(styleFile);
- config.save(configFile);
- storage.save(storageFile);
- } catch (final IOException e) {
- Logger.add(LogLevel.DANGER, "Configuration file saving failed");
- e.printStackTrace();
- }
- {
- Settings.DB.USE_MYSQL = storage.getBoolean("mysql.use");
- Settings.DB.USER = storage.getString("mysql.user");
- Settings.DB.PASSWORD = storage.getString("mysql.password");
- Settings.DB.HOST_NAME = storage.getString("mysql.host");
- Settings.DB.PORT = storage.getString("mysql.port");
- Settings.DB.DATABASE = storage.getString("mysql.database");
- Settings.DB.USE_SQLITE = storage.getBoolean("sqlite.use");
- Settings.DB.SQLITE_DB = storage.getString("sqlite.db");
- Settings.DB.PREFIX = storage.getString("prefix");
- Settings.METRICS = config.getBoolean("metrics");
- Settings.AUTO_CLEAR = config.getBoolean("clear.auto.enabled");
- Settings.AUTO_CLEAR_DAYS = config.getInt("clear.auto.days");
- Settings.DELETE_PLOTS_ON_BAN = config.getBoolean("clear.on.ban");
- Settings.API_URL = config.getString("uuid.api.location");
- Settings.CUSTOM_API = config.getBoolean("uuid.api.custom");
- Settings.UUID_FECTHING = config.getBoolean("uuid.fetching");
-
- C.COLOR_1 = ChatColor.getByChar(styleConfig.getString("color.1"));
- C.COLOR_2 = ChatColor.getByChar(styleConfig.getString("color.2"));
- C.COLOR_3 = ChatColor.getByChar(styleConfig.getString("color.3"));
- C.COLOR_4 = ChatColor.getByChar(styleConfig.getString("color.4"));
- }
- if (Settings.DEBUG) {
- final Map settings = new HashMap<>();
- settings.put("Kill Road Mobs", "" + Settings.KILL_ROAD_MOBS);
- settings.put("Use Metrics", "" + Settings.METRICS);
- settings.put("Delete Plots On Ban", "" + Settings.DELETE_PLOTS_ON_BAN);
- settings.put("Mob Pathfinding", "" + Settings.MOB_PATHFINDING);
- settings.put("DB Mysql Enabled", "" + Settings.DB.USE_MYSQL);
- settings.put("DB SQLite Enabled", "" + Settings.DB.USE_SQLITE);
- settings.put("Auto Clear Enabled", "" + Settings.AUTO_CLEAR);
- settings.put("Auto Clear Days", "" + Settings.AUTO_CLEAR_DAYS);
- settings.put("Schematics Save Path", "" + Settings.SCHEMATIC_SAVE_PATH);
- settings.put("API Location", "" + Settings.API_URL);
- for (final Entry setting : settings.entrySet()) {
- sendConsoleSenderMessage(C.PREFIX.s() + String.format("&cKey: &6%s&c, Value: &6%s", setting.getKey(), setting.getValue()));
- }
- }
- }
-
- /**
- * Kill all entities on roads
- */
- public static void killAllEntities() {
- Bukkit.getScheduler().scheduleSyncRepeatingTask(getMain(), new Runnable() {
- long ticked = 0l;
- long error = 0l;
-
- {
- sendConsoleSenderMessage(C.PREFIX.s() + "KillAllEntities started.");
- }
-
- @Override
- public void run() {
- if (this.ticked > 36_000L) {
- this.ticked = 0l;
- if (this.error > 0) {
- sendConsoleSenderMessage(C.PREFIX.s() + "KillAllEntities has been running for 6 hours. Errors: " + this.error);
- }
- this.error = 0l;
- }
- World world;
- for (final String w : getPlotWorlds()) {
- getWorldSettings(w);
- world = Bukkit.getServer().getWorld(w);
- try {
- if (world.getLoadedChunks().length < 1) {
- continue;
- }
- for (final Chunk chunk : world.getLoadedChunks()) {
- final Entity[] entities = chunk.getEntities();
- Entity entity;
- for (int i = entities.length - 1; i >= 0; i--) {
- if (!((entity = entities[i]) instanceof Player) && !PlotListener.isInPlot(entity.getLocation())) {
- entity.remove();
- }
- }
- }
- } catch (final Throwable e) {
- ++this.error;
- } finally {
- ++this.ticked;
- }
- }
- }
- }, 20L, 20L);
- }
-
- /**
- * SETUP: settings.yml
- */
- public static void setupConfig() {
- final int config_ver = 1;
- config.set("version", config_ver);
- final Map options = new HashMap<>();
- options.put("teleport.delay", 0);
- options.put("auto_update", false);
- options.put("clusters.enabled", Settings.ENABLE_CLUSTERS);
- options.put("plotme-alias", Settings.USE_PLOTME_ALIAS);
- options.put("plotme-convert.enabled", Settings.CONVERT_PLOTME);
- options.put("claim.max-auto-area", Settings.MAX_AUTO_SIZE);
- options.put("UUID.offline", Settings.OFFLINE_MODE);
-// options.put("worldguard.enabled", Settings.WORLDGUARD);
- options.put("kill_road_mobs", Settings.KILL_ROAD_MOBS_DEFAULT);
- options.put("mob_pathfinding", Settings.MOB_PATHFINDING_DEFAULT);
- options.put("console.color", Settings.CONSOLE_COLOR);
- options.put("metrics", true);
- options.put("debug", true);
- options.put("clear.auto.enabled", false);
- options.put("clear.auto.days", 365);
- options.put("clear.check-disk", Settings.AUTO_CLEAR_CHECK_DISK);
- options.put("clear.on.ban", false);
- options.put("max_plots", Settings.MAX_PLOTS);
- options.put("schematics.save_path", Settings.SCHEMATIC_SAVE_PATH);
-// options.put("uuid.api.location", Settings.API_URL);
-// options.put("uuid.api.custom", Settings.CUSTOM_API);
-// options.put("uuid.fecthing", Settings.UUID_FECTHING);
- options.put("uuid.read-from-disk", Settings.UUID_FROM_DISK);
- options.put("titles", Settings.TITLES);
- options.put("teleport.on_login", Settings.TELEPORT_ON_LOGIN);
-// options.put("perm-based-mob-cap.enabled", Settings.MOB_CAP_ENABLED);
-// options.put("perm-based-mob-cap.max", Settings.MOB_CAP);
- options.put("worldedit.require-selection-in-mask", Settings.REQUIRE_SELECTION);
-
- for (final Entry node : options.entrySet()) {
- if (!config.contains(node.getKey())) {
- config.set(node.getKey(), node.getValue());
- }
- }
- Settings.ENABLE_CLUSTERS = config.getBoolean("clusters.enabled");
- Settings.DEBUG = config.getBoolean("debug");
- if (Settings.DEBUG) {
- sendConsoleSenderMessage(C.PREFIX.s() + "&6Debug Mode Enabled (Default). Edit the config to turn this off.");
- }
- Settings.TELEPORT_DELAY = config.getInt("teleport.delay");
- Settings.CONSOLE_COLOR = config.getBoolean("console.color");
- Settings.TELEPORT_ON_LOGIN = config.getBoolean("teleport.on_login");
- Settings.USE_PLOTME_ALIAS = config.getBoolean("plotme-alias");
- Settings.CONVERT_PLOTME = config.getBoolean("plotme-convert.enabled");
- Settings.KILL_ROAD_MOBS = config.getBoolean("kill_road_mobs");
-// Settings.WORLDGUARD = config.getBoolean("worldguard.enabled");
- Settings.MOB_PATHFINDING = config.getBoolean("mob_pathf"
- + "inding");
- Settings.METRICS = config.getBoolean("metrics");
- Settings.AUTO_CLEAR_DAYS = config.getInt("clear.auto.days");
- Settings.AUTO_CLEAR_CHECK_DISK = config.getBoolean("clear.check-disk");
- Settings.MAX_AUTO_SIZE = config.getInt("claim.max-auto-area");
- Settings.AUTO_CLEAR = config.getBoolean("clear.auto.enabled");
- Settings.TITLES = config.getBoolean("titles");
-// Settings.MOB_CAP_ENABLED = config.getBoolean("perm-based-mob-cap.enabled");
-// Settings.MOB_CAP = config.getInt("perm-based-mob-cap.max");
- Settings.MAX_PLOTS = config.getInt("max_plots");
- if (Settings.MAX_PLOTS > 32767) {
- sendConsoleSenderMessage("&c`max_plots` Is set too high! This is a per player setting and does not need to be very large.");
- Settings.MAX_PLOTS = 32767;
- }
-
-
- Settings.SCHEMATIC_SAVE_PATH = config.getString("schematics.save_path");
-
- Settings.OFFLINE_MODE = config.getBoolean("UUID.offline");
- Settings.UUID_FROM_DISK = config.getBoolean("uuid.read-from-disk");
-
- Settings.REQUIRE_SELECTION = config.getBoolean("worldedit.require-selection-in-mask");
- }
-
- /**
- * Create a plotworld config section
- *
- * @param plotworld World to create the section for
- */
- public static void createConfiguration(final PlotWorld plotworld) {
- final Map options = new HashMap<>();
-
- for (final ConfigurationNode setting : plotworld.getSettingNodes()) {
- options.put(setting.getConstant(), setting.getValue());
- }
-
- for (final Entry node : options.entrySet()) {
- if (!config.contains(node.getKey())) {
- config.set(node.getKey(), node.getValue());
- }
- }
-
- try {
- config.save(PlotMain.configFile);
- } catch (final IOException e) {
- PlotMain.sendConsoleSenderMessage("&c[Warning] PlotSquared failed to save the configuration&7 (settings.yml may differ from the one in memory)\n - To force a save from console use /plots save");
- }
- }
-
- @EventHandler
- public static void worldLoad(WorldLoadEvent event) {
- if (!UUIDHandler.CACHED) {
- UUIDHandler.cacheAll();
- if (Settings.CONVERT_PLOTME) {
- if (Bukkit.getPluginManager().getPlugin("PlotMe") != null) {
- sendConsoleSenderMessage("&c[IMPORTANT] THIS MESSAGE MAY BE EXTREMELY HELPFUL IF YOU HAVE TROUBLE CONVERTING PLOTME!");
- sendConsoleSenderMessage("&c[IMPORTANT] - Make sure 'UUID.read-from-disk' is disabled (false)!");
- sendConsoleSenderMessage("&c[IMPORTANT] - Sometimes the database can be locked, deleting PlotMe.jar beforehand will fix the issue!");
- sendConsoleSenderMessage("&c[IMPORTANT] - After the conversion is finished, please set 'plotme-convert.enabled' to false in the 'settings.yml@'");
- }
- try {
- new PlotMeConverter(PlotMain.getMain()).runAsync();
- } catch (final Exception e) {
- e.printStackTrace();
- }
- }
- }
- }
-
- public static void loadWorld(final String world, final ChunkGenerator generator) {
- System.out.print(2);
- if (getWorldSettings(world) != null) {
- System.out.print(3);
- return;
- }
-
- final Set worlds = (config.contains("worlds") ? config.getConfigurationSection("worlds").getKeys(false) : new HashSet());
-
- final PlotWorld plotWorld;
- final PlotGenerator plotGenerator;
- final PlotManager plotManager;
- final String path = "worlds." + world;
-
- if (!LOADING_WORLD && (generator != null) && (generator instanceof PlotGenerator)) {
- System.out.print(4);
- plotGenerator = (PlotGenerator) generator;
- plotWorld = plotGenerator.getNewPlotWorld(world);
- plotManager = plotGenerator.getPlotManager();
- if (!world.equals("CheckingPlotSquaredGenerator")) {
- sendConsoleSenderMessage(C.PREFIX.s() + "&aDetected world load for '" + world + "'");
- sendConsoleSenderMessage(C.PREFIX.s() + "&3 - generator: &7" + plotGenerator.getClass().getName());
- sendConsoleSenderMessage(C.PREFIX.s() + "&3 - plotworld: &7" + plotWorld.getClass().getName());
- sendConsoleSenderMessage(C.PREFIX.s() + "&3 - manager: &7" + plotManager.getClass().getName());
- }
- if (!config.contains(path)) {
- config.createSection(path);
- }
- plotWorld.saveConfiguration(config.getConfigurationSection(path));
- plotWorld.loadDefaultConfiguration(config.getConfigurationSection(path));
- try {
- config.save(configFile);
- } catch (final IOException e) {
- e.printStackTrace();
- }
- // Now add it
- addPlotWorld(world, plotWorld, plotManager);
- PlotHelper.setupBorder(world);
- } else {
- System.out.print(5 + " | " + (generator instanceof PlotGenerator));
- if (!worlds.contains(world)) {
- System.out.print(6);
- return;
- }
- if (!LOADING_WORLD) {
- LOADING_WORLD = true;
- try {
- String gen_string = config.getString("worlds." + world + "." + "generator.plugin");
- Plugin gen_plugin = gen_string == null ? null : Bukkit.getPluginManager().getPlugin(gen_string);
- if (gen_plugin != null && gen_plugin.isEnabled()) {
- gen_plugin.getDefaultWorldGenerator(world, "");
- } else {
- new HybridGen(world);
- }
- } catch (Exception e) {
- PlotMain.sendConsoleSenderMessage("&d=== Oh no! Please set the generator for the " + world + " ===");
- e.printStackTrace();
- LOADING_WORLD = false;
- removePlotWorld(world);
- } finally {
- LOADING_WORLD = false;
- }
- } else {
- PlotGenerator gen_class = (PlotGenerator) generator;
- plotWorld = gen_class.getNewPlotWorld(world);
- plotManager = gen_class.getPlotManager();
- if (!config.contains(path)) {
- config.createSection(path);
- }
- plotWorld.TYPE = 2;
- plotWorld.TERRAIN = 0;
- plotWorld.saveConfiguration(config.getConfigurationSection(path));
- plotWorld.loadDefaultConfiguration(config.getConfigurationSection(path));
- try {
- config.save(configFile);
- } catch (final IOException e) {
- e.printStackTrace();
- }
- if ((plotWorld.TYPE == 2 && !Settings.ENABLE_CLUSTERS) || !(plotManager instanceof SquarePlotManager)) {
- sendConsoleSenderMessage("&c[ERROR] World '" + world + "' in settings.yml is not using PlotSquared generator! Please set the generator correctly or delete the world from the 'settings.yml'!");
- return;
- }
- addPlotWorld(world, plotWorld, plotManager);
- if (plotWorld.TYPE == 2) {
- if (ClusterManager.getClusters(world).size() > 0) {
- for (PlotCluster cluster : ClusterManager.getClusters(world)) {
- new AugmentedPopulator(world, gen_class, cluster, plotWorld.TERRAIN == 2, plotWorld.TERRAIN != 2);
- }
- }
- } else if (plotWorld.TYPE == 1) {
- new AugmentedPopulator(world, gen_class, null, plotWorld.TERRAIN == 2, plotWorld.TERRAIN != 2);
- }
- }
- }
- }
-
- /**
- * Adds an external world as a recognized PlotSquared world - The PlotWorld class created is based off the
- * configuration in the settings.yml - Do not use this method unless the required world is preconfigured in the
- * settings.yml
- *
- * @param world to load
- */
- public static void loadWorld(final World world) {
- if (world == null) {
- return;
- }
- final ChunkGenerator generator = world.getGenerator();
- loadWorld(world.getName(), generator);
- }
-
- public static void setupStyle() {
- styleConfig.set("version", 0);
- final Map o = new HashMap<>();
- o.put("color.1", C.COLOR_1.getChar());
- o.put("color.2", C.COLOR_2.getChar());
- o.put("color.3", C.COLOR_3.getChar());
- o.put("color.4", C.COLOR_4.getChar());
- for (final Entry node : o.entrySet()) {
- if (!styleConfig.contains(node.getKey())) {
- styleConfig.set(node.getKey(), node.getValue());
- }
- }
- }
-
- /**
- * SETUP: storage.properties
- */
- private static void setupStorage() {
- storage.set("version", storage_ver);
- final Map options = new HashMap<>();
- options.put("mysql.use", false);
- options.put("sqlite.use", true);
- options.put("sqlite.db", "storage");
- options.put("mysql.host", "localhost");
- options.put("mysql.port", "3306");
- options.put("mysql.user", "root");
- options.put("mysql.password", "password");
- options.put("mysql.database", "plot_db");
- options.put("prefix", "");
- for (final Entry node : options.entrySet()) {
- if (!storage.contains(node.getKey())) {
- storage.set(node.getKey(), node.getValue());
- }
- }
- }
-
- private static void addPlusFlags() {
- final List booleanFlags = Arrays.asList("notify-enter", "notify-leave", "item-drop", "invincible", "instabreak", "drop-protection", "forcefield", "titles", "pve", "pvp", "no-worldedit");
- final List intervalFlags = Arrays.asList("feed", "heal");
- final List stringFlags = Arrays.asList("greeting", "farewell");
- for (final String flag : stringFlags) {
- FlagManager.addFlag(new AbstractFlag(flag));
- }
- for (final String flag : intervalFlags) {
- FlagManager.addFlag(new AbstractFlag(flag, new FlagValue.IntervalValue()));
- }
- for (final String flag : booleanFlags) {
- FlagManager.addFlag(new AbstractFlag(flag, new FlagValue.BooleanValue()));
- }
- }
-
- private static void defaultFlags() {
- addPlusFlags();
- FlagManager.addFlag(new AbstractFlag("fly", new FlagValue.BooleanValue()));
-
- FlagManager.addFlag(new AbstractFlag("explosion", new FlagValue.BooleanValue()));
-
- FlagManager.addFlag(new AbstractFlag("hostile-interact", new FlagValue.BooleanValue()));
- FlagManager.addFlag(new AbstractFlag("hostile-attack", new FlagValue.BooleanValue()));
-
- FlagManager.addFlag(new AbstractFlag("animal-interact", new FlagValue.BooleanValue()));
- FlagManager.addFlag(new AbstractFlag("animal-attack", new FlagValue.BooleanValue()));
-
- FlagManager.addFlag(new AbstractFlag("tamed-interact", new FlagValue.BooleanValue()));
- FlagManager.addFlag(new AbstractFlag("tamed-attack", new FlagValue.BooleanValue()));
-
- FlagManager.addFlag(new AbstractFlag("misc-interact", new FlagValue.BooleanValue()));
-
- FlagManager.addFlag(new AbstractFlag("hanging-place", new FlagValue.BooleanValue()));
- FlagManager.addFlag(new AbstractFlag("hanging-break", new FlagValue.BooleanValue()));
-
- FlagManager.addFlag(new AbstractFlag("vehicle-use", new FlagValue.BooleanValue()));
- FlagManager.addFlag(new AbstractFlag("vehicle-place", new FlagValue.BooleanValue()));
- FlagManager.addFlag(new AbstractFlag("vehicle-break", new FlagValue.BooleanValue()));
-
- FlagManager.addFlag(new AbstractFlag("place", new FlagValue.PlotBlockListValue()));
- FlagManager.addFlag(new AbstractFlag("break", new FlagValue.PlotBlockListValue()));
- FlagManager.addFlag(new AbstractFlag("use", new FlagValue.PlotBlockListValue()));
-
- FlagManager.addFlag(new AbstractFlag("gamemode") {
- @Override
- public String parseValueRaw(final String value) {
- switch (value) {
- case "creative":
- case "c":
- case "1":
- return "creative";
- case "survival":
- case "s":
- case "0":
- return "survival";
- case "adventure":
- case "a":
- case "2":
- return "adventure";
- default:
- return null;
- }
- }
-
- @Override
- public String getValueDesc() {
- return "Flag value must be a gamemode: 'creative' , 'survival' or 'adventure'";
- }
- });
-
- FlagManager.addFlag(new AbstractFlag("price", new FlagValue.UnsignedDoubleValue()));
-
- FlagManager.addFlag(new AbstractFlag("time", new FlagValue.LongValue()));
-
- FlagManager.addFlag(new AbstractFlag("weather") {
- @Override
- public String parseValueRaw(final String value) {
- switch (value) {
- case "rain":
- case "storm":
- case "on":
- return "rain";
- case "clear":
- case "off":
- case "sun":
- return "clear";
- default:
- return null;
- }
- }
-
- @Override
- public String getValueDesc() {
- return "Flag value must be weather type: 'clear' or 'rain'";
- }
- });
- }
-
- /**
- * Add a Plot world
- *
- * @param world World to add
- * @param plotworld PlotWorld Object
- * @param manager Plot Manager for the new world
- */
- public static void addPlotWorld(final String world, final PlotWorld plotworld, final PlotManager manager) {
- worlds.put(world, plotworld);
- managers.put(world, manager);
- if (!plots.containsKey(world)) {
- plots.put(world, new HashMap());
- }
- }
-
- /**
- * Remove a plot world
- *
- * @param world World to remove
- */
- public static void removePlotWorld(final String world) {
- plots.remove(world);
- managers.remove(world);
- worlds.remove(world);
- }
-
- public static void removePlots(final String world) {
- plots.put(world, new HashMap());
- }
-
- /**
- * Get all plots
- *
- * @return All Plos in a hashmap (world, Hashmap contiang ids and objects))
- */
- public static HashMap> getAllPlotsRaw() {
- return plots;
- }
-
- /**
- * Set all plots
- *
- * @param plots New Plot LinkedHashMap
- */
- public static void setAllPlotsRaw(final LinkedHashMap> plots) {
- PlotMain.plots = plots;
- }
-
- /**
- * Set all plots
- *
- * @param plots New Plot HashMap
- */
- public static void setAllPlotsRaw(final HashMap> plots) {
- PlotMain.plots = new LinkedHashMap<>(plots);
- // PlotMain.plots.putAll(plots);
- }
-
- public static boolean checkVersion(int major, int minor, int minor2) {
- try {
- String[] version = Bukkit.getBukkitVersion().split("-")[0].split("\\.");
- int a = Integer.parseInt(version[0]);
- int b = Integer.parseInt(version[1]);
- int c = 0;
- if (version.length == 3) {
- c = Integer.parseInt(version[2]);
- }
- if (a > major || (a == major && b > minor) || (a == major && b == minor && c >= minor2)) {
- return true;
- }
- return false;
- } catch (Exception e) {
- return false;
- }
- }
-
- @EventHandler
- public void PlayerCommand(PlayerCommandPreprocessEvent event) {
- String message = event.getMessage();
- if (message.toLowerCase().startsWith("/plotme")) {
- Plugin plotme = Bukkit.getPluginManager().getPlugin("PlotMe");
- if (plotme == null) {
- Player player = event.getPlayer();
- if (Settings.USE_PLOTME_ALIAS) {
- player.performCommand(message.replace("/plotme", "plots"));
- } else {
- PlayerFunctions.sendMessage(player, C.NOT_USING_PLOTME);
- }
- event.setCancelled(true);
- }
- }
- }
-
- /**
- * Get the PlotSquared World Generator
- *
- * @see com.intellectualcrafters.plot.generator.WorldGenerator
- */
- @Override
- final public ChunkGenerator getDefaultWorldGenerator(final String world, final String id) {
- if (id != null && id.length() > 0) {
- // save configuration
- String[] split = id.split(",");
- HybridPlotWorld plotworld = new HybridPlotWorld(world);
-
- int width = HybridPlotWorld.PLOT_WIDTH_DEFAULT;
- int gap = HybridPlotWorld.ROAD_WIDTH_DEFAULT;
- int height = HybridPlotWorld.PLOT_HEIGHT_DEFAULT;
- PlotBlock[] floor = HybridPlotWorld.TOP_BLOCK_DEFAULT;
- PlotBlock[] main = HybridPlotWorld.MAIN_BLOCK_DEFAULT;
- PlotBlock wall = HybridPlotWorld.WALL_FILLING_DEFAULT;
- PlotBlock border = HybridPlotWorld.WALL_BLOCK_DEFAULT;
-
- for (String element : split) {
- String[] pair = element.split("=");
- if (pair.length != 2) {
- sendConsoleSenderMessage("&cNo value provided for: &7" + element);
- return null;
- }
- String key = pair[0].toLowerCase();
- String value = pair[1];
- try {
- switch (key) {
- case "s":
- case "size": {
- HybridPlotWorld.PLOT_WIDTH_DEFAULT = ((Integer) Configuration.INTEGER.parseString(value)).shortValue();
- break;
- }
- case "g":
- case "gap": {
- HybridPlotWorld.ROAD_WIDTH_DEFAULT = ((Integer) Configuration.INTEGER.parseString(value)).shortValue();
- break;
- }
- case "h":
- case "height": {
- HybridPlotWorld.PLOT_HEIGHT_DEFAULT = (Integer) Configuration.INTEGER.parseString(value);
- HybridPlotWorld.ROAD_HEIGHT_DEFAULT = (Integer) Configuration.INTEGER.parseString(value);
- HybridPlotWorld.WALL_HEIGHT_DEFAULT = (Integer) Configuration.INTEGER.parseString(value);
- break;
- }
- case "f":
- case "floor": {
- HybridPlotWorld.TOP_BLOCK_DEFAULT = (PlotBlock[]) Configuration.BLOCKLIST.parseString(value);
- break;
- }
- case "m":
- case "main": {
- HybridPlotWorld.MAIN_BLOCK_DEFAULT = (PlotBlock[]) Configuration.BLOCKLIST.parseString(value);
- break;
- }
- case "w":
- case "wall": {
- HybridPlotWorld.WALL_FILLING_DEFAULT = (PlotBlock) Configuration.BLOCK.parseString(value);
- break;
- }
- case "b":
- case "border": {
- HybridPlotWorld.WALL_BLOCK_DEFAULT = (PlotBlock) Configuration.BLOCK.parseString(value);
- break;
- }
- default: {
- sendConsoleSenderMessage("&cKey not found: &7" + element);
- return null;
- }
- }
- }
- catch (Exception e) {
- e.printStackTrace();
- sendConsoleSenderMessage("&cInvalid value: &7" + value + " in arg " + element);
- return null;
- }
- }
- try {
- String root = "worlds." + world;
- if (!config.contains(root)) {
- config.createSection(root);
- }
- plotworld.saveConfiguration(config.getConfigurationSection(root));
- HybridPlotWorld.PLOT_HEIGHT_DEFAULT = height;
- HybridPlotWorld.ROAD_HEIGHT_DEFAULT = height;
- HybridPlotWorld.WALL_HEIGHT_DEFAULT = height;
- HybridPlotWorld.TOP_BLOCK_DEFAULT = floor;
- HybridPlotWorld.MAIN_BLOCK_DEFAULT = main;
- HybridPlotWorld.WALL_BLOCK_DEFAULT = border;
- HybridPlotWorld.WALL_FILLING_DEFAULT = wall;
- HybridPlotWorld.PLOT_WIDTH_DEFAULT = width;
- HybridPlotWorld.ROAD_WIDTH_DEFAULT = gap;
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- }
- return new HybridGen(world);
- }
-
- /**
- * Setup the logger mechanics
- */
- private void setupLogger() {
- final File log = new File(getMain().getDataFolder() + File.separator + "logs" + File.separator + "plots.log");
- if (!log.exists()) {
- try {
- if (!new File(getMain().getDataFolder() + File.separator + "logs").mkdirs()) {
- sendConsoleSenderMessage(C.PREFIX.s() + "&cFailed to create logs folder. Do it manually.");
- }
- if (log.createNewFile()) {
- final FileWriter writer = new FileWriter(log);
- writer.write("Created at: " + new Date().toString() + "\n\n\n");
- writer.close();
- }
- } catch (final IOException e) {
-
- e.printStackTrace();
- }
- }
- Logger.setup(log);
- Logger.add(LogLevel.GENERAL, "Logger enabled");
- }
-
- /**
- * On Load.
- */
- @Override
- final public void onEnable() {
- PlotMain.main = this;
- // Setup the logger mechanics
- setupLogger();
- // Setup translations
- C.setupTranslations();
- C.saveTranslations();
- // Check for outdated java version.
- if (getJavaVersion() < 1.7) {
- sendConsoleSenderMessage(C.PREFIX.s() + "&cYour java version is outdated. Please update to at least 1.7.");
- // Didn't know of any other link :D
- sendConsoleSenderMessage(C.PREFIX.s() + "&cURL: &6https://java.com/en/download/index.jsp");
- Bukkit.getPluginManager().disablePlugin(this);
- return;
- } else if (getJavaVersion() < 1.8) {
- sendConsoleSenderMessage(C.PREFIX.s() + "&cIt's really recommended to run Java 1.8, as it increases performance");
- }
- // Setup configuration
- configs();
- defaultFlags();
- // Setup metrics
- if (Settings.METRICS) {
- try {
- final Metrics metrics = new Metrics(this);
- metrics.start();
- sendConsoleSenderMessage(C.PREFIX.s() + "&6Metrics enabled.");
- } catch (final Exception e) {
- sendConsoleSenderMessage(C.PREFIX.s() + "&cFailed to load up metrics.");
- }
- } else {
- // We should at least make them feel bad.
- sendConsoleSenderMessage("Using metrics will allow us to improve the plugin\nPlease consider it :)");
- }
- // Kill mobs on roads?
- if (Settings.KILL_ROAD_MOBS) {
- killAllEntities();
- }
- if (C.ENABLED.s().length() > 0) {
- sendConsoleSenderMessage(C.ENABLED);
- }
- final String[] tables;
- if (Settings.ENABLE_CLUSTERS) {
- MainCommand.subCommands.add(new Cluster());
- tables = new String[]{"plot_trusted", "plot_ratings", "plot_comments", "cluster"};
- }
- else {
- tables = new String[]{"plot_trusted", "plot_ratings", "plot_comments"};
- }
-
- // Add tables to this one, if we create more :D
-
-
- // Use mysql?
- if (Settings.DB.USE_MYSQL) {
- try {
- mySQL = new MySQL(this, Settings.DB.HOST_NAME, Settings.DB.PORT, Settings.DB.DATABASE, Settings.DB.USER, Settings.DB.PASSWORD);
- connection = mySQL.openConnection();
- {
- if (DBFunc.dbManager == null) {
- DBFunc.dbManager = new SQLManager(connection, Settings.DB.PREFIX);
- }
- final DatabaseMetaData meta = connection.getMetaData();
- ResultSet res = meta.getTables(null, null, Settings.DB.PREFIX + "plot", null);
- if (!res.next()) {
- DBFunc.createTables("mysql", true);
- } else {
- for (final String table : tables) {
- res = meta.getTables(null, null, Settings.DB.PREFIX + table, null);
- if (!res.next()) {
- DBFunc.createTables("mysql", false);
- }
- }
- // We should not repeat our self :P
- }
- }
- } catch (final Exception e) {
- Logger.add(LogLevel.DANGER, "MySQL connection failed.");
- sendConsoleSenderMessage("&c[Plots] MySQL is not setup correctly. The plugin will disable itself.");
- if ((config == null) || config.getBoolean("debug")) {
- sendConsoleSenderMessage("&d==== Here is an ugly stacktrace if you are interested in those things ====");
- e.printStackTrace();
- sendConsoleSenderMessage("&d==== End of stacktrace ====");
- sendConsoleSenderMessage("&6Please go to the PlotSquared 'storage.yml' and configure MySQL correctly.");
- }
- Bukkit.getPluginManager().disablePlugin(this);
- return;
- }
- plots = DBFunc.getPlots();
- if (Settings.ENABLE_CLUSTERS) {
- ClusterManager.clusters = DBFunc.getClusters();
- }
- }
- // TODO: Implement mongo
- else if (Settings.DB.USE_MONGO) {
- // DBFunc.dbManager = new MongoManager();
- sendConsoleSenderMessage(C.PREFIX.s() + "MongoDB is not yet implemented");
- } else if (Settings.DB.USE_SQLITE) {
- try {
- connection = new SQLite(this, this.getDataFolder() + File.separator + Settings.DB.SQLITE_DB + ".db").openConnection();
- {
- DBFunc.dbManager = new SQLManager(connection, Settings.DB.PREFIX);
- final DatabaseMetaData meta = connection.getMetaData();
- ResultSet res = meta.getTables(null, null, Settings.DB.PREFIX + "plot", null);
- if (!res.next()) {
- DBFunc.createTables("sqlite", true);
- } else {
- for (final String table : tables) {
- res = meta.getTables(null, null, Settings.DB.PREFIX + table, null);
- if (!res.next()) {
- DBFunc.createTables("sqlite", false);
- }
- }
- }
- }
- } catch (final Exception e) {
- Logger.add(LogLevel.DANGER, "SQLite connection failed");
- sendConsoleSenderMessage(C.PREFIX.s() + "&cFailed to open SQLite connection. The plugin will disable itself.");
- sendConsoleSenderMessage("&9==== Here is an ugly stacktrace, if you are interested in those things ===");
- e.printStackTrace();
- Bukkit.getPluginManager().disablePlugin(this);
- return;
- }
- plots = DBFunc.getPlots();
- if (Settings.ENABLE_CLUSTERS) {
- ClusterManager.clusters = DBFunc.getClusters();
- }
- } else {
- Logger.add(LogLevel.DANGER, "No storage type is set.");
- sendConsoleSenderMessage(C.PREFIX + "&cNo storage type is set!");
- getServer().getPluginManager().disablePlugin(this);
- return;
- }
- // Setup the command handler
- {
- final MainCommand command = new MainCommand();
- final PluginCommand plotCommand = getCommand("plots");
- plotCommand.setExecutor(command);
- plotCommand.setAliases(Arrays.asList("p", "ps", "plotme", "plot"));
- plotCommand.setTabCompleter(command);
- }
-
- // Main event handler
- getServer().getPluginManager().registerEvents(new PlayerEvents(), this);
- if (checkVersion(1, 8, 0)) {
- getServer().getPluginManager().registerEvents(new PlayerEvents_1_8(), this);
- }
- // World load events
- getServer().getPluginManager().registerEvents(this, this);
- // Info Inventory
- getServer().getPluginManager().registerEvents(new InventoryListener(), this);
- // Flag runnable
- PlotPlusListener.startRunnable(this);
- // Flag+ listener
- getServer().getPluginManager().registerEvents(new PlotPlusListener(), this);
- // Forcefield listener
- getServer().getPluginManager().registerEvents(new ForceFieldListener(), this);
- // Default flags
-
- if (getServer().getPluginManager().getPlugin("BarAPI") != null) {
- barAPI = (BarAPI) getServer().getPluginManager().getPlugin("BarAPI");
- }
- if (getServer().getPluginManager().getPlugin("WorldEdit") != null) {
- worldEdit = (WorldEditPlugin) getServer().getPluginManager().getPlugin("WorldEdit");
-
- final String version = worldEdit.getDescription().getVersion();
- if ((version != null) && version.startsWith("5.")) {
- PlotMain.sendConsoleSenderMessage("&cThis version of WorldEdit does not support PlotSquared.");
- PlotMain.sendConsoleSenderMessage("&cPlease use WorldEdit 6+ for masking support");
- PlotMain.sendConsoleSenderMessage("&c - http://builds.enginehub.org/job/worldedit");
- } else {
- getServer().getPluginManager().registerEvents(new WorldEditListener(), this);
- MainCommand.subCommands.add(new WE_Anywhere());
- }
- }
-// if (Settings.WORLDGUARD) {
-// if (getServer().getPluginManager().getPlugin("WorldGuard") != null) {
-// worldGuard = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");
-// worldGuardListener = new WorldGuardListener(this);
-// getServer().getPluginManager().registerEvents(worldGuardListener, this);
-// }
-// }
- if (Settings.AUTO_CLEAR) {
- ExpireManager.runTask();
- }
- // Economy setup
- {
- if ((getServer().getPluginManager().getPlugin("Vault") != null) && getServer().getPluginManager().getPlugin("Vault").isEnabled()) {
- final RegisteredServiceProvider economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
- if (economyProvider != null) {
- economy = economyProvider.getProvider();
- MainCommand.subCommands.add(new Buy());
- }
- }
- useEconomy = (economy != null);
- }
- // TPS Measurement
- {
- getServer().getScheduler().scheduleSyncRepeatingTask(this, new Lag(), 100L, 1L);
- }
- // Test for SetBlockFast
- {
- if (checkVersion(1, 8, 0)) {
- try {
- AbstractSetBlock.setBlockManager = new SetBlockSlow();
- }
- catch (Throwable e) {
- e.printStackTrace();
- AbstractSetBlock.setBlockManager = new SetBlockSlow();
- }
- }
- else {
- try {
- AbstractSetBlock.setBlockManager = new SetBlockFast();
- } catch (Throwable e) {
- AbstractSetBlock.setBlockManager = new SetBlockSlow();
- }
- }
- try {
- new SendChunk();
- PlotHelper.canSendChunk = true;
- } catch (final Throwable e) {
- PlotHelper.canSendChunk = false;
- }
- }
- // Setup the setup command
- {
- com.intellectualcrafters.plot.commands.plugin.setup(this);
- }
- // Handle UUIDS
- {
- boolean checkVersion = checkVersion(1, 7, 6);
- if (!checkVersion) {
- sendConsoleSenderMessage(C.PREFIX.s()+" &c[WARN] Titles are disabled - please update your version of Bukkit to support this feature.");
- Settings.TITLES = false;
- FlagManager.removeFlag(FlagManager.getFlag("titles"));
- }
- else {
- AbstractTitle.TITLE_CLASS = new DefaultTitle();
- }
- if (Settings.OFFLINE_MODE) {
- UUIDHandler.uuidWrapper = new OfflineUUIDWrapper();
- Settings.OFFLINE_MODE = true;
- }
- else if (checkVersion) {
- UUIDHandler.uuidWrapper = new DefaultUUIDWrapper();
- Settings.OFFLINE_MODE = false;
- }
- else {
- UUIDHandler.uuidWrapper = new OfflineUUIDWrapper();
- Settings.OFFLINE_MODE = true;
- }
- if (Settings.OFFLINE_MODE) {
- sendConsoleSenderMessage(C.PREFIX.s()+" &6PlotSquared is using Offline Mode UUIDs either because of user preference, or because you are using an old version of Bukkit");
- }
- else {
- sendConsoleSenderMessage(C.PREFIX.s()+" &6PlotSquared is using online UUIDs");
- }
- }
- // Now we're finished :D
- if (C.ENABLED.s().length() > 0) {
- Broadcast(C.ENABLED);
- }
- }
-
- /**
- * On unload
- */
- @Override
- final public void onDisable() {
- Logger.add(LogLevel.GENERAL, "Logger disabled");
- try {
- Logger.write();
- } catch (final IOException e1) {
- e1.printStackTrace();
- }
- try {
- connection.close();
- mySQL.closeConnection();
- } catch (NullPointerException | SQLException e) {
- if (connection != null) {
- Logger.add(LogLevel.DANGER, "Could not close mysql connection");
- }
- }
- }
-}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotSquared.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotSquared.java
new file mode 100644
index 000000000..ed5d96fd1
--- /dev/null
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/PlotSquared.java
@@ -0,0 +1,836 @@
+package com.intellectualcrafters.plot;
+
+import java.io.File;
+import java.io.IOException;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.UUID;
+
+import net.milkbowl.vault.economy.Economy;
+
+import org.bukkit.configuration.file.YamlConfiguration;
+
+import com.intellectualcrafters.plot.commands.Cluster;
+import com.intellectualcrafters.plot.commands.MainCommand;
+import com.intellectualcrafters.plot.config.C;
+import com.intellectualcrafters.plot.config.Configuration;
+import com.intellectualcrafters.plot.config.Settings;
+import com.intellectualcrafters.plot.database.DBFunc;
+import com.intellectualcrafters.plot.database.MySQL;
+import com.intellectualcrafters.plot.database.SQLManager;
+import com.intellectualcrafters.plot.database.SQLite;
+import com.intellectualcrafters.plot.flag.AbstractFlag;
+import com.intellectualcrafters.plot.flag.FlagManager;
+import com.intellectualcrafters.plot.flag.FlagValue;
+import com.intellectualcrafters.plot.generator.AugmentedPopulator;
+import com.intellectualcrafters.plot.generator.ClassicPlotWorld;
+import com.intellectualcrafters.plot.generator.HybridGen;
+import com.intellectualcrafters.plot.generator.HybridPlotWorld;
+import com.intellectualcrafters.plot.generator.HybridUtils;
+import com.intellectualcrafters.plot.generator.SquarePlotManager;
+import com.intellectualcrafters.plot.generator.SquarePlotWorld;
+import com.intellectualcrafters.plot.object.Plot;
+import com.intellectualcrafters.plot.object.PlotBlock;
+import com.intellectualcrafters.plot.object.PlotCluster;
+import com.intellectualcrafters.plot.object.PlotGenerator;
+import com.intellectualcrafters.plot.object.PlotId;
+import com.intellectualcrafters.plot.object.PlotManager;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.object.PlotWorld;
+import com.intellectualcrafters.plot.util.BlockManager;
+import com.intellectualcrafters.plot.util.ClusterManager;
+import com.intellectualcrafters.plot.util.ExpireManager;
+import com.intellectualcrafters.plot.util.Logger;
+import com.intellectualcrafters.plot.util.SetupUtils;
+import com.intellectualcrafters.plot.util.Logger.LogLevel;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.TaskManager;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
+import com.sk89q.worldedit.bukkit.WorldEditPlugin;
+
+public class PlotSquared {
+ public static final String MAIN_PERMISSION = "plots.use";
+ public static final String ADMIN_PERMISSION = "plots.admin";
+ public static File styleFile;
+ public static YamlConfiguration style;
+ public static File configFile;
+ public static YamlConfiguration config;
+ public static File storageFile;
+ public static YamlConfiguration storage;
+ public static PlotSquared THIS = null; // This class
+ public static IPlotMain IMP = null; // Specific implementation of PlotSquared
+ public static String VERSION = null;
+ public static TaskManager TASK = null;
+ private static boolean LOADING_WORLD = false;
+ public static Economy economy = null;
+ public static WorldEditPlugin worldEdit = null;
+ private final static HashMap plotworlds = new HashMap<>();
+ private final static HashMap plotmanagers = new HashMap<>();
+ private static LinkedHashMap> plots;
+ private static MySQL mySQL;
+ public static Connection connection;
+
+ public static MySQL getMySQL() {
+ return mySQL;
+ }
+
+ public static void updatePlot(final Plot plot) {
+ final String world = plot.world;
+ if (!plots.containsKey(world)) {
+ plots.put(world, new HashMap());
+ }
+ plot.hasChanged = true;
+ plots.get(world).put(plot.id, plot);
+ }
+
+ public static PlotWorld getPlotWorld(final String world) {
+ if (plotworlds.containsKey(world)) {
+ return plotworlds.get(world);
+ }
+ return null;
+ }
+
+ public static void addPlotWorld(final String world, final PlotWorld plotworld, final PlotManager manager) {
+ plotworlds.put(world, plotworld);
+ plotmanagers.put(world, manager);
+ if (!plots.containsKey(world)) {
+ plots.put(world, new HashMap());
+ }
+ }
+
+ public static void removePlotWorld(final String world) {
+ plots.remove(world);
+ plotmanagers.remove(world);
+ plotworlds.remove(world);
+ }
+
+ public static HashMap> getAllPlotsRaw() {
+ return plots;
+ }
+
+ public static void setAllPlotsRaw(final LinkedHashMap> plots) {
+ PlotSquared.plots = plots;
+ }
+
+ public static Set getPlots() {
+ final ArrayList newplots = new ArrayList<>();
+ for (final HashMap world : plots.values()) {
+ newplots.addAll(world.values());
+ }
+ return new LinkedHashSet<>(newplots);
+ }
+
+ public static LinkedHashSet getPlotsSorted() {
+ final ArrayList newplots = new ArrayList<>();
+ for (final HashMap world : plots.values()) {
+ newplots.addAll(world.values());
+ }
+ return new LinkedHashSet<>(newplots);
+ }
+
+ public static Set getPlots(final String world, final String player) {
+ final UUID uuid = UUIDHandler.getUUID(player);
+ return getPlots(world, uuid);
+ }
+
+ public static Set getPlots(final String world, final PlotPlayer player) {
+ final UUID uuid = player.getUUID();
+ return getPlots(world, uuid);
+ }
+
+ public static Set getPlots(final String world, final UUID uuid) {
+ final ArrayList myplots = new ArrayList<>();
+ for (final Plot plot : getPlots(world).values()) {
+ if (plot.hasOwner()) {
+ if (plot.getOwner().equals(uuid)) {
+ myplots.add(plot);
+ }
+ }
+ }
+ return new HashSet<>(myplots);
+ }
+
+ public static boolean isPlotWorld(final String world) {
+ return (plotworlds.containsKey(world));
+ }
+
+ public static PlotManager getPlotManager(final String world) {
+ if (plotmanagers.containsKey(world)) {
+ return plotmanagers.get(world);
+ }
+ return null;
+ }
+
+ public static String[] getPlotWorldsString() {
+ final Set strings = plots.keySet();
+ return strings.toArray(new String[strings.size()]);
+ }
+
+ public static HashMap getPlots(final String world) {
+ if (plots.containsKey(world)) {
+ return plots.get(world);
+ }
+ return new HashMap<>();
+ }
+
+ public static Set getPlots(final PlotPlayer player) {
+ final UUID uuid = player.getUUID();
+ final ArrayList myplots = new ArrayList<>();
+ for (final String world : plots.keySet()) {
+ if (isPlotWorld(world)) {
+ for (final Plot plot : plots.get(world).values()) {
+ if (plot.hasOwner()) {
+ if (plot.getOwner().equals(uuid)) {
+ myplots.add(plot);
+ }
+ }
+ }
+ }
+ }
+ return new HashSet<>(myplots);
+ }
+
+ public static boolean removePlot(final String world, final PlotId id, final boolean callEvent) {
+ if (callEvent) {
+ if (!IMP.callRemovePlot(world, id)) {
+ return false;
+ }
+ }
+ plots.get(world).remove(id);
+ if (MainUtil.lastPlot.containsKey(world)) {
+ final PlotId last = MainUtil.lastPlot.get(world);
+ final int last_max = Math.max(last.x, last.y);
+ final int this_max = Math.max(id.x, id.y);
+ if (this_max < last_max) {
+ MainUtil.lastPlot.put(world, id);
+ }
+ }
+ return true;
+ }
+
+ public static void loadWorld(final String world, final PlotGenerator generator) {
+ if (getPlotWorld(world) != null) {
+ return;
+ }
+ final Set worlds = (config.contains("worlds") ? config.getConfigurationSection("worlds").getKeys(false) : new HashSet());
+ final PlotWorld plotWorld;
+ final PlotGenerator plotGenerator;
+ final PlotManager plotManager;
+ final String path = "worlds." + world;
+ if (!LOADING_WORLD && (generator != null) && (generator instanceof PlotGenerator)) {
+ plotGenerator = generator;
+ plotWorld = plotGenerator.getNewPlotWorld(world);
+ plotManager = plotGenerator.getPlotManager();
+ if (!world.equals("CheckingPlotSquaredGenerator")) {
+ log(C.PREFIX.s() + "&aDetected world load for '" + world + "'");
+ log(C.PREFIX.s() + "&3 - generator: &7" + plotGenerator.getClass().getName());
+ log(C.PREFIX.s() + "&3 - plotworld: &7" + plotWorld.getClass().getName());
+ log(C.PREFIX.s() + "&3 - manager: &7" + plotManager.getClass().getName());
+ }
+ if (!config.contains(path)) {
+ config.createSection(path);
+ }
+ plotWorld.saveConfiguration(config.getConfigurationSection(path));
+ plotWorld.loadDefaultConfiguration(config.getConfigurationSection(path));
+ try {
+ config.save(configFile);
+ } catch (final IOException e) {
+ e.printStackTrace();
+ }
+ // Now add it
+ addPlotWorld(world, plotWorld, plotManager);
+ MainUtil.setupBorder(world);
+ } else {
+ if (!worlds.contains(world)) {
+ return;
+ }
+ if (!LOADING_WORLD) {
+ LOADING_WORLD = true;
+ try {
+ final String gen_string = config.getString("worlds." + world + "." + "generator.plugin");
+ if (gen_string == null) {
+ new HybridGen(world);
+ } else {
+ IMP.getGenerator(world, gen_string);
+ }
+ } catch (final Exception e) {
+ log("&d=== Oh no! Please set the generator for the " + world + " ===");
+ e.printStackTrace();
+ LOADING_WORLD = false;
+ removePlotWorld(world);
+ } finally {
+ LOADING_WORLD = false;
+ }
+ } else {
+ final PlotGenerator gen_class = generator;
+ plotWorld = gen_class.getNewPlotWorld(world);
+ plotManager = gen_class.getPlotManager();
+ if (!config.contains(path)) {
+ config.createSection(path);
+ }
+ plotWorld.TYPE = 2;
+ plotWorld.TERRAIN = 0;
+ plotWorld.saveConfiguration(config.getConfigurationSection(path));
+ plotWorld.loadDefaultConfiguration(config.getConfigurationSection(path));
+ try {
+ config.save(configFile);
+ } catch (final IOException e) {
+ e.printStackTrace();
+ }
+ if (((plotWorld.TYPE == 2) && !Settings.ENABLE_CLUSTERS) || !(plotManager instanceof SquarePlotManager)) {
+ log("&c[ERROR] World '" + world + "' in settings.yml is not using PlotSquared generator! Please set the generator correctly or delete the world from the 'settings.yml'!");
+ return;
+ }
+ addPlotWorld(world, plotWorld, plotManager);
+ if (plotWorld.TYPE == 2) {
+ if (ClusterManager.getClusters(world).size() > 0) {
+ for (final PlotCluster cluster : ClusterManager.getClusters(world)) {
+ new AugmentedPopulator(world, gen_class, cluster, plotWorld.TERRAIN == 2, plotWorld.TERRAIN != 2);
+ }
+ }
+ } else if (plotWorld.TYPE == 1) {
+ new AugmentedPopulator(world, gen_class, null, plotWorld.TERRAIN == 2, plotWorld.TERRAIN != 2);
+ }
+ }
+ }
+ }
+
+ public static boolean setupPlotWorld(final String world, final String id) {
+ if ((id != null) && (id.length() > 0)) {
+ // save configuration
+ final String[] split = id.split(",");
+ final HybridPlotWorld plotworld = new HybridPlotWorld(world);
+ final int width = SquarePlotWorld.PLOT_WIDTH_DEFAULT;
+ final int gap = SquarePlotWorld.ROAD_WIDTH_DEFAULT;
+ final int height = ClassicPlotWorld.PLOT_HEIGHT_DEFAULT;
+ final PlotBlock[] floor = ClassicPlotWorld.TOP_BLOCK_DEFAULT;
+ final PlotBlock[] main = ClassicPlotWorld.MAIN_BLOCK_DEFAULT;
+ final PlotBlock wall = ClassicPlotWorld.WALL_FILLING_DEFAULT;
+ final PlotBlock border = ClassicPlotWorld.WALL_BLOCK_DEFAULT;
+ for (final String element : split) {
+ final String[] pair = element.split("=");
+ if (pair.length != 2) {
+ log("&cNo value provided for: &7" + element);
+ return false;
+ }
+ final String key = pair[0].toLowerCase();
+ final String value = pair[1];
+ try {
+ switch (key) {
+ case "s":
+ case "size": {
+ SquarePlotWorld.PLOT_WIDTH_DEFAULT = ((Integer) Configuration.INTEGER.parseString(value)).shortValue();
+ break;
+ }
+ case "g":
+ case "gap": {
+ SquarePlotWorld.ROAD_WIDTH_DEFAULT = ((Integer) Configuration.INTEGER.parseString(value)).shortValue();
+ break;
+ }
+ case "h":
+ case "height": {
+ ClassicPlotWorld.PLOT_HEIGHT_DEFAULT = (Integer) Configuration.INTEGER.parseString(value);
+ ClassicPlotWorld.ROAD_HEIGHT_DEFAULT = (Integer) Configuration.INTEGER.parseString(value);
+ ClassicPlotWorld.WALL_HEIGHT_DEFAULT = (Integer) Configuration.INTEGER.parseString(value);
+ break;
+ }
+ case "f":
+ case "floor": {
+ ClassicPlotWorld.TOP_BLOCK_DEFAULT = (PlotBlock[]) Configuration.BLOCKLIST.parseString(value);
+ break;
+ }
+ case "m":
+ case "main": {
+ ClassicPlotWorld.MAIN_BLOCK_DEFAULT = (PlotBlock[]) Configuration.BLOCKLIST.parseString(value);
+ break;
+ }
+ case "w":
+ case "wall": {
+ ClassicPlotWorld.WALL_FILLING_DEFAULT = (PlotBlock) Configuration.BLOCK.parseString(value);
+ break;
+ }
+ case "b":
+ case "border": {
+ ClassicPlotWorld.WALL_BLOCK_DEFAULT = (PlotBlock) Configuration.BLOCK.parseString(value);
+ break;
+ }
+ default: {
+ log("&cKey not found: &7" + element);
+ return false;
+ }
+ }
+ } catch (final Exception e) {
+ e.printStackTrace();
+ log("&cInvalid value: &7" + value + " in arg " + element);
+ return false;
+ }
+ }
+ try {
+ final String root = "worlds." + world;
+ if (!config.contains(root)) {
+ config.createSection(root);
+ }
+ plotworld.saveConfiguration(config.getConfigurationSection(root));
+ ClassicPlotWorld.PLOT_HEIGHT_DEFAULT = height;
+ ClassicPlotWorld.ROAD_HEIGHT_DEFAULT = height;
+ ClassicPlotWorld.WALL_HEIGHT_DEFAULT = height;
+ ClassicPlotWorld.TOP_BLOCK_DEFAULT = floor;
+ ClassicPlotWorld.MAIN_BLOCK_DEFAULT = main;
+ ClassicPlotWorld.WALL_BLOCK_DEFAULT = border;
+ ClassicPlotWorld.WALL_FILLING_DEFAULT = wall;
+ SquarePlotWorld.PLOT_WIDTH_DEFAULT = width;
+ SquarePlotWorld.ROAD_WIDTH_DEFAULT = gap;
+ } catch (final Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return true;
+ }
+
+ public static Connection getConnection() {
+ return connection;
+ }
+
+ public PlotSquared(final IPlotMain imp_class) {
+ THIS = this;
+ IMP = imp_class;
+ VERSION = IMP.getVersion();
+ economy = IMP.getEconomy();
+ C.setupTranslations();
+ C.saveTranslations();
+ if (getJavaVersion() < 1.7) {
+ log(C.PREFIX.s() + "&cYour java version is outdated. Please update to at least 1.7.");
+ // Didn't know of any other link :D
+ log(C.PREFIX.s() + "&cURL: &6https://java.com/en/download/index.jsp");
+ IMP.disable();
+ return;
+ }
+ if (getJavaVersion() < 1.8) {
+ log(C.PREFIX.s() + "&cIt's really recommended to run Java 1.8, as it increases performance");
+ }
+ TASK = IMP.getTaskManager();
+ if (Settings.KILL_ROAD_MOBS) {
+ IMP.runEntityTask();
+ }
+ if (C.ENABLED.s().length() > 0) {
+ log(C.ENABLED.s());
+ }
+ setupConfigs();
+ setupDefaultFlags();
+ setupDatabase();
+ // Events
+ IMP.registerCommands();
+ IMP.registerPlayerEvents();
+ IMP.registerInventoryEvents();
+ IMP.registerPlotPlusEvents();
+ IMP.registerForceFieldEvents();
+ IMP.registerWorldEditEvents();
+ // create Hybrid utility class
+ HybridUtils.manager = IMP.initHybridUtils();
+ // create setup util class
+ SetupUtils.manager = IMP.initSetupUtils();
+ // Set block
+ BlockManager.manager = IMP.initBlockManager();
+ // PlotMe
+ TaskManager.runTaskLater(new Runnable() {
+ @Override
+ public void run() {
+ if (IMP.initPlotMeConverter()) {
+ log("&c=== IMPORTANT ===");
+ log("&cTHIS MESSAGE MAY BE EXTREMELY HELPFUL IF YOU HAVE TROUBLE CONVERTING PLOTME!");
+ log("&c - Make sure 'UUID.read-from-disk' is disabled (false)!");
+ log("&c - Sometimes the database can be locked, deleting PlotMe.jar beforehand will fix the issue!");
+ log("&c - After the conversion is finished, please set 'plotme-convert.enabled' to false in the 'settings.yml@'");
+ }
+ }
+ }, 200);
+ if (Settings.AUTO_CLEAR) {
+ ExpireManager.runTask();
+ }
+ }
+
+ public void disable() {
+ try {
+ connection.close();
+ mySQL.closeConnection();
+ } catch (NullPointerException | SQLException e) {
+ if (connection != null) {
+ log("&cCould not close mysql connection!");
+ }
+ }
+ }
+
+ public static void log(final String message) {
+ IMP.log(message);
+ }
+
+ public void setupDatabase() {
+ final String[] tables;
+ if (Settings.ENABLE_CLUSTERS) {
+ MainCommand.subCommands.add(new Cluster());
+ tables = new String[] { "plot_trusted", "plot_ratings", "plot_comments", "cluster" };
+ } else {
+ tables = new String[] { "plot_trusted", "plot_ratings", "plot_comments" };
+ }
+ if (Settings.DB.USE_MYSQL) {
+ try {
+ mySQL = new MySQL(THIS, Settings.DB.HOST_NAME, Settings.DB.PORT, Settings.DB.DATABASE, Settings.DB.USER, Settings.DB.PASSWORD);
+ connection = mySQL.openConnection();
+ {
+ if (DBFunc.dbManager == null) {
+ DBFunc.dbManager = new SQLManager(connection, Settings.DB.PREFIX);
+ }
+ final DatabaseMetaData meta = connection.getMetaData();
+ ResultSet res = meta.getTables(null, null, Settings.DB.PREFIX + "plot", null);
+ if (!res.next()) {
+ DBFunc.createTables("mysql", true);
+ } else {
+ for (final String table : tables) {
+ res = meta.getTables(null, null, Settings.DB.PREFIX + table, null);
+ if (!res.next()) {
+ DBFunc.createTables("mysql", false);
+ }
+ }
+ }
+ }
+ } catch (final Exception e) {
+ log("&c[Plots] MySQL is not setup correctly. The plugin will disable itself.");
+ if ((config == null) || config.getBoolean("debug")) {
+ log("&d==== Here is an ugly stacktrace if you are interested in those things ====");
+ e.printStackTrace();
+ log("&d==== End of stacktrace ====");
+ log("&6Please go to the PlotSquared 'storage.yml' and configure MySQL correctly.");
+ }
+ IMP.disable();
+ return;
+ }
+ plots = DBFunc.getPlots();
+ if (Settings.ENABLE_CLUSTERS) {
+ ClusterManager.clusters = DBFunc.getClusters();
+ }
+ } else if (Settings.DB.USE_MONGO) {
+ // DBFunc.dbManager = new MongoManager();
+ log(C.PREFIX.s() + "MongoDB is not yet implemented");
+ } else if (Settings.DB.USE_SQLITE) {
+ try {
+ connection = new SQLite(THIS, IMP.getDirectory() + File.separator + Settings.DB.SQLITE_DB + ".db").openConnection();
+ {
+ DBFunc.dbManager = new SQLManager(connection, Settings.DB.PREFIX);
+ final DatabaseMetaData meta = connection.getMetaData();
+ ResultSet res = meta.getTables(null, null, Settings.DB.PREFIX + "plot", null);
+ if (!res.next()) {
+ DBFunc.createTables("sqlite", true);
+ } else {
+ for (final String table : tables) {
+ res = meta.getTables(null, null, Settings.DB.PREFIX + table, null);
+ if (!res.next()) {
+ DBFunc.createTables("sqlite", false);
+ }
+ }
+ }
+ }
+ } catch (final Exception e) {
+ log(C.PREFIX.s() + "&cFailed to open SQLite connection. The plugin will disable itself.");
+ log("&9==== Here is an ugly stacktrace, if you are interested in those things ===");
+ e.printStackTrace();
+ IMP.disable();
+ return;
+ }
+ plots = DBFunc.getPlots();
+ if (Settings.ENABLE_CLUSTERS) {
+ ClusterManager.clusters = DBFunc.getClusters();
+ }
+ } else {
+ log(C.PREFIX + "&cNo storage type is set!");
+ IMP.disable();
+ return;
+ }
+ }
+
+ public static void setupDefaultFlags() {
+ final List booleanFlags = Arrays.asList("notify-enter", "notify-leave", "item-drop", "invincible", "instabreak", "drop-protection", "forcefield", "titles", "pve", "pvp", "no-worldedit");
+ final List intervalFlags = Arrays.asList("feed", "heal");
+ final List stringFlags = Arrays.asList("greeting", "farewell");
+ for (final String flag : stringFlags) {
+ FlagManager.addFlag(new AbstractFlag(flag));
+ }
+ for (final String flag : intervalFlags) {
+ FlagManager.addFlag(new AbstractFlag(flag, new FlagValue.IntervalValue()));
+ }
+ for (final String flag : booleanFlags) {
+ FlagManager.addFlag(new AbstractFlag(flag, new FlagValue.BooleanValue()));
+ }
+ FlagManager.addFlag(new AbstractFlag("fly", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("explosion", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("hostile-interact", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("hostile-attack", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("animal-interact", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("animal-attack", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("tamed-interact", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("tamed-attack", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("misc-interact", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("hanging-place", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("hanging-break", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("vehicle-use", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("vehicle-place", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("vehicle-break", new FlagValue.BooleanValue()));
+ FlagManager.addFlag(new AbstractFlag("place", new FlagValue.PlotBlockListValue()));
+ FlagManager.addFlag(new AbstractFlag("break", new FlagValue.PlotBlockListValue()));
+ FlagManager.addFlag(new AbstractFlag("use", new FlagValue.PlotBlockListValue()));
+ FlagManager.addFlag(new AbstractFlag("gamemode") {
+ @Override
+ public String parseValueRaw(final String value) {
+ switch (value) {
+ case "creative":
+ case "c":
+ case "1":
+ return "creative";
+ case "survival":
+ case "s":
+ case "0":
+ return "survival";
+ case "adventure":
+ case "a":
+ case "2":
+ return "adventure";
+ default:
+ return null;
+ }
+ }
+
+ @Override
+ public String getValueDesc() {
+ return "Flag value must be a gamemode: 'creative' , 'survival' or 'adventure'";
+ }
+ });
+ FlagManager.addFlag(new AbstractFlag("price", new FlagValue.UnsignedDoubleValue()));
+ FlagManager.addFlag(new AbstractFlag("time", new FlagValue.LongValue()));
+ FlagManager.addFlag(new AbstractFlag("weather") {
+ @Override
+ public String parseValueRaw(final String value) {
+ switch (value) {
+ case "rain":
+ case "storm":
+ case "on":
+ return "rain";
+ case "clear":
+ case "off":
+ case "sun":
+ return "clear";
+ default:
+ return null;
+ }
+ }
+
+ @Override
+ public String getValueDesc() {
+ return "Flag value must be weather type: 'clear' or 'rain'";
+ }
+ });
+ }
+
+ public static void setupConfig() {
+ config.set("version", VERSION);
+ final Map options = new HashMap<>();
+ options.put("teleport.delay", 0);
+ options.put("auto_update", false);
+ options.put("clusters.enabled", Settings.ENABLE_CLUSTERS);
+ options.put("plotme-alias", Settings.USE_PLOTME_ALIAS);
+ options.put("plotme-convert.enabled", Settings.CONVERT_PLOTME);
+ options.put("claim.max-auto-area", Settings.MAX_AUTO_SIZE);
+ options.put("UUID.offline", Settings.OFFLINE_MODE);
+ options.put("kill_road_mobs", Settings.KILL_ROAD_MOBS_DEFAULT);
+ options.put("mob_pathfinding", Settings.MOB_PATHFINDING_DEFAULT);
+ options.put("console.color", Settings.CONSOLE_COLOR);
+ options.put("metrics", true);
+ options.put("debug", true);
+ options.put("clear.auto.enabled", false);
+ options.put("clear.auto.days", 365);
+ options.put("clear.check-disk", Settings.AUTO_CLEAR_CHECK_DISK);
+ options.put("clear.on.ban", false);
+ options.put("max_plots", Settings.MAX_PLOTS);
+ options.put("schematics.save_path", Settings.SCHEMATIC_SAVE_PATH);
+ options.put("uuid.read-from-disk", Settings.UUID_FROM_DISK);
+ options.put("titles", Settings.TITLES);
+ options.put("teleport.on_login", Settings.TELEPORT_ON_LOGIN);
+ options.put("worldedit.require-selection-in-mask", Settings.REQUIRE_SELECTION);
+ for (final Entry node : options.entrySet()) {
+ if (!config.contains(node.getKey())) {
+ config.set(node.getKey(), node.getValue());
+ }
+ }
+ Settings.ENABLE_CLUSTERS = config.getBoolean("clusters.enabled");
+ Settings.DEBUG = config.getBoolean("debug");
+ if (Settings.DEBUG) {
+ log(C.PREFIX.s() + "&6Debug Mode Enabled (Default). Edit the config to turn this off.");
+ }
+ Settings.TELEPORT_DELAY = config.getInt("teleport.delay");
+ Settings.CONSOLE_COLOR = config.getBoolean("console.color");
+ Settings.TELEPORT_ON_LOGIN = config.getBoolean("teleport.on_login");
+ Settings.USE_PLOTME_ALIAS = config.getBoolean("plotme-alias");
+ Settings.CONVERT_PLOTME = config.getBoolean("plotme-convert.enabled");
+ Settings.KILL_ROAD_MOBS = config.getBoolean("kill_road_mobs");
+ Settings.MOB_PATHFINDING = config.getBoolean("mob_pathf" + "inding");
+ Settings.METRICS = config.getBoolean("metrics");
+ Settings.AUTO_CLEAR_DAYS = config.getInt("clear.auto.days");
+ Settings.AUTO_CLEAR_CHECK_DISK = config.getBoolean("clear.check-disk");
+ Settings.MAX_AUTO_SIZE = config.getInt("claim.max-auto-area");
+ Settings.AUTO_CLEAR = config.getBoolean("clear.auto.enabled");
+ Settings.TITLES = config.getBoolean("titles");
+ Settings.MAX_PLOTS = config.getInt("max_plots");
+ if (Settings.MAX_PLOTS > 32767) {
+ log("&c`max_plots` Is set too high! This is a per player setting and does not need to be very large.");
+ Settings.MAX_PLOTS = 32767;
+ }
+ Settings.SCHEMATIC_SAVE_PATH = config.getString("schematics.save_path");
+ Settings.OFFLINE_MODE = config.getBoolean("UUID.offline");
+ Settings.UUID_FROM_DISK = config.getBoolean("uuid.read-from-disk");
+ Settings.REQUIRE_SELECTION = config.getBoolean("worldedit.require-selection-in-mask");
+ }
+
+ public static void setupConfigs() {
+ final File folder = new File(IMP.getDirectory() + File.separator + "config");
+ if (!folder.exists() && !folder.mkdirs()) {
+ log(C.PREFIX.s() + "&cFailed to create the /plugins/config folder. Please create it manually.");
+ }
+ try {
+ styleFile = new File(IMP.getDirectory() + File.separator + "translations" + File.separator + "style.yml");
+ if (!styleFile.exists()) {
+ if (!styleFile.createNewFile()) {
+ log("Could not create the style file, please create \"translations/style.yml\" manually");
+ }
+ }
+ style = YamlConfiguration.loadConfiguration(styleFile);
+ setupStyle();
+ } catch (final Exception err) {
+ Logger.add(LogLevel.DANGER, "Failed to save style.yml");
+ System.out.println("failed to save style.yml");
+ }
+ try {
+ configFile = new File(IMP.getDirectory() + File.separator + "config" + File.separator + "settings.yml");
+ if (!configFile.exists()) {
+ if (!configFile.createNewFile()) {
+ log("Could not create the settings file, please create \"settings.yml\" manually.");
+ }
+ }
+ config = YamlConfiguration.loadConfiguration(configFile);
+ setupConfig();
+ } catch (final Exception err_trans) {
+ Logger.add(LogLevel.DANGER, "Failed to save settings.yml");
+ System.out.println("Failed to save settings.yml");
+ }
+ try {
+ storageFile = new File(IMP.getDirectory() + File.separator + "config" + File.separator + "storage.yml");
+ if (!storageFile.exists()) {
+ if (!storageFile.createNewFile()) {
+ log("Could not the storage settings file, please create \"storage.yml\" manually.");
+ }
+ }
+ storage = YamlConfiguration.loadConfiguration(storageFile);
+ setupStorage();
+ } catch (final Exception err_trans) {
+ Logger.add(LogLevel.DANGER, "Failed to save storage.yml");
+ System.out.println("Failed to save storage.yml");
+ }
+ try {
+ style.save(styleFile);
+ config.save(configFile);
+ storage.save(storageFile);
+ } catch (final IOException e) {
+ Logger.add(LogLevel.DANGER, "Configuration file saving failed");
+ e.printStackTrace();
+ }
+ }
+
+ private static void setupStorage() {
+ storage.set("version", VERSION);
+ final Map options = new HashMap<>();
+ options.put("mysql.use", false);
+ options.put("sqlite.use", true);
+ options.put("sqlite.db", "storage");
+ options.put("mysql.host", "localhost");
+ options.put("mysql.port", "3306");
+ options.put("mysql.user", "root");
+ options.put("mysql.password", "password");
+ options.put("mysql.database", "plot_db");
+ options.put("prefix", "");
+ for (final Entry node : options.entrySet()) {
+ if (!storage.contains(node.getKey())) {
+ storage.set(node.getKey(), node.getValue());
+ }
+ }
+ }
+
+ public static void showDebug() {
+ Settings.DB.USE_MYSQL = storage.getBoolean("mysql.use");
+ Settings.DB.USER = storage.getString("mysql.user");
+ Settings.DB.PASSWORD = storage.getString("mysql.password");
+ Settings.DB.HOST_NAME = storage.getString("mysql.host");
+ Settings.DB.PORT = storage.getString("mysql.port");
+ Settings.DB.DATABASE = storage.getString("mysql.database");
+ Settings.DB.USE_SQLITE = storage.getBoolean("sqlite.use");
+ Settings.DB.SQLITE_DB = storage.getString("sqlite.db");
+ Settings.DB.PREFIX = storage.getString("prefix");
+ Settings.METRICS = config.getBoolean("metrics");
+ Settings.AUTO_CLEAR = config.getBoolean("clear.auto.enabled");
+ Settings.AUTO_CLEAR_DAYS = config.getInt("clear.auto.days");
+ Settings.DELETE_PLOTS_ON_BAN = config.getBoolean("clear.on.ban");
+ Settings.API_URL = config.getString("uuid.api.location");
+ Settings.CUSTOM_API = config.getBoolean("uuid.api.custom");
+ Settings.UUID_FECTHING = config.getBoolean("uuid.fetching");
+ C.COLOR_1 = "\u00A7" + (style.getString("color.1"));
+ C.COLOR_2 = "\u00A7" + (style.getString("color.2"));
+ C.COLOR_3 = "\u00A7" + (style.getString("color.3"));
+ C.COLOR_4 = "\u00A7" + (style.getString("color.4"));
+ if (Settings.DEBUG) {
+ final Map settings = new HashMap<>();
+ settings.put("Kill Road Mobs", "" + Settings.KILL_ROAD_MOBS);
+ settings.put("Use Metrics", "" + Settings.METRICS);
+ settings.put("Delete Plots On Ban", "" + Settings.DELETE_PLOTS_ON_BAN);
+ settings.put("Mob Pathfinding", "" + Settings.MOB_PATHFINDING);
+ settings.put("DB Mysql Enabled", "" + Settings.DB.USE_MYSQL);
+ settings.put("DB SQLite Enabled", "" + Settings.DB.USE_SQLITE);
+ settings.put("Auto Clear Enabled", "" + Settings.AUTO_CLEAR);
+ settings.put("Auto Clear Days", "" + Settings.AUTO_CLEAR_DAYS);
+ settings.put("Schematics Save Path", "" + Settings.SCHEMATIC_SAVE_PATH);
+ settings.put("API Location", "" + Settings.API_URL);
+ for (final Entry setting : settings.entrySet()) {
+ log(C.PREFIX.s() + String.format("&cKey: &6%s&c, Value: &6%s", setting.getKey(), setting.getValue()));
+ }
+ }
+ }
+
+ private static void setupStyle() {
+ style.set("version", VERSION);
+ final Map o = new HashMap<>();
+ o.put("color.1", C.COLOR_1.substring(1));
+ o.put("color.2", C.COLOR_2.substring(1));
+ o.put("color.3", C.COLOR_3.substring(1));
+ o.put("color.4", C.COLOR_4.substring(1));
+ for (final Entry node : o.entrySet()) {
+ if (!style.contains(node.getKey())) {
+ style.set(node.getKey(), node.getValue());
+ }
+ }
+ }
+
+ public static double getJavaVersion() {
+ return Double.parseDouble(System.getProperty("java.specification.version"));
+ }
+
+ public static Set getPlotWorlds() {
+ return plotworlds.keySet();
+ }
+}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/api/PlotAPI.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/api/PlotAPI.java
deleted file mode 100644
index 53fed0097..000000000
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/api/PlotAPI.java
+++ /dev/null
@@ -1,651 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// PlotSquared - A plot manager and world generator for the Bukkit API /
-// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
-// /
-// This program is free software; you can redistribute it and/or modify /
-// it under the terms of the GNU General Public License as published by /
-// the Free Software Foundation; either version 3 of the License, or /
-// (at your option) any later version. /
-// /
-// This program is distributed in the hope that it will be useful, /
-// but WITHOUT ANY WARRANTY; without even the implied warranty of /
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
-// GNU General Public License for more details. /
-// /
-// You should have received a copy of the GNU General Public License /
-// along with this program; if not, write to the Free Software Foundation, /
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
-// /
-// You can contact us via: support@intellectualsites.com /
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-package com.intellectualcrafters.plot.api;
-
-import java.util.ArrayList;
-import java.util.Set;
-
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.java.JavaPlugin;
-
-import com.intellectualcrafters.plot.PlotMain;
-import com.intellectualcrafters.plot.commands.MainCommand;
-import com.intellectualcrafters.plot.commands.SubCommand;
-import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.flag.AbstractFlag;
-import com.intellectualcrafters.plot.flag.FlagManager;
-import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.object.PlotId;
-import com.intellectualcrafters.plot.object.PlotManager;
-import com.intellectualcrafters.plot.object.PlotWorld;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
-import com.intellectualcrafters.plot.util.PlotSquaredException;
-import com.intellectualcrafters.plot.util.SchematicHandler;
-import com.intellectualcrafters.plot.util.UUIDHandler;
-
-/**
- * PlotSquared API
- *
- * @author Citymonstret
- * @author Empire92
- * @version API 2.0
- */
-
-@SuppressWarnings("unused") public class PlotAPI {
-
- /**
- * Permission that allows for admin access, this permission node will allow the player to use any part of the
- * plugin, without limitations.
- */
- public static final String ADMIN_PERMISSION = "plots.admin";
-
- /**
- * Plot Helper Class
- *
- * General functions involving plots, and the management of them
- *
- * @see com.intellectualcrafters.plot.util.PlotHelper
- */
- private static PlotHelper plotHelper;
-
- /**
- * Player Functions
- *
- * General functions involving players, and plot worlds
- *
- * @see com.intellectualcrafters.plot.util.PlayerFunctions
- */
- private static PlayerFunctions playerFunctions;
-
- /**
- * Flag Manager
- *
- * The manager which handles all flags
- *
- * @see com.intellectualcrafters.plot.flag.FlagManager
- */
- private static FlagManager flagManager;
-
- /**
- * Schematic Handler
- *
- * The handler which is used to create, and paste, schematics
- *
- * @see com.intellectualcrafters.plot.util.SchematicHandler
- */
- private static SchematicHandler schematicHandler;
-
- /**
- * The translation class.
- *
- * @see com.intellectualcrafters.plot.config.C
- */
- private static C c;
-
- /**
- * PlotMain instance
- *
- * This is the instance that allows for most methods to be used.
- *
- * @see com.intellectualcrafters.plot.PlotMain
- */
- private final PlotMain plotMain;
-
- /**
- * Constructor. Insert any Plugin. (Optimally the plugin that is accessing the method)
- *
- * @param plugin Plugin used to access this method
- *
- * @throws com.intellectualcrafters.plot.util.PlotSquaredException if the program fails to fetch the PlotMain
- * instance
- * @see com.intellectualcrafters.plot.PlotMain
- */
- public PlotAPI(final JavaPlugin plugin) {
- this.plotMain = PlotMain.getMain();
- if (this.plotMain == null) {
- throw new PlotSquaredException(PlotSquaredException.PlotError.PLOTMAIN_NULL, "Failed to fetch the plotmain instance, Plot API for " + plugin.getName() + " will be disabled");
- }
- }
-
- /**
- * Get all plots
- *
- * @return all plots
- *
- * @see com.intellectualcrafters.plot.PlotMain#getPlots()
- */
- public Set getAllPlots() {
- return PlotMain.getPlots();
- }
-
- /**
- * Return all plots for a player
- *
- * @param player Player, whose plots to search for
- *
- * @return all plots that a player owns
- */
- public Set getPlayerPlots(final Player player) {
- return PlotMain.getPlots(player);
- }
-
- /**
- * Add a plot world
- *
- * @param world World Name
- * @param plotWorld Plot World Object
- * @param manager World Manager
- *
- * @see com.intellectualcrafters.plot.PlotMain#addPlotWorld(String, com.intellectualcrafters.plot.object.PlotWorld,
- * com.intellectualcrafters.plot.object.PlotManager)
- */
- public void addPlotWorld(final String world, final PlotWorld plotWorld, final PlotManager manager) {
- PlotMain.addPlotWorld(world, plotWorld, manager);
- }
-
- /**
- * @return main configuration
- *
- * @see com.intellectualcrafters.plot.PlotMain#config
- */
- public YamlConfiguration getConfig() {
- return PlotMain.config;
- }
-
- /**
- * @return storage configuration
- *
- * @see com.intellectualcrafters.plot.PlotMain#storage
- */
- public YamlConfiguration getStorage() {
- return PlotMain.storage;
- }
-
- /**
- * Get the main class for this plugin - Contains a lot of fields and methods - not very well organized
- * Only use this if you really need it
- *
- * @return PlotMain PlotSquared Main Class
- *
- * @see com.intellectualcrafters.plot.PlotMain
- */
- public PlotMain getMain() {
- return this.plotMain;
- }
-
- /**
- * PlotHelper class contains useful methods relating to plots.
- *
- * @return PlotHelper
- *
- * @see com.intellectualcrafters.plot.util.PlotHelper
- */
- public PlotHelper getPlotHelper() {
- return plotHelper;
- }
-
- /**
- * PlayerFunctions class contains useful methods relating to players - Some player/plot methods are here as well
- *
- * @return PlayerFunctions
- *
- * @see com.intellectualcrafters.plot.util.PlayerFunctions
- */
- public PlayerFunctions getPlayerFunctions() {
- return playerFunctions;
- }
-
- /**
- * FlagManager class contains methods relating to plot flags
- *
- * @return FlagManager
- *
- * @see com.intellectualcrafters.plot.flag.FlagManager
- */
- public FlagManager getFlagManager() {
- return flagManager;
- }
-
- /**
- * SchematicHandler class contains methods related to pasting schematics
- *
- * @return SchematicHandler
- *
- * @see com.intellectualcrafters.plot.util.SchematicHandler
- */
- public SchematicHandler getSchematicHandler() {
- return schematicHandler;
- }
-
- /**
- * C class contains all the captions from the translations.yml file.
- *
- * @return C
- *
- * @see com.intellectualcrafters.plot.config.C
- */
- public C getCaptions() {
- return c;
- }
-
- /**
- * Get the plot manager for a world. - Most of these methods can be accessed through the PlotHelper
- *
- * @param world Which manager to get
- *
- * @return PlotManager
- *
- * @see com.intellectualcrafters.plot.object.PlotManager
- * @see PlotMain#getPlotManager(org.bukkit.World)
- */
- public PlotManager getPlotManager(final World world) {
- return PlotMain.getPlotManager(world);
- }
-
- /**
- * Get the plot manager for a world. - Contains useful low level methods for plot merging, clearing, and
- * tessellation
- *
- * @param world Plot World
- *
- * @return PlotManager
- *
- * @see PlotMain#getPlotManager(String)
- * @see com.intellectualcrafters.plot.object.PlotManager
- */
- public PlotManager getPlotManager(final String world) {
- return PlotMain.getPlotManager(world);
- }
-
- /**
- * Get the settings for a world (settings bundled in PlotWorld class) - You will need to downcast for the specific
- * settings a Generator has. e.g. DefaultPlotWorld class implements PlotWorld
- *
- * @param world (to get settings of)
- *
- * @return PlotWorld class for that world ! will return null if not a plot world world
- *
- * @see PlotMain#getWorldSettings(org.bukkit.World)
- * @see com.intellectualcrafters.plot.object.PlotWorld
- */
- public PlotWorld getWorldSettings(final World world) {
- return PlotMain.getWorldSettings(world);
- }
-
- /**
- * Get the settings for a world (settings bundled in PlotWorld class)
- *
- * @param world (to get settings of)
- *
- * @return PlotWorld class for that world ! will return null if not a plot world world
- *
- * @see PlotMain#getWorldSettings(String)
- * @see com.intellectualcrafters.plot.object.PlotWorld
- */
- public PlotWorld getWorldSettings(final String world) {
- return PlotMain.getWorldSettings(world);
- }
-
- /**
- * Send a message to a player.
- *
- * @param player Player that will receive the message
- * @param c (Caption)
- *
- * @see com.intellectualcrafters.plot.util.PlayerFunctions#sendMessage(org.bukkit.entity.Player,
- * com.intellectualcrafters.plot.config.C, String...)
- */
- public void sendMessage(final Player player, final C c) {
- PlayerFunctions.sendMessage(player, c);
- }
-
- /**
- * Send a message to a player. - Supports color codes
- *
- * @param player Player that will receive the message
- * @param string The message
- *
- * @see com.intellectualcrafters.plot.util.PlayerFunctions#sendMessage(org.bukkit.entity.Player, String)
- */
- public void sendMessage(final Player player, final String string) {
- PlayerFunctions.sendMessage(player, string);
- }
-
- /**
- * Send a message to the console. - Supports color codes
- *
- * @param msg Message that should be sent to the console
- *
- * @see PlotMain#sendConsoleSenderMessage(String)
- */
- public void sendConsoleMessage(final String msg) {
- PlotMain.sendConsoleSenderMessage(msg);
- }
-
- /**
- * Send a message to the console
- *
- * @param c (Caption)
- *
- * @see #sendConsoleMessage(String)
- * @see com.intellectualcrafters.plot.config.C
- */
- public void sendConsoleMessage(final C c) {
- sendConsoleMessage(c.s());
- }
-
- /**
- * Register a flag for use in plots
- *
- * @param flag Flag that should be registered
- *
- * @see com.intellectualcrafters.plot.flag.FlagManager#addFlag(com.intellectualcrafters.plot.flag.AbstractFlag)
- * @see com.intellectualcrafters.plot.flag.AbstractFlag
- */
- public void addFlag(final AbstractFlag flag) {
- FlagManager.addFlag(flag);
- }
-
- /**
- * get all the currently registered flags
- *
- * @return array of Flag[]
- *
- * @see com.intellectualcrafters.plot.flag.FlagManager#getFlags()
- * @see com.intellectualcrafters.plot.flag.AbstractFlag
- */
- public AbstractFlag[] getFlags() {
- return FlagManager.getFlags().toArray(new AbstractFlag[FlagManager.getFlags().size()]);
- }
-
- /**
- * Get a plot based on the ID
- *
- * @param world World in which the plot is located
- * @param x Plot Location X Co-ord
- * @param z Plot Location Z Co-ord
- *
- * @return plot, null if ID is wrong
- *
- * @see PlotHelper#getPlot(org.bukkit.World, com.intellectualcrafters.plot.object.PlotId)
- * @see com.intellectualcrafters.plot.object.Plot
- */
- public Plot getPlot(final World world, final int x, final int z) {
- return PlotHelper.getPlot(world, new PlotId(x, z));
- }
-
- /**
- * Get a plot based on the location
- *
- * @param l The location that you want to to retrieve the plot from
- *
- * @return plot if found, otherwise it creates a temporary plot-
- *
- * @see PlotHelper#getCurrentPlot(org.bukkit.Location)
- * @see com.intellectualcrafters.plot.object.Plot
- */
- public Plot getPlot(final Location l) {
- return PlotHelper.getCurrentPlot(l);
- }
-
- /**
- * Get a plot based on the player location
- *
- * @param player Get the current plot for the player location
- *
- * @return plot if found, otherwise it creates a temporary plot
- *
- * @see #getPlot(org.bukkit.Location)
- * @see com.intellectualcrafters.plot.object.Plot
- */
- public Plot getPlot(final Player player) {
- return this.getPlot(player.getLocation());
- }
-
- /**
- * Check whether or not a player has a plot
- *
- * @param player Player that you want to check for
- *
- * @return true if player has a plot, false if not.
- *
- * @see #getPlots(org.bukkit.World, org.bukkit.entity.Player, boolean)
- */
- public boolean hasPlot(final World world, final Player player) {
- return (getPlots(world, player, true) != null) && (getPlots(world, player, true).length > 0);
- }
-
- /**
- * Get all plots for the player
- *
- * @param plr to search for
- * @param just_owner should we just search for owner? Or with rights?
- *
- * @see com.intellectualcrafters.plot.object.Plot
- */
- public Plot[] getPlots(final World world, final Player plr, final boolean just_owner) {
- final ArrayList pPlots = new ArrayList<>();
- for (final Plot plot : PlotMain.getPlots(world).values()) {
- if (just_owner) {
- if ((plot.owner != null) && (plot.owner == UUIDHandler.getUUID(plr))) {
- pPlots.add(plot);
- }
- } else {
- if (plot.hasRights(plr)) {
- pPlots.add(plot);
- }
- }
- }
- return pPlots.toArray(new Plot[pPlots.size()]);
- }
-
- /**
- * Get all plots for the world
- *
- * @param world to get plots of
- *
- * @return Plot[] - array of plot objects in world
- *
- * @see PlotMain#getWorldPlots(org.bukkit.World)
- * @see com.intellectualcrafters.plot.object.Plot
- */
- public Plot[] getPlots(final World world) {
- return PlotMain.getWorldPlots(world);
- }
-
- /**
- * Get all plot worlds
- *
- * @return World[] - array of plot worlds
- *
- * @see com.intellectualcrafters.plot.PlotMain#getPlotWorlds()
- */
- public String[] getPlotWorlds() {
- return PlotMain.getPlotWorlds();
- }
-
- /**
- * Get if plot world
- *
- * @param world (to check if plot world)
- *
- * @return boolean (if plot world or not)
- *
- * @see com.intellectualcrafters.plot.PlotMain#isPlotWorld(org.bukkit.World)
- */
- public boolean isPlotWorld(final World world) {
- return PlotMain.isPlotWorld(world);
- }
-
- /**
- * Get plot locations
- *
- * @param p Plot that you want to get the locations for
- *
- * @return [0] = bottomLc, [1] = topLoc, [2] = home
- *
- * @see com.intellectualcrafters.plot.util.PlotHelper#getPlotBottomLoc(org.bukkit.World,
- * com.intellectualcrafters.plot.object.PlotId)
- * @see com.intellectualcrafters.plot.util.PlotHelper#getPlotTopLoc(org.bukkit.World,
- * com.intellectualcrafters.plot.object.PlotId)
- * @see com.intellectualcrafters.plot.util.PlotHelper#getPlotHome(org.bukkit.World,
- * com.intellectualcrafters.plot.object.Plot)
- * @see com.intellectualcrafters.plot.object.PlotHomePosition
- * @see com.intellectualcrafters.plot.object.Plot
- */
- public Location[] getLocations(final Plot p) {
- final World world = Bukkit.getWorld(p.world);
- return new Location[]{PlotHelper.getPlotBottomLoc(world, p.id), PlotHelper.getPlotTopLoc(world, p.id), PlotHelper.getPlotHome(world, p.id)};
- }
-
- /**
- * Get home location
- *
- * @param p Plot that you want to get the location for
- *
- * @return plot bottom location
- *
- * @see com.intellectualcrafters.plot.util.PlotHelper#getPlotHome(org.bukkit.World,
- * com.intellectualcrafters.plot.object.Plot)
- * @see com.intellectualcrafters.plot.object.PlotHomePosition
- * @see com.intellectualcrafters.plot.object.Plot
- */
- public Location getHomeLocation(final Plot p) {
- return PlotHelper.getPlotHome(p.getWorld(), p.id);
- }
-
- /**
- * Get Bottom Location (min, min, min)
- *
- * @param p Plot that you want to get the location for
- *
- * @return plot bottom location
- *
- * @see com.intellectualcrafters.plot.util.PlotHelper#getPlotBottomLoc(org.bukkit.World,
- * com.intellectualcrafters.plot.object.PlotId)
- * @see com.intellectualcrafters.plot.object.Plot
- */
- public Location getBottomLocation(final Plot p) {
- final World world = Bukkit.getWorld(p.world);
- return PlotHelper.getPlotBottomLoc(world, p.id);
- }
-
- /**
- * Get Top Location (max, max, max)
- *
- * @param p Plot that you want to get the location for
- *
- * @return plot top location
- *
- * @see PlotHelper#getPlotTopLoc(org.bukkit.World, com.intellectualcrafters.plot.object.PlotId)
- * @see com.intellectualcrafters.plot.object.Plot
- */
- public Location getTopLocation(final Plot p) {
- final World world = Bukkit.getWorld(p.world);
- return PlotHelper.getPlotTopLoc(world, p.id);
- }
-
- /**
- * Check whether or not a player is in a plot
- *
- * @param player who we're checking for
- *
- * @return true if the player is in a plot, false if not-
- *
- * @see com.intellectualcrafters.plot.util.PlayerFunctions#isInPlot(org.bukkit.entity.Player)
- */
- public boolean isInPlot(final Player player) {
- return PlayerFunctions.isInPlot(player);
- }
-
- /**
- * Register a subcommand
- *
- * @param c SubCommand, that we want to register
- *
- * @see com.intellectualcrafters.plot.commands.MainCommand#subCommands
- * @see com.intellectualcrafters.plot.commands.SubCommand
- */
- public void registerCommand(final SubCommand c) {
- MainCommand.subCommands.add(c);
- }
-
- /**
- * Get the plotMain class
- *
- * @return PlotMain Class
- *
- * @see com.intellectualcrafters.plot.PlotMain
- */
- public PlotMain getPlotMain() {
- return this.plotMain;
- }
-
- /**
- * Get the player plot count
- *
- * @param world Specify the world we want to select the plots from
- * @param player Player, for whom we're getting the plot count
- *
- * @return the number of plots the player has
- *
- * @see com.intellectualcrafters.plot.util.PlayerFunctions#getPlayerPlotCount(org.bukkit.World,
- * org.bukkit.entity.Player)
- */
- public int getPlayerPlotCount(final World world, final Player player) {
- return PlayerFunctions.getPlayerPlotCount(world, player);
- }
-
- /**
- * Get a collection containing the players plots
- *
- * @param world Specify the world we want to select the plots from
- * @param player Player, for whom we're getting the plots
- *
- * @return a set containing the players plots
- *
- * @see com.intellectualcrafters.plot.util.PlayerFunctions#getPlayerPlots(org.bukkit.World,
- * org.bukkit.entity.Player)
- * @see com.intellectualcrafters.plot.object.Plot
- */
- public Set getPlayerPlots(final World world, final Player player) {
- return PlayerFunctions.getPlayerPlots(world, player);
- }
-
- /**
- * Get the numbers of plots, which the player is able to build in
- *
- * @param player Player, for whom we're getting the plots (trusted, helper and owner)
- *
- * @return the number of allowed plots
- *
- * @see com.intellectualcrafters.plot.util.PlayerFunctions#getAllowedPlots(org.bukkit.entity.Player)
- */
- public int getAllowedPlots(final Player player) {
- return PlayerFunctions.getAllowedPlots(player);
- }
-}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Auto.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Auto.java
index bc6a2440f..e16129fcf 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Auto.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Auto.java
@@ -18,32 +18,29 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import net.milkbowl.vault.economy.Economy;
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.config.Settings;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotCluster;
import com.intellectualcrafters.plot.object.PlotId;
+import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.util.ClusterManager;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
+import com.intellectualcrafters.plot.util.EconHandler;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
public class Auto extends SubCommand {
public Auto() {
super("auto", "plots.auto", "Claim the nearest plot", "auto", "a", CommandCategory.CLAIMING, true);
}
-
+
public static PlotId getNextPlot(final PlotId id, final int step) {
final int absX = Math.abs(id.x);
final int absY = Math.abs(id.y);
@@ -72,35 +69,34 @@ public class Auto extends SubCommand {
return new PlotId(id.x + 1, id.y);
}
}
-
+
// TODO auto claim a mega plot with schematic
@Override
- public boolean execute(final Player plr, final String... args) {
- World world;
+ public boolean execute(final PlotPlayer plr, final String... args) {
+ String world;
int size_x = 1;
int size_z = 1;
String schematic = "";
- if (PlotMain.getPlotWorlds().length == 1) {
- world = Bukkit.getWorld(PlotMain.getPlotWorlds()[0]);
+ if (PlotSquared.getPlotWorlds().size() == 1) {
+ world = PlotSquared.getPlotWorlds().iterator().next();
} else {
- if (PlotMain.isPlotWorld(plr.getWorld())) {
- world = plr.getWorld();
- } else {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT_WORLD);
+ world = plr.getLocation().getWorld();
+ if (!PlotSquared.isPlotWorld(world)) {
+ MainUtil.sendMessage(plr, C.NOT_IN_PLOT_WORLD);
return false;
}
}
if (args.length > 0) {
- if (PlotMain.hasPermission(plr, "plots.auto.mega")) {
+ if (Permissions.hasPermission(plr, "plots.auto.mega")) {
try {
final String[] split = args[0].split(",");
size_x = Integer.parseInt(split[0]);
size_z = Integer.parseInt(split[1]);
if ((size_x < 1) || (size_z < 1)) {
- PlayerFunctions.sendMessage(plr, "&cError: size<=0");
+ MainUtil.sendMessage(plr, "&cError: size<=0");
}
if ((size_x > 4) || (size_z > 4)) {
- PlayerFunctions.sendMessage(plr, "&cError: size>4");
+ MainUtil.sendMessage(plr, "&cError: size>4");
}
if (args.length > 1) {
schematic = args[1];
@@ -119,31 +115,31 @@ public class Auto extends SubCommand {
// return false;
}
}
-
if ((size_x * size_z) > Settings.MAX_AUTO_SIZE) {
- PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS_NUM, Settings.MAX_AUTO_SIZE + "");
+ MainUtil.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS_NUM, Settings.MAX_AUTO_SIZE + "");
return false;
}
- final int diff = PlayerFunctions.getPlayerPlotCount(world, plr) - PlayerFunctions.getAllowedPlots(plr);
+ int currentPlots = MainUtil.getPlayerPlotCount(world, plr);
+ final int diff = currentPlots - MainUtil.getAllowedPlots(plr, currentPlots);
if ((diff + (size_x * size_z)) > 0) {
if (diff < 0) {
- PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS_NUM, (-diff) + "");
+ MainUtil.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS_NUM, (-diff) + "");
} else {
- PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS);
+ MainUtil.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS);
}
return false;
}
- final PlotWorld pWorld = PlotMain.getWorldSettings(world);
- if (PlotMain.useEconomy && pWorld.USE_ECONOMY) {
+ final PlotWorld pWorld = PlotSquared.getPlotWorld(world);
+ if ((PlotSquared.economy != null) && pWorld.USE_ECONOMY) {
double cost = pWorld.PLOT_PRICE;
cost = (size_x * size_z) * cost;
if (cost > 0d) {
- final Economy economy = PlotMain.economy;
- if (economy.getBalance(plr) < cost) {
+ final Economy economy = PlotSquared.economy;
+ if (economy.getBalance(plr.getName()) < cost) {
sendMessage(plr, C.CANNOT_AFFORD_PLOT, "" + cost);
return true;
}
- economy.withdrawPlayer(plr, cost);
+ EconHandler.withdrawPlayer(plr, cost);
sendMessage(plr, C.REMOVED_BALANCE, cost + "");
}
}
@@ -153,97 +149,93 @@ public class Auto extends SubCommand {
sendMessage(plr, C.SCHEMATIC_INVALID, "non-existent: " + schematic);
return true;
}
- if (!PlotMain.hasPermission(plr, "plots.claim." + schematic) && !plr.hasPermission("plots.admin.command.schematic")) {
- PlayerFunctions.sendMessage(plr, C.NO_SCHEMATIC_PERMISSION, schematic);
+ if (!Permissions.hasPermission(plr, "plots.claim." + schematic) && !plr.hasPermission("plots.admin.command.schematic")) {
+ MainUtil.sendMessage(plr, C.NO_SCHEMATIC_PERMISSION, schematic);
return true;
}
// }
}
-
- PlotWorld plotworld = PlotMain.getWorldSettings(world);
+ final String worldname = world;
+ final PlotWorld plotworld = PlotSquared.getPlotWorld(worldname);
if (plotworld.TYPE == 2) {
- Location loc = plr.getLocation();
- Plot plot = PlotHelper.getCurrentPlot(loc);
- if (plot == null) {
- return sendMessage(plr, C.NOT_IN_PLOT);
- }
- PlotCluster cluster = ClusterManager.getCluster(loc);
- // Must be standing in a cluster
- if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_CLUSTER);
+ final Location loc = plr.getLocation();
+ final Plot plot = MainUtil.getPlot(new Location(worldname, loc.getX(), loc.getY(), loc.getZ()));
+ if (plot == null) {
+ return sendMessage(plr, C.NOT_IN_PLOT);
+ }
+ final PlotCluster cluster = ClusterManager.getCluster(loc);
+ // Must be standing in a cluster
+ if (cluster == null) {
+ MainUtil.sendMessage(plr, C.NOT_IN_CLUSTER);
return false;
}
- PlotId bot = cluster.getP1();
- PlotId top = cluster.getP2();
- PlotId origin = new PlotId((bot.x + top.x) / 2, (bot.y + top.y) / 2);
- PlotId id = new PlotId(0, 0);
- int width = Math.max(top.x - bot.x + 1, top.y - bot.y + 1);
- int max = width * width;
- //
- for (int i = 0; i <= max; i++) {
- PlotId currentId = new PlotId(origin.x + id.x, origin.y + id.y);
- Plot current = PlotHelper.getPlot(world, currentId);
- if (current != null && (current.hasOwner() == false) && (current.settings.isMerged() == false) && cluster.equals(ClusterManager.getCluster(current))) {
- Claim.claimPlot(plr, current, true, true);
- return true;
- }
- id = getNextPlot(id, 1);
- }
-
- // no free plots
- PlayerFunctions.sendMessage(plr, C.NO_FREE_PLOTS);
- return false;
+ final PlotId bot = cluster.getP1();
+ final PlotId top = cluster.getP2();
+ final PlotId origin = new PlotId((bot.x + top.x) / 2, (bot.y + top.y) / 2);
+ PlotId id = new PlotId(0, 0);
+ final int width = Math.max((top.x - bot.x) + 1, (top.y - bot.y) + 1);
+ final int max = width * width;
+ //
+ for (int i = 0; i <= max; i++) {
+ final PlotId currentId = new PlotId(origin.x + id.x, origin.y + id.y);
+ final Plot current = MainUtil.getPlot(worldname, currentId);
+ if ((current != null) && (current.hasOwner() == false) && (current.settings.isMerged() == false) && cluster.equals(ClusterManager.getCluster(current))) {
+ Claim.claimPlot(plr, current, true, true);
+ return true;
+ }
+ id = getNextPlot(id, 1);
+ }
+ // no free plots
+ MainUtil.sendMessage(plr, C.NO_FREE_PLOTS);
+ return false;
}
-
boolean br = false;
- String worldname = world.getName();
if ((size_x == 1) && (size_z == 1)) {
while (!br) {
- final Plot plot = PlotHelper.getPlot(world, getLastPlot(worldname));
+ final Plot plot = MainUtil.getPlot(worldname, getLastPlot(worldname));
if ((plot.owner == null)) {
Claim.claimPlot(plr, plot, true, true);
br = true;
}
- PlotHelper.lastPlot.put(worldname, getNextPlot(getLastPlot(worldname), 1));
+ 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.
- PlotHelper.lastPlot.put(worldname, start);
+ MainUtil.lastPlot.put(worldname, start);
if (lastPlot) {
}
- if ((PlotMain.getPlots(world).get(start) != null) && (PlotMain.getPlots(world).get(start).owner != null)) {
+ if ((PlotSquared.getPlots(worldname).get(start) != null) && (PlotSquared.getPlots(worldname).get(start).owner != null)) {
continue;
} else {
lastPlot = false;
}
final PlotId end = new PlotId((start.x + size_x) - 1, (start.y + size_z) - 1);
- if (PlotHelper.isUnowned(world, start, end)) {
+ if (MainUtil.isUnowned(worldname, start, end)) {
for (int i = start.x; i <= end.x; i++) {
for (int j = start.y; j <= end.y; j++) {
- final Plot plot = PlotHelper.getPlot(world, new PlotId(i, j));
+ final Plot plot = MainUtil.getPlot(worldname, new PlotId(i, j));
final boolean teleport = ((i == end.x) && (j == end.y));
Claim.claimPlot(plr, plot, teleport, true);
}
}
- if (!PlotHelper.mergePlots(plr, world, PlayerFunctions.getPlotSelectionIds(start, end))) {
+ if (!MainUtil.mergePlots(worldname, MainUtil.getPlotSelectionIds(start, end), true)) {
return false;
}
br = true;
}
}
}
- PlotHelper.lastPlot.put(worldname, new PlotId(0, 0));
+ MainUtil.lastPlot.put(worldname, new PlotId(0, 0));
return true;
}
-
- public PlotId getLastPlot(String world) {
- if (PlotHelper.lastPlot == null || !PlotHelper.lastPlot.containsKey(world)) {
- PlotHelper.lastPlot.put(world, new PlotId(0,0));
- }
- return PlotHelper.lastPlot.get(world);
- }
+ public PlotId getLastPlot(final String world) {
+ if ((MainUtil.lastPlot == null) || !MainUtil.lastPlot.containsKey(world)) {
+ MainUtil.lastPlot.put(world, new PlotId(0, 0));
+ }
+ return MainUtil.lastPlot.get(world);
+ }
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Ban.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Ban.java
deleted file mode 100644
index 6b9b2c751..000000000
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Ban.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.intellectualcrafters.plot.commands;
-
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-
-/**
- * Created 2014-11-09 for PlotSquared
- *
- * @author Citymonstret
- */
-public class Ban extends SubCommand {
-
- public Ban() {
- super(Command.BAN, "Alias for /plot denied add", "/plot ban [player]", CommandCategory.ACTIONS, true);
- }
-
- @Override
- public boolean execute(final Player plr, final String... args) {
- if (args.length < 1) {
- return PlayerFunctions.sendMessage(plr, "&cUsage: &c" + this.usage);
- }
- if (!PlayerFunctions.isInPlot(plr)) {
- return sendMessage(plr, C.NOT_IN_PLOT);
- }
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
- if (!plot.hasRights(plr)) {
- return sendMessage(plr, C.NO_PLOT_PERMS);
- }
- return plr.performCommand("plot denied add " + args[0]);
- }
-}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/BukkitCommand.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/BukkitCommand.java
new file mode 100644
index 000000000..852bfeaa2
--- /dev/null
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/BukkitCommand.java
@@ -0,0 +1,65 @@
+package com.intellectualcrafters.plot.commands;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandExecutor;
+import org.bukkit.command.CommandSender;
+import org.bukkit.command.TabCompleter;
+import org.bukkit.entity.Player;
+
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.bukkit.BukkitUtil;
+
+/**
+ * Created 2015-02-20 for PlotSquared
+ *
+ * @author Citymonstret
+ */
+public class BukkitCommand implements CommandExecutor, TabCompleter {
+
+ @Override
+ public boolean onCommand(CommandSender commandSender, Command command, String commandLabel, String[] args) {
+ Player player = null;
+ if (commandSender instanceof Player) {
+ player = (Player) commandSender;
+ }
+ return MainCommand.onCommand(BukkitUtil.getPlayer(player), commandLabel, args);
+ }
+
+ @Override
+ public List onTabComplete(final CommandSender commandSender, final Command command, final String s, final String[] strings) {
+ if (!(commandSender instanceof Player)) {
+ return null;
+ }
+ final PlotPlayer player = BukkitUtil.getPlayer((Player) commandSender);
+ if (strings.length < 1) {
+ if ((strings.length == 0) || "plots".startsWith(s)) {
+ return Arrays.asList("plots");
+ }
+ }
+ if (strings.length > 1) {
+ return null;
+ }
+ if (!command.getLabel().equalsIgnoreCase("plots")) {
+ return null;
+ }
+ final List tabOptions = new ArrayList<>();
+ final String arg = strings[0].toLowerCase();
+ for (final SubCommand cmd : MainCommand.subCommands) {
+ if (cmd.permission.hasPermission(player)) {
+ if (cmd.cmd.startsWith(arg)) {
+ tabOptions.add(cmd.cmd);
+ } else if (cmd.alias.get(0).startsWith(arg)) {
+ tabOptions.add(cmd.alias.get(0));
+ }
+ }
+ }
+ if (tabOptions.size() > 0) {
+ return tabOptions;
+ }
+ return null;
+ }
+}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Buy.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Buy.java
index 74e2444c0..218876b4c 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Buy.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Buy.java
@@ -18,101 +18,95 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
-import net.milkbowl.vault.economy.Economy;
-
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.flag.Flag;
import com.intellectualcrafters.plot.flag.FlagManager;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
+import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.util.EconHandler;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
/**
* @author Citymonstret
*/
public class Buy extends SubCommand {
-
public Buy() {
super(Command.BUY, "Buy the plot you are standing on", "b", CommandCategory.CLAIMING, true);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
- if (!PlotMain.useEconomy) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
+ if (PlotSquared.economy == null) {
return sendMessage(plr, C.ECON_DISABLED);
}
- World world = plr.getWorld();
- if (!PlotMain.isPlotWorld(world)) {
+ Location loc = plr.getLocation();
+ final String world = loc.getWorld();
+ if (!PlotSquared.isPlotWorld(world)) {
return sendMessage(plr, C.NOT_IN_PLOT_WORLD);
}
Plot plot;
if (args.length > 0) {
try {
- String[] split = args[0].split(";");
- PlotId id = new PlotId(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
- plot = PlotHelper.getPlot(world, id);
- }
- catch (Exception e) {
+ final String[] split = args[0].split(";");
+ final PlotId id = new PlotId(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
+ plot = MainUtil.getPlot(world, id);
+ } catch (final Exception e) {
return sendMessage(plr, C.NOT_VALID_PLOT_ID);
}
- }
- else {
- plot = PlayerFunctions.getCurrentPlot(plr);
+ } else {
+ plot = MainUtil.getPlot(loc);
}
if (plot == null) {
return sendMessage(plr, C.NOT_IN_PLOT);
}
- if (PlayerFunctions.getPlayerPlotCount(world, plr) >= PlayerFunctions.getAllowedPlots(plr)) {
+ int currentPlots = MainUtil.getPlayerPlotCount(world, plr);
+ if (currentPlots >= MainUtil.getAllowedPlots(plr, currentPlots)) {
return sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS);
}
if (!plot.hasOwner()) {
return sendMessage(plr, C.PLOT_UNOWNED);
}
- if (plot.owner.equals(UUIDHandler.getUUID(plr))) {
+ if (plot.owner.equals(plr.getUUID())) {
return sendMessage(plr, C.CANNOT_BUY_OWN);
}
- Flag flag = FlagManager.getPlotFlag(plot, "price");
+ final Flag flag = FlagManager.getPlotFlag(plot, "price");
if (flag == null) {
return sendMessage(plr, C.NOT_FOR_SALE);
}
double initPrice = (double) flag.getValue();
double price = initPrice;
- PlotId id = plot.id;
- PlotId id2 = PlayerFunctions.getTopPlot(world, plot).id;
- int size = PlayerFunctions.getPlotSelectionIds(id, id2).size();
- PlotWorld plotworld = PlotMain.getWorldSettings(world);
+ final PlotId id = plot.id;
+ final PlotId id2 = MainUtil.getTopPlot(plot).id;
+ final int size = MainUtil.getPlotSelectionIds(id, id2).size();
+ final PlotWorld plotworld = PlotSquared.getPlotWorld(world);
if (plotworld.USE_ECONOMY) {
price += plotworld.PLOT_PRICE * size;
initPrice += plotworld.SELL_PRICE * size;
}
- if (price > 0d) {
- final Economy economy = PlotMain.economy;
- if (economy.getBalance(plr) < price) {
+ if (PlotSquared.economy != null && price > 0d) {
+ if (EconHandler.getBalance(plr) < price) {
return sendMessage(plr, C.CANNOT_AFFORD_PLOT, "" + price);
}
- economy.withdrawPlayer(plr, price);
+ EconHandler.withdrawPlayer(plr, price);
sendMessage(plr, C.REMOVED_BALANCE, price + "");
- economy.depositPlayer(UUIDHandler.uuidWrapper.getOfflinePlayer(plot.owner), initPrice);
- Player owner = UUIDHandler.uuidWrapper.getPlayer(plot.owner);
+ EconHandler.depositPlayer(UUIDHandler.uuidWrapper.getOfflinePlayer(plot.owner), initPrice);
+ PlotPlayer owner = UUIDHandler.getPlayer(plot.owner);
if (owner != null) {
sendMessage(plr, C.PLOT_SOLD, plot.id + "", plr.getName(), initPrice + "");
}
FlagManager.removePlotFlag(plot, "price");
}
- plot.owner = UUIDHandler.getUUID(plr);
+ plot.owner = plr.getUUID();
DBFunc.setOwner(plot, plot.owner);
- PlayerFunctions.sendMessage(plr, C.CLAIMED);
+ MainUtil.sendMessage(plr, C.CLAIMED);
return true;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Claim.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Claim.java
index 15e1367ca..b22686649 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Claim.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Claim.java
@@ -18,57 +18,54 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import net.milkbowl.vault.economy.Economy;
-import org.bukkit.Bukkit;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.events.PlayerClaimPlotEvent;
-import com.intellectualcrafters.plot.generator.ClassicPlotWorld;
-import com.intellectualcrafters.plot.generator.HybridPlotWorld;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
+import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
+import com.intellectualcrafters.plot.util.EconHandler;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
import com.intellectualcrafters.plot.util.SchematicHandler;
/**
* @author Citymonstret
*/
public class Claim extends SubCommand {
-
public Claim() {
super(Command.CLAIM, "Claim the current plot you're standing on.", "claim", CommandCategory.CLAIMING, true);
}
-
- public static boolean claimPlot(final Player player, final Plot plot, final boolean teleport, final boolean auto) {
+
+ public static boolean claimPlot(final PlotPlayer player, final Plot plot, final boolean teleport, final boolean auto) {
return claimPlot(player, plot, teleport, "", auto);
}
-
- public static boolean claimPlot(final Player player, final Plot plot, final boolean teleport, final String schematic, final boolean auto) {
- if (plot.hasOwner() || plot.settings.isMerged()) {
- return false;
- }
- final PlayerClaimPlotEvent event = new PlayerClaimPlotEvent(player, plot, auto);
- Bukkit.getPluginManager().callEvent(event);
- if (!event.isCancelled()) {
- PlotHelper.createPlot(player, plot);
- PlotHelper.setSign(player, plot);
- PlayerFunctions.sendMessage(player, C.CLAIMED);
+
+ public static boolean claimPlot(final PlotPlayer player, final Plot plot, final boolean teleport, final String schematic, final boolean auto) {
+ if (plot.hasOwner() || plot.settings.isMerged()) {
+ return false;
+ }
+ // FIXME claim plot event
+// final PlayerClaimPlotEvent event = new PlayerClaimPlotEvent(player, plot, auto);
+// Bukkit.getPluginManager().callEvent(event);
+// boolean result = event.isCancelled();
+ boolean result = true;
+
+ if (!result) {
+ MainUtil.createPlot(player.getUUID(), plot);
+ MainUtil.setSign(player.getName(), plot);
+ MainUtil.sendMessage(player, C.CLAIMED);
+ Location loc = player.getLocation();
if (teleport) {
- PlotMain.teleportPlayer(player, player.getLocation(), plot);
+ MainUtil.teleportPlayer(player, loc, plot);
}
- World world = plot.getWorld();
- final PlotWorld plotworld = PlotMain.getWorldSettings(world);
-
- final Plot plot2 = PlotMain.getPlots(player.getWorld()).get(plot.id);
-
+ final String world = plot.world;
+ final PlotWorld plotworld = PlotSquared.getPlotWorld(world);
+ final Plot plot2 = PlotSquared.getPlots(world).get(plot.id);
if (plotworld.SCHEMATIC_ON_CLAIM) {
SchematicHandler.Schematic sch;
if (schematic.equals("")) {
@@ -81,37 +78,39 @@ public class Claim extends SubCommand {
}
SchematicHandler.paste(player.getLocation(), sch, plot2, 0, 0);
}
- PlotMain.getPlotManager(plot.world).claimPlot(world, plotworld, plot);
- PlotHelper.update(player.getLocation());
+ PlotSquared.getPlotManager(world).claimPlot(plotworld, plot);
+ MainUtil.update(loc);
}
- return event.isCancelled();
+ return !result;
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
String schematic = "";
if (args.length >= 1) {
schematic = args[0];
}
- if (!PlayerFunctions.isInPlot(plr)) {
+ Location loc = plr.getLocation();
+ Plot plot = MainUtil.getPlot(loc);
+ if (plot == null) {
return sendMessage(plr, C.NOT_IN_PLOT);
}
- if (PlayerFunctions.getPlayerPlotCount(plr.getWorld(), plr) >= PlayerFunctions.getAllowedPlots(plr)) {
+ int currentPlots = MainUtil.getPlayerPlotCount(loc.getWorld(), plr);
+ if (currentPlots >= MainUtil.getAllowedPlots(plr, currentPlots)) {
return sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS);
}
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
if (plot.hasOwner()) {
return sendMessage(plr, C.PLOT_IS_CLAIMED);
}
- final PlotWorld world = PlotMain.getWorldSettings(plot.getWorld());
- if (PlotMain.useEconomy && world.USE_ECONOMY) {
+ final PlotWorld world = PlotSquared.getPlotWorld(plot.world);
+ if (PlotSquared.economy != null && world.USE_ECONOMY) {
final double cost = world.PLOT_PRICE;
if (cost > 0d) {
- final Economy economy = PlotMain.economy;
- if (economy.getBalance(plr) < cost) {
+ final Economy economy = PlotSquared.economy;
+ if (EconHandler.getBalance(plr) < cost) {
return sendMessage(plr, C.CANNOT_AFFORD_PLOT, "" + cost);
}
- economy.withdrawPlayer(plr, cost);
+ EconHandler.withdrawPlayer(plr, cost);
sendMessage(plr, C.REMOVED_BALANCE, cost + "");
}
}
@@ -120,12 +119,11 @@ public class Claim extends SubCommand {
if (!world.SCHEMATICS.contains(schematic.toLowerCase())) {
return sendMessage(plr, C.SCHEMATIC_INVALID, "non-existent: " + schematic);
}
- if (!PlotMain.hasPermission(plr, "plots.claim." + schematic) && !plr.hasPermission("plots.admin.command.schematic")) {
+ if (!Permissions.hasPermission(plr, "plots.claim." + schematic) && !plr.hasPermission("plots.admin.command.schematic")) {
return sendMessage(plr, C.NO_SCHEMATIC_PERMISSION, schematic);
}
}
}
-
return !claimPlot(plr, plot, false, schematic, false) || sendMessage(plr, C.PLOT_NOT_CLAIMED);
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Clear.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Clear.java
index e52570c5a..2afd14432 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Clear.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Clear.java
@@ -18,71 +18,74 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
public class Clear extends SubCommand {
-
public Clear() {
super(Command.CLEAR, "Clear a plot", "clear", CommandCategory.ACTIONS, false);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (plr == null) {
// Is console
if (args.length < 2) {
- PlotMain.sendConsoleSenderMessage("You need to specify two arguments: ID (0;0) & World (world)");
+ PlotSquared.log("You need to specify two arguments: ID (0;0) & World (world)");
} else {
final PlotId id = PlotId.fromString(args[0]);
final String world = args[1];
if (id == null) {
- PlotMain.sendConsoleSenderMessage("Invalid Plot ID: " + args[0]);
+ PlotSquared.log("Invalid Plot ID: " + args[0]);
} else {
- if (!PlotMain.isPlotWorld(world)) {
- PlotMain.sendConsoleSenderMessage("Invalid plot world: " + world);
+ if (!PlotSquared.isPlotWorld(world)) {
+ PlotSquared.log("Invalid plot world: " + world);
} else {
- final Plot plot = PlotHelper.getPlot(Bukkit.getWorld(world), id);
+ final Plot plot = MainUtil.getPlot(world, id);
if (plot == null) {
- PlotMain.sendConsoleSenderMessage("Could not find plot " + args[0] + " in world " + world);
+ PlotSquared.log("Could not find plot " + args[0] + " in world " + world);
} else {
- plot.clear(null, false);
- PlotMain.sendConsoleSenderMessage("Plot " + plot.getId().toString() + " cleared.");
+ MainUtil.clear(world, plot, true, null);
+ PlotSquared.log("Plot " + plot.getId().toString() + " cleared.");
}
}
}
}
return true;
}
-
- if (!PlayerFunctions.isInPlot(plr)) {
+ Location loc = plr.getLocation();
+ Plot plot = MainUtil.getPlot(loc);
+ if (plot == null) {
return sendMessage(plr, C.NOT_IN_PLOT);
}
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
- if (!PlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(PlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
+ if (!MainUtil.getTopPlot(plot).equals(MainUtil.getBottomPlot( plot))) {
return sendMessage(plr, C.UNLINK_REQUIRED);
}
- if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !PlotMain.hasPermission(plr, "plots.admin.command.clear")) {
+ if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !Permissions.hasPermission(plr, "plots.admin.command.clear")) {
return sendMessage(plr, C.NO_PLOT_PERMS);
}
assert plot != null;
- plot.clear(plr, false);
-
+ final long start = System.currentTimeMillis();
+ boolean result = MainUtil.clearAsPlayer(plot, false, new Runnable() {
+ @Override
+ public void run() {
+ MainUtil.sendMessage(plr, C.CLEARING_DONE, "" + (System.currentTimeMillis() - start));
+ }
+ });
+ if (!result) {
+ MainUtil.sendMessage(plr, C.WAIT_FOR_TIMER);
+ }
// sign
-
// wall
-
- return true;
+ return result;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Clipboard.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Clipboard.java
deleted file mode 100644
index 90245da2f..000000000
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Clipboard.java
+++ /dev/null
@@ -1,58 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// PlotSquared - A plot manager and world generator for the Bukkit API /
-// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
-// /
-// This program is free software; you can redistribute it and/or modify /
-// it under the terms of the GNU General Public License as published by /
-// the Free Software Foundation; either version 3 of the License, or /
-// (at your option) any later version. /
-// /
-// This program is distributed in the hope that it will be useful, /
-// but WITHOUT ANY WARRANTY; without even the implied warranty of /
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
-// GNU General Public License for more details. /
-// /
-// You should have received a copy of the GNU General Public License /
-// along with this program; if not, write to the Free Software Foundation, /
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
-// /
-// You can contact us via: support@intellectualsites.com /
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-package com.intellectualcrafters.plot.commands;
-
-import static com.intellectualcrafters.plot.object.PlotSelection.currentSelection;
-
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.object.PlotId;
-import com.intellectualcrafters.plot.object.PlotSelection;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-
-public class Clipboard extends SubCommand {
-
- public Clipboard() {
- super(Command.CLIPBOARD, "View information about your current copy", "clipboard", CommandCategory.INFO, true);
- }
-
- @Override
- public boolean execute(final Player plr, final String... args) {
- if (!currentSelection.containsKey(plr.getName())) {
- return sendMessage(plr, C.NO_CLIPBOARD);
- }
- final PlotSelection selection = currentSelection.get(plr.getName());
-
- final PlotId plotId = selection.getPlot().getId();
- final int width = selection.getWidth();
- final int total = selection.getBlocks().length;
-
- String message = C.CLIPBOARD_INFO.s();
-
- message = message.replace("%id", plotId.toString()).replace("%width", width + "").replace("%total", total + "");
-
- PlayerFunctions.sendMessage(plr, message);
-
- return true;
- }
-}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Cluster.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Cluster.java
index dfc7ce8f5..a52b5a10e 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Cluster.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Cluster.java
@@ -18,117 +18,108 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.UUID;
-import org.bukkit.Location;
-import org.bukkit.entity.Player;
-import org.bukkit.generator.BlockPopulator;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.generator.AugmentedPopulator;
import com.intellectualcrafters.plot.object.BlockLoc;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotCluster;
import com.intellectualcrafters.plot.object.PlotClusterId;
import com.intellectualcrafters.plot.object.PlotId;
+import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.util.ClusterManager;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
public class Cluster extends SubCommand {
-
public Cluster() {
super(Command.CLUSTER, "Manage a plot cluster", "cluster", CommandCategory.ACTIONS, true);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
// list, create, delete, resize, invite, kick, leave, helpers, tp, sethome
-
if (args.length == 0) {
// return arguments
- PlayerFunctions.sendMessage(plr, C.CLUSTER_AVAILABLE_ARGS);
+ MainUtil.sendMessage(plr, C.CLUSTER_AVAILABLE_ARGS);
return false;
}
- String sub = args[0].toLowerCase();
+ final String sub = args[0].toLowerCase();
switch (sub) {
case "l":
case "list": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.list")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.list");
+ if (!Permissions.hasPermission(plr, "plots.cluster.list")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.list");
return false;
}
if (args.length != 1) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster list");
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster list");
return false;
}
- HashSet clusters = ClusterManager.getClusters(plr.getWorld());
- PlayerFunctions.sendMessage(plr, C.CLUSTER_LIST_HEADING, clusters.size() + "");
- for (PlotCluster cluster : clusters) {
+ final HashSet clusters = ClusterManager.getClusters(plr.getLocation().getWorld());
+ MainUtil.sendMessage(plr, C.CLUSTER_LIST_HEADING, clusters.size() + "");
+ for (final PlotCluster cluster : clusters) {
// Ignore unmanaged clusters
- String name = "'" + cluster.getName() + "' : " + cluster.toString();
+ final String name = "'" + cluster.getName() + "' : " + cluster.toString();
if (UUIDHandler.getUUID(plr).equals(cluster.owner)) {
- PlayerFunctions.sendMessage(plr, C.CLUSTER_LIST_ELEMENT, "&a" + name);
- }
- else if (cluster.helpers.contains(UUIDHandler.getUUID(plr))) {
- PlayerFunctions.sendMessage(plr, C.CLUSTER_LIST_ELEMENT, "&3" + name);
- }
- else if (cluster.invited.contains(UUIDHandler.getUUID(plr))) {
- PlayerFunctions.sendMessage(plr, C.CLUSTER_LIST_ELEMENT, "&9" + name);
- }
- else {
- PlayerFunctions.sendMessage(plr, C.CLUSTER_LIST_ELEMENT, cluster.toString());
+ MainUtil.sendMessage(plr, C.CLUSTER_LIST_ELEMENT, "&a" + name);
+ } else if (cluster.helpers.contains(UUIDHandler.getUUID(plr))) {
+ MainUtil.sendMessage(plr, C.CLUSTER_LIST_ELEMENT, "&3" + name);
+ } else if (cluster.invited.contains(UUIDHandler.getUUID(plr))) {
+ MainUtil.sendMessage(plr, C.CLUSTER_LIST_ELEMENT, "&9" + name);
+ } else {
+ MainUtil.sendMessage(plr, C.CLUSTER_LIST_ELEMENT, cluster.toString());
}
}
return true;
}
case "c":
case "create": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.create")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.create");
+ if (!Permissions.hasPermission(plr, "plots.cluster.create")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.create");
return false;
}
if (args.length != 4) {
- PlotId id = ClusterManager.estimatePlotId(plr.getLocation());
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster create ");
- PlayerFunctions.sendMessage(plr, C.CLUSTER_CURRENT_PLOTID, "" + id);
+ final PlotId id = ClusterManager.estimatePlotId(plr.getLocation());
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster create ");
+ MainUtil.sendMessage(plr, C.CLUSTER_CURRENT_PLOTID, "" + id);
return false;
}
// check pos1 / pos2
- PlotId pos1 = PlotHelper.parseId(args[2]);
- PlotId pos2 = PlotHelper.parseId(args[3]);
- if (pos1 == null || pos2 == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_VALID_PLOT_ID);
+ final PlotId pos1 = MainUtil.parseId(args[2]);
+ final PlotId pos2 = MainUtil.parseId(args[3]);
+ if ((pos1 == null) || (pos2 == null)) {
+ MainUtil.sendMessage(plr, C.NOT_VALID_PLOT_ID);
return false;
}
// check if name is taken
- String name = args[1];
- for (PlotCluster cluster : ClusterManager.getClusters(plr.getWorld())) {
+ final String name = args[1];
+ for (final PlotCluster cluster : ClusterManager.getClusters(plr.getLocation().getWorld())) {
if (name.equals(cluster.getName())) {
- PlayerFunctions.sendMessage(plr, C.ALIAS_IS_TAKEN);
- return false;
+ MainUtil.sendMessage(plr, C.ALIAS_IS_TAKEN);
+ return false;
}
}
//check if overlap
- PlotClusterId id = new PlotClusterId(pos1, pos2);
- HashSet intersects = ClusterManager.getIntersects(plr.getWorld().getName(), id);
- if (intersects.size() > 0 || pos2.x < pos1.x || pos2.y < pos1.y) {
- PlayerFunctions.sendMessage(plr, C.CLUSTER_INTERSECTION, intersects.size() + "");
- return false;
+ final PlotClusterId id = new PlotClusterId(pos1, pos2);
+ final HashSet intersects = ClusterManager.getIntersects(plr.getLocation().getWorld(), id);
+ if ((intersects.size() > 0) || (pos2.x < pos1.x) || (pos2.y < pos1.y)) {
+ MainUtil.sendMessage(plr, C.CLUSTER_INTERSECTION, intersects.size() + "");
+ return false;
}
// create cluster
- String world = plr.getWorld().getName();
- PlotCluster cluster = new PlotCluster(world, pos1, pos2, UUIDHandler.getUUID(plr));
+ final String world = plr.getLocation().getWorld();
+ final PlotCluster cluster = new PlotCluster(world, pos1, pos2, UUIDHandler.getUUID(plr));
cluster.settings.setAlias(name);
DBFunc.createCluster(world, cluster);
if (!ClusterManager.clusters.containsKey(world)) {
@@ -136,234 +127,225 @@ public class Cluster extends SubCommand {
}
ClusterManager.clusters.get(world).add(cluster);
// Add any existing plots to the current cluster
- for (Plot plot : PlotMain.getPlots(plr.getWorld()).values()) {
- PlotCluster current = ClusterManager.getCluster(plot);
+ for (final Plot plot : PlotSquared.getPlots(plr.getLocation().getWorld()).values()) {
+ final PlotCluster current = ClusterManager.getCluster(plot);
if (cluster.equals(current) && !cluster.hasRights(plot.owner)) {
cluster.invited.add(plot.owner);
DBFunc.setInvited(world, cluster, plot.owner);
}
}
- if (!PlotMain.isPlotWorld(world)) {
- PlotMain.config.createSection("worlds." + world);
- PlotMain.loadWorld(plr.getWorld());
+ if (!PlotSquared.isPlotWorld(world)) {
+ PlotSquared.config.createSection("worlds." + world);
+ PlotSquared.loadWorld(world, null);
}
- PlayerFunctions.sendMessage(plr, C.CLUSTER_ADDED);
+ MainUtil.sendMessage(plr, C.CLUSTER_ADDED);
return true;
}
case "disband":
case "del":
case "delete": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.delete")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.delete");
+ if (!Permissions.hasPermission(plr, "plots.cluster.delete")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.delete");
return false;
}
- if (args.length != 1 && args.length != 2) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster delete [name]");
+ if ((args.length != 1) && (args.length != 2)) {
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster delete [name]");
return false;
}
PlotCluster cluster;
if (args.length == 2) {
- cluster = ClusterManager.getCluster(plr.getWorld().getName(), args[1]);
+ cluster = ClusterManager.getCluster(plr.getLocation().getWorld(), args[1]);
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.INVALID_CLUSTER, args[1]);
+ MainUtil.sendMessage(plr, C.INVALID_CLUSTER, args[1]);
return false;
}
- }
- else {
+ } else {
cluster = ClusterManager.getCluster(plr.getLocation());
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_CLUSTER);
+ MainUtil.sendMessage(plr, C.NOT_IN_CLUSTER);
return false;
}
}
if (!cluster.owner.equals(UUIDHandler.getUUID(plr))) {
- if (!PlotMain.hasPermission(plr, "plots.cluster.delete.other")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.delete.other");
+ if (!Permissions.hasPermission(plr, "plots.cluster.delete.other")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.delete.other");
return false;
}
}
- PlotWorld plotworld = PlotMain.getWorldSettings(plr.getWorld());
+ final PlotWorld plotworld = PlotSquared.getPlotWorld(plr.getLocation().getWorld());
if (plotworld.TYPE == 2) {
- ArrayList toRemove = new ArrayList<>();
- for (Plot plot : PlotMain.getPlots(plr.getWorld()).values()) {
- PlotCluster other = ClusterManager.getCluster(plot);
+ final ArrayList toRemove = new ArrayList<>();
+ for (final Plot plot : PlotSquared.getPlots(plr.getLocation().getWorld()).values()) {
+ final PlotCluster other = ClusterManager.getCluster(plot);
if (cluster.equals(other)) {
toRemove.add(plot);
}
}
- for (Plot plot : toRemove) {
+ for (final Plot plot : toRemove) {
DBFunc.delete(plot.world, plot);
}
}
DBFunc.delete(cluster);
if (plotworld.TYPE == 2) {
- for (Iterator iterator = plr.getWorld().getPopulators().iterator(); iterator.hasNext();) {
- BlockPopulator populator = iterator.next();
- if (populator instanceof AugmentedPopulator) {
- if (((AugmentedPopulator) populator).cluster.equals(cluster)) {
- iterator.remove();
- }
- }
- }
+ AugmentedPopulator.removePopulator(plr.getLocation().getWorld(), cluster);
}
- for (String set : ClusterManager.clusters.keySet()) {
+ for (final String set : ClusterManager.clusters.keySet()) {
}
ClusterManager.last = null;
ClusterManager.clusters.get(cluster.world).remove(cluster);
ClusterManager.regenCluster(cluster);
- PlayerFunctions.sendMessage(plr, C.CLUSTER_DELETED);
+ MainUtil.sendMessage(plr, C.CLUSTER_DELETED);
return true;
}
case "res":
case "resize": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.resize")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.resize");
+ if (!Permissions.hasPermission(plr, "plots.cluster.resize")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.resize");
return false;
}
if (args.length != 3) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster resize ");
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster resize ");
return false;
}
// check pos1 / pos2
- PlotId pos1 = PlotHelper.parseId(args[1]);
- PlotId pos2 = PlotHelper.parseId(args[2]);
- if (pos1 == null || pos2 == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_VALID_PLOT_ID);
+ final PlotId pos1 = MainUtil.parseId(args[1]);
+ final PlotId pos2 = MainUtil.parseId(args[2]);
+ if ((pos1 == null) || (pos2 == null)) {
+ MainUtil.sendMessage(plr, C.NOT_VALID_PLOT_ID);
return false;
}
// check if in cluster
- PlotCluster cluster = ClusterManager.getCluster(plr.getLocation());
+ final PlotCluster cluster = ClusterManager.getCluster(plr.getLocation());
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_CLUSTER);
+ MainUtil.sendMessage(plr, C.NOT_IN_CLUSTER);
return false;
}
if (!cluster.hasHelperRights(UUIDHandler.getUUID(plr))) {
- if (!PlotMain.hasPermission(plr, "plots.cluster.resize.other")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.resize.other");
+ if (!Permissions.hasPermission(plr, "plots.cluster.resize.other")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.resize.other");
return false;
}
}
//check if overlap
- PlotClusterId id = new PlotClusterId(pos1, pos2);
- HashSet intersects = ClusterManager.getIntersects(plr.getWorld().getName(), id);
+ final PlotClusterId id = new PlotClusterId(pos1, pos2);
+ final HashSet intersects = ClusterManager.getIntersects(plr.getLocation().getWorld(), id);
if (intersects.size() > 1) {
- PlayerFunctions.sendMessage(plr, C.CLUSTER_INTERSECTION, (intersects.size() - 1) + "");
- return false;
+ MainUtil.sendMessage(plr, C.CLUSTER_INTERSECTION, (intersects.size() - 1) + "");
+ return false;
}
// resize cluster
DBFunc.resizeCluster(cluster, id);
- PlayerFunctions.sendMessage(plr, C.CLUSTER_RESIZED);
+ MainUtil.sendMessage(plr, C.CLUSTER_RESIZED);
return true;
}
case "reg":
case "regenerate":
case "regen": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.delete")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.regen");
+ if (!Permissions.hasPermission(plr, "plots.cluster.delete")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.regen");
return false;
}
- if (args.length != 1 && args.length != 2) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster regen [name]");
+ if ((args.length != 1) && (args.length != 2)) {
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster regen [name]");
return false;
}
PlotCluster cluster;
if (args.length == 2) {
- cluster = ClusterManager.getCluster(plr.getWorld().getName(), args[1]);
+ cluster = ClusterManager.getCluster(plr.getLocation().getWorld(), args[1]);
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.INVALID_CLUSTER, args[1]);
+ MainUtil.sendMessage(plr, C.INVALID_CLUSTER, args[1]);
return false;
}
- }
- else {
+ } else {
cluster = ClusterManager.getCluster(plr.getLocation());
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_CLUSTER);
+ MainUtil.sendMessage(plr, C.NOT_IN_CLUSTER);
return false;
}
}
if (!cluster.owner.equals(UUIDHandler.getUUID(plr))) {
- if (!PlotMain.hasPermission(plr, "plots.cluster.regen.other")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.regen.other");
+ if (!Permissions.hasPermission(plr, "plots.cluster.regen.other")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.regen.other");
return false;
}
}
ClusterManager.regenCluster(cluster);
- PlayerFunctions.sendMessage(plr, C.CLUSTER_REGENERATED);
+ MainUtil.sendMessage(plr, C.CLUSTER_REGENERATED);
return true;
}
- case "add":
- case "inv":
+ case "add":
+ case "inv":
case "invite": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.invite")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.invite");
+ if (!Permissions.hasPermission(plr, "plots.cluster.invite")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.invite");
return false;
}
if (args.length != 2) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster invite ");
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster invite ");
return false;
}
// check if in cluster
- PlotCluster cluster = ClusterManager.getCluster(plr.getLocation());
+ final PlotCluster cluster = ClusterManager.getCluster(plr.getLocation());
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_CLUSTER);
+ MainUtil.sendMessage(plr, C.NOT_IN_CLUSTER);
return false;
}
if (!cluster.hasHelperRights(UUIDHandler.getUUID(plr))) {
- if (!PlotMain.hasPermission(plr, "plots.cluster.invite.other")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.invite.other");
+ if (!Permissions.hasPermission(plr, "plots.cluster.invite.other")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.invite.other");
return false;
}
}
// check uuid
- UUID uuid = UUIDHandler.getUUID(args[1]);
+ final UUID uuid = UUIDHandler.getUUID(args[1]);
if (uuid == null) {
- PlayerFunctions.sendMessage(plr, C.INVALID_PLAYER, args[1]);
+ MainUtil.sendMessage(plr, C.INVALID_PLAYER, args[1]);
return false;
}
if (!cluster.hasRights(uuid)) {
// add the user if not added
cluster.invited.add(uuid);
- String world = plr.getWorld().getName();
+ final String world = plr.getLocation().getWorld();
DBFunc.setInvited(world, cluster, uuid);
- Player player = UUIDHandler.uuidWrapper.getPlayer(uuid);
+ PlotPlayer player = UUIDHandler.getPlayer(uuid);
if (player != null) {
- PlayerFunctions.sendMessage(player, C.CLUSTER_INVITED, cluster.getName());
+ MainUtil.sendMessage(player, C.CLUSTER_INVITED, cluster.getName());
}
}
- PlayerFunctions.sendMessage(plr, C.CLUSTER_ADDED_USER);
+ MainUtil.sendMessage(plr, C.CLUSTER_ADDED_USER);
return true;
}
case "k":
case "remove":
case "kick": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.kick")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.kick");
+ if (!Permissions.hasPermission(plr, "plots.cluster.kick")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.kick");
return false;
}
if (args.length != 2) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster kick ");
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster kick ");
return false;
}
- PlotCluster cluster = ClusterManager.getCluster(plr.getLocation());
+ final PlotCluster cluster = ClusterManager.getCluster(plr.getLocation());
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_CLUSTER);
+ MainUtil.sendMessage(plr, C.NOT_IN_CLUSTER);
return false;
}
if (!cluster.hasHelperRights(UUIDHandler.getUUID(plr))) {
- if (!PlotMain.hasPermission(plr, "plots.cluster.kick.other")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.kick.other");
+ if (!Permissions.hasPermission(plr, "plots.cluster.kick.other")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.kick.other");
return false;
}
}
// check uuid
- UUID uuid = UUIDHandler.getUUID(args[1]);
+ final UUID uuid = UUIDHandler.getUUID(args[1]);
if (uuid == null) {
- PlayerFunctions.sendMessage(plr, C.INVALID_PLAYER, args[1]);
+ MainUtil.sendMessage(plr, C.INVALID_PLAYER, args[1]);
return false;
}
// Can't kick if the player is yourself, the owner, or not added to the cluster
if (uuid.equals(UUIDHandler.getUUID(plr)) || uuid.equals(cluster.owner) || !cluster.hasRights(uuid)) {
- PlayerFunctions.sendMessage(plr, C.CANNOT_KICK_PLAYER, cluster.getName());
+ MainUtil.sendMessage(plr, C.CANNOT_KICK_PLAYER, cluster.getName());
return false;
}
if (cluster.helpers.contains(uuid)) {
@@ -372,52 +354,51 @@ public class Cluster extends SubCommand {
}
cluster.invited.remove(uuid);
DBFunc.removeInvited(cluster, uuid);
- Player player = UUIDHandler.uuidWrapper.getPlayer(uuid);
+ PlotPlayer player = UUIDHandler.getPlayer(uuid);
if (player != null) {
- PlayerFunctions.sendMessage(player, C.CLUSTER_REMOVED, cluster.getName());
+ MainUtil.sendMessage(player, C.CLUSTER_REMOVED, cluster.getName());
}
- for (Plot plot : PlotMain.getPlots(plr.getWorld(), uuid)) {
- PlotCluster current = ClusterManager.getCluster(plot);
- if (current != null && current.equals(cluster)) {
- String world = plr.getWorld().getName();
+ for (final Plot plot : PlotSquared.getPlots(plr.getLocation().getWorld(), uuid)) {
+ final PlotCluster current = ClusterManager.getCluster(plot);
+ if ((current != null) && current.equals(cluster)) {
+ final String world = plr.getLocation().getWorld();
DBFunc.delete(world, plot);
}
}
- PlayerFunctions.sendMessage(plr, C.CLUSTER_KICKED_USER);
+ MainUtil.sendMessage(plr, C.CLUSTER_KICKED_USER);
return true;
}
case "quit":
case "leave": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.leave")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.leave");
+ if (!Permissions.hasPermission(plr, "plots.cluster.leave")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.leave");
return false;
}
- if (args.length != 1 && args.length != 2) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster leave [name]");
+ if ((args.length != 1) && (args.length != 2)) {
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster leave [name]");
return false;
}
PlotCluster cluster;
if (args.length == 2) {
- cluster = ClusterManager.getCluster(plr.getWorld().getName(), args[1]);
+ cluster = ClusterManager.getCluster(plr.getLocation().getWorld(), args[1]);
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.INVALID_CLUSTER, args[1]);
+ MainUtil.sendMessage(plr, C.INVALID_CLUSTER, args[1]);
return false;
}
- }
- else {
+ } else {
cluster = ClusterManager.getCluster(plr.getLocation());
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_CLUSTER);
+ MainUtil.sendMessage(plr, C.NOT_IN_CLUSTER);
return false;
}
}
- UUID uuid = UUIDHandler.getUUID(plr);
+ final UUID uuid = UUIDHandler.getUUID(plr);
if (!cluster.hasRights(uuid)) {
- PlayerFunctions.sendMessage(plr, C.CLUSTER_NOT_ADDED);
+ MainUtil.sendMessage(plr, C.CLUSTER_NOT_ADDED);
return false;
}
if (uuid.equals(cluster.owner)) {
- PlayerFunctions.sendMessage(plr, C.CLUSTER_CANNOT_LEAVE);
+ MainUtil.sendMessage(plr, C.CLUSTER_CANNOT_LEAVE);
return false;
}
if (cluster.helpers.contains(uuid)) {
@@ -426,11 +407,11 @@ public class Cluster extends SubCommand {
}
cluster.invited.remove(uuid);
DBFunc.removeInvited(cluster, uuid);
- PlayerFunctions.sendMessage(plr, C.CLUSTER_REMOVED, cluster.getName());
- for (Plot plot : PlotMain.getPlots(plr.getWorld(), uuid)) {
- PlotCluster current = ClusterManager.getCluster(plot);
- if (current != null && current.equals(cluster)) {
- String world = plr.getWorld().getName();
+ MainUtil.sendMessage(plr, C.CLUSTER_REMOVED, cluster.getName());
+ for (final Plot plot : PlotSquared.getPlots(plr.getLocation().getWorld(), uuid)) {
+ final PlotCluster current = ClusterManager.getCluster(plot);
+ if ((current != null) && current.equals(cluster)) {
+ final String world = plr.getLocation().getWorld();
DBFunc.delete(world, plot);
}
}
@@ -439,139 +420,135 @@ public class Cluster extends SubCommand {
case "admin":
case "helper":
case "helpers": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.helpers")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.helpers");
+ if (!Permissions.hasPermission(plr, "plots.cluster.helpers")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.helpers");
return false;
}
if (args.length != 3) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster helpers ");
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster helpers ");
return false;
}
- PlotCluster cluster = ClusterManager.getCluster(plr.getLocation());
+ final PlotCluster cluster = ClusterManager.getCluster(plr.getLocation());
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_CLUSTER);
+ MainUtil.sendMessage(plr, C.NOT_IN_CLUSTER);
return false;
}
- UUID uuid = UUIDHandler.getUUID(args[2]);
+ final UUID uuid = UUIDHandler.getUUID(args[2]);
if (uuid == null) {
- PlayerFunctions.sendMessage(plr, C.INVALID_PLAYER, args[1]);
+ MainUtil.sendMessage(plr, C.INVALID_PLAYER, args[1]);
return false;
}
if (args[1].toLowerCase().equals("add")) {
cluster.helpers.add(uuid);
- return PlayerFunctions.sendMessage(plr, C.CLUSTER_ADDED_HELPER);
+ return MainUtil.sendMessage(plr, C.CLUSTER_ADDED_HELPER);
}
if (args[1].toLowerCase().equals("remove")) {
cluster.helpers.remove(uuid);
- return PlayerFunctions.sendMessage(plr, C.CLUSTER_REMOVED_HELPER);
+ return MainUtil.sendMessage(plr, C.CLUSTER_REMOVED_HELPER);
}
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster helpers ");
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster helpers ");
return false;
}
case "spawn":
case "home":
case "tp": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.tp")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.tp");
+ if (!Permissions.hasPermission(plr, "plots.cluster.tp")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.tp");
return false;
}
if (args.length != 2) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster tp ");
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster tp ");
return false;
}
- PlotCluster cluster = ClusterManager.getCluster(plr.getWorld().getName(), args[1]);
+ final PlotCluster cluster = ClusterManager.getCluster(plr.getLocation().getWorld(), args[1]);
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.INVALID_CLUSTER, args[1]);
+ MainUtil.sendMessage(plr, C.INVALID_CLUSTER, args[1]);
return false;
}
- UUID uuid = UUIDHandler.getUUID(plr);
+ final UUID uuid = UUIDHandler.getUUID(plr);
if (!cluster.hasRights(uuid)) {
- if (!PlotMain.hasPermission(plr, "plots.cluster.tp.other")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.tp.other");
+ if (!Permissions.hasPermission(plr, "plots.cluster.tp.other")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.tp.other");
return false;
}
}
plr.teleport(ClusterManager.getHome(cluster));
- return PlayerFunctions.sendMessage(plr, C.CLUSTER_TELEPORTING);
+ return MainUtil.sendMessage(plr, C.CLUSTER_TELEPORTING);
}
case "i":
case "info":
case "show":
case "information": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.info")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.info");
+ if (!Permissions.hasPermission(plr, "plots.cluster.info")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.info");
return false;
}
- if (args.length != 1 && args.length != 2) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster info [name]");
+ if ((args.length != 1) && (args.length != 2)) {
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster info [name]");
return false;
}
PlotCluster cluster;
if (args.length == 2) {
- cluster = ClusterManager.getCluster(plr.getWorld().getName(), args[1]);
+ cluster = ClusterManager.getCluster(plr.getLocation().getWorld(), args[1]);
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.INVALID_CLUSTER, args[1]);
+ MainUtil.sendMessage(plr, C.INVALID_CLUSTER, args[1]);
return false;
}
- }
- else {
+ } else {
cluster = ClusterManager.getCluster(plr.getLocation());
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_CLUSTER);
+ MainUtil.sendMessage(plr, C.NOT_IN_CLUSTER);
return false;
}
}
- String id = cluster.toString();
+ final String id = cluster.toString();
String owner = UUIDHandler.getName(cluster.owner);
if (owner == null) {
owner = "unknown";
}
- String name = cluster.getName();
- String size = (cluster.getP2().x - cluster.getP1().x + 1) + "x" + (cluster.getP2().y - cluster.getP1().y + 1);
- String rights = cluster.hasRights(UUIDHandler.getUUID(plr)) + "";
-
+ final String name = cluster.getName();
+ final String size = ((cluster.getP2().x - cluster.getP1().x) + 1) + "x" + ((cluster.getP2().y - cluster.getP1().y) + 1);
+ final String rights = cluster.hasRights(UUIDHandler.getUUID(plr)) + "";
String message = C.CLUSTER_INFO.s();
message = message.replaceAll("%id%", id);
message = message.replaceAll("%owner%", owner);
message = message.replaceAll("%name%", name);
message = message.replaceAll("%size%", size);
message = message.replaceAll("%rights%", rights);
-
- PlayerFunctions.sendMessage(plr, message);
+ MainUtil.sendMessage(plr, message);
return true;
}
case "sh":
case "setspawn":
case "sethome": {
- if (!PlotMain.hasPermission(plr, "plots.cluster.sethome")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.sethome");
+ if (!Permissions.hasPermission(plr, "plots.cluster.sethome")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.sethome");
return false;
}
- if (args.length != 1 && args.length != 2) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster sethome");
+ if ((args.length != 1) && (args.length != 2)) {
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot cluster sethome");
return false;
}
- PlotCluster cluster = ClusterManager.getCluster(plr.getLocation());
+ final PlotCluster cluster = ClusterManager.getCluster(plr.getLocation());
if (cluster == null) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_CLUSTER);
+ MainUtil.sendMessage(plr, C.NOT_IN_CLUSTER);
return false;
}
if (!cluster.hasHelperRights(UUIDHandler.getUUID(plr))) {
- if (!PlotMain.hasPermission(plr, "plots.cluster.sethome.other")) {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.sethome.other");
+ if (!Permissions.hasPermission(plr, "plots.cluster.sethome.other")) {
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.cluster.sethome.other");
return false;
}
}
- Location base = ClusterManager.getClusterBottom(cluster);
- base.setY(0);
- Location relative = plr.getLocation().subtract(base);
- BlockLoc blockloc = new BlockLoc(relative.getBlockX(), relative.getBlockY(), relative.getBlockZ());
+ final Location base = ClusterManager.getClusterBottom(cluster);
+ final Location relative = plr.getLocation().subtract(base.getX(), 0, base.getZ());
+ final BlockLoc blockloc = new BlockLoc(relative.getX(), relative.getY(), relative.getZ());
cluster.settings.setPosition(blockloc);
- DBFunc.setPosition(cluster, relative.getBlockX() + "," + relative.getBlockY() + "," + relative.getBlockZ());
- return PlayerFunctions.sendMessage(plr, C.POSITION_SET);
+ DBFunc.setPosition(cluster, relative.getX() + "," + relative.getY() + "," + relative.getZ());
+ return MainUtil.sendMessage(plr, C.POSITION_SET);
}
}
- PlayerFunctions.sendMessage(plr, C.CLUSTER_AVAILABLE_ARGS);
+ MainUtil.sendMessage(plr, C.CLUSTER_AVAILABLE_ARGS);
return false;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Command.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Command.java
index 48c3b8a8c..5ed37a89b 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Command.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Command.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
/**
@@ -28,7 +27,6 @@ package com.intellectualcrafters.plot.commands;
* @author Empire92
*/
public enum Command {
-
// TODO new commands
// (economy)
// - /plot buy
@@ -39,7 +37,7 @@ public enum Command {
FLAG("flag", "f"),
TARGET("target"),
CLUSTER("cluster", "clusters"),
- BUY("buy","b"),
+ BUY("buy", "b"),
CREATEROADSCHEMATIC("createroadschematic"),
DEBUGROADREGEN("debugroadregen"),
DEBUGFIXFLAGS("debugfixflags"),
@@ -77,22 +75,19 @@ public enum Command {
UNBAN("unban", "unblock"),
DATABASE("database", "convert"),
TP("tp", "tp");
-
/**
* Command
*/
private final String command;
-
/**
* Alias
*/
private final String alias;
-
/**
* Permission Node
*/
private final CommandPermission permission;
-
+
/**
* @param command Command "name" (/plot [cmd])
*/
@@ -101,7 +96,7 @@ public enum Command {
this.alias = command;
this.permission = new CommandPermission("plots." + command);
}
-
+
/**
* @param command Command "name" (/plot [cmd])
* @param permission Command Permission Node
@@ -111,7 +106,7 @@ public enum Command {
this.permission = permission;
this.alias = command;
}
-
+
/**
* @param command Command "name" (/plot [cmd])
* @param alias Command Alias
@@ -121,7 +116,7 @@ public enum Command {
this.alias = alias;
this.permission = new CommandPermission("plots." + command);
}
-
+
/**
* @param command Command "name" (/plot [cmd])
* @param alias Command Alias
@@ -132,21 +127,21 @@ public enum Command {
this.alias = alias;
this.permission = permission;
}
-
+
/**
* @return command
*/
public String getCommand() {
return this.command;
}
-
+
/**
* @return alias
*/
public String getAlias() {
return this.alias;
}
-
+
/**
* @return permission object
*
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/CommandPermission.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/CommandPermission.java
index 49b519f95..5bc566019 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/CommandPermission.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/CommandPermission.java
@@ -18,12 +18,10 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.Permissions;
/**
* Created by Citymonstret on 2014-08-03.
@@ -31,25 +29,24 @@ import com.intellectualcrafters.plot.PlotMain;
* @author Citymonstret
*/
public class CommandPermission {
-
/**
* Permission Node
*/
public final String permission;
-
+
/**
* @param permission Command Permission
*/
public CommandPermission(final String permission) {
this.permission = permission.toLowerCase();
}
-
+
/**
* @param player Does the player have the permission?
*
* @return true of player has the required permission node
*/
- public boolean hasPermission(final Player player) {
- return PlotMain.hasPermission(player, this.permission);
+ public boolean hasPermission(final PlotPlayer player) {
+ return Permissions.hasPermission(player, this.permission);
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Comment.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Comment.java
index 3f30d653f..fb87864d3 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Comment.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Comment.java
@@ -18,47 +18,44 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang.StringUtils;
-import org.bukkit.entity.Player;
-import com.intellectualcrafters.plot.PlotMain;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotComment;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
public class Comment extends SubCommand {
-
public Comment() {
super(Command.COMMENT, "Comment on a plot", "comment", CommandCategory.ACTIONS, true);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
- if (!PlayerFunctions.isInPlot(plr)) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
+ Location loc = plr.getLocation();
+ Plot plot = MainUtil.getPlot(loc);
+ if (plot == null) {
return sendMessage(plr, C.NOT_IN_PLOT);
}
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
if (!plot.hasOwner()) {
return sendMessage(plr, C.NOT_IN_PLOT);
}
-
final List recipients = Arrays.asList("admin", "owner", "helper", "trusted", "everyone");
-
if ((args.length > 1) && recipients.contains(args[0].toLowerCase())) {
-
- if (PlotMain.hasPermission(plr, "plots.comment." + args[0].toLowerCase())) {
+ if (Permissions.hasPermission(plr, "plots.comment." + args[0].toLowerCase())) {
final String text = StringUtils.join(Arrays.copyOfRange(args, 1, args.length), " ");
final PlotComment comment = new PlotComment(text, plr.getName(), recipients.indexOf(args[0].toLowerCase()));
plot.settings.addComment(comment);
- DBFunc.setComment(plr.getWorld().getName(), plot, comment);
+ DBFunc.setComment(loc.getWorld(), plot, comment);
return sendMessage(plr, C.COMMENT_ADDED);
} else {
return sendMessage(plr, C.NO_PERMISSION, "plots.comment." + args[0].toLowerCase());
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Condense.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Condense.java
index 321696f3d..eb47b126f 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Condense.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Condense.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
@@ -28,79 +27,74 @@ import java.util.List;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
-import org.bukkit.Bukkit;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.BlockManager;
+import com.intellectualcrafters.plot.util.MainUtil;
public class Condense extends SubCommand {
-
public static boolean TASK = false;
- private static int TASK_ID = 0;
public Condense() {
super("condense", "plots.admin", "Condense a plotworld", "condense", "", CommandCategory.DEBUG, false);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (plr != null) {
- PlayerFunctions.sendMessage(plr, (C.NOT_CONSOLE));
+ MainUtil.sendMessage(plr, (C.NOT_CONSOLE));
return false;
}
- if (args.length != 2 && args.length != 3) {
- PlayerFunctions.sendMessage(plr, "/plot condense [radius]");
+ if ((args.length != 2) && (args.length != 3)) {
+ MainUtil.sendMessage(plr, "/plot condense [radius]");
return false;
}
- String worldname = args[0];
- final World world = Bukkit.getWorld(worldname);
- if (world == null || !PlotMain.isPlotWorld(worldname)) {
- PlayerFunctions.sendMessage(plr, "INVALID WORLD");
+ final String worldname = args[0];
+ if (!BlockManager.manager.isWorld(worldname) || !PlotSquared.isPlotWorld(worldname)) {
+ MainUtil.sendMessage(plr, "INVALID WORLD");
return false;
}
switch (args[1].toLowerCase()) {
case "start": {
if (args.length == 2) {
- PlayerFunctions.sendMessage(plr, "/plot condense " + worldname + " start ");
+ MainUtil.sendMessage(plr, "/plot condense " + worldname + " start ");
return false;
}
if (TASK) {
- PlayerFunctions.sendMessage(plr, "TASK ALREADY STARTED");
+ MainUtil.sendMessage(plr, "TASK ALREADY STARTED");
return false;
}
if (args.length == 2) {
- PlayerFunctions.sendMessage(plr, "/plot condense " + worldname + " start ");
+ MainUtil.sendMessage(plr, "/plot condense " + worldname + " start ");
return false;
}
if (!StringUtils.isNumeric(args[2])) {
- PlayerFunctions.sendMessage(plr, "INVALID RADIUS");
+ MainUtil.sendMessage(plr, "INVALID RADIUS");
return false;
}
- int radius = Integer.parseInt(args[2]);
- Collection plots = PlotMain.getPlots(worldname).values();
- int size = plots.size();
- int minimum_radius = (int) Math.ceil((Math.sqrt(size)/2) + 1);
+ final int radius = Integer.parseInt(args[2]);
+ final Collection plots = PlotSquared.getPlots(worldname).values();
+ final int size = plots.size();
+ final int minimum_radius = (int) Math.ceil((Math.sqrt(size) / 2) + 1);
if (radius < minimum_radius) {
- PlayerFunctions.sendMessage(plr, "RADIUS TOO SMALL");
+ MainUtil.sendMessage(plr, "RADIUS TOO SMALL");
return false;
}
final List to_move = new ArrayList<>(getPlots(plots, radius));
final List free = new ArrayList<>();
- PlotId start = new PlotId(0,0);
- while (start.x <= minimum_radius && start.y <= minimum_radius) {
- Plot plot = PlotHelper.getPlot(world, start);
+ PlotId start = new PlotId(0, 0);
+ while ((start.x <= minimum_radius) && (start.y <= minimum_radius)) {
+ final Plot plot = MainUtil.getPlot(worldname, start);
if (!plot.hasOwner()) {
free.add(plot.id);
}
start = Auto.getNextPlot(start, 1);
}
- PlotHelper.move(world, to_move.get(0), free.get(0), new Runnable() {
+ MainUtil.move(worldname, to_move.get(0), free.get(0), new Runnable() {
@Override
public void run() {
if (!TASK) {
@@ -110,25 +104,25 @@ public class Condense extends SubCommand {
to_move.remove(0);
free.remove(0);
int index = 0;
- for (PlotId id : to_move) {
- Plot plot = PlotHelper.getPlot(world, id);
+ for (final PlotId id : to_move) {
+ final Plot plot = MainUtil.getPlot(worldname, id);
if (plot.hasOwner()) {
break;
}
index++;
}
- for (int i = 0; i");
+ MainUtil.sendMessage(plr, "/plot condense " + worldname + " info ");
return false;
}
if (!StringUtils.isNumeric(args[2])) {
- PlayerFunctions.sendMessage(plr, "INVALID RADIUS");
+ MainUtil.sendMessage(plr, "INVALID RADIUS");
return false;
}
- int radius = Integer.parseInt(args[2]);
- Collection plots = PlotMain.getPlots(worldname).values();
- int size = plots.size();
- int minimum_radius = (int) Math.ceil((Math.sqrt(size)/2) + 1);
+ final int radius = Integer.parseInt(args[2]);
+ final Collection plots = PlotSquared.getPlots(worldname).values();
+ final int size = plots.size();
+ final int minimum_radius = (int) Math.ceil((Math.sqrt(size) / 2) + 1);
if (radius < minimum_radius) {
- PlayerFunctions.sendMessage(plr, "RADIUS TOO SMALL");
+ MainUtil.sendMessage(plr, "RADIUS TOO SMALL");
return false;
}
- int max_move = getPlots(plots, minimum_radius).size();
- int user_move = getPlots(plots, radius).size();
- PlayerFunctions.sendMessage(plr, "=== DEFAULT EVAL ===");
- PlayerFunctions.sendMessage(plr, "MINIMUM RADIUS: " + minimum_radius);
- PlayerFunctions.sendMessage(plr, "MAXIMUM MOVES: " + max_move);
- PlayerFunctions.sendMessage(plr, "=== INPUT EVAL ===");
- PlayerFunctions.sendMessage(plr, "INPUT RADIUS: " + radius);
- PlayerFunctions.sendMessage(plr, "ESTIMATED MOVES: " + user_move);
- PlayerFunctions.sendMessage(plr, "ESTIMATED TIME: " + "No idea, times will drastically change based on the system performance and load");
- PlayerFunctions.sendMessage(plr, "&e - Radius is measured in plot width");
+ final int max_move = getPlots(plots, minimum_radius).size();
+ final int user_move = getPlots(plots, radius).size();
+ MainUtil.sendMessage(plr, "=== DEFAULT EVAL ===");
+ MainUtil.sendMessage(plr, "MINIMUM RADIUS: " + minimum_radius);
+ MainUtil.sendMessage(plr, "MAXIMUM MOVES: " + max_move);
+ MainUtil.sendMessage(plr, "=== INPUT EVAL ===");
+ MainUtil.sendMessage(plr, "INPUT RADIUS: " + radius);
+ MainUtil.sendMessage(plr, "ESTIMATED MOVES: " + user_move);
+ MainUtil.sendMessage(plr, "ESTIMATED TIME: " + "No idea, times will drastically change based on the system performance and load");
+ MainUtil.sendMessage(plr, "&e - Radius is measured in plot width");
return true;
}
}
- PlayerFunctions.sendMessage(plr, "/plot condense " + worldname + " [radius]");
+ MainUtil.sendMessage(plr, "/plot condense " + worldname + " [radius]");
return false;
}
- public Set getPlots(Collection plots, int radius) {
- HashSet outside = new HashSet<>();
- for (Plot plot : plots) {
- if (plot.id.x > radius || plot.id.x < -radius || plot.id.y > radius || plot.id.y < -radius) {
+ public Set getPlots(final Collection plots, final int radius) {
+ final HashSet 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);
}
}
@@ -203,7 +197,6 @@ public class Condense extends SubCommand {
}
public static void sendMessage(final String message) {
- PlotMain.sendConsoleSenderMessage("&3PlotSquared -> Plot condense&8: &7" + message);
+ PlotSquared.log("&3PlotSquared -> Plot condense&8: &7" + message);
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Copy.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Copy.java
deleted file mode 100644
index 8cca3264e..000000000
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Copy.java
+++ /dev/null
@@ -1,65 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// PlotSquared - A plot manager and world generator for the Bukkit API /
-// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
-// /
-// This program is free software; you can redistribute it and/or modify /
-// it under the terms of the GNU General Public License as published by /
-// the Free Software Foundation; either version 3 of the License, or /
-// (at your option) any later version. /
-// /
-// This program is distributed in the hope that it will be useful, /
-// but WITHOUT ANY WARRANTY; without even the implied warranty of /
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
-// GNU General Public License for more details. /
-// /
-// You should have received a copy of the GNU General Public License /
-// along with this program; if not, write to the Free Software Foundation, /
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
-// /
-// You can contact us via: support@intellectualsites.com /
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-package com.intellectualcrafters.plot.commands;
-
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
-import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.object.PlotSelection;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
-import com.intellectualcrafters.plot.util.UUIDHandler;
-
-public class Copy extends SubCommand {
-
- public Copy() {
- super(Command.COPY, "Copy a plot", "copy", CommandCategory.ACTIONS, true);
- }
-
- @Override
- public boolean execute(final Player plr, final String... args) {
- if (!PlayerFunctions.isInPlot(plr)) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT);
- return false;
- }
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
- if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !PlotMain.hasPermission(plr, "plots.admin.command.copy")) {
- PlayerFunctions.sendMessage(plr, C.NO_PLOT_PERMS);
- return false;
- }
- assert plot != null;
- if (plot.settings.isMerged()) {
- PlayerFunctions.sendMessage(plr, C.UNLINK_REQUIRED);
- return false;
- }
- final int size = (PlotHelper.getPlotTopLocAbs(plr.getWorld(), plot.getId()).getBlockX() - PlotHelper.getPlotBottomLocAbs(plr.getWorld(), plot.getId()).getBlockX());
- final PlotSelection selection = new PlotSelection(size, plr.getWorld(), plot);
- if (PlotSelection.currentSelection.containsKey(plr.getName())) {
- PlotSelection.currentSelection.remove(plr.getName());
- }
- PlotSelection.currentSelection.put(plr.getName(), selection);
- sendMessage(plr, C.CLIPBOARD_SET);
- return true;
- }
-}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/CreateRoadSchematic.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/CreateRoadSchematic.java
index 8e073fa9d..3818d7dbe 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/CreateRoadSchematic.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/CreateRoadSchematic.java
@@ -18,45 +18,35 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.generator.HybridPlotManager;
import com.intellectualcrafters.plot.generator.HybridPlotWorld;
+import com.intellectualcrafters.plot.generator.HybridUtils;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
public class CreateRoadSchematic extends SubCommand {
-
public CreateRoadSchematic() {
super(Command.CREATEROADSCHEMATIC, "Add a road schematic to your world using the road around your current plot", "crs", CommandCategory.DEBUG, true);
}
-
+
@Override
- public boolean execute(final Player player, final String... args) {
-
- if (!PlayerFunctions.isInPlot(player)) {
- PlayerFunctions.sendMessage(player, C.NOT_IN_PLOT);
- return false;
+ public boolean execute(final PlotPlayer player, final String... args) {
+ Location loc = player.getLocation();
+ Plot plot = MainUtil.getPlot(loc);
+ if (plot == null) {
+ return sendMessage(player, C.NOT_IN_PLOT);
}
-
- if (!(PlotMain.getWorldSettings(player.getWorld()) instanceof HybridPlotWorld)) {
+ if (!(PlotSquared.getPlotWorld(loc.getWorld()) instanceof HybridPlotWorld)) {
return sendMessage(player, C.NOT_IN_PLOT_WORLD);
}
-
- final Plot plot = PlayerFunctions.getCurrentPlot(player);
-
- HybridPlotManager manager = (HybridPlotManager) PlotMain.getPlotManager(player.getWorld());
-
- manager.setupRoadSchematic(plot);
- PlotHelper.update(player.getLocation());
- PlayerFunctions.sendMessage(player, "&6Saved new road schematic");
-
+ HybridUtils.manager.setupRoadSchematic(plot);
+ MainUtil.update(loc);
+ MainUtil.sendMessage(player, "&6Saved new road schematic");
return true;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DEOP.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DEOP.java
deleted file mode 100644
index 7acd4c1f1..000000000
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DEOP.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.intellectualcrafters.plot.commands;
-
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-
-/**
- * Created 2014-11-09 for PlotSquared
- *
- * @author Citymonstret
- */
-public class DEOP extends SubCommand {
-
- public DEOP() {
- super(Command.DEOP, "Alias for /plot trusted remove", "/plot deop [player]", CommandCategory.ACTIONS, true);
- }
-
- @Override
- public boolean execute(final Player plr, final String... args) {
- if (args.length < 1) {
- return PlayerFunctions.sendMessage(plr, "&cUsage: &c" + this.usage);
- }
- if (!PlayerFunctions.isInPlot(plr)) {
- return sendMessage(plr, C.NOT_IN_PLOT);
- }
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
- if (!plot.hasRights(plr)) {
- return sendMessage(plr, C.NO_PLOT_PERMS);
- }
- return plr.performCommand("plot trusted remove " + args[0]);
- }
-}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Database.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Database.java
index 9243e9941..5f0300bcb 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Database.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Database.java
@@ -7,16 +7,15 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.UUID;
-import org.bukkit.entity.Player;
-import org.bukkit.plugin.Plugin;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.database.MySQL;
import com.intellectualcrafters.plot.database.SQLManager;
import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.StringComparison;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.util.TaskManager;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
/**
* Created 2014-11-15 for PlotSquared
@@ -24,31 +23,29 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
* @author Citymonstret
*/
public class Database extends SubCommand {
-
- final String[] tables = new String[]{"plot_trusted", "plot_ratings", "plot_comments"};
-
+ final String[] tables = new String[] { "plot_trusted", "plot_ratings", "plot_comments" };
+
public Database() {
super(Command.DATABASE, "Convert/Backup Storage", "database [type] [...details]", CommandCategory.DEBUG, false);
}
-
+
private static boolean sendMessageU(final UUID uuid, final String msg) {
if (uuid == null) {
- PlotMain.sendConsoleSenderMessage(msg);
+ PlotSquared.log(msg);
} else {
- final Player p = UUIDHandler.uuidWrapper.getPlayer(uuid);
+ final PlotPlayer p = UUIDHandler.getPlayer(uuid);
if ((p != null) && p.isOnline()) {
- return PlayerFunctions.sendMessage(p, msg);
+ return MainUtil.sendMessage(p, msg);
} else {
return sendMessageU(null, msg);
}
}
return true;
}
-
+
public static void insertPlots(final SQLManager manager, final UUID requester, final Connection c) {
- final Plugin p = PlotMain.getMain();
- final java.util.Set plots = PlotMain.getPlots();
- p.getServer().getScheduler().runTaskAsynchronously(p, new Runnable() {
+ final java.util.Set plots = PlotSquared.getPlots();
+ TaskManager.runTaskAsync(new Runnable() {
@Override
public void run() {
try {
@@ -71,13 +68,13 @@ public class Database extends SubCommand {
}
});
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (args.length < 1) {
return sendMessage(plr, "/plot database [sqlite/mysql]");
}
- final String type = new StringComparison(args[0], new String[]{"mysql", "sqlite"}).getBestMatch().toLowerCase();
+ final String type = new StringComparison(args[0], new String[] { "mysql", "sqlite" }).getBestMatch().toLowerCase();
switch (type) {
case "mysql":
if (args.length < 6) {
@@ -94,7 +91,7 @@ public class Database extends SubCommand {
}
Connection n;
try {
- n = new MySQL(PlotMain.getMain(), host, port, database, username, password).openConnection();
+ n = new MySQL(PlotSquared.THIS, host, port, database, username, password).openConnection();
// Connection
if (n.isClosed()) {
return sendMessage(plr, "Failed to open connection");
@@ -138,12 +135,12 @@ public class Database extends SubCommand {
}
return false;
}
-
- private boolean sendMessage(final Player player, final String msg) {
+
+ private boolean sendMessage(final PlotPlayer player, final String msg) {
if (player == null) {
- PlotMain.sendConsoleSenderMessage(msg);
+ PlotSquared.log(msg);
} else {
- PlayerFunctions.sendMessage(player, msg);
+ MainUtil.sendMessage(player, msg);
}
return true;
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Debug.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Debug.java
index 937e2bf6c..8c9ed5e36 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Debug.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Debug.java
@@ -18,34 +18,28 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
-import org.bukkit.Bukkit;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
+import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.util.Lag;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
+import com.intellectualcrafters.plot.util.MainUtil;
import com.intellectualcrafters.plot.util.RUtils;
public class Debug extends SubCommand {
-
public Debug() {
super(Command.DEBUG, "Show debug information", "debug [msg]", CommandCategory.DEBUG, false);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if ((args.length > 0) && args[0].equalsIgnoreCase("msg")) {
final StringBuilder msg = new StringBuilder();
for (final C c : C.values()) {
msg.append(c.s()).append("\n");
}
- PlayerFunctions.sendMessage(plr, msg.toString());
+ MainUtil.sendMessage(plr, msg.toString());
return true;
}
StringBuilder information;
@@ -58,9 +52,12 @@ public class Debug extends SubCommand {
}
{
final StringBuilder worlds = new StringBuilder("");
- for (final String world : PlotMain.getPlotWorlds()) {
+ for (final String world : PlotSquared.getPlotWorlds()) {
worlds.append(world).append(" ");
}
+
+ // FIXME not sure if we actually need any of this debug info as we should just do a timings report which is more detailed anyway
+
information.append(header);
information.append(getSection(section, "Lag / TPS"));
information.append(getLine(line, "Ticks Per Second", Lag.getTPS()));
@@ -68,16 +65,7 @@ public class Debug extends SubCommand {
information.append(getLine(line, "TPS Percentage", (int) Lag.getFullPercentage() + "%"));
information.append(getSection(section, "PlotWorld"));
information.append(getLine(line, "Plot Worlds", worlds));
- information.append(getLine(line, "Owned Plots", PlotMain.getPlots().size()));
- // information.append(getLine(line, "PlotWorld Size",
- // PlotHelper.getWorldFolderSize() + "MB"));
- for (final String worldname : PlotMain.getPlotWorlds()) {
- final World world = Bukkit.getWorld(worldname);
- information.append(getLine(line, "World: " + world.getName() + " size", PlotHelper.getWorldFolderSize(world)));
- information.append(getLine(line, " - Entities", PlotHelper.getEntities(world)));
- information.append(getLine(line, " - Loaded Tile Entities", PlotHelper.getTileEntities(world)));
- information.append(getLine(line, " - Loaded Chunks", PlotHelper.getLoadedChunks(world)));
- }
+ information.append(getLine(line, "Owned Plots", PlotSquared.getPlots().size()));
information.append(getSection(section, "RAM"));
information.append(getLine(line, "Free Ram", RUtils.getFreeRam() + "MB"));
information.append(getLine(line, "Total Ram", RUtils.getTotalRam() + "MB"));
@@ -86,15 +74,15 @@ public class Debug extends SubCommand {
information.append(getLine(line, "View all captions", "/plot debug msg"));
}
{
- PlayerFunctions.sendMessage(plr, information.toString());
+ MainUtil.sendMessage(plr, information.toString());
}
return true;
}
-
+
private String getSection(final String line, final String val) {
return line.replaceAll("%val%", val) + "\n";
}
-
+
private String getLine(final String line, final String var, final Object val) {
return line.replaceAll("%var%", var).replaceAll("%val%", "" + val) + "\n";
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugClaimTest.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugClaimTest.java
index 2d759a3bb..387f53702 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugClaimTest.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugClaimTest.java
@@ -18,164 +18,135 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
import java.util.UUID;
-import org.bukkit.Bukkit;
-import org.bukkit.Chunk;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.block.Block;
-import org.bukkit.block.Sign;
-import org.bukkit.entity.Player;
-
import com.google.common.collect.BiMap;
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
-import com.intellectualcrafters.plot.events.PlayerClaimPlotEvent;
+import com.intellectualcrafters.plot.object.ChunkLoc;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
import com.intellectualcrafters.plot.object.PlotManager;
+import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
import com.intellectualcrafters.plot.object.StringWrapper;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.util.AChunkManager;
+import com.intellectualcrafters.plot.util.BlockManager;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
/**
* @author Citymonstret
*/
public class DebugClaimTest extends SubCommand {
-
public DebugClaimTest() {
super(Command.DEBUGCLAIMTEST, "If you accidentally delete your database, this command will attempt to restore all plots based on the data from the plot signs. Execution time may vary", "debugclaimtest", CommandCategory.DEBUG, false);
}
-
- @SuppressWarnings("unused")
- public static boolean claimPlot(final Player player, final Plot plot, final boolean teleport) {
+
+ public static boolean claimPlot(final PlotPlayer player, final Plot plot, final boolean teleport) {
return claimPlot(player, plot, teleport, "");
}
-
- public static boolean claimPlot(final Player player, final Plot plot, final boolean teleport, @SuppressWarnings("unused") final String schematic) {
- final PlayerClaimPlotEvent event = new PlayerClaimPlotEvent(player, plot, true);
- Bukkit.getPluginManager().callEvent(event);
- if (!event.isCancelled()) {
- PlotHelper.createPlot(player, plot);
- PlotHelper.setSign(player, plot);
- PlayerFunctions.sendMessage(player, C.CLAIMED);
+
+ public static boolean claimPlot(final PlotPlayer player, final Plot plot, final boolean teleport, final String schematic) {
+ // FIXME call claim event
+ // boolean result = event result
+ boolean result = true;
+
+ if (!result) {
+ MainUtil.createPlot(player.getUUID(), plot);
+ MainUtil.setSign(player.getName(), plot);
+ MainUtil.sendMessage(player, C.CLAIMED);
if (teleport) {
- PlotMain.teleportPlayer(player, player.getLocation(), plot);
+ MainUtil.teleportPlayer(player, player.getLocation(), plot);
}
}
- return event.isCancelled();
+ return result;
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (plr == null) {
if (args.length < 3) {
- return !PlayerFunctions.sendMessage(null, "If you accidentally delete your database, this command will attempt to restore all plots based on the data from the plot signs. \n\n&cMissing world arg /plot debugclaimtest {world} {PlotId min} {PlotId max}");
+ return !MainUtil.sendMessage(null, "If you accidentally delete your database, this command will attempt to restore all plots based on the data from the plot signs. \n\n&cMissing world arg /plot debugclaimtest {world} {PlotId min} {PlotId max}");
}
- final World world = Bukkit.getWorld(args[0]);
- if ((world == null) || !PlotMain.isPlotWorld(world)) {
- return !PlayerFunctions.sendMessage(null, "&cInvalid plot world!");
+ String world = args[0];
+ if (!BlockManager.manager.isWorld(world) || !PlotSquared.isPlotWorld(world)) {
+ return !MainUtil.sendMessage(null, "&cInvalid plot world!");
}
-
PlotId min, max;
-
try {
final String[] split1 = args[1].split(";");
final String[] split2 = args[2].split(";");
-
min = new PlotId(Integer.parseInt(split1[0]), Integer.parseInt(split1[1]));
max = new PlotId(Integer.parseInt(split2[0]), Integer.parseInt(split2[1]));
} catch (final Exception e) {
- return !PlayerFunctions.sendMessage(null, "&cInvalid min/max values. &7The values are to Plot IDs in the format &cX;Y &7where X,Y are the plot coords\nThe conversion will only check the plots in the selected area.");
+ return !MainUtil.sendMessage(null, "&cInvalid min/max values. &7The values are to Plot IDs in the format &cX;Y &7where X,Y are the plot coords\nThe conversion will only check the plots in the selected area.");
}
- PlayerFunctions.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: &7Beginning sign to plot conversion. This may take a while...");
- PlayerFunctions.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: Found an excess of 250,000 chunks. Limiting search radius... (~3.8 min)");
-
- final PlotManager manager = PlotMain.getPlotManager(world);
- final PlotWorld plotworld = PlotMain.getWorldSettings(world);
-
+ MainUtil.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: &7Beginning sign to plot conversion. This may take a while...");
+ MainUtil.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: Found an excess of 250,000 chunks. Limiting search radius... (~3.8 min)");
+ final PlotManager manager = PlotSquared.getPlotManager(world);
+ final PlotWorld plotworld = PlotSquared.getPlotWorld(world);
final ArrayList plots = new ArrayList<>();
-
- for (final PlotId id : PlayerFunctions.getPlotSelectionIds(min, max)) {
- final Plot plot = PlotHelper.getPlot(world, id);
- final boolean contains = PlotMain.getPlots(world).containsKey(plot.id);
+ for (final PlotId id : MainUtil.getPlotSelectionIds(min, max)) {
+ final Plot plot = MainUtil.getPlot(world, id);
+ final boolean contains = PlotSquared.getPlots(world).containsKey(plot.id);
if (contains) {
- PlayerFunctions.sendMessage(null, " - &cDB Already contains: " + plot.id);
+ MainUtil.sendMessage(null, " - &cDB Already contains: " + plot.id);
continue;
}
-
- final Location loc = manager.getSignLoc(world, plotworld, plot);
-
- final Chunk chunk = world.getChunkAt(loc);
-
- if (!chunk.isLoaded()) {
- final boolean result = chunk.load(false);
- if (!result) {
- continue;
- }
+ final Location loc = manager.getSignLoc(plotworld, plot);
+ ChunkLoc chunk = new ChunkLoc(loc.getX() >> 4, loc.getZ() >> 4);
+ boolean result = AChunkManager.manager.loadChunk(world, chunk);
+ if (!result) {
+ continue;
}
-
- final Block block = world.getBlockAt(loc);
- if (block != null) {
- if (block.getState() instanceof Sign) {
- final Sign sign = (Sign) block.getState();
- String line = sign.getLine(2);
- if ((line != null) && (line.length() > 2)) {
- line = line.substring(2);
-
- final BiMap map = UUIDHandler.getUuidMap();
-
- UUID uuid = (map.get(new StringWrapper(line)));
-
- if (uuid == null) {
- for (final StringWrapper string : map.keySet()) {
- if (string.value.toLowerCase().startsWith(line.toLowerCase())) {
- uuid = map.get(string);
- break;
- }
+ String[] lines = BlockManager.manager.getSign(loc);
+ if (lines != null) {
+ String line = lines[2];
+ if ((line != null) && (line.length() > 2)) {
+ line = line.substring(2);
+ final BiMap map = UUIDHandler.getUuidMap();
+ UUID uuid = (map.get(new StringWrapper(line)));
+ if (uuid == null) {
+ for (final StringWrapper string : map.keySet()) {
+ if (string.value.toLowerCase().startsWith(line.toLowerCase())) {
+ uuid = map.get(string);
+ break;
}
}
- if (uuid == null) {
- uuid = UUIDHandler.getUUID(line);
- }
- if (uuid != null) {
- PlayerFunctions.sendMessage(null, " - &aFound plot: " + plot.id + " : " + line);
- plot.owner = uuid;
- plot.hasChanged = true;
- plots.add(plot);
- } else {
- PlayerFunctions.sendMessage(null, " - &cInvalid playername: " + plot.id + " : " + line);
- }
+ }
+ if (uuid == null) {
+ uuid = UUIDHandler.getUUID(line);
+ }
+ if (uuid != null) {
+ MainUtil.sendMessage(null, " - &aFound plot: " + plot.id + " : " + line);
+ plot.owner = uuid;
+ plot.hasChanged = true;
+ plots.add(plot);
+ } else {
+ MainUtil.sendMessage(null, " - &cInvalid playername: " + plot.id + " : " + line);
}
}
}
}
-
if (plots.size() > 0) {
- PlayerFunctions.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: &7Updating '" + plots.size() + "' plots!");
+ MainUtil.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: &7Updating '" + plots.size() + "' plots!");
DBFunc.createPlots(plots);
DBFunc.createAllSettingsAndHelpers(plots);
-
for (final Plot plot : plots) {
- PlotMain.updatePlot(plot);
+ PlotSquared.updatePlot(plot);
}
-
- PlayerFunctions.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: &7Complete!");
-
+ MainUtil.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: &7Complete!");
} else {
- PlayerFunctions.sendMessage(null, "No plots were found for the given search.");
+ MainUtil.sendMessage(null, "No plots were found for the given search.");
}
-
} else {
- PlayerFunctions.sendMessage(plr, "&6This command can only be executed by console as it has been deemed unsafe if abused.");
+ MainUtil.sendMessage(plr, "&6This command can only be executed by console as it has been deemed unsafe if abused.");
}
return true;
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugClear.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugClear.java
index 2bc50ca22..a741fb0ad 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugClear.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugClear.java
@@ -18,63 +18,57 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.generator.SquarePlotWorld;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
-import com.intellectualcrafters.plot.util.ChunkManager;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
+import com.intellectualcrafters.plot.util.bukkit.ChunkManager;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
public class DebugClear extends SubCommand {
-
public DebugClear() {
super(Command.DEBUGCLEAR, "Clear a plot using a fast experimental algorithm", "debugclear", CommandCategory.DEBUG, false);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (plr == null) {
// Is console
if (args.length < 2) {
- PlotMain.sendConsoleSenderMessage("You need to specify two arguments: ID (0;0) & World (world)");
+ PlotSquared.log("You need to specify two arguments: ID (0;0) & World (world)");
} else {
final PlotId id = PlotId.fromString(args[0]);
final String world = args[1];
if (id == null) {
- PlotMain.sendConsoleSenderMessage("Invalid Plot ID: " + args[0]);
+ PlotSquared.log("Invalid Plot ID: " + args[0]);
} else {
- if (!PlotMain.isPlotWorld(world) || !(PlotMain.getWorldSettings(world) instanceof SquarePlotWorld)) {
- PlotMain.sendConsoleSenderMessage("Invalid plot world: " + world);
+ if (!PlotSquared.isPlotWorld(world) || !(PlotSquared.getPlotWorld(world) instanceof SquarePlotWorld)) {
+ PlotSquared.log("Invalid plot world: " + world);
} else {
- final Plot plot = PlotHelper.getPlot(Bukkit.getWorld(world), id);
+ final Plot plot = MainUtil.getPlot(world, id);
if (plot == null) {
- PlotMain.sendConsoleSenderMessage("Could not find plot " + args[0] + " in world " + world);
+ PlotSquared.log("Could not find plot " + args[0] + " in world " + world);
} else {
- World bukkitWorld = Bukkit.getWorld(world);
- Location pos1 = PlotHelper.getPlotBottomLoc(bukkitWorld, plot.id).add(1, 0, 1);
- Location pos2 = PlotHelper.getPlotTopLoc(bukkitWorld, plot.id);
- if (PlotHelper.runners.containsKey(plot)) {
- PlayerFunctions.sendMessage(null, C.WAIT_FOR_TIMER);
+ final Location pos1 = MainUtil.getPlotBottomLoc(world, plot.id).add(1, 0, 1);
+ final Location pos2 = MainUtil.getPlotTopLoc(world, plot.id);
+ if (MainUtil.runners.containsKey(plot)) {
+ MainUtil.sendMessage(null, C.WAIT_FOR_TIMER);
return false;
}
- PlotHelper.runners.put(plot, 1);
- ChunkManager.regenerateRegion(pos1, pos2, new Runnable() {
+ MainUtil.runners.put(plot, 1);
+ ChunkManager.manager.regenerateRegion(pos1, pos2, new Runnable() {
@Override
public void run() {
- PlotHelper.runners.remove(plot);
- PlotMain.sendConsoleSenderMessage("Plot " + plot.getId().toString() + " cleared.");
- PlotMain.sendConsoleSenderMessage("&aDone!");
+ MainUtil.runners.remove(plot);
+ PlotSquared.log("Plot " + plot.getId().toString() + " cleared.");
+ PlotSquared.log("&aDone!");
}
});
}
@@ -83,38 +77,34 @@ public class DebugClear extends SubCommand {
}
return true;
}
-
- if (!PlayerFunctions.isInPlot(plr) || !(PlotMain.getWorldSettings(plr.getWorld()) instanceof SquarePlotWorld)) {
+ Location loc = plr.getLocation();
+ final Plot plot = MainUtil.getPlot(loc);
+ if (plot == null || !(PlotSquared.getPlotWorld(loc.getWorld()) instanceof SquarePlotWorld)) {
return sendMessage(plr, C.NOT_IN_PLOT);
}
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
- if (!PlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(PlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
+ if (!MainUtil.getTopPlot(plot).equals(MainUtil.getBottomPlot(plot))) {
return sendMessage(plr, C.UNLINK_REQUIRED);
}
- if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !PlotMain.hasPermission(plr, "plots.admin.command.debugclear")) {
+ if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !Permissions.hasPermission(plr, "plots.admin.command.debugclear")) {
return sendMessage(plr, C.NO_PLOT_PERMS);
}
assert plot != null;
- World bukkitWorld = plr.getWorld();
- Location pos1 = PlotHelper.getPlotBottomLoc(bukkitWorld, plot.id).add(1, 0, 1);
- Location pos2 = PlotHelper.getPlotTopLoc(bukkitWorld, plot.id);
- if (PlotHelper.runners.containsKey(plot)) {
- PlayerFunctions.sendMessage(null, C.WAIT_FOR_TIMER);
+ final Location pos1 = MainUtil.getPlotBottomLoc(loc.getWorld(), plot.id).add(1, 0, 1);
+ final Location pos2 = MainUtil.getPlotTopLoc(loc.getWorld(), plot.id);
+ if (MainUtil.runners.containsKey(plot)) {
+ MainUtil.sendMessage(null, C.WAIT_FOR_TIMER);
return false;
}
- PlotHelper.runners.put(plot, 1);
- ChunkManager.regenerateRegion(pos1, pos2, new Runnable() {
+ MainUtil.runners.put(plot, 1);
+ ChunkManager.manager.regenerateRegion(pos1, pos2, new Runnable() {
@Override
public void run() {
- PlotHelper.runners.remove(plot);
- PlayerFunctions.sendMessage(plr, "&aDone!");
+ MainUtil.runners.remove(plot);
+ MainUtil.sendMessage(plr, "&aDone!");
}
});
-
// sign
-
// wall
-
return true;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugExec.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugExec.java
index 38f4ff9b3..66358b578 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugExec.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugExec.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.io.File;
@@ -34,129 +33,125 @@ import java.util.UUID;
import org.apache.commons.lang.StringUtils;
import org.bukkit.Bukkit;
-import org.bukkit.OfflinePlayer;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
+import com.intellectualcrafters.plot.object.BukkitOfflinePlayer;
import com.intellectualcrafters.plot.object.ChunkLoc;
import com.intellectualcrafters.plot.object.Plot;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.BlockManager;
import com.intellectualcrafters.plot.util.ExpireManager;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
public class DebugExec extends SubCommand {
-
- private ArrayList chunks = null;
- private World world;
-
public DebugExec() {
- super("debugexec", "plots.admin", "Multi-purpose debug command", "debugexec", "exec", CommandCategory.DEBUG, false);
+ super("debugexec", "plots.admin", "Multi-purpose debug command", "debugexec", "exec", CommandCategory.DEBUG, false);
}
-
+
@Override
- public boolean execute(final Player player, final String... args) {
- List allowed_params = Arrays.asList(new String[]{"stop-expire","start-expire", "show-expired", "update-expired", "seen", "trim-check"});
+ public boolean execute(final PlotPlayer player, final String... args) {
+ final List allowed_params = Arrays.asList(new String[] { "stop-expire", "start-expire", "show-expired", "update-expired", "seen", "trim-check" });
if (args.length > 0) {
- String arg = args[0].toLowerCase();
- switch (arg) {
- case "stop-expire": {
- if (ExpireManager.task != -1) {
- Bukkit.getScheduler().cancelTask(ExpireManager.task);
- }
- else {
- return PlayerFunctions.sendMessage(null, "Task already halted");
- }
- ExpireManager.task = -1;
- return PlayerFunctions.sendMessage(null, "Cancelled task.");
- }
- case "start-expire": {
- if (ExpireManager.task == -1) {
- ExpireManager.runTask();
- }
- else {
- return PlayerFunctions.sendMessage(null, "Plot expiry task already started");
- }
- return PlayerFunctions.sendMessage(null, "Started plot expiry task");
- }
- case "update-expired": {
- if (args.length > 1) {
- World world = Bukkit.getWorld(args[1]);
- if (world == null) {
- return PlayerFunctions.sendMessage(null, "Invalid world: "+args[1]);
- }
- PlayerFunctions.sendMessage(null, "Updating expired plot list");
- ExpireManager.updateExpired(args[1]);
- return true;
- }
- return PlayerFunctions.sendMessage(null, "Use /plot debugexec update-expired ");
- }
- case "show-expired": {
- if (args.length > 1) {
- World world = Bukkit.getWorld(args[1]);
- if (world == null || !ExpireManager.expiredPlots.containsKey(args[1])) {
- return PlayerFunctions.sendMessage(null, "Invalid world: "+args[1]);
- }
- PlayerFunctions.sendMessage(null, "Expired plots (" + ExpireManager.expiredPlots.get(args[1]).size() + "):");
- for (Entry entry : ExpireManager.expiredPlots.get(args[1]).entrySet()) {
- Plot plot = entry.getKey();
- Long stamp = entry.getValue();
- PlayerFunctions.sendMessage(null, " - " + plot.world + ";" + plot.id.x + ";" + plot.id.y + ";" + UUIDHandler.getName(plot.owner) +" : " + stamp);
- }
- return true;
- }
- return PlayerFunctions.sendMessage(null, "Use /plot debugexec show-expired ");
- }
- case "seen": {
- if (args.length != 2) {
- return PlayerFunctions.sendMessage(null, "Use /plot debugexec seen ");
- }
- UUID uuid = UUIDHandler.getUUID(args[1]);
- if (uuid == null) {
- return PlayerFunctions.sendMessage(null, "player not found: " + args[1]);
- }
- OfflinePlayer op = UUIDHandler.uuidWrapper.getOfflinePlayer(uuid);
- if (op == null || !op.hasPlayedBefore()) {
- return PlayerFunctions.sendMessage(null, "player hasn't connected before: " + args[1]);
- }
- Timestamp stamp = new Timestamp(op.getLastPlayed());
- Date date = new Date(stamp.getTime());
- PlayerFunctions.sendMessage(null, "PLAYER: " + args[1]);
- PlayerFunctions.sendMessage(null, "UUID: " + uuid);
- PlayerFunctions.sendMessage(null, "Object: " + date.toGMTString());
- PlayerFunctions.sendMessage(null, "GMT: " + date.toGMTString());
- PlayerFunctions.sendMessage(null, "Local: " + date.toLocaleString());
- return true;
- }
- case "trim-check": {
- if (args.length != 2) {
- PlayerFunctions.sendMessage(null, "Use /plot debugexec trim-check ");
- PlayerFunctions.sendMessage(null, "&7 - Generates a list of regions to trim");
- return PlayerFunctions.sendMessage(null, "&7 - Run after plot expiry has run");
- }
- final World world = Bukkit.getWorld(args[1]);
- if (world == null || !PlotMain.isPlotWorld(args[1])) {
- return PlayerFunctions.sendMessage(null, "Invalid world: "+args[1]);
+ final String arg = args[0].toLowerCase();
+ switch (arg) {
+ case "stop-expire": {
+ if (ExpireManager.task != -1) {
+ Bukkit.getScheduler().cancelTask(ExpireManager.task);
+ } else {
+ return MainUtil.sendMessage(null, "Task already halted");
}
- final ArrayList empty = new ArrayList<>();
- boolean result = Trim.getTrimRegions(empty, world, new Runnable() {
+ ExpireManager.task = -1;
+ return MainUtil.sendMessage(null, "Cancelled task.");
+ }
+ case "start-expire": {
+ if (ExpireManager.task == -1) {
+ ExpireManager.runTask();
+ } else {
+ return MainUtil.sendMessage(null, "Plot expiry task already started");
+ }
+ return MainUtil.sendMessage(null, "Started plot expiry task");
+ }
+ case "update-expired": {
+ if (args.length > 1) {
+ final String world = args[1];
+ if (!BlockManager.manager.isWorld(world)) {
+ return MainUtil.sendMessage(null, "Invalid world: " + args[1]);
+ }
+ MainUtil.sendMessage(null, "Updating expired plot list");
+ ExpireManager.updateExpired(args[1]);
+ return true;
+ }
+ return MainUtil.sendMessage(null, "Use /plot debugexec update-expired ");
+ }
+ case "show-expired": {
+ if (args.length > 1) {
+ final String world = args[1];
+ if (!BlockManager.manager.isWorld(world)) {
+ return MainUtil.sendMessage(null, "Invalid world: " + args[1]);
+ }
+ if (!ExpireManager.expiredPlots.containsKey(args[1])) {
+ return MainUtil.sendMessage(null, "No task for world: " + args[1]);
+ }
+ MainUtil.sendMessage(null, "Expired plots (" + ExpireManager.expiredPlots.get(args[1]).size() + "):");
+ for (final Entry entry : ExpireManager.expiredPlots.get(args[1]).entrySet()) {
+ final Plot plot = entry.getKey();
+ final Long stamp = entry.getValue();
+ MainUtil.sendMessage(null, " - " + plot.world + ";" + plot.id.x + ";" + plot.id.y + ";" + UUIDHandler.getName(plot.owner) + " : " + stamp);
+ }
+ return true;
+ }
+ return MainUtil.sendMessage(null, "Use /plot debugexec show-expired ");
+ }
+ case "seen": {
+ if (args.length != 2) {
+ return MainUtil.sendMessage(null, "Use /plot debugexec seen ");
+ }
+ final UUID uuid = UUIDHandler.getUUID(args[1]);
+ if (uuid == null) {
+ return MainUtil.sendMessage(null, "player not found: " + args[1]);
+ }
+ BukkitOfflinePlayer op = UUIDHandler.uuidWrapper.getOfflinePlayer(uuid);
+ if ((op == null) || op.getLastPlayed() == 0) {
+ return MainUtil.sendMessage(null, "player hasn't connected before: " + args[1]);
+ }
+ final Timestamp stamp = new Timestamp(op.getLastPlayed());
+ final Date date = new Date(stamp.getTime());
+ MainUtil.sendMessage(null, "PLAYER: " + args[1]);
+ MainUtil.sendMessage(null, "UUID: " + uuid);
+ MainUtil.sendMessage(null, "Object: " + date.toGMTString());
+ MainUtil.sendMessage(null, "GMT: " + date.toGMTString());
+ MainUtil.sendMessage(null, "Local: " + date.toLocaleString());
+ return true;
+ }
+ case "trim-check": {
+ if (args.length != 2) {
+ MainUtil.sendMessage(null, "Use /plot debugexec trim-check ");
+ MainUtil.sendMessage(null, "&7 - Generates a list of regions to trim");
+ return MainUtil.sendMessage(null, "&7 - Run after plot expiry has run");
+ }
+ final String world = args[1];
+ if (!BlockManager.manager.isWorld(world) || !PlotSquared.isPlotWorld(args[1])) {
+ return MainUtil.sendMessage(null, "Invalid world: " + args[1]);
+ }
+ final ArrayList empty = new ArrayList<>();
+ final boolean result = Trim.getTrimRegions(empty, world, new Runnable() {
@Override
public void run() {
Trim.sendMessage("Processing is complete! Here's how many chunks would be deleted:");
Trim.sendMessage(" - MCA #: " + empty.size());
Trim.sendMessage(" - CHUNKS: " + (empty.size() * 1024) + " (max)");
Trim.sendMessage("Exporting log for manual approval...");
- final File file = new File(PlotMain.getMain().getDataFolder() + File.separator + "trim.txt");
+ final File file = new File(PlotSquared.IMP.getDirectory() + File.separator + "trim.txt");
PrintWriter writer;
try {
writer = new PrintWriter(file);
- String worldname = world.getName();
- for (ChunkLoc loc : empty) {
- writer.println(worldname +"/region/r." + loc.x + "." + loc.z +".mca" );
+ for (final ChunkLoc loc : empty) {
+ writer.println(world + "/region/r." + loc.x + "." + loc.z + ".mca");
}
writer.close();
Trim.sendMessage("File saved to 'plugins/PlotSquared/trim.txt'");
- } catch (FileNotFoundException e) {
+ } catch (final FileNotFoundException e) {
e.printStackTrace();
Trim.sendMessage("File failed to save! :(");
}
@@ -166,14 +161,14 @@ public class DebugExec extends SubCommand {
Trim.sendMessage(" - Add 31 to each number to get the end position");
}
});
- if (!result) {
- PlayerFunctions.sendMessage(null, "Trim task already started!");
- }
- return result;
- }
- }
+ if (!result) {
+ MainUtil.sendMessage(null, "Trim task already started!");
+ }
+ return result;
+ }
+ }
}
- PlayerFunctions.sendMessage(player, "Possible sub commands: /plot debugexec <" + StringUtils.join(allowed_params, "|") + ">");
+ MainUtil.sendMessage(player, "Possible sub commands: /plot debugexec <" + StringUtils.join(allowed_params, "|") + ">");
return true;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugFixFlags.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugFixFlags.java
index 112f10d48..d37f12a7d 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugFixFlags.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugFixFlags.java
@@ -18,65 +18,60 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
import java.util.Set;
-import org.bukkit.Bukkit;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.flag.AbstractFlag;
import com.intellectualcrafters.plot.flag.Flag;
import com.intellectualcrafters.plot.flag.FlagManager;
import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.BlockManager;
+import com.intellectualcrafters.plot.util.MainUtil;
public class DebugFixFlags extends SubCommand {
-
public DebugFixFlags() {
super(Command.DEBUGFIXFLAGS, "Attempt to fix all flags for a world", "debugclear", CommandCategory.DEBUG, false);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (plr != null) {
- PlayerFunctions.sendMessage(plr, C.NOT_CONSOLE);
+ MainUtil.sendMessage(plr, C.NOT_CONSOLE);
return false;
}
if (args.length != 1) {
- PlayerFunctions.sendMessage(plr, C.COMMAND_SYNTAX, "/plot debugfixflags ");
+ MainUtil.sendMessage(plr, C.COMMAND_SYNTAX, "/plot debugfixflags ");
return false;
}
- World world = Bukkit.getWorld(args[0]);
- if (world == null || !PlotMain.isPlotWorld(world)) {
- PlayerFunctions.sendMessage(plr, C.NOT_VALID_PLOT_WORLD, args[0]);
+ final String world = args[0];
+ if (!BlockManager.manager.isWorld(world) || !PlotSquared.isPlotWorld(world)) {
+ MainUtil.sendMessage(plr, C.NOT_VALID_PLOT_WORLD, args[0]);
return false;
}
- PlayerFunctions.sendMessage(plr, "&8--- &6Starting task &8 ---");
- for (Plot plot : PlotMain.getPlots(world).values()) {
- Set flags = plot.settings.flags;
- ArrayList toRemove = new ArrayList();
- for (Flag flag : flags) {
- AbstractFlag af = FlagManager.getFlag(flag.getKey());
+ MainUtil.sendMessage(plr, "&8--- &6Starting task &8 ---");
+ for (final Plot plot : PlotSquared.getPlots(world).values()) {
+ final Set flags = plot.settings.flags;
+ final ArrayList toRemove = new ArrayList();
+ for (final Flag flag : flags) {
+ final AbstractFlag af = FlagManager.getFlag(flag.getKey());
if (af == null) {
toRemove.add(flag);
}
}
- for (Flag flag : toRemove) {
+ for (final Flag flag : toRemove) {
plot.settings.flags.remove(flag);
}
if (toRemove.size() > 0) {
DBFunc.setFlags(plot.world, plot, plot.settings.flags);
}
}
- PlayerFunctions.sendMessage(plr, "&aDone!");
-
+ MainUtil.sendMessage(plr, "&aDone!");
return true;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugLoadTest.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugLoadTest.java
index c8294ea6a..3edf91893 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugLoadTest.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugLoadTest.java
@@ -18,40 +18,37 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.lang.reflect.Field;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.database.DBFunc;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
/**
* @author Citymonstret
*/
public class DebugLoadTest extends SubCommand {
-
public DebugLoadTest() {
super(Command.DEBUGLOADTEST, "This debug command will force the reload of all plots in the DB", "debugloadtest", CommandCategory.DEBUG, false);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (plr == null) {
try {
- final Field fPlots = PlotMain.class.getDeclaredField("plots");
+ final Field fPlots = PlotSquared.class.getDeclaredField("plots");
fPlots.setAccessible(true);
fPlots.set(null, DBFunc.getPlots());
} catch (final Exception e) {
- PlotMain.sendConsoleSenderMessage("&3===FAILED&3===");
+ PlotSquared.log("&3===FAILED&3===");
e.printStackTrace();
- PlotMain.sendConsoleSenderMessage("&3===END OF STACKTRACE===");
+ PlotSquared.log("&3===END OF STACKTRACE===");
}
} else {
- PlayerFunctions.sendMessage(plr, "&6This command can only be executed by console as it has been deemed unsafe if abused..");
+ MainUtil.sendMessage(plr, "&6This command can only be executed by console as it has been deemed unsafe if abused..");
}
return true;
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugRoadRegen.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugRoadRegen.java
index 6cac063f6..e15ce7ce9 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugRoadRegen.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugRoadRegen.java
@@ -18,40 +18,35 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
-import java.util.Arrays;
-
-import org.bukkit.Chunk;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.generator.HybridPlotManager;
import com.intellectualcrafters.plot.generator.HybridPlotWorld;
-import com.intellectualcrafters.plot.util.AbstractSetBlock;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
+import com.intellectualcrafters.plot.generator.HybridUtils;
+import com.intellectualcrafters.plot.object.ChunkLoc;
+import com.intellectualcrafters.plot.object.Location;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
public class DebugRoadRegen extends SubCommand {
-
public DebugRoadRegen() {
super(Command.DEBUGROADREGEN, "Regenerate all road schematic in your current chunk", "debugroadregen", CommandCategory.DEBUG, true);
}
-
+
@Override
- public boolean execute(final Player player, final String... args) {
- if (!(PlotMain.getWorldSettings(player.getWorld()) instanceof HybridPlotWorld)) {
+ public boolean execute(final PlotPlayer player, final String... args) {
+ Location loc = player.getLocation();
+ String world = loc.getWorld();
+ if (!(PlotSquared.getPlotWorld(world) instanceof HybridPlotWorld)) {
return sendMessage(player, C.NOT_IN_PLOT_WORLD);
}
- HybridPlotManager manager = (HybridPlotManager) PlotMain.getPlotManager(player.getWorld());
-
- Chunk chunk = player.getLocation().getChunk();
- boolean result = manager.regenerateRoad(chunk);
+ ChunkLoc chunk = new ChunkLoc(loc.getX() >> 4, loc.getZ() >> 4);
+ boolean result = HybridUtils.manager.regenerateRoad(world, chunk);
if (result) {
- AbstractSetBlock.setBlockManager.update(Arrays.asList(new Chunk[] {chunk}));
+ MainUtil.update(loc);
}
- PlayerFunctions.sendMessage(player, "&6Regenerating chunk: "+chunk.getX() + "," + chunk.getZ() + "\n&6 - Result: " + (result == true ? "&aSuccess" : "&cFailed"));
+ MainUtil.sendMessage(player, "&6Regenerating chunk: " + chunk.x + "," + chunk.z + "\n&6 - Result: " + (result == true ? "&aSuccess" : "&cFailed"));
return true;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugSaveTest.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugSaveTest.java
index 4f8417658..3391feb85 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugSaveTest.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/DebugSaveTest.java
@@ -18,36 +18,33 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
/**
* @author Citymonstret
*/
public class DebugSaveTest extends SubCommand {
-
public DebugSaveTest() {
super(Command.DEBUGSAVETEST, "This debug command will force the recreation of all plots in the DB", "debugsavetest", CommandCategory.DEBUG, false);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (plr == null) {
final ArrayList plots = new ArrayList();
- plots.addAll(PlotMain.getPlots());
+ plots.addAll(PlotSquared.getPlots());
DBFunc.createPlots(plots);
DBFunc.createAllSettingsAndHelpers(plots);
} else {
- PlayerFunctions.sendMessage(plr, "This debug command can only be executed by console as it has been deemed unsafe if abused");
+ MainUtil.sendMessage(plr, "This debug command can only be executed by console as it has been deemed unsafe if abused");
}
return true;
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Delete.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Delete.java
index e6d41006a..ae5772426 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Delete.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Delete.java
@@ -18,55 +18,66 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
-import net.milkbowl.vault.economy.Economy;
-
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
+import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.util.EconHandler;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
public class Delete extends SubCommand {
-
public Delete() {
super(Command.DELETE, "Delete a plot", "delete", CommandCategory.ACTIONS, true);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
- if (!PlayerFunctions.isInPlot(plr)) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
+ Location loc = plr.getLocation();
+ final Plot plot = MainUtil.getPlot(loc);
+ if (plot == null) {
return !sendMessage(plr, C.NOT_IN_PLOT);
}
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
- if (!PlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(PlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
+ if (!MainUtil.getTopPlot(plot).equals(MainUtil.getBottomPlot(plot))) {
return !sendMessage(plr, C.UNLINK_REQUIRED);
}
- if ((((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.uuidWrapper.getUUID(plr)))) && !PlotMain.hasPermission(plr, "plots.admin.command.delete")) {
+ if ((((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.uuidWrapper.getUUID(plr)))) && !Permissions.hasPermission(plr, "plots.admin.command.delete")) {
return !sendMessage(plr, C.NO_PLOT_PERMS);
}
assert plot != null;
- final PlotWorld pWorld = PlotMain.getWorldSettings(plot.getWorld());
- if (PlotMain.useEconomy && pWorld.USE_ECONOMY && (plot != null) && plot.hasOwner() && plot.getOwner().equals(UUIDHandler.getUUID(plr))) {
+ final PlotWorld pWorld = PlotSquared.getPlotWorld(plot.world);
+ if (PlotSquared.economy != null && pWorld.USE_ECONOMY && (plot != null) && plot.hasOwner() && plot.getOwner().equals(UUIDHandler.getUUID(plr))) {
final double c = pWorld.SELL_PRICE;
if (c > 0d) {
- final Economy economy = PlotMain.economy;
- economy.depositPlayer(plr, c);
+ EconHandler.depositPlayer(plr, c);
sendMessage(plr, C.ADDED_BALANCE, c + "");
}
}
- final boolean result = PlotMain.removePlot(plr.getWorld().getName(), plot.id, true);
+ if (MainUtil.runners.containsKey(plot)) {
+ MainUtil.sendMessage(plr, C.WAIT_FOR_TIMER);
+ return false;
+ }
+ final boolean result = PlotSquared.removePlot(loc.getWorld(), plot.id, true);
+ final long start = System.currentTimeMillis();
if (result) {
- plot.clear(plr, true);
- DBFunc.delete(plr.getWorld().getName(), plot);
+ boolean result2 = MainUtil.clearAsPlayer(plot, false, new Runnable() {
+ @Override
+ public void run() {
+ MainUtil.sendMessage(plr, C.CLEARING_DONE, "" + (System.currentTimeMillis() - start));
+ }
+ });
+ if (!result2) {
+ MainUtil.sendMessage(plr, C.WAIT_FOR_TIMER);
+ }
+ DBFunc.delete(loc.getWorld(), plot);
} else {
- PlayerFunctions.sendMessage(plr, "Plot deletion has been denied.");
+ MainUtil.sendMessage(plr, "Plot deletion has been denied.");
}
return true;
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Denied.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Denied.java
index c89e7121a..923b22deb 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Denied.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Denied.java
@@ -18,110 +18,104 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.UUID;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
-import com.intellectualcrafters.plot.events.PlayerPlotDeniedEvent;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.UUIDHandler;
-
-@SuppressWarnings("deprecation") public class Denied extends SubCommand {
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.BlockManager;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
+public class Denied extends SubCommand {
public Denied() {
super(Command.DENIED, "Manage plot helpers", "denied {add|remove} {player}", CommandCategory.ACTIONS, true);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (args.length < 2) {
- PlayerFunctions.sendMessage(plr, C.DENIED_NEED_ARGUMENT);
+ MainUtil.sendMessage(plr, C.DENIED_NEED_ARGUMENT);
return true;
}
- if (!PlayerFunctions.isInPlot(plr)) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT);
- return true;
+ Location loc = plr.getLocation();
+ final Plot plot = MainUtil.getPlot(loc);
+ if (plot == null) {
+ return !sendMessage(plr, C.NOT_IN_PLOT);
}
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
if ((plot == null) || !plot.hasOwner()) {
- PlayerFunctions.sendMessage(plr, C.PLOT_UNOWNED);
+ MainUtil.sendMessage(plr, C.PLOT_UNOWNED);
return false;
}
- if (!plot.getOwner().equals(UUIDHandler.getUUID(plr)) && !PlotMain.hasPermission(plr, "plots.admin.command.denied")) {
- PlayerFunctions.sendMessage(plr, C.NO_PLOT_PERMS);
+ if (!plot.getOwner().equals(UUIDHandler.getUUID(plr)) && !Permissions.hasPermission(plr, "plots.admin.command.denied")) {
+ MainUtil.sendMessage(plr, C.NO_PLOT_PERMS);
return true;
}
if (args[0].equalsIgnoreCase("add")) {
UUID uuid;
if (args[1].equalsIgnoreCase("*")) {
uuid = DBFunc.everyone;
-
} else {
uuid = UUIDHandler.getUUID(args[1]);
}
if (uuid == null) {
- PlayerFunctions.sendMessage(plr, C.INVALID_PLAYER, args[1]);
+ MainUtil.sendMessage(plr, C.INVALID_PLAYER, args[1]);
return false;
}
if (!plot.denied.contains(uuid)) {
if (plot.owner.equals(uuid)) {
- PlayerFunctions.sendMessage(plr, C.ALREADY_OWNER);
+ MainUtil.sendMessage(plr, C.ALREADY_OWNER);
return false;
}
if (plot.trusted.contains(uuid)) {
plot.trusted.remove(uuid);
- DBFunc.removeTrusted(plr.getWorld().getName(), plot, uuid);
+ DBFunc.removeTrusted(loc.getWorld(), plot, uuid);
}
if (plot.helpers.contains(uuid)) {
plot.helpers.remove(uuid);
- DBFunc.removeHelper(plr.getWorld().getName(), plot, uuid);
+ DBFunc.removeHelper(loc.getWorld(), plot, uuid);
}
plot.addDenied(uuid);
- DBFunc.setDenied(plr.getWorld().getName(), plot, uuid);
- final PlayerPlotDeniedEvent event = new PlayerPlotDeniedEvent(plr, plot, uuid, true);
- Bukkit.getPluginManager().callEvent(event);
+ DBFunc.setDenied(loc.getWorld(), plot, uuid);
+ //FIXME PlayerPlotDeniedEvent
} else {
- PlayerFunctions.sendMessage(plr, C.ALREADY_ADDED);
+ MainUtil.sendMessage(plr, C.ALREADY_ADDED);
return false;
}
- final Player player = UUIDHandler.uuidWrapper.getPlayer(uuid);
+ final PlotPlayer player = UUIDHandler.getPlayer(uuid);
if (!uuid.equals(DBFunc.everyone) && (player != null) && player.isOnline()) {
- final Plot pl = PlayerFunctions.getCurrentPlot(player);
+ final Plot pl = MainUtil.getPlot(loc);
if ((pl != null) && pl.id.equals(plot.id)) {
- PlayerFunctions.sendMessage(player, C.YOU_BE_DENIED);
- player.teleport(player.getWorld().getSpawnLocation());
+ MainUtil.sendMessage(player, C.YOU_BE_DENIED);
+ player.teleport(BlockManager.manager.getSpawn(loc.getWorld()));
}
}
- PlayerFunctions.sendMessage(plr, C.DENIED_ADDED);
+ MainUtil.sendMessage(plr, C.DENIED_ADDED);
return true;
} else if (args[0].equalsIgnoreCase("remove")) {
if (args[1].equalsIgnoreCase("*")) {
final UUID uuid = DBFunc.everyone;
if (!plot.denied.contains(uuid)) {
- PlayerFunctions.sendMessage(plr, C.WAS_NOT_ADDED);
+ MainUtil.sendMessage(plr, C.WAS_NOT_ADDED);
return true;
}
plot.removeDenied(uuid);
- DBFunc.removeDenied(plr.getWorld().getName(), plot, uuid);
- PlayerFunctions.sendMessage(plr, C.DENIED_REMOVED);
+ DBFunc.removeDenied(loc.getWorld(), plot, uuid);
+ MainUtil.sendMessage(plr, C.DENIED_REMOVED);
return true;
}
final UUID uuid = UUIDHandler.getUUID(args[1]);
plot.removeDenied(uuid);
- DBFunc.removeDenied(plr.getWorld().getName(), plot, uuid);
- final PlayerPlotDeniedEvent event = new PlayerPlotDeniedEvent(plr, plot, uuid, false);
- Bukkit.getPluginManager().callEvent(event);
- PlayerFunctions.sendMessage(plr, C.DENIED_REMOVED);
+ DBFunc.removeDenied(loc.getWorld(), plot, uuid);
+ // FIXME PlayerPlotDeniedEvent
+ MainUtil.sendMessage(plr, C.DENIED_REMOVED);
} else {
- PlayerFunctions.sendMessage(plr, C.DENIED_NEED_ARGUMENT);
+ MainUtil.sendMessage(plr, C.DENIED_NEED_ARGUMENT);
return true;
}
return true;
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/FlagCmd.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/FlagCmd.java
index 65780803f..4c34cbd96 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/FlagCmd.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/FlagCmd.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
@@ -26,9 +25,7 @@ import java.util.Arrays;
import java.util.HashMap;
import org.apache.commons.lang.StringUtils;
-import org.bukkit.entity.Player;
-import com.intellectualcrafters.plot.PlotMain;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.flag.AbstractFlag;
@@ -36,17 +33,19 @@ import com.intellectualcrafters.plot.flag.Flag;
import com.intellectualcrafters.plot.flag.FlagManager;
import com.intellectualcrafters.plot.flag.FlagValue;
import com.intellectualcrafters.plot.listeners.PlotListener;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
public class FlagCmd extends SubCommand {
-
public FlagCmd() {
super(Command.FLAG, "Manage plot flags", "f", CommandCategory.ACTIONS, true);
}
-
+
@Override
- public boolean execute(final Player player, final String... args) {
+ public boolean execute(final PlotPlayer player, final String... args) {
/*
* plot flag set fly true
* plot flag remove fly
@@ -55,172 +54,171 @@ public class FlagCmd extends SubCommand {
* plot flag list
*/
if (args.length == 0) {
- PlayerFunctions.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag ");
+ MainUtil.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag ");
return false;
}
- Plot plot = PlayerFunctions.getCurrentPlot(player);
+ Location loc = player.getLocation();
+ final Plot plot = MainUtil.getPlot(loc);
if (plot == null) {
- PlayerFunctions.sendMessage(player, C.NOT_IN_PLOT);
+ MainUtil.sendMessage(player, C.NOT_IN_PLOT);
return false;
}
if (!plot.hasOwner()) {
sendMessage(player, C.PLOT_NOT_CLAIMED);
return false;
}
- if (!plot.hasRights(player) && !PlotMain.hasPermission(player, "plots.set.flag.other")) {
- PlayerFunctions.sendMessage(player, C.NO_PERMISSION, "plots.set.flag.other");
+ if (!plot.isAdded(player.getUUID()) && !Permissions.hasPermission(player, "plots.set.flag.other")) {
+ MainUtil.sendMessage(player, C.NO_PERMISSION, "plots.set.flag.other");
return false;
}
switch (args[0].toLowerCase()) {
case "info": {
- if (!PlotMain.hasPermission(player, "plots.set.flag")) {
- PlayerFunctions.sendMessage(player, C.NO_PERMISSION, "plots.flag.info");
+ if (!Permissions.hasPermission(player, "plots.set.flag")) {
+ MainUtil.sendMessage(player, C.NO_PERMISSION, "plots.flag.info");
return false;
}
if (args.length != 2) {
- PlayerFunctions.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag info ");
+ MainUtil.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag info ");
return false;
}
- AbstractFlag af = FlagManager.getFlag(args[1]);
+ final AbstractFlag af = FlagManager.getFlag(args[1]);
if (af == null) {
- PlayerFunctions.sendMessage(player, C.NOT_VALID_FLAG);
- PlayerFunctions.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag info ");
+ MainUtil.sendMessage(player, C.NOT_VALID_FLAG);
+ MainUtil.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag info ");
return false;
}
// flag key
- PlayerFunctions.sendMessage(player, C.FLAG_KEY, af.getKey());
+ MainUtil.sendMessage(player, C.FLAG_KEY, af.getKey());
// flag type
- PlayerFunctions.sendMessage(player, C.FLAG_TYPE, af.value.getClass().getSimpleName());
+ MainUtil.sendMessage(player, C.FLAG_TYPE, af.value.getClass().getSimpleName());
// Flag type description
- PlayerFunctions.sendMessage(player, C.FLAG_DESC, af.getValueDesc());
- PlayerFunctions.sendMessage(player, "&cNot implemented.");
+ MainUtil.sendMessage(player, C.FLAG_DESC, af.getValueDesc());
+ MainUtil.sendMessage(player, "&cNot implemented.");
}
case "set": {
- if (!PlotMain.hasPermission(player, "plots.set.flag")) {
- PlayerFunctions.sendMessage(player, C.NO_PERMISSION, "plots.set.flag");
+ if (!Permissions.hasPermission(player, "plots.set.flag")) {
+ MainUtil.sendMessage(player, C.NO_PERMISSION, "plots.set.flag");
return false;
}
if (args.length < 3) {
- PlayerFunctions.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag set ");
+ MainUtil.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag set ");
return false;
}
- AbstractFlag af = FlagManager.getFlag(args[1].toLowerCase());
+ final AbstractFlag af = FlagManager.getFlag(args[1].toLowerCase());
if (af == null) {
- PlayerFunctions.sendMessage(player, C.NOT_VALID_FLAG);
+ MainUtil.sendMessage(player, C.NOT_VALID_FLAG);
return false;
}
- if (!PlotMain.hasPermission(player, "plots.set.flag." + args[1].toLowerCase())) {
- PlayerFunctions.sendMessage(player, C.NO_PERMISSION, "plots.set.flag." + args[1].toLowerCase());
+ if (!Permissions.hasPermission(player, "plots.set.flag." + args[1].toLowerCase())) {
+ MainUtil.sendMessage(player, C.NO_PERMISSION, "plots.set.flag." + args[1].toLowerCase());
return false;
}
- String value = StringUtils.join(Arrays.copyOfRange(args, 2, args.length), " ");
- Object parsed = af.parseValueRaw(value);
+ final String value = StringUtils.join(Arrays.copyOfRange(args, 2, args.length), " ");
+ final Object parsed = af.parseValueRaw(value);
if (parsed == null) {
- PlayerFunctions.sendMessage(player, "&c" + af.getValueDesc());
+ MainUtil.sendMessage(player, "&c" + af.getValueDesc());
return false;
}
final Flag flag = new Flag(FlagManager.getFlag(args[1].toLowerCase(), true), parsed);
- boolean result = FlagManager.addPlotFlag(plot, flag);
+ final boolean result = FlagManager.addPlotFlag(plot, flag);
if (!result) {
- PlayerFunctions.sendMessage(player, C.FLAG_NOT_ADDED);
+ MainUtil.sendMessage(player, C.FLAG_NOT_ADDED);
return false;
}
- PlayerFunctions.sendMessage(player, C.FLAG_ADDED);
+ MainUtil.sendMessage(player, C.FLAG_ADDED);
PlotListener.plotEntry(player, plot);
return true;
}
case "remove": {
- if (!PlotMain.hasPermission(player, "plots.flag.remove")) {
- PlayerFunctions.sendMessage(player, C.NO_PERMISSION, "plots.flag.remove");
+ if (!Permissions.hasPermission(player, "plots.flag.remove")) {
+ MainUtil.sendMessage(player, C.NO_PERMISSION, "plots.flag.remove");
return false;
}
- if (args.length != 2 && args.length != 3) {
- PlayerFunctions.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag remove [values]");
+ if ((args.length != 2) && (args.length != 3)) {
+ MainUtil.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag remove [values]");
return false;
}
- AbstractFlag af = FlagManager.getFlag(args[1].toLowerCase());
+ final AbstractFlag af = FlagManager.getFlag(args[1].toLowerCase());
if (af == null) {
- PlayerFunctions.sendMessage(player, C.NOT_VALID_FLAG);
+ MainUtil.sendMessage(player, C.NOT_VALID_FLAG);
return false;
}
- if (!PlotMain.hasPermission(player, "plots.set.flag." + args[1].toLowerCase())) {
- PlayerFunctions.sendMessage(player, C.NO_PERMISSION, "plots.set.flag." + args[1].toLowerCase());
+ if (!Permissions.hasPermission(player, "plots.set.flag." + args[1].toLowerCase())) {
+ MainUtil.sendMessage(player, C.NO_PERMISSION, "plots.set.flag." + args[1].toLowerCase());
return false;
}
- Flag flag = FlagManager.getPlotFlagAbs(plot, args[1].toLowerCase());
+ final Flag flag = FlagManager.getPlotFlagAbs(plot, args[1].toLowerCase());
if (flag == null) {
- PlayerFunctions.sendMessage(player, C.FLAG_NOT_IN_PLOT);
+ MainUtil.sendMessage(player, C.FLAG_NOT_IN_PLOT);
return false;
}
- if (args.length == 3 && flag.getAbstractFlag().isList()) {
- String value = StringUtils.join(Arrays.copyOfRange(args, 2, args.length), " ");
+ if ((args.length == 3) && flag.getAbstractFlag().isList()) {
+ final String value = StringUtils.join(Arrays.copyOfRange(args, 2, args.length), " ");
((FlagValue.ListValue) flag.getAbstractFlag().value).remove(flag.getValue(), value);
DBFunc.setFlags(plot.world, plot, plot.settings.flags);
- }
- else {
- boolean result = FlagManager.removePlotFlag(plot, flag.getKey());
+ } else {
+ final boolean result = FlagManager.removePlotFlag(plot, flag.getKey());
if (!result) {
- PlayerFunctions.sendMessage(player, C.FLAG_NOT_REMOVED);
+ MainUtil.sendMessage(player, C.FLAG_NOT_REMOVED);
return false;
}
}
- PlayerFunctions.sendMessage(player, C.FLAG_REMOVED);
+ MainUtil.sendMessage(player, C.FLAG_REMOVED);
PlotListener.plotEntry(player, plot);
return true;
}
case "add": {
- if (!PlotMain.hasPermission(player, "plots.flag.add")) {
- PlayerFunctions.sendMessage(player, C.NO_PERMISSION, "plots.flag.add");
+ if (!Permissions.hasPermission(player, "plots.flag.add")) {
+ MainUtil.sendMessage(player, C.NO_PERMISSION, "plots.flag.add");
return false;
}
if (args.length < 3) {
- PlayerFunctions.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag add ");
+ MainUtil.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag add ");
return false;
}
- AbstractFlag af = FlagManager.getFlag(args[1].toLowerCase());
+ final AbstractFlag af = FlagManager.getFlag(args[1].toLowerCase());
if (af == null) {
- PlayerFunctions.sendMessage(player, C.NOT_VALID_FLAG);
+ MainUtil.sendMessage(player, C.NOT_VALID_FLAG);
return false;
}
- if (!PlotMain.hasPermission(player, "plots.set.flag." + args[1].toLowerCase())) {
- PlayerFunctions.sendMessage(player, C.NO_PERMISSION, "plots.set.flag." + args[1].toLowerCase());
+ if (!Permissions.hasPermission(player, "plots.set.flag." + args[1].toLowerCase())) {
+ MainUtil.sendMessage(player, C.NO_PERMISSION, "plots.set.flag." + args[1].toLowerCase());
return false;
}
- String value = StringUtils.join(Arrays.copyOfRange(args, 2, args.length), " ");
- Object parsed = af.parseValueRaw(value);
+ final String value = StringUtils.join(Arrays.copyOfRange(args, 2, args.length), " ");
+ final Object parsed = af.parseValueRaw(value);
if (parsed == null) {
- PlayerFunctions.sendMessage(player, "&c" + af.getValueDesc());
+ MainUtil.sendMessage(player, "&c" + af.getValueDesc());
return false;
}
Flag flag = FlagManager.getPlotFlag(plot, args[1].toLowerCase());
- if (flag == null || !flag.getAbstractFlag().isList()) {
+ if ((flag == null) || !flag.getAbstractFlag().isList()) {
flag = new Flag(FlagManager.getFlag(args[1].toLowerCase(), true), parsed);
- }
- else {
+ } else {
((FlagValue.ListValue) flag.getAbstractFlag().value).add(flag.getValue(), value);
}
- boolean result = FlagManager.addPlotFlag(plot, flag);
+ final boolean result = FlagManager.addPlotFlag(plot, flag);
if (!result) {
- PlayerFunctions.sendMessage(player, C.FLAG_NOT_ADDED);
+ MainUtil.sendMessage(player, C.FLAG_NOT_ADDED);
return false;
}
DBFunc.setFlags(plot.world, plot, plot.settings.flags);
- PlayerFunctions.sendMessage(player, C.FLAG_ADDED);
+ MainUtil.sendMessage(player, C.FLAG_ADDED);
PlotListener.plotEntry(player, plot);
return true;
}
case "list": {
- if (!PlotMain.hasPermission(player, "plots.flag.list")) {
- PlayerFunctions.sendMessage(player, C.NO_PERMISSION, "plots.flag.list");
+ if (!Permissions.hasPermission(player, "plots.flag.list")) {
+ MainUtil.sendMessage(player, C.NO_PERMISSION, "plots.flag.list");
return false;
}
if (args.length != 1) {
- PlayerFunctions.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag list");
+ MainUtil.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag list");
return false;
}
- HashMap> flags = new HashMap<>();
- for (AbstractFlag af : FlagManager.getFlags()) {
- String type = af.value.getClass().getSimpleName().replaceAll("Value", "");
+ final HashMap> flags = new HashMap<>();
+ for (final AbstractFlag af : FlagManager.getFlags()) {
+ final String type = af.value.getClass().getSimpleName().replaceAll("Value", "");
if (!flags.containsKey(type)) {
flags.put(type, new ArrayList());
}
@@ -228,15 +226,15 @@ public class FlagCmd extends SubCommand {
}
String message = "";
String prefix = "";
- for (String flag : flags.keySet()) {
- message += prefix + "&6" + flag +": &7" + StringUtils.join(flags.get(flag), ", ");
+ for (final String flag : flags.keySet()) {
+ message += prefix + "&6" + flag + ": &7" + StringUtils.join(flags.get(flag), ", ");
prefix = "\n";
}
- PlayerFunctions.sendMessage(player, message);
+ MainUtil.sendMessage(player, message);
return true;
}
}
- PlayerFunctions.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag ");
+ MainUtil.sendMessage(player, C.COMMAND_SYNTAX, "/plot flag ");
return false;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Help.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Help.java
index 439d630a5..978afa09b 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Help.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Help.java
@@ -5,18 +5,17 @@
*
* >> File = Help.java >> Generated by: Citymonstret at 2014-08-11 17:32
*/
-
package com.intellectualcrafters.plot.commands;
-import org.bukkit.entity.Player;
+import com.intellectualcrafters.plot.object.PlotPlayer;
public class Help extends SubCommand {
public Help() {
super("help", "", "Get this help menu", "help", "he", SubCommand.CommandCategory.INFO, false);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
return false;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Helpers.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Helpers.java
index 791c09720..1640b2e18 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Helpers.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Helpers.java
@@ -18,45 +18,41 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.UUID;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
-import com.intellectualcrafters.plot.events.PlayerPlotHelperEvent;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
public class Helpers extends SubCommand {
-
public Helpers() {
super(Command.HELPERS, "Manage plot helpers", "helpers {add|remove} {player}", CommandCategory.ACTIONS, true);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (args.length < 2) {
- PlayerFunctions.sendMessage(plr, C.HELPER_NEED_ARGUMENT);
+ MainUtil.sendMessage(plr, C.HELPER_NEED_ARGUMENT);
return true;
}
- if (!PlayerFunctions.isInPlot(plr)) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT);
- return true;
+ Location loc = plr.getLocation();
+ final Plot plot = MainUtil.getPlot(loc);
+ if (plot == null) {
+ return !sendMessage(plr, C.NOT_IN_PLOT);
}
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
if ((plot == null) || !plot.hasOwner()) {
- PlayerFunctions.sendMessage(plr, C.PLOT_UNOWNED);
+ MainUtil.sendMessage(plr, C.PLOT_UNOWNED);
return false;
}
- if (!plot.getOwner().equals(UUIDHandler.getUUID(plr)) && !PlotMain.hasPermission(plr, "plots.admin.command.helpers")) {
- PlayerFunctions.sendMessage(plr, C.NO_PLOT_PERMS);
+ if (!plot.getOwner().equals(UUIDHandler.getUUID(plr)) && !Permissions.hasPermission(plr, "plots.admin.command.helpers")) {
+ MainUtil.sendMessage(plr, C.NO_PLOT_PERMS);
return true;
}
if (args[0].equalsIgnoreCase("add")) {
@@ -67,52 +63,50 @@ public class Helpers extends SubCommand {
uuid = UUIDHandler.getUUID(args[1]);
}
if (uuid == null) {
- PlayerFunctions.sendMessage(plr, C.INVALID_PLAYER, args[1]);
+ MainUtil.sendMessage(plr, C.INVALID_PLAYER, args[1]);
return false;
}
if (!plot.helpers.contains(uuid)) {
if (plot.owner.equals(uuid)) {
- PlayerFunctions.sendMessage(plr, C.ALREADY_OWNER);
+ MainUtil.sendMessage(plr, C.ALREADY_OWNER);
return false;
}
if (plot.trusted.contains(uuid)) {
plot.trusted.remove(uuid);
- DBFunc.removeTrusted(plr.getWorld().getName(), plot, uuid);
+ DBFunc.removeTrusted(loc.getWorld(), plot, uuid);
}
if (plot.denied.contains(uuid)) {
plot.denied.remove(uuid);
- DBFunc.removeDenied(plr.getWorld().getName(), plot, uuid);
+ DBFunc.removeDenied(loc.getWorld(), plot, uuid);
}
plot.addHelper(uuid);
- DBFunc.setHelper(plr.getWorld().getName(), plot, uuid);
- final PlayerPlotHelperEvent event = new PlayerPlotHelperEvent(plr, plot, uuid, true);
- Bukkit.getPluginManager().callEvent(event);
+ DBFunc.setHelper(loc.getWorld(), plot, uuid);
+ // FIXME PlayerPlotHelperEvent
} else {
- PlayerFunctions.sendMessage(plr, C.ALREADY_ADDED);
+ MainUtil.sendMessage(plr, C.ALREADY_ADDED);
return false;
}
- PlayerFunctions.sendMessage(plr, C.HELPER_ADDED);
+ MainUtil.sendMessage(plr, C.HELPER_ADDED);
return true;
} else if (args[0].equalsIgnoreCase("remove")) {
if (args[1].equalsIgnoreCase("*")) {
final UUID uuid = DBFunc.everyone;
if (!plot.helpers.contains(uuid)) {
- PlayerFunctions.sendMessage(plr, C.WAS_NOT_ADDED);
+ MainUtil.sendMessage(plr, C.WAS_NOT_ADDED);
return true;
}
plot.removeHelper(uuid);
- DBFunc.removeHelper(plr.getWorld().getName(), plot, uuid);
- PlayerFunctions.sendMessage(plr, C.HELPER_REMOVED);
+ DBFunc.removeHelper(loc.getWorld(), plot, uuid);
+ MainUtil.sendMessage(plr, C.HELPER_REMOVED);
return true;
}
final UUID uuid = UUIDHandler.getUUID(args[1]);
plot.removeHelper(uuid);
- DBFunc.removeHelper(plr.getWorld().getName(), plot, uuid);
- final PlayerPlotHelperEvent event = new PlayerPlotHelperEvent(plr, plot, uuid, false);
- Bukkit.getPluginManager().callEvent(event);
- PlayerFunctions.sendMessage(plr, C.HELPER_REMOVED);
+ DBFunc.removeHelper(loc.getWorld(), plot, uuid);
+ // FIXME PlayerPlotHelperEvent
+ MainUtil.sendMessage(plr, C.HELPER_REMOVED);
} else {
- PlayerFunctions.sendMessage(plr, C.HELPER_NEED_ARGUMENT);
+ MainUtil.sendMessage(plr, C.HELPER_NEED_ARGUMENT);
return true;
}
return true;
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Home.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Home.java
index 7ddf8ef47..e09b0e419 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Home.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Home.java
@@ -18,44 +18,41 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
/**
* @author Citymonstret
*/
public class Home extends SubCommand {
-
public Home() {
super(Command.HOME, "Go to your plot", "home {id|alias}", CommandCategory.TELEPORT, true);
}
-
+
private Plot isAlias(final String a) {
- for (final Plot p : PlotMain.getPlots()) {
+ for (final Plot p : PlotSquared.getPlots()) {
if ((p.settings.getAlias().length() > 0) && p.settings.getAlias().equalsIgnoreCase(a)) {
return p;
}
}
return null;
}
-
+
@Override
- public boolean execute(final Player plr, String... args) {
- final Plot[] plots = PlotMain.getPlots(plr).toArray(new Plot[0]);
+ public boolean execute(final PlotPlayer plr, String... args) {
+ final Plot[] plots = PlotSquared.getPlots(plr).toArray(new Plot[0]);
if (plots.length == 1) {
- PlotMain.teleportPlayer(plr, plr.getLocation(), plots[0]);
+ MainUtil.teleportPlayer(plr, plr.getLocation(), plots[0]);
return true;
} else if (plots.length > 1) {
if (args.length < 1) {
- args = new String[]{"1"};
+ args = new String[] { "1" };
}
int id = 0;
try {
@@ -65,30 +62,29 @@ public class Home extends SubCommand {
if ((temp = isAlias(args[0])) != null) {
if (temp.hasOwner()) {
if (temp.getOwner().equals(UUIDHandler.getUUID(plr))) {
- teleportPlayer(plr, temp);
+ MainUtil.teleportPlayer(plr, plr.getLocation(), temp);
return true;
}
}
- PlayerFunctions.sendMessage(plr, C.NOT_YOUR_PLOT);
+ MainUtil.sendMessage(plr, C.NOT_YOUR_PLOT);
return false;
}
- PlayerFunctions.sendMessage(plr, C.NOT_VALID_NUMBER);
+ MainUtil.sendMessage(plr, C.NOT_VALID_NUMBER);
return true;
}
if ((id > (plots.length)) || (id < 1)) {
- PlayerFunctions.sendMessage(plr, C.NOT_VALID_NUMBER);
+ MainUtil.sendMessage(plr, C.NOT_VALID_NUMBER);
return false;
}
- teleportPlayer(plr, plots[id - 1]);
+ MainUtil.teleportPlayer(plr, plr.getLocation(), plots[id - 1]);
return true;
} else {
- PlayerFunctions.sendMessage(plr, C.NO_PLOTS);
+ MainUtil.sendMessage(plr, C.NO_PLOTS);
return true;
}
}
- public void teleportPlayer(Player player, Plot plot) {
- PlotMain.teleportPlayer(player, player.getLocation(), plot);
+ public void teleportPlayer(final PlotPlayer player, final Plot plot) {
+ MainUtil.teleportPlayer(player, player.getLocation(), plot);
}
-
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Inbox.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Inbox.java
index baec7d6ca..77bedefaf 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Inbox.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Inbox.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
@@ -26,63 +25,61 @@ import java.util.Arrays;
import java.util.List;
import java.util.UUID;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotComment;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
+import com.intellectualcrafters.plot.util.TaskManager;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
public class Inbox extends SubCommand {
-
public Inbox() {
super(Command.INBOX, "Review the comments for a plot", "inbox", CommandCategory.ACTIONS, true);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
- boolean report = false;
- if (args.length == 1){
- if (args[0].equalsIgnoreCase("reports")) {
- report = true;
- }
- }
- if (!PlayerFunctions.isInPlot(plr) && !report) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT);
+ public boolean execute(final PlotPlayer plr, final String... args) {
+ boolean report = false;
+ if (args.length == 1) {
+ if (args[0].equalsIgnoreCase("reports")) {
+ report = true;
+ }
+ }
+ Location loc = plr.getLocation();
+ final Plot plot = MainUtil.getPlot(loc);
+ if (plot == null && !report) {
+ return !sendMessage(plr, C.NOT_IN_PLOT);
+ }
+ if ((plot != null) && !plot.hasOwner()) {
+ MainUtil.sendMessage(plr, C.NOT_IN_PLOT);
return false;
}
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
- if (plot != null && !plot.hasOwner()) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT);
- return false;
- }
-
Integer tier;
final UUID uuid = UUIDHandler.getUUID(plr);
- if (PlotMain.hasPermission(plr, "plots.comment.admin")) {
+ if (Permissions.hasPermission(plr, "plots.comment.admin")) {
tier = 0;
- } else if (plot != null && plot.owner.equals(uuid)) {
+ } else if ((plot != null) && plot.owner.equals(uuid)) {
tier = 1;
- } else if (plot != null && plot.helpers.contains(uuid)) {
+ } else if ((plot != null) && plot.helpers.contains(uuid)) {
tier = 2;
- } else if (plot != null && plot.trusted.contains(uuid)) {
+ } else if ((plot != null) && plot.trusted.contains(uuid)) {
tier = 3;
} else {
tier = 4;
}
final boolean below;
if (args.length > 0) {
- below = false;
+ below = false;
switch (args[0].toLowerCase()) {
case "admin":
if (tier <= 0) {
tier = 0;
} else {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.admin");
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.admin");
return false;
}
break;
@@ -90,7 +87,7 @@ public class Inbox extends SubCommand {
if (tier <= 1) {
tier = 1;
} else {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.owner");
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.owner");
return false;
}
break;
@@ -98,7 +95,7 @@ public class Inbox extends SubCommand {
if (tier <= 2) {
tier = 2;
} else {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.helper");
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.helper");
return false;
}
break;
@@ -106,7 +103,7 @@ public class Inbox extends SubCommand {
if (tier <= 3) {
tier = 3;
} else {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.trusted");
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.trusted");
return false;
}
break;
@@ -114,49 +111,44 @@ public class Inbox extends SubCommand {
if (tier <= 4) {
tier = 4;
} else {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.everyone");
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.everyone");
return false;
}
break;
case "reports":
- if (tier <= 0) {
+ if (tier <= 0) {
tier = -1;
} else {
- PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.admin");
+ MainUtil.sendMessage(plr, C.NO_PERMISSION, "plots.inbox.admin");
return false;
}
- break;
+ break;
default:
- PlayerFunctions.sendMessage(plr, C.INVALID_INBOX, Arrays.copyOfRange(new String[]{"admin", "owner", "helper", "trusted", "everyone"}, Math.max(0, tier), 4));
+ MainUtil.sendMessage(plr, C.INVALID_INBOX, Arrays.copyOfRange(new String[] { "admin", "owner", "helper", "trusted", "everyone" }, Math.max(0, tier), 4));
return false;
}
+ } else {
+ below = true;
}
- else {
- below = true;
- }
-
- final String world = plr.getWorld().getName();
+ final String world = loc.getWorld();
final int tier2 = tier;
-
- Bukkit.getScheduler().runTaskAsynchronously(PlotMain.getMain(), new Runnable() {
+ TaskManager.runTaskAsync(new Runnable() {
@Override
public void run() {
- ArrayList comments = null;
- if (tier2 == -1) {
- comments = DBFunc.getComments(world, null, 0, false);
- }
- else {
- comments = plot.settings.getComments(tier2);
- }
+ ArrayList comments = null;
+ if (tier2 == -1) {
+ comments = DBFunc.getComments(world, null, 0, false);
+ } else {
+ comments = plot.settings.getComments(tier2);
+ }
if (comments == null) {
comments = DBFunc.getComments(world, plot, tier2, below);
plot.settings.setComments(comments);
}
-
if (args.length == 2) {
final String[] split = args[1].toLowerCase().split(":");
if (!split[0].equals("clear")) {
- PlayerFunctions.sendMessage(plr, "&c/plot inbox [tier] [clear][:#]");
+ MainUtil.sendMessage(plr, "&c/plot inbox [tier] [clear][:#]");
return;
}
if (split.length > 1) {
@@ -165,10 +157,10 @@ public class Inbox extends SubCommand {
final PlotComment comment = comments.get(index - 1);
DBFunc.removeComment(world, plot, comment);
plot.settings.removeComment(comment);
- PlayerFunctions.sendMessage(plr, C.COMMENT_REMOVED, "1 comment");
+ MainUtil.sendMessage(plr, C.COMMENT_REMOVED, "1 comment");
return;
} catch (final Exception e) {
- PlayerFunctions.sendMessage(plr, "&cInvalid index:\n/plot inbox [tier] [clear][:#]");
+ MainUtil.sendMessage(plr, "&cInvalid index:\n/plot inbox [tier] [clear][:#]");
return;
}
}
@@ -176,7 +168,7 @@ public class Inbox extends SubCommand {
DBFunc.removeComment(world, plot, comment);
}
plot.settings.removeComments(comments);
- PlayerFunctions.sendMessage(plr, C.COMMENT_REMOVED, "all comments in that category");
+ MainUtil.sendMessage(plr, C.COMMENT_REMOVED, "all comments in that category");
} else {
final List recipients = Arrays.asList("A", "O", "H", "T", "E");
int count = 1;
@@ -190,7 +182,7 @@ public class Inbox extends SubCommand {
if (comments.size() == 0) {
message.append("&cNo messages.");
}
- PlayerFunctions.sendMessage(plr, message.toString());
+ MainUtil.sendMessage(plr, message.toString());
}
}
});
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Info.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Info.java
index d92d38516..a58797282 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Info.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Info.java
@@ -18,106 +18,97 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
import java.util.UUID;
import org.apache.commons.lang.StringUtils;
-import org.bukkit.Bukkit;
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.block.Biome;
-import org.bukkit.entity.Player;
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.flag.FlagManager;
import com.intellectualcrafters.plot.object.InfoInventory;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
+import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.util.BlockManager;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
/**
* @author Citymonstret
*/
-@SuppressWarnings({"javadoc"}) public class Info extends SubCommand {
-
+@SuppressWarnings({ "javadoc" })
+public class Info extends SubCommand {
public Info() {
super(Command.INFO, "Display plot info", "info", CommandCategory.INFO, false);
}
-
+
@Override
- public boolean execute(final Player player, String... args) {
- World world;
+ public boolean execute(final PlotPlayer player, String... args) {
Plot plot;
+ String world;
if (player != null) {
- world = player.getWorld();
- if (!PlotMain.isPlotWorld(world)) {
- PlayerFunctions.sendMessage(player, C.NOT_IN_PLOT_WORLD);
+ Location loc = player.getLocation();
+ world = loc.getWorld();
+ if (!PlotSquared.isPlotWorld(world)) {
+ MainUtil.sendMessage(player, C.NOT_IN_PLOT_WORLD);
return false;
}
- if (!PlayerFunctions.isInPlot(player)) {
- PlayerFunctions.sendMessage(player, C.NOT_IN_PLOT);
- return false;
+ plot = MainUtil.getPlot(loc);
+ if (plot == null) {
+ return !sendMessage(player, C.NOT_IN_PLOT);
}
- plot = PlayerFunctions.getCurrentPlot(player);
} else {
if (args.length < 2) {
- PlayerFunctions.sendMessage(null, C.INFO_SYNTAX_CONSOLE);
+ MainUtil.sendMessage(null, C.INFO_SYNTAX_CONSOLE);
return false;
}
- final PlotWorld plotworld = PlotMain.getWorldSettings(args[0]);
+ final PlotWorld plotworld = PlotSquared.getPlotWorld(args[0]);
if (plotworld == null) {
- PlayerFunctions.sendMessage(player, C.NOT_VALID_WORLD);
+ MainUtil.sendMessage(player, C.NOT_VALID_WORLD);
return false;
}
try {
final String[] split = args[1].split(";");
final PlotId id = new PlotId(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
- plot = PlotHelper.getPlot(Bukkit.getWorld(plotworld.worldname), id);
+ plot = MainUtil.getPlot(plotworld.worldname, id);
if (plot == null) {
- PlayerFunctions.sendMessage(player, C.NOT_VALID_PLOT_ID);
+ MainUtil.sendMessage(player, C.NOT_VALID_PLOT_ID);
return false;
}
- world = Bukkit.getWorld(args[0]);
+ world = args[0];
if (args.length == 3) {
- args = new String[]{args[2]};
+ args = new String[] { args[2] };
} else {
args = new String[0];
}
} catch (final Exception e) {
- PlayerFunctions.sendMessage(player, C.INFO_SYNTAX_CONSOLE);
+ MainUtil.sendMessage(player, C.INFO_SYNTAX_CONSOLE);
return false;
}
}
-
if ((args.length == 1) && args[0].equalsIgnoreCase("inv")) {
new InfoInventory(plot, player).build().display();
return true;
}
-
final boolean hasOwner = plot.hasOwner();
boolean containsEveryone;
boolean trustedEveryone;
-
// Wildcard player {added}
{
containsEveryone = (plot.helpers != null) && plot.helpers.contains(DBFunc.everyone);
trustedEveryone = (plot.trusted != null) && plot.trusted.contains(DBFunc.everyone);
}
-
// Unclaimed?
if (!hasOwner && !containsEveryone && !trustedEveryone) {
- PlayerFunctions.sendMessage(player, C.PLOT_INFO_UNCLAIMED, (plot.id.x + ";" + plot.id.y));
+ MainUtil.sendMessage(player, C.PLOT_INFO_UNCLAIMED, (plot.id.x + ";" + plot.id.y));
return true;
}
-
String owner = "none";
if (plot.owner != null) {
owner = UUIDHandler.getName(plot.owner);
@@ -126,21 +117,19 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
owner = plot.owner.toString();
}
String info = C.PLOT_INFO.s();
-
if (args.length == 1) {
info = getCaption(args[0].toLowerCase());
if (info == null) {
- PlayerFunctions.sendMessage(player, "&6Categories&7: &ahelpers&7, &aalias&7, &abiome&7, &adenied&7, &aflags&7, &aid&7, &asize&7, &atrusted&7, &aowner&7, &arating");
+ MainUtil.sendMessage(player, "&6Categories&7: &ahelpers&7, &aalias&7, &abiome&7, &adenied&7, &aflags&7, &aid&7, &asize&7, &atrusted&7, &aowner&7, &arating");
return false;
}
}
-
info = format(info, world, plot, player);
- PlayerFunctions.sendMessage(player, C.PLOT_INFO_HEADER);
- PlayerFunctions.sendMessage(player, info, false);
+ MainUtil.sendMessage(player, C.PLOT_INFO_HEADER);
+ MainUtil.sendMessage(player, info, false);
return true;
}
-
+
private String getCaption(final String string) {
switch (string) {
case "helpers":
@@ -167,21 +156,19 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
return null;
}
}
-
- private String format(String info, final World world, final Plot plot, final Player player) {
-
+
+ private String format(String info, final String world, final Plot plot, final PlotPlayer player) {
final PlotId id = plot.id;
- final PlotId id2 = PlayerFunctions.getTopPlot(world, plot).id;
- final int num = PlayerFunctions.getPlotSelectionIds(id, id2).size();
+ final PlotId id2 = MainUtil.getTopPlot(plot).id;
+ final int num = MainUtil.getPlotSelectionIds(id, id2).size();
final String alias = plot.settings.getAlias().length() > 0 ? plot.settings.getAlias() : "none";
- final String biome = getBiomeAt(plot).toString();
+ final String biome = BlockManager.manager.getBiome(MainUtil.getPlotBottomLoc(world, plot.id).add(1, 0, 1));
final String helpers = getPlayerList(plot.helpers);
final String trusted = getPlayerList(plot.trusted);
final String denied = getPlayerList(plot.denied);
final String rating = String.format("%.1f", DBFunc.getRatings(plot));
final String flags = "&6" + (StringUtils.join(FlagManager.getPlotFlags(plot), "").length() > 0 ? StringUtils.join(FlagManager.getPlotFlags(plot), "&7, &6") : "none");
- final boolean build = (player == null) || plot.hasRights(player);
-
+ final boolean build = (player == null) || plot.isAdded(player.getUUID());
String owner = "none";
if (plot.owner != null) {
owner = UUIDHandler.getName(plot.owner);
@@ -189,7 +176,6 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
if (owner == null) {
owner = plot.owner.toString();
}
-
info = info.replaceAll("%alias%", alias);
info = info.replaceAll("%id%", id.toString());
info = info.replaceAll("%id2%", id2.toString());
@@ -203,10 +189,9 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
info = info.replaceAll("%flags%", flags);
info = info.replaceAll("%build%", build + "");
info = info.replaceAll("%desc%", "No description set.");
-
return info;
}
-
+
private String getPlayerList(final ArrayList l) {
if ((l == null) || (l.size() < 1)) {
return " none";
@@ -222,7 +207,7 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
}
return list.toString();
}
-
+
private String getPlayerName(final UUID uuid) {
if (uuid == null) {
return "unknown";
@@ -230,16 +215,10 @@ import com.intellectualcrafters.plot.util.UUIDHandler;
if (uuid.equals(DBFunc.everyone) || uuid.toString().equalsIgnoreCase(DBFunc.everyone.toString())) {
return "everyone";
}
- String name = UUIDHandler.getName(uuid);
+ final String name = UUIDHandler.getName(uuid);
if (name == null) {
return "unknown";
}
return name;
}
-
- private Biome getBiomeAt(final Plot plot) {
- final World w = Bukkit.getWorld(plot.world);
- final Location bl = PlotHelper.getPlotTopLoc(w, plot.id);
- return bl.getBlock().getBiome();
- }
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Inventory.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Inventory.java
index 4921d16ac..785217c9c 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Inventory.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Inventory.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
@@ -26,18 +25,19 @@ import java.util.ArrayList;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
-import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
-public class Inventory extends SubCommand {
+import com.intellectualcrafters.plot.object.BukkitPlayer;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+public class Inventory extends SubCommand {
public Inventory() {
super("inventory", "plots.inventory", "Open a command inventory", "inventory", "inv", CommandCategory.INFO, true);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
final ArrayList cmds = new ArrayList<>();
for (final SubCommand cmd : MainCommand.subCommands) {
if (cmd.permission.hasPermission(plr)) {
@@ -49,10 +49,11 @@ public class Inventory extends SubCommand {
for (final SubCommand cmd : cmds) {
inventory.addItem(getItem(cmd));
}
- plr.openInventory(inventory);
+ // FIXME unchecked cast
+ ((BukkitPlayer) plr).player.openInventory(inventory);
return true;
}
-
+
private ItemStack getItem(final SubCommand cmd) {
final ItemStack stack = new ItemStack(Material.COMMAND);
final ItemMeta meta = stack.getItemMeta();
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Kick.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Kick.java
index 6c083384f..0e5fc4394 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Kick.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Kick.java
@@ -18,49 +18,48 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
-import org.bukkit.Bukkit;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
import com.intellectualcrafters.plot.config.C;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.UUIDHandler;
-
-@SuppressWarnings({"unused", "deprecation", "javadoc"}) public class Kick extends SubCommand {
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.BlockManager;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
+@SuppressWarnings({ "unused", "deprecation", "javadoc" })
+public class Kick extends SubCommand {
public Kick() {
super(Command.KICK, "Kick a player from your plot", "kick", CommandCategory.ACTIONS, true);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
- if (!PlayerFunctions.isInPlot(plr)) {
- PlayerFunctions.sendMessage(plr, "You're not in a plot.");
- return false;
+ public boolean execute(final PlotPlayer plr, final String... args) {
+ Location loc = plr.getLocation();
+ final Plot plot = MainUtil.getPlot(loc);
+ if (plot == null) {
+ return !sendMessage(plr, C.NOT_IN_PLOT);
}
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
- if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !PlotMain.hasPermission(plr, "plots.admin.command.kick")) {
- PlayerFunctions.sendMessage(plr, C.NO_PLOT_PERMS);
+ if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !Permissions.hasPermission(plr, "plots.admin.command.kick")) {
+ MainUtil.sendMessage(plr, C.NO_PLOT_PERMS);
return false;
}
if (args.length != 1) {
- PlayerFunctions.sendMessage(plr, "&c/plot kick ");
+ MainUtil.sendMessage(plr, "&c/plot kick ");
return false;
}
- if (Bukkit.getPlayer(args[0]) == null) {
- PlayerFunctions.sendMessage(plr, C.INVALID_PLAYER, args[0]);
+ PlotPlayer player = UUIDHandler.getPlayer(args[0]);
+ if (player == null) {
+ MainUtil.sendMessage(plr, C.INVALID_PLAYER, args[0]);
return false;
}
- final Player player = Bukkit.getPlayer(args[0]);
- if (!player.getWorld().equals(plr.getWorld()) || !PlayerFunctions.isInPlot(player) || (PlayerFunctions.getCurrentPlot(player) == null) || !PlayerFunctions.getCurrentPlot(player).equals(plot)) {
- PlayerFunctions.sendMessage(plr, C.INVALID_PLAYER.s().replaceAll("%player%", args[0]));
+ if (!player.getLocation().getWorld().equals(loc.getWorld()) || !plot.equals(MainUtil.getPlot(loc))) {
+ MainUtil.sendMessage(plr, C.INVALID_PLAYER.s().replaceAll("%player%", args[0]));
return false;
}
- player.teleport(player.getWorld().getSpawnLocation());
+ player.teleport(BlockManager.manager.getSpawn(loc.getWorld()));
return true;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/MainCommand.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/MainCommand.java
index 54e913c49..a0d12fe46 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/MainCommand.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/MainCommand.java
@@ -18,63 +18,53 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.bukkit.ChatColor;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandExecutor;
-import org.bukkit.command.CommandSender;
-import org.bukkit.command.TabCompleter;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
import com.intellectualcrafters.plot.util.StringComparison;
/**
- * PlotMain command class
+ * PlotSquared command class
*
* @author Citymonstret
*/
-public class MainCommand implements CommandExecutor, TabCompleter {
-
+public class MainCommand {
/**
* Main Permission Node
*/
- public static final String MAIN_PERMISSION = "plots.use";
-
- private final static SubCommand[] _subCommands = new SubCommand[]{new Setup(), new DebugSaveTest(), new DebugLoadTest(), new CreateRoadSchematic(), new RegenAllRoads(), new DebugClear(), new Ban(), new Unban(), new OP(), new DEOP(), new Claim(), new Paste(), new Copy(), new Clipboard(), new Auto(), new Home(), new Visit(), new TP(), new Set(), new Clear(), new Delete(), new SetOwner(), new Denied(), new Helpers(), new Trusted(), new Info(), new list(), new Help(), new Debug(), new Schematic(), new plugin(), new Inventory(), new Purge(), new Reload(), new Merge(), new Unlink(), new Kick(), new Rate(), new DebugClaimTest(), new Inbox(), new Comment(), new Database(), new Unclaim(), new Swap(), new MusicSubcommand(), new DebugRoadRegen(), new Trim(), new DebugExec(), new FlagCmd(), new Target(), new DebugFixFlags(), new Move(), new Condense() };
-
+ private final static SubCommand[] _subCommands = new SubCommand[] { new Setup(), new DebugSaveTest(), new DebugLoadTest(), new CreateRoadSchematic(), new RegenAllRoads(), new DebugClear(), new Claim(), new Auto(), new Home(), new Visit(), new TP(), new Set(), new Clear(), new Delete(), new SetOwner(), new Denied(), new Helpers(), new Trusted(), new Info(), new list(), new Help(), new Debug(), new Schematic(), new plugin(), new Inventory(), new Purge(), new Reload(), new Merge(), new Unlink(), new Kick(), new Rate(), new DebugClaimTest(), new Inbox(), new Comment(), new Database(), new Unclaim(), new Swap(), new MusicSubcommand(), new DebugRoadRegen(), new Trim(), new DebugExec(), new FlagCmd(), new Target(), new DebugFixFlags(), new Move(), new Condense() };
public final static ArrayList subCommands = new ArrayList() {
{
addAll(Arrays.asList(_subCommands));
}
};
- public static boolean no_permission(final Player player, final String permission) {
- PlayerFunctions.sendMessage(player, C.NO_PERMISSION, permission);
+ public static boolean no_permission(final PlotPlayer player, final String permission) {
+ MainUtil.sendMessage(player, C.NO_PERMISSION, permission);
return false;
}
- public static List getCommands(final SubCommand.CommandCategory category, final Player player) {
+ public static List getCommands(final SubCommand.CommandCategory category, final PlotPlayer player) {
final List cmds = new ArrayList<>();
for (final SubCommand c : subCommands) {
- if (!c.isPlayer || player != null) {
- if ((c.category.equals(category)) && c.permission.hasPermission(player)) {
- cmds.add(c);
- }
- }
+ if (!c.isPlayer || (player != null)) {
+ if ((c.category.equals(category)) && c.permission.hasPermission(player)) {
+ cmds.add(c);
+ }
+ }
}
return cmds;
}
- public static List helpMenu(final Player player, final SubCommand.CommandCategory category, int page) {
+ public static List helpMenu(final PlotPlayer player, final SubCommand.CommandCategory category, int page) {
List commands;
if (category != null) {
commands = getCommands(category, player);
@@ -92,15 +82,11 @@ public class MainCommand implements CommandExecutor, TabCompleter {
if (max > commands.size()) {
max = commands.size();
}
-
final List help = new ArrayList<>();
-
help.add(C.HELP_HEADER.s());
// HELP_CATEGORY("&cCategory: &6%category%&c, Page: %current%&c/&6%max%&c, Displaying: &6%dis%&c/&6%total%"),
help.add(C.HELP_CATEGORY.s().replace("%category%", category == null ? "All" : category.toString()).replace("%current%", "" + (page + 1)).replace("%max%", "" + (totalPages + 1)).replace("%dis%", "" + (commands.size() % perPage)).replace("%total%", "" + commands.size()));
-
SubCommand cmd;
-
final int start = page * perPage;
for (int x = start; x < max; x++) {
cmd = commands.get(x);
@@ -113,19 +99,15 @@ public class MainCommand implements CommandExecutor, TabCompleter {
}
return help;
}
-
+
private static String t(final String s) {
- return ChatColor.translateAlternateColorCodes('&', s);
+ return MainUtil.colorise('&', s);
}
- @Override
- public boolean onCommand(final CommandSender sender, final Command cmd, final String commandLabel, final String[] args) {
- final Player player = (sender instanceof Player) ? (Player) sender : null;
-
- if (!PlotMain.hasPermission(player, MAIN_PERMISSION)) {
- return no_permission(player, MAIN_PERMISSION);
+ public static boolean onCommand(final PlotPlayer player, final String cmd, final String... args) {
+ if (!Permissions.hasPermission(player, PlotSquared.MAIN_PERMISSION)) {
+ return no_permission(player, PlotSquared.MAIN_PERMISSION);
}
-
if ((args.length < 1) || ((args.length >= 1) && (args[0].equalsIgnoreCase("help") || args[0].equalsIgnoreCase("he")))) {
if (args.length < 2) {
final StringBuilder builder = new StringBuilder();
@@ -134,7 +116,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
builder.append("\n").append(C.HELP_INFO_ITEM.s().replaceAll("%category%", category.toString().toLowerCase()).replaceAll("%category_desc%", category.toString()));
}
builder.append("\n").append(C.HELP_INFO_ITEM.s().replaceAll("%category%", "all").replaceAll("%category_desc%", "Display all commands"));
- return PlayerFunctions.sendMessage(player, builder.toString());
+ return MainUtil.sendMessage(player, builder.toString());
}
final String cat = args[1];
SubCommand.CommandCategory cato = null;
@@ -144,26 +126,23 @@ public class MainCommand implements CommandExecutor, TabCompleter {
break;
}
}
- if (cato == null && !cat.equalsIgnoreCase("all")) {
+ if ((cato == null) && !cat.equalsIgnoreCase("all")) {
final StringBuilder builder = new StringBuilder();
builder.append(C.HELP_INFO.s());
for (final SubCommand.CommandCategory category : SubCommand.CommandCategory.values()) {
builder.append("\n").append(C.HELP_INFO_ITEM.s().replaceAll("%category%", category.toString().toLowerCase()).replaceAll("%category_desc%", category.toString()));
}
- return PlayerFunctions.sendMessage(player, builder.toString(), false);
+ return MainUtil.sendMessage(player, builder.toString(), false);
}
final StringBuilder help = new StringBuilder();
int page = 0;
-
boolean digit = true;
-
String arg2;
if (args.length > 2) {
arg2 = args[2];
} else {
arg2 = "1";
}
-
for (final char c : arg2.toCharArray()) {
if (!Character.isDigit(c)) {
digit = false;
@@ -176,11 +155,10 @@ public class MainCommand implements CommandExecutor, TabCompleter {
page = 0;
}
}
-
for (final String string : helpMenu(player, cato, page)) {
help.append(string).append("\n");
}
- sender.sendMessage(ChatColor.translateAlternateColorCodes('&', help.toString()));
+ player.sendMessage(MainUtil.colorise('&', help.toString()));
// return PlayerFunctions.sendMessage(player, help.toString());
} else {
for (final SubCommand command : subCommands) {
@@ -191,61 +169,24 @@ public class MainCommand implements CommandExecutor, TabCompleter {
if ((player != null) || !command.isPlayer) {
return command.execute(player, arguments);
} else {
- return !PlayerFunctions.sendMessage(null, C.IS_CONSOLE);
+ return !MainUtil.sendMessage(null, C.IS_CONSOLE);
}
} else {
return no_permission(player, command.permission.permission.toLowerCase());
}
}
}
- PlayerFunctions.sendMessage(player, C.NOT_VALID_SUBCOMMAND);
-
+ MainUtil.sendMessage(player, C.NOT_VALID_SUBCOMMAND);
final String[] commands = new String[subCommands.size()];
for (int x = 0; x < subCommands.size(); x++) {
commands[x] = subCommands.get(x).cmd;
}
-
/* Let's try to get a proper usage string */
final String command = new StringComparison(args[0], commands).getBestMatch();
- return PlayerFunctions.sendMessage(player, C.DID_YOU_MEAN, "/plot " + command);
+ return MainUtil.sendMessage(player, C.DID_YOU_MEAN, "/plot " + command);
// PlayerFunctions.sendMessage(player, C.DID_YOU_MEAN, new
// StringComparsion(args[0], commands).getBestMatch());
}
return true;
}
-
- @Override
- public List onTabComplete(final CommandSender commandSender, final Command command, final String s, final String[] strings) {
- if (!(commandSender instanceof Player)) {
- return null;
- }
- final Player player = (Player) commandSender;
-
- if (strings.length < 1) {
- if ((strings.length == 0) || "plots".startsWith(s)) {
- return Arrays.asList("plots");
- }
- }
- if (strings.length > 1) {
- return null;
- }
- if (!command.getLabel().equalsIgnoreCase("plots")) {
- return null;
- }
- final List tabOptions = new ArrayList<>();
- final String arg = strings[0].toLowerCase();
- for (final SubCommand cmd : subCommands) {
- if (cmd.permission.hasPermission(player)) {
- if (cmd.cmd.startsWith(arg)) {
- tabOptions.add(cmd.cmd);
- } else if (cmd.alias.get(0).startsWith(arg)) {
- tabOptions.add(cmd.alias.get(0));
- }
- }
- }
- if (tabOptions.size() > 0) {
- return tabOptions;
- }
- return null;
- }
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Merge.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Merge.java
index 60536a80c..8e36e9c69 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Merge.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Merge.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.ArrayList;
@@ -26,32 +25,30 @@ import java.util.ArrayList;
import net.milkbowl.vault.economy.Economy;
import org.apache.commons.lang.StringUtils;
-import org.bukkit.Bukkit;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.events.PlotMergeEvent;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
+import com.intellectualcrafters.plot.object.PlotPlayer;
import com.intellectualcrafters.plot.object.PlotWorld;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
-import com.intellectualcrafters.plot.util.UUIDHandler;
+import com.intellectualcrafters.plot.util.EconHandler;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.Permissions;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
/**
* @author Citymonstret
*/
public class Merge extends SubCommand {
-
- public final static String[] values = new String[]{"north", "east", "south", "west"};
- public final static String[] aliases = new String[]{"n", "e", "s", "w"};
-
+ public final static String[] values = new String[] { "north", "east", "south", "west" };
+ public final static String[] aliases = new String[] { "n", "e", "s", "w" };
+
public Merge() {
super(Command.MERGE, "Merge the plot you are standing on with another plot.", "merge", CommandCategory.ACTIONS, true);
}
-
+
public static String direction(float yaw) {
yaw = yaw / 90;
final int i = Math.round(yaw);
@@ -73,26 +70,26 @@ public class Merge extends SubCommand {
return "";
}
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
- if (!PlayerFunctions.isInPlot(plr)) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT);
- return true;
+ public boolean execute(final PlotPlayer plr, final String... args) {
+ Location loc = plr.getLocation();
+ final Plot plot = MainUtil.getPlot(loc);
+ if (plot == null) {
+ return !sendMessage(plr, C.NOT_IN_PLOT);
}
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
if ((plot == null) || !plot.hasOwner()) {
- PlayerFunctions.sendMessage(plr, C.PLOT_UNOWNED);
+ MainUtil.sendMessage(plr, C.PLOT_UNOWNED);
return false;
}
- boolean admin = PlotMain.hasPermission(plr, "plots.admin.command.merge");
+ final boolean admin = Permissions.hasPermission(plr, "plots.admin.command.merge");
if (!plot.getOwner().equals(UUIDHandler.getUUID(plr)) && !admin) {
- PlayerFunctions.sendMessage(plr, C.NO_PLOT_PERMS);
+ MainUtil.sendMessage(plr, C.NO_PLOT_PERMS);
return false;
}
if (args.length < 1) {
- PlayerFunctions.sendMessage(plr, C.SUBCOMMAND_SET_OPTIONS_HEADER.s() + StringUtils.join(values, C.BLOCK_LIST_SEPARATER.s()));
- PlayerFunctions.sendMessage(plr, C.DIRECTION.s().replaceAll("%dir%", direction(plr.getLocation().getYaw())));
+ MainUtil.sendMessage(plr, C.SUBCOMMAND_SET_OPTIONS_HEADER.s() + StringUtils.join(values, C.BLOCK_LIST_SEPARATER.s()));
+ MainUtil.sendMessage(plr, C.DIRECTION.s().replaceAll("%dir%", direction(plr.getLocation().getYaw())));
return false;
}
int direction = -1;
@@ -103,81 +100,71 @@ public class Merge extends SubCommand {
}
}
if (direction == -1) {
- PlayerFunctions.sendMessage(plr, C.SUBCOMMAND_SET_OPTIONS_HEADER.s() + StringUtils.join(values, C.BLOCK_LIST_SEPARATER.s()));
- PlayerFunctions.sendMessage(plr, C.DIRECTION.s().replaceAll("%dir%", direction(plr.getLocation().getYaw())));
+ MainUtil.sendMessage(plr, C.SUBCOMMAND_SET_OPTIONS_HEADER.s() + StringUtils.join(values, C.BLOCK_LIST_SEPARATER.s()));
+ MainUtil.sendMessage(plr, C.DIRECTION.s().replaceAll("%dir%", direction(plr.getLocation().getYaw())));
return false;
}
- final World world = plr.getWorld();
- PlotId bot = PlayerFunctions.getBottomPlot(world, plot).id;
- PlotId top = PlayerFunctions.getTopPlot(world, plot).id;
+ PlotId bot = MainUtil.getBottomPlot(plot).id;
+ PlotId top = MainUtil.getTopPlot(plot).id;
ArrayList plots;
+ String world = plr.getLocation().getWorld();
switch (direction) {
case 0: // north = -y
- plots = PlayerFunctions.getMaxPlotSelectionIds(world, new PlotId(bot.x, bot.y - 1), new PlotId(top.x, top.y));
+ plots = MainUtil.getMaxPlotSelectionIds(world, new PlotId(bot.x, bot.y - 1), new PlotId(top.x, top.y));
break;
case 1: // east = +x
- plots = PlayerFunctions.getMaxPlotSelectionIds(world, new PlotId(bot.x, bot.y), new PlotId(top.x + 1, top.y));
+ plots = MainUtil.getMaxPlotSelectionIds(world, new PlotId(bot.x, bot.y), new PlotId(top.x + 1, top.y));
break;
case 2: // south = +y
- plots = PlayerFunctions.getMaxPlotSelectionIds(world, new PlotId(bot.x, bot.y), new PlotId(top.x, top.y + 1));
+ plots = MainUtil.getMaxPlotSelectionIds(world, new PlotId(bot.x, bot.y), new PlotId(top.x, top.y + 1));
break;
case 3: // west = -x
- plots = PlayerFunctions.getMaxPlotSelectionIds(world, new PlotId(bot.x - 1, bot.y), new PlotId(top.x, top.y));
+ plots = MainUtil.getMaxPlotSelectionIds(world, new PlotId(bot.x - 1, bot.y), new PlotId(top.x, top.y));
break;
default:
return false;
}
-
- PlotId botId = plots.get(0);
- PlotId topId = plots.get(plots.size() - 1);
-
- PlotId bot1 = PlayerFunctions.getBottomPlot(world, PlotHelper.getPlot(world, botId)).id;
- PlotId bot2 = PlayerFunctions.getBottomPlot(world, PlotHelper.getPlot(world, topId)).id;
-
- PlotId top1 = PlayerFunctions.getTopPlot(world, PlotHelper.getPlot(world, topId)).id;
- PlotId top2 = PlayerFunctions.getTopPlot(world, PlotHelper.getPlot(world, botId)).id;
-
+ final PlotId botId = plots.get(0);
+ final PlotId topId = plots.get(plots.size() - 1);
+ final PlotId bot1 = MainUtil.getBottomPlot(MainUtil.getPlot(world, botId)).id;
+ final PlotId bot2 = MainUtil.getBottomPlot(MainUtil.getPlot(world, topId)).id;
+ final PlotId top1 = MainUtil.getTopPlot(MainUtil.getPlot(world, topId)).id;
+ final PlotId top2 = MainUtil.getTopPlot(MainUtil.getPlot(world, botId)).id;
bot = new PlotId(Math.min(bot1.x, bot2.x), Math.min(bot1.y, bot2.y));
top = new PlotId(Math.max(top1.x, top2.x), Math.max(top1.y, top2.y));
-
- plots = PlayerFunctions.getMaxPlotSelectionIds(world, bot, top);
-
+ plots = MainUtil.getMaxPlotSelectionIds(world, bot, top);
for (final PlotId myid : plots) {
- final Plot myplot = PlotMain.getPlots(world).get(myid);
+ final Plot myplot = PlotSquared.getPlots(world).get(myid);
if ((myplot == null) || !myplot.hasOwner() || !(myplot.getOwner().equals(UUIDHandler.getUUID(plr)) || admin)) {
- PlayerFunctions.sendMessage(plr, C.NO_PERM_MERGE.s().replaceAll("%plot%", myid.toString()));
+ MainUtil.sendMessage(plr, C.NO_PERM_MERGE.s().replaceAll("%plot%", myid.toString()));
return false;
}
}
-
- final PlotWorld plotWorld = PlotMain.getWorldSettings(world);
- if (PlotMain.useEconomy && plotWorld.USE_ECONOMY) {
+ final PlotWorld plotWorld = PlotSquared.getPlotWorld(world);
+ if (PlotSquared.economy != null && plotWorld.USE_ECONOMY) {
double cost = plotWorld.MERGE_PRICE;
cost = plots.size() * cost;
if (cost > 0d) {
- final Economy economy = PlotMain.economy;
- if (economy.getBalance(plr) < cost) {
+ final Economy economy = PlotSquared.economy;
+ if (EconHandler.getBalance(plr) < cost) {
sendMessage(plr, C.CANNOT_AFFORD_MERGE, cost + "");
return false;
}
- economy.withdrawPlayer(plr, cost);
+ EconHandler.withdrawPlayer(plr, cost);
sendMessage(plr, C.REMOVED_BALANCE, cost + "");
}
}
-
- final PlotMergeEvent event = new PlotMergeEvent(world, plot, plots);
-
- Bukkit.getServer().getPluginManager().callEvent(event);
- if (event.isCancelled()) {
- event.setCancelled(true);
- PlayerFunctions.sendMessage(plr, "&cMerge has been cancelled");
+ //FIXME PlotMergeEvent
+ // boolean result = event.isCancelled();
+ boolean result = false;
+ if (result) {
+ MainUtil.sendMessage(plr, "&cMerge has been cancelled");
return false;
}
- PlayerFunctions.sendMessage(plr, "&cPlots have been merged");
- PlotHelper.mergePlots(world, plots, true);
-
- PlotHelper.setSign(world, UUIDHandler.getName(plot.owner), plot);
- PlotHelper.update(plr.getLocation());
+ MainUtil.sendMessage(plr, "&cPlots have been merged");
+ MainUtil.mergePlots(world, plots, true);
+ MainUtil.setSign(UUIDHandler.getName(plot.owner), plot);
+ MainUtil.update(plr.getLocation());
return true;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Move.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Move.java
index a5c945204..7c1267523 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Move.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Move.java
@@ -18,24 +18,11 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
-import java.util.ArrayList;
-import java.util.UUID;
-
-import org.bukkit.Location;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
-import com.intellectualcrafters.plot.database.DBFunc;
-import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
-import com.intellectualcrafters.plot.util.ChunkManager;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
-import com.intellectualcrafters.plot.util.TaskManager;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
/**
* Created 2014-08-01 for PlotSquared
@@ -43,41 +30,39 @@ import com.intellectualcrafters.plot.util.TaskManager;
* @author Empire92
*/
public class Move extends SubCommand {
-
public Move() {
super("debugmove", "plots.admin", "plot moving debug test", "debugmove", "move", CommandCategory.DEBUG, true);
}
-
+
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (plr == null) {
- PlayerFunctions.sendMessage(plr, "MUST BE EXECUTED BY PLAYER");
+ MainUtil.sendMessage(plr, "MUST BE EXECUTED BY PLAYER");
}
if (args.length != 2) {
- PlayerFunctions.sendMessage(plr, "/plot move ");
+ MainUtil.sendMessage(plr, "/plot move ");
return false;
}
- World world = plr.getWorld();
- PlotId plot1 = PlotHelper.parseId(args[0]);
- PlotId plot2 = PlotHelper.parseId(args[1]);
- if (plot1 == null || plot2 == null) {
- PlayerFunctions.sendMessage(plr, "INVALID PLOT ID\n/plot move ");
+ final String world = plr.getLocation().getWorld();
+ final PlotId plot1 = MainUtil.parseId(args[0]);
+ final PlotId plot2 = MainUtil.parseId(args[1]);
+ if ((plot1 == null) || (plot2 == null)) {
+ MainUtil.sendMessage(plr, "INVALID PLOT ID\n/plot move ");
return false;
}
if (plot1 == plot2) {
- PlayerFunctions.sendMessage(plr, "DUPLICATE ID");
+ MainUtil.sendMessage(plr, "DUPLICATE ID");
return false;
}
- if (PlotHelper.move(world, plot1, plot2, new Runnable() {
+ if (MainUtil.move(world, plot1, plot2, new Runnable() {
@Override
public void run() {
- PlayerFunctions.sendMessage(plr, "MOVE SUCCESS");
+ MainUtil.sendMessage(plr, "MOVE SUCCESS");
}
})) {
return true;
- }
- else {
- PlayerFunctions.sendMessage(plr, "MOVE FAILED");
+ } else {
+ MainUtil.sendMessage(plr, "MOVE FAILED");
return false;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/MusicSubcommand.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/MusicSubcommand.java
index b8622f16c..ced6c571d 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/MusicSubcommand.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/MusicSubcommand.java
@@ -18,35 +18,36 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.Arrays;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
-import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.listeners.PlotPlusListener;
+import com.intellectualcrafters.plot.object.BukkitPlayer;
+import com.intellectualcrafters.plot.object.Location;
import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.MainUtil;
public class MusicSubcommand extends SubCommand {
public MusicSubcommand() {
super("music", "plots.music", "Play music in plot", "music", "mus", CommandCategory.ACTIONS, true);
}
-
+
@Override
- public boolean execute(final Player player, final String... args) {
- if (!PlayerFunctions.isInPlot(player)) {
- sendMessage(player, C.NOT_IN_PLOT);
- return true;
+ public boolean execute(final PlotPlayer player, final String... args) {
+ Location loc = player.getLocation();
+ final Plot plot = MainUtil.getPlot(loc);
+ if (plot == null) {
+ return !sendMessage(player, C.NOT_IN_PLOT);
}
- final Plot plot = PlayerFunctions.getCurrentPlot(player);
- if (!plot.hasRights(player)) {
+ if (!plot.isAdded(player.getUUID())) {
sendMessage(player, C.NO_PLOT_PERMS);
return true;
}
@@ -59,7 +60,8 @@ public class MusicSubcommand extends SubCommand {
stack.setItemMeta(itemMeta);
inventory.addItem(stack);
}
- player.openInventory(inventory);
+ // FIXME unchecked casting
+ ((BukkitPlayer) player).player.openInventory(inventory);
return true;
}
}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/OP.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/OP.java
deleted file mode 100644
index 38a3b6487..000000000
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/OP.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.intellectualcrafters.plot.commands;
-
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-
-/**
- * Created 2014-11-09 for PlotSquared
- *
- * @author Citymonstret
- */
-public class OP extends SubCommand {
-
- public OP() {
- super(Command.OP, "Alias for /plot trusted add", "/plot op [player]", CommandCategory.ACTIONS, true);
- }
-
- @Override
- public boolean execute(final Player plr, final String... args) {
- if (args.length < 1) {
- return PlayerFunctions.sendMessage(plr, "&cUsage: &c" + this.usage);
- }
- if (!PlayerFunctions.isInPlot(plr)) {
- return sendMessage(plr, C.NOT_IN_PLOT);
- }
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
- if (!plot.hasRights(plr)) {
- return sendMessage(plr, C.NO_PLOT_PERMS);
- }
- return plr.performCommand("plot trusted add " + args[0]);
- }
-}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Paste.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Paste.java
deleted file mode 100644
index 70b21bee3..000000000
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Paste.java
+++ /dev/null
@@ -1,73 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////////////////////////
-// PlotSquared - A plot manager and world generator for the Bukkit API /
-// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
-// /
-// This program is free software; you can redistribute it and/or modify /
-// it under the terms of the GNU General Public License as published by /
-// the Free Software Foundation; either version 3 of the License, or /
-// (at your option) any later version. /
-// /
-// This program is distributed in the hope that it will be useful, /
-// but WITHOUT ANY WARRANTY; without even the implied warranty of /
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
-// GNU General Public License for more details. /
-// /
-// You should have received a copy of the GNU General Public License /
-// along with this program; if not, write to the Free Software Foundation, /
-// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
-// /
-// You can contact us via: support@intellectualsites.com /
-////////////////////////////////////////////////////////////////////////////////////////////////////
-
-package com.intellectualcrafters.plot.commands;
-
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
-import com.intellectualcrafters.plot.config.C;
-import com.intellectualcrafters.plot.object.Plot;
-import com.intellectualcrafters.plot.object.PlotSelection;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.PlotHelper;
-import com.intellectualcrafters.plot.util.UUIDHandler;
-
-public class Paste extends SubCommand {
-
- public Paste() {
- super(Command.PASTE, "Paste a plot", "paste", CommandCategory.ACTIONS, true);
- }
-
- @Override
- public boolean execute(final Player plr, final String... args) {
- if (!PlayerFunctions.isInPlot(plr)) {
- PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT);
- return false;
- }
- final Plot plot = PlayerFunctions.getCurrentPlot(plr);
- if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(UUIDHandler.getUUID(plr))) && !PlotMain.hasPermission(plr, "plots.admin.command.paste")) {
- PlayerFunctions.sendMessage(plr, C.NO_PLOT_PERMS);
- return false;
- }
- if (!PlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(PlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
- PlayerFunctions.sendMessage(plr, C.UNLINK_REQUIRED);
- return false;
- }
- assert plot != null;
- final int size = (PlotHelper.getPlotTopLocAbs(plr.getWorld(), plot.getId()).getBlockX() - PlotHelper.getPlotBottomLocAbs(plr.getWorld(), plot.getId()).getBlockX());
-
- if (PlotSelection.currentSelection.containsKey(plr.getName())) {
- final PlotSelection selection = PlotSelection.currentSelection.get(plr.getName());
- if (size != selection.getWidth()) {
- sendMessage(plr, C.PASTE_FAILED, "The size of the current plot is not the same as the paste");
- return false;
- }
- selection.paste(plr.getWorld(), plot);
- sendMessage(plr, C.PASTED);
- } else {
- sendMessage(plr, C.NO_CLIPBOARD);
- return false;
- }
- PlotSelection.currentSelection.remove(plr.getName());
- return true;
- }
-}
diff --git a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Purge.java b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Purge.java
index 441d901a9..a9e1b0b97 100644
--- a/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Purge.java
+++ b/PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Purge.java
@@ -18,7 +18,6 @@
// /
// You can contact us via: support@intellectualsites.com /
////////////////////////////////////////////////////////////////////////////////////////////////////
-
package com.intellectualcrafters.plot.commands;
import java.util.Collection;
@@ -26,148 +25,143 @@ import java.util.HashSet;
import java.util.Set;
import java.util.UUID;
-import org.bukkit.Bukkit;
-import org.bukkit.World;
-import org.bukkit.entity.Player;
-
-import com.intellectualcrafters.plot.PlotMain;
+import com.intellectualcrafters.plot.PlotSquared;
import com.intellectualcrafters.plot.config.C;
import com.intellectualcrafters.plot.database.DBFunc;
import com.intellectualcrafters.plot.object.Plot;
import com.intellectualcrafters.plot.object.PlotId;
-import com.intellectualcrafters.plot.util.PlayerFunctions;
-import com.intellectualcrafters.plot.util.UUIDHandler;
-
-@SuppressWarnings({"javadoc"}) public class Purge extends SubCommand {
+import com.intellectualcrafters.plot.object.PlotPlayer;
+import com.intellectualcrafters.plot.util.BlockManager;
+import com.intellectualcrafters.plot.util.MainUtil;
+import com.intellectualcrafters.plot.util.bukkit.UUIDHandler;
+@SuppressWarnings({ "javadoc" })
+public class Purge extends SubCommand {
public Purge() {
super("purge", "plots.admin", "Purge all plots for a world", "purge", "", CommandCategory.DEBUG, false);
}
-
- public PlotId getId(String id) {
+
+ public PlotId getId(final String id) {
try {
- String[] split = id.split(";");
+ final String[] split = id.split(";");
return new PlotId(Integer.parseInt(split[0]), Integer.parseInt(split[1]));
- }
- catch (Exception e) {
+ } catch (final Exception e) {
return null;
}
}
@Override
- public boolean execute(final Player plr, final String... args) {
+ public boolean execute(final PlotPlayer plr, final String... args) {
if (plr != null) {
- PlayerFunctions.sendMessage(plr, (C.NOT_CONSOLE));
+ MainUtil.sendMessage(plr, (C.NOT_CONSOLE));
return false;
}
if (args.length == 1) {
- String arg = args[0].toLowerCase();
- PlotId id = getId(arg);
+ final String arg = args[0].toLowerCase();
+ final PlotId id = getId(arg);
if (id != null) {
- PlayerFunctions.sendMessage(plr, "/plot purge x;z &l");
+ MainUtil.sendMessage(plr, "/plot purge x;z &l");
return false;
}
- UUID uuid = UUIDHandler.getUUID(args[0]);
+ final UUID uuid = UUIDHandler.getUUID(args[0]);
if (uuid != null) {
- PlayerFunctions.sendMessage(plr, "/plot purge "+args[0]+" &l");
+ MainUtil.sendMessage(plr, "/plot purge " + args[0] + " &l");
return false;
}
if (arg.equals("player")) {
- PlayerFunctions.sendMessage(plr, "/plot purge &l ");
+ MainUtil.sendMessage(plr, "/plot purge &l ");
return false;
}
if (arg.equals("unowned")) {
- PlayerFunctions.sendMessage(plr, "/plot purge unowned &l");
+ MainUtil.sendMessage(plr, "/plot purge unowned &l");
return false;
}
if (arg.equals("unknown")) {
- PlayerFunctions.sendMessage(plr, "/plot purge unknown &l");
+ MainUtil.sendMessage(plr, "/plot purge unknown &l");
return false;
}
if (arg.equals("all")) {
- PlayerFunctions.sendMessage(plr, "/plot purge all &l");
+ MainUtil.sendMessage(plr, "/plot purge all &l");
return false;
}
- PlayerFunctions.sendMessage(plr, C.PURGE_SYNTAX);
+ MainUtil.sendMessage(plr, C.PURGE_SYNTAX);
return false;
}
if (args.length != 2) {
- PlayerFunctions.sendMessage(plr, C.PURGE_SYNTAX);
+ MainUtil.sendMessage(plr, C.PURGE_SYNTAX);
return false;
}
- World world = Bukkit.getWorld(args[1]);
- if (world == null || !PlotMain.isPlotWorld(world)) {
- PlayerFunctions.sendMessage(null, C.NOT_VALID_PLOT_WORLD);
+ final String worldname = args[0];
+ if (!BlockManager.manager.isWorld(worldname) || !PlotSquared.isPlotWorld(worldname)) {
+ MainUtil.sendMessage(plr, "INVALID WORLD");
return false;
}
- String worldname = world.getName();
- String arg = args[0].toLowerCase();
- PlotId id = getId(arg);
+ final String arg = args[0].toLowerCase();
+ final PlotId id = getId(arg);
if (id != null) {
- HashSet ids = new HashSet();
- int DBid = DBFunc.getId(worldname, id);
+ final HashSet