mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 21:26:45 +01:00
Merge branch 'master' of git://github.com/drtshock/PlotSquared into drtshock-master
Conflicts: PlotSquared/src/main/java/com/intellectualcrafters/plot/commands/Unclaim.java PlotSquared/src/main/java/com/intellectualcrafters/plot/listeners/WorldEditListener.java
This commit is contained in:
commit
a04e207724
@ -10,8 +10,7 @@ public final class ByteArrayTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with an empty name.
|
* Creates the tag with an empty name.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value of the tag
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public ByteArrayTag(final byte[] value) {
|
public ByteArrayTag(final byte[] value) {
|
||||||
super();
|
super();
|
||||||
@ -21,10 +20,8 @@ public final class ByteArrayTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag.
|
* Creates the tag.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
* @param value the value of the tag
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public ByteArrayTag(final String name, final byte[] value) {
|
public ByteArrayTag(final String name, final byte[] value) {
|
||||||
super(name);
|
super(name);
|
||||||
|
@ -10,8 +10,7 @@ public final class ByteTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with an empty name.
|
* Creates the tag with an empty name.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value of the tag
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public ByteTag(final byte value) {
|
public ByteTag(final byte value) {
|
||||||
super();
|
super();
|
||||||
@ -21,10 +20,8 @@ public final class ByteTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag.
|
* Creates the tag.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
* @param value the value of the tag
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public ByteTag(final String name, final byte value) {
|
public ByteTag(final String name, final byte value) {
|
||||||
super(name);
|
super(name);
|
||||||
|
@ -15,8 +15,7 @@ public final class CompoundTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with an empty name.
|
* Creates the tag with an empty name.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value of the tag
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public CompoundTag(final Map<String, Tag> value) {
|
public CompoundTag(final Map<String, Tag> value) {
|
||||||
super();
|
super();
|
||||||
@ -26,10 +25,8 @@ public final class CompoundTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag.
|
* Creates the tag.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
* @param value the value of the tag
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public CompoundTag(final String name, final Map<String, Tag> value) {
|
public CompoundTag(final String name, final Map<String, Tag> value) {
|
||||||
super(name);
|
super(name);
|
||||||
@ -39,8 +36,8 @@ public final class CompoundTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Returns whether this compound tag contains the given key.
|
* Returns whether this compound tag contains the given key.
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the given key
|
||||||
* the given key
|
*
|
||||||
* @return true if the tag contains the given key
|
* @return true if the tag contains the given key
|
||||||
*/
|
*/
|
||||||
public boolean containsKey(final String key) {
|
public boolean containsKey(final String key) {
|
||||||
@ -55,8 +52,8 @@ public final class CompoundTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Return a new compound tag with the given values.
|
* Return a new compound tag with the given values.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value
|
||||||
* the value
|
*
|
||||||
* @return the new compound tag
|
* @return the new compound tag
|
||||||
*/
|
*/
|
||||||
public CompoundTag setValue(final Map<String, Tag> value) {
|
public CompoundTag setValue(final Map<String, Tag> value) {
|
||||||
@ -73,82 +70,62 @@ public final class CompoundTag extends Tag {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a byte array named with the given key.
|
* Get a byte array named with the given key. <p/> <p> If the key does not exist or its value is not a byte array
|
||||||
* <p/>
|
* tag, then an empty byte array will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the key does not exist or its value is not a byte array tag, then an
|
* @param key the key
|
||||||
* empty byte array will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return a byte array
|
* @return a byte array
|
||||||
*/
|
*/
|
||||||
public byte[] getByteArray(final String key) {
|
public byte[] getByteArray(final String key) {
|
||||||
final Tag tag = this.value.get(key);
|
final Tag tag = this.value.get(key);
|
||||||
if (tag instanceof ByteArrayTag) {
|
if (tag instanceof ByteArrayTag) {
|
||||||
return ((ByteArrayTag) tag).getValue();
|
return ((ByteArrayTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return new byte[0];
|
return new byte[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a byte named with the given key.
|
* Get a byte named with the given key. <p/> <p> If the key does not exist or its value is not a byte tag, then
|
||||||
* <p/>
|
* {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the key does not exist or its value is not a byte tag, then {@code 0}
|
* @param key the key
|
||||||
* will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return a byte
|
* @return a byte
|
||||||
*/
|
*/
|
||||||
public byte getByte(final String key) {
|
public byte getByte(final String key) {
|
||||||
final Tag tag = this.value.get(key);
|
final Tag tag = this.value.get(key);
|
||||||
if (tag instanceof ByteTag) {
|
if (tag instanceof ByteTag) {
|
||||||
return ((ByteTag) tag).getValue();
|
return ((ByteTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return (byte) 0;
|
return (byte) 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a double named with the given key.
|
* Get a double named with the given key. <p/> <p> If the key does not exist or its value is not a double tag, then
|
||||||
* <p/>
|
* {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the key does not exist or its value is not a double tag, then
|
* @param key the key
|
||||||
* {@code 0} will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return a double
|
* @return a double
|
||||||
*/
|
*/
|
||||||
public double getDouble(final String key) {
|
public double getDouble(final String key) {
|
||||||
final Tag tag = this.value.get(key);
|
final Tag tag = this.value.get(key);
|
||||||
if (tag instanceof DoubleTag) {
|
if (tag instanceof DoubleTag) {
|
||||||
return ((DoubleTag) tag).getValue();
|
return ((DoubleTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a double named with the given key, even if it's another
|
* Get a double named with the given key, even if it's another type of number. <p/> <p> If the key does not exist or
|
||||||
* type of number.
|
* its value is not a number, then {@code 0} will be returned. </p>
|
||||||
* <p/>
|
*
|
||||||
* <p>
|
* @param key the key
|
||||||
* If the key does not exist or its value is not a number, then {@code 0}
|
|
||||||
* will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return a double
|
* @return a double
|
||||||
*/
|
*/
|
||||||
public double asDouble(final String key) {
|
public double asDouble(final String key) {
|
||||||
@ -156,109 +133,83 @@ public final class CompoundTag extends Tag {
|
|||||||
if (tag instanceof ByteTag) {
|
if (tag instanceof ByteTag) {
|
||||||
return ((ByteTag) tag).getValue();
|
return ((ByteTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof ShortTag) {
|
||||||
else if (tag instanceof ShortTag) {
|
|
||||||
return ((ShortTag) tag).getValue();
|
return ((ShortTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof IntTag) {
|
||||||
else if (tag instanceof IntTag) {
|
|
||||||
return ((IntTag) tag).getValue();
|
return ((IntTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof LongTag) {
|
||||||
else if (tag instanceof LongTag) {
|
|
||||||
return ((LongTag) tag).getValue();
|
return ((LongTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof FloatTag) {
|
||||||
else if (tag instanceof FloatTag) {
|
|
||||||
return ((FloatTag) tag).getValue();
|
return ((FloatTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof DoubleTag) {
|
||||||
else if (tag instanceof DoubleTag) {
|
|
||||||
return ((DoubleTag) tag).getValue();
|
return ((DoubleTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a float named with the given key.
|
* Get a float named with the given key. <p/> <p> If the key does not exist or its value is not a float tag, then
|
||||||
* <p/>
|
* {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the key does not exist or its value is not a float tag, then {@code 0}
|
* @param key the key
|
||||||
* will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return a float
|
* @return a float
|
||||||
*/
|
*/
|
||||||
public float getFloat(final String key) {
|
public float getFloat(final String key) {
|
||||||
final Tag tag = this.value.get(key);
|
final Tag tag = this.value.get(key);
|
||||||
if (tag instanceof FloatTag) {
|
if (tag instanceof FloatTag) {
|
||||||
return ((FloatTag) tag).getValue();
|
return ((FloatTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a {@code int[]} named with the given key.
|
* Get a {@code int[]} named with the given key. <p/> <p> If the key does not exist or its value is not an int array
|
||||||
* <p/>
|
* tag, then an empty array will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the key does not exist or its value is not an int array tag, then an
|
* @param key the key
|
||||||
* empty array will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return an int array
|
* @return an int array
|
||||||
*/
|
*/
|
||||||
public int[] getIntArray(final String key) {
|
public int[] getIntArray(final String key) {
|
||||||
final Tag tag = this.value.get(key);
|
final Tag tag = this.value.get(key);
|
||||||
if (tag instanceof IntArrayTag) {
|
if (tag instanceof IntArrayTag) {
|
||||||
return ((IntArrayTag) tag).getValue();
|
return ((IntArrayTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return new int[0];
|
return new int[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get an int named with the given key.
|
* Get an int named with the given key. <p/> <p> If the key does not exist or its value is not an int tag, then
|
||||||
* <p/>
|
* {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the key does not exist or its value is not an int tag, then {@code 0}
|
* @param key the key
|
||||||
* will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return an int
|
* @return an int
|
||||||
*/
|
*/
|
||||||
public int getInt(final String key) {
|
public int getInt(final String key) {
|
||||||
final Tag tag = this.value.get(key);
|
final Tag tag = this.value.get(key);
|
||||||
if (tag instanceof IntTag) {
|
if (tag instanceof IntTag) {
|
||||||
return ((IntTag) tag).getValue();
|
return ((IntTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get an int named with the given key, even if it's another
|
* Get an int named with the given key, even if it's another type of number. <p/> <p> If the key does not exist or
|
||||||
* type of number.
|
* its value is not a number, then {@code 0} will be returned. </p>
|
||||||
* <p/>
|
*
|
||||||
* <p>
|
* @param key the key
|
||||||
* If the key does not exist or its value is not a number, then {@code 0}
|
|
||||||
* will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return an int
|
* @return an int
|
||||||
*/
|
*/
|
||||||
public int asInt(final String key) {
|
public int asInt(final String key) {
|
||||||
@ -266,91 +217,69 @@ public final class CompoundTag extends Tag {
|
|||||||
if (tag instanceof ByteTag) {
|
if (tag instanceof ByteTag) {
|
||||||
return ((ByteTag) tag).getValue();
|
return ((ByteTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof ShortTag) {
|
||||||
else if (tag instanceof ShortTag) {
|
|
||||||
return ((ShortTag) tag).getValue();
|
return ((ShortTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof IntTag) {
|
||||||
else if (tag instanceof IntTag) {
|
|
||||||
return ((IntTag) tag).getValue();
|
return ((IntTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof LongTag) {
|
||||||
else if (tag instanceof LongTag) {
|
|
||||||
return ((LongTag) tag).getValue().intValue();
|
return ((LongTag) tag).getValue().intValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof FloatTag) {
|
||||||
else if (tag instanceof FloatTag) {
|
|
||||||
return ((FloatTag) tag).getValue().intValue();
|
return ((FloatTag) tag).getValue().intValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof DoubleTag) {
|
||||||
else if (tag instanceof DoubleTag) {
|
|
||||||
return ((DoubleTag) tag).getValue().intValue();
|
return ((DoubleTag) tag).getValue().intValue();
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a list of tags named with the given key.
|
* Get a list of tags named with the given key. <p/> <p> If the key does not exist or its value is not a list tag,
|
||||||
* <p/>
|
* then an empty list will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the key does not exist or its value is not a list tag, then an empty
|
* @param key the key
|
||||||
* list will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return a list of tags
|
* @return a list of tags
|
||||||
*/
|
*/
|
||||||
public List<Tag> getList(final String key) {
|
public List<Tag> getList(final String key) {
|
||||||
final Tag tag = this.value.get(key);
|
final Tag tag = this.value.get(key);
|
||||||
if (tag instanceof ListTag) {
|
if (tag instanceof ListTag) {
|
||||||
return ((ListTag) tag).getValue();
|
return ((ListTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a {@code TagList} named with the given key.
|
* Get a {@code TagList} named with the given key. <p/> <p> If the key does not exist or its value is not a list
|
||||||
* <p/>
|
* tag, then an empty tag list will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the key does not exist or its value is not a list tag, then an empty
|
* @param key the key
|
||||||
* tag list will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return a tag list instance
|
* @return a tag list instance
|
||||||
*/
|
*/
|
||||||
public ListTag getListTag(final String key) {
|
public ListTag getListTag(final String key) {
|
||||||
final Tag tag = this.value.get(key);
|
final Tag tag = this.value.get(key);
|
||||||
if (tag instanceof ListTag) {
|
if (tag instanceof ListTag) {
|
||||||
return (ListTag) tag;
|
return (ListTag) tag;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return new ListTag(key, StringTag.class, Collections.<Tag>emptyList());
|
return new ListTag(key, StringTag.class, Collections.<Tag>emptyList());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a list of tags named with the given key.
|
* Get a list of tags named with the given key. <p/> <p> If the key does not exist or its value is not a list tag,
|
||||||
* <p/>
|
* then an empty list will be returned. If the given key references a list but the list of of a different type, then
|
||||||
* <p>
|
* an empty list will also be returned. </p>
|
||||||
* 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
|
* @param key the key
|
||||||
* of a different type, then an empty list will also be returned.
|
* @param listType the class of the contained type
|
||||||
* </p>
|
* @param <T> the type of list
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @param listType
|
|
||||||
* the class of the contained type
|
|
||||||
* @param <T>
|
|
||||||
* the type of list
|
|
||||||
* @return a list of tags
|
* @return a list of tags
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@ -360,49 +289,37 @@ public final class CompoundTag extends Tag {
|
|||||||
final ListTag listTag = (ListTag) tag;
|
final ListTag listTag = (ListTag) tag;
|
||||||
if (listTag.getType().equals(listType)) {
|
if (listTag.getType().equals(listType)) {
|
||||||
return (List<T>) listTag.getValue();
|
return (List<T>) listTag.getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a long named with the given key.
|
* Get a long named with the given key. <p/> <p> If the key does not exist or its value is not a long tag, then
|
||||||
* <p/>
|
* {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the key does not exist or its value is not a long tag, then {@code 0}
|
* @param key the key
|
||||||
* will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return a long
|
* @return a long
|
||||||
*/
|
*/
|
||||||
public long getLong(final String key) {
|
public long getLong(final String key) {
|
||||||
final Tag tag = this.value.get(key);
|
final Tag tag = this.value.get(key);
|
||||||
if (tag instanceof LongTag) {
|
if (tag instanceof LongTag) {
|
||||||
return ((LongTag) tag).getValue();
|
return ((LongTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0L;
|
return 0L;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a long named with the given key, even if it's another
|
* Get a long named with the given key, even if it's another type of number. <p/> <p> If the key does not exist or
|
||||||
* type of number.
|
* its value is not a number, then {@code 0} will be returned. </p>
|
||||||
* <p/>
|
*
|
||||||
* <p>
|
* @param key the key
|
||||||
* If the key does not exist or its value is not a number, then {@code 0}
|
|
||||||
* will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return a long
|
* @return a long
|
||||||
*/
|
*/
|
||||||
public long asLong(final String key) {
|
public long asLong(final String key) {
|
||||||
@ -410,72 +327,56 @@ public final class CompoundTag extends Tag {
|
|||||||
if (tag instanceof ByteTag) {
|
if (tag instanceof ByteTag) {
|
||||||
return ((ByteTag) tag).getValue();
|
return ((ByteTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof ShortTag) {
|
||||||
else if (tag instanceof ShortTag) {
|
|
||||||
return ((ShortTag) tag).getValue();
|
return ((ShortTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof IntTag) {
|
||||||
else if (tag instanceof IntTag) {
|
|
||||||
return ((IntTag) tag).getValue();
|
return ((IntTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof LongTag) {
|
||||||
else if (tag instanceof LongTag) {
|
|
||||||
return ((LongTag) tag).getValue();
|
return ((LongTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof FloatTag) {
|
||||||
else if (tag instanceof FloatTag) {
|
|
||||||
return ((FloatTag) tag).getValue().longValue();
|
return ((FloatTag) tag).getValue().longValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof DoubleTag) {
|
||||||
else if (tag instanceof DoubleTag) {
|
|
||||||
return ((DoubleTag) tag).getValue().longValue();
|
return ((DoubleTag) tag).getValue().longValue();
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0L;
|
return 0L;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a short named with the given key.
|
* Get a short named with the given key. <p/> <p> If the key does not exist or its value is not a short tag, then
|
||||||
* <p/>
|
* {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the key does not exist or its value is not a short tag, then {@code 0}
|
* @param key the key
|
||||||
* will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return a short
|
* @return a short
|
||||||
*/
|
*/
|
||||||
public short getShort(final String key) {
|
public short getShort(final String key) {
|
||||||
final Tag tag = this.value.get(key);
|
final Tag tag = this.value.get(key);
|
||||||
if (tag instanceof ShortTag) {
|
if (tag instanceof ShortTag) {
|
||||||
return ((ShortTag) tag).getValue();
|
return ((ShortTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a string named with the given key.
|
* Get a string named with the given key. <p/> <p> If the key does not exist or its value is not a string tag, then
|
||||||
* <p/>
|
* {@code ""} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the key does not exist or its value is not a string tag, then
|
* @param key the key
|
||||||
* {@code ""} will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* the key
|
|
||||||
* @return a string
|
* @return a string
|
||||||
*/
|
*/
|
||||||
public String getString(final String key) {
|
public String getString(final String key) {
|
||||||
final Tag tag = this.value.get(key);
|
final Tag tag = this.value.get(key);
|
||||||
if (tag instanceof StringTag) {
|
if (tag instanceof StringTag) {
|
||||||
return ((StringTag) tag).getValue();
|
return ((StringTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helps create compound tags.
|
* Helps create compound tags.
|
||||||
*/
|
*/
|
||||||
@ -22,8 +22,7 @@ public class CompoundTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Create a new instance and use the given map (which will be modified).
|
* Create a new instance and use the given map (which will be modified).
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value
|
||||||
* the value
|
|
||||||
*/
|
*/
|
||||||
CompoundTagBuilder(final Map<String, Tag> value) {
|
CompoundTagBuilder(final Map<String, Tag> value) {
|
||||||
checkNotNull(value);
|
checkNotNull(value);
|
||||||
@ -42,10 +41,9 @@ public class CompoundTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Put the given key and tag into the compound tag.
|
* Put the given key and tag into the compound tag.
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key they key
|
||||||
* they key
|
* @param value the value
|
||||||
* @param value
|
*
|
||||||
* the value
|
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public CompoundTagBuilder put(final String key, final Tag value) {
|
public CompoundTagBuilder put(final String key, final Tag value) {
|
||||||
@ -56,13 +54,11 @@ public class CompoundTagBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put the given key and value into the compound tag as a
|
* Put the given key and value into the compound tag as a {@code ByteArrayTag}.
|
||||||
* {@code ByteArrayTag}.
|
*
|
||||||
|
* @param key they key
|
||||||
|
* @param value the value
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* they key
|
|
||||||
* @param value
|
|
||||||
* the value
|
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public CompoundTagBuilder putByteArray(final String key, final byte[] value) {
|
public CompoundTagBuilder putByteArray(final String key, final byte[] value) {
|
||||||
@ -72,10 +68,9 @@ public class CompoundTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Put the given key and value into the compound tag as a {@code ByteTag}.
|
* Put the given key and value into the compound tag as a {@code ByteTag}.
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key they key
|
||||||
* they key
|
* @param value the value
|
||||||
* @param value
|
*
|
||||||
* the value
|
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public CompoundTagBuilder putByte(final String key, final byte value) {
|
public CompoundTagBuilder putByte(final String key, final byte value) {
|
||||||
@ -85,10 +80,9 @@ public class CompoundTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Put the given key and value into the compound tag as a {@code DoubleTag}.
|
* Put the given key and value into the compound tag as a {@code DoubleTag}.
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key they key
|
||||||
* they key
|
* @param value the value
|
||||||
* @param value
|
*
|
||||||
* the value
|
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public CompoundTagBuilder putDouble(final String key, final double value) {
|
public CompoundTagBuilder putDouble(final String key, final double value) {
|
||||||
@ -98,10 +92,9 @@ public class CompoundTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Put the given key and value into the compound tag as a {@code FloatTag}.
|
* Put the given key and value into the compound tag as a {@code FloatTag}.
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key they key
|
||||||
* they key
|
* @param value the value
|
||||||
* @param value
|
*
|
||||||
* the value
|
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public CompoundTagBuilder putFloat(final String key, final float value) {
|
public CompoundTagBuilder putFloat(final String key, final float value) {
|
||||||
@ -109,13 +102,11 @@ public class CompoundTagBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put the given key and value into the compound tag as a
|
* Put the given key and value into the compound tag as a {@code IntArrayTag}.
|
||||||
* {@code IntArrayTag}.
|
*
|
||||||
|
* @param key they key
|
||||||
|
* @param value the value
|
||||||
*
|
*
|
||||||
* @param key
|
|
||||||
* they key
|
|
||||||
* @param value
|
|
||||||
* the value
|
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public CompoundTagBuilder putIntArray(final String key, final int[] value) {
|
public CompoundTagBuilder putIntArray(final String key, final int[] value) {
|
||||||
@ -125,10 +116,9 @@ public class CompoundTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Put the given key and value into the compound tag as an {@code IntTag}.
|
* Put the given key and value into the compound tag as an {@code IntTag}.
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key they key
|
||||||
* they key
|
* @param value the value
|
||||||
* @param value
|
*
|
||||||
* the value
|
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public CompoundTagBuilder putInt(final String key, final int value) {
|
public CompoundTagBuilder putInt(final String key, final int value) {
|
||||||
@ -138,10 +128,9 @@ public class CompoundTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Put the given key and value into the compound tag as a {@code LongTag}.
|
* Put the given key and value into the compound tag as a {@code LongTag}.
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key they key
|
||||||
* they key
|
* @param value the value
|
||||||
* @param value
|
*
|
||||||
* the value
|
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public CompoundTagBuilder putLong(final String key, final long value) {
|
public CompoundTagBuilder putLong(final String key, final long value) {
|
||||||
@ -151,10 +140,9 @@ public class CompoundTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Put the given key and value into the compound tag as a {@code ShortTag}.
|
* Put the given key and value into the compound tag as a {@code ShortTag}.
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key they key
|
||||||
* they key
|
* @param value the value
|
||||||
* @param value
|
*
|
||||||
* the value
|
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public CompoundTagBuilder putShort(final String key, final short value) {
|
public CompoundTagBuilder putShort(final String key, final short value) {
|
||||||
@ -164,10 +152,9 @@ public class CompoundTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Put the given key and value into the compound tag as a {@code StringTag}.
|
* Put the given key and value into the compound tag as a {@code StringTag}.
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key they key
|
||||||
* they key
|
* @param value the value
|
||||||
* @param value
|
*
|
||||||
* the value
|
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public CompoundTagBuilder putString(final String key, final String value) {
|
public CompoundTagBuilder putString(final String key, final String value) {
|
||||||
@ -177,8 +164,8 @@ public class CompoundTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Put all the entries from the given map into this map.
|
* Put all the entries from the given map into this map.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the map of tags
|
||||||
* the map of tags
|
*
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public CompoundTagBuilder putAll(final Map<String, ? extends Tag> value) {
|
public CompoundTagBuilder putAll(final Map<String, ? extends Tag> value) {
|
||||||
@ -201,8 +188,8 @@ public class CompoundTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Build a new compound tag with this builder's entries.
|
* Build a new compound tag with this builder's entries.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
*
|
||||||
* @return the created compound tag
|
* @return the created compound tag
|
||||||
*/
|
*/
|
||||||
public CompoundTag build(final String name) {
|
public CompoundTag build(final String name) {
|
||||||
|
@ -10,8 +10,7 @@ public final class DoubleTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with an empty name.
|
* Creates the tag with an empty name.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value of the tag
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public DoubleTag(final double value) {
|
public DoubleTag(final double value) {
|
||||||
super();
|
super();
|
||||||
@ -21,10 +20,8 @@ public final class DoubleTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag.
|
* Creates the tag.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
* @param value the value of the tag
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public DoubleTag(final String name, final double value) {
|
public DoubleTag(final String name, final double value) {
|
||||||
super(name);
|
super(name);
|
||||||
|
@ -10,8 +10,7 @@ public final class FloatTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with an empty name.
|
* Creates the tag with an empty name.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value of the tag
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public FloatTag(final float value) {
|
public FloatTag(final float value) {
|
||||||
super();
|
super();
|
||||||
@ -21,10 +20,8 @@ public final class FloatTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag.
|
* Creates the tag.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
* @param value the value of the tag
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public FloatTag(final String name, final float value) {
|
public FloatTag(final String name, final float value) {
|
||||||
super(name);
|
super(name);
|
||||||
|
@ -12,8 +12,7 @@ public final class IntArrayTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with an empty name.
|
* Creates the tag with an empty name.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value of the tag
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public IntArrayTag(final int[] value) {
|
public IntArrayTag(final int[] value) {
|
||||||
super();
|
super();
|
||||||
@ -24,10 +23,8 @@ public final class IntArrayTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag.
|
* Creates the tag.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
* @param value the value of the tag
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public IntArrayTag(final String name, final int[] value) {
|
public IntArrayTag(final String name, final int[] value) {
|
||||||
super(name);
|
super(name);
|
||||||
|
@ -10,8 +10,7 @@ public final class IntTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with an empty name.
|
* Creates the tag with an empty name.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value of the tag
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public IntTag(final int value) {
|
public IntTag(final int value) {
|
||||||
super();
|
super();
|
||||||
@ -21,10 +20,8 @@ public final class IntTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag.
|
* Creates the tag.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
* @param value the value of the tag
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public IntTag(final String name, final int value) {
|
public IntTag(final String name, final int value) {
|
||||||
super(name);
|
super(name);
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The {@code TAG_List} tag.
|
* The {@code TAG_List} tag.
|
||||||
@ -19,10 +18,8 @@ public final class ListTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with an empty name.
|
* Creates the tag with an empty name.
|
||||||
*
|
*
|
||||||
* @param type
|
* @param type the type of tag
|
||||||
* the type of tag
|
* @param value the value of the tag
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public ListTag(final Class<? extends Tag> type, final List<? extends Tag> value) {
|
public ListTag(final Class<? extends Tag> type, final List<? extends Tag> value) {
|
||||||
super();
|
super();
|
||||||
@ -34,12 +31,9 @@ public final class ListTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag.
|
* Creates the tag.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
* @param type the type of tag
|
||||||
* @param type
|
* @param value the value of the tag
|
||||||
* the type of tag
|
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public ListTag(final String name, final Class<? extends Tag> type, final List<? extends Tag> value) {
|
public ListTag(final String name, final Class<? extends Tag> type, final List<? extends Tag> value) {
|
||||||
super(name);
|
super(name);
|
||||||
@ -65,8 +59,8 @@ public final class ListTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Create a new list tag with this tag's name and type.
|
* Create a new list tag with this tag's name and type.
|
||||||
*
|
*
|
||||||
* @param list
|
* @param list the new list
|
||||||
* the new list
|
*
|
||||||
* @return a new list tag
|
* @return a new list tag
|
||||||
*/
|
*/
|
||||||
public ListTag setValue(final List<Tag> list) {
|
public ListTag setValue(final List<Tag> list) {
|
||||||
@ -76,97 +70,76 @@ public final class ListTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Get the tag if it exists at the given index.
|
* Get the tag if it exists at the given index.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the index
|
||||||
* the index
|
*
|
||||||
* @return the tag or null
|
* @return the tag or null
|
||||||
*/
|
*/
|
||||||
@Nullable
|
@Nullable
|
||||||
public Tag getIfExists(final int index) {
|
public Tag getIfExists(final int index) {
|
||||||
try {
|
try {
|
||||||
return this.value.get(index);
|
return this.value.get(index);
|
||||||
}
|
} catch (final NoSuchElementException e) {
|
||||||
catch (final NoSuchElementException e) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a byte array named with the given index.
|
* Get a byte array named with the given index. <p/> <p> If the index does not exist or its value is not a byte
|
||||||
* <p/>
|
* array tag, then an empty byte array will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the index does not exist or its value is not a byte array tag, then an
|
* @param index the index
|
||||||
* empty byte array will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return a byte array
|
* @return a byte array
|
||||||
*/
|
*/
|
||||||
public byte[] getByteArray(final int index) {
|
public byte[] getByteArray(final int index) {
|
||||||
final Tag tag = getIfExists(index);
|
final Tag tag = getIfExists(index);
|
||||||
if (tag instanceof ByteArrayTag) {
|
if (tag instanceof ByteArrayTag) {
|
||||||
return ((ByteArrayTag) tag).getValue();
|
return ((ByteArrayTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return new byte[0];
|
return new byte[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a byte named with the given index.
|
* Get a byte named with the given index. <p/> <p> If the index does not exist or its value is not a byte tag, then
|
||||||
* <p/>
|
* {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the index does not exist or its value is not a byte tag, then
|
* @param index the index
|
||||||
* {@code 0} will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return a byte
|
* @return a byte
|
||||||
*/
|
*/
|
||||||
public byte getByte(final int index) {
|
public byte getByte(final int index) {
|
||||||
final Tag tag = getIfExists(index);
|
final Tag tag = getIfExists(index);
|
||||||
if (tag instanceof ByteTag) {
|
if (tag instanceof ByteTag) {
|
||||||
return ((ByteTag) tag).getValue();
|
return ((ByteTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return (byte) 0;
|
return (byte) 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a double named with the given index.
|
* Get a double named with the given index. <p/> <p> If the index does not exist or its value is not a double tag,
|
||||||
* <p/>
|
* then {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the index does not exist or its value is not a double tag, then
|
* @param index the index
|
||||||
* {@code 0} will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return a double
|
* @return a double
|
||||||
*/
|
*/
|
||||||
public double getDouble(final int index) {
|
public double getDouble(final int index) {
|
||||||
final Tag tag = getIfExists(index);
|
final Tag tag = getIfExists(index);
|
||||||
if (tag instanceof DoubleTag) {
|
if (tag instanceof DoubleTag) {
|
||||||
return ((DoubleTag) tag).getValue();
|
return ((DoubleTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a double named with the given index, even if it's another
|
* Get a double named with the given index, even if it's another type of number. <p/> <p> If the index does not
|
||||||
* type of number.
|
* exist or its value is not a number, then {@code 0} will be returned. </p>
|
||||||
* <p/>
|
*
|
||||||
* <p>
|
* @param index the index
|
||||||
* If the index does not exist or its value is not a number, then {@code 0}
|
|
||||||
* will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return a double
|
* @return a double
|
||||||
*/
|
*/
|
||||||
public double asDouble(final int index) {
|
public double asDouble(final int index) {
|
||||||
@ -174,109 +147,83 @@ public final class ListTag extends Tag {
|
|||||||
if (tag instanceof ByteTag) {
|
if (tag instanceof ByteTag) {
|
||||||
return ((ByteTag) tag).getValue();
|
return ((ByteTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof ShortTag) {
|
||||||
else if (tag instanceof ShortTag) {
|
|
||||||
return ((ShortTag) tag).getValue();
|
return ((ShortTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof IntTag) {
|
||||||
else if (tag instanceof IntTag) {
|
|
||||||
return ((IntTag) tag).getValue();
|
return ((IntTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof LongTag) {
|
||||||
else if (tag instanceof LongTag) {
|
|
||||||
return ((LongTag) tag).getValue();
|
return ((LongTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof FloatTag) {
|
||||||
else if (tag instanceof FloatTag) {
|
|
||||||
return ((FloatTag) tag).getValue();
|
return ((FloatTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof DoubleTag) {
|
||||||
else if (tag instanceof DoubleTag) {
|
|
||||||
return ((DoubleTag) tag).getValue();
|
return ((DoubleTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a float named with the given index.
|
* Get a float named with the given index. <p/> <p> If the index does not exist or its value is not a float tag,
|
||||||
* <p/>
|
* then {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the index does not exist or its value is not a float tag, then
|
* @param index the index
|
||||||
* {@code 0} will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return a float
|
* @return a float
|
||||||
*/
|
*/
|
||||||
public float getFloat(final int index) {
|
public float getFloat(final int index) {
|
||||||
final Tag tag = getIfExists(index);
|
final Tag tag = getIfExists(index);
|
||||||
if (tag instanceof FloatTag) {
|
if (tag instanceof FloatTag) {
|
||||||
return ((FloatTag) tag).getValue();
|
return ((FloatTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a {@code int[]} named with the given index.
|
* Get a {@code int[]} named with the given index. <p/> <p> If the index does not exist or its value is not an int
|
||||||
* <p/>
|
* array tag, then an empty array will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the index does not exist or its value is not an int array tag, then an
|
* @param index the index
|
||||||
* empty array will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return an int array
|
* @return an int array
|
||||||
*/
|
*/
|
||||||
public int[] getIntArray(final int index) {
|
public int[] getIntArray(final int index) {
|
||||||
final Tag tag = getIfExists(index);
|
final Tag tag = getIfExists(index);
|
||||||
if (tag instanceof IntArrayTag) {
|
if (tag instanceof IntArrayTag) {
|
||||||
return ((IntArrayTag) tag).getValue();
|
return ((IntArrayTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return new int[0];
|
return new int[0];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get an int named with the given index.
|
* Get an int named with the given index. <p/> <p> If the index does not exist or its value is not an int tag, then
|
||||||
* <p/>
|
* {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the index does not exist or its value is not an int tag, then
|
* @param index the index
|
||||||
* {@code 0} will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return an int
|
* @return an int
|
||||||
*/
|
*/
|
||||||
public int getInt(final int index) {
|
public int getInt(final int index) {
|
||||||
final Tag tag = getIfExists(index);
|
final Tag tag = getIfExists(index);
|
||||||
if (tag instanceof IntTag) {
|
if (tag instanceof IntTag) {
|
||||||
return ((IntTag) tag).getValue();
|
return ((IntTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get an int named with the given index, even if it's another
|
* Get an int named with the given index, even if it's another type of number. <p/> <p> If the index does not exist
|
||||||
* type of number.
|
* or its value is not a number, then {@code 0} will be returned. </p>
|
||||||
* <p/>
|
*
|
||||||
* <p>
|
* @param index the index
|
||||||
* If the index does not exist or its value is not a number, then {@code 0}
|
|
||||||
* will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return an int
|
* @return an int
|
||||||
*/
|
*/
|
||||||
public int asInt(final int index) {
|
public int asInt(final int index) {
|
||||||
@ -284,91 +231,69 @@ public final class ListTag extends Tag {
|
|||||||
if (tag instanceof ByteTag) {
|
if (tag instanceof ByteTag) {
|
||||||
return ((ByteTag) tag).getValue();
|
return ((ByteTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof ShortTag) {
|
||||||
else if (tag instanceof ShortTag) {
|
|
||||||
return ((ShortTag) tag).getValue();
|
return ((ShortTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof IntTag) {
|
||||||
else if (tag instanceof IntTag) {
|
|
||||||
return ((IntTag) tag).getValue();
|
return ((IntTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof LongTag) {
|
||||||
else if (tag instanceof LongTag) {
|
|
||||||
return ((LongTag) tag).getValue().intValue();
|
return ((LongTag) tag).getValue().intValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof FloatTag) {
|
||||||
else if (tag instanceof FloatTag) {
|
|
||||||
return ((FloatTag) tag).getValue().intValue();
|
return ((FloatTag) tag).getValue().intValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof DoubleTag) {
|
||||||
else if (tag instanceof DoubleTag) {
|
|
||||||
return ((DoubleTag) tag).getValue().intValue();
|
return ((DoubleTag) tag).getValue().intValue();
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a list of tags named with the given index.
|
* Get a list of tags named with the given index. <p/> <p> If the index does not exist or its value is not a list
|
||||||
* <p/>
|
* tag, then an empty list will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the index does not exist or its value is not a list tag, then an empty
|
* @param index the index
|
||||||
* list will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return a list of tags
|
* @return a list of tags
|
||||||
*/
|
*/
|
||||||
public List<Tag> getList(final int index) {
|
public List<Tag> getList(final int index) {
|
||||||
final Tag tag = getIfExists(index);
|
final Tag tag = getIfExists(index);
|
||||||
if (tag instanceof ListTag) {
|
if (tag instanceof ListTag) {
|
||||||
return ((ListTag) tag).getValue();
|
return ((ListTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a {@code TagList} named with the given index.
|
* Get a {@code TagList} named with the given index. <p/> <p> If the index does not exist or its value is not a list
|
||||||
* <p/>
|
* tag, then an empty tag list will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the index does not exist or its value is not a list tag, then an empty
|
* @param index the index
|
||||||
* tag list will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return a tag list instance
|
* @return a tag list instance
|
||||||
*/
|
*/
|
||||||
public ListTag getListTag(final int index) {
|
public ListTag getListTag(final int index) {
|
||||||
final Tag tag = getIfExists(index);
|
final Tag tag = getIfExists(index);
|
||||||
if (tag instanceof ListTag) {
|
if (tag instanceof ListTag) {
|
||||||
return (ListTag) tag;
|
return (ListTag) tag;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return new ListTag(StringTag.class, Collections.<Tag>emptyList());
|
return new ListTag(StringTag.class, Collections.<Tag>emptyList());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a list of tags named with the given index.
|
* Get a list of tags named with the given index. <p/> <p> If the index does not exist or its value is not a list
|
||||||
* <p/>
|
* tag, then an empty list will be returned. If the given index references a list but the list of of a different
|
||||||
* <p>
|
* type, then an empty list will also be returned. </p>
|
||||||
* 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
|
* @param index the index
|
||||||
* of of a different type, then an empty list will also be returned.
|
* @param listType the class of the contained type
|
||||||
* </p>
|
* @param <T> the NBT type
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @param listType
|
|
||||||
* the class of the contained type
|
|
||||||
* @param <T>
|
|
||||||
* the NBT type
|
|
||||||
* @return a list of tags
|
* @return a list of tags
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
@ -378,49 +303,37 @@ public final class ListTag extends Tag {
|
|||||||
final ListTag listTag = (ListTag) tag;
|
final ListTag listTag = (ListTag) tag;
|
||||||
if (listTag.getType().equals(listType)) {
|
if (listTag.getType().equals(listType)) {
|
||||||
return (List<T>) listTag.getValue();
|
return (List<T>) listTag.getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a long named with the given index.
|
* Get a long named with the given index. <p/> <p> If the index does not exist or its value is not a long tag, then
|
||||||
* <p/>
|
* {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the index does not exist or its value is not a long tag, then
|
* @param index the index
|
||||||
* {@code 0} will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return a long
|
* @return a long
|
||||||
*/
|
*/
|
||||||
public long getLong(final int index) {
|
public long getLong(final int index) {
|
||||||
final Tag tag = getIfExists(index);
|
final Tag tag = getIfExists(index);
|
||||||
if (tag instanceof LongTag) {
|
if (tag instanceof LongTag) {
|
||||||
return ((LongTag) tag).getValue();
|
return ((LongTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0L;
|
return 0L;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a long named with the given index, even if it's another
|
* Get a long named with the given index, even if it's another type of number. <p/> <p> If the index does not exist
|
||||||
* type of number.
|
* or its value is not a number, then {@code 0} will be returned. </p>
|
||||||
* <p/>
|
*
|
||||||
* <p>
|
* @param index the index
|
||||||
* If the index does not exist or its value is not a number, then {@code 0}
|
|
||||||
* will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return a long
|
* @return a long
|
||||||
*/
|
*/
|
||||||
public long asLong(final int index) {
|
public long asLong(final int index) {
|
||||||
@ -428,72 +341,56 @@ public final class ListTag extends Tag {
|
|||||||
if (tag instanceof ByteTag) {
|
if (tag instanceof ByteTag) {
|
||||||
return ((ByteTag) tag).getValue();
|
return ((ByteTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof ShortTag) {
|
||||||
else if (tag instanceof ShortTag) {
|
|
||||||
return ((ShortTag) tag).getValue();
|
return ((ShortTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof IntTag) {
|
||||||
else if (tag instanceof IntTag) {
|
|
||||||
return ((IntTag) tag).getValue();
|
return ((IntTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof LongTag) {
|
||||||
else if (tag instanceof LongTag) {
|
|
||||||
return ((LongTag) tag).getValue();
|
return ((LongTag) tag).getValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof FloatTag) {
|
||||||
else if (tag instanceof FloatTag) {
|
|
||||||
return ((FloatTag) tag).getValue().longValue();
|
return ((FloatTag) tag).getValue().longValue();
|
||||||
|
|
||||||
}
|
} else if (tag instanceof DoubleTag) {
|
||||||
else if (tag instanceof DoubleTag) {
|
|
||||||
return ((DoubleTag) tag).getValue().longValue();
|
return ((DoubleTag) tag).getValue().longValue();
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a short named with the given index.
|
* Get a short named with the given index. <p/> <p> If the index does not exist or its value is not a short tag,
|
||||||
* <p/>
|
* then {@code 0} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the index does not exist or its value is not a short tag, then
|
* @param index the index
|
||||||
* {@code 0} will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return a short
|
* @return a short
|
||||||
*/
|
*/
|
||||||
public short getShort(final int index) {
|
public short getShort(final int index) {
|
||||||
final Tag tag = getIfExists(index);
|
final Tag tag = getIfExists(index);
|
||||||
if (tag instanceof ShortTag) {
|
if (tag instanceof ShortTag) {
|
||||||
return ((ShortTag) tag).getValue();
|
return ((ShortTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a string named with the given index.
|
* Get a string named with the given index. <p/> <p> If the index does not exist or its value is not a string tag,
|
||||||
* <p/>
|
* then {@code ""} will be returned. </p>
|
||||||
* <p>
|
*
|
||||||
* If the index does not exist or its value is not a string tag, then
|
* @param index the index
|
||||||
* {@code ""} will be returned.
|
|
||||||
* </p>
|
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* the index
|
|
||||||
* @return a string
|
* @return a string
|
||||||
*/
|
*/
|
||||||
public String getString(final int index) {
|
public String getString(final int index) {
|
||||||
final Tag tag = getIfExists(index);
|
final Tag tag = getIfExists(index);
|
||||||
if (tag instanceof StringTag) {
|
if (tag instanceof StringTag) {
|
||||||
return ((StringTag) tag).getValue();
|
return ((StringTag) tag).getValue();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helps create list tags.
|
* Helps create list tags.
|
||||||
*/
|
*/
|
||||||
@ -18,8 +18,7 @@ public class ListTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Create a new instance.
|
* Create a new instance.
|
||||||
*
|
*
|
||||||
* @param type
|
* @param type of tag contained in this list
|
||||||
* of tag contained in this list
|
|
||||||
*/
|
*/
|
||||||
ListTagBuilder(final Class<? extends Tag> type) {
|
ListTagBuilder(final Class<? extends Tag> type) {
|
||||||
checkNotNull(type);
|
checkNotNull(type);
|
||||||
@ -64,8 +63,8 @@ public class ListTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Add the given tag.
|
* Add the given tag.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the tag
|
||||||
* the tag
|
*
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public ListTagBuilder add(final Tag value) {
|
public ListTagBuilder add(final Tag value) {
|
||||||
@ -80,8 +79,8 @@ public class ListTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Add all the tags in the given list.
|
* Add all the tags in the given list.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value a list of tags
|
||||||
* a list of tags
|
*
|
||||||
* @return this object
|
* @return this object
|
||||||
*/
|
*/
|
||||||
public ListTagBuilder addAll(final Collection<? extends Tag> value) {
|
public ListTagBuilder addAll(final Collection<? extends Tag> value) {
|
||||||
@ -104,8 +103,8 @@ public class ListTagBuilder {
|
|||||||
/**
|
/**
|
||||||
* Build a new list tag with this builder's entries.
|
* Build a new list tag with this builder's entries.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
*
|
||||||
* @return the created list tag
|
* @return the created list tag
|
||||||
*/
|
*/
|
||||||
public ListTag build(final String name) {
|
public ListTag build(final String name) {
|
||||||
|
@ -10,8 +10,7 @@ public final class LongTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with an empty name.
|
* Creates the tag with an empty name.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value of the tag
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public LongTag(final long value) {
|
public LongTag(final long value) {
|
||||||
super();
|
super();
|
||||||
@ -21,10 +20,8 @@ public final class LongTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag.
|
* Creates the tag.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
* @param value the value of the tag
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public LongTag(final String name, final long value) {
|
public LongTag(final String name, final long value) {
|
||||||
super(name);
|
super(name);
|
||||||
|
@ -42,11 +42,11 @@ public final class NBTConstants {
|
|||||||
/**
|
/**
|
||||||
* Convert a type ID to its corresponding {@link Tag} class.
|
* Convert a type ID to its corresponding {@link Tag} class.
|
||||||
*
|
*
|
||||||
* @param id
|
* @param id type ID
|
||||||
* type ID
|
*
|
||||||
* @return tag class
|
* @return tag class
|
||||||
* @throws IllegalArgumentException
|
*
|
||||||
* thrown if the tag ID is not valid
|
* @throws IllegalArgumentException thrown if the tag ID is not valid
|
||||||
*/
|
*/
|
||||||
public static Class<? extends Tag> getClassFromType(final int id) {
|
public static Class<? extends Tag> getClassFromType(final int id) {
|
||||||
switch (id) {
|
switch (id) {
|
||||||
|
@ -10,28 +10,20 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class reads <strong>NBT</strong>, or <strong>Named Binary Tag</strong>
|
* This class reads <strong>NBT</strong>, or <strong>Named Binary Tag</strong> streams, and produces an object graph of
|
||||||
* streams, and produces an object graph of subclasses of the {@code Tag}
|
* subclasses of the {@code Tag} object. <p/> <p> The NBT format was created by Markus Persson, and the specification
|
||||||
* object.
|
* may be found at <a href="http://www.minecraft.net/docs/NBT.txt"> http://www.minecraft.net/docs/NBT.txt</a>. </p>
|
||||||
* <p/>
|
|
||||||
* <p>
|
|
||||||
* The NBT format was created by Markus Persson, and the specification may be
|
|
||||||
* found at <a href="http://www.minecraft.net/docs/NBT.txt">
|
|
||||||
* http://www.minecraft.net/docs/NBT.txt</a>.
|
|
||||||
* </p>
|
|
||||||
*/
|
*/
|
||||||
public final class NBTInputStream implements Closeable {
|
public final class NBTInputStream implements Closeable {
|
||||||
|
|
||||||
private final DataInputStream is;
|
private final DataInputStream is;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new {@code NBTInputStream}, which will source its data
|
* Creates a new {@code NBTInputStream}, which will source its data from the specified input stream.
|
||||||
* from the specified input stream.
|
|
||||||
*
|
*
|
||||||
* @param is
|
* @param is the input stream
|
||||||
* the input stream
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs
|
||||||
* if an I/O error occurs
|
|
||||||
*/
|
*/
|
||||||
public NBTInputStream(final InputStream is) throws IOException {
|
public NBTInputStream(final InputStream is) throws IOException {
|
||||||
this.is = new DataInputStream(is);
|
this.is = new DataInputStream(is);
|
||||||
@ -41,8 +33,8 @@ public final class NBTInputStream implements Closeable {
|
|||||||
* Reads an NBT tag from the stream.
|
* Reads an NBT tag from the stream.
|
||||||
*
|
*
|
||||||
* @return The tag that was read.
|
* @return The tag that was read.
|
||||||
* @throws IOException
|
*
|
||||||
* if an I/O error occurs.
|
* @throws IOException if an I/O error occurs.
|
||||||
*/
|
*/
|
||||||
public Tag readTag() throws IOException {
|
public Tag readTag() throws IOException {
|
||||||
return readTag(0);
|
return readTag(0);
|
||||||
@ -51,11 +43,11 @@ public final class NBTInputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Reads an NBT from the stream.
|
* Reads an NBT from the stream.
|
||||||
*
|
*
|
||||||
* @param depth
|
* @param depth the depth of this tag
|
||||||
* the depth of this tag
|
*
|
||||||
* @return The tag that was read.
|
* @return The tag that was read.
|
||||||
* @throws IOException
|
*
|
||||||
* if an I/O error occurs.
|
* @throws IOException if an I/O error occurs.
|
||||||
*/
|
*/
|
||||||
private Tag readTag(final int depth) throws IOException {
|
private Tag readTag(final int depth) throws IOException {
|
||||||
final int type = this.is.readByte() & 0xFF;
|
final int type = this.is.readByte() & 0xFF;
|
||||||
@ -66,8 +58,7 @@ public final class NBTInputStream implements Closeable {
|
|||||||
final byte[] nameBytes = new byte[nameLength];
|
final byte[] nameBytes = new byte[nameLength];
|
||||||
this.is.readFully(nameBytes);
|
this.is.readFully(nameBytes);
|
||||||
name = new String(nameBytes, NBTConstants.CHARSET);
|
name = new String(nameBytes, NBTConstants.CHARSET);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
name = "";
|
name = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,23 +68,20 @@ public final class NBTInputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Reads the payload of a tag, given the name and type.
|
* Reads the payload of a tag, given the name and type.
|
||||||
*
|
*
|
||||||
* @param type
|
* @param type the type
|
||||||
* the type
|
* @param name the name
|
||||||
* @param name
|
* @param depth the depth
|
||||||
* the name
|
*
|
||||||
* @param depth
|
|
||||||
* the depth
|
|
||||||
* @return the tag
|
* @return the tag
|
||||||
* @throws IOException
|
*
|
||||||
* if an I/O error occurs.
|
* @throws IOException if an I/O error occurs.
|
||||||
*/
|
*/
|
||||||
private Tag readTagPayload(final int type, final String name, final int depth) throws IOException {
|
private Tag readTagPayload(final int type, final String name, final int depth) throws IOException {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case NBTConstants.TYPE_END:
|
case NBTConstants.TYPE_END:
|
||||||
if (depth == 0) {
|
if (depth == 0) {
|
||||||
throw new IOException("TAG_End found without a TAG_Compound/TAG_List tag preceding it.");
|
throw new IOException("TAG_End found without a TAG_Compound/TAG_List tag preceding it.");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return new EndTag();
|
return new EndTag();
|
||||||
}
|
}
|
||||||
case NBTConstants.TYPE_BYTE:
|
case NBTConstants.TYPE_BYTE:
|
||||||
@ -138,8 +126,7 @@ public final class NBTInputStream implements Closeable {
|
|||||||
final Tag tag = readTag(depth + 1);
|
final Tag tag = readTag(depth + 1);
|
||||||
if (tag instanceof EndTag) {
|
if (tag instanceof EndTag) {
|
||||||
break;
|
break;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
tagMap.put(tag.getName(), tag);
|
tagMap.put(tag.getName(), tag);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,15 +28,9 @@ import java.io.OutputStream;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p> This class writes <strong>NBT</strong>, or <strong>Named Binary Tag</strong> <code>Tag</code> objects to an
|
||||||
* This class writes <strong>NBT</strong>, or <strong>Named Binary Tag</strong>
|
* underlying <code>OutputStream</code>. </p> <p/> <p> The NBT format was created by Markus Persson, and the
|
||||||
* <code>Tag</code> objects to an underlying <code>OutputStream</code>.
|
* specification may be found at <a href="http://www.minecraft.net/docs/NBT.txt"> http://www.minecraft.net/docs/NBT.txt</a>.
|
||||||
* </p>
|
|
||||||
* <p/>
|
|
||||||
* <p>
|
|
||||||
* The NBT format was created by Markus Persson, and the specification may be
|
|
||||||
* found at <a href="http://www.minecraft.net/docs/NBT.txt">
|
|
||||||
* http://www.minecraft.net/docs/NBT.txt</a>.
|
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author Graham Edgecombe
|
* @author Graham Edgecombe
|
||||||
@ -49,13 +43,11 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
private final DataOutputStream os;
|
private final DataOutputStream os;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new <code>NBTOutputStream</code>, which will write data to the
|
* Creates a new <code>NBTOutputStream</code>, which will write data to the specified underlying output stream.
|
||||||
* specified underlying output stream.
|
|
||||||
*
|
*
|
||||||
* @param os
|
* @param os The output stream.
|
||||||
* The output stream.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
public NBTOutputStream(final OutputStream os) throws IOException {
|
public NBTOutputStream(final OutputStream os) throws IOException {
|
||||||
this.os = new DataOutputStream(os);
|
this.os = new DataOutputStream(os);
|
||||||
@ -64,10 +56,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a tag.
|
* Writes a tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag to write.
|
||||||
* The tag to write.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
public void writeTag(final Tag tag) throws IOException {
|
public void writeTag(final Tag tag) throws IOException {
|
||||||
final int type = NBTUtils.getTypeCode(tag.getClass());
|
final int type = NBTUtils.getTypeCode(tag.getClass());
|
||||||
@ -88,10 +79,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes tag payload.
|
* Writes tag payload.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeTagPayload(final Tag tag) throws IOException {
|
private void writeTagPayload(final Tag tag) throws IOException {
|
||||||
final int type = NBTUtils.getTypeCode(tag.getClass());
|
final int type = NBTUtils.getTypeCode(tag.getClass());
|
||||||
@ -140,10 +130,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a <code>TAG_Byte</code> tag.
|
* Writes a <code>TAG_Byte</code> tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeByteTagPayload(final ByteTag tag) throws IOException {
|
private void writeByteTagPayload(final ByteTag tag) throws IOException {
|
||||||
this.os.writeByte(tag.getValue());
|
this.os.writeByte(tag.getValue());
|
||||||
@ -152,10 +141,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a <code>TAG_Byte_Array</code> tag.
|
* Writes a <code>TAG_Byte_Array</code> tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeByteArrayTagPayload(final ByteArrayTag tag) throws IOException {
|
private void writeByteArrayTagPayload(final ByteArrayTag tag) throws IOException {
|
||||||
final byte[] bytes = tag.getValue();
|
final byte[] bytes = tag.getValue();
|
||||||
@ -166,10 +154,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a <code>TAG_Compound</code> tag.
|
* Writes a <code>TAG_Compound</code> tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeCompoundTagPayload(final CompoundTag tag) throws IOException {
|
private void writeCompoundTagPayload(final CompoundTag tag) throws IOException {
|
||||||
for (final Tag childTag : tag.getValue().values()) {
|
for (final Tag childTag : tag.getValue().values()) {
|
||||||
@ -181,10 +168,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a <code>TAG_List</code> tag.
|
* Writes a <code>TAG_List</code> tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeListTagPayload(final ListTag tag) throws IOException {
|
private void writeListTagPayload(final ListTag tag) throws IOException {
|
||||||
final Class<? extends Tag> clazz = tag.getType();
|
final Class<? extends Tag> clazz = tag.getType();
|
||||||
@ -201,10 +187,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a <code>TAG_String</code> tag.
|
* Writes a <code>TAG_String</code> tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeStringTagPayload(final StringTag tag) throws IOException {
|
private void writeStringTagPayload(final StringTag tag) throws IOException {
|
||||||
final byte[] bytes = tag.getValue().getBytes(NBTConstants.CHARSET);
|
final byte[] bytes = tag.getValue().getBytes(NBTConstants.CHARSET);
|
||||||
@ -215,10 +200,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a <code>TAG_Double</code> tag.
|
* Writes a <code>TAG_Double</code> tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeDoubleTagPayload(final DoubleTag tag) throws IOException {
|
private void writeDoubleTagPayload(final DoubleTag tag) throws IOException {
|
||||||
this.os.writeDouble(tag.getValue());
|
this.os.writeDouble(tag.getValue());
|
||||||
@ -227,10 +211,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a <code>TAG_Float</code> tag.
|
* Writes a <code>TAG_Float</code> tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeFloatTagPayload(final FloatTag tag) throws IOException {
|
private void writeFloatTagPayload(final FloatTag tag) throws IOException {
|
||||||
this.os.writeFloat(tag.getValue());
|
this.os.writeFloat(tag.getValue());
|
||||||
@ -239,10 +222,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a <code>TAG_Long</code> tag.
|
* Writes a <code>TAG_Long</code> tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeLongTagPayload(final LongTag tag) throws IOException {
|
private void writeLongTagPayload(final LongTag tag) throws IOException {
|
||||||
this.os.writeLong(tag.getValue());
|
this.os.writeLong(tag.getValue());
|
||||||
@ -251,10 +233,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a <code>TAG_Int</code> tag.
|
* Writes a <code>TAG_Int</code> tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeIntTagPayload(final IntTag tag) throws IOException {
|
private void writeIntTagPayload(final IntTag tag) throws IOException {
|
||||||
this.os.writeInt(tag.getValue());
|
this.os.writeInt(tag.getValue());
|
||||||
@ -263,10 +244,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a <code>TAG_Short</code> tag.
|
* Writes a <code>TAG_Short</code> tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeShortTagPayload(final ShortTag tag) throws IOException {
|
private void writeShortTagPayload(final ShortTag tag) throws IOException {
|
||||||
this.os.writeShort(tag.getValue());
|
this.os.writeShort(tag.getValue());
|
||||||
@ -275,10 +255,9 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes a <code>TAG_Empty</code> tag.
|
* Writes a <code>TAG_Empty</code> tag.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
*
|
||||||
* @throws IOException
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeEndTagPayload(final EndTag tag) {
|
private void writeEndTagPayload(final EndTag tag) {
|
||||||
/* empty */
|
/* empty */
|
||||||
|
@ -16,48 +16,36 @@ public final class NBTUtils {
|
|||||||
/**
|
/**
|
||||||
* Gets the type name of a tag.
|
* Gets the type name of a tag.
|
||||||
*
|
*
|
||||||
* @param clazz
|
* @param clazz the tag class
|
||||||
* the tag class
|
*
|
||||||
* @return The type name.
|
* @return The type name.
|
||||||
*/
|
*/
|
||||||
public static String getTypeName(final Class<? extends Tag> clazz) {
|
public static String getTypeName(final Class<? extends Tag> clazz) {
|
||||||
if (clazz.equals(ByteArrayTag.class)) {
|
if (clazz.equals(ByteArrayTag.class)) {
|
||||||
return "TAG_Byte_Array";
|
return "TAG_Byte_Array";
|
||||||
}
|
} else if (clazz.equals(ByteTag.class)) {
|
||||||
else if (clazz.equals(ByteTag.class)) {
|
|
||||||
return "TAG_Byte";
|
return "TAG_Byte";
|
||||||
}
|
} else if (clazz.equals(CompoundTag.class)) {
|
||||||
else if (clazz.equals(CompoundTag.class)) {
|
|
||||||
return "TAG_Compound";
|
return "TAG_Compound";
|
||||||
}
|
} else if (clazz.equals(DoubleTag.class)) {
|
||||||
else if (clazz.equals(DoubleTag.class)) {
|
|
||||||
return "TAG_Double";
|
return "TAG_Double";
|
||||||
}
|
} else if (clazz.equals(EndTag.class)) {
|
||||||
else if (clazz.equals(EndTag.class)) {
|
|
||||||
return "TAG_End";
|
return "TAG_End";
|
||||||
}
|
} else if (clazz.equals(FloatTag.class)) {
|
||||||
else if (clazz.equals(FloatTag.class)) {
|
|
||||||
return "TAG_Float";
|
return "TAG_Float";
|
||||||
}
|
} else if (clazz.equals(IntTag.class)) {
|
||||||
else if (clazz.equals(IntTag.class)) {
|
|
||||||
return "TAG_Int";
|
return "TAG_Int";
|
||||||
}
|
} else if (clazz.equals(ListTag.class)) {
|
||||||
else if (clazz.equals(ListTag.class)) {
|
|
||||||
return "TAG_List";
|
return "TAG_List";
|
||||||
}
|
} else if (clazz.equals(LongTag.class)) {
|
||||||
else if (clazz.equals(LongTag.class)) {
|
|
||||||
return "TAG_Long";
|
return "TAG_Long";
|
||||||
}
|
} else if (clazz.equals(ShortTag.class)) {
|
||||||
else if (clazz.equals(ShortTag.class)) {
|
|
||||||
return "TAG_Short";
|
return "TAG_Short";
|
||||||
}
|
} else if (clazz.equals(StringTag.class)) {
|
||||||
else if (clazz.equals(StringTag.class)) {
|
|
||||||
return "TAG_String";
|
return "TAG_String";
|
||||||
}
|
} else if (clazz.equals(IntArrayTag.class)) {
|
||||||
else if (clazz.equals(IntArrayTag.class)) {
|
|
||||||
return "TAG_Int_Array";
|
return "TAG_Int_Array";
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw new IllegalArgumentException("Invalid tag classs (" + clazz.getName() + ").");
|
throw new IllegalArgumentException("Invalid tag classs (" + clazz.getName() + ").");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -65,50 +53,38 @@ public final class NBTUtils {
|
|||||||
/**
|
/**
|
||||||
* Gets the type code of a tag class.
|
* Gets the type code of a tag class.
|
||||||
*
|
*
|
||||||
* @param clazz
|
* @param clazz the tag class
|
||||||
* the tag class
|
*
|
||||||
* @return The type code.
|
* @return The type code.
|
||||||
* @throws IllegalArgumentException
|
*
|
||||||
* if the tag class is invalid.
|
* @throws IllegalArgumentException if the tag class is invalid.
|
||||||
*/
|
*/
|
||||||
public static int getTypeCode(final Class<? extends Tag> clazz) {
|
public static int getTypeCode(final Class<? extends Tag> clazz) {
|
||||||
if (clazz.equals(ByteArrayTag.class)) {
|
if (clazz.equals(ByteArrayTag.class)) {
|
||||||
return NBTConstants.TYPE_BYTE_ARRAY;
|
return NBTConstants.TYPE_BYTE_ARRAY;
|
||||||
}
|
} else if (clazz.equals(ByteTag.class)) {
|
||||||
else if (clazz.equals(ByteTag.class)) {
|
|
||||||
return NBTConstants.TYPE_BYTE;
|
return NBTConstants.TYPE_BYTE;
|
||||||
}
|
} else if (clazz.equals(CompoundTag.class)) {
|
||||||
else if (clazz.equals(CompoundTag.class)) {
|
|
||||||
return NBTConstants.TYPE_COMPOUND;
|
return NBTConstants.TYPE_COMPOUND;
|
||||||
}
|
} else if (clazz.equals(DoubleTag.class)) {
|
||||||
else if (clazz.equals(DoubleTag.class)) {
|
|
||||||
return NBTConstants.TYPE_DOUBLE;
|
return NBTConstants.TYPE_DOUBLE;
|
||||||
}
|
} else if (clazz.equals(EndTag.class)) {
|
||||||
else if (clazz.equals(EndTag.class)) {
|
|
||||||
return NBTConstants.TYPE_END;
|
return NBTConstants.TYPE_END;
|
||||||
}
|
} else if (clazz.equals(FloatTag.class)) {
|
||||||
else if (clazz.equals(FloatTag.class)) {
|
|
||||||
return NBTConstants.TYPE_FLOAT;
|
return NBTConstants.TYPE_FLOAT;
|
||||||
}
|
} else if (clazz.equals(IntTag.class)) {
|
||||||
else if (clazz.equals(IntTag.class)) {
|
|
||||||
return NBTConstants.TYPE_INT;
|
return NBTConstants.TYPE_INT;
|
||||||
}
|
} else if (clazz.equals(ListTag.class)) {
|
||||||
else if (clazz.equals(ListTag.class)) {
|
|
||||||
return NBTConstants.TYPE_LIST;
|
return NBTConstants.TYPE_LIST;
|
||||||
}
|
} else if (clazz.equals(LongTag.class)) {
|
||||||
else if (clazz.equals(LongTag.class)) {
|
|
||||||
return NBTConstants.TYPE_LONG;
|
return NBTConstants.TYPE_LONG;
|
||||||
}
|
} else if (clazz.equals(ShortTag.class)) {
|
||||||
else if (clazz.equals(ShortTag.class)) {
|
|
||||||
return NBTConstants.TYPE_SHORT;
|
return NBTConstants.TYPE_SHORT;
|
||||||
}
|
} else if (clazz.equals(StringTag.class)) {
|
||||||
else if (clazz.equals(StringTag.class)) {
|
|
||||||
return NBTConstants.TYPE_STRING;
|
return NBTConstants.TYPE_STRING;
|
||||||
}
|
} else if (clazz.equals(IntArrayTag.class)) {
|
||||||
else if (clazz.equals(IntArrayTag.class)) {
|
|
||||||
return NBTConstants.TYPE_INT_ARRAY;
|
return NBTConstants.TYPE_INT_ARRAY;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw new IllegalArgumentException("Invalid tag classs (" + clazz.getName() + ").");
|
throw new IllegalArgumentException("Invalid tag classs (" + clazz.getName() + ").");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -116,11 +92,11 @@ public final class NBTUtils {
|
|||||||
/**
|
/**
|
||||||
* Gets the class of a type of tag.
|
* Gets the class of a type of tag.
|
||||||
*
|
*
|
||||||
* @param type
|
* @param type the type
|
||||||
* the type
|
*
|
||||||
* @return The class.
|
* @return The class.
|
||||||
* @throws IllegalArgumentException
|
*
|
||||||
* if the tag type is invalid.
|
* @throws IllegalArgumentException if the tag type is invalid.
|
||||||
*/
|
*/
|
||||||
public static Class<? extends Tag> getTypeClass(final int type) {
|
public static Class<? extends Tag> getTypeClass(final int type) {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
@ -156,12 +132,10 @@ public final class NBTUtils {
|
|||||||
/**
|
/**
|
||||||
* Get child tag of a NBT structure.
|
* Get child tag of a NBT structure.
|
||||||
*
|
*
|
||||||
* @param items
|
* @param items the map to read from
|
||||||
* the map to read from
|
* @param key the key to look for
|
||||||
* @param key
|
* @param expected the expected NBT class type
|
||||||
* the key to look for
|
*
|
||||||
* @param expected
|
|
||||||
* the expected NBT class type
|
|
||||||
* @return child tag
|
* @return child tag
|
||||||
*/
|
*/
|
||||||
public static <T extends Tag> T getChildTag(final Map<String, Tag> items, final String key, final Class<T> expected) throws IllegalArgumentException {
|
public static <T extends Tag> T getChildTag(final Map<String, Tag> items, final String key, final Class<T> expected) throws IllegalArgumentException {
|
||||||
|
@ -31,8 +31,7 @@ public final class ShortTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with an empty name.
|
* Creates the tag with an empty name.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value of the tag
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public ShortTag(final short value) {
|
public ShortTag(final short value) {
|
||||||
super();
|
super();
|
||||||
@ -42,10 +41,8 @@ public final class ShortTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag.
|
* Creates the tag.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
* @param value the value of the tag
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public ShortTag(final String name, final short value) {
|
public ShortTag(final String name, final short value) {
|
||||||
super(name);
|
super(name);
|
||||||
|
@ -12,8 +12,7 @@ public final class StringTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with an empty name.
|
* Creates the tag with an empty name.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value the value of the tag
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public StringTag(final String value) {
|
public StringTag(final String value) {
|
||||||
super();
|
super();
|
||||||
@ -24,10 +23,8 @@ public final class StringTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag.
|
* Creates the tag.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the tag
|
||||||
* the name of the tag
|
* @param value the value of the tag
|
||||||
* @param value
|
|
||||||
* the value of the tag
|
|
||||||
*/
|
*/
|
||||||
public StringTag(final String name, final String value) {
|
public StringTag(final String name, final String value) {
|
||||||
super(name);
|
super(name);
|
||||||
|
@ -38,8 +38,7 @@ public abstract class Tag {
|
|||||||
/**
|
/**
|
||||||
* Creates the tag with the specified name.
|
* Creates the tag with the specified name.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name
|
||||||
* the name
|
|
||||||
*/
|
*/
|
||||||
Tag(String name) {
|
Tag(String name) {
|
||||||
if (name == null) {
|
if (name == null) {
|
||||||
|
@ -1,21 +1,18 @@
|
|||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This provides static methods to convert comma delimited text into a
|
* This provides static methods to convert comma delimited text into a JSONArray, and to covert a JSONArray into comma
|
||||||
* JSONArray, and to covert a JSONArray into comma delimited text. Comma
|
* delimited text. Comma delimited text is a very popular format for data interchange. It is understood by most
|
||||||
* delimited text is a very popular format for data interchange. It is
|
* database, spreadsheet, and organizer programs.
|
||||||
* understood by most database, spreadsheet, and organizer programs.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* Each row of text represents a row in a table or a data record. Each row ends
|
* Each row of text represents a row in a table or a data record. Each row ends with a NEWLINE character. Each row
|
||||||
* with a NEWLINE character. Each row contains one or more values. Values are
|
* contains one or more values. Values are separated by commas. A value can contain any character except for comma,
|
||||||
* separated by commas. A value can contain any character except for comma,
|
|
||||||
* unless is is wrapped in single quotes or double quotes.
|
* unless is is wrapped in single quotes or double quotes.
|
||||||
* <p/>
|
* <p/>
|
||||||
* The first row usually contains the names of the columns.
|
* The first row usually contains the names of the columns.
|
||||||
* <p/>
|
* <p/>
|
||||||
* A comma delimited list can be converted into a JSONArray of JSONObjects. The
|
* A comma delimited list can be converted into a JSONArray of JSONObjects. The names for the elements in the
|
||||||
* names for the elements in the JSONObjects can be taken from the names in the
|
* JSONObjects can be taken from the names in the first row.
|
||||||
* first row.
|
|
||||||
*
|
*
|
||||||
* @author JSON.org
|
* @author JSON.org
|
||||||
* @version 2014-05-03
|
* @version 2014-05-03
|
||||||
@ -23,14 +20,13 @@ package com.intellectualcrafters.json;
|
|||||||
public class CDL {
|
public class CDL {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the next value. The value can be wrapped in quotes. The value can
|
* Get the next value. The value can be wrapped in quotes. The value can be empty.
|
||||||
* be empty.
|
*
|
||||||
|
* @param x A JSONTokener of the source text.
|
||||||
*
|
*
|
||||||
* @param x
|
|
||||||
* A JSONTokener of the source text.
|
|
||||||
* @return The value string, or null if empty.
|
* @return The value string, or null if empty.
|
||||||
* @throws JSONException
|
*
|
||||||
* if the quoted string is badly formed.
|
* @throws JSONException if the quoted string is badly formed.
|
||||||
*/
|
*/
|
||||||
private static String getValue(final JSONTokener x) throws JSONException {
|
private static String getValue(final JSONTokener x) throws JSONException {
|
||||||
char c;
|
char c;
|
||||||
@ -38,8 +34,7 @@ public class CDL {
|
|||||||
StringBuffer sb;
|
StringBuffer sb;
|
||||||
do {
|
do {
|
||||||
c = x.next();
|
c = x.next();
|
||||||
}
|
} while ((c == ' ') || (c == '\t'));
|
||||||
while ((c == ' ') || (c == '\t'));
|
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 0:
|
case 0:
|
||||||
return null;
|
return null;
|
||||||
@ -70,9 +65,10 @@ public class CDL {
|
|||||||
/**
|
/**
|
||||||
* Produce a JSONArray of strings from a row of comma delimited values.
|
* Produce a JSONArray of strings from a row of comma delimited values.
|
||||||
*
|
*
|
||||||
* @param x
|
* @param x A JSONTokener of the source text.
|
||||||
* A JSONTokener of the source text.
|
*
|
||||||
* @return A JSONArray of strings.
|
* @return A JSONArray of strings.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONArray rowToJSONArray(final JSONTokener x) throws JSONException {
|
public static JSONArray rowToJSONArray(final JSONTokener x) throws JSONException {
|
||||||
@ -100,17 +96,15 @@ public class CDL {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produce a JSONObject from a row of comma delimited text, using a
|
* Produce a JSONObject from a row of comma delimited text, using a parallel JSONArray of strings to provides the
|
||||||
* parallel JSONArray of strings to provides the names of the elements.
|
* names of the elements.
|
||||||
|
*
|
||||||
|
* @param names A JSONArray of names. This is commonly obtained from the first row of a comma delimited text file
|
||||||
|
* using the rowToJSONArray method.
|
||||||
|
* @param x A JSONTokener of the source text.
|
||||||
*
|
*
|
||||||
* @param names
|
|
||||||
* A JSONArray of names. This is commonly obtained from the
|
|
||||||
* first row of a comma delimited text file using the
|
|
||||||
* rowToJSONArray
|
|
||||||
* method.
|
|
||||||
* @param x
|
|
||||||
* A JSONTokener of the source text.
|
|
||||||
* @return A JSONObject combining the names and values.
|
* @return A JSONObject combining the names and values.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONObject rowToJSONObject(final JSONArray names, final JSONTokener x) throws JSONException {
|
public static JSONObject rowToJSONObject(final JSONArray names, final JSONTokener x) throws JSONException {
|
||||||
@ -119,12 +113,11 @@ public class CDL {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produce a comma delimited text row from a JSONArray. Values containing
|
* Produce a comma delimited text row from a JSONArray. Values containing the comma character will be quoted.
|
||||||
* the comma character will be quoted. Troublesome characters may be
|
* Troublesome characters may be removed.
|
||||||
* removed.
|
*
|
||||||
|
* @param ja A JSONArray of strings.
|
||||||
*
|
*
|
||||||
* @param ja
|
|
||||||
* A JSONArray of strings.
|
|
||||||
* @return A string ending in NEWLINE.
|
* @return A string ending in NEWLINE.
|
||||||
*/
|
*/
|
||||||
public static String rowToString(final JSONArray ja) {
|
public static String rowToString(final JSONArray ja) {
|
||||||
@ -146,8 +139,7 @@ public class CDL {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
sb.append('"');
|
sb.append('"');
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sb.append(string);
|
sb.append(string);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -157,12 +149,12 @@ public class CDL {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produce a JSONArray of JSONObjects from a comma delimited text string,
|
* Produce a JSONArray of JSONObjects from a comma delimited text string, using the first row as a source of names.
|
||||||
* using the first row as a source of names.
|
*
|
||||||
|
* @param string The comma delimited text.
|
||||||
*
|
*
|
||||||
* @param string
|
|
||||||
* The comma delimited text.
|
|
||||||
* @return A JSONArray of JSONObjects.
|
* @return A JSONArray of JSONObjects.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONArray toJSONArray(final String string) throws JSONException {
|
public static JSONArray toJSONArray(final String string) throws JSONException {
|
||||||
@ -170,12 +162,12 @@ public class CDL {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produce a JSONArray of JSONObjects from a comma delimited text string,
|
* Produce a JSONArray of JSONObjects from a comma delimited text string, using the first row as a source of names.
|
||||||
* using the first row as a source of names.
|
*
|
||||||
|
* @param x The JSONTokener containing the comma delimited text.
|
||||||
*
|
*
|
||||||
* @param x
|
|
||||||
* The JSONTokener containing the comma delimited text.
|
|
||||||
* @return A JSONArray of JSONObjects.
|
* @return A JSONArray of JSONObjects.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONArray toJSONArray(final JSONTokener x) throws JSONException {
|
public static JSONArray toJSONArray(final JSONTokener x) throws JSONException {
|
||||||
@ -183,14 +175,14 @@ public class CDL {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produce a JSONArray of JSONObjects from a comma delimited text string
|
* Produce a JSONArray of JSONObjects from a comma delimited text string using a supplied JSONArray as the source of
|
||||||
* using a supplied JSONArray as the source of element names.
|
* element names.
|
||||||
|
*
|
||||||
|
* @param names A JSONArray of strings.
|
||||||
|
* @param string The comma delimited text.
|
||||||
*
|
*
|
||||||
* @param names
|
|
||||||
* A JSONArray of strings.
|
|
||||||
* @param string
|
|
||||||
* The comma delimited text.
|
|
||||||
* @return A JSONArray of JSONObjects.
|
* @return A JSONArray of JSONObjects.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONArray toJSONArray(final JSONArray names, final String string) throws JSONException {
|
public static JSONArray toJSONArray(final JSONArray names, final String string) throws JSONException {
|
||||||
@ -198,14 +190,14 @@ public class CDL {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produce a JSONArray of JSONObjects from a comma delimited text string
|
* Produce a JSONArray of JSONObjects from a comma delimited text string using a supplied JSONArray as the source of
|
||||||
* using a supplied JSONArray as the source of element names.
|
* element names.
|
||||||
|
*
|
||||||
|
* @param names A JSONArray of strings.
|
||||||
|
* @param x A JSONTokener of the source text.
|
||||||
*
|
*
|
||||||
* @param names
|
|
||||||
* A JSONArray of strings.
|
|
||||||
* @param x
|
|
||||||
* A JSONTokener of the source text.
|
|
||||||
* @return A JSONArray of JSONObjects.
|
* @return A JSONArray of JSONObjects.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONArray toJSONArray(final JSONArray names, final JSONTokener x) throws JSONException {
|
public static JSONArray toJSONArray(final JSONArray names, final JSONTokener x) throws JSONException {
|
||||||
@ -227,13 +219,13 @@ public class CDL {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produce a comma delimited text from a JSONArray of JSONObjects. The
|
* Produce a comma delimited text from a JSONArray of JSONObjects. The first row will be a list of names obtained by
|
||||||
* first row will be a list of names obtained by inspecting the first
|
* inspecting the first JSONObject.
|
||||||
* JSONObject.
|
*
|
||||||
|
* @param ja A JSONArray of JSONObjects.
|
||||||
*
|
*
|
||||||
* @param ja
|
|
||||||
* A JSONArray of JSONObjects.
|
|
||||||
* @return A comma delimited text.
|
* @return A comma delimited text.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static String toString(final JSONArray ja) throws JSONException {
|
public static String toString(final JSONArray ja) throws JSONException {
|
||||||
@ -248,15 +240,14 @@ public class CDL {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produce a comma delimited text from a JSONArray of JSONObjects using
|
* Produce a comma delimited text from a JSONArray of JSONObjects using a provided list of names. The list of names
|
||||||
* a provided list of names. The list of names is not included in the
|
* is not included in the output.
|
||||||
* output.
|
*
|
||||||
|
* @param names A JSONArray of strings.
|
||||||
|
* @param ja A JSONArray of JSONObjects.
|
||||||
*
|
*
|
||||||
* @param names
|
|
||||||
* A JSONArray of strings.
|
|
||||||
* @param ja
|
|
||||||
* A JSONArray of JSONObjects.
|
|
||||||
* @return A comma delimited text.
|
* @return A comma delimited text.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static String toString(final JSONArray names, final JSONArray ja) throws JSONException {
|
public static String toString(final JSONArray names, final JSONArray ja) throws JSONException {
|
||||||
|
@ -22,8 +22,8 @@
|
|||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a web browser cookie specification to a JSONObject and back.
|
* Convert a web browser cookie specification to a JSONObject and back. JSON and Cookies are both notations for
|
||||||
* JSON and Cookies are both notations for name/value pairs.
|
* name/value pairs.
|
||||||
*
|
*
|
||||||
* @author JSON.org
|
* @author JSON.org
|
||||||
* @version 2014-05-03
|
* @version 2014-05-03
|
||||||
@ -31,17 +31,14 @@ package com.intellectualcrafters.json;
|
|||||||
public class Cookie {
|
public class Cookie {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produce a copy of a string in which the characters '+', '%', '=', ';'
|
* Produce a copy of a string in which the characters '+', '%', '=', ';' and control characters are replaced with
|
||||||
* and control characters are replaced with "%hh". This is a gentle form
|
* "%hh". This is a gentle form of URL encoding, attempting to cause as little distortion to the string as possible.
|
||||||
* of URL encoding, attempting to cause as little distortion to the
|
* The characters '=' and ';' are meta characters in cookies. By convention, they are escaped using the
|
||||||
* string as possible. The characters '=' and ';' are meta characters in
|
* URL-encoding. This is only a convention, not a standard. Often, cookies are expected to have encoded values. We
|
||||||
* cookies. By convention, they are escaped using the URL-encoding. This is
|
* encode '=' and ';' because we must. We encode '%' and '+' because they are meta characters in URL encoding.
|
||||||
* only a convention, not a standard. Often, cookies are expected to have
|
*
|
||||||
* encoded values. We encode '=' and ';' because we must. We encode '%' and
|
* @param string The source string.
|
||||||
* '+' because they are meta characters in URL encoding.
|
|
||||||
*
|
*
|
||||||
* @param string
|
|
||||||
* The source string.
|
|
||||||
* @return The escaped result.
|
* @return The escaped result.
|
||||||
*/
|
*/
|
||||||
public static String escape(final String string) {
|
public static String escape(final String string) {
|
||||||
@ -55,8 +52,7 @@ public class Cookie {
|
|||||||
sb.append('%');
|
sb.append('%');
|
||||||
sb.append(Character.forDigit((char) ((c >>> 4) & 0x0f), 16));
|
sb.append(Character.forDigit((char) ((c >>> 4) & 0x0f), 16));
|
||||||
sb.append(Character.forDigit((char) (c & 0x0f), 16));
|
sb.append(Character.forDigit((char) (c & 0x0f), 16));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sb.append(c);
|
sb.append(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -64,20 +60,17 @@ public class Cookie {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a cookie specification string into a JSONObject. The string
|
* Convert a cookie specification string into a JSONObject. The string will contain a name value pair separated by
|
||||||
* will contain a name value pair separated by '='. The name and the value
|
* '='. The name and the value will be unescaped, possibly converting '+' and '%' sequences. The cookie properties
|
||||||
* will be unescaped, possibly converting '+' and '%' sequences. The
|
* may follow, separated by ';', also represented as name=value (except the secure property, which does not have a
|
||||||
* cookie properties may follow, separated by ';', also represented as
|
* value). The name will be stored under the key "name", and the value will be stored under the key "value". This
|
||||||
* name=value (except the secure property, which does not have a value).
|
* method does not do checking or validation of the parameters. It only converts the cookie string into a
|
||||||
* The name will be stored under the key "name", and the value will be
|
* JSONObject.
|
||||||
* stored under the key "value". This method does not do checking or
|
*
|
||||||
* validation of the parameters. It only converts the cookie string into
|
* @param string The cookie specification string.
|
||||||
* a JSONObject.
|
*
|
||||||
|
* @return A JSONObject containing "name", "value", and possibly other members.
|
||||||
*
|
*
|
||||||
* @param string
|
|
||||||
* The cookie specification string.
|
|
||||||
* @return A JSONObject containing "name", "value", and possibly other
|
|
||||||
* members.
|
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONObject toJSONObject(final String string) throws JSONException {
|
public static JSONObject toJSONObject(final String string) throws JSONException {
|
||||||
@ -94,12 +87,10 @@ public class Cookie {
|
|||||||
if (x.next() != '=') {
|
if (x.next() != '=') {
|
||||||
if (name.equals("secure")) {
|
if (name.equals("secure")) {
|
||||||
value = Boolean.TRUE;
|
value = Boolean.TRUE;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw x.syntaxError("Missing '=' in cookie parameter.");
|
throw x.syntaxError("Missing '=' in cookie parameter.");
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
value = unescape(x.nextTo(';'));
|
value = unescape(x.nextTo(';'));
|
||||||
x.next();
|
x.next();
|
||||||
}
|
}
|
||||||
@ -109,15 +100,14 @@ public class Cookie {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a JSONObject into a cookie specification string. The JSONObject
|
* Convert a JSONObject into a cookie specification string. The JSONObject must contain "name" and "value" members.
|
||||||
* must contain "name" and "value" members.
|
* If the JSONObject contains "expires", "domain", "path", or "secure" members, they will be appended to the cookie
|
||||||
* If the JSONObject contains "expires", "domain", "path", or "secure"
|
* specification string. All other members are ignored.
|
||||||
* members, they will be appended to the cookie specification string.
|
*
|
||||||
* All other members are ignored.
|
* @param jo A JSONObject
|
||||||
*
|
*
|
||||||
* @param jo
|
|
||||||
* A JSONObject
|
|
||||||
* @return A cookie specification string
|
* @return A cookie specification string
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static String toString(final JSONObject jo) throws JSONException {
|
public static String toString(final JSONObject jo) throws JSONException {
|
||||||
@ -145,13 +135,11 @@ public class Cookie {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert <code>%</code><i>hh</i> sequences to single characters, and
|
* Convert <code>%</code><i>hh</i> sequences to single characters, and convert plus to space.
|
||||||
* convert plus to space.
|
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string A string that may contain <code>+</code> <small>(plus)</small> and <code>%</code><i>hh</i>
|
||||||
* A string that may contain <code>+</code>
|
|
||||||
* <small>(plus)</small> and <code>%</code><i>hh</i>
|
|
||||||
* sequences.
|
* sequences.
|
||||||
|
*
|
||||||
* @return The unescaped string.
|
* @return The unescaped string.
|
||||||
*/
|
*/
|
||||||
public static String unescape(final String string) {
|
public static String unescape(final String string) {
|
||||||
@ -161,8 +149,7 @@ public class Cookie {
|
|||||||
char c = string.charAt(i);
|
char c = string.charAt(i);
|
||||||
if (c == '+') {
|
if (c == '+') {
|
||||||
c = ' ';
|
c = ' ';
|
||||||
}
|
} else if ((c == '%') && ((i + 2) < length)) {
|
||||||
else if ((c == '%') && ((i + 2) < length)) {
|
|
||||||
final int d = JSONTokener.dehexchar(string.charAt(i + 1));
|
final int d = JSONTokener.dehexchar(string.charAt(i + 1));
|
||||||
final int e = JSONTokener.dehexchar(string.charAt(i + 2));
|
final int e = JSONTokener.dehexchar(string.charAt(i + 2));
|
||||||
if ((d >= 0) && (e >= 0)) {
|
if ((d >= 0) && (e >= 0)) {
|
||||||
|
@ -11,18 +11,17 @@ import java.util.Iterator;
|
|||||||
public class CookieList {
|
public class CookieList {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a cookie list into a JSONObject. A cookie list is a sequence
|
* Convert a cookie list into a JSONObject. A cookie list is a sequence of name/value pairs. The names are separated
|
||||||
* of name/value pairs. The names are separated from the values by '='.
|
* from the values by '='. The pairs are separated by ';'. The names and the values will be unescaped, possibly
|
||||||
* The pairs are separated by ';'. The names and the values
|
* converting '+' and '%' sequences.
|
||||||
* will be unescaped, possibly converting '+' and '%' sequences.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* To add a cookie to a cooklist,
|
* To add a cookie to a cooklist, cookielistJSONObject.put(cookieJSONObject.getString("name"),
|
||||||
* cookielistJSONObject.put(cookieJSONObject.getString("name"),
|
|
||||||
* cookieJSONObject.getString("value"));
|
* cookieJSONObject.getString("value"));
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string A cookie list string
|
||||||
* A cookie list string
|
*
|
||||||
* @return A JSONObject
|
* @return A JSONObject
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONObject toJSONObject(final String string) throws JSONException {
|
public static JSONObject toJSONObject(final String string) throws JSONException {
|
||||||
@ -38,14 +37,14 @@ public class CookieList {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a JSONObject into a cookie list. A cookie list is a sequence
|
* Convert a JSONObject into a cookie list. A cookie list is a sequence of name/value pairs. The names are separated
|
||||||
* of name/value pairs. The names are separated from the values by '='.
|
* from the values by '='. The pairs are separated by ';'. The characters '%', '+', '=', and ';' in the names and
|
||||||
* The pairs are separated by ';'. The characters '%', '+', '=', and ';'
|
* values are replaced by "%hh".
|
||||||
* in the names and values are replaced by "%hh".
|
*
|
||||||
|
* @param jo A JSONObject
|
||||||
*
|
*
|
||||||
* @param jo
|
|
||||||
* A JSONObject
|
|
||||||
* @return A cookie list string
|
* @return A cookie list string
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static String toString(final JSONObject jo) throws JSONException {
|
public static String toString(final JSONObject jo) throws JSONException {
|
||||||
|
@ -37,10 +37,10 @@ public class HTTP {
|
|||||||
public static final String CRLF = "\r\n";
|
public static final String CRLF = "\r\n";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert an HTTP header string into a JSONObject. It can be a request
|
* Convert an HTTP header string into a JSONObject. It can be a request header or a response header. A request
|
||||||
* header or a response header. A request header will contain
|
* header will contain
|
||||||
|
* <p/>
|
||||||
* <p/>
|
* <p/>
|
||||||
*
|
|
||||||
* <pre>
|
* <pre>
|
||||||
* {
|
* {
|
||||||
* Method: "POST" (for example),
|
* Method: "POST" (for example),
|
||||||
@ -51,7 +51,7 @@ public class HTTP {
|
|||||||
* <p/>
|
* <p/>
|
||||||
* A response header will contain
|
* A response header will contain
|
||||||
* <p/>
|
* <p/>
|
||||||
*
|
* <p/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* {
|
* {
|
||||||
* "HTTP-Version": "HTTP/1.1" (for example),
|
* "HTTP-Version": "HTTP/1.1" (for example),
|
||||||
@ -60,10 +60,10 @@ public class HTTP {
|
|||||||
* }
|
* }
|
||||||
* </pre>
|
* </pre>
|
||||||
* <p/>
|
* <p/>
|
||||||
* In addition, the other parameters in the header will be captured, using
|
* In addition, the other parameters in the header will be captured, using the HTTP field names as JSON names, so
|
||||||
* the HTTP field names as JSON names, so that
|
* that
|
||||||
|
* <p/>
|
||||||
* <p/>
|
* <p/>
|
||||||
*
|
|
||||||
* <pre>
|
* <pre>
|
||||||
* Date: Sun, 26 May 2002 18:06:04 GMT
|
* Date: Sun, 26 May 2002 18:06:04 GMT
|
||||||
* Cookie: Q=q2=PPEAsg--; B=677gi6ouf29bn&b=2&f=s
|
* Cookie: Q=q2=PPEAsg--; B=677gi6ouf29bn&b=2&f=s
|
||||||
@ -72,7 +72,7 @@ public class HTTP {
|
|||||||
* <p/>
|
* <p/>
|
||||||
* become
|
* become
|
||||||
* <p/>
|
* <p/>
|
||||||
*
|
* <p/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* {...
|
* {...
|
||||||
* Date: "Sun, 26 May 2002 18:06:04 GMT",
|
* Date: "Sun, 26 May 2002 18:06:04 GMT",
|
||||||
@ -81,13 +81,12 @@ public class HTTP {
|
|||||||
* ...}
|
* ...}
|
||||||
* </pre>
|
* </pre>
|
||||||
* <p/>
|
* <p/>
|
||||||
* It does no further checking or conversion. It does not parse dates. It
|
* It does no further checking or conversion. It does not parse dates. It does not do '%' transforms on URLs.
|
||||||
* does not do '%' transforms on URLs.
|
*
|
||||||
|
* @param string An HTTP header string.
|
||||||
|
*
|
||||||
|
* @return A JSONObject containing the elements and attributes of the XML string.
|
||||||
*
|
*
|
||||||
* @param string
|
|
||||||
* An HTTP header string.
|
|
||||||
* @return A JSONObject containing the elements and attributes
|
|
||||||
* of the XML string.
|
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONObject toJSONObject(final String string) throws JSONException {
|
public static JSONObject toJSONObject(final String string) throws JSONException {
|
||||||
@ -105,8 +104,7 @@ public class HTTP {
|
|||||||
jo.put("Reason-Phrase", x.nextTo('\0'));
|
jo.put("Reason-Phrase", x.nextTo('\0'));
|
||||||
x.next();
|
x.next();
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
|
|
||||||
// Request
|
// Request
|
||||||
|
|
||||||
@ -129,7 +127,7 @@ public class HTTP {
|
|||||||
/**
|
/**
|
||||||
* Convert a JSONObject into an HTTP header. A request header must contain
|
* Convert a JSONObject into an HTTP header. A request header must contain
|
||||||
* <p/>
|
* <p/>
|
||||||
*
|
* <p/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* {
|
* {
|
||||||
* Method: "POST" (for example),
|
* Method: "POST" (for example),
|
||||||
@ -140,7 +138,7 @@ public class HTTP {
|
|||||||
* <p/>
|
* <p/>
|
||||||
* A response header must contain
|
* A response header must contain
|
||||||
* <p/>
|
* <p/>
|
||||||
*
|
* <p/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* {
|
* {
|
||||||
* "HTTP-Version": "HTTP/1.1" (for example),
|
* "HTTP-Version": "HTTP/1.1" (for example),
|
||||||
@ -149,15 +147,13 @@ public class HTTP {
|
|||||||
* }
|
* }
|
||||||
* </pre>
|
* </pre>
|
||||||
* <p/>
|
* <p/>
|
||||||
* Any other members of the JSONObject will be output as HTTP fields. The
|
* Any other members of the JSONObject will be output as HTTP fields. The result will end with two CRLF pairs.
|
||||||
* result will end with two CRLF pairs.
|
*
|
||||||
|
* @param jo A JSONObject
|
||||||
*
|
*
|
||||||
* @param jo
|
|
||||||
* A JSONObject
|
|
||||||
* @return An HTTP header string.
|
* @return An HTTP header string.
|
||||||
* @throws JSONException
|
*
|
||||||
* if the object does not contain enough
|
* @throws JSONException if the object does not contain enough information.
|
||||||
* information.
|
|
||||||
*/
|
*/
|
||||||
public static String toString(final JSONObject jo) throws JSONException {
|
public static String toString(final JSONObject jo) throws JSONException {
|
||||||
final Iterator<String> keys = jo.keys();
|
final Iterator<String> keys = jo.keys();
|
||||||
@ -169,8 +165,7 @@ public class HTTP {
|
|||||||
sb.append(jo.getString("Status-Code"));
|
sb.append(jo.getString("Status-Code"));
|
||||||
sb.append(' ');
|
sb.append(' ');
|
||||||
sb.append(jo.getString("Reason-Phrase"));
|
sb.append(jo.getString("Reason-Phrase"));
|
||||||
}
|
} else if (jo.has("Method") && jo.has("Request-URI")) {
|
||||||
else if (jo.has("Method") && jo.has("Request-URI")) {
|
|
||||||
sb.append(jo.getString("Method"));
|
sb.append(jo.getString("Method"));
|
||||||
sb.append(' ');
|
sb.append(' ');
|
||||||
sb.append('"');
|
sb.append('"');
|
||||||
@ -178,8 +173,7 @@ public class HTTP {
|
|||||||
sb.append('"');
|
sb.append('"');
|
||||||
sb.append(' ');
|
sb.append(' ');
|
||||||
sb.append(jo.getString("HTTP-Version"));
|
sb.append(jo.getString("HTTP-Version"));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw new JSONException("Not enough material for an HTTP header.");
|
throw new JSONException("Not enough material for an HTTP header.");
|
||||||
}
|
}
|
||||||
sb.append(CRLF);
|
sb.append(CRLF);
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The HTTPTokener extends the JSONTokener to provide additional methods
|
* The HTTPTokener extends the JSONTokener to provide additional methods for the parsing of HTTP headers.
|
||||||
* for the parsing of HTTP headers.
|
|
||||||
*
|
*
|
||||||
* @author JSON.org
|
* @author JSON.org
|
||||||
* @version 2014-05-03
|
* @version 2014-05-03
|
||||||
@ -12,8 +11,7 @@ public class HTTPTokener extends JSONTokener {
|
|||||||
/**
|
/**
|
||||||
* Construct an HTTPTokener from a string.
|
* Construct an HTTPTokener from a string.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string A source string.
|
||||||
* A source string.
|
|
||||||
*/
|
*/
|
||||||
public HTTPTokener(final String string) {
|
public HTTPTokener(final String string) {
|
||||||
super(string);
|
super(string);
|
||||||
@ -23,6 +21,7 @@ public class HTTPTokener extends JSONTokener {
|
|||||||
* Get the next token or string. This is used in parsing HTTP headers.
|
* Get the next token or string. This is used in parsing HTTP headers.
|
||||||
*
|
*
|
||||||
* @return A String.
|
* @return A String.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public String nextToken() throws JSONException {
|
public String nextToken() throws JSONException {
|
||||||
@ -31,8 +30,7 @@ public class HTTPTokener extends JSONTokener {
|
|||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
do {
|
do {
|
||||||
c = next();
|
c = next();
|
||||||
}
|
} while (Character.isWhitespace(c));
|
||||||
while (Character.isWhitespace(c));
|
|
||||||
if ((c == '"') || (c == '\'')) {
|
if ((c == '"') || (c == '\'')) {
|
||||||
q = c;
|
q = c;
|
||||||
for (; ; ) {
|
for (; ; ) {
|
||||||
|
@ -30,45 +30,29 @@ import java.util.Collection;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A JSONArray is an ordered sequence of values. Its external text form is a
|
* A JSONArray is an ordered sequence of values. Its external text form is a string wrapped in square brackets with
|
||||||
* string wrapped in square brackets with commas separating the values. The
|
* commas separating the values. The internal form is an object having <code>get</code> and <code>opt</code> methods for
|
||||||
* internal form is an object having <code>get</code> and <code>opt</code>
|
* accessing the values by index, and <code>put</code> methods for adding or replacing values. The values can be any of
|
||||||
* methods for accessing the values by index, and <code>put</code> methods for
|
* these types: <code>Boolean</code>, <code>JSONArray</code>, <code>JSONObject</code>, <code>Number</code>,
|
||||||
* adding or replacing values. The values can be any of these types:
|
* <code>String</code>, or the <code>JSONObject.NULL object</code>.
|
||||||
* <code>Boolean</code>, <code>JSONArray</code>, <code>JSONObject</code>,
|
|
||||||
* <code>Number</code>, <code>String</code>, or the
|
|
||||||
* <code>JSONObject.NULL object</code>.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* The constructor can convert a JSON text into a Java object. The
|
* The constructor can convert a JSON text into a Java object. The <code>toString</code> method converts to JSON text.
|
||||||
* <code>toString</code> method converts to JSON text.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* A <code>get</code> method returns a value if one can be found, and throws an
|
* A <code>get</code> method returns a value if one can be found, and throws an exception if one cannot be found. An
|
||||||
* exception if one cannot be found. An <code>opt</code> method returns a
|
* <code>opt</code> method returns a default value instead of throwing an exception, and so is useful for obtaining
|
||||||
* default value instead of throwing an exception, and so is useful for
|
* optional values.
|
||||||
* obtaining optional values.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* The generic <code>get()</code> and <code>opt()</code> methods return an
|
* The generic <code>get()</code> and <code>opt()</code> methods return an object which you can cast or query for type.
|
||||||
* object which you can cast or query for type. There are also typed
|
* There are also typed <code>get</code> and <code>opt</code> methods that do type checking and type coercion for you.
|
||||||
* <code>get</code> and <code>opt</code> methods that do type checking and type
|
|
||||||
* coercion for you.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* The texts produced by the <code>toString</code> methods strictly conform to
|
* The texts produced by the <code>toString</code> methods strictly conform to JSON syntax rules. The constructors are
|
||||||
* JSON syntax rules. The constructors are more forgiving in the texts they will
|
* more forgiving in the texts they will accept: <ul> <li>An extra <code>,</code> <small>(comma)</small> may appear
|
||||||
* accept:
|
* just before the closing bracket.</li> <li>The <code>null</code> value will be inserted when there is <code>,</code>
|
||||||
* <ul>
|
* <small>(comma)</small> elision.</li> <li>Strings may be quoted with <code>'</code> <small>(single
|
||||||
* <li>An extra <code>,</code> <small>(comma)</small> may appear just
|
* quote)</small>.</li> <li>Strings do not need to be quoted at all if they do not begin with a quote or single quote,
|
||||||
* before the closing bracket.</li>
|
* and if they do not contain leading or trailing spaces, and if they do not contain any of these characters: <code>{ }
|
||||||
* <li>The <code>null</code> value will be inserted when there is <code>,</code>
|
* [ ] / \ : , #</code> and if they do not look like numbers and if they are not the reserved words <code>true</code>,
|
||||||
* <small>(comma)</small> elision.</li>
|
* <code>false</code>, or <code>null</code>.</li> </ul>
|
||||||
* <li>Strings may be quoted with <code>'</code> <small>(single
|
|
||||||
* quote)</small>.</li>
|
|
||||||
* <li>Strings do not need to be quoted at all if they do not begin with a quote
|
|
||||||
* or single quote, and if they do not contain leading or trailing spaces, and
|
|
||||||
* if they do not contain any of these characters:
|
|
||||||
* <code>{ } [ ] / \ : , #</code> and if they do not look like numbers and if
|
|
||||||
* they are not the reserved words <code>true</code>, <code>false</code>, or
|
|
||||||
* <code>null</code>.</li>
|
|
||||||
* </ul>
|
|
||||||
*
|
*
|
||||||
* @author JSON.org
|
* @author JSON.org
|
||||||
* @version 2014-05-03
|
* @version 2014-05-03
|
||||||
@ -90,10 +74,9 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Construct a JSONArray from a JSONTokener.
|
* Construct a JSONArray from a JSONTokener.
|
||||||
*
|
*
|
||||||
* @param x
|
* @param x A JSONTokener
|
||||||
* A JSONTokener
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException If there is a syntax error.
|
||||||
* If there is a syntax error.
|
|
||||||
*/
|
*/
|
||||||
public JSONArray(final JSONTokener x) throws JSONException {
|
public JSONArray(final JSONTokener x) throws JSONException {
|
||||||
this();
|
this();
|
||||||
@ -106,8 +89,7 @@ public class JSONArray {
|
|||||||
if (x.nextClean() == ',') {
|
if (x.nextClean() == ',') {
|
||||||
x.back();
|
x.back();
|
||||||
this.myArrayList.add(JSONObject.NULL);
|
this.myArrayList.add(JSONObject.NULL);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
x.back();
|
x.back();
|
||||||
this.myArrayList.add(x.nextValue());
|
this.myArrayList.add(x.nextValue());
|
||||||
}
|
}
|
||||||
@ -130,12 +112,10 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Construct a JSONArray from a source JSON text.
|
* Construct a JSONArray from a source JSON text.
|
||||||
*
|
*
|
||||||
* @param source
|
* @param source A string that begins with <code>[</code> <small>(left bracket)</small> and ends with
|
||||||
* A string that begins with <code>[</code> <small>(left
|
* <code>]</code> <small>(right bracket)</small>.
|
||||||
* bracket)</small> and ends with <code>]</code>
|
*
|
||||||
* <small>(right bracket)</small>.
|
* @throws JSONException If there is a syntax error.
|
||||||
* @throws JSONException
|
|
||||||
* If there is a syntax error.
|
|
||||||
*/
|
*/
|
||||||
public JSONArray(final String source) throws JSONException {
|
public JSONArray(final String source) throws JSONException {
|
||||||
this(new JSONTokener(source));
|
this(new JSONTokener(source));
|
||||||
@ -144,8 +124,7 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Construct a JSONArray from a Collection.
|
* Construct a JSONArray from a Collection.
|
||||||
*
|
*
|
||||||
* @param collection
|
* @param collection A Collection.
|
||||||
* A Collection.
|
|
||||||
*/
|
*/
|
||||||
public JSONArray(final Collection<Object> collection) {
|
public JSONArray(final Collection<Object> collection) {
|
||||||
this.myArrayList = new ArrayList<Object>();
|
this.myArrayList = new ArrayList<Object>();
|
||||||
@ -159,8 +138,7 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Construct a JSONArray from an array
|
* Construct a JSONArray from an array
|
||||||
*
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException If not an array.
|
||||||
* If not an array.
|
|
||||||
*/
|
*/
|
||||||
public JSONArray(final Object array) throws JSONException {
|
public JSONArray(final Object array) throws JSONException {
|
||||||
this();
|
this();
|
||||||
@ -169,8 +147,7 @@ public class JSONArray {
|
|||||||
for (int i = 0; i < length; i += 1) {
|
for (int i = 0; i < length; i += 1) {
|
||||||
this.put(JSONObject.wrap(Array.get(array, i)));
|
this.put(JSONObject.wrap(Array.get(array, i)));
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw new JSONException("JSONArray initial value should be a string or collection or array.");
|
throw new JSONException("JSONArray initial value should be a string or collection or array.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -178,11 +155,11 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Get the object value associated with an index.
|
* Get the object value associated with an index.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
*
|
||||||
* @return An object value.
|
* @return An object value.
|
||||||
* @throws JSONException
|
*
|
||||||
* If there is no value for the index.
|
* @throws JSONException If there is no value for the index.
|
||||||
*/
|
*/
|
||||||
public Object get(final int index) throws JSONException {
|
public Object get(final int index) throws JSONException {
|
||||||
final Object object = this.opt(index);
|
final Object object = this.opt(index);
|
||||||
@ -193,22 +170,19 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the boolean value associated with an index. The string values "true"
|
* Get the boolean value associated with an index. The string values "true" and "false" are converted to boolean.
|
||||||
* and "false" are converted to boolean.
|
*
|
||||||
|
* @param index The index must be between 0 and length() - 1.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @return The truth.
|
* @return The truth.
|
||||||
* @throws JSONException
|
*
|
||||||
* If there is no value for the index or if the value is not
|
* @throws JSONException If there is no value for the index or if the value is not convertible to boolean.
|
||||||
* convertible to boolean.
|
|
||||||
*/
|
*/
|
||||||
public boolean getBoolean(final int index) throws JSONException {
|
public boolean getBoolean(final int index) throws JSONException {
|
||||||
final Object object = this.get(index);
|
final Object object = this.get(index);
|
||||||
if (object.equals(Boolean.FALSE) || ((object instanceof String) && ((String) object).equalsIgnoreCase("false"))) {
|
if (object.equals(Boolean.FALSE) || ((object instanceof String) && ((String) object).equalsIgnoreCase("false"))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
} else if (object.equals(Boolean.TRUE) || ((object instanceof String) && ((String) object).equalsIgnoreCase("true"))) {
|
||||||
else if (object.equals(Boolean.TRUE) || ((object instanceof String) && ((String) object).equalsIgnoreCase("true"))) {
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
throw new JSONException("JSONArray[" + index + "] is not a boolean.");
|
throw new JSONException("JSONArray[" + index + "] is not a boolean.");
|
||||||
@ -217,19 +191,17 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Get the double value associated with an index.
|
* Get the double value associated with an index.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
*
|
||||||
* @return The value.
|
* @return The value.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the key is not found or if the value cannot be converted
|
* @throws JSONException If the key is not found or if the value cannot be converted to a number.
|
||||||
* to a number.
|
|
||||||
*/
|
*/
|
||||||
public double getDouble(final int index) throws JSONException {
|
public double getDouble(final int index) throws JSONException {
|
||||||
final Object object = this.get(index);
|
final Object object = this.get(index);
|
||||||
try {
|
try {
|
||||||
return object instanceof Number ? ((Number) object).doubleValue() : Double.parseDouble((String) object);
|
return object instanceof Number ? ((Number) object).doubleValue() : Double.parseDouble((String) object);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
throw new JSONException("JSONArray[" + index + "] is not a number.");
|
throw new JSONException("JSONArray[" + index + "] is not a number.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -237,18 +209,17 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Get the int value associated with an index.
|
* Get the int value associated with an index.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
*
|
||||||
* @return The value.
|
* @return The value.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the key is not found or if the value is not a number.
|
* @throws JSONException If the key is not found or if the value is not a number.
|
||||||
*/
|
*/
|
||||||
public int getInt(final int index) throws JSONException {
|
public int getInt(final int index) throws JSONException {
|
||||||
final Object object = this.get(index);
|
final Object object = this.get(index);
|
||||||
try {
|
try {
|
||||||
return object instanceof Number ? ((Number) object).intValue() : Integer.parseInt((String) object);
|
return object instanceof Number ? ((Number) object).intValue() : Integer.parseInt((String) object);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
throw new JSONException("JSONArray[" + index + "] is not a number.");
|
throw new JSONException("JSONArray[" + index + "] is not a number.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -256,12 +227,11 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Get the JSONArray associated with an index.
|
* Get the JSONArray associated with an index.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
*
|
||||||
* @return A JSONArray value.
|
* @return A JSONArray value.
|
||||||
* @throws JSONException
|
*
|
||||||
* If there is no value for the index. or if the value is not a
|
* @throws JSONException If there is no value for the index. or if the value is not a JSONArray
|
||||||
* JSONArray
|
|
||||||
*/
|
*/
|
||||||
public JSONArray getJSONArray(final int index) throws JSONException {
|
public JSONArray getJSONArray(final int index) throws JSONException {
|
||||||
final Object object = this.get(index);
|
final Object object = this.get(index);
|
||||||
@ -274,12 +244,11 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Get the JSONObject associated with an index.
|
* Get the JSONObject associated with an index.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index subscript
|
||||||
* subscript
|
*
|
||||||
* @return A JSONObject value.
|
* @return A JSONObject value.
|
||||||
* @throws JSONException
|
*
|
||||||
* If there is no value for the index or if the value is not a
|
* @throws JSONException If there is no value for the index or if the value is not a JSONObject
|
||||||
* JSONObject
|
|
||||||
*/
|
*/
|
||||||
public JSONObject getJSONObject(final int index) throws JSONException {
|
public JSONObject getJSONObject(final int index) throws JSONException {
|
||||||
final Object object = this.get(index);
|
final Object object = this.get(index);
|
||||||
@ -292,19 +261,17 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Get the long value associated with an index.
|
* Get the long value associated with an index.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
*
|
||||||
* @return The value.
|
* @return The value.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the key is not found or if the value cannot be converted
|
* @throws JSONException If the key is not found or if the value cannot be converted to a number.
|
||||||
* to a number.
|
|
||||||
*/
|
*/
|
||||||
public long getLong(final int index) throws JSONException {
|
public long getLong(final int index) throws JSONException {
|
||||||
final Object object = this.get(index);
|
final Object object = this.get(index);
|
||||||
try {
|
try {
|
||||||
return object instanceof Number ? ((Number) object).longValue() : Long.parseLong((String) object);
|
return object instanceof Number ? ((Number) object).longValue() : Long.parseLong((String) object);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
throw new JSONException("JSONArray[" + index + "] is not a number.");
|
throw new JSONException("JSONArray[" + index + "] is not a number.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -312,11 +279,11 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Get the string associated with an index.
|
* Get the string associated with an index.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
*
|
||||||
* @return A string value.
|
* @return A string value.
|
||||||
* @throws JSONException
|
*
|
||||||
* If there is no string value for the index.
|
* @throws JSONException If there is no string value for the index.
|
||||||
*/
|
*/
|
||||||
public String getString(final int index) throws JSONException {
|
public String getString(final int index) throws JSONException {
|
||||||
final Object object = this.get(index);
|
final Object object = this.get(index);
|
||||||
@ -329,8 +296,8 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Determine if the value is null.
|
* Determine if the value is null.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
*
|
||||||
* @return true if the value at the index is null, or if there is no value.
|
* @return true if the value at the index is null, or if there is no value.
|
||||||
*/
|
*/
|
||||||
public boolean isNull(final int index) {
|
public boolean isNull(final int index) {
|
||||||
@ -338,15 +305,14 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make a string from the contents of this JSONArray. The
|
* Make a string from the contents of this JSONArray. The <code>separator</code> string is inserted between each
|
||||||
* <code>separator</code> string is inserted between each element. Warning:
|
* element. Warning: This method assumes that the data structure is acyclical.
|
||||||
* This method assumes that the data structure is acyclical.
|
*
|
||||||
|
* @param separator A string that will be inserted between the elements.
|
||||||
*
|
*
|
||||||
* @param separator
|
|
||||||
* A string that will be inserted between the elements.
|
|
||||||
* @return a string.
|
* @return a string.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the array contains an invalid number.
|
* @throws JSONException If the array contains an invalid number.
|
||||||
*/
|
*/
|
||||||
public String join(final String separator) throws JSONException {
|
public String join(final String separator) throws JSONException {
|
||||||
final int len = this.length();
|
final int len = this.length();
|
||||||
@ -373,8 +339,8 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Get the optional object value associated with an index.
|
* Get the optional object value associated with an index.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
*
|
||||||
* @return An object value, or null if there is no object at that index.
|
* @return An object value, or null if there is no object at that index.
|
||||||
*/
|
*/
|
||||||
public Object opt(final int index) {
|
public Object opt(final int index) {
|
||||||
@ -382,12 +348,11 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the optional boolean value associated with an index. It returns false
|
* Get the optional boolean value associated with an index. It returns false if there is no value at that index, or
|
||||||
* if there is no value at that index, or if the value is not Boolean.TRUE
|
* if the value is not Boolean.TRUE or the String "true".
|
||||||
* or the String "true".
|
*
|
||||||
|
* @param index The index must be between 0 and length() - 1.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @return The truth.
|
* @return The truth.
|
||||||
*/
|
*/
|
||||||
public boolean optBoolean(final int index) {
|
public boolean optBoolean(final int index) {
|
||||||
@ -395,32 +360,28 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the optional boolean value associated with an index. It returns the
|
* Get the optional boolean value associated with an index. It returns the defaultValue if there is no value at that
|
||||||
* defaultValue if there is no value at that index or if it is not a Boolean
|
* index or if it is not a Boolean or the String "true" or "false" (case insensitive).
|
||||||
* or the String "true" or "false" (case insensitive).
|
*
|
||||||
|
* @param index The index must be between 0 and length() - 1.
|
||||||
|
* @param defaultValue A boolean default.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @param defaultValue
|
|
||||||
* A boolean default.
|
|
||||||
* @return The truth.
|
* @return The truth.
|
||||||
*/
|
*/
|
||||||
public boolean optBoolean(final int index, final boolean defaultValue) {
|
public boolean optBoolean(final int index, final boolean defaultValue) {
|
||||||
try {
|
try {
|
||||||
return this.getBoolean(index);
|
return this.getBoolean(index);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the optional double value associated with an index. NaN is returned
|
* Get the optional double value associated with an index. NaN is returned if there is no value for the index, or if
|
||||||
* if there is no value for the index, or if the value is not a number and
|
* the value is not a number and cannot be converted to a number.
|
||||||
* cannot be converted to a number.
|
*
|
||||||
|
* @param index The index must be between 0 and length() - 1.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @return The value.
|
* @return The value.
|
||||||
*/
|
*/
|
||||||
public double optDouble(final int index) {
|
public double optDouble(final int index) {
|
||||||
@ -428,32 +389,28 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the optional double value associated with an index. The defaultValue
|
* Get the optional double value associated with an index. The defaultValue is returned if there is no value for the
|
||||||
* is returned if there is no value for the index, or if the value is not a
|
* index, or if the value is not a number and cannot be converted to a number.
|
||||||
* number and cannot be converted to a number.
|
*
|
||||||
|
* @param index subscript
|
||||||
|
* @param defaultValue The default value.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* subscript
|
|
||||||
* @param defaultValue
|
|
||||||
* The default value.
|
|
||||||
* @return The value.
|
* @return The value.
|
||||||
*/
|
*/
|
||||||
public double optDouble(final int index, final double defaultValue) {
|
public double optDouble(final int index, final double defaultValue) {
|
||||||
try {
|
try {
|
||||||
return this.getDouble(index);
|
return this.getDouble(index);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the optional int value associated with an index. Zero is returned if
|
* Get the optional int value associated with an index. Zero is returned if there is no value for the index, or if
|
||||||
* there is no value for the index, or if the value is not a number and
|
* the value is not a number and cannot be converted to a number.
|
||||||
* cannot be converted to a number.
|
*
|
||||||
|
* @param index The index must be between 0 and length() - 1.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @return The value.
|
* @return The value.
|
||||||
*/
|
*/
|
||||||
public int optInt(final int index) {
|
public int optInt(final int index) {
|
||||||
@ -461,21 +418,18 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the optional int value associated with an index. The defaultValue is
|
* Get the optional int value associated with an index. The defaultValue is returned if there is no value for the
|
||||||
* returned if there is no value for the index, or if the value is not a
|
* index, or if the value is not a number and cannot be converted to a number.
|
||||||
* number and cannot be converted to a number.
|
*
|
||||||
|
* @param index The index must be between 0 and length() - 1.
|
||||||
|
* @param defaultValue The default value.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @param defaultValue
|
|
||||||
* The default value.
|
|
||||||
* @return The value.
|
* @return The value.
|
||||||
*/
|
*/
|
||||||
public int optInt(final int index, final int defaultValue) {
|
public int optInt(final int index, final int defaultValue) {
|
||||||
try {
|
try {
|
||||||
return this.getInt(index);
|
return this.getInt(index);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -483,10 +437,9 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Get the optional JSONArray associated with an index.
|
* Get the optional JSONArray associated with an index.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index subscript
|
||||||
* subscript
|
*
|
||||||
* @return A JSONArray value, or null if the index has no value, or if the
|
* @return A JSONArray value, or null if the index has no value, or if the value is not a JSONArray.
|
||||||
* value is not a JSONArray.
|
|
||||||
*/
|
*/
|
||||||
public JSONArray optJSONArray(final int index) {
|
public JSONArray optJSONArray(final int index) {
|
||||||
final Object o = this.opt(index);
|
final Object o = this.opt(index);
|
||||||
@ -494,12 +447,11 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the optional JSONObject associated with an index. Null is returned if
|
* Get the optional JSONObject associated with an index. Null is returned if the key is not found, or null if the
|
||||||
* the key is not found, or null if the index has no value, or if the value
|
* index has no value, or if the value is not a JSONObject.
|
||||||
* is not a JSONObject.
|
*
|
||||||
|
* @param index The index must be between 0 and length() - 1.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @return A JSONObject value.
|
* @return A JSONObject value.
|
||||||
*/
|
*/
|
||||||
public JSONObject optJSONObject(final int index) {
|
public JSONObject optJSONObject(final int index) {
|
||||||
@ -508,12 +460,11 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the optional long value associated with an index. Zero is returned if
|
* Get the optional long value associated with an index. Zero is returned if there is no value for the index, or if
|
||||||
* there is no value for the index, or if the value is not a number and
|
* the value is not a number and cannot be converted to a number.
|
||||||
* cannot be converted to a number.
|
*
|
||||||
|
* @param index The index must be between 0 and length() - 1.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @return The value.
|
* @return The value.
|
||||||
*/
|
*/
|
||||||
public long optLong(final int index) {
|
public long optLong(final int index) {
|
||||||
@ -521,32 +472,28 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the optional long value associated with an index. The defaultValue is
|
* Get the optional long value associated with an index. The defaultValue is returned if there is no value for the
|
||||||
* returned if there is no value for the index, or if the value is not a
|
* index, or if the value is not a number and cannot be converted to a number.
|
||||||
* number and cannot be converted to a number.
|
*
|
||||||
|
* @param index The index must be between 0 and length() - 1.
|
||||||
|
* @param defaultValue The default value.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @param defaultValue
|
|
||||||
* The default value.
|
|
||||||
* @return The value.
|
* @return The value.
|
||||||
*/
|
*/
|
||||||
public long optLong(final int index, final long defaultValue) {
|
public long optLong(final int index, final long defaultValue) {
|
||||||
try {
|
try {
|
||||||
return this.getLong(index);
|
return this.getLong(index);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return defaultValue;
|
return defaultValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the optional string value associated with an index. It returns an
|
* Get the optional string value associated with an index. It returns an empty string if there is no value at that
|
||||||
* empty string if there is no value at that index. If the value is not a
|
* index. If the value is not a string and is not null, then it is coverted to a string.
|
||||||
* string and is not null, then it is coverted to a string.
|
*
|
||||||
|
* @param index The index must be between 0 and length() - 1.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @return A String value.
|
* @return A String value.
|
||||||
*/
|
*/
|
||||||
public String optString(final int index) {
|
public String optString(final int index) {
|
||||||
@ -554,13 +501,11 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the optional string associated with an index. The defaultValue is
|
* Get the optional string associated with an index. The defaultValue is returned if the key is not found.
|
||||||
* returned if the key is not found.
|
*
|
||||||
|
* @param index The index must be between 0 and length() - 1.
|
||||||
|
* @param defaultValue The default value.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @param defaultValue
|
|
||||||
* The default value.
|
|
||||||
* @return A String value.
|
* @return A String value.
|
||||||
*/
|
*/
|
||||||
public String optString(final int index, final String defaultValue) {
|
public String optString(final int index, final String defaultValue) {
|
||||||
@ -571,8 +516,8 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Append a boolean value. This increases the array's length by one.
|
* Append a boolean value. This increases the array's length by one.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value A boolean value.
|
||||||
* A boolean value.
|
*
|
||||||
* @return this.
|
* @return this.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final boolean value) {
|
public JSONArray put(final boolean value) {
|
||||||
@ -581,11 +526,10 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put a value in the JSONArray, where the value will be a JSONArray which
|
* Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.
|
||||||
* is produced from a Collection.
|
*
|
||||||
|
* @param value A Collection value.
|
||||||
*
|
*
|
||||||
* @param value
|
|
||||||
* A Collection value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final Collection<Object> value) {
|
public JSONArray put(final Collection<Object> value) {
|
||||||
@ -596,11 +540,11 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Append a double value. This increases the array's length by one.
|
* Append a double value. This increases the array's length by one.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value A double value.
|
||||||
* A double value.
|
*
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
*
|
||||||
* if the value is not finite.
|
* @throws JSONException if the value is not finite.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final double value) throws JSONException {
|
public JSONArray put(final double value) throws JSONException {
|
||||||
final Double d = value;
|
final Double d = value;
|
||||||
@ -612,8 +556,8 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Append an int value. This increases the array's length by one.
|
* Append an int value. This increases the array's length by one.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value An int value.
|
||||||
* An int value.
|
*
|
||||||
* @return this.
|
* @return this.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final int value) {
|
public JSONArray put(final int value) {
|
||||||
@ -624,8 +568,8 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Append an long value. This increases the array's length by one.
|
* Append an long value. This increases the array's length by one.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value A long value.
|
||||||
* A long value.
|
*
|
||||||
* @return this.
|
* @return this.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final long value) {
|
public JSONArray put(final long value) {
|
||||||
@ -634,11 +578,10 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put a value in the JSONArray, where the value will be a JSONObject which
|
* Put a value in the JSONArray, where the value will be a JSONObject which is produced from a Map.
|
||||||
* is produced from a Map.
|
*
|
||||||
|
* @param value A Map value.
|
||||||
*
|
*
|
||||||
* @param value
|
|
||||||
* A Map value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final Map<String, Object> value) {
|
public JSONArray put(final Map<String, Object> value) {
|
||||||
@ -649,10 +592,9 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Append an object value. This increases the array's length by one.
|
* Append an object value. This increases the array's length by one.
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value An object value. The value should be a Boolean, Double, Integer, JSONArray, JSONObject, Long, or
|
||||||
* An object value. The value should be a Boolean, Double,
|
* String, or the JSONObject.NULL object.
|
||||||
* Integer, JSONArray, JSONObject, Long, or String, or the
|
*
|
||||||
* JSONObject.NULL object.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final Object value) {
|
public JSONArray put(final Object value) {
|
||||||
@ -661,17 +603,15 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put or replace a boolean value in the JSONArray. If the index is greater
|
* Put or replace a boolean value in the JSONArray. If the index is greater than the length of the JSONArray, then
|
||||||
* than the length of the JSONArray, then null elements will be added as
|
* null elements will be added as necessary to pad it out.
|
||||||
* necessary to pad it out.
|
*
|
||||||
|
* @param index The subscript.
|
||||||
|
* @param value A boolean value.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The subscript.
|
|
||||||
* @param value
|
|
||||||
* A boolean value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the index is negative.
|
* @throws JSONException If the index is negative.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final int index, final boolean value) throws JSONException {
|
public JSONArray put(final int index, final boolean value) throws JSONException {
|
||||||
this.put(index, value ? Boolean.TRUE : Boolean.FALSE);
|
this.put(index, value ? Boolean.TRUE : Boolean.FALSE);
|
||||||
@ -679,16 +619,14 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put a value in the JSONArray, where the value will be a JSONArray which
|
* Put a value in the JSONArray, where the value will be a JSONArray which is produced from a Collection.
|
||||||
* is produced from a Collection.
|
*
|
||||||
|
* @param index The subscript.
|
||||||
|
* @param value A Collection value.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The subscript.
|
|
||||||
* @param value
|
|
||||||
* A Collection value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the index is negative or if the value is not finite.
|
* @throws JSONException If the index is negative or if the value is not finite.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final int index, final Collection<Object> value) throws JSONException {
|
public JSONArray put(final int index, final Collection<Object> value) throws JSONException {
|
||||||
this.put(index, new JSONArray(value));
|
this.put(index, new JSONArray(value));
|
||||||
@ -696,17 +634,15 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put or replace a double value. If the index is greater than the length of
|
* Put or replace a double value. If the index is greater than the length of the JSONArray, then null elements will
|
||||||
* the JSONArray, then null elements will be added as necessary to pad it
|
* be added as necessary to pad it out.
|
||||||
* out.
|
*
|
||||||
|
* @param index The subscript.
|
||||||
|
* @param value A double value.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The subscript.
|
|
||||||
* @param value
|
|
||||||
* A double value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the index is negative or if the value is not finite.
|
* @throws JSONException If the index is negative or if the value is not finite.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final int index, final double value) throws JSONException {
|
public JSONArray put(final int index, final double value) throws JSONException {
|
||||||
this.put(index, new Double(value));
|
this.put(index, new Double(value));
|
||||||
@ -714,17 +650,15 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put or replace an int value. If the index is greater than the length of
|
* Put or replace an int value. If the index is greater than the length of the JSONArray, then null elements will be
|
||||||
* the JSONArray, then null elements will be added as necessary to pad it
|
* added as necessary to pad it out.
|
||||||
* out.
|
*
|
||||||
|
* @param index The subscript.
|
||||||
|
* @param value An int value.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The subscript.
|
|
||||||
* @param value
|
|
||||||
* An int value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the index is negative.
|
* @throws JSONException If the index is negative.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final int index, final int value) throws JSONException {
|
public JSONArray put(final int index, final int value) throws JSONException {
|
||||||
this.put(index, new Integer(value));
|
this.put(index, new Integer(value));
|
||||||
@ -732,17 +666,15 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put or replace a long value. If the index is greater than the length of
|
* Put or replace a long value. If the index is greater than the length of the JSONArray, then null elements will be
|
||||||
* the JSONArray, then null elements will be added as necessary to pad it
|
* added as necessary to pad it out.
|
||||||
* out.
|
*
|
||||||
|
* @param index The subscript.
|
||||||
|
* @param value A long value.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The subscript.
|
|
||||||
* @param value
|
|
||||||
* A long value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the index is negative.
|
* @throws JSONException If the index is negative.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final int index, final long value) throws JSONException {
|
public JSONArray put(final int index, final long value) throws JSONException {
|
||||||
this.put(index, new Long(value));
|
this.put(index, new Long(value));
|
||||||
@ -750,17 +682,14 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put a value in the JSONArray, where the value will be a JSONObject that
|
* Put a value in the JSONArray, where the value will be a JSONObject that is produced from a Map.
|
||||||
* is produced from a Map.
|
*
|
||||||
|
* @param index The subscript.
|
||||||
|
* @param value The Map value.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The subscript.
|
|
||||||
* @param value
|
|
||||||
* The Map value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the index is negative or if the the value is an invalid
|
* @throws JSONException If the index is negative or if the the value is an invalid number.
|
||||||
* number.
|
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final int index, final Map<String, Object> value) throws JSONException {
|
public JSONArray put(final int index, final Map<String, Object> value) throws JSONException {
|
||||||
this.put(index, new JSONObject(value));
|
this.put(index, new JSONObject(value));
|
||||||
@ -768,20 +697,16 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Put or replace an object value in the JSONArray. If the index is greater
|
* Put or replace an object value in the JSONArray. If the index is greater than the length of the JSONArray, then
|
||||||
* than the length of the JSONArray, then null elements will be added as
|
* null elements will be added as necessary to pad it out.
|
||||||
* necessary to pad it out.
|
*
|
||||||
|
* @param index The subscript.
|
||||||
|
* @param value The value to put into the array. The value should be a Boolean, Double, Integer, JSONArray,
|
||||||
|
* JSONObject, Long, or String, or the JSONObject.NULL object.
|
||||||
*
|
*
|
||||||
* @param index
|
|
||||||
* The subscript.
|
|
||||||
* @param value
|
|
||||||
* The value to put into the array. The value should be a
|
|
||||||
* Boolean, Double, Integer, JSONArray, JSONObject, Long, or
|
|
||||||
* String, or the JSONObject.NULL object.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the index is negative or if the the value is an invalid
|
* @throws JSONException If the index is negative or if the the value is an invalid number.
|
||||||
* number.
|
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final int index, final Object value) throws JSONException {
|
public JSONArray put(final int index, final Object value) throws JSONException {
|
||||||
JSONObject.testValidity(value);
|
JSONObject.testValidity(value);
|
||||||
@ -790,8 +715,7 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
if (index < this.length()) {
|
if (index < this.length()) {
|
||||||
this.myArrayList.set(index, value);
|
this.myArrayList.set(index, value);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
while (index != this.length()) {
|
while (index != this.length()) {
|
||||||
this.put(JSONObject.NULL);
|
this.put(JSONObject.NULL);
|
||||||
}
|
}
|
||||||
@ -803,21 +727,19 @@ public class JSONArray {
|
|||||||
/**
|
/**
|
||||||
* Remove an index and close the hole.
|
* Remove an index and close the hole.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The index of the element to be removed.
|
||||||
* The index of the element to be removed.
|
*
|
||||||
* @return The value that was associated with the index, or null if there
|
* @return The value that was associated with the index, or null if there was no value.
|
||||||
* was no value.
|
|
||||||
*/
|
*/
|
||||||
public Object remove(final int index) {
|
public Object remove(final int index) {
|
||||||
return (index >= 0) && (index < this.length()) ? this.myArrayList.remove(index) : null;
|
return (index >= 0) && (index < this.length()) ? this.myArrayList.remove(index) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if two JSONArrays are similar.
|
* Determine if two JSONArrays are similar. They must contain similar sequences.
|
||||||
* They must contain similar sequences.
|
*
|
||||||
|
* @param other The other JSONArray
|
||||||
*
|
*
|
||||||
* @param other
|
|
||||||
* The other JSONArray
|
|
||||||
* @return true if they are equal
|
* @return true if they are equal
|
||||||
*/
|
*/
|
||||||
public boolean similar(final Object other) {
|
public boolean similar(final Object other) {
|
||||||
@ -835,13 +757,11 @@ public class JSONArray {
|
|||||||
if (!((JSONObject) valueThis).similar(valueOther)) {
|
if (!((JSONObject) valueThis).similar(valueOther)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
} else if (valueThis instanceof JSONArray) {
|
||||||
else if (valueThis instanceof JSONArray) {
|
|
||||||
if (!((JSONArray) valueThis).similar(valueOther)) {
|
if (!((JSONArray) valueThis).similar(valueOther)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
} else if (!valueThis.equals(valueOther)) {
|
||||||
else if (!valueThis.equals(valueOther)) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -849,16 +769,13 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produce a JSONObject by combining a JSONArray of names with the values of
|
* Produce a JSONObject by combining a JSONArray of names with the values of this JSONArray.
|
||||||
* this JSONArray.
|
|
||||||
*
|
*
|
||||||
* @param names
|
* @param names A JSONArray containing a list of key strings. These will be paired with the values.
|
||||||
* A JSONArray containing a list of key strings. These will be
|
*
|
||||||
* paired with the values.
|
* @return A JSONObject, or null if there are no names or if this JSONArray has no values.
|
||||||
* @return A JSONObject, or null if there are no names or if this JSONArray
|
*
|
||||||
* has no values.
|
* @throws JSONException If any of the names are null.
|
||||||
* @throws JSONException
|
|
||||||
* If any of the names are null.
|
|
||||||
*/
|
*/
|
||||||
public JSONObject toJSONObject(final JSONArray names) throws JSONException {
|
public JSONObject toJSONObject(final JSONArray names) throws JSONException {
|
||||||
if ((names == null) || (names.length() == 0) || (this.length() == 0)) {
|
if ((names == null) || (names.length() == 0) || (this.length() == 0)) {
|
||||||
@ -872,36 +789,33 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make a JSON text of this JSONArray. For compactness, no unnecessary
|
* Make a JSON text of this JSONArray. For compactness, no unnecessary whitespace is added. If it is not possible to
|
||||||
* whitespace is added. If it is not possible to produce a syntactically
|
* produce a syntactically correct JSON text then null will be returned instead. This could occur if the array
|
||||||
* correct JSON text then null will be returned instead. This could occur if
|
* contains an invalid number.
|
||||||
* the array contains an invalid number.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* Warning: This method assumes that the data structure is acyclical.
|
* Warning: This method assumes that the data structure is acyclical.
|
||||||
*
|
*
|
||||||
* @return a printable, displayable, transmittable representation of the
|
* @return a printable, displayable, transmittable representation of the array.
|
||||||
* array.
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
try {
|
try {
|
||||||
return this.toString(0);
|
return this.toString(0);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make a prettyprinted JSON text of this JSONArray. Warning: This method
|
* Make a prettyprinted JSON text of this JSONArray. Warning: This method assumes that the data structure is
|
||||||
* assumes that the data structure is acyclical.
|
* acyclical.
|
||||||
|
*
|
||||||
|
* @param indentFactor The number of spaces to add to each level of indentation.
|
||||||
|
*
|
||||||
|
* @return a printable, displayable, transmittable representation of the object, beginning with
|
||||||
|
* <code>[</code> <small>(left bracket)</small> and ending with <code>]</code> <small>(right
|
||||||
|
* bracket)</small>.
|
||||||
*
|
*
|
||||||
* @param indentFactor
|
|
||||||
* The number of spaces to add to each level of indentation.
|
|
||||||
* @return a printable, displayable, transmittable representation of the
|
|
||||||
* object, beginning with <code>[</code> <small>(left
|
|
||||||
* bracket)</small> and ending with <code>]</code>
|
|
||||||
* <small>(right bracket)</small>.
|
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public String toString(final int indentFactor) throws JSONException {
|
public String toString(final int indentFactor) throws JSONException {
|
||||||
@ -912,12 +826,12 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write the contents of the JSONArray as JSON text to a writer. For
|
* Write the contents of the JSONArray as JSON text to a writer. For compactness, no whitespace is added.
|
||||||
* compactness, no whitespace is added.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* Warning: This method assumes that the data structure is acyclical.
|
* Warning: This method assumes that the data structure is acyclical.
|
||||||
*
|
*
|
||||||
* @return The writer.
|
* @return The writer.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public Writer write(final Writer writer) throws JSONException {
|
public Writer write(final Writer writer) throws JSONException {
|
||||||
@ -925,16 +839,15 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write the contents of the JSONArray as JSON text to a writer. For
|
* Write the contents of the JSONArray as JSON text to a writer. For compactness, no whitespace is added.
|
||||||
* compactness, no whitespace is added.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* Warning: This method assumes that the data structure is acyclical.
|
* Warning: This method assumes that the data structure is acyclical.
|
||||||
*
|
*
|
||||||
* @param indentFactor
|
* @param indentFactor The number of spaces to add to each level of indentation.
|
||||||
* The number of spaces to add to each level of indentation.
|
* @param indent The indention of the top level.
|
||||||
* @param indent
|
*
|
||||||
* The indention of the top level.
|
|
||||||
* @return The writer.
|
* @return The writer.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
Writer write(final Writer writer, final int indentFactor, final int indent) throws JSONException {
|
Writer write(final Writer writer, final int indentFactor, final int indent) throws JSONException {
|
||||||
@ -945,8 +858,7 @@ public class JSONArray {
|
|||||||
|
|
||||||
if (length == 1) {
|
if (length == 1) {
|
||||||
JSONObject.writeValue(writer, this.myArrayList.get(0), indentFactor, indent);
|
JSONObject.writeValue(writer, this.myArrayList.get(0), indentFactor, indent);
|
||||||
}
|
} else if (length != 0) {
|
||||||
else if (length != 0) {
|
|
||||||
final int newindent = indent + indentFactor;
|
final int newindent = indent + indentFactor;
|
||||||
|
|
||||||
for (int i = 0; i < length; i += 1) {
|
for (int i = 0; i < length; i += 1) {
|
||||||
@ -967,8 +879,7 @@ public class JSONArray {
|
|||||||
}
|
}
|
||||||
writer.write(']');
|
writer.write(']');
|
||||||
return writer;
|
return writer;
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
throw new JSONException(e);
|
throw new JSONException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,8 +13,7 @@ public class JSONException extends RuntimeException {
|
|||||||
/**
|
/**
|
||||||
* Constructs a JSONException with an explanatory message.
|
* Constructs a JSONException with an explanatory message.
|
||||||
*
|
*
|
||||||
* @param message
|
* @param message Detail about the reason for the exception.
|
||||||
* Detail about the reason for the exception.
|
|
||||||
*/
|
*/
|
||||||
public JSONException(final String message) {
|
public JSONException(final String message) {
|
||||||
super(message);
|
super(message);
|
||||||
@ -23,8 +22,7 @@ public class JSONException extends RuntimeException {
|
|||||||
/**
|
/**
|
||||||
* Constructs a new JSONException with the specified cause.
|
* Constructs a new JSONException with the specified cause.
|
||||||
*
|
*
|
||||||
* @param cause
|
* @param cause The cause.
|
||||||
* The cause.
|
|
||||||
*/
|
*/
|
||||||
public JSONException(final Throwable cause) {
|
public JSONException(final Throwable cause) {
|
||||||
super(cause.getMessage());
|
super(cause.getMessage());
|
||||||
@ -32,11 +30,9 @@ public class JSONException extends RuntimeException {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the cause of this exception or null if the cause is nonexistent
|
* Returns the cause of this exception or null if the cause is nonexistent or unknown.
|
||||||
* or unknown.
|
|
||||||
*
|
*
|
||||||
* @return the cause of this exception or null if the cause is nonexistent
|
* @return the cause of this exception or null if the cause is nonexistent or unknown.
|
||||||
* or unknown.
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Throwable getCause() {
|
public Throwable getCause() {
|
||||||
|
@ -3,9 +3,8 @@ package com.intellectualcrafters.json;
|
|||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This provides static methods to convert an XML text into a JSONArray or
|
* This provides static methods to convert an XML text into a JSONArray or JSONObject, and to covert a JSONArray or
|
||||||
* JSONObject, and to covert a JSONArray or JSONObject into an XML text using
|
* JSONObject into an XML text using the JsonML transform.
|
||||||
* the JsonML transform.
|
|
||||||
*
|
*
|
||||||
* @author JSON.org
|
* @author JSON.org
|
||||||
* @version 2014-05-03
|
* @version 2014-05-03
|
||||||
@ -15,14 +14,12 @@ public class JSONML {
|
|||||||
/**
|
/**
|
||||||
* Parse XML values and store them in a JSONArray.
|
* Parse XML values and store them in a JSONArray.
|
||||||
*
|
*
|
||||||
* @param x
|
* @param x The XMLTokener containing the source string.
|
||||||
* The XMLTokener containing the source string.
|
* @param arrayForm true if array form, false if object form.
|
||||||
* @param arrayForm
|
* @param ja The JSONArray that is containing the current tag or null if we are at the outermost level.
|
||||||
* true if array form, false if object form.
|
*
|
||||||
* @param ja
|
|
||||||
* The JSONArray that is containing the current tag or null
|
|
||||||
* if we are at the outermost level.
|
|
||||||
* @return A JSONArray if the value is the outermost tag, otherwise null.
|
* @return A JSONArray if the value is the outermost tag, otherwise null.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
private static Object parse(final XMLTokener x, final boolean arrayForm, final JSONArray ja) throws JSONException {
|
private static Object parse(final XMLTokener x, final boolean arrayForm, final JSONArray ja) throws JSONException {
|
||||||
@ -61,8 +58,7 @@ public class JSONML {
|
|||||||
throw x.syntaxError("Misshaped close tag");
|
throw x.syntaxError("Misshaped close tag");
|
||||||
}
|
}
|
||||||
return token;
|
return token;
|
||||||
}
|
} else if (token == XML.BANG) {
|
||||||
else if (token == XML.BANG) {
|
|
||||||
|
|
||||||
// <!
|
// <!
|
||||||
|
|
||||||
@ -70,53 +66,43 @@ public class JSONML {
|
|||||||
if (c == '-') {
|
if (c == '-') {
|
||||||
if (x.next() == '-') {
|
if (x.next() == '-') {
|
||||||
x.skipPast("-->");
|
x.skipPast("-->");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
x.back();
|
x.back();
|
||||||
}
|
}
|
||||||
}
|
} else if (c == '[') {
|
||||||
else if (c == '[') {
|
|
||||||
token = x.nextToken();
|
token = x.nextToken();
|
||||||
if (token.equals("CDATA") && (x.next() == '[')) {
|
if (token.equals("CDATA") && (x.next() == '[')) {
|
||||||
if (ja != null) {
|
if (ja != null) {
|
||||||
ja.put(x.nextCDATA());
|
ja.put(x.nextCDATA());
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw x.syntaxError("Expected 'CDATA['");
|
throw x.syntaxError("Expected 'CDATA['");
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
i = 1;
|
i = 1;
|
||||||
do {
|
do {
|
||||||
token = x.nextMeta();
|
token = x.nextMeta();
|
||||||
if (token == null) {
|
if (token == null) {
|
||||||
throw x.syntaxError("Missing '>' after '<!'.");
|
throw x.syntaxError("Missing '>' after '<!'.");
|
||||||
}
|
} else if (token == XML.LT) {
|
||||||
else if (token == XML.LT) {
|
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
} else if (token == XML.GT) {
|
||||||
else if (token == XML.GT) {
|
|
||||||
i -= 1;
|
i -= 1;
|
||||||
}
|
}
|
||||||
|
} while (i > 0);
|
||||||
}
|
}
|
||||||
while (i > 0);
|
} else if (token == XML.QUEST) {
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (token == XML.QUEST) {
|
|
||||||
|
|
||||||
// <?
|
// <?
|
||||||
|
|
||||||
x.skipPast("?>");
|
x.skipPast("?>");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw x.syntaxError("Misshaped tag");
|
throw x.syntaxError("Misshaped tag");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Open tag <
|
// Open tag <
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (!(token instanceof String)) {
|
if (!(token instanceof String)) {
|
||||||
throw x.syntaxError("Bad tagName '" + token + "'.");
|
throw x.syntaxError("Bad tagName '" + token + "'.");
|
||||||
}
|
}
|
||||||
@ -128,8 +114,7 @@ public class JSONML {
|
|||||||
if (ja != null) {
|
if (ja != null) {
|
||||||
ja.put(newja);
|
ja.put(newja);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
newjo.put("tagName", tagName);
|
newjo.put("tagName", tagName);
|
||||||
if (ja != null) {
|
if (ja != null) {
|
||||||
ja.put(newjo);
|
ja.put(newjo);
|
||||||
@ -161,8 +146,7 @@ public class JSONML {
|
|||||||
}
|
}
|
||||||
newjo.accumulate(attribute, XML.stringToValue((String) token));
|
newjo.accumulate(attribute, XML.stringToValue((String) token));
|
||||||
token = null;
|
token = null;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
newjo.accumulate(attribute, "");
|
newjo.accumulate(attribute, "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -179,16 +163,14 @@ public class JSONML {
|
|||||||
if (ja == null) {
|
if (ja == null) {
|
||||||
if (arrayForm) {
|
if (arrayForm) {
|
||||||
return newja;
|
return newja;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return newjo;
|
return newjo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Content, between <...> and </...>
|
// Content, between <...> and </...>
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (token != XML.GT) {
|
if (token != XML.GT) {
|
||||||
throw x.syntaxError("Misshaped tag");
|
throw x.syntaxError("Misshaped tag");
|
||||||
}
|
}
|
||||||
@ -204,16 +186,14 @@ public class JSONML {
|
|||||||
if (ja == null) {
|
if (ja == null) {
|
||||||
if (arrayForm) {
|
if (arrayForm) {
|
||||||
return newja;
|
return newja;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return newjo;
|
return newjo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (ja != null) {
|
if (ja != null) {
|
||||||
ja.put(token instanceof String ? XML.stringToValue((String) token) : token);
|
ja.put(token instanceof String ? XML.stringToValue((String) token) : token);
|
||||||
}
|
}
|
||||||
@ -222,17 +202,15 @@ public class JSONML {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a well-formed (but not necessarily valid) XML string into a
|
* Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform. Each
|
||||||
* JSONArray using the JsonML transform. Each XML tag is represented as
|
* XML tag is represented as a JSONArray in which the first element is the tag name. If the tag has attributes, then
|
||||||
* a JSONArray in which the first element is the tag name. If the tag has
|
* the second element will be JSONObject containing the name/value pairs. If the tag contains children, then strings
|
||||||
* attributes, then the second element will be JSONObject containing the
|
* and JSONArrays will represent the child tags. Comments, prologs, DTDs, and <code><[ [ ]]></code> are ignored.
|
||||||
* name/value pairs. If the tag contains children, then strings and
|
*
|
||||||
* JSONArrays will represent the child tags.
|
* @param string The source string.
|
||||||
* Comments, prologs, DTDs, and <code><[ [ ]]></code> are ignored.
|
|
||||||
*
|
*
|
||||||
* @param string
|
|
||||||
* The source string.
|
|
||||||
* @return A JSONArray containing the structured data from the XML string.
|
* @return A JSONArray containing the structured data from the XML string.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONArray toJSONArray(final String string) throws JSONException {
|
public static JSONArray toJSONArray(final String string) throws JSONException {
|
||||||
@ -240,17 +218,16 @@ public class JSONML {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a well-formed (but not necessarily valid) XML string into a
|
* Convert a well-formed (but not necessarily valid) XML string into a JSONArray using the JsonML transform. Each
|
||||||
* JSONArray using the JsonML transform. Each XML tag is represented as
|
* XML tag is represented as a JSONArray in which the first element is the tag name. If the tag has attributes, then
|
||||||
* a JSONArray in which the first element is the tag name. If the tag has
|
* the second element will be JSONObject containing the name/value pairs. If the tag contains children, then strings
|
||||||
* attributes, then the second element will be JSONObject containing the
|
* and JSONArrays will represent the child content and tags. Comments, prologs, DTDs, and <code><[ [ ]]></code>
|
||||||
* name/value pairs. If the tag contains children, then strings and
|
* are ignored.
|
||||||
* JSONArrays will represent the child content and tags.
|
*
|
||||||
* Comments, prologs, DTDs, and <code><[ [ ]]></code> are ignored.
|
* @param x An XMLTokener.
|
||||||
*
|
*
|
||||||
* @param x
|
|
||||||
* An XMLTokener.
|
|
||||||
* @return A JSONArray containing the structured data from the XML string.
|
* @return A JSONArray containing the structured data from the XML string.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONArray toJSONArray(final XMLTokener x) throws JSONException {
|
public static JSONArray toJSONArray(final XMLTokener x) throws JSONException {
|
||||||
@ -258,18 +235,17 @@ public class JSONML {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a well-formed (but not necessarily valid) XML string into a
|
* Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform. Each
|
||||||
* JSONObject using the JsonML transform. Each XML tag is represented as
|
* XML tag is represented as a JSONObject with a "tagName" property. If the tag has attributes, then the attributes
|
||||||
* a JSONObject with a "tagName" property. If the tag has attributes, then
|
* will be in the JSONObject as properties. If the tag contains children, the object will have a "childNodes"
|
||||||
* the attributes will be in the JSONObject as properties. If the tag
|
* property which will be an array of strings and JsonML JSONObjects.
|
||||||
* contains children, the object will have a "childNodes" property which
|
|
||||||
* will be an array of strings and JsonML JSONObjects.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* Comments, prologs, DTDs, and <code><[ [ ]]></code> are ignored.
|
* Comments, prologs, DTDs, and <code><[ [ ]]></code> are ignored.
|
||||||
*
|
*
|
||||||
* @param x
|
* @param x An XMLTokener of the XML source text.
|
||||||
* An XMLTokener of the XML source text.
|
*
|
||||||
* @return A JSONObject containing the structured data from the XML string.
|
* @return A JSONObject containing the structured data from the XML string.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONObject toJSONObject(final XMLTokener x) throws JSONException {
|
public static JSONObject toJSONObject(final XMLTokener x) throws JSONException {
|
||||||
@ -277,18 +253,17 @@ public class JSONML {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a well-formed (but not necessarily valid) XML string into a
|
* Convert a well-formed (but not necessarily valid) XML string into a JSONObject using the JsonML transform. Each
|
||||||
* JSONObject using the JsonML transform. Each XML tag is represented as
|
* XML tag is represented as a JSONObject with a "tagName" property. If the tag has attributes, then the attributes
|
||||||
* a JSONObject with a "tagName" property. If the tag has attributes, then
|
* will be in the JSONObject as properties. If the tag contains children, the object will have a "childNodes"
|
||||||
* the attributes will be in the JSONObject as properties. If the tag
|
* property which will be an array of strings and JsonML JSONObjects.
|
||||||
* contains children, the object will have a "childNodes" property which
|
|
||||||
* will be an array of strings and JsonML JSONObjects.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* Comments, prologs, DTDs, and <code><[ [ ]]></code> are ignored.
|
* Comments, prologs, DTDs, and <code><[ [ ]]></code> are ignored.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string The XML source text.
|
||||||
* The XML source text.
|
*
|
||||||
* @return A JSONObject containing the structured data from the XML string.
|
* @return A JSONObject containing the structured data from the XML string.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONObject toJSONObject(final String string) throws JSONException {
|
public static JSONObject toJSONObject(final String string) throws JSONException {
|
||||||
@ -298,9 +273,10 @@ public class JSONML {
|
|||||||
/**
|
/**
|
||||||
* Reverse the JSONML transformation, making an XML text from a JSONArray.
|
* Reverse the JSONML transformation, making an XML text from a JSONArray.
|
||||||
*
|
*
|
||||||
* @param ja
|
* @param ja A JSONArray.
|
||||||
* A JSONArray.
|
*
|
||||||
* @return An XML string.
|
* @return An XML string.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static String toString(final JSONArray ja) throws JSONException {
|
public static String toString(final JSONArray ja) throws JSONException {
|
||||||
@ -343,8 +319,7 @@ public class JSONML {
|
|||||||
sb.append('"');
|
sb.append('"');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
i = 1;
|
i = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -354,8 +329,7 @@ public class JSONML {
|
|||||||
if (i >= length) {
|
if (i >= length) {
|
||||||
sb.append('/');
|
sb.append('/');
|
||||||
sb.append('>');
|
sb.append('>');
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sb.append('>');
|
sb.append('>');
|
||||||
do {
|
do {
|
||||||
object = ja.get(i);
|
object = ja.get(i);
|
||||||
@ -363,16 +337,13 @@ public class JSONML {
|
|||||||
if (object != null) {
|
if (object != null) {
|
||||||
if (object instanceof String) {
|
if (object instanceof String) {
|
||||||
sb.append(XML.escape(object.toString()));
|
sb.append(XML.escape(object.toString()));
|
||||||
}
|
} else if (object instanceof JSONObject) {
|
||||||
else if (object instanceof JSONObject) {
|
|
||||||
sb.append(toString((JSONObject) object));
|
sb.append(toString((JSONObject) object));
|
||||||
}
|
} else if (object instanceof JSONArray) {
|
||||||
else if (object instanceof JSONArray) {
|
|
||||||
sb.append(toString((JSONArray) object));
|
sb.append(toString((JSONArray) object));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} while (i < length);
|
||||||
while (i < length);
|
|
||||||
sb.append('<');
|
sb.append('<');
|
||||||
sb.append('/');
|
sb.append('/');
|
||||||
sb.append(tagName);
|
sb.append(tagName);
|
||||||
@ -382,14 +353,14 @@ public class JSONML {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reverse the JSONML transformation, making an XML text from a JSONObject.
|
* Reverse the JSONML transformation, making an XML text from a JSONObject. The JSONObject must contain a "tagName"
|
||||||
* The JSONObject must contain a "tagName" property. If it has children,
|
* property. If it has children, then it must have a "childNodes" property containing an array of objects. The other
|
||||||
* then it must have a "childNodes" property containing an array of objects.
|
* properties are attributes with string values.
|
||||||
* The other properties are attributes with string values.
|
*
|
||||||
|
* @param jo A JSONObject.
|
||||||
*
|
*
|
||||||
* @param jo
|
|
||||||
* A JSONObject.
|
|
||||||
* @return An XML string.
|
* @return An XML string.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static String toString(final JSONObject jo) throws JSONException {
|
public static String toString(final JSONObject jo) throws JSONException {
|
||||||
@ -439,8 +410,7 @@ public class JSONML {
|
|||||||
if (ja == null) {
|
if (ja == null) {
|
||||||
sb.append('/');
|
sb.append('/');
|
||||||
sb.append('>');
|
sb.append('>');
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sb.append('>');
|
sb.append('>');
|
||||||
length = ja.length();
|
length = ja.length();
|
||||||
for (i = 0; i < length; i += 1) {
|
for (i = 0; i < length; i += 1) {
|
||||||
@ -448,14 +418,11 @@ public class JSONML {
|
|||||||
if (object != null) {
|
if (object != null) {
|
||||||
if (object instanceof String) {
|
if (object instanceof String) {
|
||||||
sb.append(XML.escape(object.toString()));
|
sb.append(XML.escape(object.toString()));
|
||||||
}
|
} else if (object instanceof JSONObject) {
|
||||||
else if (object instanceof JSONObject) {
|
|
||||||
sb.append(toString((JSONObject) object));
|
sb.append(toString((JSONObject) object));
|
||||||
}
|
} else if (object instanceof JSONArray) {
|
||||||
else if (object instanceof JSONArray) {
|
|
||||||
sb.append(toString((JSONArray) object));
|
sb.append(toString((JSONArray) object));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sb.append(object.toString());
|
sb.append(object.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,18 +1,14 @@
|
|||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The <code>JSONString</code> interface allows a <code>toJSONString()</code>
|
* The <code>JSONString</code> interface allows a <code>toJSONString()</code> method so that a class can change the
|
||||||
* method so that a class can change the behavior of
|
* behavior of <code>JSONObject.toString()</code>, <code>JSONArray.toString()</code>, and
|
||||||
* <code>JSONObject.toString()</code>, <code>JSONArray.toString()</code>,
|
* <code>JSONWriter.value(</code>Object<code>)</code>. The <code>toJSONString</code> method will be used instead of the
|
||||||
* and <code>JSONWriter.value(</code>Object<code>)</code>. The
|
* default behavior of using the Object's <code>toString()</code> method and quoting the result.
|
||||||
* <code>toJSONString</code> method will be used instead of the default behavior
|
|
||||||
* of using the Object's <code>toString()</code> method and quoting the result.
|
|
||||||
*/
|
*/
|
||||||
public interface JSONString {
|
public interface JSONString {
|
||||||
/**
|
/**
|
||||||
* The <code>toJSONString</code> method allows a class to produce its own
|
* The <code>toJSONString</code> method allows a class to produce its own JSON serialization.
|
||||||
* JSON
|
|
||||||
* serialization.
|
|
||||||
*
|
*
|
||||||
* @return A strictly syntactically correct JSON text.
|
* @return A strictly syntactically correct JSON text.
|
||||||
*/
|
*/
|
||||||
|
@ -3,34 +3,30 @@ package com.intellectualcrafters.json;
|
|||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JSONStringer provides a quick and convenient way of producing JSON text.
|
* JSONStringer provides a quick and convenient way of producing JSON text. The texts produced strictly conform to JSON
|
||||||
* The texts produced strictly conform to JSON syntax rules. No whitespace is
|
* syntax rules. No whitespace is added, so the results are ready for transmission or storage. Each instance of
|
||||||
* added, so the results are ready for transmission or storage. Each instance of
|
|
||||||
* JSONStringer can produce one JSON text.
|
* JSONStringer can produce one JSON text.
|
||||||
* <p/>
|
* <p/>
|
||||||
* A JSONStringer instance provides a <code>value</code> method for appending
|
* A JSONStringer instance provides a <code>value</code> method for appending values to the text, and a <code>key</code>
|
||||||
* values to the text, and a <code>key</code> method for adding keys before
|
* method for adding keys before values in objects. There are <code>array</code> and <code>endArray</code> methods that
|
||||||
* values in objects. There are <code>array</code> and <code>endArray</code>
|
* make and bound array values, and <code>object</code> and <code>endObject</code> methods which make and bound object
|
||||||
* methods that make and bound array values, and <code>object</code> and
|
* values. All of these methods return the JSONWriter instance, permitting cascade style. For example,
|
||||||
* <code>endObject</code> methods which make and bound object values. All of
|
* <p/>
|
||||||
* these methods return the JSONWriter instance, permitting cascade style. For
|
|
||||||
* example,
|
|
||||||
* <p/>
|
* <p/>
|
||||||
*
|
|
||||||
* <pre>
|
* <pre>
|
||||||
* myString = new JSONStringer().object().key("JSON").value("Hello, World!").endObject().toString();
|
* myString = new JSONStringer().object().key("JSON").value("Hello,
|
||||||
|
* World!").endObject().toString();
|
||||||
* </pre>
|
* </pre>
|
||||||
* <p/>
|
* <p/>
|
||||||
* which produces the string
|
* which produces the string
|
||||||
* <p/>
|
* <p/>
|
||||||
*
|
* <p/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* {"JSON":"Hello, World!"}
|
* {"JSON":"Hello, World!"}
|
||||||
* </pre>
|
* </pre>
|
||||||
* <p/>
|
* <p/>
|
||||||
* The first method called must be <code>array</code> or <code>object</code>.
|
* The first method called must be <code>array</code> or <code>object</code>. There are no methods for adding commas or
|
||||||
* There are no methods for adding commas or colons. JSONStringer adds them for
|
* colons. JSONStringer adds them for you. Objects and arrays can be nested up to 20 levels deep.
|
||||||
* you. Objects and arrays can be nested up to 20 levels deep.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* This can sometimes be easier than using a JSONObject to build a string.
|
* This can sometimes be easier than using a JSONObject to build a string.
|
||||||
*
|
*
|
||||||
@ -46,11 +42,9 @@ public class JSONStringer extends JSONWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the JSON text. This method is used to obtain the product of the
|
* Return the JSON text. This method is used to obtain the product of the JSONStringer instance. It will return
|
||||||
* JSONStringer instance. It will return <code>null</code> if there was a
|
* <code>null</code> if there was a problem in the construction of the JSON text (such as the calls to
|
||||||
* problem in the construction of the JSON text (such as the calls to
|
* <code>array</code> were not properly balanced with calls to <code>endArray</code>).
|
||||||
* <code>array</code> were not properly balanced with calls to
|
|
||||||
* <code>endArray</code>).
|
|
||||||
*
|
*
|
||||||
* @return The JSON text.
|
* @return The JSON text.
|
||||||
*/
|
*/
|
||||||
|
@ -1,16 +1,10 @@
|
|||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.*;
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.Reader;
|
|
||||||
import java.io.StringReader;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A JSONTokener takes a source string and extracts characters and tokens from
|
* A JSONTokener takes a source string and extracts characters and tokens from it. It is used by the JSONObject and
|
||||||
* it. It is used by the JSONObject and JSONArray constructors to parse
|
* JSONArray constructors to parse JSON source strings.
|
||||||
* JSON source strings.
|
|
||||||
*
|
*
|
||||||
* @author JSON.org
|
* @author JSON.org
|
||||||
* @version 2014-05-03
|
* @version 2014-05-03
|
||||||
@ -28,8 +22,7 @@ public class JSONTokener {
|
|||||||
/**
|
/**
|
||||||
* Construct a JSONTokener from a Reader.
|
* Construct a JSONTokener from a Reader.
|
||||||
*
|
*
|
||||||
* @param reader
|
* @param reader A reader.
|
||||||
* A reader.
|
|
||||||
*/
|
*/
|
||||||
public JSONTokener(final Reader reader) {
|
public JSONTokener(final Reader reader) {
|
||||||
this.reader = reader.markSupported() ? reader : new BufferedReader(reader);
|
this.reader = reader.markSupported() ? reader : new BufferedReader(reader);
|
||||||
@ -44,8 +37,7 @@ public class JSONTokener {
|
|||||||
/**
|
/**
|
||||||
* Construct a JSONTokener from an InputStream.
|
* Construct a JSONTokener from an InputStream.
|
||||||
*
|
*
|
||||||
* @param inputStream
|
* @param inputStream The source.
|
||||||
* The source.
|
|
||||||
*/
|
*/
|
||||||
public JSONTokener(final InputStream inputStream) throws JSONException {
|
public JSONTokener(final InputStream inputStream) throws JSONException {
|
||||||
this(new InputStreamReader(inputStream));
|
this(new InputStreamReader(inputStream));
|
||||||
@ -54,8 +46,7 @@ public class JSONTokener {
|
|||||||
/**
|
/**
|
||||||
* Construct a JSONTokener from a string.
|
* Construct a JSONTokener from a string.
|
||||||
*
|
*
|
||||||
* @param s
|
* @param s A source string.
|
||||||
* A source string.
|
|
||||||
*/
|
*/
|
||||||
public JSONTokener(final String s) {
|
public JSONTokener(final String s) {
|
||||||
this(new StringReader(s));
|
this(new StringReader(s));
|
||||||
@ -64,9 +55,8 @@ public class JSONTokener {
|
|||||||
/**
|
/**
|
||||||
* Get the hex value of a character (base16).
|
* Get the hex value of a character (base16).
|
||||||
*
|
*
|
||||||
* @param c
|
* @param c A character between '0' and '9' or between 'A' and 'F' or between 'a' and 'f'.
|
||||||
* A character between '0' and '9' or between 'A' and 'F' or
|
*
|
||||||
* between 'a' and 'f'.
|
|
||||||
* @return An int between 0 and 15, or -1 if c was not a hex digit.
|
* @return An int between 0 and 15, or -1 if c was not a hex digit.
|
||||||
*/
|
*/
|
||||||
public static int dehexchar(final char c) {
|
public static int dehexchar(final char c) {
|
||||||
@ -83,9 +73,8 @@ public class JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Back up one character. This provides a sort of lookahead capability,
|
* Back up one character. This provides a sort of lookahead capability, so that you can test for a digit or letter
|
||||||
* so that you can test for a digit or letter before attempting to parse
|
* before attempting to parse the next number or identifier.
|
||||||
* the next number or identifier.
|
|
||||||
*/
|
*/
|
||||||
public void back() throws JSONException {
|
public void back() throws JSONException {
|
||||||
if (this.usePrevious || (this.index <= 0)) {
|
if (this.usePrevious || (this.index <= 0)) {
|
||||||
@ -102,8 +91,7 @@ public class JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if the source string still contains characters that next()
|
* Determine if the source string still contains characters that next() can consume.
|
||||||
* can consume.
|
|
||||||
*
|
*
|
||||||
* @return true if not yet at the end of the source.
|
* @return true if not yet at the end of the source.
|
||||||
*/
|
*/
|
||||||
@ -126,12 +114,10 @@ public class JSONTokener {
|
|||||||
if (this.usePrevious) {
|
if (this.usePrevious) {
|
||||||
this.usePrevious = false;
|
this.usePrevious = false;
|
||||||
c = this.previous;
|
c = this.previous;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
try {
|
try {
|
||||||
c = this.reader.read();
|
c = this.reader.read();
|
||||||
}
|
} catch (final IOException exception) {
|
||||||
catch (final IOException exception) {
|
|
||||||
throw new JSONException(exception);
|
throw new JSONException(exception);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,12 +130,10 @@ public class JSONTokener {
|
|||||||
if (this.previous == '\r') {
|
if (this.previous == '\r') {
|
||||||
this.line += 1;
|
this.line += 1;
|
||||||
this.character = c == '\n' ? 0 : 1;
|
this.character = c == '\n' ? 0 : 1;
|
||||||
}
|
} else if (c == '\n') {
|
||||||
else if (c == '\n') {
|
|
||||||
this.line += 1;
|
this.line += 1;
|
||||||
this.character = 0;
|
this.character = 0;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
this.character += 1;
|
this.character += 1;
|
||||||
}
|
}
|
||||||
this.previous = (char) c;
|
this.previous = (char) c;
|
||||||
@ -157,14 +141,13 @@ public class JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Consume the next character, and check that it matches a specified
|
* Consume the next character, and check that it matches a specified character.
|
||||||
* character.
|
*
|
||||||
|
* @param c The character to match.
|
||||||
*
|
*
|
||||||
* @param c
|
|
||||||
* The character to match.
|
|
||||||
* @return The character.
|
* @return The character.
|
||||||
* @throws JSONException
|
*
|
||||||
* if the character does not match.
|
* @throws JSONException if the character does not match.
|
||||||
*/
|
*/
|
||||||
public char next(final char c) throws JSONException {
|
public char next(final char c) throws JSONException {
|
||||||
final char n = this.next();
|
final char n = this.next();
|
||||||
@ -177,12 +160,11 @@ public class JSONTokener {
|
|||||||
/**
|
/**
|
||||||
* Get the next n characters.
|
* Get the next n characters.
|
||||||
*
|
*
|
||||||
* @param n
|
* @param n The number of characters to take.
|
||||||
* The number of characters to take.
|
*
|
||||||
* @return A string of n characters.
|
* @return A string of n characters.
|
||||||
* @throws JSONException
|
*
|
||||||
* Substring bounds error if there are not
|
* @throws JSONException Substring bounds error if there are not n characters remaining in the source string.
|
||||||
* n characters remaining in the source string.
|
|
||||||
*/
|
*/
|
||||||
public String next(final int n) throws JSONException {
|
public String next(final int n) throws JSONException {
|
||||||
if (n == 0) {
|
if (n == 0) {
|
||||||
@ -206,6 +188,7 @@ public class JSONTokener {
|
|||||||
* Get the next char in the string, skipping whitespace.
|
* Get the next char in the string, skipping whitespace.
|
||||||
*
|
*
|
||||||
* @return A character, or 0 if there are no more characters.
|
* @return A character, or 0 if there are no more characters.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public char nextClean() throws JSONException {
|
public char nextClean() throws JSONException {
|
||||||
@ -218,18 +201,15 @@ public class JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the characters up to the next close quote character.
|
* Return the characters up to the next close quote character. Backslash processing is done. The formal JSON format
|
||||||
* Backslash processing is done. The formal JSON format does not
|
* does not allow strings in single quotes, but an implementation is allowed to accept them.
|
||||||
* allow strings in single quotes, but an implementation is allowed to
|
|
||||||
* accept them.
|
|
||||||
*
|
*
|
||||||
* @param quote
|
* @param quote The quoting character, either <code>"</code> <small>(double quote)</small> or <code>'</code>
|
||||||
* The quoting character, either <code>"</code>
|
|
||||||
* <small>(double quote)</small> or <code>'</code>
|
|
||||||
* <small>(single quote)</small>.
|
* <small>(single quote)</small>.
|
||||||
|
*
|
||||||
* @return A String.
|
* @return A String.
|
||||||
* @throws JSONException
|
*
|
||||||
* Unterminated string.
|
* @throws JSONException Unterminated string.
|
||||||
*/
|
*/
|
||||||
public String nextString(final char quote) throws JSONException {
|
public String nextString(final char quote) throws JSONException {
|
||||||
char c;
|
char c;
|
||||||
@ -282,11 +262,10 @@ public class JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the text up but not including the specified character or the
|
* Get the text up but not including the specified character or the end of line, whichever comes first.
|
||||||
* end of line, whichever comes first.
|
*
|
||||||
|
* @param delimiter A delimiter character.
|
||||||
*
|
*
|
||||||
* @param delimiter
|
|
||||||
* A delimiter character.
|
|
||||||
* @return A string.
|
* @return A string.
|
||||||
*/
|
*/
|
||||||
public String nextTo(final char delimiter) throws JSONException {
|
public String nextTo(final char delimiter) throws JSONException {
|
||||||
@ -304,11 +283,11 @@ public class JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the text up but not including one of the specified delimiter
|
* Get the text up but not including one of the specified delimiter characters or the end of line, whichever comes
|
||||||
* characters or the end of line, whichever comes first.
|
* first.
|
||||||
|
*
|
||||||
|
* @param delimiters A set of delimiter characters.
|
||||||
*
|
*
|
||||||
* @param delimiters
|
|
||||||
* A set of delimiter characters.
|
|
||||||
* @return A string, trimmed.
|
* @return A string, trimmed.
|
||||||
*/
|
*/
|
||||||
public String nextTo(final String delimiters) throws JSONException {
|
public String nextTo(final String delimiters) throws JSONException {
|
||||||
@ -327,12 +306,12 @@ public class JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the next value. The value can be a Boolean, Double, Integer,
|
* Get the next value. The value can be a Boolean, Double, Integer, JSONArray, JSONObject, Long, or String, or the
|
||||||
* JSONArray, JSONObject, Long, or String, or the JSONObject.NULL object.
|
* JSONObject.NULL object.
|
||||||
*
|
*
|
||||||
* @return An object.
|
* @return An object.
|
||||||
* @throws JSONException
|
*
|
||||||
* If syntax error.
|
* @throws JSONException If syntax error.
|
||||||
*/
|
*/
|
||||||
public Object nextValue() throws JSONException {
|
public Object nextValue() throws JSONException {
|
||||||
char c = this.nextClean();
|
char c = this.nextClean();
|
||||||
@ -373,13 +352,12 @@ public class JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skip characters until the next character is the requested character.
|
* Skip characters until the next character is the requested character. If the requested character is not found, no
|
||||||
* If the requested character is not found, no characters are skipped.
|
* characters are skipped.
|
||||||
*
|
*
|
||||||
* @param to
|
* @param to A character to skip to.
|
||||||
* A character to skip to.
|
*
|
||||||
* @return The requested character, or zero if the requested character
|
* @return The requested character, or zero if the requested character is not found.
|
||||||
* is not found.
|
|
||||||
*/
|
*/
|
||||||
public char skipTo(final char to) throws JSONException {
|
public char skipTo(final char to) throws JSONException {
|
||||||
char c;
|
char c;
|
||||||
@ -397,10 +375,8 @@ public class JSONTokener {
|
|||||||
this.line = startLine;
|
this.line = startLine;
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
}
|
} while (c != to);
|
||||||
while (c != to);
|
} catch (final IOException exception) {
|
||||||
}
|
|
||||||
catch (final IOException exception) {
|
|
||||||
throw new JSONException(exception);
|
throw new JSONException(exception);
|
||||||
}
|
}
|
||||||
this.back();
|
this.back();
|
||||||
@ -410,8 +386,8 @@ public class JSONTokener {
|
|||||||
/**
|
/**
|
||||||
* Make a JSONException to signal a syntax error.
|
* Make a JSONException to signal a syntax error.
|
||||||
*
|
*
|
||||||
* @param message
|
* @param message The error message.
|
||||||
* The error message.
|
*
|
||||||
* @return A JSONException object, suitable for throwing
|
* @return A JSONException object, suitable for throwing
|
||||||
*/
|
*/
|
||||||
public JSONException syntaxError(final String message) {
|
public JSONException syntaxError(final String message) {
|
||||||
|
@ -4,34 +4,29 @@ import java.io.IOException;
|
|||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* JSONWriter provides a quick and convenient way of producing JSON text.
|
* JSONWriter provides a quick and convenient way of producing JSON text. The texts produced strictly conform to JSON
|
||||||
* The texts produced strictly conform to JSON syntax rules. No whitespace is
|
* syntax rules. No whitespace is added, so the results are ready for transmission or storage. Each instance of
|
||||||
* added, so the results are ready for transmission or storage. Each instance of
|
|
||||||
* JSONWriter can produce one JSON text.
|
* JSONWriter can produce one JSON text.
|
||||||
* <p/>
|
* <p/>
|
||||||
* A JSONWriter instance provides a <code>value</code> method for appending
|
* A JSONWriter instance provides a <code>value</code> method for appending values to the text, and a <code>key</code>
|
||||||
* values to the text, and a <code>key</code> method for adding keys before
|
* method for adding keys before values in objects. There are <code>array</code> and <code>endArray</code> methods that
|
||||||
* values in objects. There are <code>array</code> and <code>endArray</code>
|
* make and bound array values, and <code>object</code> and <code>endObject</code> methods which make and bound object
|
||||||
* methods that make and bound array values, and <code>object</code> and
|
* values. All of these methods return the JSONWriter instance, permitting a cascade style. For example,
|
||||||
* <code>endObject</code> methods which make and bound object values. All of
|
* <p/>
|
||||||
* these methods return the JSONWriter instance, permitting a cascade style. For
|
|
||||||
* example,
|
|
||||||
* <p/>
|
* <p/>
|
||||||
*
|
|
||||||
* <pre>
|
* <pre>
|
||||||
* new JSONWriter(myWriter).object().key("JSON").value("Hello, World!").endObject();
|
* new JSONWriter(myWriter).object().key("JSON").value("Hello, World!").endObject();
|
||||||
* </pre>
|
* </pre>
|
||||||
* <p/>
|
* <p/>
|
||||||
* which writes
|
* which writes
|
||||||
* <p/>
|
* <p/>
|
||||||
*
|
* <p/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* {"JSON":"Hello, World!"}
|
* {"JSON":"Hello, World!"}
|
||||||
* </pre>
|
* </pre>
|
||||||
* <p/>
|
* <p/>
|
||||||
* The first method called must be <code>array</code> or <code>object</code>.
|
* The first method called must be <code>array</code> or <code>object</code>. There are no methods for adding commas or
|
||||||
* There are no methods for adding commas or colons. JSONWriter adds them for
|
* colons. JSONWriter adds them for you. Objects and arrays can be nested up to 20 levels deep.
|
||||||
* you. Objects and arrays can be nested up to 20 levels deep.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* This can sometimes be easier than using a JSONObject to build a string.
|
* This can sometimes be easier than using a JSONObject to build a string.
|
||||||
*
|
*
|
||||||
@ -49,17 +44,11 @@ public class JSONWriter {
|
|||||||
*/
|
*/
|
||||||
private final JSONObject stack[];
|
private final JSONObject stack[];
|
||||||
/**
|
/**
|
||||||
* The current mode. Values:
|
* The current mode. Values: 'a' (array), 'd' (done), 'i' (initial), 'k' (key), 'o' (object).
|
||||||
* 'a' (array),
|
|
||||||
* 'd' (done),
|
|
||||||
* 'i' (initial),
|
|
||||||
* 'k' (key),
|
|
||||||
* 'o' (object).
|
|
||||||
*/
|
*/
|
||||||
protected char mode;
|
protected char mode;
|
||||||
/**
|
/**
|
||||||
* The comma flag determines if a comma should be output before the next
|
* The comma flag determines if a comma should be output before the next value.
|
||||||
* value.
|
|
||||||
*/
|
*/
|
||||||
private boolean comma;
|
private boolean comma;
|
||||||
/**
|
/**
|
||||||
@ -81,11 +70,11 @@ public class JSONWriter {
|
|||||||
/**
|
/**
|
||||||
* Append a value.
|
* Append a value.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string A string value.
|
||||||
* A string value.
|
*
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
*
|
||||||
* If the value is out of sequence.
|
* @throws JSONException If the value is out of sequence.
|
||||||
*/
|
*/
|
||||||
private JSONWriter append(final String string) throws JSONException {
|
private JSONWriter append(final String string) throws JSONException {
|
||||||
if (string == null) {
|
if (string == null) {
|
||||||
@ -97,8 +86,7 @@ public class JSONWriter {
|
|||||||
this.writer.write(',');
|
this.writer.write(',');
|
||||||
}
|
}
|
||||||
this.writer.write(string);
|
this.writer.write(string);
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
throw new JSONException(e);
|
throw new JSONException(e);
|
||||||
}
|
}
|
||||||
if (this.mode == 'o') {
|
if (this.mode == 'o') {
|
||||||
@ -111,16 +99,13 @@ public class JSONWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Begin appending a new array. All values until the balancing
|
* Begin appending a new array. All values until the balancing <code>endArray</code> will be appended to this array.
|
||||||
* <code>endArray</code> will be appended to this array. The
|
* The <code>endArray</code> method must be called to mark the array's end.
|
||||||
* <code>endArray</code> method must be called to mark the array's end.
|
|
||||||
*
|
*
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
*
|
||||||
* If the nesting is too deep, or if the object is
|
* @throws JSONException If the nesting is too deep, or if the object is started in the wrong place (for example as
|
||||||
* started in the wrong place (for example as a key or after the
|
* a key or after the end of the outermost array or object).
|
||||||
* end of the
|
|
||||||
* outermost array or object).
|
|
||||||
*/
|
*/
|
||||||
public JSONWriter array() throws JSONException {
|
public JSONWriter array() throws JSONException {
|
||||||
if ((this.mode == 'i') || (this.mode == 'o') || (this.mode == 'a')) {
|
if ((this.mode == 'i') || (this.mode == 'o') || (this.mode == 'a')) {
|
||||||
@ -135,13 +120,12 @@ public class JSONWriter {
|
|||||||
/**
|
/**
|
||||||
* End something.
|
* End something.
|
||||||
*
|
*
|
||||||
* @param mode
|
* @param mode Mode
|
||||||
* Mode
|
* @param c Closing character
|
||||||
* @param c
|
*
|
||||||
* Closing character
|
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
*
|
||||||
* If unbalanced.
|
* @throws JSONException If unbalanced.
|
||||||
*/
|
*/
|
||||||
private JSONWriter end(final char mode, final char c) throws JSONException {
|
private JSONWriter end(final char mode, final char c) throws JSONException {
|
||||||
if (this.mode != mode) {
|
if (this.mode != mode) {
|
||||||
@ -150,8 +134,7 @@ public class JSONWriter {
|
|||||||
this.pop(mode);
|
this.pop(mode);
|
||||||
try {
|
try {
|
||||||
this.writer.write(c);
|
this.writer.write(c);
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
throw new JSONException(e);
|
throw new JSONException(e);
|
||||||
}
|
}
|
||||||
this.comma = true;
|
this.comma = true;
|
||||||
@ -159,39 +142,37 @@ public class JSONWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* End an array. This method most be called to balance calls to
|
* End an array. This method most be called to balance calls to <code>array</code>.
|
||||||
* <code>array</code>.
|
|
||||||
*
|
*
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
*
|
||||||
* If incorrectly nested.
|
* @throws JSONException If incorrectly nested.
|
||||||
*/
|
*/
|
||||||
public JSONWriter endArray() throws JSONException {
|
public JSONWriter endArray() throws JSONException {
|
||||||
return this.end('a', ']');
|
return this.end('a', ']');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* End an object. This method most be called to balance calls to
|
* End an object. This method most be called to balance calls to <code>object</code>.
|
||||||
* <code>object</code>.
|
|
||||||
*
|
*
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
*
|
||||||
* If incorrectly nested.
|
* @throws JSONException If incorrectly nested.
|
||||||
*/
|
*/
|
||||||
public JSONWriter endObject() throws JSONException {
|
public JSONWriter endObject() throws JSONException {
|
||||||
return this.end('k', '}');
|
return this.end('k', '}');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Append a key. The key will be associated with the next value. In an
|
* Append a key. The key will be associated with the next value. In an object, every value must be preceded by a
|
||||||
* object, every value must be preceded by a key.
|
* key.
|
||||||
|
*
|
||||||
|
* @param string A key string.
|
||||||
*
|
*
|
||||||
* @param string
|
|
||||||
* A key string.
|
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
*
|
||||||
* If the key is out of place. For example, keys
|
* @throws JSONException If the key is out of place. For example, keys do not belong in arrays or if the key is
|
||||||
* do not belong in arrays or if the key is null.
|
* null.
|
||||||
*/
|
*/
|
||||||
public JSONWriter key(final String string) throws JSONException {
|
public JSONWriter key(final String string) throws JSONException {
|
||||||
if (string == null) {
|
if (string == null) {
|
||||||
@ -208,8 +189,7 @@ public class JSONWriter {
|
|||||||
this.comma = false;
|
this.comma = false;
|
||||||
this.mode = 'o';
|
this.mode = 'o';
|
||||||
return this;
|
return this;
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
throw new JSONException(e);
|
throw new JSONException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -217,16 +197,13 @@ public class JSONWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Begin appending a new object. All keys and values until the balancing
|
* Begin appending a new object. All keys and values until the balancing <code>endObject</code> will be appended to
|
||||||
* <code>endObject</code> will be appended to this object. The
|
* this object. The <code>endObject</code> method must be called to mark the object's end.
|
||||||
* <code>endObject</code> method must be called to mark the object's end.
|
|
||||||
*
|
*
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
*
|
||||||
* If the nesting is too deep, or if the object is
|
* @throws JSONException If the nesting is too deep, or if the object is started in the wrong place (for example as
|
||||||
* started in the wrong place (for example as a key or after the
|
* a key or after the end of the outermost array or object).
|
||||||
* end of the
|
|
||||||
* outermost array or object).
|
|
||||||
*/
|
*/
|
||||||
public JSONWriter object() throws JSONException {
|
public JSONWriter object() throws JSONException {
|
||||||
if (this.mode == 'i') {
|
if (this.mode == 'i') {
|
||||||
@ -245,10 +222,9 @@ public class JSONWriter {
|
|||||||
/**
|
/**
|
||||||
* Pop an array or object scope.
|
* Pop an array or object scope.
|
||||||
*
|
*
|
||||||
* @param c
|
* @param c The scope to close.
|
||||||
* The scope to close.
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException If nesting is wrong.
|
||||||
* If nesting is wrong.
|
|
||||||
*/
|
*/
|
||||||
private void pop(final char c) throws JSONException {
|
private void pop(final char c) throws JSONException {
|
||||||
if (this.top <= 0) {
|
if (this.top <= 0) {
|
||||||
@ -265,10 +241,9 @@ public class JSONWriter {
|
|||||||
/**
|
/**
|
||||||
* Push an array or object scope.
|
* Push an array or object scope.
|
||||||
*
|
*
|
||||||
* @param jo
|
* @param jo The scope to open.
|
||||||
* The scope to open.
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException If nesting is too deep.
|
||||||
* If nesting is too deep.
|
|
||||||
*/
|
*/
|
||||||
private void push(final JSONObject jo) throws JSONException {
|
private void push(final JSONObject jo) throws JSONException {
|
||||||
if (this.top >= maxdepth) {
|
if (this.top >= maxdepth) {
|
||||||
@ -280,12 +255,12 @@ public class JSONWriter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Append either the value <code>true</code> or the value <code>false</code>
|
* Append either the value <code>true</code> or the value <code>false</code> .
|
||||||
* .
|
*
|
||||||
|
* @param b A boolean.
|
||||||
*
|
*
|
||||||
* @param b
|
|
||||||
* A boolean.
|
|
||||||
* @return this
|
* @return this
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public JSONWriter value(final boolean b) throws JSONException {
|
public JSONWriter value(final boolean b) throws JSONException {
|
||||||
@ -295,11 +270,11 @@ public class JSONWriter {
|
|||||||
/**
|
/**
|
||||||
* Append a double value.
|
* Append a double value.
|
||||||
*
|
*
|
||||||
* @param d
|
* @param d A double.
|
||||||
* A double.
|
*
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
*
|
||||||
* If the number is not finite.
|
* @throws JSONException If the number is not finite.
|
||||||
*/
|
*/
|
||||||
public JSONWriter value(final double d) throws JSONException {
|
public JSONWriter value(final double d) throws JSONException {
|
||||||
return this.value(new Double(d));
|
return this.value(new Double(d));
|
||||||
@ -308,9 +283,10 @@ public class JSONWriter {
|
|||||||
/**
|
/**
|
||||||
* Append a long value.
|
* Append a long value.
|
||||||
*
|
*
|
||||||
* @param l
|
* @param l A long.
|
||||||
* A long.
|
*
|
||||||
* @return this
|
* @return this
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public JSONWriter value(final long l) throws JSONException {
|
public JSONWriter value(final long l) throws JSONException {
|
||||||
@ -320,13 +296,12 @@ public class JSONWriter {
|
|||||||
/**
|
/**
|
||||||
* Append an object value.
|
* Append an object value.
|
||||||
*
|
*
|
||||||
* @param object
|
* @param object The object to append. It can be null, or a Boolean, Number, String, JSONObject, or JSONArray, or an
|
||||||
* The object to append. It can be null, or a Boolean, Number,
|
* object that implements JSONString.
|
||||||
* String, JSONObject, or JSONArray, or an object that implements
|
*
|
||||||
* JSONString.
|
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
*
|
||||||
* If the value is out of sequence.
|
* @throws JSONException If the value is out of sequence.
|
||||||
*/
|
*/
|
||||||
public JSONWriter value(final Object object) throws JSONException {
|
public JSONWriter value(final Object object) throws JSONException {
|
||||||
return this.append(JSONObject.valueToString(object));
|
return this.append(JSONObject.valueToString(object));
|
||||||
|
@ -1,43 +1,35 @@
|
|||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Kim makes immutable eight bit Unicode strings. If the MSB of a byte is set,
|
* Kim makes immutable eight bit Unicode strings. If the MSB of a byte is set, then the next byte is a continuation
|
||||||
* then the next byte is a continuation byte. The last byte of a character
|
* byte. The last byte of a character never has the MSB reset. Every byte that is not the last byte has the MSB set. Kim
|
||||||
* never has the MSB reset. Every byte that is not the last byte has the MSB
|
* stands for "Keep it minimal". A Unicode character is never longer than 3 bytes. Every byte contributes 7 bits to the
|
||||||
* set. Kim stands for "Keep it minimal". A Unicode character is never longer
|
* character. ASCII is unmodified.
|
||||||
* than 3 bytes. Every byte contributes 7 bits to the character. ASCII is
|
|
||||||
* unmodified.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* Kim UTF-8 one byte U+007F U+007F two bytes U+3FFF U+07FF three bytes U+10FFF
|
* Kim UTF-8 one byte U+007F U+007F two bytes U+3FFF U+07FF three bytes U+10FFF U+FFFF four bytes U+10FFFF
|
||||||
* U+FFFF four bytes U+10FFFF
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* Characters in the ranges U+0800..U+3FFF and U+10000..U+10FFFF will be one
|
* Characters in the ranges U+0800..U+3FFF and U+10000..U+10FFFF will be one byte smaller when encoded in Kim compared
|
||||||
* byte smaller when encoded in Kim compared to UTF-8.
|
* to UTF-8.
|
||||||
* <p/>
|
* <p/>
|
||||||
* Kim is beneficial when using scripts such as Old South Arabian, Aramaic,
|
* Kim is beneficial when using scripts such as Old South Arabian, Aramaic, Avestan, Balinese, Batak, Bopomofo,
|
||||||
* Avestan, Balinese, Batak, Bopomofo, Buginese, Buhid, Carian, Cherokee,
|
* Buginese, Buhid, Carian, Cherokee, Coptic, Cyrillic, Deseret, Egyptian Hieroglyphs, Ethiopic, Georgian, Glagolitic,
|
||||||
* Coptic, Cyrillic, Deseret, Egyptian Hieroglyphs, Ethiopic, Georgian,
|
* Gothic, Hangul Jamo, Hanunoo, Hiragana, Kanbun, Kaithi, Kannada, Katakana, Kharoshthi, Khmer, Lao, Lepcha, Limbu,
|
||||||
* Glagolitic, Gothic, Hangul Jamo, Hanunoo, Hiragana, Kanbun, Kaithi, Kannada,
|
* Lycian, Lydian, Malayalam, Mandaic, Meroitic, Miao, Mongolian, Myanmar, New Tai Lue, Ol Chiki, Old Turkic, Oriya,
|
||||||
* Katakana, Kharoshthi, Khmer, Lao, Lepcha, Limbu, Lycian, Lydian, Malayalam,
|
* Osmanya, Pahlavi, Parthian, Phags-Pa, Phoenician, Samaritan, Sharada, Sinhala, Sora Sompeng, Tagalog, Tagbanwa,
|
||||||
* Mandaic, Meroitic, Miao, Mongolian, Myanmar, New Tai Lue, Ol Chiki, Old
|
* Takri, Tai Le, Tai Tham, Tamil, Telugu, Thai, Tibetan, Tifinagh, UCAS.
|
||||||
* Turkic, Oriya, Osmanya, Pahlavi, Parthian, Phags-Pa, Phoenician, Samaritan,
|
|
||||||
* Sharada, Sinhala, Sora Sompeng, Tagalog, Tagbanwa, Takri, Tai Le, Tai Tham,
|
|
||||||
* Tamil, Telugu, Thai, Tibetan, Tifinagh, UCAS.
|
|
||||||
* <p/>
|
* <p/>
|
||||||
* A kim object can be constructed from an ordinary UTF-16 string, or from a
|
* A kim object can be constructed from an ordinary UTF-16 string, or from a byte array. A kim object can produce a
|
||||||
* byte array. A kim object can produce a UTF-16 string.
|
* UTF-16 string.
|
||||||
* <p/>
|
* <p/>
|
||||||
* As with UTF-8, it is possible to detect character boundaries within a byte
|
* As with UTF-8, it is possible to detect character boundaries within a byte sequence. UTF-8 is one of the world's
|
||||||
* sequence. UTF-8 is one of the world's great inventions. While Kim is more
|
* great inventions. While Kim is more efficient, it is not clear that it is worth the expense of transition.
|
||||||
* efficient, it is not clear that it is worth the expense of transition.
|
|
||||||
*
|
*
|
||||||
* @version 2013-04-18
|
* @version 2013-04-18
|
||||||
*/
|
*/
|
||||||
public class Kim {
|
public class Kim {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The number of bytes in the kim. The number of bytes can be as much as
|
* The number of bytes in the kim. The number of bytes can be as much as three times the number of characters.
|
||||||
* three times the number of characters.
|
|
||||||
*/
|
*/
|
||||||
public int length = 0;
|
public int length = 0;
|
||||||
/**
|
/**
|
||||||
@ -56,12 +48,9 @@ public class Kim {
|
|||||||
/**
|
/**
|
||||||
* Make a kim from a portion of a byte array.
|
* Make a kim from a portion of a byte array.
|
||||||
*
|
*
|
||||||
* @param bytes
|
* @param bytes A byte array.
|
||||||
* A byte array.
|
* @param from The index of the first byte.
|
||||||
* @param from
|
* @param thru The index of the last byte plus one.
|
||||||
* The index of the first byte.
|
|
||||||
* @param thru
|
|
||||||
* The index of the last byte plus one.
|
|
||||||
*/
|
*/
|
||||||
public Kim(final byte[] bytes, final int from, final int thru) {
|
public Kim(final byte[] bytes, final int from, final int thru) {
|
||||||
|
|
||||||
@ -88,25 +77,19 @@ public class Kim {
|
|||||||
/**
|
/**
|
||||||
* Make a kim from a byte array.
|
* Make a kim from a byte array.
|
||||||
*
|
*
|
||||||
* @param bytes
|
* @param bytes The byte array.
|
||||||
* The byte array.
|
* @param length The number of bytes.
|
||||||
* @param length
|
|
||||||
* The number of bytes.
|
|
||||||
*/
|
*/
|
||||||
public Kim(final byte[] bytes, final int length) {
|
public Kim(final byte[] bytes, final int length) {
|
||||||
this(bytes, 0, length);
|
this(bytes, 0, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Make a new kim from a substring of an existing kim. The coordinates are
|
* Make a new kim from a substring of an existing kim. The coordinates are in byte units, not character units.
|
||||||
* in byte units, not character units.
|
|
||||||
*
|
*
|
||||||
* @param kim
|
* @param kim The source of bytes.
|
||||||
* The source of bytes.
|
* @param from The point at which to take bytes.
|
||||||
* @param from
|
* @param thru The point at which to stop taking bytes.
|
||||||
* The point at which to take bytes.
|
|
||||||
* @param thru
|
|
||||||
* The point at which to stop taking bytes.
|
|
||||||
*/
|
*/
|
||||||
public Kim(final Kim kim, final int from, final int thru) {
|
public Kim(final Kim kim, final int from, final int thru) {
|
||||||
this(kim.bytes, from, thru);
|
this(kim.bytes, from, thru);
|
||||||
@ -115,10 +98,9 @@ public class Kim {
|
|||||||
/**
|
/**
|
||||||
* Make a kim from a string.
|
* Make a kim from a string.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string The string.
|
||||||
* The string.
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException if surrogate pair mismatch.
|
||||||
* if surrogate pair mismatch.
|
|
||||||
*/
|
*/
|
||||||
public Kim(final String string) throws JSONException {
|
public Kim(final String string) throws JSONException {
|
||||||
final int stringLength = string.length();
|
final int stringLength = string.length();
|
||||||
@ -133,11 +115,9 @@ public class Kim {
|
|||||||
final int c = string.charAt(i);
|
final int c = string.charAt(i);
|
||||||
if (c <= 0x7F) {
|
if (c <= 0x7F) {
|
||||||
this.length += 1;
|
this.length += 1;
|
||||||
}
|
} else if (c <= 0x3FFF) {
|
||||||
else if (c <= 0x3FFF) {
|
|
||||||
this.length += 2;
|
this.length += 2;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if ((c >= 0xD800) && (c <= 0xDFFF)) {
|
if ((c >= 0xD800) && (c <= 0xDFFF)) {
|
||||||
i += 1;
|
i += 1;
|
||||||
final int d = string.charAt(i);
|
final int d = string.charAt(i);
|
||||||
@ -164,8 +144,7 @@ public class Kim {
|
|||||||
sum += character;
|
sum += character;
|
||||||
this.hashcode += sum;
|
this.hashcode += sum;
|
||||||
at += 1;
|
at += 1;
|
||||||
}
|
} else if (character <= 0x3FFF) {
|
||||||
else if (character <= 0x3FFF) {
|
|
||||||
b = 0x80 | (character >>> 7);
|
b = 0x80 | (character >>> 7);
|
||||||
this.bytes[at] = (byte) b;
|
this.bytes[at] = (byte) b;
|
||||||
sum += b;
|
sum += b;
|
||||||
@ -176,8 +155,7 @@ public class Kim {
|
|||||||
sum += b;
|
sum += b;
|
||||||
this.hashcode += sum;
|
this.hashcode += sum;
|
||||||
at += 1;
|
at += 1;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if ((character >= 0xD800) && (character <= 0xDBFF)) {
|
if ((character >= 0xD800) && (character <= 0xDBFF)) {
|
||||||
i += 1;
|
i += 1;
|
||||||
character = (((character & 0x3FF) << 10) | (string.charAt(i) & 0x3FF)) + 65536;
|
character = (((character & 0x3FF) << 10) | (string.charAt(i) & 0x3FF)) + 65536;
|
||||||
@ -204,14 +182,13 @@ public class Kim {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the number of bytes needed to contain the character in Kim
|
* Returns the number of bytes needed to contain the character in Kim format.
|
||||||
* format.
|
*
|
||||||
|
* @param character a Unicode character between 0 and 0x10FFFF.
|
||||||
*
|
*
|
||||||
* @param character
|
|
||||||
* a Unicode character between 0 and 0x10FFFF.
|
|
||||||
* @return 1, 2, or 3
|
* @return 1, 2, or 3
|
||||||
* @throws JSONException
|
*
|
||||||
* if the character is not representable in a kim.
|
* @throws JSONException if the character is not representable in a kim.
|
||||||
*/
|
*/
|
||||||
public static int characterSize(final int character) throws JSONException {
|
public static int characterSize(final int character) throws JSONException {
|
||||||
if ((character < 0) || (character > 0x10FFFF)) {
|
if ((character < 0) || (character > 0x10FFFF)) {
|
||||||
@ -221,14 +198,12 @@ public class Kim {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the character at the specified index. The index refers to byte
|
* Returns the character at the specified index. The index refers to byte values and ranges from 0 to length - 1.
|
||||||
* values and ranges from 0 to length - 1. The index of the next character
|
* The index of the next character is at index + Kim.characterSize(kim.characterAt(index)).
|
||||||
* is at index + Kim.characterSize(kim.characterAt(index)).
|
|
||||||
*
|
*
|
||||||
* @param at
|
* @param at the index of the char value. The first character is at 0.
|
||||||
* the index of the char value. The first character is at 0.
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException if at does not point to a valid character.
|
||||||
* if at does not point to a valid character.
|
|
||||||
* @returns a Unicode character between 0 and 0x10FFFF.
|
* @returns a Unicode character between 0 and 0x10FFFF.
|
||||||
*/
|
*/
|
||||||
public int characterAt(final int at) throws JSONException {
|
public int characterAt(final int at) throws JSONException {
|
||||||
@ -243,8 +218,7 @@ public class Kim {
|
|||||||
if (character > 0x7F) {
|
if (character > 0x7F) {
|
||||||
return character;
|
return character;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
final int c2 = get(at + 2);
|
final int c2 = get(at + 2);
|
||||||
character = ((c & 0x7F) << 14) | ((c1 & 0x7F) << 7) | c2;
|
character = ((c & 0x7F) << 14) | ((c1 & 0x7F) << 7) | c2;
|
||||||
if (((c2 & 0x80) == 0) && (character > 0x3FFF) && (character <= 0x10FFFF) && ((character < 0xD800) || (character > 0xDFFF))) {
|
if (((c2 & 0x80) == 0) && (character > 0x3FFF) && (character <= 0x10FFFF) && ((character < 0xD800) || (character > 0xDFFF))) {
|
||||||
@ -257,10 +231,9 @@ public class Kim {
|
|||||||
/**
|
/**
|
||||||
* Copy the contents of this kim to a byte array.
|
* Copy the contents of this kim to a byte array.
|
||||||
*
|
*
|
||||||
* @param bytes
|
* @param bytes A byte array of sufficient size.
|
||||||
* A byte array of sufficient size.
|
* @param at The position within the byte array to take the byes.
|
||||||
* @param at
|
*
|
||||||
* The position within the byte array to take the byes.
|
|
||||||
* @return The position immediately after the copy.
|
* @return The position immediately after the copy.
|
||||||
*/
|
*/
|
||||||
public int copy(final byte[] bytes, final int at) {
|
public int copy(final byte[] bytes, final int at) {
|
||||||
@ -269,13 +242,11 @@ public class Kim {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Two kim objects containing exactly the same bytes in the same order are
|
* Two kim objects containing exactly the same bytes in the same order are equal to each other.
|
||||||
* equal to each other.
|
|
||||||
*
|
*
|
||||||
* @param obj
|
* @param obj the other kim with which to compare.
|
||||||
* the other kim with which to compare.
|
*
|
||||||
* @returns true if this and obj are both kim objects containing identical
|
* @returns true if this and obj are both kim objects containing identical byte sequences.
|
||||||
* byte sequences.
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean equals(final Object obj) {
|
public boolean equals(final Object obj) {
|
||||||
@ -295,11 +266,11 @@ public class Kim {
|
|||||||
/**
|
/**
|
||||||
* Get a byte from a kim.
|
* Get a byte from a kim.
|
||||||
*
|
*
|
||||||
* @param at
|
* @param at The position of the byte. The first byte is at 0.
|
||||||
* The position of the byte. The first byte is at 0.
|
*
|
||||||
* @return The byte.
|
* @return The byte.
|
||||||
* @throws JSONException
|
*
|
||||||
* if there is no byte at that position.
|
* @throws JSONException if there is no byte at that position.
|
||||||
*/
|
*/
|
||||||
public int get(final int at) throws JSONException {
|
public int get(final int at) throws JSONException {
|
||||||
if ((at < 0) || (at > this.length)) {
|
if ((at < 0) || (at > this.length)) {
|
||||||
@ -317,13 +288,12 @@ public class Kim {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Produce a UTF-16 String from this kim. The number of codepoints in the
|
* Produce a UTF-16 String from this kim. The number of codepoints in the string will not be greater than the number
|
||||||
* string will not be greater than the number of bytes in the kim, although
|
* of bytes in the kim, although it could be less.
|
||||||
* it could be less.
|
|
||||||
*
|
*
|
||||||
* @return The string. A kim memoizes its string representation.
|
* @return The string. A kim memoizes its string representation.
|
||||||
* @throws JSONException
|
*
|
||||||
* if the kim is not valid.
|
* @throws JSONException if the kim is not valid.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() throws JSONException {
|
public String toString() throws JSONException {
|
||||||
@ -336,8 +306,7 @@ public class Kim {
|
|||||||
if (c < 0x10000) {
|
if (c < 0x10000) {
|
||||||
chars[length] = (char) c;
|
chars[length] = (char) c;
|
||||||
length += 1;
|
length += 1;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
chars[length] = (char) (0xD800 | ((c - 0x10000) >>> 10));
|
chars[length] = (char) (0xD800 | ((c - 0x10000) >>> 10));
|
||||||
length += 1;
|
length += 1;
|
||||||
chars[length] = (char) (0xDC00 | (c & 0x03FF));
|
chars[length] = (char) (0xDC00 | (c & 0x03FF));
|
||||||
|
@ -33,12 +33,12 @@ import java.util.Properties;
|
|||||||
*/
|
*/
|
||||||
public class Property {
|
public class Property {
|
||||||
/**
|
/**
|
||||||
* Converts a property file object into a JSONObject. The property file
|
* Converts a property file object into a JSONObject. The property file object is a table of name value pairs.
|
||||||
* object is a table of name value pairs.
|
*
|
||||||
|
* @param properties java.util.Properties
|
||||||
*
|
*
|
||||||
* @param properties
|
|
||||||
* java.util.Properties
|
|
||||||
* @return JSONObject
|
* @return JSONObject
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONObject toJSONObject(final java.util.Properties properties) throws JSONException {
|
public static JSONObject toJSONObject(final java.util.Properties properties) throws JSONException {
|
||||||
@ -56,9 +56,10 @@ public class Property {
|
|||||||
/**
|
/**
|
||||||
* Converts the JSONObject into a property file object.
|
* Converts the JSONObject into a property file object.
|
||||||
*
|
*
|
||||||
* @param jo
|
* @param jo JSONObject
|
||||||
* JSONObject
|
*
|
||||||
* @return java.util.Properties
|
* @return java.util.Properties
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static Properties toProperties(final JSONObject jo) throws JSONException {
|
public static Properties toProperties(final JSONObject jo) throws JSONException {
|
||||||
|
@ -3,8 +3,7 @@ package com.intellectualcrafters.json;
|
|||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This provides static methods to convert an XML text into a JSONObject,
|
* This provides static methods to convert an XML text into a JSONObject, and to covert a JSONObject into an XML text.
|
||||||
* and to covert a JSONObject into an XML text.
|
|
||||||
*
|
*
|
||||||
* @author JSON.org
|
* @author JSON.org
|
||||||
* @version 2014-05-03
|
* @version 2014-05-03
|
||||||
@ -59,7 +58,7 @@ public class XML {
|
|||||||
/**
|
/**
|
||||||
* Replace special characters with XML escapes:
|
* Replace special characters with XML escapes:
|
||||||
* <p/>
|
* <p/>
|
||||||
*
|
* <p/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* & <small>(ampersand)</small> is replaced by &amp;
|
* & <small>(ampersand)</small> is replaced by &amp;
|
||||||
* < <small>(less than)</small> is replaced by &lt;
|
* < <small>(less than)</small> is replaced by &lt;
|
||||||
@ -67,8 +66,8 @@ public class XML {
|
|||||||
* " <small>(double quote)</small> is replaced by &quot;
|
* " <small>(double quote)</small> is replaced by &quot;
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string The string to be escaped.
|
||||||
* The string to be escaped.
|
*
|
||||||
* @return The escaped string.
|
* @return The escaped string.
|
||||||
*/
|
*/
|
||||||
public static String escape(final String string) {
|
public static String escape(final String string) {
|
||||||
@ -99,11 +98,10 @@ public class XML {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Throw an exception if the string contains whitespace.
|
* Throw an exception if the string contains whitespace. Whitespace is not allowed in tagNames and attributes.
|
||||||
* Whitespace is not allowed in tagNames and attributes.
|
*
|
||||||
|
* @param string A string.
|
||||||
*
|
*
|
||||||
* @param string
|
|
||||||
* A string.
|
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static void noSpace(final String string) throws JSONException {
|
public static void noSpace(final String string) throws JSONException {
|
||||||
@ -122,13 +120,12 @@ public class XML {
|
|||||||
/**
|
/**
|
||||||
* Scan the content following the named tag, attaching it to the context.
|
* Scan the content following the named tag, attaching it to the context.
|
||||||
*
|
*
|
||||||
* @param x
|
* @param x The XMLTokener containing the source string.
|
||||||
* The XMLTokener containing the source string.
|
* @param context The JSONObject that will include the new material.
|
||||||
* @param context
|
* @param name The tag name.
|
||||||
* The JSONObject that will include the new material.
|
*
|
||||||
* @param name
|
|
||||||
* The tag name.
|
|
||||||
* @return true if the close tag is processed.
|
* @return true if the close tag is processed.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
private static boolean parse(final XMLTokener x, final JSONObject context, final String name) throws JSONException {
|
private static boolean parse(final XMLTokener x, final JSONObject context, final String name) throws JSONException {
|
||||||
@ -161,8 +158,7 @@ public class XML {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
x.back();
|
x.back();
|
||||||
}
|
} else if (c == '[') {
|
||||||
else if (c == '[') {
|
|
||||||
token = x.nextToken();
|
token = x.nextToken();
|
||||||
if ("CDATA".equals(token)) {
|
if ("CDATA".equals(token)) {
|
||||||
if (x.next() == '[') {
|
if (x.next() == '[') {
|
||||||
@ -180,25 +176,20 @@ public class XML {
|
|||||||
token = x.nextMeta();
|
token = x.nextMeta();
|
||||||
if (token == null) {
|
if (token == null) {
|
||||||
throw x.syntaxError("Missing '>' after '<!'.");
|
throw x.syntaxError("Missing '>' after '<!'.");
|
||||||
}
|
} else if (token == LT) {
|
||||||
else if (token == LT) {
|
|
||||||
i += 1;
|
i += 1;
|
||||||
}
|
} else if (token == GT) {
|
||||||
else if (token == GT) {
|
|
||||||
i -= 1;
|
i -= 1;
|
||||||
}
|
}
|
||||||
}
|
} while (i > 0);
|
||||||
while (i > 0);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
} else if (token == QUEST) {
|
||||||
else if (token == QUEST) {
|
|
||||||
|
|
||||||
// <?
|
// <?
|
||||||
|
|
||||||
x.skipPast("?>");
|
x.skipPast("?>");
|
||||||
return false;
|
return false;
|
||||||
}
|
} else if (token == SLASH) {
|
||||||
else if (token == SLASH) {
|
|
||||||
|
|
||||||
// Close tag </
|
// Close tag </
|
||||||
|
|
||||||
@ -214,14 +205,12 @@ public class XML {
|
|||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
}
|
} else if (token instanceof Character) {
|
||||||
else if (token instanceof Character) {
|
|
||||||
throw x.syntaxError("Misshaped tag");
|
throw x.syntaxError("Misshaped tag");
|
||||||
|
|
||||||
// Open tag <
|
// Open tag <
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
tagName = (String) token;
|
tagName = (String) token;
|
||||||
token = null;
|
token = null;
|
||||||
jsonobject = new JSONObject();
|
jsonobject = new JSONObject();
|
||||||
@ -242,30 +231,26 @@ public class XML {
|
|||||||
}
|
}
|
||||||
jsonobject.accumulate(string, XML.stringToValue((String) token));
|
jsonobject.accumulate(string, XML.stringToValue((String) token));
|
||||||
token = null;
|
token = null;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
jsonobject.accumulate(string, "");
|
jsonobject.accumulate(string, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Empty tag <.../>
|
// Empty tag <.../>
|
||||||
|
|
||||||
}
|
} else if (token == SLASH) {
|
||||||
else if (token == SLASH) {
|
|
||||||
if (x.nextToken() != GT) {
|
if (x.nextToken() != GT) {
|
||||||
throw x.syntaxError("Misshaped tag");
|
throw x.syntaxError("Misshaped tag");
|
||||||
}
|
}
|
||||||
if (jsonobject.length() > 0) {
|
if (jsonobject.length() > 0) {
|
||||||
context.accumulate(tagName, jsonobject);
|
context.accumulate(tagName, jsonobject);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
context.accumulate(tagName, "");
|
context.accumulate(tagName, "");
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// Content, between <...> and </...>
|
// Content, between <...> and </...>
|
||||||
|
|
||||||
}
|
} else if (token == GT) {
|
||||||
else if (token == GT) {
|
|
||||||
for (; ; ) {
|
for (; ; ) {
|
||||||
token = x.nextContent();
|
token = x.nextContent();
|
||||||
if (token == null) {
|
if (token == null) {
|
||||||
@ -273,8 +258,7 @@ public class XML {
|
|||||||
throw x.syntaxError("Unclosed tag " + tagName);
|
throw x.syntaxError("Unclosed tag " + tagName);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
} else if (token instanceof String) {
|
||||||
else if (token instanceof String) {
|
|
||||||
string = (String) token;
|
string = (String) token;
|
||||||
if (string.length() > 0) {
|
if (string.length() > 0) {
|
||||||
jsonobject.accumulate("content", XML.stringToValue(string));
|
jsonobject.accumulate("content", XML.stringToValue(string));
|
||||||
@ -282,24 +266,20 @@ public class XML {
|
|||||||
|
|
||||||
// Nested element
|
// Nested element
|
||||||
|
|
||||||
}
|
} else if (token == LT) {
|
||||||
else if (token == LT) {
|
|
||||||
if (parse(x, jsonobject, tagName)) {
|
if (parse(x, jsonobject, tagName)) {
|
||||||
if (jsonobject.length() == 0) {
|
if (jsonobject.length() == 0) {
|
||||||
context.accumulate(tagName, "");
|
context.accumulate(tagName, "");
|
||||||
}
|
} else if ((jsonobject.length() == 1) && (jsonobject.opt("content") != null)) {
|
||||||
else if ((jsonobject.length() == 1) && (jsonobject.opt("content") != null)) {
|
|
||||||
context.accumulate(tagName, jsonobject.opt("content"));
|
context.accumulate(tagName, jsonobject.opt("content"));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
context.accumulate(tagName, jsonobject);
|
context.accumulate(tagName, jsonobject);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw x.syntaxError("Misshaped tag");
|
throw x.syntaxError("Misshaped tag");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -307,14 +287,12 @@ public class XML {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Try to convert a string into a number, boolean, or null. If the string
|
* Try to convert a string into a number, boolean, or null. If the string can't be converted, return the string.
|
||||||
* can't be converted, return the string. This is much less ambitious than
|
* This is much less ambitious than JSONObject.stringToValue, especially because it does not attempt to convert plus
|
||||||
* JSONObject.stringToValue, especially because it does not attempt to
|
* forms, octal forms, hex forms, or E forms lacking decimal points.
|
||||||
* convert plus forms, octal forms, hex forms, or E forms lacking decimal
|
*
|
||||||
* points.
|
* @param string A String.
|
||||||
*
|
*
|
||||||
* @param string
|
|
||||||
* A String.
|
|
||||||
* @return A simple JSON value.
|
* @return A simple JSON value.
|
||||||
*/
|
*/
|
||||||
public static Object stringToValue(final String string) {
|
public static Object stringToValue(final String string) {
|
||||||
@ -340,34 +318,30 @@ public class XML {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception ignore) {
|
||||||
catch (final Exception ignore) {
|
|
||||||
try {
|
try {
|
||||||
final Double value = new Double(string);
|
final Double value = new Double(string);
|
||||||
if (value.toString().equals(string)) {
|
if (value.toString().equals(string)) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception ignoreAlso) {
|
||||||
catch (final Exception ignoreAlso) {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return string;
|
return string;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a well-formed (but not necessarily valid) XML string into a
|
* Convert a well-formed (but not necessarily valid) XML string into a JSONObject. Some information may be lost in
|
||||||
* JSONObject. Some information may be lost in this transformation
|
* this transformation because JSON is a data format and XML is a document format. XML uses elements, attributes,
|
||||||
* because JSON is a data format and XML is a document format. XML uses
|
* and content text, while JSON uses unordered collections of name/value pairs and arrays of values. JSON does not
|
||||||
* elements, attributes, and content text, while JSON uses unordered
|
* does not like to distinguish between elements and attributes. Sequences of similar elements are represented as
|
||||||
* collections of name/value pairs and arrays of values. JSON does not
|
* JSONArrays. Content text may be placed in a "content" member. Comments, prologs, DTDs, and <code><[ [
|
||||||
* does not like to distinguish between elements and attributes.
|
* ]]></code> are ignored.
|
||||||
* Sequences of similar elements are represented as JSONArrays. Content
|
*
|
||||||
* text may be placed in a "content" member. Comments, prologs, DTDs, and
|
* @param string The source string.
|
||||||
* <code><[ [ ]]></code> are ignored.
|
|
||||||
*
|
*
|
||||||
* @param string
|
|
||||||
* The source string.
|
|
||||||
* @return A JSONObject containing the structured data from the XML string.
|
* @return A JSONObject containing the structured data from the XML string.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static JSONObject toJSONObject(final String string) throws JSONException {
|
public static JSONObject toJSONObject(final String string) throws JSONException {
|
||||||
@ -382,9 +356,10 @@ public class XML {
|
|||||||
/**
|
/**
|
||||||
* Convert a JSONObject into a well-formed, element-normal XML string.
|
* Convert a JSONObject into a well-formed, element-normal XML string.
|
||||||
*
|
*
|
||||||
* @param object
|
* @param object A JSONObject.
|
||||||
* A JSONObject.
|
*
|
||||||
* @return A string.
|
* @return A string.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static String toString(final Object object) throws JSONException {
|
public static String toString(final Object object) throws JSONException {
|
||||||
@ -394,11 +369,11 @@ public class XML {
|
|||||||
/**
|
/**
|
||||||
* Convert a JSONObject into a well-formed, element-normal XML string.
|
* Convert a JSONObject into a well-formed, element-normal XML string.
|
||||||
*
|
*
|
||||||
* @param object
|
* @param object A JSONObject.
|
||||||
* A JSONObject.
|
* @param tagName The optional name of the enclosing tag.
|
||||||
* @param tagName
|
*
|
||||||
* The optional name of the enclosing tag.
|
|
||||||
* @return A string.
|
* @return A string.
|
||||||
|
*
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public static String toString(Object object, final String tagName) throws JSONException {
|
public static String toString(Object object, final String tagName) throws JSONException {
|
||||||
@ -445,15 +420,13 @@ public class XML {
|
|||||||
}
|
}
|
||||||
sb.append(escape(ja.get(i).toString()));
|
sb.append(escape(ja.get(i).toString()));
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sb.append(escape(value.toString()));
|
sb.append(escape(value.toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Emit an array of similar keys
|
// Emit an array of similar keys
|
||||||
|
|
||||||
}
|
} else if (value instanceof JSONArray) {
|
||||||
else if (value instanceof JSONArray) {
|
|
||||||
ja = (JSONArray) value;
|
ja = (JSONArray) value;
|
||||||
length = ja.length();
|
length = ja.length();
|
||||||
for (i = 0; i < length; i += 1) {
|
for (i = 0; i < length; i += 1) {
|
||||||
@ -466,21 +439,18 @@ public class XML {
|
|||||||
sb.append("</");
|
sb.append("</");
|
||||||
sb.append(key);
|
sb.append(key);
|
||||||
sb.append('>');
|
sb.append('>');
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sb.append(toString(value, key));
|
sb.append(toString(value, key));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else if ("".equals(value)) {
|
||||||
else if ("".equals(value)) {
|
|
||||||
sb.append('<');
|
sb.append('<');
|
||||||
sb.append(key);
|
sb.append(key);
|
||||||
sb.append("/>");
|
sb.append("/>");
|
||||||
|
|
||||||
// Emit a new tag <k>
|
// Emit a new tag <k>
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sb.append(toString(value, key));
|
sb.append(toString(value, key));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -498,8 +468,7 @@ public class XML {
|
|||||||
// a place
|
// a place
|
||||||
// where XML is lacking, synthesize an <array> element.
|
// where XML is lacking, synthesize an <array> element.
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (object.getClass().isArray()) {
|
if (object.getClass().isArray()) {
|
||||||
object = new JSONArray(object);
|
object = new JSONArray(object);
|
||||||
}
|
}
|
||||||
@ -510,8 +479,7 @@ public class XML {
|
|||||||
sb.append(toString(ja.opt(i), tagName == null ? "array" : tagName));
|
sb.append(toString(ja.opt(i), tagName == null ? "array" : tagName));
|
||||||
}
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
string = (object == null) ? "null" : escape(object.toString());
|
string = (object == null) ? "null" : escape(object.toString());
|
||||||
return (tagName == null) ? "\"" + string + "\"" : (string.length() == 0) ? "<" + tagName + "/>" : "<" + tagName + ">" + string + "</" + tagName + ">";
|
return (tagName == null) ? "\"" + string + "\"" : (string.length() == 0) ? "<" + tagName + "/>" : "<" + tagName + ">" + string + "</" + tagName + ">";
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,7 @@
|
|||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The XMLTokener extends the JSONTokener to provide additional methods
|
* The XMLTokener extends the JSONTokener to provide additional methods for the parsing of XML texts.
|
||||||
* for the parsing of XML texts.
|
|
||||||
*
|
*
|
||||||
* @author JSON.org
|
* @author JSON.org
|
||||||
* @version 2014-05-03
|
* @version 2014-05-03
|
||||||
@ -10,8 +9,7 @@ package com.intellectualcrafters.json;
|
|||||||
public class XMLTokener extends JSONTokener {
|
public class XMLTokener extends JSONTokener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The table of entity values. It initially contains Character values for
|
* The table of entity values. It initially contains Character values for amp, apos, gt, lt, quot.
|
||||||
* amp, apos, gt, lt, quot.
|
|
||||||
*/
|
*/
|
||||||
public static final java.util.HashMap<String, Character> entity;
|
public static final java.util.HashMap<String, Character> entity;
|
||||||
|
|
||||||
@ -27,8 +25,7 @@ public class XMLTokener extends JSONTokener {
|
|||||||
/**
|
/**
|
||||||
* Construct an XMLTokener from a string.
|
* Construct an XMLTokener from a string.
|
||||||
*
|
*
|
||||||
* @param s
|
* @param s A source string.
|
||||||
* A source string.
|
|
||||||
*/
|
*/
|
||||||
public XMLTokener(final String s) {
|
public XMLTokener(final String s) {
|
||||||
super(s);
|
super(s);
|
||||||
@ -38,8 +35,8 @@ public class XMLTokener extends JSONTokener {
|
|||||||
* Get the text in the CDATA block.
|
* Get the text in the CDATA block.
|
||||||
*
|
*
|
||||||
* @return The string up to the <code>]]></code>.
|
* @return The string up to the <code>]]></code>.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the <code>]]></code> is not found.
|
* @throws JSONException If the <code>]]></code> is not found.
|
||||||
*/
|
*/
|
||||||
public String nextCDATA() throws JSONException {
|
public String nextCDATA() throws JSONException {
|
||||||
char c;
|
char c;
|
||||||
@ -60,12 +57,11 @@ public class XMLTokener extends JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the next XML outer token, trimming whitespace. There are two kinds
|
* Get the next XML outer token, trimming whitespace. There are two kinds of tokens: the '<' character which begins
|
||||||
* of tokens: the '<' character which begins a markup tag, and the content
|
* a markup tag, and the content text between markup tags.
|
||||||
* text between markup tags.
|
*
|
||||||
|
* @return A string, or a '<' Character, or null if there is no more source text.
|
||||||
*
|
*
|
||||||
* @return A string, or a '<' Character, or null if there is no more
|
|
||||||
* source text.
|
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public Object nextContent() throws JSONException {
|
public Object nextContent() throws JSONException {
|
||||||
@ -73,8 +69,7 @@ public class XMLTokener extends JSONTokener {
|
|||||||
StringBuilder sb;
|
StringBuilder sb;
|
||||||
do {
|
do {
|
||||||
c = next();
|
c = next();
|
||||||
}
|
} while (Character.isWhitespace(c));
|
||||||
while (Character.isWhitespace(c));
|
|
||||||
if (c == 0) {
|
if (c == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -89,8 +84,7 @@ public class XMLTokener extends JSONTokener {
|
|||||||
}
|
}
|
||||||
if (c == '&') {
|
if (c == '&') {
|
||||||
sb.append(nextEntity(c));
|
sb.append(nextEntity(c));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sb.append(c);
|
sb.append(c);
|
||||||
}
|
}
|
||||||
c = next();
|
c = next();
|
||||||
@ -98,14 +92,14 @@ public class XMLTokener extends JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the next entity. These entities are translated to Characters:
|
* Return the next entity. These entities are translated to Characters: <code>& ' > <
|
||||||
* <code>& ' > < "</code>.
|
* "</code>.
|
||||||
|
*
|
||||||
|
* @param ampersand An ampersand character.
|
||||||
*
|
*
|
||||||
* @param ampersand
|
|
||||||
* An ampersand character.
|
|
||||||
* @return A Character or an entity String if the entity is not recognized.
|
* @return A Character or an entity String if the entity is not recognized.
|
||||||
* @throws JSONException
|
*
|
||||||
* If missing ';' in XML entity.
|
* @throws JSONException If missing ';' in XML entity.
|
||||||
*/
|
*/
|
||||||
public Object nextEntity(final char ampersand) throws JSONException {
|
public Object nextEntity(final char ampersand) throws JSONException {
|
||||||
final StringBuilder sb = new StringBuilder();
|
final StringBuilder sb = new StringBuilder();
|
||||||
@ -113,11 +107,9 @@ public class XMLTokener extends JSONTokener {
|
|||||||
final char c = next();
|
final char c = next();
|
||||||
if (Character.isLetterOrDigit(c) || (c == '#')) {
|
if (Character.isLetterOrDigit(c) || (c == '#')) {
|
||||||
sb.append(Character.toLowerCase(c));
|
sb.append(Character.toLowerCase(c));
|
||||||
}
|
} else if (c == ';') {
|
||||||
else if (c == ';') {
|
|
||||||
break;
|
break;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
throw syntaxError("Missing ';' in XML entity: &" + sb);
|
throw syntaxError("Missing ';' in XML entity: &" + sb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -127,24 +119,19 @@ public class XMLTokener extends JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the next XML meta token. This is used for skipping over <!...>
|
* Returns the next XML meta token. This is used for skipping over <!...> and <?...?> structures.
|
||||||
* and <?...?> structures.
|
|
||||||
*
|
*
|
||||||
* @return Syntax characters (<code>< > / = ! ?</code>) are returned as
|
* @return Syntax characters (<code>< > / = ! ?</code>) are returned as Character, and strings and names are
|
||||||
* Character, and strings and names are returned as Boolean. We
|
* returned as Boolean. We don't care what the values actually are.
|
||||||
* don't care
|
*
|
||||||
* what the values actually are.
|
* @throws JSONException If a string is not properly closed or if the XML is badly structured.
|
||||||
* @throws JSONException
|
|
||||||
* If a string is not properly closed or if the XML
|
|
||||||
* is badly structured.
|
|
||||||
*/
|
*/
|
||||||
public Object nextMeta() throws JSONException {
|
public Object nextMeta() throws JSONException {
|
||||||
char c;
|
char c;
|
||||||
char q;
|
char q;
|
||||||
do {
|
do {
|
||||||
c = next();
|
c = next();
|
||||||
}
|
} while (Character.isWhitespace(c));
|
||||||
while (Character.isWhitespace(c));
|
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 0:
|
case 0:
|
||||||
throw syntaxError("Misshaped meta tag");
|
throw syntaxError("Misshaped meta tag");
|
||||||
@ -196,14 +183,12 @@ public class XMLTokener extends JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the next XML Token. These tokens are found inside of angle
|
* Get the next XML Token. These tokens are found inside of angle brackets. It may be one of these characters:
|
||||||
* brackets. It may be one of these characters: <code>/ > = ! ?</code> or it
|
* <code>/ > = ! ?</code> or it may be a string wrapped in single quotes or double quotes, or it may be a name.
|
||||||
* may be a string wrapped in single quotes or double quotes, or it may be a
|
|
||||||
* name.
|
|
||||||
*
|
*
|
||||||
* @return a String or a Character.
|
* @return a String or a Character.
|
||||||
* @throws JSONException
|
*
|
||||||
* If the XML is not well formed.
|
* @throws JSONException If the XML is not well formed.
|
||||||
*/
|
*/
|
||||||
public Object nextToken() throws JSONException {
|
public Object nextToken() throws JSONException {
|
||||||
char c;
|
char c;
|
||||||
@ -211,8 +196,7 @@ public class XMLTokener extends JSONTokener {
|
|||||||
StringBuilder sb;
|
StringBuilder sb;
|
||||||
do {
|
do {
|
||||||
c = next();
|
c = next();
|
||||||
}
|
} while (Character.isWhitespace(c));
|
||||||
while (Character.isWhitespace(c));
|
|
||||||
switch (c) {
|
switch (c) {
|
||||||
case 0:
|
case 0:
|
||||||
throw syntaxError("Misshaped element");
|
throw syntaxError("Misshaped element");
|
||||||
@ -245,8 +229,7 @@ public class XMLTokener extends JSONTokener {
|
|||||||
}
|
}
|
||||||
if (c == '&') {
|
if (c == '&') {
|
||||||
sb.append(nextEntity(c));
|
sb.append(nextEntity(c));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sb.append(c);
|
sb.append(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -283,12 +266,11 @@ public class XMLTokener extends JSONTokener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Skip characters until past the requested string.
|
* Skip characters until past the requested string. If it is not found, we are left at the end of the source with a
|
||||||
* If it is not found, we are left at the end of the source with a result of
|
* result of false.
|
||||||
* false.
|
*
|
||||||
|
* @param to A string to skip past.
|
||||||
*
|
*
|
||||||
* @param to
|
|
||||||
* A string to skip past.
|
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public boolean skipPast(final String to) throws JSONException {
|
public boolean skipPast(final String to) throws JSONException {
|
||||||
|
@ -21,38 +21,31 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import java.io.File;
|
import com.intellectualcrafters.plot.commands.Auto;
|
||||||
import java.io.FileWriter;
|
import com.intellectualcrafters.plot.commands.MainCommand;
|
||||||
import java.io.IOException;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import java.sql.Connection;
|
import com.intellectualcrafters.plot.config.ConfigurationNode;
|
||||||
import java.sql.DatabaseMetaData;
|
import com.intellectualcrafters.plot.config.Settings;
|
||||||
import java.sql.ResultSet;
|
import com.intellectualcrafters.plot.database.*;
|
||||||
import java.sql.SQLException;
|
import com.intellectualcrafters.plot.events.PlayerTeleportToPlotEvent;
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.events.PlotDeleteEvent;
|
||||||
import java.util.Arrays;
|
import com.intellectualcrafters.plot.flag.AbstractFlag;
|
||||||
import java.util.Collection;
|
import com.intellectualcrafters.plot.flag.FlagManager;
|
||||||
import java.util.Date;
|
import com.intellectualcrafters.plot.generator.DefaultPlotManager;
|
||||||
import java.util.HashMap;
|
import com.intellectualcrafters.plot.generator.DefaultPlotWorld;
|
||||||
import java.util.HashSet;
|
import com.intellectualcrafters.plot.generator.WorldGenerator;
|
||||||
import java.util.LinkedHashMap;
|
import com.intellectualcrafters.plot.listeners.*;
|
||||||
import java.util.LinkedHashSet;
|
import com.intellectualcrafters.plot.object.*;
|
||||||
import java.util.List;
|
import com.intellectualcrafters.plot.util.*;
|
||||||
import java.util.Map;
|
import com.intellectualcrafters.plot.util.Logger.LogLevel;
|
||||||
import java.util.Map.Entry;
|
import com.intellectualcrafters.plot.uuid.OfflineUUIDWrapper;
|
||||||
import java.util.Set;
|
import com.intellectualcrafters.plot.uuid.PlotUUIDSaver;
|
||||||
import java.util.UUID;
|
import com.intellectualcrafters.plot.uuid.UUIDSaver;
|
||||||
import java.util.concurrent.TimeUnit;
|
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
||||||
|
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
||||||
import me.confuser.barapi.BarAPI;
|
import me.confuser.barapi.BarAPI;
|
||||||
import net.milkbowl.vault.economy.Economy;
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
import org.bukkit.*;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Chunk;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.command.PluginCommand;
|
import org.bukkit.command.PluginCommand;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
@ -61,51 +54,16 @@ import org.bukkit.generator.ChunkGenerator;
|
|||||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.commands.Auto;
|
import java.io.File;
|
||||||
import com.intellectualcrafters.plot.commands.MainCommand;
|
import java.io.FileWriter;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import java.io.IOException;
|
||||||
import com.intellectualcrafters.plot.config.ConfigurationNode;
|
import java.sql.Connection;
|
||||||
import com.intellectualcrafters.plot.config.Settings;
|
import java.sql.DatabaseMetaData;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import java.sql.ResultSet;
|
||||||
import com.intellectualcrafters.plot.database.MySQL;
|
import java.sql.SQLException;
|
||||||
import com.intellectualcrafters.plot.database.PlotMeConverter;
|
import java.util.*;
|
||||||
import com.intellectualcrafters.plot.database.SQLManager;
|
import java.util.Map.Entry;
|
||||||
import com.intellectualcrafters.plot.database.SQLite;
|
import java.util.concurrent.TimeUnit;
|
||||||
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.generator.DefaultPlotManager;
|
|
||||||
import com.intellectualcrafters.plot.generator.DefaultPlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.generator.WorldGenerator;
|
|
||||||
import com.intellectualcrafters.plot.listeners.EntityListener;
|
|
||||||
import com.intellectualcrafters.plot.listeners.ForceFieldListener;
|
|
||||||
import com.intellectualcrafters.plot.listeners.InventoryListener;
|
|
||||||
import com.intellectualcrafters.plot.listeners.PlayerEvents;
|
|
||||||
import com.intellectualcrafters.plot.listeners.PlotListener;
|
|
||||||
import com.intellectualcrafters.plot.listeners.PlotPlusListener;
|
|
||||||
import com.intellectualcrafters.plot.listeners.WorldEditListener;
|
|
||||||
import com.intellectualcrafters.plot.listeners.WorldGuardListener;
|
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
|
||||||
import com.intellectualcrafters.plot.object.PlotGenerator;
|
|
||||||
import com.intellectualcrafters.plot.object.PlotId;
|
|
||||||
import com.intellectualcrafters.plot.object.PlotManager;
|
|
||||||
import com.intellectualcrafters.plot.object.PlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.util.ConsoleColors;
|
|
||||||
import com.intellectualcrafters.plot.util.Lag;
|
|
||||||
import com.intellectualcrafters.plot.util.Logger;
|
|
||||||
import com.intellectualcrafters.plot.util.Logger.LogLevel;
|
|
||||||
import com.intellectualcrafters.plot.util.Metrics;
|
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.util.SendChunk;
|
|
||||||
import com.intellectualcrafters.plot.util.SetBlockFast;
|
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
|
||||||
import com.intellectualcrafters.plot.uuid.OfflineUUIDWrapper;
|
|
||||||
import com.intellectualcrafters.plot.uuid.PlotUUIDSaver;
|
|
||||||
import com.intellectualcrafters.plot.uuid.UUIDSaver;
|
|
||||||
import com.sk89q.worldedit.bukkit.WorldEditPlugin;
|
|
||||||
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PlotMain class.
|
* PlotMain class.
|
||||||
@ -113,8 +71,7 @@ import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
|
|||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
* @author Empire92
|
* @author Empire92
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused") public class PlotMain extends JavaPlugin {
|
||||||
public class PlotMain extends JavaPlugin {
|
|
||||||
private static PlotMain main = null;
|
private static PlotMain main = null;
|
||||||
/**
|
/**
|
||||||
* Permission that allows for "everything"
|
* Permission that allows for "everything"
|
||||||
@ -208,8 +165,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
*/
|
*/
|
||||||
private static MySQL mySQL;
|
private static MySQL mySQL;
|
||||||
/**
|
/**
|
||||||
* List of all plots
|
* List of all plots DO NOT USE EXCEPT FOR DATABASE PURPOSES
|
||||||
* DO NOT USE EXCEPT FOR DATABASE PURPOSES
|
|
||||||
*/
|
*/
|
||||||
private static LinkedHashMap<String, HashMap<PlotId, Plot>> plots;
|
private static LinkedHashMap<String, HashMap<PlotId, Plot>> plots;
|
||||||
|
|
||||||
@ -230,8 +186,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
checkExpired(plugin, true);
|
checkExpired(plugin, true);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -239,15 +194,12 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check a range of permissions e.g. 'plots.plot.<0-100>'<br>
|
* Check a range of permissions e.g. 'plots.plot.<0-100>'<br> Returns highest integer in range.
|
||||||
* Returns highest integer in range.
|
*
|
||||||
|
* @param player to check
|
||||||
|
* @param stub to check
|
||||||
|
* @param range tp check
|
||||||
*
|
*
|
||||||
* @param player
|
|
||||||
* to check
|
|
||||||
* @param stub
|
|
||||||
* to check
|
|
||||||
* @param range
|
|
||||||
* tp check
|
|
||||||
* @return permitted range
|
* @return permitted range
|
||||||
*/
|
*/
|
||||||
public static int hasPermissionRange(final Player player, final String stub, final int range) {
|
public static int hasPermissionRange(final Player player, final String stub, final int range) {
|
||||||
@ -266,14 +218,11 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check a player for a permission<br>
|
* Check a player for a permission<br> - Op has all permissions <br> - checks for '*' nodes
|
||||||
* - Op has all permissions <br>
|
*
|
||||||
* - checks for '*' nodes
|
* @param player to check
|
||||||
|
* @param perms to check
|
||||||
*
|
*
|
||||||
* @param player
|
|
||||||
* to check
|
|
||||||
* @param perms
|
|
||||||
* to check
|
|
||||||
* @return true of player has permissions
|
* @return true of player has permissions
|
||||||
*/
|
*/
|
||||||
public static boolean hasPermissions(final Player player, final String[] perms) {
|
public static boolean hasPermissions(final Player player, final String[] perms) {
|
||||||
@ -285,8 +234,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
boolean permitted = false;
|
boolean permitted = false;
|
||||||
if (player.hasPermission(perm)) {
|
if (player.hasPermission(perm)) {
|
||||||
permitted = true;
|
permitted = true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
final String[] nodes = perm.split("\\.");
|
final String[] nodes = perm.split("\\.");
|
||||||
final StringBuilder n = new StringBuilder();
|
final StringBuilder n = new StringBuilder();
|
||||||
for (int i = 0; i < (nodes.length - 1); i++) {
|
for (int i = 0; i < (nodes.length - 1); i++) {
|
||||||
@ -309,6 +257,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
* Get the uuid saver
|
* Get the uuid saver
|
||||||
*
|
*
|
||||||
* @return uuid saver
|
* @return uuid saver
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.uuid.UUIDSaver;
|
* @see com.intellectualcrafters.plot.uuid.UUIDSaver;
|
||||||
*/
|
*/
|
||||||
public static UUIDSaver getUUIDSaver() {
|
public static UUIDSaver getUUIDSaver() {
|
||||||
@ -318,8 +267,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Set the uuid saver
|
* Set the uuid saver
|
||||||
*
|
*
|
||||||
* @param saver
|
* @param saver new saver
|
||||||
* new saver
|
*
|
||||||
* @see com.intellectualcrafters.plot.uuid.UUIDSaver
|
* @see com.intellectualcrafters.plot.uuid.UUIDSaver
|
||||||
*/
|
*/
|
||||||
public static void setUUIDSaver(final UUIDSaver saver) {
|
public static void setUUIDSaver(final UUIDSaver saver) {
|
||||||
@ -327,14 +276,11 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check a player for a permission<br>
|
* Check a player for a permission<br> - Op has all permissions <br> - checks for '*' nodes
|
||||||
* - Op has all permissions <br>
|
*
|
||||||
* - checks for '*' nodes
|
* @param player to check
|
||||||
|
* @param perm to check
|
||||||
*
|
*
|
||||||
* @param player
|
|
||||||
* to check
|
|
||||||
* @param perm
|
|
||||||
* to check
|
|
||||||
* @return true if player has the permission
|
* @return true if player has the permission
|
||||||
*/
|
*/
|
||||||
public static boolean hasPermission(final Player player, final String perm) {
|
public static boolean hasPermission(final Player player, final String perm) {
|
||||||
@ -383,8 +329,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param player
|
* @param player player
|
||||||
* player
|
*
|
||||||
* @return Set Containing the players plots
|
* @return Set Containing the players plots
|
||||||
*/
|
*/
|
||||||
public static Set<Plot> getPlots(final Player player) {
|
public static Set<Plot> getPlots(final Player player) {
|
||||||
@ -403,10 +349,9 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param world
|
* @param world plot world
|
||||||
* plot world
|
* @param player plot owner
|
||||||
* @param player
|
*
|
||||||
* plot owner
|
|
||||||
* @return players plots
|
* @return players plots
|
||||||
*/
|
*/
|
||||||
public static Set<Plot> getPlots(final World world, final Player player) {
|
public static Set<Plot> getPlots(final World world, final Player player) {
|
||||||
@ -425,8 +370,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Get plots for the specified world
|
* Get plots for the specified world
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world A world, in which you want to search for plots
|
||||||
* A world, in which you want to search for plots
|
*
|
||||||
* @return HashMap containing Plot IDs and Plot Objects
|
* @return HashMap containing Plot IDs and Plot Objects
|
||||||
*/
|
*/
|
||||||
public static HashMap<PlotId, Plot> getPlots(final String world) {
|
public static HashMap<PlotId, Plot> getPlots(final String world) {
|
||||||
@ -437,8 +382,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param world
|
* @param world plot world
|
||||||
* plot world
|
*
|
||||||
* @return plots in world
|
* @return plots in world
|
||||||
*/
|
*/
|
||||||
public static HashMap<PlotId, Plot> getPlots(final World world) {
|
public static HashMap<PlotId, Plot> getPlots(final World world) {
|
||||||
@ -465,8 +410,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param world
|
* @param world plotworld(?)
|
||||||
* plotworld(?)
|
*
|
||||||
* @return true if the world is a plotworld
|
* @return true if the world is a plotworld
|
||||||
*/
|
*/
|
||||||
public static boolean isPlotWorld(final World world) {
|
public static boolean isPlotWorld(final World world) {
|
||||||
@ -474,8 +419,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param world
|
* @param world plotworld(?)
|
||||||
* plotworld(?)
|
*
|
||||||
* @return true if the world is a plotworld
|
* @return true if the world is a plotworld
|
||||||
*/
|
*/
|
||||||
public static boolean isPlotWorld(final String world) {
|
public static boolean isPlotWorld(final String world) {
|
||||||
@ -483,8 +428,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param world
|
* @param world World to get manager for
|
||||||
* World to get manager for
|
*
|
||||||
* @return manager for world
|
* @return manager for world
|
||||||
*/
|
*/
|
||||||
public static PlotManager getPlotManager(final World world) {
|
public static PlotManager getPlotManager(final World world) {
|
||||||
@ -495,8 +440,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param world
|
* @param world world
|
||||||
* world
|
*
|
||||||
* @return PlotManager
|
* @return PlotManager
|
||||||
*/
|
*/
|
||||||
public static PlotManager getPlotManager(final String world) {
|
public static PlotManager getPlotManager(final String world) {
|
||||||
@ -507,8 +452,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param world
|
* @param world to search
|
||||||
* to search
|
*
|
||||||
* @return PlotWorld object
|
* @return PlotWorld object
|
||||||
*/
|
*/
|
||||||
public static PlotWorld getWorldSettings(final World world) {
|
public static PlotWorld getWorldSettings(final World world) {
|
||||||
@ -519,8 +464,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param world
|
* @param world to search
|
||||||
* to search
|
*
|
||||||
* @return PlotWorld object
|
* @return PlotWorld object
|
||||||
*/
|
*/
|
||||||
public static PlotWorld getWorldSettings(final String world) {
|
public static PlotWorld getWorldSettings(final String world) {
|
||||||
@ -531,8 +476,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param world
|
* @param world world to search
|
||||||
* world to search
|
*
|
||||||
* @return set containing the plots for a world
|
* @return set containing the plots for a world
|
||||||
*/
|
*/
|
||||||
public static Plot[] getWorldPlots(final World world) {
|
public static Plot[] getWorldPlots(final World world) {
|
||||||
@ -543,12 +488,10 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Remove a plot
|
* Remove a plot
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world The Plot World
|
||||||
* The Plot World
|
* @param id The Plot ID
|
||||||
* @param id
|
* @param callEvent Whether or not to call the PlotDeleteEvent
|
||||||
* The Plot ID
|
*
|
||||||
* @param callEvent
|
|
||||||
* Whether or not to call the PlotDeleteEvent
|
|
||||||
* @return true if successful, false if not
|
* @return true if successful, false if not
|
||||||
*/
|
*/
|
||||||
public static boolean removePlot(final String world, final PlotId id, final boolean callEvent) {
|
public static boolean removePlot(final String world, final PlotId id, final boolean callEvent) {
|
||||||
@ -567,8 +510,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Replace the plot object with an updated version
|
* Replace the plot object with an updated version
|
||||||
*
|
*
|
||||||
* @param plot
|
* @param plot plot object
|
||||||
* plot object
|
|
||||||
*/
|
*/
|
||||||
public static void updatePlot(final Plot plot) {
|
public static void updatePlot(final Plot plot) {
|
||||||
final String world = plot.world;
|
final String world = plot.world;
|
||||||
@ -580,30 +522,16 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TODO: <b>Implement better system The whole point of this system is to
|
* TODO: <b>Implement better system The whole point of this system is to recycle old plots</b> <br> So why not just
|
||||||
* recycle old plots</b> <br>
|
* allow users to claim old plots, and try to hide the fact that the are owned. <br> <br> Reduce amount of expired
|
||||||
* So why not just allow users to claim old plots, and try to hide the fact
|
* plots: <br> - On /plot <br> auto<br> - allow claiming of old plot, clear it so the user doesn't know<br> - On
|
||||||
* that the are owned. <br>
|
* /plot info,<br> - show that the plot is expired and allowed to be claimed Have the task run less often:<br> - Run
|
||||||
* <br>
|
* the task when there are very little, or no players online (great for small servers)<br> - Run the task at startup
|
||||||
* Reduce amount of expired plots: <br>
|
* (also only useful for small servers)<br> Also, in terms of faster code:<br> - Have an array of plots, sorted by
|
||||||
* - On /plot <br>
|
* expiry time.<br> - Add new plots to the end.<br> - The task then only needs to go through the first few plots
|
||||||
* auto<br>
|
|
||||||
* - allow claiming of old plot, clear it so the user doesn't know<br>
|
|
||||||
* - On /plot info,<br>
|
|
||||||
* - show that the plot is expired and allowed to be claimed Have the task
|
|
||||||
* run less often:<br>
|
|
||||||
* - Run the task when there are very little, or no players online (great
|
|
||||||
* for small servers)<br>
|
|
||||||
* - Run the task at startup (also only useful for small servers)<br>
|
|
||||||
* Also, in terms of faster code:<br>
|
|
||||||
* - Have an array of plots, sorted by expiry time.<br>
|
|
||||||
* - Add new plots to the end.<br>
|
|
||||||
* - The task then only needs to go through the first few plots
|
|
||||||
*
|
*
|
||||||
* @param plugin
|
* @param plugin Plugin
|
||||||
* Plugin
|
* @param async Call async?
|
||||||
* @param async
|
|
||||||
* Call async?
|
|
||||||
*/
|
*/
|
||||||
private static void checkExpired(final JavaPlugin plugin, final boolean async) {
|
private static void checkExpired(final JavaPlugin plugin, final boolean async) {
|
||||||
if (async) {
|
if (async) {
|
||||||
@ -629,8 +557,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
toDeletePlot.add(plot);
|
toDeletePlot.add(plot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -649,8 +576,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
for (final String world : getPlotWorldsString()) {
|
for (final String world : getPlotWorldsString()) {
|
||||||
if (PlotMain.plots.containsKey(world)) {
|
if (PlotMain.plots.containsKey(world)) {
|
||||||
for (final Plot plot : PlotMain.plots.get(world).values()) {
|
for (final Plot plot : PlotMain.plots.get(world).values()) {
|
||||||
@ -659,8 +585,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
if (event.isCancelled()) {
|
if (event.isCancelled()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
DBFunc.delete(world, plot);
|
DBFunc.delete(world, plot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -691,14 +616,12 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Send a message to the console.
|
* Send a message to the console.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string message
|
||||||
* message
|
|
||||||
*/
|
*/
|
||||||
public static void sendConsoleSenderMessage(final String string) {
|
public static void sendConsoleSenderMessage(final String string) {
|
||||||
if (getMain().getServer().getConsoleSender() == null) {
|
if (getMain().getServer().getConsoleSender() == null) {
|
||||||
System.out.println(ChatColor.stripColor(ConsoleColors.fromString(string)));
|
System.out.println(ChatColor.stripColor(ConsoleColors.fromString(string)));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
getMain().getServer().getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', string));
|
getMain().getServer().getConsoleSender().sendMessage(ChatColor.translateAlternateColorCodes('&', string));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -706,12 +629,10 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Teleport a player to a plot
|
* Teleport a player to a plot
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player to teleport
|
||||||
* Player to teleport
|
* @param from Previous Location
|
||||||
* @param from
|
* @param plot Plot to teleport to
|
||||||
* Previous Location
|
*
|
||||||
* @param plot
|
|
||||||
* Plot to teleport to
|
|
||||||
* @return true if successful
|
* @return true if successful
|
||||||
*/
|
*/
|
||||||
public static boolean teleportPlayer(final Player player, final Location from, final Plot plot) {
|
public static boolean teleportPlayer(final Player player, final Location from, final Plot plot) {
|
||||||
@ -732,8 +653,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Send a message to the console
|
* Send a message to the console
|
||||||
*
|
*
|
||||||
* @param c
|
* @param c message
|
||||||
* message
|
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public static void sendConsoleSenderMessage(final C c) {
|
public static void sendConsoleSenderMessage(final C c) {
|
||||||
@ -743,8 +663,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Broadcast publicly
|
* Broadcast publicly
|
||||||
*
|
*
|
||||||
* @param c
|
* @param c message
|
||||||
* message
|
|
||||||
*/
|
*/
|
||||||
public static void Broadcast(final C c) {
|
public static void Broadcast(final C c) {
|
||||||
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', C.PREFIX.s() + c.s()));
|
Bukkit.broadcastMessage(ChatColor.translateAlternateColorCodes('&', C.PREFIX.s() + c.s()));
|
||||||
@ -762,8 +681,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Broadcast a message to all admins
|
* Broadcast a message to all admins
|
||||||
*
|
*
|
||||||
* @param c
|
* @param c message
|
||||||
* message
|
|
||||||
*/
|
*/
|
||||||
public static void BroadcastWithPerms(final C c) {
|
public static void BroadcastWithPerms(final C c) {
|
||||||
for (final Player player : Bukkit.getOnlinePlayers()) {
|
for (final Player player : Bukkit.getOnlinePlayers()) {
|
||||||
@ -786,8 +704,8 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Ge the last played time
|
* Ge the last played time
|
||||||
*
|
*
|
||||||
* @param uuid
|
* @param uuid UUID for the player
|
||||||
* UUID for the player
|
*
|
||||||
* @return last play time as a long
|
* @return last play time as a long
|
||||||
*/
|
*/
|
||||||
public static long getLastPlayed(final UUID uuid) {
|
public static long getLastPlayed(final UUID uuid) {
|
||||||
@ -819,8 +737,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
config = YamlConfiguration.loadConfiguration(configFile);
|
config = YamlConfiguration.loadConfiguration(configFile);
|
||||||
setupConfig();
|
setupConfig();
|
||||||
}
|
} catch (final Exception err_trans) {
|
||||||
catch (final Exception err_trans) {
|
|
||||||
Logger.add(LogLevel.DANGER, "Failed to save settings.yml");
|
Logger.add(LogLevel.DANGER, "Failed to save settings.yml");
|
||||||
System.out.println("Failed to save settings.yml");
|
System.out.println("Failed to save settings.yml");
|
||||||
}
|
}
|
||||||
@ -833,16 +750,14 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
storage = YamlConfiguration.loadConfiguration(storageFile);
|
storage = YamlConfiguration.loadConfiguration(storageFile);
|
||||||
setupStorage();
|
setupStorage();
|
||||||
}
|
} catch (final Exception err_trans) {
|
||||||
catch (final Exception err_trans) {
|
|
||||||
Logger.add(LogLevel.DANGER, "Failed to save storage.yml");
|
Logger.add(LogLevel.DANGER, "Failed to save storage.yml");
|
||||||
System.out.println("Failed to save storage.yml");
|
System.out.println("Failed to save storage.yml");
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
config.save(configFile);
|
config.save(configFile);
|
||||||
storage.save(storageFile);
|
storage.save(storageFile);
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
Logger.add(LogLevel.DANGER, "Configuration file saving failed");
|
Logger.add(LogLevel.DANGER, "Configuration file saving failed");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -977,11 +892,9 @@ public class PlotMain extends JavaPlugin {
|
|||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (final Throwable e) {
|
||||||
catch (final Throwable e) {
|
|
||||||
++this.error;
|
++this.error;
|
||||||
}
|
} finally {
|
||||||
finally {
|
|
||||||
++this.ticked;
|
++this.ticked;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1049,8 +962,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Create a plotworld config section
|
* Create a plotworld config section
|
||||||
*
|
*
|
||||||
* @param plotworld
|
* @param plotworld World to create the section for
|
||||||
* World to create the section for
|
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public static void createConfiguration(final PlotWorld plotworld) {
|
public static void createConfiguration(final PlotWorld plotworld) {
|
||||||
@ -1068,8 +980,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
config.save(PlotMain.configFile);
|
config.save(PlotMain.configFile);
|
||||||
}
|
} catch (final IOException e) {
|
||||||
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");
|
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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1105,15 +1016,13 @@ public class PlotMain extends JavaPlugin {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
config.save(configFile);
|
config.save(configFile);
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now add it
|
// Now add it
|
||||||
addPlotWorld(world, plotWorld, plotManager);
|
addPlotWorld(world, plotWorld, plotManager);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (worlds.contains(world)) {
|
if (worlds.contains(world)) {
|
||||||
sendConsoleSenderMessage("&cWorld '" + world + "' in settings.yml is not using PlotSquared generator!");
|
sendConsoleSenderMessage("&cWorld '" + world + "' in settings.yml is not using PlotSquared generator!");
|
||||||
|
|
||||||
@ -1129,8 +1038,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
config.save(configFile);
|
config.save(configFile);
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1141,13 +1049,11 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds an external world as a recognized PlotSquared world - The PlotWorld
|
* Adds an external world as a recognized PlotSquared world - The PlotWorld class created is based off the
|
||||||
* class created is based off the configuration in the settings.yml - Do not
|
* configuration in the settings.yml - Do not use this method unless the required world is preconfigured in the
|
||||||
* use this method unless the required world is preconfigured in the
|
|
||||||
* settings.yml
|
* settings.yml
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world to load
|
||||||
* to load
|
|
||||||
*/
|
*/
|
||||||
public static void loadWorld(final World world) {
|
public static void loadWorld(final World world) {
|
||||||
if (world == null) {
|
if (world == null) {
|
||||||
@ -1207,17 +1113,14 @@ public class PlotMain extends JavaPlugin {
|
|||||||
seconds = 1;
|
seconds = 1;
|
||||||
try {
|
try {
|
||||||
amount = Integer.parseInt(values[0]);
|
amount = Integer.parseInt(values[0]);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
try {
|
try {
|
||||||
amount = Integer.parseInt(values[0]);
|
amount = Integer.parseInt(values[0]);
|
||||||
seconds = Integer.parseInt(values[1]);
|
seconds = Integer.parseInt(values[1]);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1344,8 +1247,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
public String parseValue(final String value) {
|
public String parseValue(final String value) {
|
||||||
try {
|
try {
|
||||||
return Long.parseLong(value) + "";
|
return Long.parseLong(value) + "";
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1383,12 +1285,9 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Add a Plot world
|
* Add a Plot world
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World to add
|
||||||
* World to add
|
* @param plotworld PlotWorld Object
|
||||||
* @param plotworld
|
* @param manager Plot Manager for the new world
|
||||||
* PlotWorld Object
|
|
||||||
* @param manager
|
|
||||||
* Plot Manager for the new world
|
|
||||||
*/
|
*/
|
||||||
public static void addPlotWorld(final String world, final PlotWorld plotworld, final PlotManager manager) {
|
public static void addPlotWorld(final String world, final PlotWorld plotworld, final PlotManager manager) {
|
||||||
worlds.put(world, plotworld);
|
worlds.put(world, plotworld);
|
||||||
@ -1401,8 +1300,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Remove a plot world
|
* Remove a plot world
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World to remove
|
||||||
* World to remove
|
|
||||||
*/
|
*/
|
||||||
public static void removePlotWorld(final String world) {
|
public static void removePlotWorld(final String world) {
|
||||||
plots.remove(world);
|
plots.remove(world);
|
||||||
@ -1422,8 +1320,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Set all plots
|
* Set all plots
|
||||||
*
|
*
|
||||||
* @param plots
|
* @param plots New Plot LinkedHashMap
|
||||||
* New Plot LinkedHashMap
|
|
||||||
*/
|
*/
|
||||||
public static void setAllPlotsRaw(final LinkedHashMap<String, HashMap<PlotId, Plot>> plots) {
|
public static void setAllPlotsRaw(final LinkedHashMap<String, HashMap<PlotId, Plot>> plots) {
|
||||||
PlotMain.plots = plots;
|
PlotMain.plots = plots;
|
||||||
@ -1432,8 +1329,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
/**
|
/**
|
||||||
* Set all plots
|
* Set all plots
|
||||||
*
|
*
|
||||||
* @param plots
|
* @param plots New Plot HashMap
|
||||||
* New Plot HashMap
|
|
||||||
*/
|
*/
|
||||||
public static void setAllPlotsRaw(final HashMap<String, HashMap<PlotId, Plot>> plots) {
|
public static void setAllPlotsRaw(final HashMap<String, HashMap<PlotId, Plot>> plots) {
|
||||||
PlotMain.plots = new LinkedHashMap<>(plots);
|
PlotMain.plots = new LinkedHashMap<>(plots);
|
||||||
@ -1465,8 +1361,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
writer.write("Created at: " + new Date().toString() + "\n\n\n");
|
writer.write("Created at: " + new Date().toString() + "\n\n\n");
|
||||||
writer.close();
|
writer.close();
|
||||||
}
|
}
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -1493,8 +1388,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
sendConsoleSenderMessage(C.PREFIX.s() + "&cURL: &6https://java.com/en/download/index.jsp");
|
sendConsoleSenderMessage(C.PREFIX.s() + "&cURL: &6https://java.com/en/download/index.jsp");
|
||||||
Bukkit.getPluginManager().disablePlugin(this);
|
Bukkit.getPluginManager().disablePlugin(this);
|
||||||
return;
|
return;
|
||||||
}
|
} else if (getJavaVersion() < 1.8) {
|
||||||
else if (getJavaVersion() < 1.8) {
|
|
||||||
sendConsoleSenderMessage(C.PREFIX.s() + "&cIt's really recommended to run Java 1.8, as it increases performance");
|
sendConsoleSenderMessage(C.PREFIX.s() + "&cIt's really recommended to run Java 1.8, as it increases performance");
|
||||||
}
|
}
|
||||||
// Setup configuration
|
// Setup configuration
|
||||||
@ -1505,12 +1399,10 @@ public class PlotMain extends JavaPlugin {
|
|||||||
final Metrics metrics = new Metrics(this);
|
final Metrics metrics = new Metrics(this);
|
||||||
metrics.start();
|
metrics.start();
|
||||||
sendConsoleSenderMessage(C.PREFIX.s() + "&6Metrics enabled.");
|
sendConsoleSenderMessage(C.PREFIX.s() + "&6Metrics enabled.");
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
sendConsoleSenderMessage(C.PREFIX.s() + "&cFailed to load up metrics.");
|
sendConsoleSenderMessage(C.PREFIX.s() + "&cFailed to load up metrics.");
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// We should at least make them feel bad.
|
// We should at least make them feel bad.
|
||||||
sendConsoleSenderMessage("Using metrics will allow us to improve the plugin\nPlease consider it :)");
|
sendConsoleSenderMessage("Using metrics will allow us to improve the plugin\nPlease consider it :)");
|
||||||
}
|
}
|
||||||
@ -1538,8 +1430,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
ResultSet res = meta.getTables(null, null, Settings.DB.PREFIX + "plot", null);
|
ResultSet res = meta.getTables(null, null, Settings.DB.PREFIX + "plot", null);
|
||||||
if (!res.next()) {
|
if (!res.next()) {
|
||||||
DBFunc.createTables("mysql", true);
|
DBFunc.createTables("mysql", true);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
for (final String table : tables) {
|
for (final String table : tables) {
|
||||||
res = meta.getTables(null, null, Settings.DB.PREFIX + table, null);
|
res = meta.getTables(null, null, Settings.DB.PREFIX + table, null);
|
||||||
if (!res.next()) {
|
if (!res.next()) {
|
||||||
@ -1549,8 +1440,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
// We should not repeat our self :P
|
// We should not repeat our self :P
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
Logger.add(LogLevel.DANGER, "MySQL connection failed.");
|
Logger.add(LogLevel.DANGER, "MySQL connection failed.");
|
||||||
sendConsoleSenderMessage("&c[Plots] MySQL is not setup correctly. The plugin will disable itself.");
|
sendConsoleSenderMessage("&c[Plots] MySQL is not setup correctly. The plugin will disable itself.");
|
||||||
if ((config == null) || config.getBoolean("debug")) {
|
if ((config == null) || config.getBoolean("debug")) {
|
||||||
@ -1568,8 +1458,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
else if (Settings.DB.USE_MONGO) {
|
else if (Settings.DB.USE_MONGO) {
|
||||||
// DBFunc.dbManager = new MongoManager();
|
// DBFunc.dbManager = new MongoManager();
|
||||||
sendConsoleSenderMessage(C.PREFIX.s() + "MongoDB is not yet implemented");
|
sendConsoleSenderMessage(C.PREFIX.s() + "MongoDB is not yet implemented");
|
||||||
}
|
} else if (Settings.DB.USE_SQLITE) {
|
||||||
else if (Settings.DB.USE_SQLITE) {
|
|
||||||
try {
|
try {
|
||||||
connection = new SQLite(this, Settings.DB.SQLITE_DB + ".db").openConnection();
|
connection = new SQLite(this, Settings.DB.SQLITE_DB + ".db").openConnection();
|
||||||
{
|
{
|
||||||
@ -1578,8 +1467,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
ResultSet res = meta.getTables(null, null, Settings.DB.PREFIX + "plot", null);
|
ResultSet res = meta.getTables(null, null, Settings.DB.PREFIX + "plot", null);
|
||||||
if (!res.next()) {
|
if (!res.next()) {
|
||||||
DBFunc.createTables("sqlite", true);
|
DBFunc.createTables("sqlite", true);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
for (final String table : tables) {
|
for (final String table : tables) {
|
||||||
res = meta.getTables(null, null, Settings.DB.PREFIX + table, null);
|
res = meta.getTables(null, null, Settings.DB.PREFIX + table, null);
|
||||||
if (!res.next()) {
|
if (!res.next()) {
|
||||||
@ -1588,8 +1476,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
Logger.add(LogLevel.DANGER, "SQLite connection failed");
|
Logger.add(LogLevel.DANGER, "SQLite connection failed");
|
||||||
sendConsoleSenderMessage(C.PREFIX.s() + "&cFailed to open SQLite connection. The plugin will disable itself.");
|
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 ===");
|
sendConsoleSenderMessage("&9==== Here is an ugly stacktrace, if you are interested in those things ===");
|
||||||
@ -1598,8 +1485,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
plots = DBFunc.getPlots();
|
plots = DBFunc.getPlots();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Logger.add(LogLevel.DANGER, "No storage type is set.");
|
Logger.add(LogLevel.DANGER, "No storage type is set.");
|
||||||
sendConsoleSenderMessage(C.PREFIX + "&cNo storage type is set!");
|
sendConsoleSenderMessage(C.PREFIX + "&cNo storage type is set!");
|
||||||
getServer().getPluginManager().disablePlugin(this);
|
getServer().getPluginManager().disablePlugin(this);
|
||||||
@ -1612,8 +1498,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
if (getServer().getPluginManager().getPlugin("PlotMe") != null) {
|
if (getServer().getPluginManager().getPlugin("PlotMe") != null) {
|
||||||
try {
|
try {
|
||||||
new PlotMeConverter(this).runAsync();
|
new PlotMeConverter(this).runAsync();
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1653,8 +1538,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
PlotMain.sendConsoleSenderMessage("&cThis version of WorldEdit does not support PlotSquared.");
|
PlotMain.sendConsoleSenderMessage("&cThis version of WorldEdit does not support PlotSquared.");
|
||||||
PlotMain.sendConsoleSenderMessage("&cPlease use WorldEdit 6+");
|
PlotMain.sendConsoleSenderMessage("&cPlease use WorldEdit 6+");
|
||||||
PlotMain.sendConsoleSenderMessage("&c - http://builds.enginehub.org/job/worldedit");
|
PlotMain.sendConsoleSenderMessage("&c - http://builds.enginehub.org/job/worldedit");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
getServer().getPluginManager().registerEvents(new WorldEditListener(), this);
|
getServer().getPluginManager().registerEvents(new WorldEditListener(), this);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1688,16 +1572,14 @@ public class PlotMain extends JavaPlugin {
|
|||||||
try {
|
try {
|
||||||
new SetBlockFast();
|
new SetBlockFast();
|
||||||
PlotHelper.canSetFast = true;
|
PlotHelper.canSetFast = true;
|
||||||
}
|
} catch (final Throwable e) {
|
||||||
catch (final Throwable e) {
|
|
||||||
PlotHelper.canSetFast = false;
|
PlotHelper.canSetFast = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
new SendChunk();
|
new SendChunk();
|
||||||
PlotHelper.canSendChunk = true;
|
PlotHelper.canSendChunk = true;
|
||||||
}
|
} catch (final Throwable e) {
|
||||||
catch (final Throwable e) {
|
|
||||||
PlotHelper.canSendChunk = false;
|
PlotHelper.canSendChunk = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1727,8 +1609,7 @@ public class PlotMain extends JavaPlugin {
|
|||||||
final public void onDisable() {
|
final public void onDisable() {
|
||||||
try {
|
try {
|
||||||
C.saveTranslations();
|
C.saveTranslations();
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
sendConsoleSenderMessage("Failed to save translations");
|
sendConsoleSenderMessage("Failed to save translations");
|
||||||
Logger.add(LogLevel.DANGER, "Failed to save translations");
|
Logger.add(LogLevel.DANGER, "Failed to save translations");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -1736,15 +1617,13 @@ public class PlotMain extends JavaPlugin {
|
|||||||
Logger.add(LogLevel.GENERAL, "Logger disabled");
|
Logger.add(LogLevel.GENERAL, "Logger disabled");
|
||||||
try {
|
try {
|
||||||
Logger.write();
|
Logger.write();
|
||||||
}
|
} catch (final IOException e1) {
|
||||||
catch (final IOException e1) {
|
|
||||||
e1.printStackTrace();
|
e1.printStackTrace();
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
connection.close();
|
connection.close();
|
||||||
mySQL.closeConnection();
|
mySQL.closeConnection();
|
||||||
}
|
} catch (NullPointerException | SQLException e) {
|
||||||
catch (NullPointerException | SQLException e) {
|
|
||||||
if (connection != null) {
|
if (connection != null) {
|
||||||
Logger.add(LogLevel.DANGER, "Could not close mysql connection");
|
Logger.add(LogLevel.DANGER, "Could not close mysql connection");
|
||||||
}
|
}
|
||||||
|
@ -21,16 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.api;
|
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.PlotMain;
|
||||||
import com.intellectualcrafters.plot.commands.MainCommand;
|
import com.intellectualcrafters.plot.commands.MainCommand;
|
||||||
import com.intellectualcrafters.plot.commands.SubCommand;
|
import com.intellectualcrafters.plot.commands.SubCommand;
|
||||||
@ -41,29 +31,31 @@ import com.intellectualcrafters.plot.object.Plot;
|
|||||||
import com.intellectualcrafters.plot.object.PlotId;
|
import com.intellectualcrafters.plot.object.PlotId;
|
||||||
import com.intellectualcrafters.plot.object.PlotManager;
|
import com.intellectualcrafters.plot.object.PlotManager;
|
||||||
import com.intellectualcrafters.plot.object.PlotWorld;
|
import com.intellectualcrafters.plot.object.PlotWorld;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.*;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.util.PlotSquaredException;
|
|
||||||
import com.intellectualcrafters.plot.util.SchematicHandler;
|
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
|
||||||
import com.sun.istack.internal.NotNull;
|
import com.sun.istack.internal.NotNull;
|
||||||
|
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 java.util.ArrayList;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PlotSquared API
|
* PlotSquared API
|
||||||
*
|
*
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
* @author Empire92
|
* @author Empire92
|
||||||
*
|
|
||||||
* @version API 2.0
|
* @version API 2.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused") public class PlotAPI {
|
||||||
public class PlotAPI {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Permission that allows for admin access,
|
* Permission that allows for admin access, this permission node will allow the player to use any part of the
|
||||||
* this permission node will allow the player
|
* plugin, without limitations.
|
||||||
* to use any part of the plugin, without limitations.
|
|
||||||
*/
|
*/
|
||||||
public static final String ADMIN_PERMISSION = "plots.admin";
|
public static final String ADMIN_PERMISSION = "plots.admin";
|
||||||
|
|
||||||
@ -78,7 +70,7 @@ public class PlotAPI {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Player Functions
|
* Player Functions
|
||||||
*
|
* <p/>
|
||||||
* General functions involving players, and plot worlds
|
* General functions involving players, and plot worlds
|
||||||
*
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.PlayerFunctions
|
* @see com.intellectualcrafters.plot.util.PlayerFunctions
|
||||||
@ -87,7 +79,7 @@ public class PlotAPI {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Flag Manager
|
* Flag Manager
|
||||||
*
|
* <p/>
|
||||||
* The manager which handles all flags
|
* The manager which handles all flags
|
||||||
*
|
*
|
||||||
* @see com.intellectualcrafters.plot.flag.FlagManager
|
* @see com.intellectualcrafters.plot.flag.FlagManager
|
||||||
@ -96,7 +88,7 @@ public class PlotAPI {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Schematic Handler
|
* Schematic Handler
|
||||||
*
|
* <p/>
|
||||||
* The handler which is used to create, and paste, schematics
|
* The handler which is used to create, and paste, schematics
|
||||||
*
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.SchematicHandler
|
* @see com.intellectualcrafters.plot.util.SchematicHandler
|
||||||
@ -112,7 +104,7 @@ public class PlotAPI {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* PlotMain instance
|
* PlotMain instance
|
||||||
*
|
* <p/>
|
||||||
* This is the instance that allows for most methods to be used.
|
* This is the instance that allows for most methods to be used.
|
||||||
*
|
*
|
||||||
* @see com.intellectualcrafters.plot.PlotMain
|
* @see com.intellectualcrafters.plot.PlotMain
|
||||||
@ -120,13 +112,12 @@ public class PlotAPI {
|
|||||||
private final PlotMain plotMain;
|
private final PlotMain plotMain;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor. Insert any Plugin.
|
* Constructor. Insert any Plugin. (Optimally the plugin that is accessing the method)
|
||||||
* (Optimally the plugin that is accessing the method)
|
|
||||||
*
|
*
|
||||||
* @param plugin
|
* @param plugin Plugin used to access this method
|
||||||
* Plugin used to access this method
|
*
|
||||||
* @throws com.intellectualcrafters.plot.util.PlotSquaredException
|
* @throws com.intellectualcrafters.plot.util.PlotSquaredException if the program fails to fetch the PlotMain
|
||||||
* if the program fails to fetch the PlotMain instance
|
* instance
|
||||||
* @see com.intellectualcrafters.plot.PlotMain
|
* @see com.intellectualcrafters.plot.PlotMain
|
||||||
*/
|
*/
|
||||||
public PlotAPI(@NotNull final JavaPlugin plugin) {
|
public PlotAPI(@NotNull final JavaPlugin plugin) {
|
||||||
@ -140,6 +131,7 @@ public class PlotAPI {
|
|||||||
* Get all plots
|
* Get all plots
|
||||||
*
|
*
|
||||||
* @return all plots
|
* @return all plots
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.PlotMain#getPlots()
|
* @see com.intellectualcrafters.plot.PlotMain#getPlots()
|
||||||
*/
|
*/
|
||||||
public Set<Plot> getAllPlots() {
|
public Set<Plot> getAllPlots() {
|
||||||
@ -149,8 +141,8 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Return all plots for a player
|
* Return all plots for a player
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player, whose plots to search for
|
||||||
* Player, whose plots to search for
|
*
|
||||||
* @return all plots that a player owns
|
* @return all plots that a player owns
|
||||||
*/
|
*/
|
||||||
public Set<Plot> getPlayerPlots(@NotNull final Player player) {
|
public Set<Plot> getPlayerPlots(@NotNull final Player player) {
|
||||||
@ -160,14 +152,11 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Add a plot world
|
* Add a plot world
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World Name
|
||||||
* World Name
|
* @param plotWorld Plot World Object
|
||||||
* @param plotWorld
|
* @param manager World Manager
|
||||||
* Plot World Object
|
*
|
||||||
* @param manager
|
* @see com.intellectualcrafters.plot.PlotMain#addPlotWorld(String, com.intellectualcrafters.plot.object.PlotWorld,
|
||||||
* World Manager
|
|
||||||
* @see com.intellectualcrafters.plot.PlotMain#addPlotWorld(String,
|
|
||||||
* com.intellectualcrafters.plot.object.PlotWorld,
|
|
||||||
* com.intellectualcrafters.plot.object.PlotManager)
|
* com.intellectualcrafters.plot.object.PlotManager)
|
||||||
*/
|
*/
|
||||||
public void addPlotWorld(@NotNull final String world, @NotNull final PlotWorld plotWorld, @NotNull final PlotManager manager) {
|
public void addPlotWorld(@NotNull final String world, @NotNull final PlotWorld plotWorld, @NotNull final PlotManager manager) {
|
||||||
@ -176,6 +165,7 @@ public class PlotAPI {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return main configuration
|
* @return main configuration
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.PlotMain#config
|
* @see com.intellectualcrafters.plot.PlotMain#config
|
||||||
*/
|
*/
|
||||||
public YamlConfiguration getConfig() {
|
public YamlConfiguration getConfig() {
|
||||||
@ -184,6 +174,7 @@ public class PlotAPI {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return storage configuration
|
* @return storage configuration
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.PlotMain#storage
|
* @see com.intellectualcrafters.plot.PlotMain#storage
|
||||||
*/
|
*/
|
||||||
public YamlConfiguration getStorage() {
|
public YamlConfiguration getStorage() {
|
||||||
@ -191,11 +182,11 @@ public class PlotAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the main class for this plugin <br>
|
* Get the main class for this plugin <br> - Contains a lot of fields and methods - not very well organized <br>
|
||||||
* - Contains a lot of fields and methods - not very well organized <br>
|
|
||||||
* Only use this if you really need it
|
* Only use this if you really need it
|
||||||
*
|
*
|
||||||
* @return PlotMain PlotSquared Main Class
|
* @return PlotMain PlotSquared Main Class
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.PlotMain
|
* @see com.intellectualcrafters.plot.PlotMain
|
||||||
*/
|
*/
|
||||||
public PlotMain getMain() {
|
public PlotMain getMain() {
|
||||||
@ -206,6 +197,7 @@ public class PlotAPI {
|
|||||||
* PlotHelper class contains useful methods relating to plots.
|
* PlotHelper class contains useful methods relating to plots.
|
||||||
*
|
*
|
||||||
* @return PlotHelper
|
* @return PlotHelper
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.PlotHelper
|
* @see com.intellectualcrafters.plot.util.PlotHelper
|
||||||
*/
|
*/
|
||||||
public PlotHelper getPlotHelper() {
|
public PlotHelper getPlotHelper() {
|
||||||
@ -213,10 +205,10 @@ public class PlotAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PlayerFunctions class contains useful methods relating to players - Some
|
* PlayerFunctions class contains useful methods relating to players - Some player/plot methods are here as well
|
||||||
* player/plot methods are here as well
|
|
||||||
*
|
*
|
||||||
* @return PlayerFunctions
|
* @return PlayerFunctions
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.PlayerFunctions
|
* @see com.intellectualcrafters.plot.util.PlayerFunctions
|
||||||
*/
|
*/
|
||||||
public PlayerFunctions getPlayerFunctions() {
|
public PlayerFunctions getPlayerFunctions() {
|
||||||
@ -227,6 +219,7 @@ public class PlotAPI {
|
|||||||
* FlagManager class contains methods relating to plot flags
|
* FlagManager class contains methods relating to plot flags
|
||||||
*
|
*
|
||||||
* @return FlagManager
|
* @return FlagManager
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.flag.FlagManager
|
* @see com.intellectualcrafters.plot.flag.FlagManager
|
||||||
*/
|
*/
|
||||||
public FlagManager getFlagManager() {
|
public FlagManager getFlagManager() {
|
||||||
@ -237,6 +230,7 @@ public class PlotAPI {
|
|||||||
* SchematicHandler class contains methods related to pasting schematics
|
* SchematicHandler class contains methods related to pasting schematics
|
||||||
*
|
*
|
||||||
* @return SchematicHandler
|
* @return SchematicHandler
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.SchematicHandler
|
* @see com.intellectualcrafters.plot.util.SchematicHandler
|
||||||
*/
|
*/
|
||||||
public SchematicHandler getSchematicHandler() {
|
public SchematicHandler getSchematicHandler() {
|
||||||
@ -247,6 +241,7 @@ public class PlotAPI {
|
|||||||
* C class contains all the captions from the translations.yml file.
|
* C class contains all the captions from the translations.yml file.
|
||||||
*
|
*
|
||||||
* @return C
|
* @return C
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.config.C
|
* @see com.intellectualcrafters.plot.config.C
|
||||||
*/
|
*/
|
||||||
public C getCaptions() {
|
public C getCaptions() {
|
||||||
@ -254,12 +249,12 @@ public class PlotAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the plot manager for a world. - Most of these methods can be accessed
|
* Get the plot manager for a world. - Most of these methods can be accessed through the PlotHelper
|
||||||
* through the PlotHelper
|
*
|
||||||
|
* @param world Which manager to get
|
||||||
*
|
*
|
||||||
* @param world
|
|
||||||
* Which manager to get
|
|
||||||
* @return PlotManager
|
* @return PlotManager
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.object.PlotManager
|
* @see com.intellectualcrafters.plot.object.PlotManager
|
||||||
* @see PlotMain#getPlotManager(org.bukkit.World)
|
* @see PlotMain#getPlotManager(org.bukkit.World)
|
||||||
*/
|
*/
|
||||||
@ -268,12 +263,13 @@ public class PlotAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the plot manager for a world. - Contains useful low level methods for
|
* Get the plot manager for a world. - Contains useful low level methods for plot merging, clearing, and
|
||||||
* plot merging, clearing, and tessellation
|
* tessellation
|
||||||
|
*
|
||||||
|
* @param world Plot World
|
||||||
*
|
*
|
||||||
* @param world
|
|
||||||
* Plot World
|
|
||||||
* @return PlotManager
|
* @return PlotManager
|
||||||
|
*
|
||||||
* @see PlotMain#getPlotManager(String)
|
* @see PlotMain#getPlotManager(String)
|
||||||
* @see com.intellectualcrafters.plot.object.PlotManager
|
* @see com.intellectualcrafters.plot.object.PlotManager
|
||||||
*/
|
*/
|
||||||
@ -282,14 +278,13 @@ public class PlotAPI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the settings for a world (settings bundled in PlotWorld class) - You
|
* Get the settings for a world (settings bundled in PlotWorld class) - You will need to downcast for the specific
|
||||||
* will need to downcast for the specific settings a Generator has. e.g.
|
* settings a Generator has. e.g. DefaultPlotWorld class implements PlotWorld
|
||||||
* 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
|
||||||
*
|
*
|
||||||
* @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 PlotMain#getWorldSettings(org.bukkit.World)
|
||||||
* @see com.intellectualcrafters.plot.object.PlotWorld
|
* @see com.intellectualcrafters.plot.object.PlotWorld
|
||||||
*/
|
*/
|
||||||
@ -300,10 +295,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get the settings for a world (settings bundled in PlotWorld class)
|
* Get the settings for a world (settings bundled in PlotWorld class)
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world (to get settings of)
|
||||||
* (to get settings of)
|
*
|
||||||
* @return PlotWorld class for that world ! will return null if not a plot
|
* @return PlotWorld class for that world ! will return null if not a plot world world
|
||||||
* world world
|
*
|
||||||
* @see PlotMain#getWorldSettings(String)
|
* @see PlotMain#getWorldSettings(String)
|
||||||
* @see com.intellectualcrafters.plot.object.PlotWorld
|
* @see com.intellectualcrafters.plot.object.PlotWorld
|
||||||
*/
|
*/
|
||||||
@ -314,10 +309,9 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Send a message to a player.
|
* Send a message to a player.
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player that will receive the message
|
||||||
* Player that will receive the message
|
* @param c (Caption)
|
||||||
* @param c
|
*
|
||||||
* (Caption)
|
|
||||||
* @see com.intellectualcrafters.plot.util.PlayerFunctions#sendMessage(org.bukkit.entity.Player,
|
* @see com.intellectualcrafters.plot.util.PlayerFunctions#sendMessage(org.bukkit.entity.Player,
|
||||||
* com.intellectualcrafters.plot.config.C, String...)
|
* com.intellectualcrafters.plot.config.C, String...)
|
||||||
*/
|
*/
|
||||||
@ -328,12 +322,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Send a message to a player. - Supports color codes
|
* Send a message to a player. - Supports color codes
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player that will receive the message
|
||||||
* Player that will receive the message
|
* @param string The message
|
||||||
* @param string
|
*
|
||||||
* The message
|
* @see com.intellectualcrafters.plot.util.PlayerFunctions#sendMessage(org.bukkit.entity.Player, String)
|
||||||
* @see com.intellectualcrafters.plot.util.PlayerFunctions#sendMessage(org.bukkit.entity.Player,
|
|
||||||
* String)
|
|
||||||
*/
|
*/
|
||||||
public void sendMessage(@NotNull final Player player, @NotNull final String string) {
|
public void sendMessage(@NotNull final Player player, @NotNull final String string) {
|
||||||
PlayerFunctions.sendMessage(player, string);
|
PlayerFunctions.sendMessage(player, string);
|
||||||
@ -342,8 +334,8 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Send a message to the console. - Supports color codes
|
* Send a message to the console. - Supports color codes
|
||||||
*
|
*
|
||||||
* @param msg
|
* @param msg Message that should be sent to the console
|
||||||
* Message that should be sent to the console
|
*
|
||||||
* @see PlotMain#sendConsoleSenderMessage(String)
|
* @see PlotMain#sendConsoleSenderMessage(String)
|
||||||
*/
|
*/
|
||||||
public void sendConsoleMessage(@NotNull final String msg) {
|
public void sendConsoleMessage(@NotNull final String msg) {
|
||||||
@ -353,8 +345,8 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Send a message to the console
|
* Send a message to the console
|
||||||
*
|
*
|
||||||
* @param c
|
* @param c (Caption)
|
||||||
* (Caption)
|
*
|
||||||
* @see #sendConsoleMessage(String)
|
* @see #sendConsoleMessage(String)
|
||||||
* @see com.intellectualcrafters.plot.config.C
|
* @see com.intellectualcrafters.plot.config.C
|
||||||
*/
|
*/
|
||||||
@ -365,8 +357,8 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Register a flag for use in plots
|
* Register a flag for use in plots
|
||||||
*
|
*
|
||||||
* @param flag
|
* @param flag Flag that should be registered
|
||||||
* Flag that should be registered
|
*
|
||||||
* @see com.intellectualcrafters.plot.flag.FlagManager#addFlag(com.intellectualcrafters.plot.flag.AbstractFlag)
|
* @see com.intellectualcrafters.plot.flag.FlagManager#addFlag(com.intellectualcrafters.plot.flag.AbstractFlag)
|
||||||
* @see com.intellectualcrafters.plot.flag.AbstractFlag
|
* @see com.intellectualcrafters.plot.flag.AbstractFlag
|
||||||
*/
|
*/
|
||||||
@ -378,6 +370,7 @@ public class PlotAPI {
|
|||||||
* get all the currently registered flags
|
* get all the currently registered flags
|
||||||
*
|
*
|
||||||
* @return array of Flag[]
|
* @return array of Flag[]
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.flag.FlagManager#getFlags()
|
* @see com.intellectualcrafters.plot.flag.FlagManager#getFlags()
|
||||||
* @see com.intellectualcrafters.plot.flag.AbstractFlag
|
* @see com.intellectualcrafters.plot.flag.AbstractFlag
|
||||||
*/
|
*/
|
||||||
@ -388,15 +381,13 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get a plot based on the ID
|
* Get a plot based on the ID
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World in which the plot is located
|
||||||
* World in which the plot is located
|
* @param x Plot Location X Co-ord
|
||||||
* @param x
|
* @param z Plot Location Z Co-ord
|
||||||
* Plot Location X Co-ord
|
*
|
||||||
* @param z
|
|
||||||
* Plot Location Z Co-ord
|
|
||||||
* @return plot, null if ID is wrong
|
* @return plot, null if ID is wrong
|
||||||
* @see PlotHelper#getPlot(org.bukkit.World,
|
*
|
||||||
* com.intellectualcrafters.plot.object.PlotId)
|
* @see PlotHelper#getPlot(org.bukkit.World, com.intellectualcrafters.plot.object.PlotId)
|
||||||
* @see com.intellectualcrafters.plot.object.Plot
|
* @see com.intellectualcrafters.plot.object.Plot
|
||||||
*/
|
*/
|
||||||
public Plot getPlot(@NotNull final World world, final int x, final int z) {
|
public Plot getPlot(@NotNull final World world, final int x, final int z) {
|
||||||
@ -406,9 +397,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get a plot based on the location
|
* Get a plot based on the location
|
||||||
*
|
*
|
||||||
* @param l
|
* @param l The location that you want to to retrieve the plot from
|
||||||
* The location that you want to to retrieve the plot from
|
*
|
||||||
* @return plot if found, otherwise it creates a temporary plot-
|
* @return plot if found, otherwise it creates a temporary plot-
|
||||||
|
*
|
||||||
* @see PlotHelper#getCurrentPlot(org.bukkit.Location)
|
* @see PlotHelper#getCurrentPlot(org.bukkit.Location)
|
||||||
* @see com.intellectualcrafters.plot.object.Plot
|
* @see com.intellectualcrafters.plot.object.Plot
|
||||||
*/
|
*/
|
||||||
@ -419,9 +411,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get a plot based on the player location
|
* Get a plot based on the player location
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Get the current plot for the player location
|
||||||
* Get the current plot for the player location
|
*
|
||||||
* @return plot if found, otherwise it creates a temporary plot
|
* @return plot if found, otherwise it creates a temporary plot
|
||||||
|
*
|
||||||
* @see #getPlot(org.bukkit.Location)
|
* @see #getPlot(org.bukkit.Location)
|
||||||
* @see com.intellectualcrafters.plot.object.Plot
|
* @see com.intellectualcrafters.plot.object.Plot
|
||||||
*/
|
*/
|
||||||
@ -432,9 +425,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Check whether or not a player has a plot
|
* Check whether or not a player has a plot
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player that you want to check for
|
||||||
* Player that you want to check for
|
*
|
||||||
* @return true if player has a plot, false if not.
|
* @return true if player has a plot, false if not.
|
||||||
|
*
|
||||||
* @see #getPlots(org.bukkit.World, org.bukkit.entity.Player, boolean)
|
* @see #getPlots(org.bukkit.World, org.bukkit.entity.Player, boolean)
|
||||||
*/
|
*/
|
||||||
public boolean hasPlot(@NotNull final World world, @NotNull final Player player) {
|
public boolean hasPlot(@NotNull final World world, @NotNull final Player player) {
|
||||||
@ -444,10 +438,9 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get all plots for the player
|
* Get all plots for the player
|
||||||
*
|
*
|
||||||
* @param plr
|
* @param plr to search for
|
||||||
* to search for
|
* @param just_owner should we just search for owner? Or with rights?
|
||||||
* @param just_owner
|
*
|
||||||
* should we just search for owner? Or with rights?
|
|
||||||
* @see com.intellectualcrafters.plot.object.Plot
|
* @see com.intellectualcrafters.plot.object.Plot
|
||||||
*/
|
*/
|
||||||
public Plot[] getPlots(@NotNull final World world, @NotNull final Player plr, final boolean just_owner) {
|
public Plot[] getPlots(@NotNull final World world, @NotNull final Player plr, final boolean just_owner) {
|
||||||
@ -457,8 +450,7 @@ public class PlotAPI {
|
|||||||
if ((plot.owner != null) && (plot.owner == UUIDHandler.getUUID(plr))) {
|
if ((plot.owner != null) && (plot.owner == UUIDHandler.getUUID(plr))) {
|
||||||
pPlots.add(plot);
|
pPlots.add(plot);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (plot.hasRights(plr)) {
|
if (plot.hasRights(plr)) {
|
||||||
pPlots.add(plot);
|
pPlots.add(plot);
|
||||||
}
|
}
|
||||||
@ -470,9 +462,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get all plots for the world
|
* Get all plots for the world
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world to get plots of
|
||||||
* to get plots of
|
*
|
||||||
* @return Plot[] - array of plot objects in world
|
* @return Plot[] - array of plot objects in world
|
||||||
|
*
|
||||||
* @see PlotMain#getWorldPlots(org.bukkit.World)
|
* @see PlotMain#getWorldPlots(org.bukkit.World)
|
||||||
* @see com.intellectualcrafters.plot.object.Plot
|
* @see com.intellectualcrafters.plot.object.Plot
|
||||||
*/
|
*/
|
||||||
@ -484,6 +477,7 @@ public class PlotAPI {
|
|||||||
* Get all plot worlds
|
* Get all plot worlds
|
||||||
*
|
*
|
||||||
* @return World[] - array of plot worlds
|
* @return World[] - array of plot worlds
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.PlotMain#getPlotWorlds()
|
* @see com.intellectualcrafters.plot.PlotMain#getPlotWorlds()
|
||||||
*/
|
*/
|
||||||
public String[] getPlotWorlds() {
|
public String[] getPlotWorlds() {
|
||||||
@ -493,9 +487,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get if plot world
|
* Get if plot world
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world (to check if plot world)
|
||||||
* (to check if plot world)
|
*
|
||||||
* @return boolean (if plot world or not)
|
* @return boolean (if plot world or not)
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.PlotMain#isPlotWorld(org.bukkit.World)
|
* @see com.intellectualcrafters.plot.PlotMain#isPlotWorld(org.bukkit.World)
|
||||||
*/
|
*/
|
||||||
public boolean isPlotWorld(@NotNull final World world) {
|
public boolean isPlotWorld(@NotNull final World world) {
|
||||||
@ -505,9 +500,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get plot locations
|
* Get plot locations
|
||||||
*
|
*
|
||||||
* @param p
|
* @param p Plot that you want to get the locations for
|
||||||
* Plot that you want to get the locations for
|
*
|
||||||
* @return [0] = bottomLc, [1] = topLoc, [2] = home
|
* @return [0] = bottomLc, [1] = topLoc, [2] = home
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.PlotHelper#getPlotBottomLoc(org.bukkit.World,
|
* @see com.intellectualcrafters.plot.util.PlotHelper#getPlotBottomLoc(org.bukkit.World,
|
||||||
* com.intellectualcrafters.plot.object.PlotId)
|
* com.intellectualcrafters.plot.object.PlotId)
|
||||||
* @see com.intellectualcrafters.plot.util.PlotHelper#getPlotTopLoc(org.bukkit.World,
|
* @see com.intellectualcrafters.plot.util.PlotHelper#getPlotTopLoc(org.bukkit.World,
|
||||||
@ -525,9 +521,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get home location
|
* Get home location
|
||||||
*
|
*
|
||||||
* @param p
|
* @param p Plot that you want to get the location for
|
||||||
* Plot that you want to get the location for
|
*
|
||||||
* @return plot bottom location
|
* @return plot bottom location
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.PlotHelper#getPlotHome(org.bukkit.World,
|
* @see com.intellectualcrafters.plot.util.PlotHelper#getPlotHome(org.bukkit.World,
|
||||||
* com.intellectualcrafters.plot.object.Plot)
|
* com.intellectualcrafters.plot.object.Plot)
|
||||||
* @see com.intellectualcrafters.plot.object.PlotHomePosition
|
* @see com.intellectualcrafters.plot.object.PlotHomePosition
|
||||||
@ -540,9 +537,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get Bottom Location (min, min, min)
|
* Get Bottom Location (min, min, min)
|
||||||
*
|
*
|
||||||
* @param p
|
* @param p Plot that you want to get the location for
|
||||||
* Plot that you want to get the location for
|
*
|
||||||
* @return plot bottom location
|
* @return plot bottom location
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.PlotHelper#getPlotBottomLoc(org.bukkit.World,
|
* @see com.intellectualcrafters.plot.util.PlotHelper#getPlotBottomLoc(org.bukkit.World,
|
||||||
* com.intellectualcrafters.plot.object.PlotId)
|
* com.intellectualcrafters.plot.object.PlotId)
|
||||||
* @see com.intellectualcrafters.plot.object.Plot
|
* @see com.intellectualcrafters.plot.object.Plot
|
||||||
@ -555,11 +553,11 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get Top Location (max, max, max)
|
* Get Top Location (max, max, max)
|
||||||
*
|
*
|
||||||
* @param p
|
* @param p Plot that you want to get the location for
|
||||||
* Plot that you want to get the location for
|
*
|
||||||
* @return plot top location
|
* @return plot top location
|
||||||
* @see PlotHelper#getPlotTopLoc(org.bukkit.World,
|
*
|
||||||
* com.intellectualcrafters.plot.object.PlotId)
|
* @see PlotHelper#getPlotTopLoc(org.bukkit.World, com.intellectualcrafters.plot.object.PlotId)
|
||||||
* @see com.intellectualcrafters.plot.object.Plot
|
* @see com.intellectualcrafters.plot.object.Plot
|
||||||
*/
|
*/
|
||||||
public Location getTopLocation(@NotNull final Plot p) {
|
public Location getTopLocation(@NotNull final Plot p) {
|
||||||
@ -570,9 +568,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Check whether or not a player is in a plot
|
* Check whether or not a player is in a plot
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player who we're checking for
|
||||||
* who we're checking for
|
*
|
||||||
* @return true if the player is in a plot, false if not-
|
* @return true if the player is in a plot, false if not-
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.PlayerFunctions#isInPlot(org.bukkit.entity.Player)
|
* @see com.intellectualcrafters.plot.util.PlayerFunctions#isInPlot(org.bukkit.entity.Player)
|
||||||
*/
|
*/
|
||||||
public boolean isInPlot(@NotNull final Player player) {
|
public boolean isInPlot(@NotNull final Player player) {
|
||||||
@ -582,8 +581,8 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Register a subcommand
|
* Register a subcommand
|
||||||
*
|
*
|
||||||
* @param c
|
* @param c SubCommand, that we want to register
|
||||||
* SubCommand, that we want to register
|
*
|
||||||
* @see com.intellectualcrafters.plot.commands.MainCommand#subCommands
|
* @see com.intellectualcrafters.plot.commands.MainCommand#subCommands
|
||||||
* @see com.intellectualcrafters.plot.commands.SubCommand
|
* @see com.intellectualcrafters.plot.commands.SubCommand
|
||||||
*/
|
*/
|
||||||
@ -595,6 +594,7 @@ public class PlotAPI {
|
|||||||
* Get the plotMain class
|
* Get the plotMain class
|
||||||
*
|
*
|
||||||
* @return PlotMain Class
|
* @return PlotMain Class
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.PlotMain
|
* @see com.intellectualcrafters.plot.PlotMain
|
||||||
*/
|
*/
|
||||||
public PlotMain getPlotMain() {
|
public PlotMain getPlotMain() {
|
||||||
@ -604,11 +604,11 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get the player plot count
|
* Get the player plot count
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world Specify the world we want to select the plots from
|
||||||
* Specify the world we want to select the plots from
|
* @param player Player, for whom we're getting the plot count
|
||||||
* @param player
|
*
|
||||||
* Player, for whom we're getting the plot count
|
|
||||||
* @return the number of plots the player has
|
* @return the number of plots the player has
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.PlayerFunctions#getPlayerPlotCount(org.bukkit.World,
|
* @see com.intellectualcrafters.plot.util.PlayerFunctions#getPlayerPlotCount(org.bukkit.World,
|
||||||
* org.bukkit.entity.Player)
|
* org.bukkit.entity.Player)
|
||||||
*/
|
*/
|
||||||
@ -619,11 +619,11 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get a collection containing the players plots
|
* Get a collection containing the players plots
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world Specify the world we want to select the plots from
|
||||||
* Specify the world we want to select the plots from
|
* @param player Player, for whom we're getting the plots
|
||||||
* @param player
|
*
|
||||||
* Player, for whom we're getting the plots
|
|
||||||
* @return a set containing the players plots
|
* @return a set containing the players plots
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.PlayerFunctions#getPlayerPlots(org.bukkit.World,
|
* @see com.intellectualcrafters.plot.util.PlayerFunctions#getPlayerPlots(org.bukkit.World,
|
||||||
* org.bukkit.entity.Player)
|
* org.bukkit.entity.Player)
|
||||||
* @see com.intellectualcrafters.plot.object.Plot
|
* @see com.intellectualcrafters.plot.object.Plot
|
||||||
@ -635,10 +635,10 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Get the numbers of plots, which the player is able to build in
|
* Get the numbers of plots, which the player is able to build in
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player, for whom we're getting the plots (trusted, helper and owner)
|
||||||
* Player, for whom we're getting the plots (trusted, helper and
|
*
|
||||||
* owner)
|
|
||||||
* @return the number of allowed plots
|
* @return the number of allowed plots
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.util.PlayerFunctions#getAllowedPlots(org.bukkit.entity.Player)
|
* @see com.intellectualcrafters.plot.util.PlayerFunctions#getAllowedPlots(org.bukkit.entity.Player)
|
||||||
*/
|
*/
|
||||||
public int getAllowedPlots(@NotNull final Player player) {
|
public int getAllowedPlots(@NotNull final Player player) {
|
||||||
|
@ -21,12 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
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.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.config.Settings;
|
import com.intellectualcrafters.plot.config.Settings;
|
||||||
@ -38,9 +32,12 @@ import com.intellectualcrafters.plot.object.PlotId;
|
|||||||
import com.intellectualcrafters.plot.object.PlotWorld;
|
import com.intellectualcrafters.plot.object.PlotWorld;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation") public class Auto extends SubCommand {
|
||||||
public class Auto extends SubCommand {
|
|
||||||
public static PlotId lastPlot = new PlotId(0, 0);
|
public static PlotId lastPlot = new PlotId(0, 0);
|
||||||
|
|
||||||
public Auto() {
|
public Auto() {
|
||||||
@ -53,20 +50,16 @@ public class Auto extends SubCommand {
|
|||||||
if (absX > absY) {
|
if (absX > absY) {
|
||||||
if (id.x > 0) {
|
if (id.x > 0) {
|
||||||
return new PlotId(id.x, id.y + 1);
|
return new PlotId(id.x, id.y + 1);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return new PlotId(id.x, id.y - 1);
|
return new PlotId(id.x, id.y - 1);
|
||||||
}
|
}
|
||||||
}
|
} else if (absY > absX) {
|
||||||
else if (absY > absX) {
|
|
||||||
if (id.y > 0) {
|
if (id.y > 0) {
|
||||||
return new PlotId(id.x - 1, id.y);
|
return new PlotId(id.x - 1, id.y);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return new PlotId(id.x + 1, id.y);
|
return new PlotId(id.x + 1, id.y);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (id.x.equals(id.y) && (id.x > 0)) {
|
if (id.x.equals(id.y) && (id.x > 0)) {
|
||||||
return new PlotId(id.x, id.y + step);
|
return new PlotId(id.x, id.y + step);
|
||||||
}
|
}
|
||||||
@ -89,12 +82,10 @@ public class Auto extends SubCommand {
|
|||||||
String schematic = "";
|
String schematic = "";
|
||||||
if (PlotMain.getPlotWorlds().length == 1) {
|
if (PlotMain.getPlotWorlds().length == 1) {
|
||||||
world = Bukkit.getWorld(PlotMain.getPlotWorlds()[0]);
|
world = Bukkit.getWorld(PlotMain.getPlotWorlds()[0]);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (PlotMain.isPlotWorld(plr.getWorld())) {
|
if (PlotMain.isPlotWorld(plr.getWorld())) {
|
||||||
world = plr.getWorld();
|
world = plr.getWorld();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT_WORLD);
|
PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT_WORLD);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -114,8 +105,7 @@ public class Auto extends SubCommand {
|
|||||||
if (args.length > 1) {
|
if (args.length > 1) {
|
||||||
schematic = args[1];
|
schematic = args[1];
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
size_x = 1;
|
size_x = 1;
|
||||||
size_z = 1;
|
size_z = 1;
|
||||||
schematic = args[0];
|
schematic = args[0];
|
||||||
@ -123,8 +113,7 @@ public class Auto extends SubCommand {
|
|||||||
// "&cError: Invalid size (X,Y)");
|
// "&cError: Invalid size (X,Y)");
|
||||||
// return false;
|
// return false;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
schematic = args[0];
|
schematic = args[0];
|
||||||
// PlayerFunctions.sendMessage(plr, C.NO_PERMISSION);
|
// PlayerFunctions.sendMessage(plr, C.NO_PERMISSION);
|
||||||
// return false;
|
// return false;
|
||||||
@ -139,8 +128,7 @@ public class Auto extends SubCommand {
|
|||||||
if ((diff + (size_x * size_z)) >= 0) {
|
if ((diff + (size_x * size_z)) >= 0) {
|
||||||
if (diff < 0) {
|
if (diff < 0) {
|
||||||
PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS_NUM, (-diff - 1) + "");
|
PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS_NUM, (-diff - 1) + "");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS);
|
PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -188,8 +176,7 @@ public class Auto extends SubCommand {
|
|||||||
}
|
}
|
||||||
Auto.lastPlot = getNextPlot(Auto.lastPlot, 1);
|
Auto.lastPlot = getNextPlot(Auto.lastPlot, 1);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
boolean lastPlot = true;
|
boolean lastPlot = true;
|
||||||
while (!br) {
|
while (!br) {
|
||||||
final PlotId start = getNextPlot(Auto.lastPlot, 1);
|
final PlotId start = getNextPlot(Auto.lastPlot, 1);
|
||||||
@ -199,8 +186,7 @@ public class Auto extends SubCommand {
|
|||||||
}
|
}
|
||||||
if ((PlotMain.getPlots(world).get(start) != null) && (PlotMain.getPlots(world).get(start).owner != null)) {
|
if ((PlotMain.getPlots(world).get(start) != null) && (PlotMain.getPlots(world).get(start).owner != null)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
lastPlot = false;
|
lastPlot = false;
|
||||||
}
|
}
|
||||||
System.out.print("UNOWNED: " + start);
|
System.out.print("UNOWNED: " + start);
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created 2014-11-09 for PlotSquared
|
* Created 2014-11-09 for PlotSquared
|
||||||
|
@ -21,11 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import net.milkbowl.vault.economy.Economy;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
@ -39,6 +34,9 @@ import com.intellectualcrafters.plot.util.PlayerFunctions;
|
|||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
import com.intellectualcrafters.plot.util.SchematicHandler;
|
import com.intellectualcrafters.plot.util.SchematicHandler;
|
||||||
import com.intellectualcrafters.plot.util.SetBlockFast;
|
import com.intellectualcrafters.plot.util.SetBlockFast;
|
||||||
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -71,8 +69,7 @@ public class Claim extends SubCommand {
|
|||||||
SchematicHandler.Schematic sch;
|
SchematicHandler.Schematic sch;
|
||||||
if (schematic.equals("")) {
|
if (schematic.equals("")) {
|
||||||
sch = SchematicHandler.getSchematic(world.SCHEMATIC_FILE);
|
sch = SchematicHandler.getSchematic(world.SCHEMATIC_FILE);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sch = SchematicHandler.getSchematic(schematic);
|
sch = SchematicHandler.getSchematic(schematic);
|
||||||
if (sch == null) {
|
if (sch == null) {
|
||||||
sch = SchematicHandler.getSchematic(world.SCHEMATIC_FILE);
|
sch = SchematicHandler.getSchematic(world.SCHEMATIC_FILE);
|
||||||
|
@ -21,9 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
@ -31,6 +28,8 @@ import com.intellectualcrafters.plot.object.PlotId;
|
|||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class Clear extends SubCommand {
|
public class Clear extends SubCommand {
|
||||||
|
|
||||||
@ -44,23 +43,19 @@ public class Clear extends SubCommand {
|
|||||||
// Is console
|
// Is console
|
||||||
if (args.length < 2) {
|
if (args.length < 2) {
|
||||||
PlotMain.sendConsoleSenderMessage("You need to specify two arguments: ID (0;0) & World (world)");
|
PlotMain.sendConsoleSenderMessage("You need to specify two arguments: ID (0;0) & World (world)");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
final PlotId id = PlotId.fromString(args[0]);
|
final PlotId id = PlotId.fromString(args[0]);
|
||||||
final String world = args[1];
|
final String world = args[1];
|
||||||
if (id == null) {
|
if (id == null) {
|
||||||
PlotMain.sendConsoleSenderMessage("Invalid Plot ID: " + args[0]);
|
PlotMain.sendConsoleSenderMessage("Invalid Plot ID: " + args[0]);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (!PlotMain.isPlotWorld(world)) {
|
if (!PlotMain.isPlotWorld(world)) {
|
||||||
PlotMain.sendConsoleSenderMessage("Invalid plot world: " + world);
|
PlotMain.sendConsoleSenderMessage("Invalid plot world: " + world);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
final Plot plot = PlotHelper.getPlot(Bukkit.getWorld(world), id);
|
final Plot plot = PlotHelper.getPlot(Bukkit.getWorld(world), id);
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
PlotMain.sendConsoleSenderMessage("Could not find plot " + args[0] + " in world " + world);
|
PlotMain.sendConsoleSenderMessage("Could not find plot " + args[0] + " in world " + world);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
plot.clear(null, false);
|
plot.clear(null, false);
|
||||||
PlotMain.sendConsoleSenderMessage("Plot " + plot.getId().toString() + " cleared.");
|
PlotMain.sendConsoleSenderMessage("Plot " + plot.getId().toString() + " cleared.");
|
||||||
}
|
}
|
||||||
|
@ -21,14 +21,13 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
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.config.C;
|
||||||
import com.intellectualcrafters.plot.object.PlotId;
|
import com.intellectualcrafters.plot.object.PlotId;
|
||||||
import com.intellectualcrafters.plot.object.PlotSelection;
|
import com.intellectualcrafters.plot.object.PlotSelection;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import static com.intellectualcrafters.plot.object.PlotSelection.currentSelection;
|
||||||
|
|
||||||
public class Clipboard extends SubCommand {
|
public class Clipboard extends SubCommand {
|
||||||
|
|
||||||
|
@ -177,8 +177,7 @@ public enum Command {
|
|||||||
private final CommandPermission permission;
|
private final CommandPermission permission;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param command
|
* @param command Command "name" (/plot [cmd])
|
||||||
* Command "name" (/plot [cmd])
|
|
||||||
*/
|
*/
|
||||||
Command(final String command) {
|
Command(final String command) {
|
||||||
this.command = command;
|
this.command = command;
|
||||||
@ -187,10 +186,8 @@ public enum Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param command
|
* @param command Command "name" (/plot [cmd])
|
||||||
* Command "name" (/plot [cmd])
|
* @param permission Command Permission Node
|
||||||
* @param permission
|
|
||||||
* Command Permission Node
|
|
||||||
*/
|
*/
|
||||||
Command(final String command, final CommandPermission permission) {
|
Command(final String command, final CommandPermission permission) {
|
||||||
this.command = command;
|
this.command = command;
|
||||||
@ -199,10 +196,8 @@ public enum Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param command
|
* @param command Command "name" (/plot [cmd])
|
||||||
* Command "name" (/plot [cmd])
|
* @param alias Command Alias
|
||||||
* @param alias
|
|
||||||
* Command Alias
|
|
||||||
*/
|
*/
|
||||||
Command(final String command, final String alias) {
|
Command(final String command, final String alias) {
|
||||||
this.command = command;
|
this.command = command;
|
||||||
@ -211,12 +206,9 @@ public enum Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param command
|
* @param command Command "name" (/plot [cmd])
|
||||||
* Command "name" (/plot [cmd])
|
* @param alias Command Alias
|
||||||
* @param alias
|
* @param permission Required Permission Node
|
||||||
* Command Alias
|
|
||||||
* @param permission
|
|
||||||
* Required Permission Node
|
|
||||||
*/
|
*/
|
||||||
Command(final String command, final String alias, final CommandPermission permission) {
|
Command(final String command, final String alias, final CommandPermission permission) {
|
||||||
this.command = command;
|
this.command = command;
|
||||||
@ -240,6 +232,7 @@ public enum Command {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return permission object
|
* @return permission object
|
||||||
|
*
|
||||||
* @see com.intellectualcrafters.plot.commands.CommandPermission
|
* @see com.intellectualcrafters.plot.commands.CommandPermission
|
||||||
*/
|
*/
|
||||||
public CommandPermission getPermission() {
|
public CommandPermission getPermission() {
|
||||||
|
@ -21,9 +21,8 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Citymonstret on 2014-08-03.
|
* Created by Citymonstret on 2014-08-03.
|
||||||
@ -38,16 +37,15 @@ public class CommandPermission {
|
|||||||
public final String permission;
|
public final String permission;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param permission
|
* @param permission Command Permission
|
||||||
* Command Permission
|
|
||||||
*/
|
*/
|
||||||
public CommandPermission(final String permission) {
|
public CommandPermission(final String permission) {
|
||||||
this.permission = permission.toLowerCase();
|
this.permission = permission.toLowerCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param player
|
* @param player Does the player have the permission?
|
||||||
* Does the player have the permission?
|
*
|
||||||
* @return true of player has the required permission node
|
* @return true of player has the required permission node
|
||||||
*/
|
*/
|
||||||
public boolean hasPermission(final Player player) {
|
public boolean hasPermission(final Player player) {
|
||||||
|
@ -21,18 +21,17 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
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.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.object.PlotComment;
|
import com.intellectualcrafters.plot.object.PlotComment;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class Comment extends SubCommand {
|
public class Comment extends SubCommand {
|
||||||
|
|
||||||
@ -62,8 +61,7 @@ public class Comment extends SubCommand {
|
|||||||
DBFunc.setComment(plr.getWorld().getName(), plot, comment);
|
DBFunc.setComment(plr.getWorld().getName(), plot, comment);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return sendMessage(plr, C.NO_PERMISSION, "plots.comment." + args[0].toLowerCase());
|
return sendMessage(plr, C.NO_PERMISSION, "plots.comment." + args[0].toLowerCase());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,14 +21,13 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.object.PlotSelection;
|
import com.intellectualcrafters.plot.object.PlotSelection;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class Copy extends SubCommand {
|
public class Copy extends SubCommand {
|
||||||
|
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created 2014-11-09 for PlotSquared
|
* Created 2014-11-09 for PlotSquared
|
||||||
|
@ -1,15 +1,5 @@
|
|||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.DatabaseMetaData;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
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.PlotMain;
|
||||||
import com.intellectualcrafters.plot.database.MySQL;
|
import com.intellectualcrafters.plot.database.MySQL;
|
||||||
import com.intellectualcrafters.plot.database.SQLManager;
|
import com.intellectualcrafters.plot.database.SQLManager;
|
||||||
@ -17,6 +7,15 @@ import com.intellectualcrafters.plot.object.Plot;
|
|||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.StringComparison;
|
import com.intellectualcrafters.plot.util.StringComparison;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DatabaseMetaData;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created 2014-11-15 for PlotSquared
|
* Created 2014-11-15 for PlotSquared
|
||||||
@ -34,13 +33,11 @@ public class Database extends SubCommand {
|
|||||||
private static boolean sendMessageU(final UUID uuid, final String msg) {
|
private static boolean sendMessageU(final UUID uuid, final String msg) {
|
||||||
if (uuid == null) {
|
if (uuid == null) {
|
||||||
PlotMain.sendConsoleSenderMessage(msg);
|
PlotMain.sendConsoleSenderMessage(msg);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
final Player p = UUIDHandler.uuidWrapper.getPlayer(uuid);
|
final Player p = UUIDHandler.uuidWrapper.getPlayer(uuid);
|
||||||
if ((p != null) && p.isOnline()) {
|
if ((p != null) && p.isOnline()) {
|
||||||
return PlayerFunctions.sendMessage(p, msg);
|
return PlayerFunctions.sendMessage(p, msg);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return sendMessageU(null, msg);
|
return sendMessageU(null, msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -61,15 +58,13 @@ public class Database extends SubCommand {
|
|||||||
manager.createPlots(ps);
|
manager.createPlots(ps);
|
||||||
manager.createAllSettingsAndHelpers(ps);
|
manager.createAllSettingsAndHelpers(ps);
|
||||||
sendMessageU(requester, "&6Database conversion finished");
|
sendMessageU(requester, "&6Database conversion finished");
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
sendMessageU(requester, "Failed to insert plot objects, see stacktrace for info");
|
sendMessageU(requester, "Failed to insert plot objects, see stacktrace for info");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
c.close();
|
c.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -103,8 +98,7 @@ public class Database extends SubCommand {
|
|||||||
if (n.isClosed()) {
|
if (n.isClosed()) {
|
||||||
return sendMessage(plr, "Failed to open connection");
|
return sendMessage(plr, "Failed to open connection");
|
||||||
}
|
}
|
||||||
}
|
} catch (SQLException | ClassNotFoundException e) {
|
||||||
catch (SQLException | ClassNotFoundException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return sendMessage(plr, "Failed to open connection, read stacktrace for info");
|
return sendMessage(plr, "Failed to open connection, read stacktrace for info");
|
||||||
}
|
}
|
||||||
@ -114,8 +108,7 @@ public class Database extends SubCommand {
|
|||||||
ResultSet set = meta.getTables(null, null, prefix + "plot", null);
|
ResultSet set = meta.getTables(null, null, prefix + "plot", null);
|
||||||
if (!set.next()) {
|
if (!set.next()) {
|
||||||
manager.createTables("mysql", true);
|
manager.createTables("mysql", true);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
for (final String s : this.tables) {
|
for (final String s : this.tables) {
|
||||||
set = meta.getTables(null, null, prefix + s, null);
|
set = meta.getTables(null, null, prefix + s, null);
|
||||||
if (!set.next()) {
|
if (!set.next()) {
|
||||||
@ -123,8 +116,7 @@ public class Database extends SubCommand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return sendMessage(plr, "Could not create the required tables and/or load the database") && sendMessage(plr, "Please see the stacktrace for more information");
|
return sendMessage(plr, "Could not create the required tables and/or load the database") && sendMessage(plr, "Please see the stacktrace for more information");
|
||||||
}
|
}
|
||||||
@ -149,8 +141,7 @@ public class Database extends SubCommand {
|
|||||||
private boolean sendMessage(final Player player, final String msg) {
|
private boolean sendMessage(final Player player, final String msg) {
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
PlotMain.sendConsoleSenderMessage(msg);
|
PlotMain.sendConsoleSenderMessage(msg);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(player, msg);
|
PlayerFunctions.sendMessage(player, msg);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,16 +21,15 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
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.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.util.Lag;
|
import com.intellectualcrafters.plot.util.Lag;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
import com.intellectualcrafters.plot.util.RUtils;
|
import com.intellectualcrafters.plot.util.RUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class Debug extends SubCommand {
|
public class Debug extends SubCommand {
|
||||||
|
|
||||||
|
@ -21,9 +21,16 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.google.common.collect.BiMap;
|
||||||
import java.util.UUID;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
|
import com.intellectualcrafters.plot.config.C;
|
||||||
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
|
import com.intellectualcrafters.plot.events.PlayerClaimPlotEvent;
|
||||||
|
import com.intellectualcrafters.plot.flag.FlagManager;
|
||||||
|
import com.intellectualcrafters.plot.object.*;
|
||||||
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -32,20 +39,8 @@ import org.bukkit.block.Block;
|
|||||||
import org.bukkit.block.Sign;
|
import org.bukkit.block.Sign;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.google.common.collect.BiMap;
|
import java.util.ArrayList;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import java.util.UUID;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
|
||||||
import com.intellectualcrafters.plot.events.PlayerClaimPlotEvent;
|
|
||||||
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.object.StringWrapper;
|
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -95,8 +90,7 @@ public class DebugClaimTest extends SubCommand {
|
|||||||
|
|
||||||
min = new PlotId(Integer.parseInt(split1[0]), Integer.parseInt(split1[1]));
|
min = new PlotId(Integer.parseInt(split1[0]), Integer.parseInt(split1[1]));
|
||||||
max = new PlotId(Integer.parseInt(split2[0]), Integer.parseInt(split2[1]));
|
max = new PlotId(Integer.parseInt(split2[0]), Integer.parseInt(split2[1]));
|
||||||
}
|
} catch (final Exception e) {
|
||||||
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 !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.");
|
||||||
}
|
}
|
||||||
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: &7Beginning sign to plot conversion. This may take a while...");
|
||||||
@ -154,8 +148,7 @@ public class DebugClaimTest extends SubCommand {
|
|||||||
plot.owner = uuid;
|
plot.owner = uuid;
|
||||||
plot.hasChanged = true;
|
plot.hasChanged = true;
|
||||||
plots.add(plot);
|
plots.add(plot);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(null, " - &cInvalid playername: " + plot.id + " : " + line);
|
PlayerFunctions.sendMessage(null, " - &cInvalid playername: " + plot.id + " : " + line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -174,13 +167,11 @@ public class DebugClaimTest extends SubCommand {
|
|||||||
|
|
||||||
PlayerFunctions.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: &7Complete!");
|
PlayerFunctions.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: &7Complete!");
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(null, "No plots were found for the given search.");
|
PlayerFunctions.sendMessage(null, "No plots were found for the given search.");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, "This debug command can only be executed by console as it has been deemed unsafe if abused.");
|
PlayerFunctions.sendMessage(plr, "This debug command can only be executed by console as it has been deemed unsafe if abused.");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,13 +21,12 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -45,14 +44,12 @@ public class DebugLoadTest extends SubCommand {
|
|||||||
final Field fPlots = PlotMain.class.getDeclaredField("plots");
|
final Field fPlots = PlotMain.class.getDeclaredField("plots");
|
||||||
fPlots.setAccessible(true);
|
fPlots.setAccessible(true);
|
||||||
fPlots.set(null, DBFunc.getPlots());
|
fPlots.set(null, DBFunc.getPlots());
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlotMain.sendConsoleSenderMessage("&3===FAILED&3===");
|
PlotMain.sendConsoleSenderMessage("&3===FAILED&3===");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
PlotMain.sendConsoleSenderMessage("&3===END OF STACKTRACE===");
|
PlotMain.sendConsoleSenderMessage("&3===END OF STACKTRACE===");
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, "This debug command can only be executed by console as it has been deemed unsafe if abused.");
|
PlayerFunctions.sendMessage(plr, "This debug command can only be executed by console as it has been deemed unsafe if abused.");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,14 +21,13 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -46,8 +45,7 @@ public class DebugSaveTest extends SubCommand {
|
|||||||
plots.addAll(PlotMain.getPlots());
|
plots.addAll(PlotMain.getPlots());
|
||||||
DBFunc.createPlots(plots);
|
DBFunc.createPlots(plots);
|
||||||
DBFunc.createAllSettingsAndHelpers(plots);
|
DBFunc.createAllSettingsAndHelpers(plots);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, "This debug command can only be executed by console as it has been deemed unsafe if abused.");
|
PlayerFunctions.sendMessage(plr, "This debug command can only be executed by console as it has been deemed unsafe if abused.");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,16 +21,14 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
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.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.object.PlotWorld;
|
import com.intellectualcrafters.plot.object.PlotWorld;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class Delete extends SubCommand {
|
public class Delete extends SubCommand {
|
||||||
|
|
||||||
@ -67,8 +65,7 @@ public class Delete extends SubCommand {
|
|||||||
if ((Math.abs(plot.id.x) <= Math.abs(Auto.lastPlot.x)) && (Math.abs(plot.id.y) <= Math.abs(Auto.lastPlot.y))) {
|
if ((Math.abs(plot.id.x) <= Math.abs(Auto.lastPlot.x)) && (Math.abs(plot.id.y) <= Math.abs(Auto.lastPlot.y))) {
|
||||||
Auto.lastPlot = plot.id;
|
Auto.lastPlot = plot.id;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, "Plot deletion has been denied.");
|
PlayerFunctions.sendMessage(plr, "Plot deletion has been denied.");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,12 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
@ -34,9 +28,13 @@ import com.intellectualcrafters.plot.events.PlayerPlotDeniedEvent;
|
|||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
import java.util.UUID;
|
||||||
public class Denied extends SubCommand {
|
|
||||||
|
@SuppressWarnings("deprecation") public class Denied extends SubCommand {
|
||||||
|
|
||||||
public Denied() {
|
public Denied() {
|
||||||
super(Command.DENIED, "Manage plot helpers", "denied {add|remove} {player}", CommandCategory.ACTIONS, true);
|
super(Command.DENIED, "Manage plot helpers", "denied {add|remove} {player}", CommandCategory.ACTIONS, true);
|
||||||
@ -62,8 +60,7 @@ public class Denied extends SubCommand {
|
|||||||
if (args[1].equalsIgnoreCase("*")) {
|
if (args[1].equalsIgnoreCase("*")) {
|
||||||
uuid = DBFunc.everyone;
|
uuid = DBFunc.everyone;
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
uuid = UUIDHandler.getUUID(args[1]);
|
uuid = UUIDHandler.getUUID(args[1]);
|
||||||
}
|
}
|
||||||
if (!plot.denied.contains(uuid)) {
|
if (!plot.denied.contains(uuid)) {
|
||||||
@ -88,8 +85,7 @@ public class Denied extends SubCommand {
|
|||||||
DBFunc.setDenied(plr.getWorld().getName(), plot, Bukkit.getOfflinePlayer(args[1]));
|
DBFunc.setDenied(plr.getWorld().getName(), plot, Bukkit.getOfflinePlayer(args[1]));
|
||||||
final PlayerPlotDeniedEvent event = new PlayerPlotDeniedEvent(plr, plot, uuid, true);
|
final PlayerPlotDeniedEvent event = new PlayerPlotDeniedEvent(plr, plot, uuid, true);
|
||||||
Bukkit.getPluginManager().callEvent(event);
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.ALREADY_ADDED);
|
PlayerFunctions.sendMessage(plr, C.ALREADY_ADDED);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -103,8 +99,7 @@ public class Denied extends SubCommand {
|
|||||||
}
|
}
|
||||||
PlayerFunctions.sendMessage(plr, C.DENIED_ADDED);
|
PlayerFunctions.sendMessage(plr, C.DENIED_ADDED);
|
||||||
return true;
|
return true;
|
||||||
}
|
} else if (args[0].equalsIgnoreCase("remove")) {
|
||||||
else if (args[0].equalsIgnoreCase("remove")) {
|
|
||||||
if (args[1].equalsIgnoreCase("*")) {
|
if (args[1].equalsIgnoreCase("*")) {
|
||||||
final UUID uuid = DBFunc.everyone;
|
final UUID uuid = DBFunc.everyone;
|
||||||
if (!plot.denied.contains(uuid)) {
|
if (!plot.denied.contains(uuid)) {
|
||||||
@ -134,8 +129,7 @@ public class Denied extends SubCommand {
|
|||||||
final PlayerPlotDeniedEvent event = new PlayerPlotDeniedEvent(plr, plot, uuid, false);
|
final PlayerPlotDeniedEvent event = new PlayerPlotDeniedEvent(plr, plot, uuid, false);
|
||||||
Bukkit.getPluginManager().callEvent(event);
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
PlayerFunctions.sendMessage(plr, C.DENIED_REMOVED);
|
PlayerFunctions.sendMessage(plr, C.DENIED_REMOVED);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.DENIED_NEED_ARGUMENT);
|
PlayerFunctions.sendMessage(plr, C.DENIED_NEED_ARGUMENT);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -21,12 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
@ -34,9 +28,13 @@ import com.intellectualcrafters.plot.events.PlayerPlotHelperEvent;
|
|||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
import java.util.UUID;
|
||||||
public class Helpers extends SubCommand {
|
|
||||||
|
@SuppressWarnings("deprecation") public class Helpers extends SubCommand {
|
||||||
|
|
||||||
public Helpers() {
|
public Helpers() {
|
||||||
super(Command.HELPERS, "Manage plot helpers", "helpers {add|remove} {player}", CommandCategory.ACTIONS, true);
|
super(Command.HELPERS, "Manage plot helpers", "helpers {add|remove} {player}", CommandCategory.ACTIONS, true);
|
||||||
@ -61,8 +59,7 @@ public class Helpers extends SubCommand {
|
|||||||
UUID uuid;
|
UUID uuid;
|
||||||
if (args[1].equalsIgnoreCase("*")) {
|
if (args[1].equalsIgnoreCase("*")) {
|
||||||
uuid = DBFunc.everyone;
|
uuid = DBFunc.everyone;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
uuid = UUIDHandler.getUUID(args[1]);
|
uuid = UUIDHandler.getUUID(args[1]);
|
||||||
}
|
}
|
||||||
if (!plot.helpers.contains(uuid)) {
|
if (!plot.helpers.contains(uuid)) {
|
||||||
@ -87,15 +84,13 @@ public class Helpers extends SubCommand {
|
|||||||
DBFunc.setHelper(plr.getWorld().getName(), plot, Bukkit.getOfflinePlayer(args[1]));
|
DBFunc.setHelper(plr.getWorld().getName(), plot, Bukkit.getOfflinePlayer(args[1]));
|
||||||
final PlayerPlotHelperEvent event = new PlayerPlotHelperEvent(plr, plot, uuid, true);
|
final PlayerPlotHelperEvent event = new PlayerPlotHelperEvent(plr, plot, uuid, true);
|
||||||
Bukkit.getPluginManager().callEvent(event);
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.ALREADY_ADDED);
|
PlayerFunctions.sendMessage(plr, C.ALREADY_ADDED);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
PlayerFunctions.sendMessage(plr, C.HELPER_ADDED);
|
PlayerFunctions.sendMessage(plr, C.HELPER_ADDED);
|
||||||
return true;
|
return true;
|
||||||
}
|
} else if (args[0].equalsIgnoreCase("remove")) {
|
||||||
else if (args[0].equalsIgnoreCase("remove")) {
|
|
||||||
if (args[1].equalsIgnoreCase("*")) {
|
if (args[1].equalsIgnoreCase("*")) {
|
||||||
final UUID uuid = DBFunc.everyone;
|
final UUID uuid = DBFunc.everyone;
|
||||||
if (!plot.helpers.contains(uuid)) {
|
if (!plot.helpers.contains(uuid)) {
|
||||||
@ -126,8 +121,7 @@ public class Helpers extends SubCommand {
|
|||||||
final PlayerPlotHelperEvent event = new PlayerPlotHelperEvent(plr, plot, uuid, false);
|
final PlayerPlotHelperEvent event = new PlayerPlotHelperEvent(plr, plot, uuid, false);
|
||||||
Bukkit.getPluginManager().callEvent(event);
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
PlayerFunctions.sendMessage(plr, C.HELPER_REMOVED);
|
PlayerFunctions.sendMessage(plr, C.HELPER_REMOVED);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.HELPER_NEED_ARGUMENT);
|
PlayerFunctions.sendMessage(plr, C.HELPER_NEED_ARGUMENT);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -21,12 +21,11 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -52,16 +51,14 @@ public class Home extends SubCommand {
|
|||||||
if (plots.length == 1) {
|
if (plots.length == 1) {
|
||||||
PlotMain.teleportPlayer(plr, plr.getLocation(), plots[0]);
|
PlotMain.teleportPlayer(plr, plr.getLocation(), plots[0]);
|
||||||
return true;
|
return true;
|
||||||
}
|
} else if (plots.length > 1) {
|
||||||
else if (plots.length > 1) {
|
|
||||||
if (args.length < 1) {
|
if (args.length < 1) {
|
||||||
args = new String[]{"1"};
|
args = new String[]{"1"};
|
||||||
}
|
}
|
||||||
int id = 0;
|
int id = 0;
|
||||||
try {
|
try {
|
||||||
id = Integer.parseInt(args[0]);
|
id = Integer.parseInt(args[0]);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
Plot temp;
|
Plot temp;
|
||||||
if ((temp = isAlias(args[0])) != null) {
|
if ((temp = isAlias(args[0])) != null) {
|
||||||
if (temp.hasOwner()) {
|
if (temp.hasOwner()) {
|
||||||
@ -82,8 +79,7 @@ public class Home extends SubCommand {
|
|||||||
}
|
}
|
||||||
PlotMain.teleportPlayer(plr, plr.getLocation(), plots[id - 1]);
|
PlotMain.teleportPlayer(plr, plr.getLocation(), plots[id - 1]);
|
||||||
return true;
|
return true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NO_PLOTS);
|
PlayerFunctions.sendMessage(plr, C.NO_PLOTS);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -21,20 +21,19 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
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.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.object.PlotComment;
|
import com.intellectualcrafters.plot.object.PlotComment;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class Inbox extends SubCommand {
|
public class Inbox extends SubCommand {
|
||||||
|
|
||||||
@ -58,17 +57,13 @@ public class Inbox extends SubCommand {
|
|||||||
final UUID uuid = plr.getUniqueId();
|
final UUID uuid = plr.getUniqueId();
|
||||||
if (PlotMain.hasPermission(plr, "plots.admin")) {
|
if (PlotMain.hasPermission(plr, "plots.admin")) {
|
||||||
tier = 0;
|
tier = 0;
|
||||||
}
|
} else if (plot.owner == uuid) {
|
||||||
else if (plot.owner == uuid) {
|
|
||||||
tier = 1;
|
tier = 1;
|
||||||
}
|
} else if (plot.helpers.contains(uuid)) {
|
||||||
else if (plot.helpers.contains(uuid)) {
|
|
||||||
tier = 2;
|
tier = 2;
|
||||||
}
|
} else if (plot.trusted.contains(uuid)) {
|
||||||
else if (plot.trusted.contains(uuid)) {
|
|
||||||
tier = 3;
|
tier = 3;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
tier = 4;
|
tier = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,8 +72,7 @@ public class Inbox extends SubCommand {
|
|||||||
case "admin":
|
case "admin":
|
||||||
if (tier <= 0) {
|
if (tier <= 0) {
|
||||||
tier = 0;
|
tier = 0;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NO_PERM_INBOX);
|
PlayerFunctions.sendMessage(plr, C.NO_PERM_INBOX);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -86,8 +80,7 @@ public class Inbox extends SubCommand {
|
|||||||
case "owner":
|
case "owner":
|
||||||
if (tier <= 1) {
|
if (tier <= 1) {
|
||||||
tier = 1;
|
tier = 1;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NO_PERM_INBOX);
|
PlayerFunctions.sendMessage(plr, C.NO_PERM_INBOX);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -95,8 +88,7 @@ public class Inbox extends SubCommand {
|
|||||||
case "helper":
|
case "helper":
|
||||||
if (tier <= 2) {
|
if (tier <= 2) {
|
||||||
tier = 2;
|
tier = 2;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NO_PERM_INBOX);
|
PlayerFunctions.sendMessage(plr, C.NO_PERM_INBOX);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -104,8 +96,7 @@ public class Inbox extends SubCommand {
|
|||||||
case "trusted":
|
case "trusted":
|
||||||
if (tier <= 3) {
|
if (tier <= 3) {
|
||||||
tier = 3;
|
tier = 3;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NO_PERM_INBOX);
|
PlayerFunctions.sendMessage(plr, C.NO_PERM_INBOX);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -113,8 +104,7 @@ public class Inbox extends SubCommand {
|
|||||||
case "everyone":
|
case "everyone":
|
||||||
if (tier <= 4) {
|
if (tier <= 4) {
|
||||||
tier = 4;
|
tier = 4;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NO_PERM_INBOX);
|
PlayerFunctions.sendMessage(plr, C.NO_PERM_INBOX);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -151,8 +141,7 @@ public class Inbox extends SubCommand {
|
|||||||
plot.settings.removeComment(comment);
|
plot.settings.removeComment(comment);
|
||||||
PlayerFunctions.sendMessage(plr, C.COMMENT_REMOVED, "1 comment");
|
PlayerFunctions.sendMessage(plr, C.COMMENT_REMOVED, "1 comment");
|
||||||
return;
|
return;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlayerFunctions.sendMessage(plr, "&cInvalid index:\n/plot inbox [tier] [clear][:#]");
|
PlayerFunctions.sendMessage(plr, "&cInvalid index:\n/plot inbox [tier] [clear][:#]");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -162,8 +151,7 @@ public class Inbox extends SubCommand {
|
|||||||
}
|
}
|
||||||
plot.settings.removeComments(comments);
|
plot.settings.removeComments(comments);
|
||||||
PlayerFunctions.sendMessage(plr, C.COMMENT_REMOVED, "all comments in that category");
|
PlayerFunctions.sendMessage(plr, C.COMMENT_REMOVED, "all comments in that category");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
final List<String> recipients = Arrays.asList("A", "O", "H", "T", "E");
|
final List<String> recipients = Arrays.asList("A", "O", "H", "T", "E");
|
||||||
int count = 1;
|
int count = 1;
|
||||||
final StringBuilder message = new StringBuilder();
|
final StringBuilder message = new StringBuilder();
|
||||||
|
@ -21,16 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
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.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
@ -41,12 +31,20 @@ import com.intellectualcrafters.plot.object.PlotWorld;
|
|||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
|
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 java.util.ArrayList;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings({ "unused", "deprecated", "javadoc" })
|
@SuppressWarnings({"unused", "deprecated", "javadoc"}) public class Info extends SubCommand {
|
||||||
public class Info extends SubCommand {
|
|
||||||
|
|
||||||
public Info() {
|
public Info() {
|
||||||
super(Command.INFO, "Display plot info", "info", CommandCategory.INFO, false);
|
super(Command.INFO, "Display plot info", "info", CommandCategory.INFO, false);
|
||||||
@ -63,8 +61,7 @@ public class Info extends SubCommand {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
plot = PlayerFunctions.getCurrentPlot(player);
|
plot = PlayerFunctions.getCurrentPlot(player);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (args.length < 2) {
|
if (args.length < 2) {
|
||||||
PlayerFunctions.sendMessage(null, C.INFO_SYNTAX_CONSOLE);
|
PlayerFunctions.sendMessage(null, C.INFO_SYNTAX_CONSOLE);
|
||||||
return false;
|
return false;
|
||||||
@ -85,12 +82,10 @@ public class Info extends SubCommand {
|
|||||||
world = Bukkit.getWorld(args[0]);
|
world = Bukkit.getWorld(args[0]);
|
||||||
if (args.length == 3) {
|
if (args.length == 3) {
|
||||||
args = new String[]{args[2]};
|
args = new String[]{args[2]};
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
args = new String[0];
|
args = new String[0];
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlayerFunctions.sendMessage(player, C.INFO_SYNTAX_CONSOLE);
|
PlayerFunctions.sendMessage(player, C.INFO_SYNTAX_CONSOLE);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -215,8 +210,7 @@ public class Info extends SubCommand {
|
|||||||
for (int x = 0; x < l.size(); x++) {
|
for (int x = 0; x < l.size(); x++) {
|
||||||
if ((x + 1) == l.size()) {
|
if ((x + 1) == l.size()) {
|
||||||
list.append(c.replace("%user%", getPlayerName(l.get(x))).replace(",", ""));
|
list.append(c.replace("%user%", getPlayerName(l.get(x))).replace(",", ""));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
list.append(c.replace("%user%", getPlayerName(l.get(x))));
|
list.append(c.replace("%user%", getPlayerName(l.get(x))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,8 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
@ -30,6 +28,8 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public class Inventory extends SubCommand {
|
public class Inventory extends SubCommand {
|
||||||
|
|
||||||
public Inventory() {
|
public Inventory() {
|
||||||
|
@ -21,16 +21,14 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@SuppressWarnings({ "unused", "deprecation", "javadoc" })
|
@SuppressWarnings({"unused", "deprecation", "javadoc"}) public class Kick extends SubCommand {
|
||||||
public class Kick extends SubCommand {
|
|
||||||
|
|
||||||
public Kick() {
|
public Kick() {
|
||||||
super(Command.KICK, "Kick a player from your plot", "kick", CommandCategory.ACTIONS, true);
|
super(Command.KICK, "Kick a player from your plot", "kick", CommandCategory.ACTIONS, true);
|
||||||
|
@ -21,10 +21,10 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import java.util.Arrays;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import java.util.List;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import com.intellectualcrafters.plot.util.StringComparison;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandExecutor;
|
import org.bukkit.command.CommandExecutor;
|
||||||
@ -32,10 +32,9 @@ import org.bukkit.command.CommandSender;
|
|||||||
import org.bukkit.command.TabCompleter;
|
import org.bukkit.command.TabCompleter;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import java.util.ArrayList;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import java.util.Arrays;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import java.util.List;
|
||||||
import com.intellectualcrafters.plot.util.StringComparison;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PlotMain command class
|
* PlotMain command class
|
||||||
@ -152,8 +151,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||||||
String arg2;
|
String arg2;
|
||||||
if (args.length > 2) {
|
if (args.length > 2) {
|
||||||
arg2 = args[2];
|
arg2 = args[2];
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
arg2 = "1";
|
arg2 = "1";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -175,8 +173,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||||||
}
|
}
|
||||||
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', help.toString()));
|
sender.sendMessage(ChatColor.translateAlternateColorCodes('&', help.toString()));
|
||||||
// return PlayerFunctions.sendMessage(player, help.toString());
|
// return PlayerFunctions.sendMessage(player, help.toString());
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
for (final SubCommand command : subCommands) {
|
for (final SubCommand command : subCommands) {
|
||||||
if (command.cmd.equalsIgnoreCase(args[0]) || command.alias.contains(args[0].toLowerCase())) {
|
if (command.cmd.equalsIgnoreCase(args[0]) || command.alias.contains(args[0].toLowerCase())) {
|
||||||
final String[] arguments = new String[args.length - 1];
|
final String[] arguments = new String[args.length - 1];
|
||||||
@ -184,12 +181,10 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||||||
if (command.permission.hasPermission(player)) {
|
if (command.permission.hasPermission(player)) {
|
||||||
if ((player != null) || !command.isPlayer) {
|
if ((player != null) || !command.isPlayer) {
|
||||||
return command.execute(player, arguments);
|
return command.execute(player, arguments);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return !PlayerFunctions.sendMessage(null, C.IS_CONSOLE);
|
return !PlayerFunctions.sendMessage(null, C.IS_CONSOLE);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return no_permission(player, command.permission.permission.toLowerCase());
|
return no_permission(player, command.permission.permission.toLowerCase());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -234,8 +229,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||||||
if (cmd.permission.hasPermission(player)) {
|
if (cmd.permission.hasPermission(player)) {
|
||||||
if (cmd.cmd.startsWith(arg)) {
|
if (cmd.cmd.startsWith(arg)) {
|
||||||
tabOptions.add(cmd.cmd);
|
tabOptions.add(cmd.cmd);
|
||||||
}
|
} else if (cmd.alias.get(0).startsWith(arg)) {
|
||||||
else if (cmd.alias.get(0).startsWith(arg)) {
|
|
||||||
tabOptions.add(cmd.alias.get(0));
|
tabOptions.add(cmd.alias.get(0));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,15 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
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.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.events.PlotMergeEvent;
|
import com.intellectualcrafters.plot.events.PlotMergeEvent;
|
||||||
@ -39,6 +30,13 @@ import com.intellectualcrafters.plot.object.PlotWorld;
|
|||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
import com.intellectualcrafters.plot.util.SetBlockFast;
|
import com.intellectualcrafters.plot.util.SetBlockFast;
|
||||||
|
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 java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
|
@ -21,18 +21,17 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
|
import com.intellectualcrafters.plot.listeners.PlotPlusListener;
|
||||||
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.inventory.ItemStack;
|
import org.bukkit.inventory.ItemStack;
|
||||||
import org.bukkit.inventory.meta.ItemMeta;
|
import org.bukkit.inventory.meta.ItemMeta;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import java.util.Arrays;
|
||||||
import com.intellectualcrafters.plot.listeners.PlotPlusListener;
|
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
|
||||||
|
|
||||||
public class MusicSubcommand extends SubCommand {
|
public class MusicSubcommand extends SubCommand {
|
||||||
public MusicSubcommand() {
|
public MusicSubcommand() {
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created 2014-11-09 for PlotSquared
|
* Created 2014-11-09 for PlotSquared
|
||||||
|
@ -21,14 +21,13 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.object.PlotSelection;
|
import com.intellectualcrafters.plot.object.PlotSelection;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class Paste extends SubCommand {
|
public class Paste extends SubCommand {
|
||||||
|
|
||||||
@ -62,8 +61,7 @@ public class Paste extends SubCommand {
|
|||||||
}
|
}
|
||||||
selection.paste(plr.getWorld(), plot);
|
selection.paste(plr.getWorld(), plot);
|
||||||
sendMessage(plr, C.PASTED);
|
sendMessage(plr, C.PASTED);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sendMessage(plr, C.NO_CLIPBOARD);
|
sendMessage(plr, C.NO_CLIPBOARD);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -21,16 +21,14 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.intellectualcrafters.plot.object.PlotId;
|
import com.intellectualcrafters.plot.object.PlotId;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@SuppressWarnings({ "unused", "deprecated", "javadoc" })
|
@SuppressWarnings({"unused", "deprecated", "javadoc"}) public class Purge extends SubCommand {
|
||||||
public class Purge extends SubCommand {
|
|
||||||
|
|
||||||
public Purge() {
|
public Purge() {
|
||||||
super("purge", "plots.admin", "Purge all plots for a world", "purge", "", CommandCategory.DEBUG, false);
|
super("purge", "plots.admin", "Purge all plots for a world", "purge", "", CommandCategory.DEBUG, false);
|
||||||
@ -60,8 +58,7 @@ public class Purge extends SubCommand {
|
|||||||
DBFunc.purge(world, id);
|
DBFunc.purge(world, id);
|
||||||
PlayerFunctions.sendMessage(null, "&aPurge of '" + args[0] + "' was successful!");
|
PlayerFunctions.sendMessage(null, "&aPurge of '" + args[0] + "' was successful!");
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NOT_VALID_PLOT_ID);
|
PlayerFunctions.sendMessage(plr, C.NOT_VALID_PLOT_ID);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -77,8 +74,7 @@ public class Purge extends SubCommand {
|
|||||||
DBFunc.purge(args[0]);
|
DBFunc.purge(args[0]);
|
||||||
PlayerFunctions.sendMessage(plr, (C.PURGE_SUCCESS));
|
PlayerFunctions.sendMessage(plr, (C.PURGE_SUCCESS));
|
||||||
return true;
|
return true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, "This is a dangerous command, if you are sure, use /plot purge {world} -o");
|
PlayerFunctions.sendMessage(plr, "This is a dangerous command, if you are sure, use /plot purge {world} -o");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -21,15 +21,13 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@SuppressWarnings({ "unused", "deprecated", "javadoc" })
|
@SuppressWarnings({"unused", "deprecated", "javadoc"}) public class Rate extends SubCommand {
|
||||||
public class Rate extends SubCommand {
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* String cmd, String permission, String description, String usage, String
|
* String cmd, String permission, String description, String usage, String
|
||||||
@ -79,8 +77,7 @@ public class Rate extends SubCommand {
|
|||||||
boolean rated = true;
|
boolean rated = true;
|
||||||
try {
|
try {
|
||||||
DBFunc.getRatings(plot);
|
DBFunc.getRatings(plot);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
rated = false;
|
rated = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,8 +87,7 @@ public class Rate extends SubCommand {
|
|||||||
final boolean success = true;
|
final boolean success = true;
|
||||||
if (success) {
|
if (success) {
|
||||||
sendMessage(plr, C.RATING_APPLIED, plot.getId().toString());
|
sendMessage(plr, C.RATING_APPLIED, plot.getId().toString());
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sendMessage(plr, C.COMMAND_WENT_WRONG);
|
sendMessage(plr, C.COMMAND_WENT_WRONG);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,12 +21,11 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.PlotWorld;
|
import com.intellectualcrafters.plot.object.PlotWorld;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class Reload extends SubCommand {
|
public class Reload extends SubCommand {
|
||||||
|
|
||||||
@ -47,8 +46,7 @@ public class Reload extends SubCommand {
|
|||||||
plotworld.loadDefaultConfiguration(PlotMain.config.getConfigurationSection("worlds." + pw));
|
plotworld.loadDefaultConfiguration(PlotMain.config.getConfigurationSection("worlds." + pw));
|
||||||
}
|
}
|
||||||
PlotMain.BroadcastWithPerms(C.RELOADED_CONFIGS);
|
PlotMain.BroadcastWithPerms(C.RELOADED_CONFIGS);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.RELOAD_FAILED);
|
PlayerFunctions.sendMessage(plr, C.RELOAD_FAILED);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,28 +21,23 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.jnbt.CompoundTag;
|
import com.intellectualcrafters.jnbt.CompoundTag;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.config.Settings;
|
import com.intellectualcrafters.plot.config.Settings;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.object.PlotId;
|
import com.intellectualcrafters.plot.object.PlotId;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.*;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.util.SchematicHandler;
|
|
||||||
import com.intellectualcrafters.plot.util.SchematicHandler.DataCollection;
|
import com.intellectualcrafters.plot.util.SchematicHandler.DataCollection;
|
||||||
import com.intellectualcrafters.plot.util.SchematicHandler.Dimension;
|
import com.intellectualcrafters.plot.util.SchematicHandler.Dimension;
|
||||||
import com.intellectualcrafters.plot.util.SetBlockFast;
|
import org.bukkit.Bukkit;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
public class Schematic extends SubCommand {
|
public class Schematic extends SubCommand {
|
||||||
|
|
||||||
@ -119,8 +114,7 @@ public class Schematic extends SubCommand {
|
|||||||
final Location loc = plr.getLocation();
|
final Location loc = plr.getLocation();
|
||||||
x = Math.min(length2 - dem.getX(), loc.getBlockX() - bot.getBlockX());
|
x = Math.min(length2 - dem.getX(), loc.getBlockX() - bot.getBlockX());
|
||||||
z = Math.min(length2 - dem.getZ(), loc.getBlockZ() - bot.getBlockZ());
|
z = Math.min(length2 - dem.getZ(), loc.getBlockZ() - bot.getBlockZ());
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
x = 0;
|
x = 0;
|
||||||
z = 0;
|
z = 0;
|
||||||
}
|
}
|
||||||
@ -237,8 +231,7 @@ public class Schematic extends SubCommand {
|
|||||||
final String owner = o == null ? "unknown" : o;
|
final String owner = o == null ? "unknown" : o;
|
||||||
if (sch == null) {
|
if (sch == null) {
|
||||||
PlayerFunctions.sendMessage(null, "&7 - Skipped plot &c" + plot.id);
|
PlayerFunctions.sendMessage(null, "&7 - Skipped plot &c" + plot.id);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Bukkit.getScheduler().runTaskAsynchronously(Bukkit.getServer().getPluginManager().getPlugin("PlotSquared"), new Runnable() {
|
Bukkit.getScheduler().runTaskAsynchronously(Bukkit.getServer().getPluginManager().getPlugin("PlotSquared"), new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@ -246,8 +239,7 @@ public class Schematic extends SubCommand {
|
|||||||
final boolean result = SchematicHandler.save(sch, Settings.SCHEMATIC_SAVE_PATH + "/" + plot.id.x + ";" + plot.id.y + "," + worldname + "," + owner + ".schematic");
|
final boolean result = SchematicHandler.save(sch, Settings.SCHEMATIC_SAVE_PATH + "/" + plot.id.x + ";" + plot.id.y + "," + worldname + "," + owner + ".schematic");
|
||||||
if (!result) {
|
if (!result) {
|
||||||
PlayerFunctions.sendMessage(null, "&7 - Failed to save &c" + plot.id);
|
PlayerFunctions.sendMessage(null, "&7 - Failed to save &c" + plot.id);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(null, "&7 - &aExport success: " + plot.id);
|
PlayerFunctions.sendMessage(null, "&7 - &aExport success: " + plot.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -281,8 +273,7 @@ public class Schematic extends SubCommand {
|
|||||||
}
|
}
|
||||||
p2 = myplot;
|
p2 = myplot;
|
||||||
world = plr.getWorld().getName();
|
world = plr.getWorld().getName();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (args.length == 3) {
|
if (args.length == 3) {
|
||||||
try {
|
try {
|
||||||
world = args[0];
|
world = args[0];
|
||||||
@ -293,13 +284,11 @@ public class Schematic extends SubCommand {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
p2 = PlotMain.getPlots(world).get(i);
|
p2 = PlotMain.getPlots(world).get(i);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlayerFunctions.sendMessage(null, "&cInvalid world or id. Use &7/plots sch save <world> <id>");
|
PlayerFunctions.sendMessage(null, "&cInvalid world or id. Use &7/plots sch save <world> <id>");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(null, "&cInvalid world or id. Use &7/plots sch save <world> <id>");
|
PlayerFunctions.sendMessage(null, "&cInvalid world or id. Use &7/plots sch save <world> <id>");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -326,8 +315,7 @@ public class Schematic extends SubCommand {
|
|||||||
final String owner = o == null ? "unknown" : o;
|
final String owner = o == null ? "unknown" : o;
|
||||||
if (sch == null) {
|
if (sch == null) {
|
||||||
PlayerFunctions.sendMessage(plr, "&7 - Skipped plot &c" + plot.id);
|
PlayerFunctions.sendMessage(plr, "&7 - Skipped plot &c" + plot.id);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Bukkit.getScheduler().runTaskAsynchronously(Bukkit.getServer().getPluginManager().getPlugin("PlotSquared"), new Runnable() {
|
Bukkit.getScheduler().runTaskAsynchronously(Bukkit.getServer().getPluginManager().getPlugin("PlotSquared"), new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
@ -335,8 +323,7 @@ public class Schematic extends SubCommand {
|
|||||||
final boolean result = SchematicHandler.save(sch, Settings.SCHEMATIC_SAVE_PATH + "/" + plot.id.x + ";" + plot.id.y + "," + world + "," + owner.trim() + ".schematic");
|
final boolean result = SchematicHandler.save(sch, Settings.SCHEMATIC_SAVE_PATH + "/" + plot.id.x + ";" + plot.id.y + "," + world + "," + owner.trim() + ".schematic");
|
||||||
if (!result) {
|
if (!result) {
|
||||||
PlayerFunctions.sendMessage(plr, "&7 - Failed to save &c" + plot.id);
|
PlayerFunctions.sendMessage(plr, "&7 - Failed to save &c" + plot.id);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, "&7 - &aExport success: " + plot.id);
|
PlayerFunctions.sendMessage(plr, "&7 - &aExport success: " + plot.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,17 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.block.Biome;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
@ -48,6 +37,16 @@ import com.intellectualcrafters.plot.object.PlotWorld;
|
|||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
import com.intellectualcrafters.plot.util.StringComparison;
|
import com.intellectualcrafters.plot.util.StringComparison;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.block.Biome;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -100,8 +99,7 @@ public class Set extends SubCommand {
|
|||||||
if (PlotMain.worldGuardListener != null) {
|
if (PlotMain.worldGuardListener != null) {
|
||||||
if (message.equals("")) {
|
if (message.equals("")) {
|
||||||
message = StringUtils.join(PlotMain.worldGuardListener.str_flags, "&c, &6");
|
message = StringUtils.join(PlotMain.worldGuardListener.str_flags, "&c, &6");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
message += "," + StringUtils.join(PlotMain.worldGuardListener.str_flags, "&c, &6");
|
message += "," + StringUtils.join(PlotMain.worldGuardListener.str_flags, "&c, &6");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -113,8 +111,7 @@ public class Set extends SubCommand {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
af = FlagManager.getFlag(args[1].toLowerCase());
|
af = FlagManager.getFlag(args[1].toLowerCase());
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
af = new AbstractFlag(args[1].toLowerCase());
|
af = new AbstractFlag(args[1].toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,8 +180,7 @@ public class Set extends SubCommand {
|
|||||||
PlayerFunctions.sendMessage(plr, C.FLAG_ADDED);
|
PlayerFunctions.sendMessage(plr, C.FLAG_ADDED);
|
||||||
PlotListener.plotEntry(plr, plot);
|
PlotListener.plotEntry(plr, plot);
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlayerFunctions.sendMessage(plr, "&c" + e.getMessage());
|
PlayerFunctions.sendMessage(plr, "&c" + e.getMessage());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -275,8 +271,7 @@ public class Set extends SubCommand {
|
|||||||
Material material;
|
Material material;
|
||||||
try {
|
try {
|
||||||
material = getMaterial(args[1], PlotWorld.BLOCKS);
|
material = getMaterial(args[1], PlotWorld.BLOCKS);
|
||||||
}
|
} catch (final NullPointerException e) {
|
||||||
catch (final NullPointerException e) {
|
|
||||||
material = null;
|
material = null;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
@ -296,8 +291,7 @@ public class Set extends SubCommand {
|
|||||||
if (args.length > 2) {
|
if (args.length > 2) {
|
||||||
try {
|
try {
|
||||||
data = (byte) Integer.parseInt(args[2]);
|
data = (byte) Integer.parseInt(args[2]);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NOT_VALID_DATA);
|
PlayerFunctions.sendMessage(plr, C.NOT_VALID_DATA);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -317,8 +311,7 @@ public class Set extends SubCommand {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
//
|
//
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked") final ArrayList<Material> materials = (ArrayList<Material>) ((ArrayList<Material>) PlotWorld.BLOCKS).clone();
|
||||||
final ArrayList<Material> materials = (ArrayList<Material>) ((ArrayList<Material>) PlotWorld.BLOCKS).clone();
|
|
||||||
materials.add(Material.AIR);
|
materials.add(Material.AIR);
|
||||||
//
|
//
|
||||||
final String[] strings = args[1].split(",");
|
final String[] strings = args[1].split(",");
|
||||||
@ -352,13 +345,11 @@ public class Set extends SubCommand {
|
|||||||
if (ss.length == 1) {
|
if (ss.length == 1) {
|
||||||
|
|
||||||
blocks[index] = new PlotBlock((short) m.getId(), (byte) 0);
|
blocks[index] = new PlotBlock((short) m.getId(), (byte) 0);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
byte b;
|
byte b;
|
||||||
try {
|
try {
|
||||||
b = (byte) Integer.parseInt(ss[1]);
|
b = (byte) Integer.parseInt(ss[1]);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NOT_VALID_DATA);
|
PlayerFunctions.sendMessage(plr, C.NOT_VALID_DATA);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -402,8 +393,7 @@ public class Set extends SubCommand {
|
|||||||
if (args.length > 2) {
|
if (args.length > 2) {
|
||||||
try {
|
try {
|
||||||
data = (byte) Integer.parseInt(args[2]);
|
data = (byte) Integer.parseInt(args[2]);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NOT_VALID_DATA);
|
PlayerFunctions.sendMessage(plr, C.NOT_VALID_DATA);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -415,8 +405,7 @@ public class Set extends SubCommand {
|
|||||||
AbstractFlag af;
|
AbstractFlag af;
|
||||||
try {
|
try {
|
||||||
af = new AbstractFlag(args[0].toLowerCase());
|
af = new AbstractFlag(args[0].toLowerCase());
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
af = new AbstractFlag("");
|
af = new AbstractFlag("");
|
||||||
}
|
}
|
||||||
if (FlagManager.getFlags().contains(af)) {
|
if (FlagManager.getFlags().contains(af)) {
|
||||||
|
@ -21,12 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
@ -35,9 +29,13 @@ import com.intellectualcrafters.plot.object.PlotId;
|
|||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
import java.util.ArrayList;
|
||||||
public class SetOwner extends SubCommand {
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@SuppressWarnings("deprecation") public class SetOwner extends SubCommand {
|
||||||
|
|
||||||
public SetOwner() {
|
public SetOwner() {
|
||||||
super("setowner", "plots.admin", "Set the plot owner", "setowner {player}", "so", CommandCategory.ACTIONS, true);
|
super("setowner", "plots.admin", "Set the plot owner", "setowner {player}", "so", CommandCategory.ACTIONS, true);
|
||||||
|
@ -21,11 +21,13 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.io.IOException;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import java.util.HashMap;
|
import com.intellectualcrafters.plot.config.ConfigurationNode;
|
||||||
import java.util.Map;
|
import com.intellectualcrafters.plot.generator.DefaultPlotWorld;
|
||||||
|
import com.intellectualcrafters.plot.object.PlotGenerator;
|
||||||
|
import com.intellectualcrafters.plot.object.PlotWorld;
|
||||||
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -35,13 +37,10 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.generator.ChunkGenerator;
|
import org.bukkit.generator.ChunkGenerator;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import java.io.IOException;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import java.util.ArrayList;
|
||||||
import com.intellectualcrafters.plot.config.ConfigurationNode;
|
import java.util.HashMap;
|
||||||
import com.intellectualcrafters.plot.generator.DefaultPlotWorld;
|
import java.util.Map;
|
||||||
import com.intellectualcrafters.plot.object.PlotGenerator;
|
|
||||||
import com.intellectualcrafters.plot.object.PlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created 2014-09-26 for PlotSquared
|
* Created 2014-09-26 for PlotSquared
|
||||||
@ -62,8 +61,7 @@ public class Setup extends SubCommand implements Listener {
|
|||||||
|
|
||||||
if (plr == null) {
|
if (plr == null) {
|
||||||
plrname = "";
|
plrname = "";
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
plrname = plr.getName();
|
plrname = plr.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -77,20 +75,17 @@ public class Setup extends SubCommand implements Listener {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
PlotMain.config.save(PlotMain.configFile);
|
PlotMain.config.save(PlotMain.configFile);
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creating the worlds
|
// Creating the worlds
|
||||||
if ((Bukkit.getPluginManager().getPlugin("Multiverse-Core") != null) && Bukkit.getPluginManager().getPlugin("Multiverse-Core").isEnabled()) {
|
if ((Bukkit.getPluginManager().getPlugin("Multiverse-Core") != null) && Bukkit.getPluginManager().getPlugin("Multiverse-Core").isEnabled()) {
|
||||||
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv create " + world + " normal -g " + object.plugin);
|
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv create " + world + " normal -g " + object.plugin);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if ((Bukkit.getPluginManager().getPlugin("MultiWorld") != null) && Bukkit.getPluginManager().getPlugin("MultiWorld").isEnabled()) {
|
if ((Bukkit.getPluginManager().getPlugin("MultiWorld") != null) && Bukkit.getPluginManager().getPlugin("MultiWorld").isEnabled()) {
|
||||||
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw create " + world + " plugin:" + object.plugin);
|
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw create " + world + " plugin:" + object.plugin);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
for (final Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
|
for (final Plugin plugin : Bukkit.getPluginManager().getPlugins()) {
|
||||||
if (plugin.isEnabled()) {
|
if (plugin.isEnabled()) {
|
||||||
if (plugin.getDefaultWorldGenerator("world", "") != null) {
|
if (plugin.getDefaultWorldGenerator("world", "") != null) {
|
||||||
@ -120,8 +115,7 @@ public class Setup extends SubCommand implements Listener {
|
|||||||
if (args.length < 1) {
|
if (args.length < 1) {
|
||||||
sendMessage(plr, C.SETUP_STEP, object.current + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + "");
|
sendMessage(plr, C.SETUP_STEP, object.current + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + "");
|
||||||
return true;
|
return true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (args[0].equalsIgnoreCase("cancel")) {
|
if (args[0].equalsIgnoreCase("cancel")) {
|
||||||
setupMap.remove(plrname);
|
setupMap.remove(plrname);
|
||||||
PlayerFunctions.sendMessage(plr, "&cCancelled setup.");
|
PlayerFunctions.sendMessage(plr, "&cCancelled setup.");
|
||||||
@ -133,8 +127,7 @@ public class Setup extends SubCommand implements Listener {
|
|||||||
step = object.step[object.current];
|
step = object.step[object.current];
|
||||||
sendMessage(plr, C.SETUP_STEP, object.current + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + "");
|
sendMessage(plr, C.SETUP_STEP, object.current + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + "");
|
||||||
return true;
|
return true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sendMessage(plr, C.SETUP_STEP, object.current + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + "");
|
sendMessage(plr, C.SETUP_STEP, object.current + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + "");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -151,15 +144,13 @@ public class Setup extends SubCommand implements Listener {
|
|||||||
step = object.step[object.current];
|
step = object.step[object.current];
|
||||||
sendMessage(plr, C.SETUP_STEP, object.current + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + "");
|
sendMessage(plr, C.SETUP_STEP, object.current + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + "");
|
||||||
return true;
|
return true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sendMessage(plr, C.SETUP_INVALID_ARG, args[0], step.getConstant());
|
sendMessage(plr, C.SETUP_INVALID_ARG, args[0], step.getConstant());
|
||||||
sendMessage(plr, C.SETUP_STEP, object.current + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + "");
|
sendMessage(plr, C.SETUP_STEP, object.current + 1 + "", step.getDescription(), step.getType().getType(), step.getDefaultValue() + "");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (args.length < 1) {
|
if (args.length < 1) {
|
||||||
sendMessage(plr, C.SETUP_MISSING_WORLD);
|
sendMessage(plr, C.SETUP_MISSING_WORLD);
|
||||||
return true;
|
return true;
|
||||||
@ -202,8 +193,7 @@ public class Setup extends SubCommand implements Listener {
|
|||||||
PlotWorld plotworld;
|
PlotWorld plotworld;
|
||||||
if (generator instanceof PlotGenerator) {
|
if (generator instanceof PlotGenerator) {
|
||||||
plotworld = ((PlotGenerator) generator).getNewPlotWorld(world);
|
plotworld = ((PlotGenerator) generator).getNewPlotWorld(world);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
plotworld = new DefaultPlotWorld(world);
|
plotworld = new DefaultPlotWorld(world);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,21 +21,19 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SubCommand class
|
* SubCommand class
|
||||||
*
|
*
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings({ "deprecation", "unused" })
|
@SuppressWarnings({"deprecation", "unused"}) public abstract class SubCommand {
|
||||||
public abstract class SubCommand {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Command
|
* Command
|
||||||
@ -67,18 +65,12 @@ public abstract class SubCommand {
|
|||||||
public final boolean isPlayer;
|
public final boolean isPlayer;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param cmd
|
* @param cmd Command /plot {cmd} <-- That!
|
||||||
* Command /plot {cmd} <-- That!
|
* @param permission Permission Node
|
||||||
* @param permission
|
* @param description Simple description
|
||||||
* Permission Node
|
* @param usage Usage description: /plot command {args...}
|
||||||
* @param description
|
* @param alias Command alias
|
||||||
* Simple description
|
* @param category CommandCategory. Pick whichever is closest to what you want.
|
||||||
* @param usage
|
|
||||||
* Usage description: /plot command {args...}
|
|
||||||
* @param alias
|
|
||||||
* Command alias
|
|
||||||
* @param category
|
|
||||||
* CommandCategory. Pick whichever is closest to what you want.
|
|
||||||
*/
|
*/
|
||||||
public SubCommand(final String cmd, final String permission, final String description, final String usage, final String alias, final CommandCategory category, final boolean isPlayer) {
|
public SubCommand(final String cmd, final String permission, final String description, final String usage, final String alias, final CommandCategory category, final boolean isPlayer) {
|
||||||
this.cmd = cmd;
|
this.cmd = cmd;
|
||||||
@ -92,18 +84,12 @@ public abstract class SubCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param cmd
|
* @param cmd Command /plot {cmd} <-- That!
|
||||||
* Command /plot {cmd} <-- That!
|
* @param permission Permission Node
|
||||||
* @param permission
|
* @param description Simple description
|
||||||
* Permission Node
|
* @param usage Usage description: /plot command {args...}
|
||||||
* @param description
|
* @param aliases Command aliases
|
||||||
* Simple description
|
* @param category CommandCategory. Pick whichever is closest to what you want.
|
||||||
* @param usage
|
|
||||||
* Usage description: /plot command {args...}
|
|
||||||
* @param aliases
|
|
||||||
* Command aliases
|
|
||||||
* @param category
|
|
||||||
* CommandCategory. Pick whichever is closest to what you want.
|
|
||||||
*/
|
*/
|
||||||
public SubCommand(final String cmd, final String permission, final String description, final String usage, final CommandCategory category, final boolean isPlayer, final String... aliases) {
|
public SubCommand(final String cmd, final String permission, final String description, final String usage, final CommandCategory category, final boolean isPlayer, final String... aliases) {
|
||||||
this.cmd = cmd;
|
this.cmd = cmd;
|
||||||
@ -117,14 +103,10 @@ public abstract class SubCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param command
|
* @param command Command /plot {cmd} <-- That!
|
||||||
* Command /plot {cmd} <-- That!
|
* @param description Simple description
|
||||||
* @param description
|
* @param usage Usage description: /plot command {args...}
|
||||||
* Simple description
|
* @param category CommandCategory. Pick whichever closests to what you want.
|
||||||
* @param usage
|
|
||||||
* Usage description: /plot command {args...}
|
|
||||||
* @param category
|
|
||||||
* CommandCategory. Pick whichever closests to what you want.
|
|
||||||
*/
|
*/
|
||||||
public SubCommand(final Command command, final String description, final String usage, final CommandCategory category, final boolean isPlayer) {
|
public SubCommand(final Command command, final String description, final String usage, final CommandCategory category, final boolean isPlayer) {
|
||||||
this.cmd = command.getCommand();
|
this.cmd = command.getCommand();
|
||||||
@ -140,10 +122,9 @@ public abstract class SubCommand {
|
|||||||
/**
|
/**
|
||||||
* Execute.
|
* Execute.
|
||||||
*
|
*
|
||||||
* @param plr
|
* @param plr executor
|
||||||
* executor
|
* @param args arguments
|
||||||
* @param args
|
*
|
||||||
* arguments
|
|
||||||
* @return true on success, false on failure
|
* @return true on success, false on failure
|
||||||
*/
|
*/
|
||||||
public abstract boolean execute(final Player plr, final String... args);
|
public abstract boolean execute(final Player plr, final String... args);
|
||||||
@ -151,8 +132,7 @@ public abstract class SubCommand {
|
|||||||
/**
|
/**
|
||||||
* Execute the command as console
|
* Execute the command as console
|
||||||
*
|
*
|
||||||
* @param args
|
* @param args Arguments
|
||||||
* Arguments
|
|
||||||
*/
|
*/
|
||||||
public void executeConsole(final String... args) {
|
public void executeConsole(final String... args) {
|
||||||
this.execute(null, args);
|
this.execute(null, args);
|
||||||
@ -161,12 +141,10 @@ public abstract class SubCommand {
|
|||||||
/**
|
/**
|
||||||
* Send a message
|
* Send a message
|
||||||
*
|
*
|
||||||
* @param plr
|
* @param plr Player who will receive the mssage
|
||||||
* Player who will receive the mssage
|
* @param c Caption
|
||||||
* @param c
|
* @param args Arguments (%s's)
|
||||||
* Caption
|
*
|
||||||
* @param args
|
|
||||||
* Arguments (%s's)
|
|
||||||
* @see com.intellectualcrafters.plot.util.PlayerFunctions#sendMessage(org.bukkit.entity.Player,
|
* @see com.intellectualcrafters.plot.util.PlayerFunctions#sendMessage(org.bukkit.entity.Player,
|
||||||
* com.intellectualcrafters.plot.config.C, String...)
|
* com.intellectualcrafters.plot.config.C, String...)
|
||||||
*/
|
*/
|
||||||
@ -221,8 +199,7 @@ public abstract class SubCommand {
|
|||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name readable name
|
||||||
* readable name
|
|
||||||
*/
|
*/
|
||||||
CommandCategory(final String name) {
|
CommandCategory(final String name) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
@ -21,9 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
@ -32,6 +29,8 @@ import com.intellectualcrafters.plot.object.PlotSelection;
|
|||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
import com.intellectualcrafters.plot.util.SetBlockFast;
|
import com.intellectualcrafters.plot.util.SetBlockFast;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created 2014-08-01 for PlotSquared
|
* Created 2014-08-01 for PlotSquared
|
||||||
@ -74,8 +73,7 @@ public class Swap extends SubCommand {
|
|||||||
PlayerFunctions.sendMessage(plr, C.NO_PERM_MERGE, plotid.toString());
|
PlayerFunctions.sendMessage(plr, C.NO_PERM_MERGE, plotid.toString());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NOT_VALID_PLOT_ID);
|
PlayerFunctions.sendMessage(plr, C.NOT_VALID_PLOT_ID);
|
||||||
PlayerFunctions.sendMessage(plr, C.SWAP_SYNTAX);
|
PlayerFunctions.sendMessage(plr, C.SWAP_SYNTAX);
|
||||||
return false;
|
return false;
|
||||||
|
@ -21,17 +21,16 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
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.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.object.PlotId;
|
import com.intellectualcrafters.plot.object.PlotId;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -70,8 +69,7 @@ public class TP extends SubCommand {
|
|||||||
plotid = new PlotId(Integer.parseInt(id.split(";")[0]), Integer.parseInt(id.split(";")[1]));
|
plotid = new PlotId(Integer.parseInt(id.split(";")[0]), Integer.parseInt(id.split(";")[1]));
|
||||||
PlotMain.teleportPlayer(plr, plr.getLocation(), PlotHelper.getPlot(world, plotid));
|
PlotMain.teleportPlayer(plr, plr.getLocation(), PlotHelper.getPlot(world, plotid));
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.NOT_VALID_PLOT_ID);
|
PlayerFunctions.sendMessage(plr, C.NOT_VALID_PLOT_ID);
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@ -86,8 +84,7 @@ public class TP extends SubCommand {
|
|||||||
}
|
}
|
||||||
a = split[0];
|
a = split[0];
|
||||||
}
|
}
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation") final Player player = Bukkit.getPlayer(a);
|
||||||
final Player player = Bukkit.getPlayer(a);
|
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
final java.util.Set<Plot> plotMainPlots = PlotMain.getPlots(world, player);
|
final java.util.Set<Plot> plotMainPlots = PlotMain.getPlots(world, player);
|
||||||
final Plot[] plots = plotMainPlots.toArray(new Plot[plotMainPlots.size()]);
|
final Plot[] plots = plotMainPlots.toArray(new Plot[plotMainPlots.size()]);
|
||||||
|
@ -21,12 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
@ -34,9 +28,13 @@ import com.intellectualcrafters.plot.events.PlayerPlotTrustedEvent;
|
|||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
import java.util.UUID;
|
||||||
public class Trusted extends SubCommand {
|
|
||||||
|
@SuppressWarnings("deprecation") public class Trusted extends SubCommand {
|
||||||
|
|
||||||
public Trusted() {
|
public Trusted() {
|
||||||
super(Command.TRUSTED, "Manage trusted users for a plot", "trusted {add|remove} {player}", CommandCategory.ACTIONS, true);
|
super(Command.TRUSTED, "Manage trusted users for a plot", "trusted {add|remove} {player}", CommandCategory.ACTIONS, true);
|
||||||
@ -62,8 +60,7 @@ public class Trusted extends SubCommand {
|
|||||||
if (args[1].equalsIgnoreCase("*")) {
|
if (args[1].equalsIgnoreCase("*")) {
|
||||||
uuid = DBFunc.everyone;
|
uuid = DBFunc.everyone;
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
uuid = UUIDHandler.getUUID(args[1]);
|
uuid = UUIDHandler.getUUID(args[1]);
|
||||||
}
|
}
|
||||||
if (!plot.trusted.contains(uuid)) {
|
if (!plot.trusted.contains(uuid)) {
|
||||||
@ -88,15 +85,13 @@ public class Trusted extends SubCommand {
|
|||||||
DBFunc.setTrusted(plr.getWorld().getName(), plot, Bukkit.getOfflinePlayer(args[1]));
|
DBFunc.setTrusted(plr.getWorld().getName(), plot, Bukkit.getOfflinePlayer(args[1]));
|
||||||
final PlayerPlotTrustedEvent event = new PlayerPlotTrustedEvent(plr, plot, uuid, true);
|
final PlayerPlotTrustedEvent event = new PlayerPlotTrustedEvent(plr, plot, uuid, true);
|
||||||
Bukkit.getPluginManager().callEvent(event);
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.ALREADY_ADDED);
|
PlayerFunctions.sendMessage(plr, C.ALREADY_ADDED);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
PlayerFunctions.sendMessage(plr, C.TRUSTED_ADDED);
|
PlayerFunctions.sendMessage(plr, C.TRUSTED_ADDED);
|
||||||
return true;
|
return true;
|
||||||
}
|
} else if (args[0].equalsIgnoreCase("remove")) {
|
||||||
else if (args[0].equalsIgnoreCase("remove")) {
|
|
||||||
if (args[1].equalsIgnoreCase("*")) {
|
if (args[1].equalsIgnoreCase("*")) {
|
||||||
final UUID uuid = DBFunc.everyone;
|
final UUID uuid = DBFunc.everyone;
|
||||||
if (!plot.trusted.contains(uuid)) {
|
if (!plot.trusted.contains(uuid)) {
|
||||||
@ -127,8 +122,7 @@ public class Trusted extends SubCommand {
|
|||||||
final PlayerPlotTrustedEvent event = new PlayerPlotTrustedEvent(plr, plot, uuid, false);
|
final PlayerPlotTrustedEvent event = new PlayerPlotTrustedEvent(plr, plot, uuid, false);
|
||||||
Bukkit.getPluginManager().callEvent(event);
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
PlayerFunctions.sendMessage(plr, C.TRUSTED_REMOVED);
|
PlayerFunctions.sendMessage(plr, C.TRUSTED_REMOVED);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, C.TRUSTED_NEED_ARGUMENT);
|
PlayerFunctions.sendMessage(plr, C.TRUSTED_NEED_ARGUMENT);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,9 @@
|
|||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created 2014-11-09 for PlotSquared
|
* Created 2014-11-09 for PlotSquared
|
||||||
|
@ -21,16 +21,14 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
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.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.object.PlotWorld;
|
import com.intellectualcrafters.plot.object.PlotWorld;
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
public class Unclaim extends SubCommand {
|
public class Unclaim extends SubCommand {
|
||||||
|
|
||||||
@ -66,9 +64,14 @@ public class Unclaim extends SubCommand {
|
|||||||
if ((Math.abs(plot.id.x) <= Math.abs(Auto.lastPlot.x)) && (Math.abs(plot.id.y) <= Math.abs(Auto.lastPlot.y))) {
|
if ((Math.abs(plot.id.x) <= Math.abs(Auto.lastPlot.x)) && (Math.abs(plot.id.y) <= Math.abs(Auto.lastPlot.y))) {
|
||||||
Auto.lastPlot = plot.id;
|
Auto.lastPlot = plot.id;
|
||||||
}
|
}
|
||||||
|
<<<<<<< HEAD
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
PlayerFunctions.sendMessage(plr, "Plot unclaim has been denied.");
|
PlayerFunctions.sendMessage(plr, "Plot unclaim has been denied.");
|
||||||
|
=======
|
||||||
|
} else {
|
||||||
|
PlayerFunctions.sendMessage(plr, "Plot removal has been denied.");
|
||||||
|
>>>>>>> 73e92b834155ea9e458d7299ad78f4fd9b55aa66
|
||||||
}
|
}
|
||||||
PlayerFunctions.sendMessage(plr, C.UNCLAIM_SUCCESS);
|
PlayerFunctions.sendMessage(plr, C.UNCLAIM_SUCCESS);
|
||||||
return true;
|
return true;
|
||||||
|
@ -21,12 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
@ -39,6 +33,11 @@ import com.intellectualcrafters.plot.util.PlayerFunctions;
|
|||||||
import com.intellectualcrafters.plot.util.PlotHelper;
|
import com.intellectualcrafters.plot.util.PlotHelper;
|
||||||
import com.intellectualcrafters.plot.util.SetBlockFast;
|
import com.intellectualcrafters.plot.util.SetBlockFast;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created 2014-08-01 for PlotSquared
|
* Created 2014-08-01 for PlotSquared
|
||||||
@ -126,13 +125,11 @@ public class Unlink extends SubCommand {
|
|||||||
if (PlotHelper.canSetFast) {
|
if (PlotHelper.canSetFast) {
|
||||||
SetBlockFast.update(plr);
|
SetBlockFast.update(plr);
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
// execute(final Player plr, final String... args) {
|
// execute(final Player plr, final String... args) {
|
||||||
try {
|
try {
|
||||||
PlotMain.sendConsoleSenderMessage("Error on: " + getClass().getMethod("execute", Player.class, String[].class).toGenericString() + ":119, when trying to use \"SetBlockFast#update\"");
|
PlotMain.sendConsoleSenderMessage("Error on: " + getClass().getMethod("execute", Player.class, String[].class).toGenericString() + ":119, when trying to use \"SetBlockFast#update\"");
|
||||||
}
|
} catch (final Exception ex) {
|
||||||
catch (final Exception ex) {
|
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,16 +21,15 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class Visit extends SubCommand {
|
public class Visit extends SubCommand {
|
||||||
public Visit() {
|
public Visit() {
|
||||||
@ -68,8 +67,7 @@ public class Visit extends SubCommand {
|
|||||||
int i;
|
int i;
|
||||||
try {
|
try {
|
||||||
i = Integer.parseInt(args[1]);
|
i = Integer.parseInt(args[1]);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return sendMessage(plr, C.NOT_VALID_NUMBER);
|
return sendMessage(plr, C.NOT_VALID_NUMBER);
|
||||||
}
|
}
|
||||||
if ((i < 0) || (i >= plots.size())) {
|
if ((i < 0) || (i >= plots.size())) {
|
||||||
|
@ -21,12 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.C;
|
import com.intellectualcrafters.plot.config.C;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
@ -34,6 +28,11 @@ import com.intellectualcrafters.plot.object.PlotId;
|
|||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.util.StringComparison;
|
import com.intellectualcrafters.plot.util.StringComparison;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -62,8 +61,7 @@ public class list extends SubCommand {
|
|||||||
builder.append(C.SUBCOMMAND_SET_OPTIONS_HEADER.s());
|
builder.append(C.SUBCOMMAND_SET_OPTIONS_HEADER.s());
|
||||||
if (plr != null) {
|
if (plr != null) {
|
||||||
builder.append(getArgumentList(new String[]{"mine", "shared", "world", "all"}));
|
builder.append(getArgumentList(new String[]{"mine", "shared", "world", "all"}));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
builder.append(getArgumentList(new String[]{"all"}));
|
builder.append(getArgumentList(new String[]{"all"}));
|
||||||
}
|
}
|
||||||
PlayerFunctions.sendMessage(plr, builder.toString());
|
PlayerFunctions.sendMessage(plr, builder.toString());
|
||||||
@ -84,8 +82,7 @@ public class list extends SubCommand {
|
|||||||
string.append(C.PLOT_LIST_FOOTER.s().replaceAll("%word%", "You have").replaceAll("%num%", idx + "").replaceAll("%plot%", idx == 1 ? "plot" : "plots"));
|
string.append(C.PLOT_LIST_FOOTER.s().replaceAll("%word%", "You have").replaceAll("%num%", idx + "").replaceAll("%plot%", idx == 1 ? "plot" : "plots"));
|
||||||
PlayerFunctions.sendMessage(plr, string.toString());
|
PlayerFunctions.sendMessage(plr, string.toString());
|
||||||
return true;
|
return true;
|
||||||
}
|
} else if (args[0].equalsIgnoreCase("shared") && (plr != null)) {
|
||||||
else if (args[0].equalsIgnoreCase("shared") && (plr != null)) {
|
|
||||||
final StringBuilder string = new StringBuilder();
|
final StringBuilder string = new StringBuilder();
|
||||||
string.append(C.PLOT_LIST_HEADER.s().replaceAll("%word%", "all")).append("\n");
|
string.append(C.PLOT_LIST_HEADER.s().replaceAll("%word%", "all")).append("\n");
|
||||||
for (final Plot p : PlotMain.getPlotsSorted()) {
|
for (final Plot p : PlotMain.getPlotsSorted()) {
|
||||||
@ -96,8 +93,7 @@ public class list extends SubCommand {
|
|||||||
string.append(C.PLOT_LIST_FOOTER.s().replaceAll("%word%", "There are").replaceAll("%num%", PlotMain.getPlotsSorted().size() + "").replaceAll("%plot%", PlotMain.getPlotsSorted().size() == 1 ? "plot" : "plots"));
|
string.append(C.PLOT_LIST_FOOTER.s().replaceAll("%word%", "There are").replaceAll("%num%", PlotMain.getPlotsSorted().size() + "").replaceAll("%plot%", PlotMain.getPlotsSorted().size() == 1 ? "plot" : "plots"));
|
||||||
PlayerFunctions.sendMessage(plr, string.toString());
|
PlayerFunctions.sendMessage(plr, string.toString());
|
||||||
return true;
|
return true;
|
||||||
}
|
} else if (args[0].equalsIgnoreCase("all")) {
|
||||||
else if (args[0].equalsIgnoreCase("all")) {
|
|
||||||
// Current page
|
// Current page
|
||||||
int page = 0;
|
int page = 0;
|
||||||
|
|
||||||
@ -109,8 +105,7 @@ public class list extends SubCommand {
|
|||||||
if (page < 0) {
|
if (page < 0) {
|
||||||
page = 0;
|
page = 0;
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
page = 0;
|
page = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -145,8 +140,7 @@ public class list extends SubCommand {
|
|||||||
string.append(C.PLOT_LIST_FOOTER.s().replaceAll("%word%", "There is").replaceAll("%num%", PlotMain.getPlotsSorted().size() + "").replaceAll("%plot%", PlotMain.getPlotsSorted().size() == 1 ? "plot" : "plots"));
|
string.append(C.PLOT_LIST_FOOTER.s().replaceAll("%word%", "There is").replaceAll("%num%", PlotMain.getPlotsSorted().size() + "").replaceAll("%plot%", PlotMain.getPlotsSorted().size() == 1 ? "plot" : "plots"));
|
||||||
PlayerFunctions.sendMessage(plr, string.toString());
|
PlayerFunctions.sendMessage(plr, string.toString());
|
||||||
return true;
|
return true;
|
||||||
}
|
} else if (args[0].equalsIgnoreCase("world") && (plr != null)) {
|
||||||
else if (args[0].equalsIgnoreCase("world") && (plr != null)) {
|
|
||||||
final StringBuilder string = new StringBuilder();
|
final StringBuilder string = new StringBuilder();
|
||||||
string.append(C.PLOT_LIST_HEADER.s().replaceAll("%word%", "all")).append("\n");
|
string.append(C.PLOT_LIST_HEADER.s().replaceAll("%word%", "all")).append("\n");
|
||||||
final HashMap<PlotId, Plot> plots = PlotMain.getPlots(plr.getWorld());
|
final HashMap<PlotId, Plot> plots = PlotMain.getPlots(plr.getWorld());
|
||||||
@ -156,8 +150,7 @@ public class list extends SubCommand {
|
|||||||
string.append(C.PLOT_LIST_FOOTER.s().replaceAll("%word%", "There is").replaceAll("%num%", plots.values().size() + "").replaceAll("%plot%", plots.values().size() == 1 ? "plot" : "plots"));
|
string.append(C.PLOT_LIST_FOOTER.s().replaceAll("%word%", "There is").replaceAll("%num%", plots.values().size() + "").replaceAll("%plot%", plots.values().size() == 1 ? "plot" : "plots"));
|
||||||
PlayerFunctions.sendMessage(plr, string.toString());
|
PlayerFunctions.sendMessage(plr, string.toString());
|
||||||
return true;
|
return true;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// execute(plr);
|
// execute(plr);
|
||||||
sendMessage(plr, C.DID_YOU_MEAN, new StringComparison(args[0], new String[]{"mine", "shared", "world", "all"}).getBestMatch());
|
sendMessage(plr, C.DID_YOU_MEAN, new StringComparison(args[0], new String[]{"mine", "shared", "world", "all"}).getBestMatch());
|
||||||
return false;
|
return false;
|
||||||
|
@ -21,19 +21,18 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
|
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.net.URLConnection;
|
import java.net.URLConnection;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.util.PlayerFunctions;
|
|
||||||
|
|
||||||
public class plugin extends SubCommand {
|
public class plugin extends SubCommand {
|
||||||
|
|
||||||
public static String downloads, version;
|
public static String downloads, version;
|
||||||
@ -48,8 +47,7 @@ public class plugin extends SubCommand {
|
|||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
downloads = convertToNumericString(getInfo("https://intellectualsites.com/spigot_api.php?method=downloads&url=http://www.spigotmc.org/resources/plotsquared.1177/"), false);
|
downloads = convertToNumericString(getInfo("https://intellectualsites.com/spigot_api.php?method=downloads&url=http://www.spigotmc.org/resources/plotsquared.1177/"), false);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
downloads = "unknown";
|
downloads = "unknown";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -59,8 +57,7 @@ public class plugin extends SubCommand {
|
|||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
version = convertToNumericString(getInfo("https://intellectualsites.com/spigot_api.php?method=version&resource=1177"), true);
|
version = convertToNumericString(getInfo("https://intellectualsites.com/spigot_api.php?method=version&resource=1177"), true);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
// Let's just ignore this, most likely error 500...
|
// Let's just ignore this, most likely error 500...
|
||||||
version = "unknown";
|
version = "unknown";
|
||||||
}
|
}
|
||||||
@ -73,8 +70,7 @@ public class plugin extends SubCommand {
|
|||||||
for (final char c : str.toCharArray()) {
|
for (final char c : str.toCharArray()) {
|
||||||
if (Character.isDigit(c)) {
|
if (Character.isDigit(c)) {
|
||||||
builder.append(c);
|
builder.append(c);
|
||||||
}
|
} else if (dividers && ((c == ',') || (c == '.') || (c == '-') || (c == '_'))) {
|
||||||
else if (dividers && ((c == ',') || (c == '.') || (c == '-') || (c == '_'))) {
|
|
||||||
builder.append(c);
|
builder.append(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,15 +21,10 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.config;
|
package com.intellectualcrafters.plot.config;
|
||||||
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualsites.translation.TranslationFile;
|
import com.intellectualsites.translation.*;
|
||||||
import com.intellectualsites.translation.TranslationLanguage;
|
|
||||||
import com.intellectualsites.translation.TranslationManager;
|
|
||||||
import com.intellectualsites.translation.TranslationObject;
|
|
||||||
import com.intellectualsites.translation.YamlTranslationFile;
|
|
||||||
import com.intellectualsites.translation.bukkit.BukkitTranslation;
|
import com.intellectualsites.translation.bukkit.BukkitTranslation;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Captions class.
|
* Captions class.
|
||||||
@ -426,8 +421,7 @@ public enum C {
|
|||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param d
|
* @param d default
|
||||||
* default
|
|
||||||
*/
|
*/
|
||||||
C(final String d) {
|
C(final String d) {
|
||||||
this.d = d;
|
this.d = d;
|
||||||
@ -486,6 +480,7 @@ public enum C {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @return translated and color decoded
|
* @return translated and color decoded
|
||||||
|
*
|
||||||
* @see org.bukkit.ChatColor#translateAlternateColorCodes(char, String)
|
* @see org.bukkit.ChatColor#translateAlternateColorCodes(char, String)
|
||||||
*/
|
*/
|
||||||
public String translated() {
|
public String translated() {
|
||||||
|
@ -21,20 +21,18 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.config;
|
package com.intellectualcrafters.plot.config;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.object.PlotBlock;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.object.PlotBlock;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Main Configuration Utility
|
* Main Configuration Utility
|
||||||
*
|
*
|
||||||
* @author Empire92
|
* @author Empire92
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused") public class Configuration {
|
||||||
public class Configuration {
|
|
||||||
|
|
||||||
public static final SettingValue STRING = new SettingValue("STRING") {
|
public static final SettingValue STRING = new SettingValue("STRING") {
|
||||||
@Override
|
@Override
|
||||||
@ -66,8 +64,7 @@ public class Configuration {
|
|||||||
try {
|
try {
|
||||||
Integer.parseInt(string);
|
Integer.parseInt(string);
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -84,8 +81,7 @@ public class Configuration {
|
|||||||
try {
|
try {
|
||||||
Boolean.parseBoolean(string);
|
Boolean.parseBoolean(string);
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -102,8 +98,7 @@ public class Configuration {
|
|||||||
try {
|
try {
|
||||||
Double.parseDouble(string);
|
Double.parseDouble(string);
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -120,8 +115,7 @@ public class Configuration {
|
|||||||
try {
|
try {
|
||||||
Biome.valueOf(string.toUpperCase());
|
Biome.valueOf(string.toUpperCase());
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -150,13 +144,11 @@ public class Configuration {
|
|||||||
final String[] split = string.split(":");
|
final String[] split = string.split(":");
|
||||||
Short.parseShort(split[0]);
|
Short.parseShort(split[0]);
|
||||||
Short.parseShort(split[1]);
|
Short.parseShort(split[1]);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Short.parseShort(string);
|
Short.parseShort(string);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -166,8 +158,7 @@ public class Configuration {
|
|||||||
if (string.contains(":")) {
|
if (string.contains(":")) {
|
||||||
final String[] split = string.split(":");
|
final String[] split = string.split(":");
|
||||||
return new PlotBlock(Short.parseShort(split[0]), Byte.parseByte(split[1]));
|
return new PlotBlock(Short.parseShort(split[0]), Byte.parseByte(split[1]));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return new PlotBlock(Short.parseShort(string), (byte) 0);
|
return new PlotBlock(Short.parseShort(string), (byte) 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -191,14 +182,12 @@ public class Configuration {
|
|||||||
final String[] split = block.split(":");
|
final String[] split = block.split(":");
|
||||||
Short.parseShort(split[0]);
|
Short.parseShort(split[0]);
|
||||||
Short.parseShort(split[1]);
|
Short.parseShort(split[1]);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Short.parseShort(block);
|
Short.parseShort(block);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -220,8 +209,7 @@ public class Configuration {
|
|||||||
if (value < min) {
|
if (value < min) {
|
||||||
min = value;
|
min = value;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
counts[i] = 1;
|
counts[i] = 1;
|
||||||
if (1 < min) {
|
if (1 < min) {
|
||||||
min = 1;
|
min = 1;
|
||||||
@ -230,8 +218,7 @@ public class Configuration {
|
|||||||
if (blocks[i].contains(":")) {
|
if (blocks[i].contains(":")) {
|
||||||
final String[] split = blocks[i].split(":");
|
final String[] split = blocks[i].split(":");
|
||||||
values[i] = new PlotBlock(Short.parseShort(split[0]), Byte.parseByte(split[1]));
|
values[i] = new PlotBlock(Short.parseShort(split[0]), Byte.parseByte(split[1]));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
values[i] = new PlotBlock(Short.parseShort(blocks[i]), (byte) 0);
|
values[i] = new PlotBlock(Short.parseShort(blocks[i]), (byte) 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -272,8 +259,7 @@ public class Configuration {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create your own SettingValue object to make the management of plotworld
|
* Create your own SettingValue object to make the management of plotworld configuration easier
|
||||||
* configuration easier
|
|
||||||
*/
|
*/
|
||||||
public static abstract class SettingValue {
|
public static abstract class SettingValue {
|
||||||
private final String type;
|
private final String type;
|
||||||
|
@ -21,11 +21,10 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.config;
|
package com.intellectualcrafters.plot.config;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import com.intellectualcrafters.plot.config.Configuration.SettingValue;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.config.Configuration.SettingValue;
|
import java.util.Arrays;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Configuration Node
|
* Configuration Node
|
||||||
@ -55,8 +54,7 @@ public class ConfigurationNode {
|
|||||||
try {
|
try {
|
||||||
final Object result = this.type.parseString(string);
|
final Object result = this.type.parseString(string);
|
||||||
return result != null;
|
return result != null;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,19 +21,18 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.database;
|
package com.intellectualcrafters.plot.database;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.flag.Flag;
|
||||||
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
|
import com.intellectualcrafters.plot.object.PlotComment;
|
||||||
|
import com.intellectualcrafters.plot.object.PlotId;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.flag.Flag;
|
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
|
||||||
import com.intellectualcrafters.plot.object.PlotComment;
|
|
||||||
import com.intellectualcrafters.plot.object.PlotId;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
* @author Empire92
|
* @author Empire92
|
||||||
@ -50,73 +49,62 @@ public interface AbstractDB {
|
|||||||
/**
|
/**
|
||||||
* Set Plot owner
|
* Set Plot owner
|
||||||
*
|
*
|
||||||
* @param plot
|
* @param plot Plot in which the owner should be set
|
||||||
* Plot in which the owner should be set
|
* @param uuid The uuid of the new owner
|
||||||
* @param uuid
|
|
||||||
* The uuid of the new owner
|
|
||||||
*/
|
*/
|
||||||
public void setOwner(final Plot plot, final UUID uuid);
|
public void setOwner(final Plot plot, final UUID uuid);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create all settings, and create default helpers, trusted + denied lists
|
* Create all settings, and create default helpers, trusted + denied lists
|
||||||
*
|
*
|
||||||
* @param plots
|
* @param plots Plots for which the default table entries should be created
|
||||||
* Plots for which the default table entries should be created
|
|
||||||
*/
|
*/
|
||||||
public void createAllSettingsAndHelpers(final ArrayList<Plot> plots);
|
public void createAllSettingsAndHelpers(final ArrayList<Plot> plots);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a plot
|
* Create a plot
|
||||||
*
|
*
|
||||||
* @param plots
|
* @param plots Plots that should be created
|
||||||
* Plots that should be created
|
|
||||||
*/
|
*/
|
||||||
public void createPlots(final ArrayList<Plot> plots);
|
public void createPlots(final ArrayList<Plot> plots);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a plot
|
* Create a plot
|
||||||
*
|
*
|
||||||
* @param plot
|
* @param plot That should be created
|
||||||
* That should be created
|
|
||||||
*/
|
*/
|
||||||
public void createPlot(final Plot plot);
|
public void createPlot(final Plot plot);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create tables
|
* Create tables
|
||||||
*
|
*
|
||||||
* @param database
|
* @param database Database in which the tables will be created
|
||||||
* Database in which the tables will be created
|
|
||||||
*
|
*
|
||||||
* @throws SQLException
|
* @throws SQLException If the database manager is unable to create the tables
|
||||||
* If the database manager is unable to create the tables
|
|
||||||
*/
|
*/
|
||||||
public void createTables(final String database, final boolean add_constraint) throws Exception;
|
public void createTables(final String database, final boolean add_constraint) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete a plot
|
* Delete a plot
|
||||||
*
|
*
|
||||||
* @param plot
|
* @param plot Plot that should be deleted
|
||||||
* Plot that should be deleted
|
|
||||||
*/
|
*/
|
||||||
public void delete(final String world, final Plot plot);
|
public void delete(final String world, final Plot plot);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Create plot settings
|
* Create plot settings
|
||||||
*
|
*
|
||||||
* @param id
|
* @param id Plot Entry ID
|
||||||
* Plot Entry ID
|
* @param plot Plot Object
|
||||||
* @param plot
|
|
||||||
* Plot Object
|
|
||||||
*/
|
*/
|
||||||
public void createPlotSettings(final int id, final Plot plot);
|
public void createPlotSettings(final int id, final Plot plot);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the table entry ID
|
* Get the table entry ID
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world Which the plot is located in
|
||||||
* Which the plot is located in
|
* @param id2 Plot ID
|
||||||
* @param id2
|
*
|
||||||
* Plot ID
|
|
||||||
* @return Integer = Plot Entry Id
|
* @return Integer = Plot Entry Id
|
||||||
*/
|
*/
|
||||||
public int getId(final String world, final PlotId id2);
|
public int getId(final String world, final PlotId id2);
|
||||||
@ -129,125 +117,100 @@ public interface AbstractDB {
|
|||||||
/**
|
/**
|
||||||
* Set the merged status for a plot
|
* Set the merged status for a plot
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World in which the plot is located
|
||||||
* World in which the plot is located
|
* @param plot Plot Object
|
||||||
* @param plot
|
* @param merged boolean[]
|
||||||
* Plot Object
|
|
||||||
* @param merged
|
|
||||||
* boolean[]
|
|
||||||
*/
|
*/
|
||||||
public void setMerged(final String world, final Plot plot, final boolean[] merged);
|
public void setMerged(final String world, final Plot plot, final boolean[] merged);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set plot flags
|
* Set plot flags
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World in which the plot is located
|
||||||
* World in which the plot is located
|
* @param plot Plot Object
|
||||||
* @param plot
|
* @param flags flags to set (flag[])
|
||||||
* Plot Object
|
|
||||||
* @param flags
|
|
||||||
* flags to set (flag[])
|
|
||||||
*/
|
*/
|
||||||
public void setFlags(final String world, final Plot plot, final Flag[] flags);
|
public void setFlags(final String world, final Plot plot, final Flag[] flags);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the plot alias
|
* Set the plot alias
|
||||||
*
|
*
|
||||||
* @param plot
|
* @param plot Plot for which the alias should be set
|
||||||
* Plot for which the alias should be set
|
* @param alias Plot Alias
|
||||||
* @param alias
|
|
||||||
* Plot Alias
|
|
||||||
*/
|
*/
|
||||||
public void setAlias(final String world, final Plot plot, final String alias);
|
public void setAlias(final String world, final Plot plot, final String alias);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Purgle a plot
|
* Purgle a plot
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World in which the plot is located
|
||||||
* World in which the plot is located
|
* @param id Plot ID
|
||||||
* @param id
|
|
||||||
* Plot ID
|
|
||||||
*/
|
*/
|
||||||
public void purge(final String world, final PlotId id);
|
public void purge(final String world, final PlotId id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Purge a whole world
|
* Purge a whole world
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World in which the plots should be purged
|
||||||
* World in which the plots should be purged
|
|
||||||
*/
|
*/
|
||||||
public void purge(final String world);
|
public void purge(final String world);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set Plot Home Position
|
* Set Plot Home Position
|
||||||
*
|
*
|
||||||
* @param plot
|
* @param plot Plot Object
|
||||||
* Plot Object
|
* @param position Plot Home Position
|
||||||
* @param position
|
|
||||||
* Plot Home Position
|
|
||||||
*/
|
*/
|
||||||
public void setPosition(final String world, final Plot plot, final String position);
|
public void setPosition(final String world, final Plot plot, final String position);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param id
|
* @param id Plot Entry ID
|
||||||
* Plot Entry ID
|
*
|
||||||
* @return Plot Settings
|
* @return Plot Settings
|
||||||
*/
|
*/
|
||||||
public HashMap<String, Object> getSettings(final int id);
|
public HashMap<String, Object> getSettings(final int id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param plot
|
* @param plot Plot Object
|
||||||
* Plot Object
|
* @param player Player that should be removed
|
||||||
* @param player
|
|
||||||
* Player that should be removed
|
|
||||||
*/
|
*/
|
||||||
public void removeHelper(final String world, final Plot plot, final OfflinePlayer player);
|
public void removeHelper(final String world, final Plot plot, final OfflinePlayer player);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param plot
|
* @param plot Plot Object
|
||||||
* Plot Object
|
* @param player Player that should be removed
|
||||||
* @param player
|
|
||||||
* Player that should be removed
|
|
||||||
*/
|
*/
|
||||||
public void removeTrusted(final String world, final Plot plot, final OfflinePlayer player);
|
public void removeTrusted(final String world, final Plot plot, final OfflinePlayer player);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param plot
|
* @param plot Plot Object
|
||||||
* Plot Object
|
* @param player Player that should be removed
|
||||||
* @param player
|
|
||||||
* Player that should be removed
|
|
||||||
*/
|
*/
|
||||||
public void setHelper(final String world, final Plot plot, final OfflinePlayer player);
|
public void setHelper(final String world, final Plot plot, final OfflinePlayer player);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param plot
|
* @param plot Plot Object
|
||||||
* Plot Object
|
* @param player Player that should be added
|
||||||
* @param player
|
|
||||||
* Player that should be added
|
|
||||||
*/
|
*/
|
||||||
public void setTrusted(final String world, final Plot plot, final OfflinePlayer player);
|
public void setTrusted(final String world, final Plot plot, final OfflinePlayer player);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param plot
|
* @param plot Plot Object
|
||||||
* Plot Object
|
* @param player Player that should be added
|
||||||
* @param player
|
|
||||||
* Player that should be added
|
|
||||||
*/
|
*/
|
||||||
public void removeDenied(final String world, final Plot plot, final OfflinePlayer player);
|
public void removeDenied(final String world, final Plot plot, final OfflinePlayer player);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param plot
|
* @param plot Plot Object
|
||||||
* Plot Object
|
* @param player Player that should be added
|
||||||
* @param player
|
|
||||||
* Player that should be added
|
|
||||||
*/
|
*/
|
||||||
public void setDenied(final String world, final Plot plot, final OfflinePlayer player);
|
public void setDenied(final String world, final Plot plot, final OfflinePlayer player);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Plots ratings
|
* Get Plots ratings
|
||||||
*
|
*
|
||||||
* @param plot
|
* @param plot Plot Object
|
||||||
* Plot Object
|
*
|
||||||
* @return Plot Ratings (pre-calculated)
|
* @return Plot Ratings (pre-calculated)
|
||||||
*/
|
*/
|
||||||
public double getRatings(final Plot plot);
|
public double getRatings(final Plot plot);
|
||||||
@ -255,36 +218,28 @@ public interface AbstractDB {
|
|||||||
/**
|
/**
|
||||||
* Remove a plot comment
|
* Remove a plot comment
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World in which the plot is located
|
||||||
* World in which the plot is located
|
* @param plot Plot Object
|
||||||
* @param plot
|
* @param comment Comment to remove
|
||||||
* Plot Object
|
|
||||||
* @param comment
|
|
||||||
* Comment to remove
|
|
||||||
*/
|
*/
|
||||||
public void removeComment(final String world, final Plot plot, final PlotComment comment);
|
public void removeComment(final String world, final Plot plot, final PlotComment comment);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set a plot comment
|
* Set a plot comment
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World in which the plot is located
|
||||||
* World in which the plot is located
|
* @param plot Plot Object
|
||||||
* @param plot
|
* @param comment Comment to add
|
||||||
* Plot Object
|
|
||||||
* @param comment
|
|
||||||
* Comment to add
|
|
||||||
*/
|
*/
|
||||||
public void setComment(final String world, final Plot plot, final PlotComment comment);
|
public void setComment(final String world, final Plot plot, final PlotComment comment);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get Plot Comments
|
* Get Plot Comments
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World in which the plot is located
|
||||||
* World in which the plot is located
|
* @param plot Plot Object
|
||||||
* @param plot
|
* @param tier Comment Tier
|
||||||
* Plot Object
|
*
|
||||||
* @param tier
|
|
||||||
* Comment Tier
|
|
||||||
* @return Plot Comments within the specified tier
|
* @return Plot Comments within the specified tier
|
||||||
*/
|
*/
|
||||||
public ArrayList<PlotComment> getComments(final String world, final Plot plot, final int tier);
|
public ArrayList<PlotComment> getComments(final String world, final Plot plot, final int tier);
|
||||||
|
@ -21,17 +21,16 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.database;
|
package com.intellectualcrafters.plot.database;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.flag.Flag;
|
import com.intellectualcrafters.plot.flag.Flag;
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import com.intellectualcrafters.plot.object.PlotComment;
|
import com.intellectualcrafters.plot.object.PlotComment;
|
||||||
import com.intellectualcrafters.plot.object.PlotId;
|
import com.intellectualcrafters.plot.object.PlotId;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DB Functions
|
* DB Functions
|
||||||
@ -53,10 +52,8 @@ public class DBFunc {
|
|||||||
/**
|
/**
|
||||||
* Set the owner of a plot
|
* Set the owner of a plot
|
||||||
*
|
*
|
||||||
* @param plot
|
* @param plot Plot Object
|
||||||
* Plot Object
|
* @param uuid New Owner
|
||||||
* @param uuid
|
|
||||||
* New Owner
|
|
||||||
*/
|
*/
|
||||||
public static void setOwner(final Plot plot, final UUID uuid) {
|
public static void setOwner(final Plot plot, final UUID uuid) {
|
||||||
dbManager.setOwner(plot, uuid);
|
dbManager.setOwner(plot, uuid);
|
||||||
@ -65,8 +62,7 @@ public class DBFunc {
|
|||||||
/**
|
/**
|
||||||
* Create all settings + (helpers, denied, trusted)
|
* Create all settings + (helpers, denied, trusted)
|
||||||
*
|
*
|
||||||
* @param plots
|
* @param plots List containing all plot objects
|
||||||
* List containing all plot objects
|
|
||||||
*/
|
*/
|
||||||
public static void createAllSettingsAndHelpers(final ArrayList<Plot> plots) {
|
public static void createAllSettingsAndHelpers(final ArrayList<Plot> plots) {
|
||||||
dbManager.createAllSettingsAndHelpers(plots);
|
dbManager.createAllSettingsAndHelpers(plots);
|
||||||
@ -75,8 +71,7 @@ public class DBFunc {
|
|||||||
/**
|
/**
|
||||||
* Create all plots
|
* Create all plots
|
||||||
*
|
*
|
||||||
* @param plots
|
* @param plots A list containing plot objects
|
||||||
* A list containing plot objects
|
|
||||||
*/
|
*/
|
||||||
public static void createPlots(final ArrayList<Plot> plots) {
|
public static void createPlots(final ArrayList<Plot> plots) {
|
||||||
dbManager.createPlots(plots);
|
dbManager.createPlots(plots);
|
||||||
@ -85,8 +80,7 @@ public class DBFunc {
|
|||||||
/**
|
/**
|
||||||
* Create a plot
|
* Create a plot
|
||||||
*
|
*
|
||||||
* @param plot
|
* @param plot Plot to create
|
||||||
* Plot to create
|
|
||||||
*/
|
*/
|
||||||
public static void createPlot(final Plot plot) {
|
public static void createPlot(final Plot plot) {
|
||||||
dbManager.createPlot(plot);
|
dbManager.createPlot(plot);
|
||||||
@ -104,8 +98,7 @@ public class DBFunc {
|
|||||||
/**
|
/**
|
||||||
* Delete a plot
|
* Delete a plot
|
||||||
*
|
*
|
||||||
* @param plot
|
* @param plot Plot to delete
|
||||||
* Plot to delete
|
|
||||||
*/
|
*/
|
||||||
public static void delete(final String world, final Plot plot) {
|
public static void delete(final String world, final Plot plot) {
|
||||||
dbManager.delete(world, plot);
|
dbManager.delete(world, plot);
|
||||||
@ -114,10 +107,8 @@ public class DBFunc {
|
|||||||
/**
|
/**
|
||||||
* Create plot settings
|
* Create plot settings
|
||||||
*
|
*
|
||||||
* @param id
|
* @param id Plot ID
|
||||||
* Plot ID
|
* @param plot Plot Object
|
||||||
* @param plot
|
|
||||||
* Plot Object
|
|
||||||
*/
|
*/
|
||||||
public static void createPlotSettings(final int id, final Plot plot) {
|
public static void createPlotSettings(final int id, final Plot plot) {
|
||||||
dbManager.createPlotSettings(id, plot);
|
dbManager.createPlotSettings(id, plot);
|
||||||
@ -126,10 +117,9 @@ public class DBFunc {
|
|||||||
/**
|
/**
|
||||||
* Get a plot id
|
* Get a plot id
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world World
|
||||||
* World
|
* @param id2 Plot ID
|
||||||
* @param id2
|
*
|
||||||
* Plot ID
|
|
||||||
* @return ID
|
* @return ID
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
@ -187,6 +177,7 @@ public class DBFunc {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param id
|
* @param id
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public static HashMap<String, Object> getSettings(final int id) {
|
public static HashMap<String, Object> getSettings(final int id) {
|
||||||
|
@ -21,15 +21,14 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.database;
|
package com.intellectualcrafters.plot.database;
|
||||||
|
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract Database class, serves as a base for any connection method (MySQL,
|
* Abstract Database class, serves as a base for any connection method (MySQL, SQLite, etc.)
|
||||||
* SQLite, etc.)
|
|
||||||
*
|
*
|
||||||
* @author -_Husky_-
|
* @author -_Husky_-
|
||||||
* @author tips48
|
* @author tips48
|
||||||
@ -44,8 +43,7 @@ public abstract class Database {
|
|||||||
/**
|
/**
|
||||||
* Creates a new Database
|
* Creates a new Database
|
||||||
*
|
*
|
||||||
* @param plugin
|
* @param plugin Plugin instance
|
||||||
* Plugin instance
|
|
||||||
*/
|
*/
|
||||||
protected Database(final Plugin plugin) {
|
protected Database(final Plugin plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
@ -55,10 +53,9 @@ public abstract class Database {
|
|||||||
* Opens a connection with the database
|
* Opens a connection with the database
|
||||||
*
|
*
|
||||||
* @return Opened connection
|
* @return Opened connection
|
||||||
* @throws SQLException
|
*
|
||||||
* if the connection can not be opened
|
* @throws SQLException if the connection can not be opened
|
||||||
* @throws ClassNotFoundException
|
* @throws ClassNotFoundException if the driver cannot be found
|
||||||
* if the driver cannot be found
|
|
||||||
*/
|
*/
|
||||||
public abstract Connection openConnection() throws SQLException, ClassNotFoundException;
|
public abstract Connection openConnection() throws SQLException, ClassNotFoundException;
|
||||||
|
|
||||||
@ -66,8 +63,8 @@ public abstract class Database {
|
|||||||
* Checks if a connection is open with the database
|
* Checks if a connection is open with the database
|
||||||
*
|
*
|
||||||
* @return true if the connection is open
|
* @return true if the connection is open
|
||||||
* @throws SQLException
|
*
|
||||||
* if the connection cannot be checked
|
* @throws SQLException if the connection cannot be checked
|
||||||
*/
|
*/
|
||||||
public abstract boolean checkConnection() throws SQLException;
|
public abstract boolean checkConnection() throws SQLException;
|
||||||
|
|
||||||
@ -82,37 +79,33 @@ public abstract class Database {
|
|||||||
* Closes the connection with the database
|
* Closes the connection with the database
|
||||||
*
|
*
|
||||||
* @return true if successful
|
* @return true if successful
|
||||||
* @throws SQLException
|
*
|
||||||
* if the connection cannot be closed
|
* @throws SQLException if the connection cannot be closed
|
||||||
*/
|
*/
|
||||||
public abstract boolean closeConnection() throws SQLException;
|
public abstract boolean closeConnection() throws SQLException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes a SQL Query<br>
|
* Executes a SQL Query<br> If the connection is closed, it will be opened
|
||||||
* If the connection is closed, it will be opened
|
*
|
||||||
|
* @param query Query to be run
|
||||||
*
|
*
|
||||||
* @param query
|
|
||||||
* Query to be run
|
|
||||||
* @return the results of the query
|
* @return the results of the query
|
||||||
* @throws SQLException
|
*
|
||||||
* If the query cannot be executed
|
* @throws SQLException If the query cannot be executed
|
||||||
* @throws ClassNotFoundException
|
* @throws ClassNotFoundException If the driver cannot be found; see {@link #openConnection()}
|
||||||
* If the driver cannot be found; see {@link #openConnection()}
|
|
||||||
*/
|
*/
|
||||||
public abstract ResultSet querySQL(final String query) throws SQLException, ClassNotFoundException;
|
public abstract ResultSet querySQL(final String query) throws SQLException, ClassNotFoundException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Executes an Update SQL Query<br>
|
* Executes an Update SQL Query<br> See {@link java.sql.Statement#executeUpdate(String)}<br> If the connection is
|
||||||
* See {@link java.sql.Statement#executeUpdate(String)}<br>
|
* closed, it will be opened
|
||||||
* If the connection is closed, it will be opened
|
*
|
||||||
|
* @param query Query to be run
|
||||||
*
|
*
|
||||||
* @param query
|
|
||||||
* Query to be run
|
|
||||||
* @return Result Code, see {@link java.sql.Statement#executeUpdate(String)}
|
* @return Result Code, see {@link java.sql.Statement#executeUpdate(String)}
|
||||||
* @throws SQLException
|
*
|
||||||
* If the query cannot be executed
|
* @throws SQLException If the query cannot be executed
|
||||||
* @throws ClassNotFoundException
|
* @throws ClassNotFoundException If the driver cannot be found; see {@link #openConnection()}
|
||||||
* If the driver cannot be found; see {@link #openConnection()}
|
|
||||||
*/
|
*/
|
||||||
public abstract int updateSQL(final String query) throws SQLException, ClassNotFoundException;
|
public abstract int updateSQL(final String query) throws SQLException, ClassNotFoundException;
|
||||||
}
|
}
|
||||||
|
@ -21,14 +21,10 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.database;
|
package com.intellectualcrafters.plot.database;
|
||||||
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.DriverManager;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Statement;
|
|
||||||
|
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.sql.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Connects to and uses a MySQL database
|
* Connects to and uses a MySQL database
|
||||||
*
|
*
|
||||||
@ -47,18 +43,12 @@ public class MySQL extends Database {
|
|||||||
/**
|
/**
|
||||||
* Creates a new MySQL instance
|
* Creates a new MySQL instance
|
||||||
*
|
*
|
||||||
* @param plugin
|
* @param plugin Plugin instance
|
||||||
* Plugin instance
|
* @param hostname Name of the host
|
||||||
* @param hostname
|
* @param port Port number
|
||||||
* Name of the host
|
* @param database Database name
|
||||||
* @param port
|
* @param username Username
|
||||||
* Port number
|
* @param password Password
|
||||||
* @param database
|
|
||||||
* Database name
|
|
||||||
* @param username
|
|
||||||
* Username
|
|
||||||
* @param password
|
|
||||||
* Password
|
|
||||||
*/
|
*/
|
||||||
public MySQL(final Plugin plugin, final String hostname, final String port, final String database, final String username, final String password) {
|
public MySQL(final Plugin plugin, final String hostname, final String port, final String database, final String username, final String password) {
|
||||||
super(plugin);
|
super(plugin);
|
||||||
|
@ -21,22 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.database;
|
package com.intellectualcrafters.plot.database;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.WorldCreator;
|
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
|
|
||||||
import com.google.common.base.Charsets;
|
import com.google.common.base.Charsets;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.config.Settings;
|
import com.intellectualcrafters.plot.config.Settings;
|
||||||
@ -46,6 +30,15 @@ import com.intellectualcrafters.plot.object.PlotId;
|
|||||||
import com.worldcretornica.plotme.PlayerList;
|
import com.worldcretornica.plotme.PlayerList;
|
||||||
import com.worldcretornica.plotme.Plot;
|
import com.worldcretornica.plotme.Plot;
|
||||||
import com.worldcretornica.plotme.PlotManager;
|
import com.worldcretornica.plotme.PlotManager;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.WorldCreator;
|
||||||
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created 2014-08-17 for PlotSquared
|
* Created 2014-08-17 for PlotSquared
|
||||||
@ -63,8 +56,7 @@ public class PlotMeConverter {
|
|||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param plugin
|
* @param plugin Plugin Used to run the converter
|
||||||
* Plugin Used to run the converter
|
|
||||||
*/
|
*/
|
||||||
public PlotMeConverter(final PlotMain plugin) {
|
public PlotMeConverter(final PlotMain plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
@ -127,8 +119,7 @@ public class PlotMeConverter {
|
|||||||
|
|
||||||
final Boolean auto_link = plotConfig.getBoolean("worlds." + world.getName() + ".AutoLinkPlots"); //
|
final Boolean auto_link = plotConfig.getBoolean("worlds." + world.getName() + ".AutoLinkPlots"); //
|
||||||
PlotMain.config.set("worlds." + world.getName() + ".plot.auto_merge", auto_link);
|
PlotMain.config.set("worlds." + world.getName() + ".plot.auto_merge", auto_link);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
sendMessage("&c-- &lFailed to save configuration for world '" + world.getName() + "'\nThis will need to be done using the setup command, or manually");
|
sendMessage("&c-- &lFailed to save configuration for world '" + world.getName() + "'\nThis will need to be done using the setup command, or manually");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -173,13 +164,11 @@ public class PlotMeConverter {
|
|||||||
psDenied.add(set.getValue());
|
psDenied.add(set.getValue());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
for (final String user : plot.getAllowed().split(",")) {
|
for (final String user : plot.getAllowed().split(",")) {
|
||||||
if (user.equals("*")) {
|
if (user.equals("*")) {
|
||||||
psAdded.add(DBFunc.everyone);
|
psAdded.add(DBFunc.everyone);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
final UUID uuid = UUID.nameUUIDFromBytes(("OfflinePlayer:" + user).getBytes(Charsets.UTF_8));
|
final UUID uuid = UUID.nameUUIDFromBytes(("OfflinePlayer:" + user).getBytes(Charsets.UTF_8));
|
||||||
psAdded.add(uuid);
|
psAdded.add(uuid);
|
||||||
}
|
}
|
||||||
@ -188,19 +177,16 @@ public class PlotMeConverter {
|
|||||||
for (final String user : plot.getDenied().split(",")) {
|
for (final String user : plot.getDenied().split(",")) {
|
||||||
if (user.equals("*")) {
|
if (user.equals("*")) {
|
||||||
psDenied.add(DBFunc.everyone);
|
psDenied.add(DBFunc.everyone);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
final UUID uuid = UUID.nameUUIDFromBytes(("OfflinePlayer:" + user).getBytes(Charsets.UTF_8));
|
final UUID uuid = UUID.nameUUIDFromBytes(("OfflinePlayer:" + user).getBytes(Charsets.UTF_8));
|
||||||
psDenied.add(uuid);
|
psDenied.add(uuid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (final Throwable e) {
|
||||||
catch (final Throwable e) {
|
|
||||||
// Okay, this is evil.
|
// Okay, this is evil.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (final Throwable e) {
|
||||||
catch (final Throwable e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
final PlotId id = new PlotId(Integer.parseInt(plot.id.split(";")[0]), Integer.parseInt(plot.id.split(";")[1]));
|
final PlotId id = new PlotId(Integer.parseInt(plot.id.split(";")[0]), Integer.parseInt(plot.id.split(";")[1]));
|
||||||
@ -209,8 +195,7 @@ public class PlotMeConverter {
|
|||||||
pl = new com.intellectualcrafters.plot.object.Plot(id, plot.getOwnerId(), psAdded, psTrusted, psDenied,
|
pl = new com.intellectualcrafters.plot.object.Plot(id, plot.getOwnerId(), psAdded, psTrusted, psDenied,
|
||||||
|
|
||||||
"", PlotHomePosition.DEFAULT, null, world.getName(), new boolean[]{false, false, false, false});
|
"", PlotHomePosition.DEFAULT, null, world.getName(), new boolean[]{false, false, false, false});
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
final String owner = plot.getOwner();
|
final String owner = plot.getOwner();
|
||||||
pl = new com.intellectualcrafters.plot.object.Plot(id, UUID.nameUUIDFromBytes(("OfflinePlayer:" + owner).getBytes(Charsets.UTF_8)), psAdded, psTrusted, psDenied,
|
pl = new com.intellectualcrafters.plot.object.Plot(id, UUID.nameUUIDFromBytes(("OfflinePlayer:" + owner).getBytes(Charsets.UTF_8)), psAdded, psTrusted, psDenied,
|
||||||
|
|
||||||
@ -220,8 +205,7 @@ public class PlotMeConverter {
|
|||||||
if (pl != null) {
|
if (pl != null) {
|
||||||
if (!PlotMain.getPlots(world).containsKey(id)) {
|
if (!PlotMain.getPlots(world).containsKey(id)) {
|
||||||
createdPlots.add(pl);
|
createdPlots.add(pl);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
duplicate++;
|
duplicate++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -240,8 +224,7 @@ public class PlotMeConverter {
|
|||||||
PlotMain.sendConsoleSenderMessage("&3PlotMe&8->&3PlotSquared&8:&7 Saving configuration...");
|
PlotMain.sendConsoleSenderMessage("&3PlotMe&8->&3PlotSquared&8:&7 Saving configuration...");
|
||||||
try {
|
try {
|
||||||
PlotMain.config.save(PlotMain.configFile);
|
PlotMain.config.save(PlotMain.configFile);
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
PlotMain.sendConsoleSenderMessage(" - &cFailed to save configuration.");
|
PlotMain.sendConsoleSenderMessage(" - &cFailed to save configuration.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -250,8 +233,7 @@ public class PlotMeConverter {
|
|||||||
|
|
||||||
if ((Bukkit.getPluginManager().getPlugin("Multiverse-Core") != null) && Bukkit.getPluginManager().getPlugin("Multiverse-Core").isEnabled()) {
|
if ((Bukkit.getPluginManager().getPlugin("Multiverse-Core") != null) && Bukkit.getPluginManager().getPlugin("Multiverse-Core").isEnabled()) {
|
||||||
MV = true;
|
MV = true;
|
||||||
}
|
} else if ((Bukkit.getPluginManager().getPlugin("MultiWorld") != null) && Bukkit.getPluginManager().getPlugin("MultiWorld").isEnabled()) {
|
||||||
else if ((Bukkit.getPluginManager().getPlugin("MultiWorld") != null) && Bukkit.getPluginManager().getPlugin("MultiWorld").isEnabled()) {
|
|
||||||
MW = true;
|
MW = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -266,26 +248,22 @@ public class PlotMeConverter {
|
|||||||
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv unload " + worldname);
|
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv unload " + worldname);
|
||||||
try {
|
try {
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
}
|
} catch (final InterruptedException ex) {
|
||||||
catch (final InterruptedException ex) {
|
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
}
|
}
|
||||||
// load
|
// load
|
||||||
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv import " + worldname + " normal -g PlotSquared");
|
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mv import " + worldname + " normal -g PlotSquared");
|
||||||
}
|
} else if (MW) {
|
||||||
else if (MW) {
|
|
||||||
// unload
|
// unload
|
||||||
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw unload " + worldname);
|
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw unload " + worldname);
|
||||||
try {
|
try {
|
||||||
Thread.sleep(1000);
|
Thread.sleep(1000);
|
||||||
}
|
} catch (final InterruptedException ex) {
|
||||||
catch (final InterruptedException ex) {
|
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
}
|
}
|
||||||
// load
|
// load
|
||||||
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw create " + worldname + " plugin:PlotSquared");
|
Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(), "mw create " + worldname + " plugin:PlotSquared");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
Bukkit.getServer().unloadWorld(world, true);
|
Bukkit.getServer().unloadWorld(world, true);
|
||||||
final World myworld = WorldCreator.name(worldname).generator(new WorldGenerator(worldname)).createWorld();
|
final World myworld = WorldCreator.name(worldname).generator(new WorldGenerator(worldname)).createWorld();
|
||||||
myworld.save();
|
myworld.save();
|
||||||
|
@ -21,24 +21,6 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.database;
|
package com.intellectualcrafters.plot.database;
|
||||||
|
|
||||||
import java.sql.Connection;
|
|
||||||
import java.sql.DatabaseMetaData;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Statement;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.block.Biome;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.flag.Flag;
|
import com.intellectualcrafters.plot.flag.Flag;
|
||||||
import com.intellectualcrafters.plot.flag.FlagManager;
|
import com.intellectualcrafters.plot.flag.FlagManager;
|
||||||
@ -49,6 +31,13 @@ import com.intellectualcrafters.plot.object.PlotId;
|
|||||||
import com.intellectualcrafters.plot.util.Logger;
|
import com.intellectualcrafters.plot.util.Logger;
|
||||||
import com.intellectualcrafters.plot.util.Logger.LogLevel;
|
import com.intellectualcrafters.plot.util.Logger.LogLevel;
|
||||||
import com.intellectualcrafters.plot.util.UUIDHandler;
|
import com.intellectualcrafters.plot.util.UUIDHandler;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
import org.bukkit.block.Biome;
|
||||||
|
|
||||||
|
import java.sql.*;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -69,10 +58,8 @@ public class SQLManager implements AbstractDB {
|
|||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param c
|
* @param c connection
|
||||||
* connection
|
* @param p prefix
|
||||||
* @param p
|
|
||||||
* prefix
|
|
||||||
*/
|
*/
|
||||||
public SQLManager(final Connection c, final String p) {
|
public SQLManager(final Connection c, final String p) {
|
||||||
// Private final
|
// Private final
|
||||||
@ -96,8 +83,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
public void run() {
|
public void run() {
|
||||||
try {
|
try {
|
||||||
SQLManager.this.connection = PlotMain.getMySQL().forceConnection();
|
SQLManager.this.connection = PlotMain.getMySQL().forceConnection();
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -127,10 +113,8 @@ public class SQLManager implements AbstractDB {
|
|||||||
/**
|
/**
|
||||||
* Set Plot owner
|
* Set Plot owner
|
||||||
*
|
*
|
||||||
* @param plot
|
* @param plot Plot Object
|
||||||
* Plot Object
|
* @param uuid Owner UUID
|
||||||
* @param uuid
|
|
||||||
* Owner UUID
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void setOwner(final Plot plot, final UUID uuid) {
|
public void setOwner(final Plot plot, final UUID uuid) {
|
||||||
@ -144,8 +128,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
statement.setInt(3, plot.id.y);
|
statement.setInt(3, plot.id.y);
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.DANGER, "Could not set owner for plot " + plot.id);
|
Logger.add(LogLevel.DANGER, "Could not set owner for plot " + plot.id);
|
||||||
}
|
}
|
||||||
@ -175,8 +158,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
}
|
}
|
||||||
stored.get(world).put(new PlotId(idx, idz), id);
|
stored.get(world).put(new PlotId(idx, idz), id);
|
||||||
}
|
}
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -209,8 +191,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
}
|
}
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -239,8 +220,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
}
|
}
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
Logger.add(LogLevel.WARNING, "Failed to set helper for plots");
|
Logger.add(LogLevel.WARNING, "Failed to set helper for plots");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -279,8 +259,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
}
|
}
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.DANGER, "Failed to save plots!");
|
Logger.add(LogLevel.DANGER, "Failed to save plots!");
|
||||||
}
|
}
|
||||||
@ -302,8 +281,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.setString(4, plot.world);
|
stmt.setString(4, plot.world);
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.DANGER, "Failed to save plot " + plot.id);
|
Logger.add(LogLevel.DANGER, "Failed to save plot " + plot.id);
|
||||||
}
|
}
|
||||||
@ -331,8 +309,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.addBatch("ALTER TABLE `" + this.prefix + "plot_settings` ADD CONSTRAINT `" + this.prefix + "plot_settings_ibfk_1` FOREIGN KEY (`plot_plot_id`) REFERENCES `" + this.prefix + "plot` (`id`) ON DELETE CASCADE");
|
stmt.addBatch("ALTER TABLE `" + this.prefix + "plot_settings` ADD CONSTRAINT `" + this.prefix + "plot_settings_ibfk_1` FOREIGN KEY (`plot_plot_id`) REFERENCES `" + this.prefix + "plot` (`id`) ON DELETE CASCADE");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
stmt.addBatch("CREATE TABLE IF NOT EXISTS `" + this.prefix + "plot` (" + "`id` INTEGER PRIMARY KEY AUTOINCREMENT," + "`plot_id_x` INT(11) NOT NULL," + "`plot_id_z` INT(11) NOT NULL," + "`owner` VARCHAR(45) NOT NULL," + "`world` VARCHAR(45) NOT NULL," + "`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP)");
|
stmt.addBatch("CREATE TABLE IF NOT EXISTS `" + this.prefix + "plot` (" + "`id` INTEGER PRIMARY KEY AUTOINCREMENT," + "`plot_id_x` INT(11) NOT NULL," + "`plot_id_z` INT(11) NOT NULL," + "`owner` VARCHAR(45) NOT NULL," + "`world` VARCHAR(45) NOT NULL," + "`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP)");
|
||||||
stmt.addBatch("CREATE TABLE IF NOT EXISTS `" + this.prefix + "plot_denied` (" + "`plot_plot_id` INT(11) NOT NULL," + "`user_uuid` VARCHAR(40) NOT NULL" + ")");
|
stmt.addBatch("CREATE TABLE IF NOT EXISTS `" + this.prefix + "plot_denied` (" + "`plot_plot_id` INT(11) NOT NULL," + "`user_uuid` VARCHAR(40) NOT NULL" + ")");
|
||||||
stmt.addBatch("CREATE TABLE IF NOT EXISTS `" + this.prefix + "plot_helpers` (" + "`plot_plot_id` INT(11) NOT NULL," + "`user_uuid` VARCHAR(40) NOT NULL" + ")");
|
stmt.addBatch("CREATE TABLE IF NOT EXISTS `" + this.prefix + "plot_helpers` (" + "`plot_plot_id` INT(11) NOT NULL," + "`user_uuid` VARCHAR(40) NOT NULL" + ")");
|
||||||
@ -379,8 +356,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.setInt(1, id);
|
stmt.setInt(1, id);
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.DANGER, "Failed to delete plot " + plot.id);
|
Logger.add(LogLevel.DANGER, "Failed to delete plot " + plot.id);
|
||||||
}
|
}
|
||||||
@ -405,8 +381,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.setInt(1, id);
|
stmt.setInt(1, id);
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -429,8 +404,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
}
|
}
|
||||||
stmt.close();
|
stmt.close();
|
||||||
return id;
|
return id;
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return Integer.MAX_VALUE;
|
return Integer.MAX_VALUE;
|
||||||
@ -463,8 +437,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
statement.executeBatch();
|
statement.executeBatch();
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
final HashMap<Integer, Plot> plots = new HashMap<>();
|
final HashMap<Integer, Plot> plots = new HashMap<>();
|
||||||
@ -497,8 +470,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
if (!worlds.contains(worldname)) {
|
if (!worlds.contains(worldname)) {
|
||||||
if (noExist.containsKey(worldname)) {
|
if (noExist.containsKey(worldname)) {
|
||||||
noExist.put(worldname, noExist.get(worldname) + 1);
|
noExist.put(worldname, noExist.get(worldname) + 1);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
noExist.put(worldname, 1);
|
noExist.put(worldname, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -528,8 +500,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
final Plot plot = plots.get(id);
|
final Plot plot = plots.get(id);
|
||||||
if (plot != null) {
|
if (plot != null) {
|
||||||
plot.addHelper(user);
|
plot.addHelper(user);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlotMain.sendConsoleSenderMessage("&cPLOT " + id + " in plot_helpers does not exist. Please create the plot or remove this entry.");
|
PlotMain.sendConsoleSenderMessage("&cPLOT " + id + " in plot_helpers does not exist. Please create the plot or remove this entry.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -551,8 +522,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
final Plot plot = plots.get(id);
|
final Plot plot = plots.get(id);
|
||||||
if (plot != null) {
|
if (plot != null) {
|
||||||
plot.addTrusted(user);
|
plot.addTrusted(user);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlotMain.sendConsoleSenderMessage("&cPLOT " + id + " in plot_trusted does not exist. Please create the plot or remove this entry.");
|
PlotMain.sendConsoleSenderMessage("&cPLOT " + id + " in plot_trusted does not exist. Please create the plot or remove this entry.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -574,8 +544,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
final Plot plot = plots.get(id);
|
final Plot plot = plots.get(id);
|
||||||
if (plot != null) {
|
if (plot != null) {
|
||||||
plot.addDenied(user);
|
plot.addDenied(user);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlotMain.sendConsoleSenderMessage("&cPLOT " + id + " in plot_denied does not exist. Please create the plot or remove this entry.");
|
PlotMain.sendConsoleSenderMessage("&cPLOT " + id + " in plot_denied does not exist. Please create the plot or remove this entry.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -620,8 +589,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
merged[3 - i] = ((m) & (1 << i)) != 0;
|
merged[3 - i] = ((m) & (1 << i)) != 0;
|
||||||
}
|
}
|
||||||
plot.settings.setMerged(merged);
|
plot.settings.setMerged(merged);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
plot.settings.setMerged(new boolean[]{false, false, false, false});
|
plot.settings.setMerged(new boolean[]{false, false, false, false});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -629,8 +597,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
final String myflags = r.getString("flags");
|
final String myflags = r.getString("flags");
|
||||||
if (myflags == null) {
|
if (myflags == null) {
|
||||||
flags_string = new String[]{};
|
flags_string = new String[]{};
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
flags_string = myflags.split(",");
|
flags_string = myflags.split(",");
|
||||||
}
|
}
|
||||||
final ArrayList<Flag> flags = new ArrayList<Flag>();
|
final ArrayList<Flag> flags = new ArrayList<Flag>();
|
||||||
@ -640,12 +607,10 @@ public class SQLManager implements AbstractDB {
|
|||||||
final String[] split = element.split(":");
|
final String[] split = element.split(":");
|
||||||
try {
|
try {
|
||||||
flags.add(new Flag(FlagManager.getFlag(split[0], true), split[1].replaceAll("\u00AF", ":").replaceAll("<EFBFBD>", ",")));
|
flags.add(new Flag(FlagManager.getFlag(split[0], true), split[1].replaceAll("\u00AF", ":").replaceAll("<EFBFBD>", ",")));
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
exception = true;
|
exception = true;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
flags.add(new Flag(FlagManager.getFlag(element, true), ""));
|
flags.add(new Flag(FlagManager.getFlag(element, true), ""));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -654,8 +619,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
setFlags(id, flags.toArray(new Flag[0]));
|
setFlags(id, flags.toArray(new Flag[0]));
|
||||||
}
|
}
|
||||||
plot.settings.setFlags(flags.toArray(new Flag[0]));
|
plot.settings.setFlags(flags.toArray(new Flag[0]));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlotMain.sendConsoleSenderMessage("&cPLOT " + id + " in plot_settings does not exist. Please create the plot or remove this entry.");
|
PlotMain.sendConsoleSenderMessage("&cPLOT " + id + " in plot_settings does not exist. Please create the plot or remove this entry.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -675,8 +639,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
if (invalidPlot) {
|
if (invalidPlot) {
|
||||||
PlotMain.sendConsoleSenderMessage("&c[WARNING] - Please create the world/s or remove the plots using the purge command");
|
PlotMain.sendConsoleSenderMessage("&c[WARNING] - Please create the world/s or remove the plots using the purge command");
|
||||||
}
|
}
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
Logger.add(LogLevel.WARNING, "Failed to load plots.");
|
Logger.add(LogLevel.WARNING, "Failed to load plots.");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -699,8 +662,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.setInt(2, getId(world, plot.id));
|
stmt.setInt(2, getId(world, plot.id));
|
||||||
stmt.execute();
|
stmt.execute();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.WARNING, "Could not set merged for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Could not set merged for plot " + plot.id);
|
||||||
}
|
}
|
||||||
@ -729,8 +691,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.setInt(2, getId(world, plot.id));
|
stmt.setInt(2, getId(world, plot.id));
|
||||||
stmt.execute();
|
stmt.execute();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.WARNING, "Could not set flag for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Could not set flag for plot " + plot.id);
|
||||||
}
|
}
|
||||||
@ -755,8 +716,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.setInt(2, id);
|
stmt.setInt(2, id);
|
||||||
stmt.execute();
|
stmt.execute();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.WARNING, "Could not set flag for plot " + id);
|
Logger.add(LogLevel.WARNING, "Could not set flag for plot " + id);
|
||||||
}
|
}
|
||||||
@ -781,8 +741,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.setInt(2, getId(world, plot.id));
|
stmt.setInt(2, getId(world, plot.id));
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
Logger.add(LogLevel.WARNING, "Failed to set alias for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Failed to set alias for plot " + plot.id);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -816,8 +775,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
final int id = result.getInt("id");
|
final int id = result.getInt("id");
|
||||||
ids.add(id);
|
ids.add(id);
|
||||||
}
|
}
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.WARNING, "FAILED TO PURGE WORLD '" + world + "'!");
|
Logger.add(LogLevel.WARNING, "FAILED TO PURGE WORLD '" + world + "'!");
|
||||||
return;
|
return;
|
||||||
@ -853,8 +811,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.setString(1, world);
|
stmt.setString(1, world);
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.DANGER, "FAILED TO PURGE PLOT FROM DB '" + world + "' , '" + id + "' !");
|
Logger.add(LogLevel.DANGER, "FAILED TO PURGE PLOT FROM DB '" + world + "' , '" + id + "' !");
|
||||||
return;
|
return;
|
||||||
@ -881,8 +838,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
final int id = result.getInt("id");
|
final int id = result.getInt("id");
|
||||||
ids.add(id);
|
ids.add(id);
|
||||||
}
|
}
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.WARNING, "FAILED TO PURGE WORLD '" + world + "'!");
|
Logger.add(LogLevel.WARNING, "FAILED TO PURGE WORLD '" + world + "'!");
|
||||||
return;
|
return;
|
||||||
@ -918,8 +874,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.setString(1, world);
|
stmt.setString(1, world);
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.DANGER, "FAILED TO PURGE WORLD '" + world + "'!");
|
Logger.add(LogLevel.DANGER, "FAILED TO PURGE WORLD '" + world + "'!");
|
||||||
return;
|
return;
|
||||||
@ -947,8 +902,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
stmt.setInt(2, getId(world, plot.id));
|
stmt.setInt(2, getId(world, plot.id));
|
||||||
stmt.executeUpdate();
|
stmt.executeUpdate();
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
Logger.add(LogLevel.WARNING, "Failed to set position for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Failed to set position for plot " + plot.id);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -958,6 +912,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param id
|
* @param id
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
@ -1000,8 +955,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
h.put(var, val);
|
h.put(var, val);
|
||||||
}
|
}
|
||||||
stmt.close();
|
stmt.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
Logger.add(LogLevel.WARNING, "Failed to load settings for plot: " + id);
|
Logger.add(LogLevel.WARNING, "Failed to load settings for plot: " + id);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -1021,8 +975,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
statement.setString(4, comment.senderName);
|
statement.setString(4, comment.senderName);
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.WARNING, "Failed to remove helper for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Failed to remove helper for plot " + plot.id);
|
||||||
}
|
}
|
||||||
@ -1046,8 +999,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
comments.add(comment);
|
comments.add(comment);
|
||||||
}
|
}
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
Logger.add(LogLevel.WARNING, "Failed to fetch rating for plot " + plot.getId().toString());
|
Logger.add(LogLevel.WARNING, "Failed to fetch rating for plot " + plot.getId().toString());
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -1067,8 +1019,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
statement.setString(4, comment.senderName);
|
statement.setString(4, comment.senderName);
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.WARNING, "Failed to remove helper for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Failed to remove helper for plot " + plot.id);
|
||||||
}
|
}
|
||||||
@ -1092,8 +1043,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.WARNING, "Failed to remove helper for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Failed to remove helper for plot " + plot.id);
|
||||||
}
|
}
|
||||||
@ -1116,8 +1066,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.WARNING, "Failed to remove trusted user for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Failed to remove trusted user for plot " + plot.id);
|
||||||
}
|
}
|
||||||
@ -1140,8 +1089,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
Logger.add(LogLevel.WARNING, "Failed to set helper for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Failed to set helper for plot " + plot.id);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -1164,8 +1112,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
Logger.add(LogLevel.WARNING, "Failed to set plot trusted for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Failed to set plot trusted for plot " + plot.id);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -1188,8 +1135,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
Logger.add(LogLevel.WARNING, "Failed to remove denied for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Failed to remove denied for plot " + plot.id);
|
||||||
}
|
}
|
||||||
@ -1212,8 +1158,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
statement.setString(2, UUIDHandler.getUUID(player).toString());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
statement.close();
|
statement.close();
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
Logger.add(LogLevel.WARNING, "Failed to set denied for plot " + plot.id);
|
Logger.add(LogLevel.WARNING, "Failed to set denied for plot " + plot.id);
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -1233,8 +1178,7 @@ public class SQLManager implements AbstractDB {
|
|||||||
}
|
}
|
||||||
statement.close();
|
statement.close();
|
||||||
return rating;
|
return rating;
|
||||||
}
|
} catch (final SQLException e) {
|
||||||
catch (final SQLException e) {
|
|
||||||
Logger.add(LogLevel.WARNING, "Failed to fetch rating for plot " + plot.getId().toString());
|
Logger.add(LogLevel.WARNING, "Failed to fetch rating for plot " + plot.getId().toString());
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -21,17 +21,13 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.database;
|
package com.intellectualcrafters.plot.database;
|
||||||
|
|
||||||
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.sql.Connection;
|
import java.sql.*;
|
||||||
import java.sql.DriverManager;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.sql.Statement;
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
|
||||||
import org.bukkit.plugin.Plugin;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Connects to and uses a SQLite database
|
* Connects to and uses a SQLite database
|
||||||
*
|
*
|
||||||
@ -46,10 +42,8 @@ public class SQLite extends Database {
|
|||||||
/**
|
/**
|
||||||
* Creates a new SQLite instance
|
* Creates a new SQLite instance
|
||||||
*
|
*
|
||||||
* @param plugin
|
* @param plugin Plugin instance
|
||||||
* Plugin instance
|
* @param dbLocation Location of the Database (Must end in .db)
|
||||||
* @param dbLocation
|
|
||||||
* Location of the Database (Must end in .db)
|
|
||||||
*/
|
*/
|
||||||
public SQLite(final Plugin plugin, final String dbLocation) {
|
public SQLite(final Plugin plugin, final String dbLocation) {
|
||||||
super(plugin);
|
super(plugin);
|
||||||
@ -68,8 +62,7 @@ public class SQLite extends Database {
|
|||||||
if (!(file.exists())) {
|
if (!(file.exists())) {
|
||||||
try {
|
try {
|
||||||
file.createNewFile();
|
file.createNewFile();
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
this.plugin.getLogger().log(Level.SEVERE, "Unable to create database!");
|
this.plugin.getLogger().log(Level.SEVERE, "Unable to create database!");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,19 +21,17 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.events;
|
package com.intellectualcrafters.plot.events;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.bukkit.event.player.PlayerEvent;
|
import org.bukkit.event.player.PlayerEvent;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
* @author Empire92
|
* @author Empire92
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused") public class PlayerClaimPlotEvent extends PlayerEvent implements Cancellable {
|
||||||
public class PlayerClaimPlotEvent extends PlayerEvent implements Cancellable {
|
|
||||||
private static HandlerList handlers = new HandlerList();
|
private static HandlerList handlers = new HandlerList();
|
||||||
private final Plot plot;
|
private final Plot plot;
|
||||||
private final boolean auto;
|
private final boolean auto;
|
||||||
@ -42,10 +40,8 @@ public class PlayerClaimPlotEvent extends PlayerEvent implements Cancellable {
|
|||||||
/**
|
/**
|
||||||
* PlayerClaimPlotEvent: Called when a plot is claimed
|
* PlayerClaimPlotEvent: Called when a plot is claimed
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player that claimed the plot
|
||||||
* Player that claimed the plot
|
* @param plot Plot that was claimed
|
||||||
* @param plot
|
|
||||||
* Plot that was claimed
|
|
||||||
*/
|
*/
|
||||||
public PlayerClaimPlotEvent(final Player player, final Plot plot, final boolean auto) {
|
public PlayerClaimPlotEvent(final Player player, final Plot plot, final boolean auto) {
|
||||||
super(player);
|
super(player);
|
||||||
|
@ -21,12 +21,11 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.events;
|
package com.intellectualcrafters.plot.events;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.bukkit.event.player.PlayerEvent;
|
import org.bukkit.event.player.PlayerEvent;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
* @author Empire92
|
* @author Empire92
|
||||||
@ -40,10 +39,8 @@ public class PlayerEnterPlotEvent extends PlayerEvent {
|
|||||||
/**
|
/**
|
||||||
* PlayerEnterPlotEvent: Called when a player leaves a plot
|
* PlayerEnterPlotEvent: Called when a player leaves a plot
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player that entered the plot
|
||||||
* Player that entered the plot
|
* @param plot Plot that was entered
|
||||||
* @param plot
|
|
||||||
* Plot that was entered
|
|
||||||
*/
|
*/
|
||||||
public PlayerEnterPlotEvent(final Player player, final Plot plot) {
|
public PlayerEnterPlotEvent(final Player player, final Plot plot) {
|
||||||
super(player);
|
super(player);
|
||||||
|
@ -21,12 +21,11 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.events;
|
package com.intellectualcrafters.plot.events;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.bukkit.event.player.PlayerEvent;
|
import org.bukkit.event.player.PlayerEvent;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
* @author Empire92
|
* @author Empire92
|
||||||
@ -39,10 +38,8 @@ public class PlayerLeavePlotEvent extends PlayerEvent {
|
|||||||
/**
|
/**
|
||||||
* PlayerLeavePlotEvent: Called when a player leaves a plot
|
* PlayerLeavePlotEvent: Called when a player leaves a plot
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player that left the plot
|
||||||
* Player that left the plot
|
* @param plot Plot that was left
|
||||||
* @param plot
|
|
||||||
* Plot that was left
|
|
||||||
*/
|
*/
|
||||||
public PlayerLeavePlotEvent(final Player player, final Plot plot) {
|
public PlayerLeavePlotEvent(final Player player, final Plot plot) {
|
||||||
super(player);
|
super(player);
|
||||||
|
@ -21,13 +21,12 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.events;
|
package com.intellectualcrafters.plot.events;
|
||||||
|
|
||||||
import java.util.UUID;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -42,17 +41,12 @@ public class PlayerPlotDeniedEvent extends Event {
|
|||||||
private final UUID player;
|
private final UUID player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PlayerPlotDeniedEvent: Called when the denied UUID list is modified for a
|
* PlayerPlotDeniedEvent: Called when the denied UUID list is modified for a plot
|
||||||
* plot
|
|
||||||
*
|
*
|
||||||
* @param initiator
|
* @param initiator Player that initiated the event
|
||||||
* Player that initiated the event
|
* @param plot Plot in which the event occurred
|
||||||
* @param plot
|
* @param player Player that was denied/un-denied
|
||||||
* Plot in which the event occurred
|
* @param added true of add to deny list, false if removed
|
||||||
* @param player
|
|
||||||
* Player that was denied/un-denied
|
|
||||||
* @param added
|
|
||||||
* true of add to deny list, false if removed
|
|
||||||
*/
|
*/
|
||||||
public PlayerPlotDeniedEvent(final Player initiator, final Plot plot, final UUID player, final boolean added) {
|
public PlayerPlotDeniedEvent(final Player initiator, final Plot plot, final UUID player, final boolean added) {
|
||||||
this.initiator = initiator;
|
this.initiator = initiator;
|
||||||
|
@ -21,13 +21,12 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.events;
|
package com.intellectualcrafters.plot.events;
|
||||||
|
|
||||||
import java.util.UUID;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Empire92
|
* @author Empire92
|
||||||
@ -44,14 +43,10 @@ public class PlayerPlotHelperEvent extends Event {
|
|||||||
/**
|
/**
|
||||||
* PlayerPlotHelperEvent: Called when a plot helper is added/removed
|
* PlayerPlotHelperEvent: Called when a plot helper is added/removed
|
||||||
*
|
*
|
||||||
* @param initiator
|
* @param initiator Player that initiated the event
|
||||||
* Player that initiated the event
|
* @param plot Plot in which the event occurred
|
||||||
* @param plot
|
* @param player Player that was added/removed from the helper list
|
||||||
* Plot in which the event occurred
|
* @param added true of the player was added, false if the player was removed
|
||||||
* @param player
|
|
||||||
* Player that was added/removed from the helper list
|
|
||||||
* @param added
|
|
||||||
* true of the player was added, false if the player was removed
|
|
||||||
*/
|
*/
|
||||||
public PlayerPlotHelperEvent(final Player initiator, final Plot plot, final UUID player, final boolean added) {
|
public PlayerPlotHelperEvent(final Player initiator, final Plot plot, final UUID player, final boolean added) {
|
||||||
this.initiator = initiator;
|
this.initiator = initiator;
|
||||||
|
@ -21,13 +21,12 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.events;
|
package com.intellectualcrafters.plot.events;
|
||||||
|
|
||||||
import java.util.UUID;
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -44,14 +43,10 @@ public class PlayerPlotTrustedEvent extends Event {
|
|||||||
/**
|
/**
|
||||||
* PlayerPlotTrustedEvent: Called when a plot trusted user is added/removed
|
* PlayerPlotTrustedEvent: Called when a plot trusted user is added/removed
|
||||||
*
|
*
|
||||||
* @param initiator
|
* @param initiator Player that initiated the event
|
||||||
* Player that initiated the event
|
* @param plot Plot in which the event occurred
|
||||||
* @param plot
|
* @param player Player that was added/removed from the trusted list
|
||||||
* Plot in which the event occurred
|
* @param added true of the player was added, false if the player was removed
|
||||||
* @param player
|
|
||||||
* Player that was added/removed from the trusted list
|
|
||||||
* @param added
|
|
||||||
* true of the player was added, false if the player was removed
|
|
||||||
*/
|
*/
|
||||||
public PlayerPlotTrustedEvent(final Player initiator, final Plot plot, final UUID player, final boolean added) {
|
public PlayerPlotTrustedEvent(final Player initiator, final Plot plot, final UUID player, final boolean added) {
|
||||||
this.initiator = initiator;
|
this.initiator = initiator;
|
||||||
|
@ -21,14 +21,13 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.events;
|
package com.intellectualcrafters.plot.events;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.object.Plot;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.bukkit.event.player.PlayerEvent;
|
import org.bukkit.event.player.PlayerEvent;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.object.Plot;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when a player teleports to a plot
|
* Called when a player teleports to a plot
|
||||||
*
|
*
|
||||||
@ -46,12 +45,9 @@ public class PlayerTeleportToPlotEvent extends PlayerEvent implements Cancellabl
|
|||||||
/**
|
/**
|
||||||
* PlayerTeleportToPlotEvent: Called when a player teleports to a plot
|
* PlayerTeleportToPlotEvent: Called when a player teleports to a plot
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player That was teleported
|
||||||
* That was teleported
|
* @param from Start location
|
||||||
* @param from
|
* @param plot Plot to which the player was teleported
|
||||||
* Start location
|
|
||||||
* @param plot
|
|
||||||
* Plot to which the player was teleported
|
|
||||||
*/
|
*/
|
||||||
public PlayerTeleportToPlotEvent(final Player player, final Location from, final Plot plot) {
|
public PlayerTeleportToPlotEvent(final Player player, final Location from, final Plot plot) {
|
||||||
super(player);
|
super(player);
|
||||||
|
@ -21,12 +21,11 @@
|
|||||||
|
|
||||||
package com.intellectualcrafters.plot.events;
|
package com.intellectualcrafters.plot.events;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.object.PlotId;
|
||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.object.PlotId;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called when a plot is cleared
|
* Called when a plot is cleared
|
||||||
*
|
*
|
||||||
@ -42,10 +41,8 @@ public class PlotClearEvent extends Event implements Cancellable {
|
|||||||
/**
|
/**
|
||||||
* PlotDeleteEvent: Called when a plot is cleared
|
* PlotDeleteEvent: Called when a plot is cleared
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world The world in which the plot was cleared
|
||||||
* The world in which the plot was cleared
|
* @param id The plot that was cleared
|
||||||
* @param id
|
|
||||||
* The plot that was cleared
|
|
||||||
*/
|
*/
|
||||||
public PlotClearEvent(final String world, final PlotId id) {
|
public PlotClearEvent(final String world, final PlotId id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user