mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 21:26:45 +01:00
Some optimization, fixed copyright.
This commit is contained in:
parent
bcc34e7cd8
commit
f71fabbfbf
@ -11,8 +11,8 @@
|
|||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" name="Maven: org.bukkit:bukkit:1.7.9-R0.2" level="project" />
|
||||||
<orderEntry type="library" name="Maven: net.milkbowl.vault:Vault:1.3.2" level="project" />
|
<orderEntry type="library" name="Maven: net.milkbowl.vault:Vault:1.3.2" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.bukkit:bukkit:1.7.10-R0.1-SNAPSHOT" level="project" />
|
|
||||||
<orderEntry type="library" name="Maven: com.sk89q:worldedit:6.0.0-SNAPSHOT" level="project" />
|
<orderEntry type="library" name="Maven: com.sk89q:worldedit:6.0.0-SNAPSHOT" level="project" />
|
||||||
<orderEntry type="library" name="Maven: de.schlichtherle:truezip:6.8.3" level="project" />
|
<orderEntry type="library" name="Maven: de.schlichtherle:truezip:6.8.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: rhino:js:1.7R2" level="project" />
|
<orderEntry type="library" name="Maven: rhino:js:1.7R2" level="project" />
|
||||||
@ -29,6 +29,8 @@
|
|||||||
<SOURCES />
|
<SOURCES />
|
||||||
</library>
|
</library>
|
||||||
</orderEntry>
|
</orderEntry>
|
||||||
|
<orderEntry type="library" name="Maven: junit:junit:4.11" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,8 +31,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 +41,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);
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,8 +31,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 +41,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);
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -15,8 +36,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 +46,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 +57,7 @@ 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 +72,7 @@ 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) {
|
||||||
@ -74,66 +90,60 @@ 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not a byte array tag, then an
|
* If the key does not exist or its value is not a byte array tag, then an
|
||||||
* empty byte array will be returned.
|
* empty byte array will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not a byte tag, then {@code 0}
|
* If the key does not exist or its value is not a byte tag, then {@code 0}
|
||||||
* will be returned.
|
* will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not a double tag, then
|
* If the key does not exist or its value is not a double tag, then
|
||||||
* {@code 0} will be returned.
|
* {@code 0} will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -141,14 +151,13 @@ public final class CompoundTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* 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.
|
* type of number.
|
||||||
*
|
* <p/>
|
||||||
* <p>
|
* <p>
|
||||||
* If the key does not exist or its value is not a number, then {@code 0}
|
* If the key does not exist or its value is not a number, then {@code 0}
|
||||||
* will be returned.
|
* will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the key
|
||||||
* the key
|
|
||||||
* @return a double
|
* @return a double
|
||||||
*/
|
*/
|
||||||
public double asDouble(final String key) {
|
public double asDouble(final String key) {
|
||||||
@ -156,94 +165,82 @@ 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not a float tag, then {@code 0}
|
* If the key does not exist or its value is not a float tag, then {@code 0}
|
||||||
* will be returned.
|
* will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not an int array tag, then an
|
* If the key does not exist or its value is not an int array tag, then an
|
||||||
* empty array will be returned.
|
* empty array will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not an int tag, then {@code 0}
|
* If the key does not exist or its value is not an int tag, then {@code 0}
|
||||||
* will be returned.
|
* will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -251,14 +248,13 @@ public final class CompoundTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* 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.
|
* type of number.
|
||||||
*
|
* <p/>
|
||||||
* <p>
|
* <p>
|
||||||
* If the key does not exist or its value is not a number, then {@code 0}
|
* If the key does not exist or its value is not a number, then {@code 0}
|
||||||
* will be returned.
|
* will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the key
|
||||||
* the key
|
|
||||||
* @return an int
|
* @return an int
|
||||||
*/
|
*/
|
||||||
public int asInt(final String key) {
|
public int asInt(final String key) {
|
||||||
@ -266,92 +262,79 @@ 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not a list tag, then an empty
|
* If the key does not exist or its value is not a list tag, then an empty
|
||||||
* list will be returned.
|
* list will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not a list tag, then an empty
|
* If the key does not exist or its value is not a list tag, then an empty
|
||||||
* tag list will be returned.
|
* tag list will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not a list tag, then an empty
|
* 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
|
* list will be returned. If the given key references a list but the list of
|
||||||
* of a different type, then an empty list will also be returned.
|
* of a different type, then an empty list will also be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the key
|
||||||
* the key
|
* @param listType the class of the contained type
|
||||||
* @param listType
|
* @param <T> the type of list
|
||||||
* the class of the contained type
|
|
||||||
* @return a list of tags
|
* @return a list of tags
|
||||||
* @param <T>
|
|
||||||
* the type of list
|
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public <T extends Tag> List<T> getList(final String key, final Class<T> listType) {
|
public <T extends Tag> List<T> getList(final String key, final Class<T> listType) {
|
||||||
@ -360,34 +343,30 @@ 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not a long tag, then {@code 0}
|
* If the key does not exist or its value is not a long tag, then {@code 0}
|
||||||
* will be returned.
|
* will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -395,14 +374,13 @@ public final class CompoundTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* 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.
|
* type of number.
|
||||||
*
|
* <p/>
|
||||||
* <p>
|
* <p>
|
||||||
* If the key does not exist or its value is not a number, then {@code 0}
|
* If the key does not exist or its value is not a number, then {@code 0}
|
||||||
* will be returned.
|
* will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the key
|
||||||
* the key
|
|
||||||
* @return a long
|
* @return a long
|
||||||
*/
|
*/
|
||||||
public long asLong(final String key) {
|
public long asLong(final String key) {
|
||||||
@ -410,72 +388,62 @@ 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not a short tag, then {@code 0}
|
* If the key does not exist or its value is not a short tag, then {@code 0}
|
||||||
* will be returned.
|
* will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the 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>
|
* <p>
|
||||||
* If the key does not exist or its value is not a string tag, then
|
* If the key does not exist or its value is not a string tag, then
|
||||||
* {@code ""} will be returned.
|
* {@code ""} will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key the 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,31 @@
|
|||||||
package com.intellectualcrafters.jnbt;
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
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 +43,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);
|
||||||
@ -33,10 +53,8 @@ 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) {
|
||||||
@ -50,10 +68,8 @@ 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
|
* @param key they key
|
||||||
* they key
|
* @param value the value
|
||||||
* @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) {
|
||||||
@ -63,10 +79,8 @@ 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) {
|
||||||
@ -76,10 +90,8 @@ 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) {
|
||||||
@ -89,10 +101,8 @@ 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) {
|
||||||
@ -103,10 +113,8 @@ 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
|
* @param key they key
|
||||||
* they key
|
* @param value the value
|
||||||
* @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) {
|
||||||
@ -116,10 +124,8 @@ 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) {
|
||||||
@ -129,10 +135,8 @@ 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) {
|
||||||
@ -142,10 +146,8 @@ 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) {
|
||||||
@ -155,10 +157,8 @@ 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) {
|
||||||
@ -168,8 +168,7 @@ 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) {
|
||||||
@ -192,8 +191,7 @@ 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) {
|
||||||
|
@ -1,8 +1,28 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The {@code TAG_Double} tag.
|
* The {@code TAG_Double} tag.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public final class DoubleTag extends Tag {
|
public final class DoubleTag extends Tag {
|
||||||
|
|
||||||
@ -11,8 +31,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();
|
||||||
@ -22,10 +41,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);
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,8 +31,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 +41,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);
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
@ -12,8 +33,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 +44,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);
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,8 +31,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 +41,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,32 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.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 +39,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 +52,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 +80,7 @@ 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,82 +90,74 @@ 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not a byte array tag, then an
|
* If the index does not exist or its value is not a byte array tag, then an
|
||||||
* empty byte array will be returned.
|
* empty byte array will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not a byte tag, then
|
* If the index does not exist or its value is not a byte tag, then
|
||||||
* {@code 0} will be returned.
|
* {@code 0} will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not a double tag, then
|
* If the index does not exist or its value is not a double tag, then
|
||||||
* {@code 0} will be returned.
|
* {@code 0} will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -159,14 +165,13 @@ public final class ListTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* 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.
|
* type of number.
|
||||||
*
|
* <p/>
|
||||||
* <p>
|
* <p>
|
||||||
* If the index does not exist or its value is not a number, then {@code 0}
|
* If the index does not exist or its value is not a number, then {@code 0}
|
||||||
* will be returned.
|
* will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the index
|
||||||
* the index
|
|
||||||
* @return a double
|
* @return a double
|
||||||
*/
|
*/
|
||||||
public double asDouble(final int index) {
|
public double asDouble(final int index) {
|
||||||
@ -174,94 +179,82 @@ 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not a float tag, then
|
* If the index does not exist or its value is not a float tag, then
|
||||||
* {@code 0} will be returned.
|
* {@code 0} will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not an int array tag, then an
|
* If the index does not exist or its value is not an int array tag, then an
|
||||||
* empty array will be returned.
|
* empty array will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not an int tag, then
|
* If the index does not exist or its value is not an int tag, then
|
||||||
* {@code 0} will be returned.
|
* {@code 0} will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -269,14 +262,13 @@ public final class ListTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* 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.
|
* type of number.
|
||||||
*
|
* <p/>
|
||||||
* <p>
|
* <p>
|
||||||
* If the index does not exist or its value is not a number, then {@code 0}
|
* If the index does not exist or its value is not a number, then {@code 0}
|
||||||
* will be returned.
|
* will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the index
|
||||||
* the index
|
|
||||||
* @return an int
|
* @return an int
|
||||||
*/
|
*/
|
||||||
public int asInt(final int index) {
|
public int asInt(final int index) {
|
||||||
@ -284,92 +276,79 @@ 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not a list tag, then an empty
|
* If the index does not exist or its value is not a list tag, then an empty
|
||||||
* list will be returned.
|
* list will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not a list tag, then an empty
|
* If the index does not exist or its value is not a list tag, then an empty
|
||||||
* tag list will be returned.
|
* tag list will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not a list tag, then an empty
|
* 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
|
* list will be returned. If the given index references a list but the list
|
||||||
* of of a different type, then an empty list will also be returned.
|
* of of a different type, then an empty list will also be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the index
|
||||||
* the index
|
* @param listType the class of the contained type
|
||||||
* @param listType
|
* @param <T> the NBT type
|
||||||
* the class of the contained type
|
|
||||||
* @return a list of tags
|
* @return a list of tags
|
||||||
* @param <T>
|
|
||||||
* the NBT type
|
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
public <T extends Tag> List<T> getList(final int index, final Class<T> listType) {
|
public <T extends Tag> List<T> getList(final int index, final Class<T> listType) {
|
||||||
@ -378,34 +357,30 @@ 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not a long tag, then
|
* If the index does not exist or its value is not a long tag, then
|
||||||
* {@code 0} will be returned.
|
* {@code 0} will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the 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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -413,14 +388,13 @@ public final class ListTag extends Tag {
|
|||||||
/**
|
/**
|
||||||
* 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.
|
* type of number.
|
||||||
*
|
* <p/>
|
||||||
* <p>
|
* <p>
|
||||||
* If the index does not exist or its value is not a number, then {@code 0}
|
* If the index does not exist or its value is not a number, then {@code 0}
|
||||||
* will be returned.
|
* will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the index
|
||||||
* the index
|
|
||||||
* @return a long
|
* @return a long
|
||||||
*/
|
*/
|
||||||
public long asLong(final int index) {
|
public long asLong(final int index) {
|
||||||
@ -428,72 +402,62 @@ 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not a short tag, then
|
* If the index does not exist or its value is not a short tag, then
|
||||||
* {@code 0} will be returned.
|
* {@code 0} will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the 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>
|
* <p>
|
||||||
* If the index does not exist or its value is not a string tag, then
|
* If the index does not exist or its value is not a string tag, then
|
||||||
* {@code ""} will be returned.
|
* {@code ""} will be returned.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index the 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,33 @@
|
|||||||
package com.intellectualcrafters.jnbt;
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
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 +39,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);
|
||||||
@ -30,8 +50,7 @@ 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) {
|
||||||
@ -46,8 +65,7 @@ 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) {
|
||||||
@ -70,8 +88,7 @@ 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) {
|
||||||
|
@ -1,8 +1,28 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The {@code TAG_Long} tag.
|
* The {@code TAG_Long} tag.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public final class LongTag extends Tag {
|
public final class LongTag extends Tag {
|
||||||
|
|
||||||
@ -11,8 +31,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();
|
||||||
@ -22,10 +41,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);
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
@ -21,11 +42,9 @@ 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
|
* @throws IllegalArgumentException thrown if the tag ID is not valid
|
||||||
* 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) {
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
@ -13,7 +34,7 @@ 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 subclasses of the {@code Tag}
|
* streams, and produces an object graph of subclasses of the {@code Tag}
|
||||||
* object.
|
* object.
|
||||||
*
|
* <p/>
|
||||||
* <p>
|
* <p>
|
||||||
* The NBT format was created by Markus Persson, and the specification may be
|
* The NBT format was created by Markus Persson, and the specification may be
|
||||||
* found at <a href="http://www.minecraft.net/docs/NBT.txt">
|
* found at <a href="http://www.minecraft.net/docs/NBT.txt">
|
||||||
@ -28,10 +49,8 @@ public final class NBTInputStream implements Closeable {
|
|||||||
* 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 if an I/O error occurs
|
||||||
* @throws IOException
|
|
||||||
* 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 +60,7 @@ 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
|
* @throws IOException if an I/O error occurs.
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
public Tag readTag() throws IOException {
|
public Tag readTag() throws IOException {
|
||||||
return readTag(0);
|
return readTag(0);
|
||||||
@ -51,11 +69,9 @@ 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
|
* @throws IOException if an I/O error occurs.
|
||||||
* 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 +82,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 +92,18 @@ 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
|
* @throws IOException if an I/O error occurs.
|
||||||
* 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 +148,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
@ -11,7 +32,7 @@ import java.util.List;
|
|||||||
* This class writes <strong>NBT</strong>, or <strong>Named Binary Tag</strong>
|
* This class writes <strong>NBT</strong>, or <strong>Named Binary Tag</strong>
|
||||||
* <code>Tag</code> objects to an underlying <code>OutputStream</code>.
|
* <code>Tag</code> objects to an underlying <code>OutputStream</code>.
|
||||||
* </p>
|
* </p>
|
||||||
*
|
* <p/>
|
||||||
* <p>
|
* <p>
|
||||||
* The NBT format was created by Markus Persson, and the specification may be
|
* The NBT format was created by Markus Persson, and the specification may be
|
||||||
* found at <a href="http://www.minecraft.net/docs/NBT.txt">
|
* found at <a href="http://www.minecraft.net/docs/NBT.txt">
|
||||||
@ -19,7 +40,6 @@ import java.util.List;
|
|||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
* @author Graham Edgecombe
|
* @author Graham Edgecombe
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public final class NBTOutputStream implements Closeable {
|
public final class NBTOutputStream implements Closeable {
|
||||||
|
|
||||||
@ -32,10 +52,8 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
* 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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);
|
||||||
@ -44,10 +62,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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());
|
||||||
@ -68,10 +84,8 @@ public final class NBTOutputStream implements Closeable {
|
|||||||
/**
|
/**
|
||||||
* Writes tag payload.
|
* Writes tag payload.
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag The tag.
|
||||||
* The tag.
|
* @throws IOException if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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());
|
||||||
@ -120,10 +134,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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());
|
||||||
@ -132,10 +144,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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();
|
||||||
@ -146,10 +156,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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()) {
|
||||||
@ -161,10 +169,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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();
|
||||||
@ -181,10 +187,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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);
|
||||||
@ -195,10 +199,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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());
|
||||||
@ -207,10 +209,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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());
|
||||||
@ -219,10 +219,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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());
|
||||||
@ -231,10 +229,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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());
|
||||||
@ -243,10 +239,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* 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());
|
||||||
@ -255,10 +249,8 @@ 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 if an I/O error occurs.
|
||||||
* @throws IOException
|
|
||||||
* if an I/O error occurs.
|
|
||||||
*/
|
*/
|
||||||
private void writeEndTagPayload(final EndTag tag) {
|
private void writeEndTagPayload(final EndTag tag) {
|
||||||
/* empty */
|
/* empty */
|
||||||
|
@ -1,10 +1,30 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A class which contains NBT-related utility methods.
|
* A class which contains NBT-related utility methods.
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public final class NBTUtils {
|
public final class NBTUtils {
|
||||||
|
|
||||||
@ -17,48 +37,35 @@ 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() + ").");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -66,50 +73,36 @@ 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
|
* @throws IllegalArgumentException if the tag class is invalid.
|
||||||
* 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() + ").");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -117,11 +110,9 @@ 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
|
* @throws IllegalArgumentException if the tag type is invalid.
|
||||||
* 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) {
|
||||||
@ -157,12 +148,9 @@ 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
|
||||||
* @throws InvalidFormatException
|
* @throws InvalidFormatException
|
||||||
*/
|
*/
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10,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();
|
||||||
@ -21,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);
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
import static com.google.common.base.Preconditions.checkNotNull;
|
||||||
@ -12,8 +33,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 +44,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);
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -17,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,14 +1,28 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.jnbt;
|
package com.intellectualcrafters.jnbt;
|
||||||
|
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
|
|
||||||
import com.sk89q.jnbt.CompoundTag;
|
|
||||||
import com.sk89q.worldedit.LocalWorld;
|
|
||||||
import com.sk89q.worldedit.Vector;
|
|
||||||
import com.sk89q.worldedit.WorldEditException;
|
|
||||||
import com.sk89q.worldedit.blocks.BaseBlock;
|
|
||||||
import com.sk89q.worldedit.bukkit.BukkitUtil;
|
|
||||||
|
|
||||||
public class WorldEditUtils {
|
public class WorldEditUtils {
|
||||||
public static void setNBT(final World world, final short id, final byte data, final int x, final int y, final int z, final com.intellectualcrafters.jnbt.CompoundTag tag) {
|
public static void setNBT(final World world, final short id, final byte data, final int x, final int y, final int z, final com.intellectualcrafters.jnbt.CompoundTag tag) {
|
||||||
|
|
||||||
|
@ -1,42 +1,39 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2002 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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 delimited text. Comma
|
* JSONArray, and to covert a JSONArray into comma delimited text. Comma
|
||||||
* delimited text is a very popular format for data interchange. It is
|
* delimited text is a very popular format for data interchange. It is
|
||||||
* understood by most 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 contains one or more values. Values are
|
* with a NEWLINE character. Each row 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 JSONObjects can be taken from the names in the
|
* names for the elements in the JSONObjects can be taken from the names in the
|
||||||
* first row.
|
* first row.
|
||||||
@ -50,11 +47,9 @@ 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
|
* @param x A JSONTokener of the source text.
|
||||||
* A JSONTokener of the source text.
|
|
||||||
* @return The value string, or null if empty.
|
* @return The value string, or null if empty.
|
||||||
* @throws JSONException
|
* @throws JSONException if the quoted string is badly formed.
|
||||||
* 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;
|
||||||
@ -94,8 +89,7 @@ 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
|
||||||
*/
|
*/
|
||||||
@ -127,13 +121,11 @@ 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 names of the elements.
|
* parallel JSONArray of strings to provides the names of the elements.
|
||||||
*
|
*
|
||||||
* @param names
|
* @param names A JSONArray of names. This is commonly obtained from the
|
||||||
* A JSONArray of names. This is commonly obtained from the
|
|
||||||
* first row of a comma delimited text file using the
|
* first row of a comma delimited text file using the
|
||||||
* rowToJSONArray
|
* rowToJSONArray
|
||||||
* method.
|
* method.
|
||||||
* @param x
|
* @param x A JSONTokener of the source text.
|
||||||
* 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
|
||||||
*/
|
*/
|
||||||
@ -147,8 +139,7 @@ public class CDL {
|
|||||||
* the comma character will be quoted. Troublesome characters may be
|
* the comma character will be quoted. Troublesome characters may be
|
||||||
* removed.
|
* removed.
|
||||||
*
|
*
|
||||||
* @param ja
|
* @param ja A JSONArray of strings.
|
||||||
* 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) {
|
||||||
@ -170,8 +161,7 @@ public class CDL {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
sb.append('"');
|
sb.append('"');
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
sb.append(string);
|
sb.append(string);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -184,8 +174,7 @@ 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
|
* @param string The comma delimited text.
|
||||||
* The comma delimited text.
|
|
||||||
* @return A JSONArray of JSONObjects.
|
* @return A JSONArray of JSONObjects.
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
@ -197,8 +186,7 @@ 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
|
* @param x The JSONTokener containing the comma delimited text.
|
||||||
* The JSONTokener containing the comma delimited text.
|
|
||||||
* @return A JSONArray of JSONObjects.
|
* @return A JSONArray of JSONObjects.
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
@ -210,10 +198,8 @@ 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 element names.
|
* using a supplied JSONArray as the source of element names.
|
||||||
*
|
*
|
||||||
* @param names
|
* @param names A JSONArray of strings.
|
||||||
* A JSONArray of strings.
|
* @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
|
||||||
*/
|
*/
|
||||||
@ -225,10 +211,8 @@ 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 element names.
|
* using a supplied JSONArray as the source of element names.
|
||||||
*
|
*
|
||||||
* @param names
|
* @param names A JSONArray of strings.
|
||||||
* A JSONArray of strings.
|
* @param x A JSONTokener of the source text.
|
||||||
* @param x
|
|
||||||
* A JSONTokener of the source text.
|
|
||||||
* @return A JSONArray of JSONObjects.
|
* @return A JSONArray of JSONObjects.
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
@ -255,8 +239,7 @@ public class CDL {
|
|||||||
* first row will be a list of names obtained by inspecting the first
|
* first row will be a list of names obtained by inspecting the first
|
||||||
* JSONObject.
|
* JSONObject.
|
||||||
*
|
*
|
||||||
* @param ja
|
* @param ja A JSONArray of JSONObjects.
|
||||||
* A JSONArray of JSONObjects.
|
|
||||||
* @return A comma delimited text.
|
* @return A comma delimited text.
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
@ -276,10 +259,8 @@ public class CDL {
|
|||||||
* a provided list of names. The list of names is not included in the
|
* a provided list of names. The list of names is not included in the
|
||||||
* output.
|
* output.
|
||||||
*
|
*
|
||||||
* @param names
|
* @param names A JSONArray of strings.
|
||||||
* A JSONArray of strings.
|
* @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
|
||||||
*/
|
*/
|
||||||
|
@ -1,29 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2002 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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 name/value pairs.
|
* JSON and Cookies are both notations for name/value pairs.
|
||||||
@ -43,8 +40,7 @@ public class Cookie {
|
|||||||
* encoded values. We encode '=' and ';' because we must. We encode '%' and
|
* encoded values. We encode '=' and ';' because we must. We encode '%' and
|
||||||
* '+' because they are meta characters in URL encoding.
|
* '+' because they are meta characters in URL encoding.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string The source 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) {
|
||||||
@ -58,8 +54,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -77,8 +72,7 @@ public class Cookie {
|
|||||||
* validation of the parameters. It only converts the cookie string into
|
* validation of the parameters. It only converts the cookie string into
|
||||||
* a JSONObject.
|
* a JSONObject.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string The cookie specification string.
|
||||||
* The cookie specification string.
|
|
||||||
* @return A JSONObject containing "name", "value", and possibly other
|
* @return A JSONObject containing "name", "value", and possibly other
|
||||||
* members.
|
* members.
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
@ -97,12 +91,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();
|
||||||
}
|
}
|
||||||
@ -118,8 +110,7 @@ public class Cookie {
|
|||||||
* members, they will be appended to the cookie specification string.
|
* members, they will be appended to the cookie specification string.
|
||||||
* All other members are ignored.
|
* All other members are ignored.
|
||||||
*
|
*
|
||||||
* @param jo
|
* @param jo A JSONObject
|
||||||
* A JSONObject
|
|
||||||
* @return A cookie specification string
|
* @return A cookie specification string
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
@ -151,8 +142,7 @@ 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>
|
||||||
* A string that may contain <code>+</code>
|
|
||||||
* <small>(plus)</small> and <code>%</code><i>hh</i>
|
* <small>(plus)</small> and <code>%</code><i>hh</i>
|
||||||
* sequences.
|
* sequences.
|
||||||
* @return The unescaped string.
|
* @return The unescaped string.
|
||||||
@ -164,8 +154,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)) {
|
||||||
|
@ -1,29 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2002 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -39,13 +36,12 @@ public class CookieList {
|
|||||||
* of name/value pairs. The names are separated from the values by '='.
|
* of name/value pairs. The names are separated from the values by '='.
|
||||||
* The pairs are separated by ';'. The names and the values
|
* The pairs are separated by ';'. The names and the values
|
||||||
* will be unescaped, possibly converting '+' and '%' sequences.
|
* will be unescaped, possibly converting '+' and '%' sequences.
|
||||||
*
|
* <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
|
||||||
*/
|
*/
|
||||||
@ -67,8 +63,7 @@ public class CookieList {
|
|||||||
* The pairs are separated by ';'. The characters '%', '+', '=', and ';'
|
* The pairs are separated by ';'. The characters '%', '+', '=', and ';'
|
||||||
* in the names and values are replaced by "%hh".
|
* in the names and values are replaced by "%hh".
|
||||||
*
|
*
|
||||||
* @param jo
|
* @param jo A JSONObject
|
||||||
* A JSONObject
|
|
||||||
* @return A cookie list string
|
* @return A cookie list string
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
|
@ -1,29 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2002 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -34,13 +31,15 @@ import java.util.Iterator;
|
|||||||
*/
|
*/
|
||||||
public class HTTP {
|
public class HTTP {
|
||||||
|
|
||||||
/** Carriage return/line feed. */
|
/**
|
||||||
|
* Carriage return/line feed.
|
||||||
|
*/
|
||||||
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 will contain
|
* header or a response header. A request header will contain
|
||||||
*
|
* <p/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* {
|
* {
|
||||||
* Method: "POST" (for example),
|
* Method: "POST" (for example),
|
||||||
@ -48,9 +47,9 @@ public class HTTP {
|
|||||||
* "HTTP-Version": "HTTP/1.1" (for example)
|
* "HTTP-Version": "HTTP/1.1" (for example)
|
||||||
* }
|
* }
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
* <p/>
|
||||||
* A response header will contain
|
* A response header will contain
|
||||||
*
|
* <p/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* {
|
* {
|
||||||
* "HTTP-Version": "HTTP/1.1" (for example),
|
* "HTTP-Version": "HTTP/1.1" (for example),
|
||||||
@ -58,18 +57,18 @@ public class HTTP {
|
|||||||
* "Reason-Phrase": "OK" (for example)
|
* "Reason-Phrase": "OK" (for example)
|
||||||
* }
|
* }
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
* <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 that
|
* the HTTP field names as JSON names, so that
|
||||||
*
|
* <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
|
||||||
* Cache-Control: no-cache
|
* Cache-Control: no-cache
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
* <p/>
|
||||||
* become
|
* become
|
||||||
*
|
* <p/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* {...
|
* {...
|
||||||
* Date: "Sun, 26 May 2002 18:06:04 GMT",
|
* Date: "Sun, 26 May 2002 18:06:04 GMT",
|
||||||
@ -77,12 +76,11 @@ public class HTTP {
|
|||||||
* "Cache-Control": "no-cache",
|
* "Cache-Control": "no-cache",
|
||||||
* ...}
|
* ...}
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
* <p/>
|
||||||
* It does no further checking or conversion. It does not parse dates.
|
* It does no further checking or conversion. It does not parse dates.
|
||||||
* It does not do '%' transforms on URLs.
|
* It does not do '%' transforms on URLs.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string An HTTP header string.
|
||||||
* An HTTP header string.
|
|
||||||
* @return A JSONObject containing the elements and attributes
|
* @return A JSONObject containing the elements and attributes
|
||||||
* of the XML string.
|
* of the XML string.
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
@ -102,8 +100,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
|
||||||
|
|
||||||
@ -125,7 +122,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/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* {
|
* {
|
||||||
* Method: "POST" (for example),
|
* Method: "POST" (for example),
|
||||||
@ -133,9 +130,9 @@ public class HTTP {
|
|||||||
* "HTTP-Version": "HTTP/1.1" (for example)
|
* "HTTP-Version": "HTTP/1.1" (for example)
|
||||||
* }
|
* }
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
* <p/>
|
||||||
* A response header must contain
|
* A response header must contain
|
||||||
*
|
* <p/>
|
||||||
* <pre>
|
* <pre>
|
||||||
* {
|
* {
|
||||||
* "HTTP-Version": "HTTP/1.1" (for example),
|
* "HTTP-Version": "HTTP/1.1" (for example),
|
||||||
@ -143,15 +140,13 @@ public class HTTP {
|
|||||||
* "Reason-Phrase": "OK" (for example)
|
* "Reason-Phrase": "OK" (for example)
|
||||||
* }
|
* }
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
* <p/>
|
||||||
* Any other members of the JSONObject will be output as HTTP fields.
|
* Any other members of the JSONObject will be output as HTTP fields.
|
||||||
* The result will end with two CRLF pairs.
|
* The result will end with two CRLF pairs.
|
||||||
*
|
*
|
||||||
* @param jo
|
* @param jo A JSONObject
|
||||||
* A JSONObject
|
|
||||||
* @return An HTTP header string.
|
* @return An HTTP header string.
|
||||||
* @throws JSONException
|
* @throws JSONException if the object does not contain enough
|
||||||
* 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 {
|
||||||
@ -164,8 +159,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('"');
|
||||||
@ -173,8 +167,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,29 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2002 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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.
|
||||||
@ -36,8 +33,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);
|
||||||
@ -46,8 +42,8 @@ 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.
|
||||||
*
|
*
|
||||||
* @throws JSONException
|
|
||||||
* @return A String.
|
* @return A String.
|
||||||
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public String nextToken() throws JSONException {
|
public String nextToken() throws JSONException {
|
||||||
char c;
|
char c;
|
||||||
|
@ -1,29 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2002 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
@ -42,20 +39,20 @@ import java.util.Map;
|
|||||||
* <code>Boolean</code>, <code>JSONArray</code>, <code>JSONObject</code>,
|
* <code>Boolean</code>, <code>JSONArray</code>, <code>JSONObject</code>,
|
||||||
* <code>Number</code>, <code>String</code>, or the
|
* <code>Number</code>, <code>String</code>, or the
|
||||||
* <code>JSONObject.NULL object</code>.
|
* <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 <code>opt</code> method returns a
|
* exception if one cannot be found. An <code>opt</code> method returns a
|
||||||
* default value instead of throwing an exception, and so is useful for
|
* default value instead of throwing an exception, and so is useful for
|
||||||
* obtaining 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. There are also typed
|
* object which you can cast or query for type. There are also typed
|
||||||
* <code>get</code> and <code>opt</code> methods that do type checking and type
|
* <code>get</code> and <code>opt</code> methods that do type checking and type
|
||||||
* coercion for you.
|
* 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 more forgiving in the texts they will
|
* JSON syntax rules. The constructors are more forgiving in the texts they will
|
||||||
* accept:
|
* accept:
|
||||||
@ -94,10 +91,8 @@ 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 If there is a syntax error.
|
||||||
* @throws JSONException
|
|
||||||
* If there is a syntax error.
|
|
||||||
*/
|
*/
|
||||||
public JSONArray(final JSONTokener x) throws JSONException {
|
public JSONArray(final JSONTokener x) throws JSONException {
|
||||||
this();
|
this();
|
||||||
@ -110,8 +105,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());
|
||||||
}
|
}
|
||||||
@ -134,12 +128,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
|
||||||
* A string that begins with <code>[</code> <small>(left
|
|
||||||
* bracket)</small> and ends with <code>]</code>
|
* bracket)</small> and ends with <code>]</code>
|
||||||
* <small>(right bracket)</small>.
|
* <small>(right bracket)</small>.
|
||||||
* @throws JSONException
|
* @throws JSONException If there is a syntax error.
|
||||||
* 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));
|
||||||
@ -148,8 +140,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>();
|
||||||
@ -164,8 +155,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();
|
||||||
@ -174,8 +164,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.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -183,11 +172,9 @@ 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
|
* @throws JSONException If there is no value for the index.
|
||||||
* 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);
|
||||||
@ -201,19 +188,16 @@ 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
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
|
||||||
* @return The truth.
|
* @return The truth.
|
||||||
* @throws JSONException
|
* @throws JSONException If there is no value for the index or if the value is not
|
||||||
* 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.");
|
||||||
@ -222,19 +206,16 @@ 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
|
* @throws JSONException If the key is not found or if the value cannot be converted
|
||||||
* 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.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -242,18 +223,15 @@ 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
|
* @throws JSONException If the key is not found or if the value is not a number.
|
||||||
* 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.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -261,11 +239,9 @@ 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
|
* @throws JSONException If there is no value for the index. or if the value is not a
|
||||||
* 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 {
|
||||||
@ -279,11 +255,9 @@ 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
|
* @throws JSONException If there is no value for the index or if the value is not a
|
||||||
* 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 {
|
||||||
@ -297,19 +271,16 @@ 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
|
* @throws JSONException If the key is not found or if the value cannot be converted
|
||||||
* 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.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -317,11 +288,9 @@ 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
|
* @throws JSONException If there is no string value for the index.
|
||||||
* 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);
|
||||||
@ -334,8 +303,7 @@ 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) {
|
||||||
@ -347,11 +315,9 @@ public class JSONArray {
|
|||||||
* <code>separator</code> string is inserted between each element. Warning:
|
* <code>separator</code> string is inserted between each element. Warning:
|
||||||
* This method assumes that the data structure is acyclical.
|
* This method assumes that the data structure is acyclical.
|
||||||
*
|
*
|
||||||
* @param separator
|
* @param separator A string that will be inserted between the elements.
|
||||||
* A string that will be inserted between the elements.
|
|
||||||
* @return a string.
|
* @return a string.
|
||||||
* @throws JSONException
|
* @throws JSONException If the array contains an invalid number.
|
||||||
* 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();
|
||||||
@ -378,8 +344,7 @@ 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) {
|
||||||
@ -391,8 +356,7 @@ public class JSONArray {
|
|||||||
* if there is no value at that index, or if the value is not Boolean.TRUE
|
* if there is no value at that index, or if the value is not Boolean.TRUE
|
||||||
* or the String "true".
|
* or the String "true".
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* 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) {
|
||||||
@ -404,17 +368,14 @@ public class JSONArray {
|
|||||||
* defaultValue if there is no value at that index or if it is not a Boolean
|
* defaultValue if there is no value at that 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
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
* @param defaultValue A boolean default.
|
||||||
* @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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -424,8 +385,7 @@ public class JSONArray {
|
|||||||
* if there is no value for the index, or if the value is not a number and
|
* if there is no value for the index, or if the value is not a number and
|
||||||
* cannot be converted to a number.
|
* cannot be converted to a number.
|
||||||
*
|
*
|
||||||
* @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.
|
||||||
*/
|
*/
|
||||||
public double optDouble(final int index) {
|
public double optDouble(final int index) {
|
||||||
@ -437,17 +397,14 @@ public class JSONArray {
|
|||||||
* is returned if there is no value for the index, or if the value is not a
|
* is returned if there is no value for the index, or if the value is not a
|
||||||
* number and cannot be converted to a number.
|
* number and cannot be converted to a number.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index subscript
|
||||||
* subscript
|
* @param defaultValue The default value.
|
||||||
* @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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -457,8 +414,7 @@ public class JSONArray {
|
|||||||
* there is no value for the index, or if the value is not a number and
|
* there is no value for the index, or if the value is not a number and
|
||||||
* cannot be converted to a number.
|
* cannot be converted to a number.
|
||||||
*
|
*
|
||||||
* @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.
|
||||||
*/
|
*/
|
||||||
public int optInt(final int index) {
|
public int optInt(final int index) {
|
||||||
@ -470,17 +426,14 @@ public class JSONArray {
|
|||||||
* returned if there is no value for the index, or if the value is not a
|
* returned if there is no value for the 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
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
* @param defaultValue The default value.
|
||||||
* @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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -488,8 +441,7 @@ 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.
|
||||||
*/
|
*/
|
||||||
@ -503,8 +455,7 @@ public class JSONArray {
|
|||||||
* the key is not found, or null if the index has no value, or if the value
|
* the key is not found, or null if the index has no value, or if the value
|
||||||
* is not a JSONObject.
|
* is not a JSONObject.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* 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) {
|
||||||
@ -517,8 +468,7 @@ public class JSONArray {
|
|||||||
* there is no value for the index, or if the value is not a number and
|
* there is no value for the index, or if the value is not a number and
|
||||||
* cannot be converted to a number.
|
* cannot be converted to a number.
|
||||||
*
|
*
|
||||||
* @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.
|
||||||
*/
|
*/
|
||||||
public long optLong(final int index) {
|
public long optLong(final int index) {
|
||||||
@ -530,17 +480,14 @@ public class JSONArray {
|
|||||||
* returned if there is no value for the index, or if the value is not a
|
* returned if there is no value for the 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
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
* @param defaultValue The default value.
|
||||||
* @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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -550,8 +497,7 @@ public class JSONArray {
|
|||||||
* empty string if there is no value at that index. If the value is not a
|
* empty string if there is no value at that index. If the value is not a
|
||||||
* string and is not null, then it is coverted to a string.
|
* string and is not null, then it is coverted to a string.
|
||||||
*
|
*
|
||||||
* @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.
|
||||||
*/
|
*/
|
||||||
public String optString(final int index) {
|
public String optString(final int index) {
|
||||||
@ -562,10 +508,8 @@ 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
|
* @param index The index must be between 0 and length() - 1.
|
||||||
* The index must be between 0 and length() - 1.
|
* @param defaultValue The default value.
|
||||||
* @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) {
|
||||||
@ -576,8 +520,7 @@ 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) {
|
||||||
@ -589,8 +532,7 @@ 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
|
* @param value A Collection value.
|
||||||
* A Collection value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final Collection<Object> value) {
|
public JSONArray put(final Collection<Object> value) {
|
||||||
@ -601,11 +543,9 @@ 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.
|
|
||||||
* @throws JSONException
|
|
||||||
* if the value is not finite.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
|
* @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 = new Double(value);
|
final Double d = new Double(value);
|
||||||
@ -617,8 +557,7 @@ 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) {
|
||||||
@ -629,8 +568,7 @@ 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) {
|
||||||
@ -642,8 +580,7 @@ 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
|
* @param value A Map value.
|
||||||
* A Map value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
*/
|
*/
|
||||||
public JSONArray put(final Map<String, Object> value) {
|
public JSONArray put(final Map<String, Object> value) {
|
||||||
@ -654,8 +591,7 @@ 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,
|
||||||
* An object value. The value should be a Boolean, Double,
|
|
||||||
* Integer, JSONArray, JSONObject, Long, or String, or the
|
* Integer, JSONArray, JSONObject, Long, or String, or the
|
||||||
* JSONObject.NULL object.
|
* JSONObject.NULL object.
|
||||||
* @return this.
|
* @return this.
|
||||||
@ -670,13 +606,10 @@ public class JSONArray {
|
|||||||
* than the length of the JSONArray, then null elements will be added as
|
* than the length of the JSONArray, then null elements will be added as
|
||||||
* necessary to pad it out.
|
* necessary to pad it out.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The subscript.
|
||||||
* The subscript.
|
* @param value A boolean value.
|
||||||
* @param value
|
|
||||||
* A boolean value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
* @throws JSONException If the index is negative.
|
||||||
* 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);
|
||||||
@ -687,13 +620,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 index
|
* @param index The subscript.
|
||||||
* The subscript.
|
* @param value A Collection value.
|
||||||
* @param value
|
|
||||||
* A Collection value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
* @throws JSONException If the index is negative or if the value is not finite.
|
||||||
* 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));
|
||||||
@ -705,13 +635,10 @@ public class JSONArray {
|
|||||||
* the JSONArray, then null elements will be added as necessary to pad it
|
* the JSONArray, then null elements will be added as necessary to pad it
|
||||||
* out.
|
* out.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The subscript.
|
||||||
* The subscript.
|
* @param value A double value.
|
||||||
* @param value
|
|
||||||
* A double value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
* @throws JSONException If the index is negative or if the value is not finite.
|
||||||
* 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));
|
||||||
@ -723,13 +650,10 @@ public class JSONArray {
|
|||||||
* the JSONArray, then null elements will be added as necessary to pad it
|
* the JSONArray, then null elements will be added as necessary to pad it
|
||||||
* out.
|
* out.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The subscript.
|
||||||
* The subscript.
|
* @param value An int value.
|
||||||
* @param value
|
|
||||||
* An int value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
* @throws JSONException If the index is negative.
|
||||||
* 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));
|
||||||
@ -741,13 +665,10 @@ public class JSONArray {
|
|||||||
* the JSONArray, then null elements will be added as necessary to pad it
|
* the JSONArray, then null elements will be added as necessary to pad it
|
||||||
* out.
|
* out.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The subscript.
|
||||||
* The subscript.
|
* @param value A long value.
|
||||||
* @param value
|
|
||||||
* A long value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
* @throws JSONException If the index is negative.
|
||||||
* 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));
|
||||||
@ -758,13 +679,10 @@ 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
|
* @param index The subscript.
|
||||||
* The subscript.
|
* @param value The Map value.
|
||||||
* @param value
|
|
||||||
* The Map value.
|
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
* @throws JSONException If the index is negative or if the the value is an invalid
|
||||||
* 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 {
|
||||||
@ -777,15 +695,12 @@ public class JSONArray {
|
|||||||
* than the length of the JSONArray, then null elements will be added as
|
* than the length of the JSONArray, then null elements will be added as
|
||||||
* necessary to pad it out.
|
* necessary to pad it out.
|
||||||
*
|
*
|
||||||
* @param index
|
* @param index The subscript.
|
||||||
* The subscript.
|
* @param value The value to put into the array. The value should be a
|
||||||
* @param value
|
|
||||||
* The value to put into the array. The value should be a
|
|
||||||
* Boolean, Double, Integer, JSONArray, JSONObject, Long, or
|
* Boolean, Double, Integer, JSONArray, JSONObject, Long, or
|
||||||
* String, or the JSONObject.NULL object.
|
* String, or the JSONObject.NULL object.
|
||||||
* @return this.
|
* @return this.
|
||||||
* @throws JSONException
|
* @throws JSONException If the index is negative or if the the value is an invalid
|
||||||
* 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 {
|
||||||
@ -795,8 +710,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);
|
||||||
}
|
}
|
||||||
@ -808,8 +722,7 @@ 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.
|
||||||
*/
|
*/
|
||||||
@ -821,8 +734,7 @@ public class JSONArray {
|
|||||||
* Determine if two JSONArrays are similar.
|
* Determine if two JSONArrays are similar.
|
||||||
* They must contain similar sequences.
|
* They must contain similar sequences.
|
||||||
*
|
*
|
||||||
* @param other
|
* @param other The other JSONArray
|
||||||
* 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) {
|
||||||
@ -840,13 +752,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -857,13 +767,11 @@ 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
|
||||||
* A JSONArray containing a list of key strings. These will be
|
|
||||||
* paired with the values.
|
* paired with the values.
|
||||||
* @return A JSONObject, or null if there are no names or if this JSONArray
|
* @return A JSONObject, or null if there are no names or if this JSONArray
|
||||||
* has no values.
|
* has no values.
|
||||||
* @throws JSONException
|
* @throws JSONException If any of the names are null.
|
||||||
* 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)) {
|
||||||
@ -881,7 +789,7 @@ public class JSONArray {
|
|||||||
* whitespace is added. If it is not possible to produce a syntactically
|
* whitespace is added. If it is not possible to produce a syntactically
|
||||||
* correct JSON text then null will be returned instead. This could occur if
|
* correct JSON text then null will be returned instead. This could occur if
|
||||||
* the array 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
|
||||||
@ -891,8 +799,7 @@ public class JSONArray {
|
|||||||
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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -901,8 +808,7 @@ public class JSONArray {
|
|||||||
* 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 acyclical.
|
* 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.
|
|
||||||
* @return a printable, displayable, transmittable representation of the
|
* @return a printable, displayable, transmittable representation of the
|
||||||
* object, beginning with <code>[</code> <small>(left
|
* object, beginning with <code>[</code> <small>(left
|
||||||
* bracket)</small> and ending with <code>]</code>
|
* bracket)</small> and ending with <code>]</code>
|
||||||
@ -919,7 +825,7 @@ 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.
|
||||||
@ -932,13 +838,11 @@ 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
|
||||||
*/
|
*/
|
||||||
@ -950,8 +854,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) {
|
||||||
@ -972,8 +875,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -13,8 +34,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 +43,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());
|
||||||
|
@ -1,29 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2008 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -39,12 +36,9 @@ 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
|
||||||
* 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.
|
* 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
|
||||||
@ -85,8 +79,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) {
|
|
||||||
|
|
||||||
// <!
|
// <!
|
||||||
|
|
||||||
@ -94,53 +87,44 @@ 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 + "'.");
|
||||||
}
|
}
|
||||||
@ -152,8 +136,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);
|
||||||
@ -185,8 +168,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, "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -203,16 +185,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");
|
||||||
}
|
}
|
||||||
@ -228,16 +208,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);
|
||||||
}
|
}
|
||||||
@ -254,8 +232,7 @@ public class JSONML {
|
|||||||
* JSONArrays will represent the child tags.
|
* JSONArrays will represent the child tags.
|
||||||
* Comments, prologs, DTDs, and <code><[ [ ]]></code> are ignored.
|
* Comments, prologs, DTDs, and <code><[ [ ]]></code> are ignored.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string The source 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
|
||||||
*/
|
*/
|
||||||
@ -272,8 +249,7 @@ public class JSONML {
|
|||||||
* JSONArrays will represent the child content and tags.
|
* JSONArrays will represent the child content and tags.
|
||||||
* Comments, prologs, DTDs, and <code><[ [ ]]></code> are ignored.
|
* Comments, prologs, DTDs, and <code><[ [ ]]></code> are ignored.
|
||||||
*
|
*
|
||||||
* @param x
|
* @param x An XMLTokener.
|
||||||
* 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
|
||||||
*/
|
*/
|
||||||
@ -288,11 +264,10 @@ public class JSONML {
|
|||||||
* the attributes will be in the JSONObject as properties. If the tag
|
* the attributes will be in the JSONObject as properties. If the tag
|
||||||
* contains children, the object will have a "childNodes" property which
|
* contains children, the object will have a "childNodes" property which
|
||||||
* will be an array of strings and JsonML JSONObjects.
|
* will be an array of strings and JsonML JSONObjects.
|
||||||
*
|
* <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
|
||||||
*/
|
*/
|
||||||
@ -307,11 +282,10 @@ public class JSONML {
|
|||||||
* the attributes will be in the JSONObject as properties. If the tag
|
* the attributes will be in the JSONObject as properties. If the tag
|
||||||
* contains children, the object will have a "childNodes" property which
|
* contains children, the object will have a "childNodes" property which
|
||||||
* will be an array of strings and JsonML JSONObjects.
|
* will be an array of strings and JsonML JSONObjects.
|
||||||
*
|
* <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
|
||||||
*/
|
*/
|
||||||
@ -322,8 +296,7 @@ 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
|
||||||
*/
|
*/
|
||||||
@ -367,8 +340,7 @@ public class JSONML {
|
|||||||
sb.append('"');
|
sb.append('"');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
i = 1;
|
i = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -378,8 +350,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);
|
||||||
@ -387,11 +358,9 @@ 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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -411,8 +380,7 @@ public class JSONML {
|
|||||||
* then it must have a "childNodes" property containing an array of objects.
|
* then it must have a "childNodes" property containing an array of objects.
|
||||||
* The other properties are attributes with string values.
|
* The other properties are attributes with string values.
|
||||||
*
|
*
|
||||||
* @param jo
|
* @param jo A JSONObject.
|
||||||
* A JSONObject.
|
|
||||||
* @return An XML string.
|
* @return An XML string.
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
@ -463,8 +431,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) {
|
||||||
@ -472,14 +439,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,29 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2006 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -31,7 +28,7 @@ import java.io.StringWriter;
|
|||||||
* The texts produced strictly conform to JSON syntax rules. No whitespace is
|
* The texts produced strictly conform to JSON 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> method for adding keys before
|
* values to the text, and a <code>key</code> method for adding keys before
|
||||||
* values in objects. There are <code>array</code> and <code>endArray</code>
|
* values in objects. There are <code>array</code> and <code>endArray</code>
|
||||||
@ -39,21 +36,21 @@ import java.io.StringWriter;
|
|||||||
* <code>endObject</code> methods which make and bound object values. All of
|
* <code>endObject</code> methods which make and bound object values. All of
|
||||||
* these methods return the JSONWriter instance, permitting cascade style. For
|
* these methods return the JSONWriter instance, permitting cascade style. For
|
||||||
* example,
|
* example,
|
||||||
*
|
* <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/>
|
||||||
* which produces the string
|
* which produces the string
|
||||||
*
|
* <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 colons. JSONStringer adds them for
|
* There are no methods for adding commas or 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.
|
||||||
*
|
*
|
||||||
* @author JSON.org
|
* @author JSON.org
|
||||||
|
@ -1,35 +1,27 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.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;
|
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2002 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A JSONTokener takes a source string and extracts characters and tokens from
|
* A JSONTokener takes a source string and extracts characters and tokens from
|
||||||
@ -52,8 +44,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);
|
||||||
@ -68,8 +59,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));
|
||||||
@ -78,8 +68,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));
|
||||||
@ -103,8 +92,7 @@ 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
|
||||||
* A character between '0' and '9' or between 'A' and 'F' or
|
|
||||||
* between 'a' and 'f'.
|
* 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.
|
||||||
*/
|
*/
|
||||||
@ -150,12 +138,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,12 +154,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;
|
||||||
@ -184,11 +168,9 @@ 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
|
* @param c The character to match.
|
||||||
* The character to match.
|
|
||||||
* @return The character.
|
* @return The character.
|
||||||
* @throws JSONException
|
* @throws JSONException if the character does not match.
|
||||||
* 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();
|
||||||
@ -201,11 +183,9 @@ 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
|
* @throws JSONException Substring bounds error if there are not
|
||||||
* 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 {
|
||||||
@ -229,8 +209,8 @@ public class JSONTokener {
|
|||||||
/**
|
/**
|
||||||
* Get the next char in the string, skipping whitespace.
|
* Get the next char in the string, skipping whitespace.
|
||||||
*
|
*
|
||||||
* @throws JSONException
|
|
||||||
* @return A character, or 0 if there are no more characters.
|
* @return A character, or 0 if there are no more characters.
|
||||||
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
public char nextClean() throws JSONException {
|
public char nextClean() throws JSONException {
|
||||||
for (; ; ) {
|
for (; ; ) {
|
||||||
@ -247,13 +227,11 @@ public class JSONTokener {
|
|||||||
* allow strings in single quotes, but an implementation is allowed to
|
* allow strings in single quotes, but an implementation is allowed to
|
||||||
* accept them.
|
* accept them.
|
||||||
*
|
*
|
||||||
* @param quote
|
* @param quote The quoting character, either <code>"</code>
|
||||||
* The quoting character, either <code>"</code>
|
|
||||||
* <small>(double quote)</small> or <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
|
* @throws JSONException Unterminated string.
|
||||||
* Unterminated string.
|
|
||||||
*/
|
*/
|
||||||
public String nextString(final char quote) throws JSONException {
|
public String nextString(final char quote) throws JSONException {
|
||||||
char c;
|
char c;
|
||||||
@ -309,8 +287,7 @@ 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
|
* @param delimiter A delimiter character.
|
||||||
* 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 {
|
||||||
@ -331,8 +308,7 @@ 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 first.
|
* characters or the end of line, whichever comes first.
|
||||||
*
|
*
|
||||||
* @param delimiters
|
* @param delimiters A set of delimiter characters.
|
||||||
* 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 {
|
||||||
@ -354,10 +330,8 @@ 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 JSONObject.NULL object.
|
* JSONArray, JSONObject, Long, or String, or the JSONObject.NULL object.
|
||||||
*
|
*
|
||||||
* @throws JSONException
|
|
||||||
* If syntax error.
|
|
||||||
*
|
|
||||||
* @return An object.
|
* @return An object.
|
||||||
|
* @throws JSONException If syntax error.
|
||||||
*/
|
*/
|
||||||
public Object nextValue() throws JSONException {
|
public Object nextValue() throws JSONException {
|
||||||
char c = this.nextClean();
|
char c = this.nextClean();
|
||||||
@ -401,8 +375,7 @@ 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 characters are skipped.
|
* If the requested character is not found, no 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.
|
||||||
*/
|
*/
|
||||||
@ -424,8 +397,7 @@ public class JSONTokener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
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();
|
||||||
@ -435,8 +407,7 @@ 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) {
|
||||||
|
@ -1,38 +1,35 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Writer;
|
import java.io.Writer;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2006 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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 syntax rules. No whitespace is
|
* The texts produced strictly conform to JSON 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> method for adding keys before
|
* values to the text, and a <code>key</code> method for adding keys before
|
||||||
* values in objects. There are <code>array</code> and <code>endArray</code>
|
* values in objects. There are <code>array</code> and <code>endArray</code>
|
||||||
@ -40,21 +37,21 @@ import java.io.Writer;
|
|||||||
* <code>endObject</code> methods which make and bound object values. All of
|
* <code>endObject</code> methods which make and bound object values. All of
|
||||||
* these methods return the JSONWriter instance, permitting a cascade style. For
|
* these methods return the JSONWriter instance, permitting a cascade style. For
|
||||||
* example,
|
* example,
|
||||||
*
|
* <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/>
|
||||||
* which writes
|
* which writes
|
||||||
*
|
* <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 colons. JSONWriter adds them for
|
* There are no methods for adding commas or 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.
|
||||||
*
|
*
|
||||||
* @author JSON.org
|
* @author JSON.org
|
||||||
@ -108,11 +105,9 @@ 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
|
* @throws JSONException If the value is out of sequence.
|
||||||
* 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) {
|
||||||
@ -124,8 +119,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') {
|
||||||
@ -143,8 +137,7 @@ public class JSONWriter {
|
|||||||
* <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
|
* @throws JSONException If the nesting is too deep, or if the object is
|
||||||
* If the nesting is too deep, or if the object is
|
|
||||||
* started in the wrong place (for example as a key or after the
|
* started in the wrong place (for example as a key or after the
|
||||||
* end of the
|
* end of the
|
||||||
* outermost array or object).
|
* outermost array or object).
|
||||||
@ -162,13 +155,10 @@ 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
|
* @throws JSONException If unbalanced.
|
||||||
* 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) {
|
||||||
@ -177,8 +167,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;
|
||||||
@ -190,8 +179,7 @@ public class JSONWriter {
|
|||||||
* <code>array</code>.
|
* <code>array</code>.
|
||||||
*
|
*
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
* @throws JSONException If incorrectly nested.
|
||||||
* If incorrectly nested.
|
|
||||||
*/
|
*/
|
||||||
public JSONWriter endArray() throws JSONException {
|
public JSONWriter endArray() throws JSONException {
|
||||||
return this.end('a', ']');
|
return this.end('a', ']');
|
||||||
@ -202,8 +190,7 @@ public class JSONWriter {
|
|||||||
* <code>object</code>.
|
* <code>object</code>.
|
||||||
*
|
*
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
* @throws JSONException If incorrectly nested.
|
||||||
* If incorrectly nested.
|
|
||||||
*/
|
*/
|
||||||
public JSONWriter endObject() throws JSONException {
|
public JSONWriter endObject() throws JSONException {
|
||||||
return this.end('k', '}');
|
return this.end('k', '}');
|
||||||
@ -213,11 +200,9 @@ public class JSONWriter {
|
|||||||
* 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 key.
|
* object, every value must be preceded by a key.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string A key string.
|
||||||
* A key string.
|
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
* @throws JSONException If the key is out of place. For example, keys
|
||||||
* If the key is out of place. For example, keys
|
|
||||||
* do not belong in arrays or if the key is null.
|
* do not belong in arrays or if the key is null.
|
||||||
*/
|
*/
|
||||||
public JSONWriter key(final String string) throws JSONException {
|
public JSONWriter key(final String string) throws JSONException {
|
||||||
@ -235,8 +220,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -249,8 +233,7 @@ public class JSONWriter {
|
|||||||
* <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
|
* @throws JSONException If the nesting is too deep, or if the object is
|
||||||
* If the nesting is too deep, or if the object is
|
|
||||||
* started in the wrong place (for example as a key or after the
|
* started in the wrong place (for example as a key or after the
|
||||||
* end of the
|
* end of the
|
||||||
* outermost array or object).
|
* outermost array or object).
|
||||||
@ -272,10 +255,8 @@ 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 If nesting is wrong.
|
||||||
* @throws JSONException
|
|
||||||
* 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) {
|
||||||
@ -292,10 +273,8 @@ 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 If nesting is too deep.
|
||||||
* @throws JSONException
|
|
||||||
* 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) {
|
||||||
@ -310,8 +289,7 @@ 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
|
* @param b A boolean.
|
||||||
* A boolean.
|
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
@ -322,11 +300,9 @@ 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
|
* @throws JSONException If the number is not finite.
|
||||||
* 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));
|
||||||
@ -335,8 +311,7 @@ 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
|
||||||
*/
|
*/
|
||||||
@ -347,13 +322,11 @@ 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,
|
||||||
* The object to append. It can be null, or a Boolean, Number,
|
|
||||||
* String, JSONObject, or JSONArray, or an object that implements
|
* String, JSONObject, or JSONArray, or an object that implements
|
||||||
* JSONString.
|
* JSONString.
|
||||||
* @return this
|
* @return this
|
||||||
* @throws JSONException
|
* @throws JSONException If the value is out of sequence.
|
||||||
* 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,29 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2013 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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 byte. The last byte of a character
|
* then the next byte is a continuation byte. The last byte of a character
|
||||||
@ -31,16 +28,16 @@ package com.intellectualcrafters.json;
|
|||||||
* set. Kim stands for "Keep it minimal". A Unicode character is never longer
|
* set. Kim stands for "Keep it minimal". A Unicode character is never longer
|
||||||
* than 3 bytes. Every byte contributes 7 bits to the character. ASCII is
|
* than 3 bytes. Every byte contributes 7 bits to the character. ASCII is
|
||||||
* unmodified.
|
* unmodified.
|
||||||
*
|
* <p/>
|
||||||
* Kim UTF-8
|
* Kim UTF-8
|
||||||
* one byte U+007F U+007F
|
* one byte U+007F U+007F
|
||||||
* two bytes U+3FFF U+07FF
|
* two bytes U+3FFF U+07FF
|
||||||
* three bytes U+10FFF U+FFFF
|
* three bytes U+10FFF U+FFFF
|
||||||
* four bytes U+10FFFF
|
* four bytes U+10FFFF
|
||||||
*
|
* <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 to UTF-8.
|
* byte smaller when encoded in Kim compared to UTF-8.
|
||||||
*
|
* <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, Buginese, Buhid, Carian, Cherokee,
|
* Avestan, Balinese, Batak, Bopomofo, Buginese, Buhid, Carian, Cherokee,
|
||||||
* Coptic, Cyrillic, Deseret, Egyptian Hieroglyphs, Ethiopic, Georgian,
|
* Coptic, Cyrillic, Deseret, Egyptian Hieroglyphs, Ethiopic, Georgian,
|
||||||
@ -50,10 +47,10 @@ package com.intellectualcrafters.json;
|
|||||||
* Ol Chiki, Old Turkic, Oriya, Osmanya, Pahlavi, Parthian, Phags-Pa,
|
* Ol Chiki, Old Turkic, Oriya, Osmanya, Pahlavi, Parthian, Phags-Pa,
|
||||||
* Phoenician, Samaritan, Sharada, Sinhala, Sora Sompeng, Tagalog, Tagbanwa,
|
* Phoenician, Samaritan, Sharada, Sinhala, Sora Sompeng, Tagalog, Tagbanwa,
|
||||||
* Takri, Tai Le, Tai Tham, Tamil, Telugu, Thai, Tibetan, Tifinagh, UCAS.
|
* Takri, Tai Le, Tai Tham, Tamil, Telugu, Thai, Tibetan, Tifinagh, UCAS.
|
||||||
*
|
* <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 UTF-16 string.
|
* byte array. A kim object can produce a UTF-16 string.
|
||||||
*
|
* <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 great inventions. While Kim is more
|
* sequence. UTF-8 is one of the world's 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.
|
||||||
@ -86,12 +83,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) {
|
||||||
|
|
||||||
@ -118,10 +112,8 @@ 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);
|
||||||
@ -131,12 +123,9 @@ public class Kim {
|
|||||||
* 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);
|
||||||
@ -145,10 +134,8 @@ 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 if surrogate pair mismatch.
|
||||||
* @throws JSONException
|
|
||||||
* 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();
|
||||||
@ -163,11 +150,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);
|
||||||
@ -194,8 +179,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;
|
||||||
@ -206,8 +190,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;
|
||||||
@ -238,11 +221,9 @@ public class Kim {
|
|||||||
* values and ranges from 0 to length - 1. The index of the next character
|
* values and ranges from 0 to length - 1. 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 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.
|
||||||
* @throws JSONException
|
|
||||||
* if at does not point to a valid character.
|
|
||||||
*/
|
*/
|
||||||
public int characterAt(final int at) throws JSONException {
|
public int characterAt(final int at) throws JSONException {
|
||||||
final int c = get(at);
|
final int c = get(at);
|
||||||
@ -256,8 +237,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))) {
|
||||||
@ -271,11 +251,9 @@ 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
|
* @param character a Unicode character between 0 and 0x10FFFF.
|
||||||
* a Unicode character between 0 and 0x10FFFF.
|
|
||||||
* @return 1, 2, or 3
|
* @return 1, 2, or 3
|
||||||
* @throws JSONException
|
* @throws JSONException if the character is not representable in a kim.
|
||||||
* 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)) {
|
||||||
@ -287,10 +265,8 @@ 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) {
|
||||||
@ -302,8 +278,7 @@ 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.
|
||||||
*/
|
*/
|
||||||
@ -325,11 +300,9 @@ 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
|
* @throws JSONException if there is no byte at that position.
|
||||||
* 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)) {
|
||||||
@ -352,8 +325,7 @@ public class Kim {
|
|||||||
* 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
|
* @throws JSONException if the kim is not valid.
|
||||||
* if the kim is not valid.
|
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public String toString() throws JSONException {
|
public String toString() throws JSONException {
|
||||||
@ -366,8 +338,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));
|
||||||
|
@ -1,29 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2002 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
@ -39,8 +36,7 @@ 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
|
* @param properties java.util.Properties
|
||||||
* java.util.Properties
|
|
||||||
* @return JSONObject
|
* @return JSONObject
|
||||||
* @throws JSONException
|
* @throws JSONException
|
||||||
*/
|
*/
|
||||||
@ -59,8 +55,7 @@ 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
|
||||||
*/
|
*/
|
||||||
|
@ -1,29 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2002 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -35,36 +32,54 @@ import java.util.Iterator;
|
|||||||
*/
|
*/
|
||||||
public class XML {
|
public class XML {
|
||||||
|
|
||||||
/** The Character '&'. */
|
/**
|
||||||
|
* The Character '&'.
|
||||||
|
*/
|
||||||
public static final Character AMP = '&';
|
public static final Character AMP = '&';
|
||||||
|
|
||||||
/** The Character '''. */
|
/**
|
||||||
|
* The Character '''.
|
||||||
|
*/
|
||||||
public static final Character APOS = '\'';
|
public static final Character APOS = '\'';
|
||||||
|
|
||||||
/** The Character '!'. */
|
/**
|
||||||
|
* The Character '!'.
|
||||||
|
*/
|
||||||
public static final Character BANG = '!';
|
public static final Character BANG = '!';
|
||||||
|
|
||||||
/** The Character '='. */
|
/**
|
||||||
|
* The Character '='.
|
||||||
|
*/
|
||||||
public static final Character EQ = '=';
|
public static final Character EQ = '=';
|
||||||
|
|
||||||
/** The Character '>'. */
|
/**
|
||||||
|
* The Character '>'.
|
||||||
|
*/
|
||||||
public static final Character GT = '>';
|
public static final Character GT = '>';
|
||||||
|
|
||||||
/** The Character '<'. */
|
/**
|
||||||
|
* The Character '<'.
|
||||||
|
*/
|
||||||
public static final Character LT = '<';
|
public static final Character LT = '<';
|
||||||
|
|
||||||
/** The Character '?'. */
|
/**
|
||||||
|
* The Character '?'.
|
||||||
|
*/
|
||||||
public static final Character QUEST = '?';
|
public static final Character QUEST = '?';
|
||||||
|
|
||||||
/** The Character '"'. */
|
/**
|
||||||
|
* The Character '"'.
|
||||||
|
*/
|
||||||
public static final Character QUOT = '"';
|
public static final Character QUOT = '"';
|
||||||
|
|
||||||
/** The Character '/'. */
|
/**
|
||||||
|
* The Character '/'.
|
||||||
|
*/
|
||||||
public static final Character SLASH = '/';
|
public static final Character SLASH = '/';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Replace special characters with XML escapes:
|
* Replace special characters with XML escapes:
|
||||||
*
|
* <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;
|
||||||
@ -72,8 +87,7 @@ 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) {
|
||||||
@ -107,8 +121,7 @@ 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
|
* @param string A 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 {
|
||||||
@ -127,12 +140,9 @@ 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
|
||||||
*/
|
*/
|
||||||
@ -166,8 +176,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() == '[') {
|
||||||
@ -185,25 +194,21 @@ 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 </
|
||||||
|
|
||||||
@ -219,14 +224,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();
|
||||||
@ -247,30 +250,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) {
|
||||||
@ -278,8 +277,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));
|
||||||
@ -287,24 +285,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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -318,8 +312,7 @@ public class XML {
|
|||||||
* convert plus forms, octal forms, hex forms, or E forms lacking decimal
|
* convert plus forms, octal forms, hex forms, or E forms lacking decimal
|
||||||
* points.
|
* points.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string A 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) {
|
||||||
@ -345,15 +338,13 @@ 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;
|
||||||
@ -370,8 +361,7 @@ public class XML {
|
|||||||
* text may be placed in a "content" member. Comments, prologs, DTDs, and
|
* text may be placed in a "content" member. Comments, prologs, DTDs, and
|
||||||
* <code><[ [ ]]></code> are ignored.
|
* <code><[ [ ]]></code> are ignored.
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string The source 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
|
||||||
*/
|
*/
|
||||||
@ -387,8 +377,7 @@ 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
|
||||||
*/
|
*/
|
||||||
@ -399,10 +388,8 @@ 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
|
||||||
*/
|
*/
|
||||||
@ -450,15 +437,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) {
|
||||||
@ -471,21 +456,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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -503,8 +485,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);
|
||||||
}
|
}
|
||||||
@ -515,8 +496,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,29 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.json;
|
package com.intellectualcrafters.json;
|
||||||
|
|
||||||
/*
|
|
||||||
Copyright (c) 2002 JSON.org
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
The Software shall be used for Good, not Evil.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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.
|
||||||
@ -51,8 +48,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);
|
||||||
@ -62,8 +58,7 @@ 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
|
* @throws JSONException If the <code>]]></code> is not found.
|
||||||
* If the <code>]]></code> is not found.
|
|
||||||
*/
|
*/
|
||||||
public String nextCDATA() throws JSONException {
|
public String nextCDATA() throws JSONException {
|
||||||
char c;
|
char c;
|
||||||
@ -113,8 +108,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();
|
||||||
@ -125,11 +119,9 @@ 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
|
* @param ampersand An ampersand character.
|
||||||
* 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
|
* @throws JSONException If missing ';' in XML entity.
|
||||||
* 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();
|
||||||
@ -137,11 +129,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -158,8 +148,7 @@ public class XMLTokener extends JSONTokener {
|
|||||||
* Character, and strings and names are returned as Boolean. We
|
* Character, and strings and names are returned as Boolean. We
|
||||||
* don't care
|
* don't care
|
||||||
* what the values actually are.
|
* what the values actually are.
|
||||||
* @throws JSONException
|
* @throws JSONException If a string is not properly closed or if the XML
|
||||||
* If a string is not properly closed or if the XML
|
|
||||||
* is badly structured.
|
* is badly structured.
|
||||||
*/
|
*/
|
||||||
public Object nextMeta() throws JSONException {
|
public Object nextMeta() throws JSONException {
|
||||||
@ -226,8 +215,7 @@ public class XMLTokener extends JSONTokener {
|
|||||||
* name.
|
* name.
|
||||||
*
|
*
|
||||||
* @return a String or a Character.
|
* @return a String or a Character.
|
||||||
* @throws JSONException
|
* @throws JSONException If the XML is not well formed.
|
||||||
* If the XML is not well formed.
|
|
||||||
*/
|
*/
|
||||||
public Object nextToken() throws JSONException {
|
public Object nextToken() throws JSONException {
|
||||||
char c;
|
char c;
|
||||||
@ -269,8 +257,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -311,8 +298,7 @@ public class XMLTokener extends JSONTokener {
|
|||||||
* If it is not found, we are left at the end of the source with a result of
|
* If it is not found, we are left at the end of the source with a result of
|
||||||
* false.
|
* false.
|
||||||
*
|
*
|
||||||
* @param to
|
* @param to A string to skip past.
|
||||||
* 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 {
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
@ -12,8 +33,7 @@ public class AbstractFlag {
|
|||||||
/**
|
/**
|
||||||
* AbstractFlag is a parameter used in creating a new Flag
|
* AbstractFlag is a parameter used in creating a new Flag
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key The key must be alphabetical characters and <= 16 characters
|
||||||
* The key must be alphabetical characters and <= 16 characters
|
|
||||||
* in length
|
* in length
|
||||||
*/
|
*/
|
||||||
public AbstractFlag(final String key) {
|
public AbstractFlag(final String key) {
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,10 +1,23 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = C.java >> Generated by: Citymonstret at 2014-08-09 01:43
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
@ -360,15 +373,13 @@ 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;
|
||||||
if (PlotMain.translations == null) {
|
if (PlotMain.translations == null) {
|
||||||
this.s = d;
|
this.s = d;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
this.s = PlotMain.translations.getString(this.toString());
|
this.s = PlotMain.translations.getString(this.toString());
|
||||||
}
|
}
|
||||||
if (this.s == null) {
|
if (this.s == null) {
|
||||||
|
@ -1,10 +1,31 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
|
import org.bukkit.block.Biome;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.block.Biome;
|
|
||||||
|
|
||||||
public class Configuration {
|
public class Configuration {
|
||||||
public static final SettingValue STRING = new SettingValue("STRING") {
|
public static final SettingValue STRING = new SettingValue("STRING") {
|
||||||
@Override
|
@Override
|
||||||
@ -36,8 +57,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -54,8 +74,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -72,8 +91,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -90,8 +108,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -120,13 +137,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -136,8 +151,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -177,14 +191,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -206,8 +218,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;
|
||||||
@ -216,8 +227,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,30 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import com.intellectualcrafters.plot.Configuration.SettingValue;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.Configuration.SettingValue;
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class ConfigurationNode {
|
public class ConfigurationNode {
|
||||||
private final String constant;
|
private final String constant;
|
||||||
@ -32,8 +52,7 @@ public class ConfigurationNode {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
@ -11,16 +32,13 @@ public class Flag {
|
|||||||
* key/value pair. For a flag to be usable by a player, you need to register
|
* key/value pair. For a flag to be usable by a player, you need to register
|
||||||
* it with PlotSquared.
|
* it with PlotSquared.
|
||||||
*
|
*
|
||||||
* @param key
|
* @param key AbstractFlag
|
||||||
* AbstractFlag
|
* @param value Value must be alphanumerical (can have spaces) and be <= 48
|
||||||
* @param value
|
|
||||||
* Value must be alphanumerical (can have spaces) and be <= 48
|
|
||||||
* characters
|
* characters
|
||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException if you provide inadequate inputs
|
||||||
* if you provide inadequate inputs
|
|
||||||
*/
|
*/
|
||||||
public Flag(final AbstractFlag key, final String value) {
|
public Flag(final AbstractFlag key, final String value) {
|
||||||
final char[] allowedCharacters = new char[] { '[', ']', '(', ')', ',', '_', '-', '.', ',', '?', '!', '&', '§' };
|
final char[] allowedCharacters = new char[]{'[', ']', '(', ')', ',', '_', '-', '.', ',', '?', '!', '&', '<EFBFBD>'};
|
||||||
String tempValue = value;
|
String tempValue = value;
|
||||||
for (final char c : allowedCharacters) {
|
for (final char c : allowedCharacters) {
|
||||||
tempValue = tempValue.replace(c, 'c');
|
tempValue = tempValue.replace(c, 'c');
|
||||||
|
@ -1,11 +1,32 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
public class FlagManager {
|
public class FlagManager {
|
||||||
|
|
||||||
// TODO add some flags
|
// TODO add some flags
|
||||||
@ -64,8 +85,7 @@ public class FlagManager {
|
|||||||
/**
|
/**
|
||||||
* Get a list of registerd AbstragFlag objects based on player permissions
|
* Get a list of registerd AbstragFlag objects based on player permissions
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player with permissions
|
||||||
* with permissions
|
|
||||||
* @return List (AbstractFlag)
|
* @return List (AbstractFlag)
|
||||||
*/
|
*/
|
||||||
public static List<AbstractFlag> getFlags(final Player player) {
|
public static List<AbstractFlag> getFlags(final Player player) {
|
||||||
@ -97,8 +117,7 @@ public class FlagManager {
|
|||||||
* Get an AbstractFlag by a string
|
* Get an AbstractFlag by a string
|
||||||
*
|
*
|
||||||
* @param string
|
* @param string
|
||||||
* @param create
|
* @param create If to create the flag if it does not exist
|
||||||
* If to create the flag if it does not exist
|
|
||||||
* @return AbstractFlag
|
* @return AbstractFlag
|
||||||
*/
|
*/
|
||||||
public static AbstractFlag getFlag(final String string, final boolean create) {
|
public static AbstractFlag getFlag(final String string, final boolean create) {
|
||||||
@ -126,8 +145,7 @@ public class FlagManager {
|
|||||||
final String[] split = flagstrings.get(i).split(";");
|
final String[] split = flagstrings.get(i).split(";");
|
||||||
if (split.length == 1) {
|
if (split.length == 1) {
|
||||||
flags[i] = new Flag(getFlag(split[0], true), "");
|
flags[i] = new Flag(getFlag(split[0], true), "");
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
flags[i] = new Flag(getFlag(split[0], true), split[1]);
|
flags[i] = new Flag(getFlag(split[0], true), split[1]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,23 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = LSetCube.java >> Generated by: Citymonstret at 2014-08-09 01:43
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
|
@ -1,10 +1,23 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Lag.java >> Generated by: Citymonstret at 2014-08-09 01:43
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
@ -41,8 +54,7 @@ public class Lag implements Runnable {
|
|||||||
/**
|
/**
|
||||||
* Return the tick per second (measured in $ticks)
|
* Return the tick per second (measured in $ticks)
|
||||||
*
|
*
|
||||||
* @param ticks
|
* @param ticks Ticks
|
||||||
* Ticks
|
|
||||||
* @return ticks per second
|
* @return ticks per second
|
||||||
*/
|
*/
|
||||||
public static double getTPS(final int ticks) {
|
public static double getTPS(final int ticks) {
|
||||||
@ -57,8 +69,7 @@ public class Lag implements Runnable {
|
|||||||
/**
|
/**
|
||||||
* Get number of ticks since
|
* Get number of ticks since
|
||||||
*
|
*
|
||||||
* @param tI
|
* @param tI Ticks <
|
||||||
* Ticks <
|
|
||||||
* @return number of ticks since $tI
|
* @return number of ticks since $tI
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
|
@ -1,18 +1,27 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Logger.java >> Generated by: Citymonstret at 2014-08-09 01:43
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.*;
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileReader;
|
|
||||||
import java.io.FileWriter;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
@ -36,8 +45,7 @@ public class Logger {
|
|||||||
entries.add(line);
|
entries.add(line);
|
||||||
}
|
}
|
||||||
reader.close();
|
reader.close();
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
PlotMain.sendConsoleSenderMessage(C.PREFIX.s() + "File setup error Logger#setup");
|
PlotMain.sendConsoleSenderMessage(C.PREFIX.s() + "File setup error Logger#setup");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,56 +1,26 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2011-2013 Tyler Blair. All rights reserved.
|
|
||||||
*
|
|
||||||
* Redistribution and use in source and binary forms, with or without
|
|
||||||
* modification, are permitted provided that the following conditions are met:
|
|
||||||
*
|
|
||||||
* 1. Redistributions of source code must retain the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer.
|
|
||||||
*
|
|
||||||
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
* this list of conditions and the following disclaimer in the documentation
|
|
||||||
* and/or other materials provided with the distribution.
|
|
||||||
*
|
|
||||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
|
||||||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
||||||
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
||||||
* EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
|
||||||
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
|
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
|
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
||||||
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
*
|
|
||||||
* The views and conclusions contained in the software and documentation are
|
|
||||||
* those of the authors and contributors and should not be interpreted as
|
|
||||||
* representing official policies, either expressed or implied, of anybody else.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.io.UnsupportedEncodingException;
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.net.Proxy;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.net.URLConnection;
|
|
||||||
import java.net.URLEncoder;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.LinkedHashSet;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.UUID;
|
|
||||||
import java.util.logging.Level;
|
|
||||||
import java.util.zip.GZIPOutputStream;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.configuration.InvalidConfigurationException;
|
import org.bukkit.configuration.InvalidConfigurationException;
|
||||||
import org.bukkit.configuration.file.YamlConfiguration;
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
@ -59,6 +29,16 @@ import org.bukkit.plugin.Plugin;
|
|||||||
import org.bukkit.plugin.PluginDescriptionFile;
|
import org.bukkit.plugin.PluginDescriptionFile;
|
||||||
import org.bukkit.scheduler.BukkitTask;
|
import org.bukkit.scheduler.BukkitTask;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.net.Proxy;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.net.URLConnection;
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
import java.util.zip.GZIPOutputStream;
|
||||||
|
|
||||||
public class Metrics {
|
public class Metrics {
|
||||||
/**
|
/**
|
||||||
* The current revision number
|
* The current revision number
|
||||||
@ -136,8 +116,7 @@ public class Metrics {
|
|||||||
* plotters to their own graphs on the metrics website. Plotters can be
|
* plotters to their own graphs on the metrics website. Plotters can be
|
||||||
* added to the graph object returned.
|
* added to the graph object returned.
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name The name of the graph
|
||||||
* The name of the graph
|
|
||||||
* @return Graph object created. Will never return NULL under normal
|
* @return Graph object created. Will never return NULL under normal
|
||||||
* circumstances unless bad parameters are given
|
* circumstances unless bad parameters are given
|
||||||
*/
|
*/
|
||||||
@ -157,8 +136,7 @@ public class Metrics {
|
|||||||
* Add a Graph object to BukkitMetrics that represents data for the plugin
|
* Add a Graph object to BukkitMetrics that represents data for the plugin
|
||||||
* that should be sent to the backend
|
* that should be sent to the backend
|
||||||
*
|
*
|
||||||
* @param graph
|
* @param graph The name of the graph
|
||||||
* The name of the graph
|
|
||||||
*/
|
*/
|
||||||
public void addGraph(final Graph graph) {
|
public void addGraph(final Graph graph) {
|
||||||
if (graph == null) {
|
if (graph == null) {
|
||||||
@ -222,8 +200,7 @@ public class Metrics {
|
|||||||
// false
|
// false
|
||||||
// Each post thereafter will be a ping
|
// Each post thereafter will be a ping
|
||||||
this.firstPost = false;
|
this.firstPost = false;
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
if (Metrics.this.debug) {
|
if (Metrics.this.debug) {
|
||||||
Bukkit.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage());
|
Bukkit.getLogger().log(Level.INFO, "[Metrics] " + e.getMessage());
|
||||||
}
|
}
|
||||||
@ -244,14 +221,12 @@ public class Metrics {
|
|||||||
try {
|
try {
|
||||||
// Reload the metrics file
|
// Reload the metrics file
|
||||||
this.configuration.load(getConfigFile());
|
this.configuration.load(getConfigFile());
|
||||||
}
|
} catch (final IOException ex) {
|
||||||
catch (final IOException ex) {
|
|
||||||
if (this.debug) {
|
if (this.debug) {
|
||||||
Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage());
|
Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage());
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final InvalidConfigurationException ex) {
|
||||||
catch (final InvalidConfigurationException ex) {
|
|
||||||
if (this.debug) {
|
if (this.debug) {
|
||||||
Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage());
|
Bukkit.getLogger().log(Level.INFO, "[Metrics] " + ex.getMessage());
|
||||||
}
|
}
|
||||||
@ -345,12 +320,10 @@ public class Metrics {
|
|||||||
try {
|
try {
|
||||||
if (Bukkit.class.getMethod("getOnlinePlayers", new Class<?>[0]).getReturnType() == Collection.class) {
|
if (Bukkit.class.getMethod("getOnlinePlayers", new Class<?>[0]).getReturnType() == Collection.class) {
|
||||||
playersOnline = ((Collection<?>) Bukkit.class.getMethod("getOnlinePlayers", new Class<?>[0]).invoke(null, new Object[0])).size();
|
playersOnline = ((Collection<?>) Bukkit.class.getMethod("getOnlinePlayers", new Class<?>[0]).invoke(null, new Object[0])).size();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
playersOnline = ((Player[]) Bukkit.class.getMethod("getOnlinePlayers", new Class<?>[0]).invoke(null, new Object[0])).length;
|
playersOnline = ((Player[]) Bukkit.class.getMethod("getOnlinePlayers", new Class<?>[0]).invoke(null, new Object[0])).length;
|
||||||
}
|
}
|
||||||
}
|
} catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException ex) {
|
||||||
catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException ex) {
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// END server software specific section -- all code below does not use
|
// END server software specific section -- all code below does not use
|
||||||
@ -423,8 +396,7 @@ public class Metrics {
|
|||||||
// It does not reroute POST requests so we need to go around it
|
// It does not reroute POST requests so we need to go around it
|
||||||
if (isMineshafterPresent()) {
|
if (isMineshafterPresent()) {
|
||||||
connection = url.openConnection(Proxy.NO_PROXY);
|
connection = url.openConnection(Proxy.NO_PROXY);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
connection = url.openConnection();
|
connection = url.openConnection();
|
||||||
}
|
}
|
||||||
final byte[] uncompressed = json.toString().getBytes();
|
final byte[] uncompressed = json.toString().getBytes();
|
||||||
@ -453,13 +425,11 @@ public class Metrics {
|
|||||||
if ((response == null) || response.startsWith("ERR") || response.startsWith("7")) {
|
if ((response == null) || response.startsWith("ERR") || response.startsWith("7")) {
|
||||||
if (response == null) {
|
if (response == null) {
|
||||||
response = "null";
|
response = "null";
|
||||||
}
|
} else if (response.startsWith("7")) {
|
||||||
else if (response.startsWith("7")) {
|
|
||||||
response = response.substring(response.startsWith("7,") ? 2 : 1);
|
response = response.substring(response.startsWith("7,") ? 2 : 1);
|
||||||
}
|
}
|
||||||
throw new IOException(response);
|
throw new IOException(response);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
// Is this the first update this hour?
|
// Is this the first update this hour?
|
||||||
if (response.equals("1") || response.contains("This is your first update this hour")) {
|
if (response.equals("1") || response.contains("This is your first update this hour")) {
|
||||||
synchronized (this.graphs) {
|
synchronized (this.graphs) {
|
||||||
@ -487,16 +457,13 @@ public class Metrics {
|
|||||||
try {
|
try {
|
||||||
gzos = new GZIPOutputStream(baos);
|
gzos = new GZIPOutputStream(baos);
|
||||||
gzos.write(input.getBytes("UTF-8"));
|
gzos.write(input.getBytes("UTF-8"));
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
} finally {
|
||||||
finally {
|
|
||||||
if (gzos != null) {
|
if (gzos != null) {
|
||||||
try {
|
try {
|
||||||
gzos.close();
|
gzos.close();
|
||||||
}
|
} catch (final IOException ignore) {
|
||||||
catch (final IOException ignore) {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -513,8 +480,7 @@ public class Metrics {
|
|||||||
try {
|
try {
|
||||||
Class.forName("mineshafter.MineServer");
|
Class.forName("mineshafter.MineServer");
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -534,8 +500,7 @@ public class Metrics {
|
|||||||
Double.parseDouble(value);
|
Double.parseDouble(value);
|
||||||
isValueNumeric = true;
|
isValueNumeric = true;
|
||||||
}
|
}
|
||||||
}
|
} catch (final NumberFormatException e) {
|
||||||
catch (final NumberFormatException e) {
|
|
||||||
isValueNumeric = false;
|
isValueNumeric = false;
|
||||||
}
|
}
|
||||||
if (json.charAt(json.length() - 1) != '{') {
|
if (json.charAt(json.length() - 1) != '{') {
|
||||||
@ -545,8 +510,7 @@ public class Metrics {
|
|||||||
json.append(':');
|
json.append(':');
|
||||||
if (isValueNumeric) {
|
if (isValueNumeric) {
|
||||||
json.append(value);
|
json.append(value);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
json.append(escapeJSON(value));
|
json.append(escapeJSON(value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -584,8 +548,7 @@ public class Metrics {
|
|||||||
if (chr < ' ') {
|
if (chr < ' ') {
|
||||||
final String t = "000" + Integer.toHexString(chr);
|
final String t = "000" + Integer.toHexString(chr);
|
||||||
builder.append("\\u" + t.substring(t.length() - 4));
|
builder.append("\\u" + t.substring(t.length() - 4));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
builder.append(chr);
|
builder.append(chr);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -598,8 +561,7 @@ public class Metrics {
|
|||||||
/**
|
/**
|
||||||
* Encode text as UTF-8
|
* Encode text as UTF-8
|
||||||
*
|
*
|
||||||
* @param text
|
* @param text the text to encode
|
||||||
* the text to encode
|
|
||||||
* @return the encoded text, as UTF-8
|
* @return the encoded text, as UTF-8
|
||||||
*/
|
*/
|
||||||
private static String urlEncode(final String text) throws UnsupportedEncodingException {
|
private static String urlEncode(final String text) throws UnsupportedEncodingException {
|
||||||
@ -636,8 +598,7 @@ public class Metrics {
|
|||||||
/**
|
/**
|
||||||
* Add a plotter to the graph, which will be used to plot entries
|
* Add a plotter to the graph, which will be used to plot entries
|
||||||
*
|
*
|
||||||
* @param plotter
|
* @param plotter the plotter to add to the graph
|
||||||
* the plotter to add to the graph
|
|
||||||
*/
|
*/
|
||||||
public void addPlotter(final Plotter plotter) {
|
public void addPlotter(final Plotter plotter) {
|
||||||
this.plotters.add(plotter);
|
this.plotters.add(plotter);
|
||||||
@ -646,8 +607,7 @@ public class Metrics {
|
|||||||
/**
|
/**
|
||||||
* Remove a plotter from the graph
|
* Remove a plotter from the graph
|
||||||
*
|
*
|
||||||
* @param plotter
|
* @param plotter the plotter to remove from the graph
|
||||||
* the plotter to remove from the graph
|
|
||||||
*/
|
*/
|
||||||
public void removePlotter(final Plotter plotter) {
|
public void removePlotter(final Plotter plotter) {
|
||||||
this.plotters.remove(plotter);
|
this.plotters.remove(plotter);
|
||||||
@ -703,8 +663,7 @@ public class Metrics {
|
|||||||
/**
|
/**
|
||||||
* Construct a plotter with a specific plot name
|
* Construct a plotter with a specific plot name
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name the name of the plotter to use, which will show up on the
|
||||||
* the name of the plotter to use, which will show up on the
|
|
||||||
* website
|
* website
|
||||||
*/
|
*/
|
||||||
public Plotter(final String name) {
|
public Plotter(final String name) {
|
||||||
|
@ -1,8 +1,25 @@
|
|||||||
package com.intellectualcrafters.plot;
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
import org.bukkit.Location;
|
package com.intellectualcrafters.plot;
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.sk89q.worldedit.LocalSession;
|
import com.sk89q.worldedit.LocalSession;
|
||||||
@ -13,6 +30,9 @@ import com.sk89q.worldedit.bukkit.BukkitPlayer;
|
|||||||
import com.sk89q.worldedit.function.mask.Mask;
|
import com.sk89q.worldedit.function.mask.Mask;
|
||||||
import com.sk89q.worldedit.function.mask.RegionMask;
|
import com.sk89q.worldedit.function.mask.RegionMask;
|
||||||
import com.sk89q.worldedit.regions.CuboidRegion;
|
import com.sk89q.worldedit.regions.CuboidRegion;
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.World;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -25,8 +45,7 @@ public class PWE {
|
|||||||
LocalSession s;
|
LocalSession s;
|
||||||
if (PlotMain.worldEdit == null) {
|
if (PlotMain.worldEdit == null) {
|
||||||
s = WorldEdit.getInstance().getSession(p.getName());
|
s = WorldEdit.getInstance().getSession(p.getName());
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
s = PlotMain.worldEdit.getSession(p);
|
s = PlotMain.worldEdit.getSession(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,8 +60,7 @@ public class PWE {
|
|||||||
removeMask(p, s);
|
removeMask(p, s);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
|
|
||||||
final World w = p.getWorld();
|
final World w = p.getWorld();
|
||||||
|
|
||||||
@ -66,8 +84,7 @@ public class PWE {
|
|||||||
final Vector p1 = new Vector(69, 69, 69), p2 = new Vector(69, 69, 69);
|
final Vector p1 = new Vector(69, 69, 69), p2 = new Vector(69, 69, 69);
|
||||||
s.setMask(new RegionMask(new CuboidRegion(plr.getWorld(), p1, p2)));
|
s.setMask(new RegionMask(new CuboidRegion(plr.getWorld(), p1, p2)));
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
// throw new
|
// throw new
|
||||||
// PlotSquaredException(PlotSquaredException.PlotError.MISSING_DEPENDENCY,
|
// PlotSquaredException(PlotSquaredException.PlotError.MISSING_DEPENDENCY,
|
||||||
// "WorldEdit == Null?");
|
// "WorldEdit == Null?");
|
||||||
@ -83,15 +100,13 @@ public class PWE {
|
|||||||
LocalSession s;
|
LocalSession s;
|
||||||
if (PlotMain.worldEdit == null) {
|
if (PlotMain.worldEdit == null) {
|
||||||
s = WorldEdit.getInstance().getSession(p.getName());
|
s = WorldEdit.getInstance().getSession(p.getName());
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
s = PlotMain.worldEdit.getSession(p);
|
s = PlotMain.worldEdit.getSession(p);
|
||||||
}
|
}
|
||||||
final BukkitPlayer plr = PlotMain.worldEdit.wrapPlayer(p);
|
final BukkitPlayer plr = PlotMain.worldEdit.wrapPlayer(p);
|
||||||
final Vector p1 = new Vector(69, 69, 69), p2 = new Vector(69, 69, 69);
|
final Vector p1 = new Vector(69, 69, 69), p2 = new Vector(69, 69, 69);
|
||||||
s.setMask(new RegionMask(new CuboidRegion(plr.getWorld(), p1, p2)));
|
s.setMask(new RegionMask(new CuboidRegion(plr.getWorld(), p1, p2)));
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -106,13 +121,11 @@ public class PWE {
|
|||||||
LocalSession s;
|
LocalSession s;
|
||||||
if (PlotMain.worldEdit == null) {
|
if (PlotMain.worldEdit == null) {
|
||||||
s = WorldEdit.getInstance().getSession(p.getName());
|
s = WorldEdit.getInstance().getSession(p.getName());
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
s = PlotMain.worldEdit.getSession(p);
|
s = PlotMain.worldEdit.getSession(p);
|
||||||
}
|
}
|
||||||
removeMask(p, s);
|
removeMask(p, s);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
// throw new
|
// throw new
|
||||||
// PlotSquaredException(PlotSquaredException.PlotError.MISSING_DEPENDENCY,
|
// PlotSquaredException(PlotSquaredException.PlotError.MISSING_DEPENDENCY,
|
||||||
// "WorldEdit == Null?");
|
// "WorldEdit == Null?");
|
||||||
|
@ -1,22 +1,34 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Plot.java >> Generated by: Citymonstret at 2014-08-09 01:43
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import java.util.ArrayList;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The plot class
|
* The plot class
|
||||||
@ -120,8 +132,7 @@ public class Plot implements Cloneable {
|
|||||||
this.delete = false;
|
this.delete = false;
|
||||||
if (flags != null) {
|
if (flags != null) {
|
||||||
this.settings.setFlags(flags);
|
this.settings.setFlags(flags);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
this.settings.setFlags(new Flag[0]);
|
this.settings.setFlags(new Flag[0]);
|
||||||
}
|
}
|
||||||
this.world = world;
|
this.world = world;
|
||||||
@ -195,8 +206,7 @@ public class Plot implements Cloneable {
|
|||||||
public Object clone() throws CloneNotSupportedException {
|
public Object clone() throws CloneNotSupportedException {
|
||||||
try {
|
try {
|
||||||
return super.clone();
|
return super.clone();
|
||||||
}
|
} catch (final CloneNotSupportedException e) {
|
||||||
catch (final CloneNotSupportedException e) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -270,8 +280,7 @@ public class Plot implements Cloneable {
|
|||||||
/**
|
/**
|
||||||
* Clear a plot
|
* Clear a plot
|
||||||
*
|
*
|
||||||
* @param plr
|
* @param plr initiator
|
||||||
* initiator
|
|
||||||
*/
|
*/
|
||||||
public void clear(final Player plr) {
|
public void clear(final Player plr) {
|
||||||
PlotHelper.clear(plr, this);
|
PlotHelper.clear(plr, this);
|
||||||
@ -293,18 +302,15 @@ public class Plot implements Cloneable {
|
|||||||
if (x >= 0) {
|
if (x >= 0) {
|
||||||
if (y >= 0) {
|
if (y >= 0) {
|
||||||
return x * x + 3 * x + 2 * x * y + y + y * y;
|
return x * x + 3 * x + 2 * x * y + y + y * y;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
int y1 = -y;
|
int y1 = -y;
|
||||||
return x * x + 3 * x + 2 * x * y1 + y1 + y1 * y1 + 1;
|
return x * x + 3 * x + 2 * x * y1 + y1 + y1 * y1 + 1;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
int x1 = -x;
|
int x1 = -x;
|
||||||
if (y >= 0) {
|
if (y >= 0) {
|
||||||
return -(x1 * x1 + 3 * x1 + 2 * x1 * y + y + y * y);
|
return -(x1 * x1 + 3 * x1 + 2 * x1 * y + y + y * y);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
int y1 = -y;
|
int y1 = -y;
|
||||||
return -(x1 * x1 + 3 * x1 + 2 * x1 * y1 + y1 + y1 * y1 + 1);
|
return -(x1 * x1 + 3 * x1 + 2 * x1 * y1 + y1 + y1 * y1 + 1);
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
public class PlotBlock {
|
public class PlotBlock {
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
public class PlotComment {
|
public class PlotComment {
|
||||||
|
@ -1,26 +1,30 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = PlotHelper.java >> Generated by: Citymonstret at 2014-08-09 01:43
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import java.io.File;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.listeners.PlotListener;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import net.milkbowl.vault.economy.Economy;
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
import org.bukkit.*;
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Chunk;
|
|
||||||
import org.bukkit.Location;
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.block.BlockState;
|
import org.bukkit.block.BlockState;
|
||||||
@ -28,8 +32,10 @@ import org.bukkit.block.Sign;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import java.io.File;
|
||||||
import com.intellectualcrafters.plot.listeners.PlotListener;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* plot functions
|
* plot functions
|
||||||
@ -185,8 +191,7 @@ public class PlotHelper {
|
|||||||
greaterPlot.settings.setMerged(0, true);
|
greaterPlot.settings.setMerged(0, true);
|
||||||
manager.removeRoadSouth(plotworld, lesserPlot);
|
manager.removeRoadSouth(plotworld, lesserPlot);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (!lesserPlot.settings.getMerged(1)) {
|
if (!lesserPlot.settings.getMerged(1)) {
|
||||||
lesserPlot.settings.setMerged(1, true);
|
lesserPlot.settings.setMerged(1, true);
|
||||||
greaterPlot.settings.setMerged(3, true);
|
greaterPlot.settings.setMerged(3, true);
|
||||||
@ -283,8 +288,7 @@ public class PlotHelper {
|
|||||||
try {
|
try {
|
||||||
SetBlockFast.set(block.getWorld(), block.getX(), block.getY(), block.getZ(), plotblock.id, plotblock.data);
|
SetBlockFast.set(block.getWorld(), block.getX(), block.getY(), block.getZ(), plotblock.id, plotblock.data);
|
||||||
return true;
|
return true;
|
||||||
}
|
} catch (final Throwable e) {
|
||||||
catch (final Throwable e) {
|
|
||||||
canSetFast = false;
|
canSetFast = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -294,12 +298,10 @@ public class PlotHelper {
|
|||||||
if (block.getTypeId() != plotblock.id) {
|
if (block.getTypeId() != plotblock.id) {
|
||||||
block.setTypeId(plotblock.id);
|
block.setTypeId(plotblock.id);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (block.getTypeId() == plotblock.id) {
|
if (block.getTypeId() == plotblock.id) {
|
||||||
block.setData(plotblock.data);
|
block.setData(plotblock.data);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
block.setTypeIdAndData(plotblock.id, plotblock.data, false);
|
block.setTypeIdAndData(plotblock.id, plotblock.data, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -662,8 +664,7 @@ public class PlotHelper {
|
|||||||
Player player = (Player) entity;
|
Player player = (Player) entity;
|
||||||
PlotMain.teleportPlayer(player, entity.getLocation(), plot);
|
PlotMain.teleportPlayer(player, entity.getLocation(), plot);
|
||||||
PlotListener.plotExit(player, plot);
|
PlotListener.plotExit(player, plot);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
entity.remove();
|
entity.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -717,8 +718,7 @@ public class PlotHelper {
|
|||||||
final World world;
|
final World world;
|
||||||
if (requester != null) {
|
if (requester != null) {
|
||||||
world = requester.getWorld();
|
world = requester.getWorld();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
world = Bukkit.getWorld(plot.world);
|
world = Bukkit.getWorld(plot.world);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -747,8 +747,7 @@ public class PlotHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
try {
|
try {
|
||||||
for (int y = pos1.getBlockY(); y < pos2.getBlockY(); y++) {
|
for (int y = pos1.getBlockY(); y < pos2.getBlockY(); y++) {
|
||||||
for (int x = pos1.getBlockX(); x < pos2.getBlockX(); x++) {
|
for (int x = pos1.getBlockX(); x < pos2.getBlockX(); x++) {
|
||||||
@ -762,8 +761,7 @@ public class PlotHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -780,8 +778,7 @@ public class PlotHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
try {
|
try {
|
||||||
for (int y = pos1.getBlockY(); y < pos2.getBlockY(); y++) {
|
for (int y = pos1.getBlockY(); y < pos2.getBlockY(); y++) {
|
||||||
for (int x = pos1.getBlockX(); x < pos2.getBlockX(); x++) {
|
for (int x = pos1.getBlockX(); x < pos2.getBlockX(); x++) {
|
||||||
@ -793,8 +790,7 @@ public class PlotHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -841,8 +837,7 @@ public class PlotHelper {
|
|||||||
final int z = bot.getBlockZ() - 2;
|
final int z = bot.getBlockZ() - 2;
|
||||||
final int y = getHeighestBlock(w, x, z);
|
final int y = getHeighestBlock(w, x, z);
|
||||||
return new Location(w, x, y, z);
|
return new Location(w, x, y, z);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
final Location bot = getPlotBottomLoc(w, plotid), top = getPlotTopLoc(w, plotid);
|
final Location bot = getPlotBottomLoc(w, plotid), top = getPlotTopLoc(w, plotid);
|
||||||
final int x = top.getBlockX() - bot.getBlockX();
|
final int x = top.getBlockX() - bot.getBlockX();
|
||||||
final int z = top.getBlockZ() - bot.getBlockZ();
|
final int z = top.getBlockZ() - bot.getBlockZ();
|
||||||
|
@ -1,11 +1,23 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = PlotHomePosition.java >> Generated by: Citymonstret at 2014-08-09
|
// it under the terms of the GNU General Public License as published by /
|
||||||
* 01:44
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
*/
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
public class PlotId {
|
public class PlotId {
|
||||||
@ -13,10 +34,8 @@ public class PlotId {
|
|||||||
/**
|
/**
|
||||||
* PlotId class (PlotId x,y values do not correspond to Block locations)
|
* PlotId class (PlotId x,y values do not correspond to Block locations)
|
||||||
*
|
*
|
||||||
* @param x
|
* @param x The plot x coordinate
|
||||||
* The plot x coordinate
|
* @param y The plot y coordinate
|
||||||
* @param y
|
|
||||||
* The plot y coordinate
|
|
||||||
*/
|
*/
|
||||||
public PlotId(final int x, final int y) {
|
public PlotId(final int x, final int y) {
|
||||||
this.x = x;
|
this.x = x;
|
||||||
@ -48,18 +67,15 @@ public class PlotId {
|
|||||||
if (x >= 0) {
|
if (x >= 0) {
|
||||||
if (y >= 0) {
|
if (y >= 0) {
|
||||||
return x * x + 3 * x + 2 * x * y + y + y * y;
|
return x * x + 3 * x + 2 * x * y + y + y * y;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
int y1 = -y;
|
int y1 = -y;
|
||||||
return x * x + 3 * x + 2 * x * y1 + y1 + y1 * y1 + 1;
|
return x * x + 3 * x + 2 * x * y1 + y1 + y1 * y1 + 1;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
int x1 = -x;
|
int x1 = -x;
|
||||||
if (y >= 0) {
|
if (y >= 0) {
|
||||||
return -(x1 * x1 + 3 * x1 + 2 * x1 * y + y + y * y);
|
return -(x1 * x1 + 3 * x1 + 2 * x1 * y + y + y * y);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
int y1 = -y;
|
int y1 = -y;
|
||||||
return -(x1 * x1 + 3 * x1 + 2 * x1 * y1 + y1 + y1 * y1 + 1);
|
return -(x1 * x1 + 3 * x1 + 2 * x1 * y1 + y1 + y1 * y1 + 1);
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,32 @@
|
|||||||
package com.intellectualcrafters.plot;
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
import java.util.ArrayList;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
public abstract class PlotManager {
|
public abstract class PlotManager {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1,12 +1,33 @@
|
|||||||
package com.intellectualcrafters.plot;
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
import java.util.HashMap;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Citymonstret on 2014-10-12.
|
* Created by Citymonstret on 2014-10-12.
|
||||||
*/
|
*/
|
||||||
@ -86,21 +107,17 @@ public class PlotSelection {
|
|||||||
try {
|
try {
|
||||||
SetBlockFast.set(world, b1.x, b1.y, b1.z, b2.id, b2.data);
|
SetBlockFast.set(world, b1.x, b1.y, b1.z, b2.id, b2.data);
|
||||||
SetBlockFast.set(world, b2.x, b2.y, b2.z, b1.id, b1.data);
|
SetBlockFast.set(world, b2.x, b2.y, b2.z, b1.id, b1.data);
|
||||||
}
|
} catch (final NoSuchMethodException e) {
|
||||||
catch (final NoSuchMethodException e) {
|
|
||||||
PlotHelper.canSetFast = false;
|
PlotHelper.canSetFast = false;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if ((b1.id != b2.id) && (b1.data != b2.data)) {
|
if ((b1.id != b2.id) && (b1.data != b2.data)) {
|
||||||
block1.setTypeIdAndData(b2.id, b2.data, false);
|
block1.setTypeIdAndData(b2.id, b2.data, false);
|
||||||
block2.setTypeIdAndData(b1.id, b1.data, false);
|
block2.setTypeIdAndData(b1.id, b1.data, false);
|
||||||
}
|
} else if (b1.id != b2.id) {
|
||||||
else if (b1.id != b2.id) {
|
|
||||||
block1.setTypeId(b2.id);
|
block1.setTypeId(b2.id);
|
||||||
block2.setTypeId(b1.id);
|
block2.setTypeId(b1.id);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
block1.setData(b2.data);
|
block1.setData(b2.data);
|
||||||
block2.setData(b1.data);
|
block2.setData(b1.data);
|
||||||
}
|
}
|
||||||
|
@ -1,20 +1,33 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = PlotSettings.java >> Generated by: Citymonstret at 2014-08-09 01:44
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
|
import org.bukkit.block.Biome;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.bukkit.block.Biome;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* plot settings
|
* plot settings
|
||||||
*
|
*
|
||||||
|
@ -1,102 +1,39 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import static org.bukkit.Material.ACACIA_STAIRS;
|
import org.bukkit.Material;
|
||||||
import static org.bukkit.Material.BEACON;
|
import org.bukkit.block.Biome;
|
||||||
import static org.bukkit.Material.BEDROCK;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import static org.bukkit.Material.BIRCH_WOOD_STAIRS;
|
|
||||||
import static org.bukkit.Material.BOOKSHELF;
|
|
||||||
import static org.bukkit.Material.BREWING_STAND;
|
|
||||||
import static org.bukkit.Material.BRICK;
|
|
||||||
import static org.bukkit.Material.BRICK_STAIRS;
|
|
||||||
import static org.bukkit.Material.BURNING_FURNACE;
|
|
||||||
import static org.bukkit.Material.CAKE_BLOCK;
|
|
||||||
import static org.bukkit.Material.CAULDRON;
|
|
||||||
import static org.bukkit.Material.CLAY;
|
|
||||||
import static org.bukkit.Material.CLAY_BRICK;
|
|
||||||
import static org.bukkit.Material.COAL_BLOCK;
|
|
||||||
import static org.bukkit.Material.COAL_ORE;
|
|
||||||
import static org.bukkit.Material.COBBLESTONE;
|
|
||||||
import static org.bukkit.Material.COBBLESTONE_STAIRS;
|
|
||||||
import static org.bukkit.Material.COBBLE_WALL;
|
|
||||||
import static org.bukkit.Material.COMMAND;
|
|
||||||
import static org.bukkit.Material.DARK_OAK_STAIRS;
|
|
||||||
import static org.bukkit.Material.DAYLIGHT_DETECTOR;
|
|
||||||
import static org.bukkit.Material.DIAMOND_BLOCK;
|
|
||||||
import static org.bukkit.Material.DIAMOND_ORE;
|
|
||||||
import static org.bukkit.Material.DIRT;
|
|
||||||
import static org.bukkit.Material.DISPENSER;
|
|
||||||
import static org.bukkit.Material.DROPPER;
|
|
||||||
import static org.bukkit.Material.EMERALD_BLOCK;
|
|
||||||
import static org.bukkit.Material.EMERALD_ORE;
|
|
||||||
import static org.bukkit.Material.ENCHANTMENT_TABLE;
|
|
||||||
import static org.bukkit.Material.ENDER_PORTAL_FRAME;
|
|
||||||
import static org.bukkit.Material.ENDER_STONE;
|
|
||||||
import static org.bukkit.Material.FURNACE;
|
|
||||||
import static org.bukkit.Material.GLASS;
|
|
||||||
import static org.bukkit.Material.GLOWSTONE;
|
|
||||||
import static org.bukkit.Material.GOLD_BLOCK;
|
|
||||||
import static org.bukkit.Material.GOLD_ORE;
|
|
||||||
import static org.bukkit.Material.GRASS;
|
|
||||||
import static org.bukkit.Material.GRAVEL;
|
|
||||||
import static org.bukkit.Material.HARD_CLAY;
|
|
||||||
import static org.bukkit.Material.HAY_BLOCK;
|
|
||||||
import static org.bukkit.Material.HUGE_MUSHROOM_1;
|
|
||||||
import static org.bukkit.Material.HUGE_MUSHROOM_2;
|
|
||||||
import static org.bukkit.Material.IRON_BLOCK;
|
|
||||||
import static org.bukkit.Material.IRON_ORE;
|
|
||||||
import static org.bukkit.Material.JACK_O_LANTERN;
|
|
||||||
import static org.bukkit.Material.JUKEBOX;
|
|
||||||
import static org.bukkit.Material.JUNGLE_WOOD_STAIRS;
|
|
||||||
import static org.bukkit.Material.LAPIS_BLOCK;
|
|
||||||
import static org.bukkit.Material.LAPIS_ORE;
|
|
||||||
import static org.bukkit.Material.LEAVES;
|
|
||||||
import static org.bukkit.Material.LEAVES_2;
|
|
||||||
import static org.bukkit.Material.LOG;
|
|
||||||
import static org.bukkit.Material.LOG_2;
|
|
||||||
import static org.bukkit.Material.MELON_BLOCK;
|
|
||||||
import static org.bukkit.Material.MOB_SPAWNER;
|
|
||||||
import static org.bukkit.Material.MOSSY_COBBLESTONE;
|
|
||||||
import static org.bukkit.Material.MYCEL;
|
|
||||||
import static org.bukkit.Material.NETHERRACK;
|
|
||||||
import static org.bukkit.Material.NETHER_BRICK;
|
|
||||||
import static org.bukkit.Material.NETHER_BRICK_STAIRS;
|
|
||||||
import static org.bukkit.Material.NOTE_BLOCK;
|
|
||||||
import static org.bukkit.Material.OBSIDIAN;
|
|
||||||
import static org.bukkit.Material.PACKED_ICE;
|
|
||||||
import static org.bukkit.Material.PUMPKIN;
|
|
||||||
import static org.bukkit.Material.QUARTZ_BLOCK;
|
|
||||||
import static org.bukkit.Material.QUARTZ_ORE;
|
|
||||||
import static org.bukkit.Material.QUARTZ_STAIRS;
|
|
||||||
import static org.bukkit.Material.REDSTONE_BLOCK;
|
|
||||||
import static org.bukkit.Material.SAND;
|
|
||||||
import static org.bukkit.Material.SANDSTONE;
|
|
||||||
import static org.bukkit.Material.SANDSTONE_STAIRS;
|
|
||||||
import static org.bukkit.Material.SMOOTH_BRICK;
|
|
||||||
import static org.bukkit.Material.SMOOTH_STAIRS;
|
|
||||||
import static org.bukkit.Material.SNOW_BLOCK;
|
|
||||||
import static org.bukkit.Material.SOUL_SAND;
|
|
||||||
import static org.bukkit.Material.SPONGE;
|
|
||||||
import static org.bukkit.Material.SPRUCE_WOOD_STAIRS;
|
|
||||||
import static org.bukkit.Material.STONE;
|
|
||||||
import static org.bukkit.Material.WOOD;
|
|
||||||
import static org.bukkit.Material.WOOD_STAIRS;
|
|
||||||
import static org.bukkit.Material.WOOL;
|
|
||||||
import static org.bukkit.Material.WORKBENCH;
|
|
||||||
import static org.bukkit.Material.getMaterial;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.Material;
|
import static org.bukkit.Material.*;
|
||||||
import org.bukkit.block.Biome;
|
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
|
||||||
* @author Jesse Boyd
|
* @author Jesse Boyd
|
||||||
*
|
|
||||||
*/
|
*/
|
||||||
public abstract class PlotWorld {
|
public abstract class PlotWorld {
|
||||||
|
|
||||||
|
@ -1,5 +1,29 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.Server;
|
||||||
|
|
||||||
import java.lang.reflect.Constructor;
|
import java.lang.reflect.Constructor;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
@ -7,9 +31,6 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.Server;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author DPOH-VAR
|
* @author DPOH-VAR
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
@ -17,11 +38,17 @@ import org.bukkit.Server;
|
|||||||
@SuppressWarnings({"UnusedDeclaration", "rawtypes"})
|
@SuppressWarnings({"UnusedDeclaration", "rawtypes"})
|
||||||
public class ReflectionUtils {
|
public class ReflectionUtils {
|
||||||
|
|
||||||
/** prefix of bukkit classes */
|
/**
|
||||||
|
* prefix of bukkit classes
|
||||||
|
*/
|
||||||
private static String preClassB = "org.bukkit.craftbukkit";
|
private static String preClassB = "org.bukkit.craftbukkit";
|
||||||
/** prefix of minecraft classes */
|
/**
|
||||||
|
* prefix of minecraft classes
|
||||||
|
*/
|
||||||
private static String preClassM = "net.minecraft.server";
|
private static String preClassM = "net.minecraft.server";
|
||||||
/** boolean value, TRUE if server uses forge or MCPC+ */
|
/**
|
||||||
|
* boolean value, TRUE if server uses forge or MCPC+
|
||||||
|
*/
|
||||||
private static boolean forge = false;
|
private static boolean forge = false;
|
||||||
|
|
||||||
/** check server version and class names */
|
/** check server version and class names */
|
||||||
@ -46,8 +73,7 @@ public class ReflectionUtils {
|
|||||||
final String verM = pas[3];
|
final String verM = pas[3];
|
||||||
preClassM += "." + verM;
|
preClassM += "." + verM;
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception ignored) {
|
||||||
catch (final Exception ignored) {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -63,19 +89,16 @@ public class ReflectionUtils {
|
|||||||
* Get class for name. Replace {nms} to net.minecraft.server.V*. Replace
|
* Get class for name. Replace {nms} to net.minecraft.server.V*. Replace
|
||||||
* {cb} to org.bukkit.craftbukkit.V*. Replace {nm} to net.minecraft
|
* {cb} to org.bukkit.craftbukkit.V*. Replace {nm} to net.minecraft
|
||||||
*
|
*
|
||||||
* @param classes
|
* @param classes possible class paths
|
||||||
* possible class paths
|
|
||||||
* @return RefClass object
|
* @return RefClass object
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if no class found
|
||||||
* if no class found
|
|
||||||
*/
|
*/
|
||||||
public static RefClass getRefClass(final String... classes) {
|
public static RefClass getRefClass(final String... classes) {
|
||||||
for (String className : classes) {
|
for (String className : classes) {
|
||||||
try {
|
try {
|
||||||
className = className.replace("{cb}", preClassB).replace("{nms}", preClassM).replace("{nm}", "net.minecraft");
|
className = className.replace("{cb}", preClassB).replace("{nms}", preClassM).replace("{nm}", "net.minecraft");
|
||||||
return getRefClass(Class.forName(className));
|
return getRefClass(Class.forName(className));
|
||||||
}
|
} catch (final ClassNotFoundException ignored) {
|
||||||
catch (final ClassNotFoundException ignored) {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw new RuntimeException("no class found");
|
throw new RuntimeException("no class found");
|
||||||
@ -84,8 +107,7 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* get RefClass object by real class
|
* get RefClass object by real class
|
||||||
*
|
*
|
||||||
* @param clazz
|
* @param clazz class
|
||||||
* class
|
|
||||||
* @return RefClass based on passed class
|
* @return RefClass based on passed class
|
||||||
*/
|
*/
|
||||||
public static RefClass getRefClass(final Class clazz) {
|
public static RefClass getRefClass(final Class clazz) {
|
||||||
@ -114,8 +136,7 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* see {@link Class#isInstance(Object)}
|
* see {@link Class#isInstance(Object)}
|
||||||
*
|
*
|
||||||
* @param object
|
* @param object the object to check
|
||||||
* the object to check
|
|
||||||
* @return true if object is an instance of this class
|
* @return true if object is an instance of this class
|
||||||
*/
|
*/
|
||||||
public boolean isInstance(final Object object) {
|
public boolean isInstance(final Object object) {
|
||||||
@ -125,13 +146,10 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* get existing method by name and types
|
* get existing method by name and types
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name name
|
||||||
* name
|
* @param types method parameters. can be Class or RefClass
|
||||||
* @param types
|
|
||||||
* method parameters. can be Class or RefClass
|
|
||||||
* @return RefMethod object
|
* @return RefMethod object
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if method not found
|
||||||
* if method not found
|
|
||||||
*/
|
*/
|
||||||
public RefMethod getMethod(final String name, final Object... types) throws NoSuchMethodException {
|
public RefMethod getMethod(final String name, final Object... types) throws NoSuchMethodException {
|
||||||
try {
|
try {
|
||||||
@ -140,22 +158,18 @@ public class ReflectionUtils {
|
|||||||
for (final Object e : types) {
|
for (final Object e : types) {
|
||||||
if (e instanceof Class) {
|
if (e instanceof Class) {
|
||||||
classes[i++] = (Class) e;
|
classes[i++] = (Class) e;
|
||||||
}
|
} else if (e instanceof RefClass) {
|
||||||
else if (e instanceof RefClass) {
|
|
||||||
classes[i++] = ((RefClass) e).getRealClass();
|
classes[i++] = ((RefClass) e).getRealClass();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
classes[i++] = e.getClass();
|
classes[i++] = e.getClass();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
return new RefMethod(this.clazz.getMethod(name, classes));
|
return new RefMethod(this.clazz.getMethod(name, classes));
|
||||||
}
|
} catch (final NoSuchMethodException ignored) {
|
||||||
catch (final NoSuchMethodException ignored) {
|
|
||||||
return new RefMethod(this.clazz.getDeclaredMethod(name, classes));
|
return new RefMethod(this.clazz.getDeclaredMethod(name, classes));
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -163,11 +177,9 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* get existing constructor by types
|
* get existing constructor by types
|
||||||
*
|
*
|
||||||
* @param types
|
* @param types parameters. can be Class or RefClass
|
||||||
* parameters. can be Class or RefClass
|
|
||||||
* @return RefMethod object
|
* @return RefMethod object
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if constructor not found
|
||||||
* if constructor not found
|
|
||||||
*/
|
*/
|
||||||
public RefConstructor getConstructor(final Object... types) {
|
public RefConstructor getConstructor(final Object... types) {
|
||||||
try {
|
try {
|
||||||
@ -176,22 +188,18 @@ public class ReflectionUtils {
|
|||||||
for (final Object e : types) {
|
for (final Object e : types) {
|
||||||
if (e instanceof Class) {
|
if (e instanceof Class) {
|
||||||
classes[i++] = (Class) e;
|
classes[i++] = (Class) e;
|
||||||
}
|
} else if (e instanceof RefClass) {
|
||||||
else if (e instanceof RefClass) {
|
|
||||||
classes[i++] = ((RefClass) e).getRealClass();
|
classes[i++] = ((RefClass) e).getRealClass();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
classes[i++] = e.getClass();
|
classes[i++] = e.getClass();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
return new RefConstructor(this.clazz.getConstructor(classes));
|
return new RefConstructor(this.clazz.getConstructor(classes));
|
||||||
}
|
} catch (final NoSuchMethodException ignored) {
|
||||||
catch (final NoSuchMethodException ignored) {
|
|
||||||
return new RefConstructor(this.clazz.getDeclaredConstructor(classes));
|
return new RefConstructor(this.clazz.getDeclaredConstructor(classes));
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -199,11 +207,9 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* find method by type parameters
|
* find method by type parameters
|
||||||
*
|
*
|
||||||
* @param types
|
* @param types parameters. can be Class or RefClass
|
||||||
* parameters. can be Class or RefClass
|
|
||||||
* @return RefMethod object
|
* @return RefMethod object
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if method not found
|
||||||
* if method not found
|
|
||||||
*/
|
*/
|
||||||
public RefMethod findMethod(final Object... types) {
|
public RefMethod findMethod(final Object... types) {
|
||||||
final Class[] classes = new Class[types.length];
|
final Class[] classes = new Class[types.length];
|
||||||
@ -211,18 +217,17 @@ public class ReflectionUtils {
|
|||||||
for (final Object e : types) {
|
for (final Object e : types) {
|
||||||
if (e instanceof Class) {
|
if (e instanceof Class) {
|
||||||
classes[t++] = (Class) e;
|
classes[t++] = (Class) e;
|
||||||
}
|
} else if (e instanceof RefClass) {
|
||||||
else if (e instanceof RefClass) {
|
|
||||||
classes[t++] = ((RefClass) e).getRealClass();
|
classes[t++] = ((RefClass) e).getRealClass();
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
classes[t++] = e.getClass();
|
classes[t++] = e.getClass();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
final List<Method> methods = new ArrayList<>();
|
final List<Method> methods = new ArrayList<>();
|
||||||
Collections.addAll(methods, this.clazz.getMethods());
|
Collections.addAll(methods, this.clazz.getMethods());
|
||||||
Collections.addAll(methods, this.clazz.getDeclaredMethods());
|
Collections.addAll(methods, this.clazz.getDeclaredMethods());
|
||||||
findMethod: for (final Method m : methods) {
|
findMethod:
|
||||||
|
for (final Method m : methods) {
|
||||||
final Class<?>[] methodTypes = m.getParameterTypes();
|
final Class<?>[] methodTypes = m.getParameterTypes();
|
||||||
if (methodTypes.length != classes.length) {
|
if (methodTypes.length != classes.length) {
|
||||||
continue;
|
continue;
|
||||||
@ -240,11 +245,9 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* find method by name
|
* find method by name
|
||||||
*
|
*
|
||||||
* @param names
|
* @param names possible names of method
|
||||||
* possible names of method
|
|
||||||
* @return RefMethod object
|
* @return RefMethod object
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if method not found
|
||||||
* if method not found
|
|
||||||
*/
|
*/
|
||||||
public RefMethod findMethodByName(final String... names) {
|
public RefMethod findMethodByName(final String... names) {
|
||||||
final List<Method> methods = new ArrayList<>();
|
final List<Method> methods = new ArrayList<>();
|
||||||
@ -263,11 +266,9 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* find method by return value
|
* find method by return value
|
||||||
*
|
*
|
||||||
* @param type
|
* @param type type of returned value
|
||||||
* type of returned value
|
|
||||||
* @throws RuntimeException
|
|
||||||
* if method not found
|
|
||||||
* @return RefMethod
|
* @return RefMethod
|
||||||
|
* @throws RuntimeException if method not found
|
||||||
*/
|
*/
|
||||||
public RefMethod findMethodByReturnType(final RefClass type) {
|
public RefMethod findMethodByReturnType(final RefClass type) {
|
||||||
return findMethodByReturnType(type.clazz);
|
return findMethodByReturnType(type.clazz);
|
||||||
@ -276,11 +277,9 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* find method by return value
|
* find method by return value
|
||||||
*
|
*
|
||||||
* @param type
|
* @param type type of returned value
|
||||||
* type of returned value
|
|
||||||
* @return RefMethod
|
* @return RefMethod
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if method not found
|
||||||
* if method not found
|
|
||||||
*/
|
*/
|
||||||
public RefMethod findMethodByReturnType(Class type) {
|
public RefMethod findMethodByReturnType(Class type) {
|
||||||
if (type == null) {
|
if (type == null) {
|
||||||
@ -300,11 +299,9 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* find constructor by number of arguments
|
* find constructor by number of arguments
|
||||||
*
|
*
|
||||||
* @param number
|
* @param number number of arguments
|
||||||
* number of arguments
|
|
||||||
* @return RefConstructor
|
* @return RefConstructor
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if constructor not found
|
||||||
* if constructor not found
|
|
||||||
*/
|
*/
|
||||||
public RefConstructor findConstructor(final int number) {
|
public RefConstructor findConstructor(final int number) {
|
||||||
final List<Constructor> constructors = new ArrayList<>();
|
final List<Constructor> constructors = new ArrayList<>();
|
||||||
@ -321,22 +318,18 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* get field by name
|
* get field by name
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name field name
|
||||||
* field name
|
|
||||||
* @return RefField
|
* @return RefField
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if field not found
|
||||||
* if field not found
|
|
||||||
*/
|
*/
|
||||||
public RefField getField(final String name) {
|
public RefField getField(final String name) {
|
||||||
try {
|
try {
|
||||||
try {
|
try {
|
||||||
return new RefField(this.clazz.getField(name));
|
return new RefField(this.clazz.getField(name));
|
||||||
}
|
} catch (final NoSuchFieldException ignored) {
|
||||||
catch (final NoSuchFieldException ignored) {
|
|
||||||
return new RefField(this.clazz.getDeclaredField(name));
|
return new RefField(this.clazz.getDeclaredField(name));
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -344,11 +337,9 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* find field by type
|
* find field by type
|
||||||
*
|
*
|
||||||
* @param type
|
* @param type field type
|
||||||
* field type
|
|
||||||
* @return RefField
|
* @return RefField
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if field not found
|
||||||
* if field not found
|
|
||||||
*/
|
*/
|
||||||
public RefField findField(final RefClass type) {
|
public RefField findField(final RefClass type) {
|
||||||
return findField(type.clazz);
|
return findField(type.clazz);
|
||||||
@ -357,11 +348,9 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* find field by type
|
* find field by type
|
||||||
*
|
*
|
||||||
* @param type
|
* @param type field type
|
||||||
* field type
|
|
||||||
* @return RefField
|
* @return RefField
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if field not found
|
||||||
* if field not found
|
|
||||||
*/
|
*/
|
||||||
public RefField findField(Class type) {
|
public RefField findField(Class type) {
|
||||||
if (type == null) {
|
if (type == null) {
|
||||||
@ -414,8 +403,7 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* apply method to object
|
* apply method to object
|
||||||
*
|
*
|
||||||
* @param e
|
* @param e object to which the method is applied
|
||||||
* object to which the method is applied
|
|
||||||
* @return RefExecutor with method call(...)
|
* @return RefExecutor with method call(...)
|
||||||
*/
|
*/
|
||||||
public RefExecutor of(final Object e) {
|
public RefExecutor of(final Object e) {
|
||||||
@ -425,15 +413,13 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* call static method
|
* call static method
|
||||||
*
|
*
|
||||||
* @param params
|
* @param params sent parameters
|
||||||
* sent parameters
|
|
||||||
* @return return value
|
* @return return value
|
||||||
*/
|
*/
|
||||||
public Object call(final Object... params) {
|
public Object call(final Object... params) {
|
||||||
try {
|
try {
|
||||||
return this.method.invoke(null, params);
|
return this.method.invoke(null, params);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -448,17 +434,14 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* apply method for selected object
|
* apply method for selected object
|
||||||
*
|
*
|
||||||
* @param params
|
* @param params sent parameters
|
||||||
* sent parameters
|
|
||||||
* @return return value
|
* @return return value
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if something went wrong
|
||||||
* if something went wrong
|
|
||||||
*/
|
*/
|
||||||
public Object call(final Object... params) {
|
public Object call(final Object... params) {
|
||||||
try {
|
try {
|
||||||
return RefMethod.this.method.invoke(this.e, params);
|
return RefMethod.this.method.invoke(this.e, params);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -493,17 +476,14 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* create new instance with constructor
|
* create new instance with constructor
|
||||||
*
|
*
|
||||||
* @param params
|
* @param params parameters for constructor
|
||||||
* parameters for constructor
|
|
||||||
* @return new object
|
* @return new object
|
||||||
* @throws RuntimeException
|
* @throws RuntimeException if something went wrong
|
||||||
* if something went wrong
|
|
||||||
*/
|
*/
|
||||||
public Object create(final Object... params) {
|
public Object create(final Object... params) {
|
||||||
try {
|
try {
|
||||||
return this.constructor.newInstance(params);
|
return this.constructor.newInstance(params);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -541,8 +521,7 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* apply fiend for object
|
* apply fiend for object
|
||||||
*
|
*
|
||||||
* @param e
|
* @param e applied object
|
||||||
* applied object
|
|
||||||
* @return RefExecutor with getter and setter
|
* @return RefExecutor with getter and setter
|
||||||
*/
|
*/
|
||||||
public RefExecutor of(final Object e) {
|
public RefExecutor of(final Object e) {
|
||||||
@ -559,14 +538,12 @@ public class ReflectionUtils {
|
|||||||
/**
|
/**
|
||||||
* set field value for applied object
|
* set field value for applied object
|
||||||
*
|
*
|
||||||
* @param param
|
* @param param value
|
||||||
* value
|
|
||||||
*/
|
*/
|
||||||
public void set(final Object param) {
|
public void set(final Object param) {
|
||||||
try {
|
try {
|
||||||
RefField.this.field.set(this.e, param);
|
RefField.this.field.set(this.e, param);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -579,8 +556,7 @@ public class ReflectionUtils {
|
|||||||
public Object get() {
|
public Object get() {
|
||||||
try {
|
try {
|
||||||
return RefField.this.field.get(this.e);
|
return RefField.this.field.get(this.e);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,32 +1,39 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import java.io.File;
|
import com.intellectualcrafters.jnbt.*;
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.zip.GZIPInputStream;
|
|
||||||
import java.util.zip.GZIPOutputStream;
|
|
||||||
|
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import com.intellectualcrafters.jnbt.ByteArrayTag;
|
import java.io.*;
|
||||||
import com.intellectualcrafters.jnbt.CompoundTag;
|
import java.util.ArrayList;
|
||||||
import com.intellectualcrafters.jnbt.IntTag;
|
import java.util.HashMap;
|
||||||
import com.intellectualcrafters.jnbt.ListTag;
|
import java.util.Map;
|
||||||
import com.intellectualcrafters.jnbt.NBTInputStream;
|
import java.util.zip.GZIPInputStream;
|
||||||
import com.intellectualcrafters.jnbt.NBTOutputStream;
|
import java.util.zip.GZIPOutputStream;
|
||||||
import com.intellectualcrafters.jnbt.ShortTag;
|
|
||||||
import com.intellectualcrafters.jnbt.StringTag;
|
|
||||||
import com.intellectualcrafters.jnbt.Tag;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Schematic Handler
|
* Schematic Handler
|
||||||
@ -39,12 +46,9 @@ public class SchematicHandler {
|
|||||||
/**
|
/**
|
||||||
* Paste a schematic
|
* Paste a schematic
|
||||||
*
|
*
|
||||||
* @param location
|
* @param location origin
|
||||||
* origin
|
* @param schematic schematic to paste
|
||||||
* @param schematic
|
* @param plot plot to paste in
|
||||||
* schematic to paste
|
|
||||||
* @param plot
|
|
||||||
* plot to paste in
|
|
||||||
* @return true if succeeded
|
* @return true if succeeded
|
||||||
*/
|
*/
|
||||||
public static boolean paste(final Location location, final Schematic schematic, final Plot plot, final int x_offset, final int z_offset) {
|
public static boolean paste(final Location location, final Schematic schematic, final Plot plot, final int x_offset, final int z_offset) {
|
||||||
@ -72,8 +76,7 @@ public class SchematicHandler {
|
|||||||
int y_offset;
|
int y_offset;
|
||||||
if (HEIGHT == location.getWorld().getMaxHeight()) {
|
if (HEIGHT == location.getWorld().getMaxHeight()) {
|
||||||
y_offset = 0;
|
y_offset = 0;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
y_offset = l1.getBlockY();
|
y_offset = l1.getBlockY();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -102,8 +105,7 @@ public class SchematicHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -112,8 +114,7 @@ public class SchematicHandler {
|
|||||||
/**
|
/**
|
||||||
* Get a schematic
|
* Get a schematic
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name to check
|
||||||
* to check
|
|
||||||
* @return schematic if found, else null
|
* @return schematic if found, else null
|
||||||
*/
|
*/
|
||||||
public static Schematic getSchematic(final String name) {
|
public static Schematic getSchematic(final String name) {
|
||||||
@ -155,12 +156,10 @@ public class SchematicHandler {
|
|||||||
if ((index >> 1) >= addId.length) { // No corresponding
|
if ((index >> 1) >= addId.length) { // No corresponding
|
||||||
// AddBlocks index
|
// AddBlocks index
|
||||||
blocks[index] = (short) (b[index] & 0xFF);
|
blocks[index] = (short) (b[index] & 0xFF);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if ((index & 1) == 0) {
|
if ((index & 1) == 0) {
|
||||||
blocks[index] = (short) (((addId[index >> 1] & 0x0F) << 8) + (b[index] & 0xFF));
|
blocks[index] = (short) (((addId[index >> 1] & 0x0F) << 8) + (b[index] & 0xFF));
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
blocks[index] = (short) (((addId[index >> 1] & 0xF0) << 4) + (b[index] & 0xFF));
|
blocks[index] = (short) (((addId[index >> 1] & 0xF0) << 4) + (b[index] & 0xFF));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -208,8 +207,7 @@ public class SchematicHandler {
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
schematic = new Schematic(collection, dimension, file);
|
schematic = new Schematic(collection, dimension, file);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -277,10 +275,8 @@ public class SchematicHandler {
|
|||||||
/**
|
/**
|
||||||
* Saves a schematic to a file path
|
* Saves a schematic to a file path
|
||||||
*
|
*
|
||||||
* @param tag
|
* @param tag to save
|
||||||
* to save
|
* @param path to save in
|
||||||
* @param path
|
|
||||||
* to save in
|
|
||||||
* @return true if succeeded
|
* @return true if succeeded
|
||||||
*/
|
*/
|
||||||
public static boolean save(final CompoundTag tag, final String path) {
|
public static boolean save(final CompoundTag tag, final String path) {
|
||||||
@ -296,8 +292,7 @@ public class SchematicHandler {
|
|||||||
output.writeTag(tag);
|
output.writeTag(tag);
|
||||||
output.close();
|
output.close();
|
||||||
stream.close();
|
stream.close();
|
||||||
}
|
} catch (final IOException e) {
|
||||||
catch (final IOException e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -307,10 +302,8 @@ public class SchematicHandler {
|
|||||||
/**
|
/**
|
||||||
* Gets the schematic of a plot
|
* Gets the schematic of a plot
|
||||||
*
|
*
|
||||||
* @param world
|
* @param world to check
|
||||||
* to check
|
* @param id plot
|
||||||
* @param id
|
|
||||||
* plot
|
|
||||||
* @return tag
|
* @return tag
|
||||||
*/
|
*/
|
||||||
public static CompoundTag getCompoundTag(final World world, final PlotId id) {
|
public static CompoundTag getCompoundTag(final World world, final PlotId id) {
|
||||||
@ -338,8 +331,7 @@ public class SchematicHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
PlotMain.sendConsoleSenderMessage("&7 - Cannot save: corrupt chunk at " + (i / 16) + ", " + (j / 16));
|
PlotMain.sendConsoleSenderMessage("&7 - Cannot save: corrupt chunk at " + (i / 16) + ", " + (j / 16));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,31 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import static com.intellectualcrafters.plot.ReflectionUtils.getRefClass;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.ReflectionUtils.RefClass;
|
import com.intellectualcrafters.plot.ReflectionUtils.RefClass;
|
||||||
import com.intellectualcrafters.plot.ReflectionUtils.RefMethod;
|
import com.intellectualcrafters.plot.ReflectionUtils.RefMethod;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
|
||||||
|
import static com.intellectualcrafters.plot.ReflectionUtils.getRefClass;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SetBlockFast class<br>
|
* SetBlockFast class<br>
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -28,6 +49,7 @@ public class StringComparsion {
|
|||||||
public Object getMatchObject() {
|
public Object getMatchObject() {
|
||||||
return this.bestMatchObject;
|
return this.bestMatchObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getBestMatch() {
|
public String getBestMatch() {
|
||||||
return this.bestMatch;
|
return this.bestMatch;
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,24 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -9,8 +30,7 @@ public class StringWrapper {
|
|||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
* @param value
|
* @param value to wrap
|
||||||
* to wrap
|
|
||||||
*/
|
*/
|
||||||
public StringWrapper(final String value) {
|
public StringWrapper(final String value) {
|
||||||
this.value = value;
|
this.value = value;
|
||||||
@ -19,8 +39,7 @@ public class StringWrapper {
|
|||||||
/**
|
/**
|
||||||
* Check if a wrapped string equals another one
|
* Check if a wrapped string equals another one
|
||||||
*
|
*
|
||||||
* @param obj
|
* @param obj to compare
|
||||||
* to compare
|
|
||||||
* @return true if obj equals the stored value
|
* @return true if obj equals the stored value
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,19 +1,40 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Minecraft 1.8 Title
|
* Minecraft 1.8 Title
|
||||||
*
|
*
|
||||||
* @version 1.0.3
|
|
||||||
* @author Maxim Van de Wynckel
|
* @author Maxim Van de Wynckel
|
||||||
|
* @version 1.0.3
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
public class Title {
|
public class Title {
|
||||||
@ -44,8 +65,7 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Create a new 1.8 title
|
* Create a new 1.8 title
|
||||||
*
|
*
|
||||||
* @param title
|
* @param title Title
|
||||||
* Title
|
|
||||||
*/
|
*/
|
||||||
public Title(final String title) {
|
public Title(final String title) {
|
||||||
this.title = title;
|
this.title = title;
|
||||||
@ -55,10 +75,8 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Create a new 1.8 title
|
* Create a new 1.8 title
|
||||||
*
|
*
|
||||||
* @param title
|
* @param title Title text
|
||||||
* Title text
|
* @param subtitle Subtitle text
|
||||||
* @param subtitle
|
|
||||||
* Subtitle text
|
|
||||||
*/
|
*/
|
||||||
public Title(final String title, final String subtitle) {
|
public Title(final String title, final String subtitle) {
|
||||||
this.title = title;
|
this.title = title;
|
||||||
@ -69,16 +87,11 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Create a new 1.8 title
|
* Create a new 1.8 title
|
||||||
*
|
*
|
||||||
* @param title
|
* @param title Title text
|
||||||
* Title text
|
* @param subtitle Subtitle text
|
||||||
* @param subtitle
|
* @param fadeInTime Fade in time
|
||||||
* Subtitle text
|
* @param stayTime Stay on screen time
|
||||||
* @param fadeInTime
|
* @param fadeOutTime Fade out time
|
||||||
* Fade in time
|
|
||||||
* @param stayTime
|
|
||||||
* Stay on screen time
|
|
||||||
* @param fadeOutTime
|
|
||||||
* Fade out time
|
|
||||||
*/
|
*/
|
||||||
public Title(final String title, final String subtitle, final int fadeInTime, final int stayTime, final int fadeOutTime) {
|
public Title(final String title, final String subtitle, final int fadeInTime, final int stayTime, final int fadeOutTime) {
|
||||||
this.title = title;
|
this.title = title;
|
||||||
@ -101,8 +114,7 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Set the title color
|
* Set the title color
|
||||||
*
|
*
|
||||||
* @param color
|
* @param color Chat color
|
||||||
* Chat color
|
|
||||||
*/
|
*/
|
||||||
public void setTitleColor(final ChatColor color) {
|
public void setTitleColor(final ChatColor color) {
|
||||||
this.titleColor = color;
|
this.titleColor = color;
|
||||||
@ -111,8 +123,7 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Set the subtitle color
|
* Set the subtitle color
|
||||||
*
|
*
|
||||||
* @param color
|
* @param color Chat color
|
||||||
* Chat color
|
|
||||||
*/
|
*/
|
||||||
public void setSubtitleColor(final ChatColor color) {
|
public void setSubtitleColor(final ChatColor color) {
|
||||||
this.subtitleColor = color;
|
this.subtitleColor = color;
|
||||||
@ -121,8 +132,7 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Set title fade in time
|
* Set title fade in time
|
||||||
*
|
*
|
||||||
* @param time
|
* @param time Time
|
||||||
* Time
|
|
||||||
*/
|
*/
|
||||||
public void setFadeInTime(final int time) {
|
public void setFadeInTime(final int time) {
|
||||||
this.fadeInTime = time;
|
this.fadeInTime = time;
|
||||||
@ -131,8 +141,7 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Set title fade out time
|
* Set title fade out time
|
||||||
*
|
*
|
||||||
* @param time
|
* @param time Time
|
||||||
* Time
|
|
||||||
*/
|
*/
|
||||||
public void setFadeOutTime(final int time) {
|
public void setFadeOutTime(final int time) {
|
||||||
this.fadeOutTime = time;
|
this.fadeOutTime = time;
|
||||||
@ -141,8 +150,7 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Set title stay time
|
* Set title stay time
|
||||||
*
|
*
|
||||||
* @param time
|
* @param time Time
|
||||||
* Time
|
|
||||||
*/
|
*/
|
||||||
public void setStayTime(final int time) {
|
public void setStayTime(final int time) {
|
||||||
this.stayTime = time;
|
this.stayTime = time;
|
||||||
@ -165,8 +173,7 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Send the title to a player
|
* Send the title to a player
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player
|
||||||
* Player
|
|
||||||
*/
|
*/
|
||||||
public void send(final Player player) {
|
public void send(final Player player) {
|
||||||
if ((getProtocolVersion(player) >= 47) && isSpigot() && (this.packetTitle != null)) {
|
if ((getProtocolVersion(player) >= 47) && isSpigot() && (this.packetTitle != null)) {
|
||||||
@ -194,8 +201,7 @@ public class Title {
|
|||||||
packet = this.packetTitle.getConstructor(this.packetActions, getNMSClass("IChatBaseComponent")).newInstance(actions[1], serialized);
|
packet = this.packetTitle.getConstructor(this.packetActions, getNMSClass("IChatBaseComponent")).newInstance(actions[1], serialized);
|
||||||
sendPacket.invoke(connection, packet);
|
sendPacket.invoke(connection, packet);
|
||||||
}
|
}
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -213,8 +219,7 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Clear the title
|
* Clear the title
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player
|
||||||
* Player
|
|
||||||
*/
|
*/
|
||||||
public void clearTitle(final Player player) {
|
public void clearTitle(final Player player) {
|
||||||
if ((getProtocolVersion(player) >= 47) && isSpigot()) {
|
if ((getProtocolVersion(player) >= 47) && isSpigot()) {
|
||||||
@ -226,8 +231,7 @@ public class Title {
|
|||||||
final Method sendPacket = getMethod(connection.getClass(), "sendPacket");
|
final Method sendPacket = getMethod(connection.getClass(), "sendPacket");
|
||||||
final Object packet = this.packetTitle.getConstructor(this.packetActions).newInstance(actions[3]);
|
final Object packet = this.packetTitle.getConstructor(this.packetActions).newInstance(actions[3]);
|
||||||
sendPacket.invoke(connection, packet);
|
sendPacket.invoke(connection, packet);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -236,8 +240,7 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Reset the title settings
|
* Reset the title settings
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player
|
||||||
* Player
|
|
||||||
*/
|
*/
|
||||||
public void resetTitle(final Player player) {
|
public void resetTitle(final Player player) {
|
||||||
if ((getProtocolVersion(player) >= 47) && isSpigot()) {
|
if ((getProtocolVersion(player) >= 47) && isSpigot()) {
|
||||||
@ -249,8 +252,7 @@ public class Title {
|
|||||||
final Method sendPacket = getMethod(connection.getClass(), "sendPacket");
|
final Method sendPacket = getMethod(connection.getClass(), "sendPacket");
|
||||||
final Object packet = this.packetTitle.getConstructor(this.packetActions).newInstance(actions[4]);
|
final Object packet = this.packetTitle.getConstructor(this.packetActions).newInstance(actions[4]);
|
||||||
sendPacket.invoke(connection, packet);
|
sendPacket.invoke(connection, packet);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -259,8 +261,7 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Get the protocol version of the player
|
* Get the protocol version of the player
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player Player
|
||||||
* Player
|
|
||||||
* @return Protocol version
|
* @return Protocol version
|
||||||
*/
|
*/
|
||||||
private int getProtocolVersion(final Player player) {
|
private int getProtocolVersion(final Player player) {
|
||||||
@ -272,8 +273,7 @@ public class Title {
|
|||||||
version = (Integer) getMethod("getVersion", networkManager.getClass()).invoke(networkManager);
|
version = (Integer) getMethod("getVersion", networkManager.getClass()).invoke(networkManager);
|
||||||
|
|
||||||
return version;
|
return version;
|
||||||
}
|
} catch (final Exception ex) {
|
||||||
catch (final Exception ex) {
|
|
||||||
// ex.printStackTrace(); <-- spammy console
|
// ex.printStackTrace(); <-- spammy console
|
||||||
}
|
}
|
||||||
return version;
|
return version;
|
||||||
@ -291,15 +291,13 @@ public class Title {
|
|||||||
/**
|
/**
|
||||||
* Get class by url
|
* Get class by url
|
||||||
*
|
*
|
||||||
* @param namespace
|
* @param namespace Namespace url
|
||||||
* Namespace url
|
|
||||||
* @return Class
|
* @return Class
|
||||||
*/
|
*/
|
||||||
private Class<?> getClass(final String namespace) {
|
private Class<?> getClass(final String namespace) {
|
||||||
try {
|
try {
|
||||||
return Class.forName(namespace);
|
return Class.forName(namespace);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -342,8 +340,7 @@ public class Title {
|
|||||||
private Object getHandle(final Object obj) {
|
private Object getHandle(final Object obj) {
|
||||||
try {
|
try {
|
||||||
return getMethod("getHandle", obj.getClass()).invoke(obj);
|
return getMethod("getHandle", obj.getClass()).invoke(obj);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -370,8 +367,7 @@ public class Title {
|
|||||||
Class<?> clazz = null;
|
Class<?> clazz = null;
|
||||||
try {
|
try {
|
||||||
clazz = Class.forName(fullName);
|
clazz = Class.forName(fullName);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return clazz;
|
return clazz;
|
||||||
@ -382,8 +378,7 @@ public class Title {
|
|||||||
final Field field = clazz.getDeclaredField(name);
|
final Field field = clazz.getDeclaredField(name);
|
||||||
field.setAccessible(true);
|
field.setAccessible(true);
|
||||||
return field;
|
return field;
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,39 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot;
|
package com.intellectualcrafters.plot;
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.OfflinePlayer;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.google.common.base.Charsets;
|
import com.google.common.base.Charsets;
|
||||||
import com.google.common.collect.BiMap;
|
import com.google.common.collect.BiMap;
|
||||||
import com.google.common.collect.HashBiMap;
|
import com.google.common.collect.HashBiMap;
|
||||||
import com.intellectualcrafters.plot.uuid.NameFetcher;
|
import com.intellectualcrafters.plot.uuid.NameFetcher;
|
||||||
import com.intellectualcrafters.plot.uuid.UUIDFetcher;
|
import com.intellectualcrafters.plot.uuid.UUIDFetcher;
|
||||||
import com.intellectualcrafters.plot.uuid.UUIDSaver;
|
import com.intellectualcrafters.plot.uuid.UUIDSaver;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.OfflinePlayer;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class can be used to efficiently translate UUIDs and names back and
|
* This class can be used to efficiently translate UUIDs and names back and
|
||||||
@ -24,13 +44,13 @@ import com.intellectualcrafters.plot.uuid.UUIDSaver;
|
|||||||
* - Read from (if onlinemode: mojang api) (else: playername hashing)
|
* - Read from (if onlinemode: mojang api) (else: playername hashing)
|
||||||
* All UUIDs/Usernames will be stored in a map (cache) until the server is
|
* All UUIDs/Usernames will be stored in a map (cache) until the server is
|
||||||
* restarted.
|
* restarted.
|
||||||
*
|
* <p/>
|
||||||
* You can use getUuidMap() to save the uuids/names to a file (SQLite db for
|
* You can use getUuidMap() to save the uuids/names to a file (SQLite db for
|
||||||
* example).
|
* example).
|
||||||
* Primary methods: getUUID(String name) & getName(UUID uuid) <-- You should
|
* Primary methods: getUUID(String name) & getName(UUID uuid) <-- You should
|
||||||
* ONLY use these.
|
* ONLY use these.
|
||||||
* Call startFetch(JavaPlugin plugin) in your onEnable().
|
* Call startFetch(JavaPlugin plugin) in your onEnable().
|
||||||
*
|
* <p/>
|
||||||
* Originally created by:
|
* Originally created by:
|
||||||
*
|
*
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -63,8 +83,7 @@ public class UUIDHandler {
|
|||||||
/**
|
/**
|
||||||
* Check if a uuid is cached
|
* Check if a uuid is cached
|
||||||
*
|
*
|
||||||
* @param uuid
|
* @param uuid to check
|
||||||
* to check
|
|
||||||
* @return true of the uuid is cached
|
* @return true of the uuid is cached
|
||||||
*/
|
*/
|
||||||
public static boolean uuidExists(final UUID uuid) {
|
public static boolean uuidExists(final UUID uuid) {
|
||||||
@ -74,8 +93,7 @@ public class UUIDHandler {
|
|||||||
/**
|
/**
|
||||||
* Check if a name is cached
|
* Check if a name is cached
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name to check
|
||||||
* to check
|
|
||||||
* @return true of the name is cached
|
* @return true of the name is cached
|
||||||
*/
|
*/
|
||||||
public static boolean nameExists(final StringWrapper name) {
|
public static boolean nameExists(final StringWrapper name) {
|
||||||
@ -85,10 +103,8 @@ public class UUIDHandler {
|
|||||||
/**
|
/**
|
||||||
* Add a set to the cache
|
* Add a set to the cache
|
||||||
*
|
*
|
||||||
* @param name
|
* @param name to cache
|
||||||
* to cache
|
* @param uuid to cache
|
||||||
* @param uuid
|
|
||||||
* to cache
|
|
||||||
*/
|
*/
|
||||||
public static void add(final StringWrapper name, final UUID uuid) {
|
public static void add(final StringWrapper name, final UUID uuid) {
|
||||||
if (!uuidMap.containsKey(name) && !uuidMap.inverse().containsKey(uuid)) {
|
if (!uuidMap.containsKey(name) && !uuidMap.inverse().containsKey(uuid)) {
|
||||||
@ -97,8 +113,7 @@ public class UUIDHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param name
|
* @param name to use as key
|
||||||
* to use as key
|
|
||||||
* @return uuid
|
* @return uuid
|
||||||
*/
|
*/
|
||||||
public static UUID getUUID(final String name) {
|
public static UUID getUUID(final String name) {
|
||||||
@ -121,38 +136,32 @@ public class UUIDHandler {
|
|||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
return PlotMain.getUUIDSaver().mojangUUID(name);
|
return PlotMain.getUUIDSaver().mojangUUID(name);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
try {
|
try {
|
||||||
final UUIDFetcher fetcher = new UUIDFetcher(Arrays.asList(name));
|
final UUIDFetcher fetcher = new UUIDFetcher(Arrays.asList(name));
|
||||||
uuid = fetcher.call().get(name);
|
uuid = fetcher.call().get(name);
|
||||||
add(nameWrap, uuid);
|
add(nameWrap, uuid);
|
||||||
}
|
} catch (final Exception ex) {
|
||||||
catch (final Exception ex) {
|
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
try {
|
try {
|
||||||
final UUIDFetcher fetcher = new UUIDFetcher(Arrays.asList(name));
|
final UUIDFetcher fetcher = new UUIDFetcher(Arrays.asList(name));
|
||||||
uuid = fetcher.call().get(name);
|
uuid = fetcher.call().get(name);
|
||||||
add(nameWrap, uuid);
|
add(nameWrap, uuid);
|
||||||
}
|
} catch (final Exception ex) {
|
||||||
catch (final Exception ex) {
|
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return getUuidOfflineMode(nameWrap);
|
return getUuidOfflineMode(nameWrap);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param uuid
|
* @param uuid to use as key
|
||||||
* to use as key
|
|
||||||
* @return name (cache)
|
* @return name (cache)
|
||||||
*/
|
*/
|
||||||
private static StringWrapper loopSearch(final UUID uuid) {
|
private static StringWrapper loopSearch(final UUID uuid) {
|
||||||
@ -160,8 +169,7 @@ public class UUIDHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param uuid
|
* @param uuid to use as key
|
||||||
* to use as key
|
|
||||||
* @return Name
|
* @return Name
|
||||||
*/
|
*/
|
||||||
public static String getName(final UUID uuid) {
|
public static String getName(final UUID uuid) {
|
||||||
@ -182,51 +190,43 @@ public class UUIDHandler {
|
|||||||
name = fetcher.call().get(uuid);
|
name = fetcher.call().get(uuid);
|
||||||
add(new StringWrapper(name), uuid);
|
add(new StringWrapper(name), uuid);
|
||||||
return name;
|
return name;
|
||||||
}
|
} catch (final Exception ex) {
|
||||||
catch (final Exception ex) {
|
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
try {
|
try {
|
||||||
return PlotMain.getUUIDSaver().mojangName(uuid);
|
return PlotMain.getUUIDSaver().mojangName(uuid);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
try {
|
try {
|
||||||
final NameFetcher fetcher = new NameFetcher(Arrays.asList(uuid));
|
final NameFetcher fetcher = new NameFetcher(Arrays.asList(uuid));
|
||||||
name = fetcher.call().get(uuid);
|
name = fetcher.call().get(uuid);
|
||||||
add(new StringWrapper(name), uuid);
|
add(new StringWrapper(name), uuid);
|
||||||
return name;
|
return name;
|
||||||
}
|
} catch (final Exception ex) {
|
||||||
catch (final Exception ex) {
|
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
return PlotMain.getUUIDSaver().mojangName(uuid);
|
return PlotMain.getUUIDSaver().mojangName(uuid);
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
try {
|
try {
|
||||||
final NameFetcher fetcher = new NameFetcher(Arrays.asList(uuid));
|
final NameFetcher fetcher = new NameFetcher(Arrays.asList(uuid));
|
||||||
name = fetcher.call().get(uuid);
|
name = fetcher.call().get(uuid);
|
||||||
add(new StringWrapper(name), uuid);
|
add(new StringWrapper(name), uuid);
|
||||||
return name;
|
return name;
|
||||||
}
|
} catch (final Exception ex) {
|
||||||
catch (final Exception ex) {
|
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
return "unknown";
|
return "unknown";
|
||||||
}
|
}
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param name
|
* @param name to use as key
|
||||||
* to use as key
|
|
||||||
* @return UUID (name hash)
|
* @return UUID (name hash)
|
||||||
*/
|
*/
|
||||||
private static UUID getUuidOfflineMode(final StringWrapper name) {
|
private static UUID getUuidOfflineMode(final StringWrapper name) {
|
||||||
@ -236,8 +236,7 @@ public class UUIDHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param uuid
|
* @param uuid to use as key
|
||||||
* to use as key
|
|
||||||
* @return String - name
|
* @return String - name
|
||||||
*/
|
*/
|
||||||
private static String getNameOnlinePlayer(final UUID uuid) {
|
private static String getNameOnlinePlayer(final UUID uuid) {
|
||||||
@ -251,8 +250,7 @@ public class UUIDHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param uuid
|
* @param uuid to use as key
|
||||||
* to use as key
|
|
||||||
* @return String - name
|
* @return String - name
|
||||||
*/
|
*/
|
||||||
private static String getNameOfflinePlayer(final UUID uuid) {
|
private static String getNameOfflinePlayer(final UUID uuid) {
|
||||||
@ -266,8 +264,7 @@ public class UUIDHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param name
|
* @param name to use as key
|
||||||
* to use as key
|
|
||||||
* @return UUID
|
* @return UUID
|
||||||
*/
|
*/
|
||||||
private static UUID getUuidOnlinePlayer(final StringWrapper name) {
|
private static UUID getUuidOnlinePlayer(final StringWrapper name) {
|
||||||
|
@ -1,16 +1,29 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = PlotAPI.java >> Generated by: Citymonstret at 2014-08-09 01:44
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.api;
|
package com.intellectualcrafters.plot.api;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.*;
|
||||||
import java.util.Set;
|
import com.intellectualcrafters.plot.commands.MainCommand;
|
||||||
|
import com.intellectualcrafters.plot.commands.SubCommand;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -18,19 +31,8 @@ import org.bukkit.configuration.file.YamlConfiguration;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.AbstractFlag;
|
import java.util.ArrayList;
|
||||||
import com.intellectualcrafters.plot.C;
|
import java.util.Set;
|
||||||
import com.intellectualcrafters.plot.FlagManager;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotManager;
|
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.SchematicHandler;
|
|
||||||
import com.intellectualcrafters.plot.commands.MainCommand;
|
|
||||||
import com.intellectualcrafters.plot.commands.SubCommand;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The plotMain api class.
|
* The plotMain api class.
|
||||||
@ -93,39 +95,36 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Add a plotoworld
|
* Add a plotoworld
|
||||||
*
|
*
|
||||||
|
* @param world World Name
|
||||||
|
* @param plotWorld Plot World Object
|
||||||
|
* @param manager World Manager
|
||||||
* @see com.intellectualcrafters.plot.PlotMain#addPlotWorld(String,
|
* @see com.intellectualcrafters.plot.PlotMain#addPlotWorld(String,
|
||||||
* com.intellectualcrafters.plot.PlotWorld,
|
* com.intellectualcrafters.plot.PlotWorld,
|
||||||
* com.intellectualcrafters.plot.PlotManager)
|
* com.intellectualcrafters.plot.PlotManager)
|
||||||
* @param world
|
|
||||||
* World Name
|
|
||||||
* @param plotWorld
|
|
||||||
* Plot World Object
|
|
||||||
* @param manager
|
|
||||||
* World Manager
|
|
||||||
*/
|
*/
|
||||||
public void addPlotWorld(final String world, final PlotWorld plotWorld, final PlotManager manager) {
|
public void addPlotWorld(final String world, final PlotWorld plotWorld, final PlotManager manager) {
|
||||||
PlotMain.addPlotWorld(world, plotWorld, manager);
|
PlotMain.addPlotWorld(world, plotWorld, manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see com.intellectualcrafters.plot.PlotMain#config
|
|
||||||
* @return main configuration
|
* @return main configuration
|
||||||
|
* @see com.intellectualcrafters.plot.PlotMain#config
|
||||||
*/
|
*/
|
||||||
public YamlConfiguration getConfig() {
|
public YamlConfiguration getConfig() {
|
||||||
return PlotMain.config;
|
return PlotMain.config;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see com.intellectualcrafters.plot.PlotMain#translations
|
|
||||||
* @return translation configuration
|
* @return translation configuration
|
||||||
|
* @see com.intellectualcrafters.plot.PlotMain#translations
|
||||||
*/
|
*/
|
||||||
public YamlConfiguration getTranslations() {
|
public YamlConfiguration getTranslations() {
|
||||||
return PlotMain.translations;
|
return PlotMain.translations;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see com.intellectualcrafters.plot.PlotMain#storage
|
|
||||||
* @return storage configuration
|
* @return storage configuration
|
||||||
|
* @see com.intellectualcrafters.plot.PlotMain#storage
|
||||||
*/
|
*/
|
||||||
public YamlConfiguration getStorage() {
|
public YamlConfiguration getStorage() {
|
||||||
return PlotMain.storage;
|
return PlotMain.storage;
|
||||||
@ -135,8 +134,7 @@ public class PlotAPI {
|
|||||||
* 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
|
|
||||||
*/
|
*/
|
||||||
public PlotAPI(final JavaPlugin plugin) {
|
public PlotAPI(final JavaPlugin plugin) {
|
||||||
this.plotMain = JavaPlugin.getPlugin(PlotMain.class);
|
this.plotMain = JavaPlugin.getPlugin(PlotMain.class);
|
||||||
@ -226,8 +224,7 @@ public class PlotAPI {
|
|||||||
* will need to downcast for the specific settings a Generator has. e.g.
|
* will need to downcast for the specific settings a Generator has. e.g.
|
||||||
* DefaultPlotWorld class implements PlotWorld
|
* DefaultPlotWorld class implements PlotWorld
|
||||||
*
|
*
|
||||||
* @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
|
||||||
*/
|
*/
|
||||||
@ -238,8 +235,7 @@ 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
|
||||||
*/
|
*/
|
||||||
@ -251,8 +247,7 @@ public class PlotAPI {
|
|||||||
* Send a message to a player.
|
* Send a message to a player.
|
||||||
*
|
*
|
||||||
* @param player
|
* @param player
|
||||||
* @param c
|
* @param c (Caption)
|
||||||
* (Caption)
|
|
||||||
*/
|
*/
|
||||||
public void sendMessage(final Player player, final C c) {
|
public void sendMessage(final Player player, final C c) {
|
||||||
PlayerFunctions.sendMessage(player, c);
|
PlayerFunctions.sendMessage(player, c);
|
||||||
@ -280,8 +275,7 @@ public class PlotAPI {
|
|||||||
/**
|
/**
|
||||||
* Send a message to the console
|
* Send a message to the console
|
||||||
*
|
*
|
||||||
* @param c
|
* @param c (Caption)
|
||||||
* (Caption)
|
|
||||||
*/
|
*/
|
||||||
public void sendConsoleMessage(final C c) {
|
public void sendConsoleMessage(final C c) {
|
||||||
sendConsoleMessage(c.s());
|
sendConsoleMessage(c.s());
|
||||||
@ -350,10 +344,8 @@ 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?
|
|
||||||
*/
|
*/
|
||||||
public Plot[] getPlots(final World world, final Player plr, final boolean just_owner) {
|
public Plot[] getPlots(final World world, final Player plr, final boolean just_owner) {
|
||||||
final ArrayList<Plot> pPlots = new ArrayList<>();
|
final ArrayList<Plot> pPlots = new ArrayList<>();
|
||||||
@ -362,8 +354,7 @@ public class PlotAPI {
|
|||||||
if ((plot.owner != null) && (plot.owner == plr.getUniqueId())) {
|
if ((plot.owner != null) && (plot.owner == plr.getUniqueId())) {
|
||||||
pPlots.add(plot);
|
pPlots.add(plot);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
if (plot.hasRights(plr)) {
|
if (plot.hasRights(plr)) {
|
||||||
pPlots.add(plot);
|
pPlots.add(plot);
|
||||||
}
|
}
|
||||||
@ -375,8 +366,7 @@ 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
|
||||||
*/
|
*/
|
||||||
public Plot[] getPlots(final World world) {
|
public Plot[] getPlots(final World world) {
|
||||||
@ -395,8 +385,7 @@ 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)
|
||||||
*/
|
*/
|
||||||
public boolean isPlotWorld(final World world) {
|
public boolean isPlotWorld(final World world) {
|
||||||
|
@ -1,27 +1,32 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Auto.java >> Generated by: Citymonstret at 2014-08-09 01:40
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.*;
|
||||||
import net.milkbowl.vault.economy.Economy;
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
|
||||||
import com.intellectualcrafters.plot.FlagManager;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public class Auto extends SubCommand {
|
public class Auto extends SubCommand {
|
||||||
public Auto() {
|
public Auto() {
|
||||||
@ -39,12 +44,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;
|
||||||
}
|
}
|
||||||
@ -64,15 +67,13 @@ 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) {
|
|
||||||
schematic = args[0];
|
schematic = args[0];
|
||||||
// PlayerFunctions.sendMessage(plr,
|
// PlayerFunctions.sendMessage(plr,
|
||||||
// "&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;
|
||||||
@ -124,14 +125,16 @@ public class Auto extends SubCommand {
|
|||||||
}
|
}
|
||||||
Auto.lastPlot = getNextPlot(Auto.lastPlot, 1);
|
Auto.lastPlot = getNextPlot(Auto.lastPlot, 1);
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
// FIXME: Not used
|
||||||
final boolean claimed = true;
|
// TODO: Fix this!
|
||||||
|
// final boolean claimed = true;
|
||||||
while (!br) {
|
while (!br) {
|
||||||
final PlotId start = getNextPlot(Auto.lastPlot, 1);
|
final PlotId start = getNextPlot(Auto.lastPlot, 1);
|
||||||
|
|
||||||
// FIXME: Wtf is going on here?
|
// FIXME: Wtf is going on here?
|
||||||
if (claimed) {
|
/*if (claimed) */
|
||||||
|
{
|
||||||
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)) {
|
||||||
Auto.lastPlot = start;
|
Auto.lastPlot = start;
|
||||||
continue;
|
continue;
|
||||||
@ -168,20 +171,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);
|
||||||
}
|
}
|
||||||
|
@ -1,28 +1,32 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Claim.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import net.milkbowl.vault.economy.Economy;
|
import com.intellectualcrafters.plot.*;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
|
||||||
import com.intellectualcrafters.plot.FlagManager;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.SchematicHandler;
|
|
||||||
import com.intellectualcrafters.plot.events.PlayerClaimPlotEvent;
|
import com.intellectualcrafters.plot.events.PlayerClaimPlotEvent;
|
||||||
import com.intellectualcrafters.plot.generator.DefaultPlotWorld;
|
import com.intellectualcrafters.plot.generator.DefaultPlotWorld;
|
||||||
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -40,17 +44,14 @@ public class Claim extends SubCommand {
|
|||||||
schematic = args[0];
|
schematic = args[0];
|
||||||
}
|
}
|
||||||
if (!PlayerFunctions.isInPlot(plr)) {
|
if (!PlayerFunctions.isInPlot(plr)) {
|
||||||
PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT);
|
return sendMessage(plr, C.NOT_IN_PLOT);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
if (PlayerFunctions.getPlayerPlotCount(plr.getWorld(), plr) >= PlayerFunctions.getAllowedPlots(plr)) {
|
if (PlayerFunctions.getPlayerPlotCount(plr.getWorld(), plr) >= PlayerFunctions.getAllowedPlots(plr)) {
|
||||||
PlayerFunctions.sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS);
|
return sendMessage(plr, C.CANT_CLAIM_MORE_PLOTS);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
final Plot plot = PlayerFunctions.getCurrentPlot(plr);
|
final Plot plot = PlayerFunctions.getCurrentPlot(plr);
|
||||||
if (plot.hasOwner()) {
|
if (plot.hasOwner()) {
|
||||||
PlayerFunctions.sendMessage(plr, C.PLOT_IS_CLAIMED);
|
return sendMessage(plr, C.PLOT_IS_CLAIMED);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
final PlotWorld world = PlotMain.getWorldSettings(plot.getWorld());
|
final PlotWorld world = PlotMain.getWorldSettings(plot.getWorld());
|
||||||
if (PlotMain.useEconomy && world.USE_ECONOMY) {
|
if (PlotMain.useEconomy && world.USE_ECONOMY) {
|
||||||
@ -58,8 +59,7 @@ public class Claim extends SubCommand {
|
|||||||
if (cost > 0d) {
|
if (cost > 0d) {
|
||||||
final Economy economy = PlotMain.economy;
|
final Economy economy = PlotMain.economy;
|
||||||
if (economy.getBalance(plr) < cost) {
|
if (economy.getBalance(plr) < cost) {
|
||||||
sendMessage(plr, C.CANNOT_AFFORD_PLOT, "" + cost);
|
return sendMessage(plr, C.CANNOT_AFFORD_PLOT, "" + cost);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
economy.withdrawPlayer(plr, cost);
|
economy.withdrawPlayer(plr, cost);
|
||||||
sendMessage(plr, C.REMOVED_BALANCE, cost + "");
|
sendMessage(plr, C.REMOVED_BALANCE, cost + "");
|
||||||
@ -68,21 +68,15 @@ public class Claim extends SubCommand {
|
|||||||
if (!schematic.equals("")) {
|
if (!schematic.equals("")) {
|
||||||
if (world.SCHEMATIC_CLAIM_SPECIFY) {
|
if (world.SCHEMATIC_CLAIM_SPECIFY) {
|
||||||
if (!world.SCHEMATICS.contains(schematic.toLowerCase())) {
|
if (!world.SCHEMATICS.contains(schematic.toLowerCase())) {
|
||||||
sendMessage(plr, C.SCHEMATIC_INVALID, "non-existent: " + schematic);
|
return sendMessage(plr, C.SCHEMATIC_INVALID, "non-existent: " + schematic);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
if (!PlotMain.hasPermission(plr, "plots.claim." + schematic) && !plr.hasPermission("plots.admin")) {
|
if (!PlotMain.hasPermission(plr, "plots.claim." + schematic) && !plr.hasPermission("plots.admin")) {
|
||||||
PlayerFunctions.sendMessage(plr, C.NO_SCHEMATIC_PERMISSION, schematic);
|
return sendMessage(plr, C.NO_SCHEMATIC_PERMISSION, schematic);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
final boolean result = claimPlot(plr, plot, false, schematic);
|
|
||||||
if (result) {
|
return !claimPlot(plr, plot, false, schematic) || sendMessage(plr, C.PLOT_NOT_CLAIMED);
|
||||||
PlayerFunctions.sendMessage(plr, C.PLOT_NOT_CLAIMED);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean claimPlot(final Player player, final Plot plot, final boolean teleport) {
|
public static boolean claimPlot(final Player player, final Plot plot, final boolean teleport) {
|
||||||
@ -107,8 +101,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);
|
||||||
|
@ -1,23 +1,32 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Clear.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import com.intellectualcrafters.plot.C;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.Plot;
|
import com.intellectualcrafters.plot.Plot;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Citymonstret on 2014-08-01.
|
|
||||||
*/
|
|
||||||
public class Clear extends SubCommand {
|
public class Clear extends SubCommand {
|
||||||
|
|
||||||
public Clear() {
|
public Clear() {
|
||||||
@ -30,18 +39,16 @@ public class Clear extends SubCommand {
|
|||||||
@Override
|
@Override
|
||||||
public boolean execute(final Player plr, final String... args) {
|
public boolean execute(final Player plr, final String... args) {
|
||||||
if (!PlayerFunctions.isInPlot(plr)) {
|
if (!PlayerFunctions.isInPlot(plr)) {
|
||||||
PlayerFunctions.sendMessage(plr, "You're not in a plot.");
|
return sendMessage(plr, C.NOT_IN_PLOT);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
final Plot plot = PlayerFunctions.getCurrentPlot(plr);
|
final Plot plot = PlayerFunctions.getCurrentPlot(plr);
|
||||||
if (!PlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(PlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
|
if (!PlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(PlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
|
||||||
PlayerFunctions.sendMessage(plr, C.UNLINK_REQUIRED);
|
return sendMessage(plr, C.UNLINK_REQUIRED);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(plr.getUniqueId())) && !PlotMain.hasPermission(plr, "plots.admin")) {
|
if (((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(plr.getUniqueId())) && !PlotMain.hasPermission(plr, "plots.admin")) {
|
||||||
PlayerFunctions.sendMessage(plr, C.NO_PLOT_PERMS);
|
return sendMessage(plr, C.NO_PLOT_PERMS);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
assert plot != null;
|
||||||
plot.clear(plr);
|
plot.clear(plr);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,34 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import static com.intellectualcrafters.plot.PlotSelection.currentSelection;
|
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import com.intellectualcrafters.plot.C;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
import com.intellectualcrafters.plot.PlotId;
|
||||||
import com.intellectualcrafters.plot.PlotSelection;
|
import com.intellectualcrafters.plot.PlotSelection;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import static com.intellectualcrafters.plot.PlotSelection.currentSelection;
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Citymonstret on 2014-10-13.
|
|
||||||
*/
|
|
||||||
public class Clipboard extends SubCommand {
|
public class Clipboard extends SubCommand {
|
||||||
|
|
||||||
public Clipboard() {
|
public Clipboard() {
|
||||||
@ -21,8 +38,7 @@ public class Clipboard extends SubCommand {
|
|||||||
@Override
|
@Override
|
||||||
public boolean execute(final Player plr, final String... args) {
|
public boolean execute(final Player plr, final String... args) {
|
||||||
if (!currentSelection.containsKey(plr.getName())) {
|
if (!currentSelection.containsKey(plr.getName())) {
|
||||||
sendMessage(plr, C.NO_CLIPBOARD);
|
return sendMessage(plr, C.NO_CLIPBOARD);
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
final PlotSelection selection = currentSelection.get(plr.getName());
|
final PlotSelection selection = currentSelection.get(plr.getName());
|
||||||
|
|
||||||
|
@ -1,10 +1,23 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Command.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
@ -1,17 +1,28 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = CommandPermission.java >> Generated by: Citymonstret at 2014-08-09
|
// it under the terms of the GNU General Public License as published by /
|
||||||
* 01:41
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
*/
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
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.
|
||||||
@ -26,15 +37,15 @@ public class CommandPermission {
|
|||||||
public String permission;
|
public String permission;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param permission
|
* @param 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?
|
||||||
* @return
|
* @return true of player has the required permission node
|
||||||
*/
|
*/
|
||||||
public boolean hasPermission(final Player player) {
|
public boolean hasPermission(final Player player) {
|
||||||
return PlotMain.hasPermission(player, this.permission) || PlotMain.hasPermission(player, "plots.admin");
|
return PlotMain.hasPermission(player, this.permission) || PlotMain.hasPermission(player, "plots.admin");
|
||||||
|
@ -1,29 +1,34 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Clear.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.*;
|
||||||
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
|
import org.apache.commons.lang.StringUtils;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotComment;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Citymonstret on 2014-08-01.
|
|
||||||
*/
|
|
||||||
public class Comment extends SubCommand {
|
public class Comment extends SubCommand {
|
||||||
|
|
||||||
public Comment() {
|
public Comment() {
|
||||||
@ -33,16 +38,14 @@ public class Comment extends SubCommand {
|
|||||||
@Override
|
@Override
|
||||||
public boolean execute(final Player plr, final String... args) {
|
public boolean execute(final Player plr, final String... args) {
|
||||||
if (!PlayerFunctions.isInPlot(plr)) {
|
if (!PlayerFunctions.isInPlot(plr)) {
|
||||||
PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT);
|
return sendMessage(plr, C.NOT_IN_PLOT);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
final Plot plot = PlayerFunctions.getCurrentPlot(plr);
|
final Plot plot = PlayerFunctions.getCurrentPlot(plr);
|
||||||
if (!plot.hasOwner()) {
|
if (!plot.hasOwner()) {
|
||||||
PlayerFunctions.sendMessage(plr, C.NOT_IN_PLOT);
|
return sendMessage(plr, C.NOT_IN_PLOT);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<String> recipients = Arrays.asList(new String[] { "admin", "owner", "helper", "trusted", "everyone" });
|
final List<String> recipients = Arrays.asList("admin", "owner", "helper", "trusted", "everyone");
|
||||||
|
|
||||||
if ((args.length == 2) && recipients.contains(args[0].toLowerCase())) {
|
if ((args.length == 2) && recipients.contains(args[0].toLowerCase())) {
|
||||||
|
|
||||||
@ -54,13 +57,10 @@ 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());
|
||||||
PlayerFunctions.sendMessage(plr, C.NO_PERMISSION, "plots.comment." + args[0].toLowerCase());
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PlayerFunctions.sendMessage(plr, C.COMMENT_SYNTAX);
|
return sendMessage(plr, C.COMMENT_SYNTAX);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,25 +1,29 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Clear.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.*;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotSelection;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Citymonstret on 2014-08-01.
|
|
||||||
*/
|
|
||||||
public class Copy extends SubCommand {
|
public class Copy extends SubCommand {
|
||||||
|
|
||||||
public Copy() {
|
public Copy() {
|
||||||
@ -37,11 +41,11 @@ public class Copy extends SubCommand {
|
|||||||
PlayerFunctions.sendMessage(plr, C.NO_PLOT_PERMS);
|
PlayerFunctions.sendMessage(plr, C.NO_PLOT_PERMS);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
assert plot != null;
|
||||||
if (plot.settings.isMerged()) {
|
if (plot.settings.isMerged()) {
|
||||||
PlayerFunctions.sendMessage(plr, C.UNLINK_REQUIRED);
|
PlayerFunctions.sendMessage(plr, C.UNLINK_REQUIRED);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
assert plot != null;
|
|
||||||
final int size = (PlotHelper.getPlotTopLocAbs(plr.getWorld(), plot.getId()).getBlockX() - PlotHelper.getPlotBottomLocAbs(plr.getWorld(), plot.getId()).getBlockX());
|
final int size = (PlotHelper.getPlotTopLocAbs(plr.getWorld(), plot.getId()).getBlockX() - PlotHelper.getPlotBottomLocAbs(plr.getWorld(), plot.getId()).getBlockX());
|
||||||
final PlotSelection selection = new PlotSelection(size, plr.getWorld(), plot);
|
final PlotSelection selection = new PlotSelection(size, plr.getWorld(), plot);
|
||||||
if (PlotSelection.currentSelection.containsKey(plr.getName())) {
|
if (PlotSelection.currentSelection.containsKey(plr.getName())) {
|
||||||
@ -49,8 +53,6 @@ public class Copy extends SubCommand {
|
|||||||
}
|
}
|
||||||
PlotSelection.currentSelection.put(plr.getName(), selection);
|
PlotSelection.currentSelection.put(plr.getName(), selection);
|
||||||
sendMessage(plr, C.CLIPBOARD_SET);
|
sendMessage(plr, C.CLIPBOARD_SET);
|
||||||
// section.paste(plr.getWorld(), PlotHelper.getPlot(plr.getWorld()zs,
|
|
||||||
// new PlotId(plot.getId().x + 1, plot.getId().y)));
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,45 +1,35 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Debug.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.*;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
|
||||||
import com.intellectualcrafters.plot.Lag;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.RUtils;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author Citymonstret \\SuperCharged Compiler made by Citymonstret\\
|
|
||||||
* ||#Compiler:ALPHA-1.0#########################
|
|
||||||
* ||#ST:Java(1.7.*)\impl(bukkit)->api(s[])######
|
|
||||||
* ||#Section:\Debug\############################
|
|
||||||
* ||##Debug->Debug.properties|Debug.txt#########
|
|
||||||
* ||############################################ ||#Signed
|
|
||||||
* By:Citymonstret@IC##################
|
|
||||||
* \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
|
|
||||||
*/
|
|
||||||
public class Debug extends SubCommand {
|
public class Debug extends SubCommand {
|
||||||
|
|
||||||
// private extends SubCommand^Implements {Command, Information} from
|
|
||||||
// >>\\S.txt6\\
|
|
||||||
public Debug() {
|
public Debug() {
|
||||||
super(Command.DEBUG, "Show debug information", "debug [msg]", CommandCategory.DEBUG, false);
|
super(Command.DEBUG, "Show debug information", "debug [msg]", CommandCategory.DEBUG, false);
|
||||||
{
|
|
||||||
/**
|
|
||||||
* This.
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -47,35 +37,23 @@ public class Debug extends SubCommand {
|
|||||||
if ((args.length > 0) && args[0].equalsIgnoreCase("msg")) {
|
if ((args.length > 0) && args[0].equalsIgnoreCase("msg")) {
|
||||||
final StringBuilder msg = new StringBuilder();
|
final StringBuilder msg = new StringBuilder();
|
||||||
for (final C c : C.values()) {
|
for (final C c : C.values()) {
|
||||||
msg.append(c.s() + "\n");
|
msg.append(c.s()).append("\n");
|
||||||
}
|
}
|
||||||
PlayerFunctions.sendMessage(plr, msg.toString());
|
PlayerFunctions.sendMessage(plr, msg.toString());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
StringBuilder information;
|
StringBuilder information;
|
||||||
String header, line, section;
|
String header, line, section;
|
||||||
/**
|
|
||||||
* {$notnull || compile:: \\Debug:Captions\\}
|
|
||||||
*/
|
|
||||||
{
|
{
|
||||||
information = new StringBuilder();
|
information = new StringBuilder();
|
||||||
header = C.DEUBG_HEADER.s();
|
header = C.DEUBG_HEADER.s();
|
||||||
line = C.DEBUG_LINE.s();
|
line = C.DEBUG_LINE.s();
|
||||||
section = C.DEBUG_SECTION.s();
|
section = C.DEBUG_SECTION.s();
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* {||direct:: load: debug::I>Captions::trsl} \\ if(missing)
|
|
||||||
* set(default) -> this->(){} \\ echo line->line(Compiler.cpp ->
|
|
||||||
* lineCompiler); when finished: now = this();
|
|
||||||
* now(getter)->setter(this())->{ "string" = getter(this);
|
|
||||||
* setter(string) = getter(this->setter); } when ^ finished compile;
|
|
||||||
* if(^compile failed -> |this->failed.|tests->failed.| ||run test
|
|
||||||
* {this->test}|on fail(action(){return FAILED})|
|
|
||||||
*/
|
|
||||||
{
|
{
|
||||||
final StringBuilder worlds = new StringBuilder("");
|
final StringBuilder worlds = new StringBuilder("");
|
||||||
for (final String world : PlotMain.getPlotWorlds()) {
|
for (final String world : PlotMain.getPlotWorlds()) {
|
||||||
worlds.append(world + " ");
|
worlds.append(world).append(" ");
|
||||||
}
|
}
|
||||||
information.append(header);
|
information.append(header);
|
||||||
information.append(getSection(section, "Lag / TPS"));
|
information.append(getSection(section, "Lag / TPS"));
|
||||||
@ -101,10 +79,6 @@ public class Debug extends SubCommand {
|
|||||||
information.append(getLine(line, "Total Messages", C.values().length));
|
information.append(getLine(line, "Total Messages", C.values().length));
|
||||||
information.append(getLine(line, "View all captions", "/plot debug msg"));
|
information.append(getLine(line, "View all captions", "/plot debug msg"));
|
||||||
}
|
}
|
||||||
/**
|
|
||||||
* {function:: SEND_MESSAGE |local player -> plr|local string ->
|
|
||||||
* information.toString())}
|
|
||||||
*/
|
|
||||||
{
|
{
|
||||||
PlayerFunctions.sendMessage(plr, information.toString());
|
PlayerFunctions.sendMessage(plr, information.toString());
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,30 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Claim.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.google.common.collect.BiMap;
|
||||||
import java.util.UUID;
|
import com.intellectualcrafters.plot.*;
|
||||||
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
|
import com.intellectualcrafters.plot.events.PlayerClaimPlotEvent;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Chunk;
|
import org.bukkit.Chunk;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -19,20 +33,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.C;
|
import java.util.UUID;
|
||||||
import com.intellectualcrafters.plot.FlagManager;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotManager;
|
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.StringWrapper;
|
|
||||||
import com.intellectualcrafters.plot.UUIDHandler;
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
|
||||||
import com.intellectualcrafters.plot.events.PlayerClaimPlotEvent;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -47,13 +49,11 @@ public class DebugClaimTest extends SubCommand {
|
|||||||
public boolean execute(final Player plr, final String... args) {
|
public boolean execute(final Player plr, final String... args) {
|
||||||
if (plr == null) {
|
if (plr == null) {
|
||||||
if (args.length < 3) {
|
if (args.length < 3) {
|
||||||
PlayerFunctions.sendMessage(plr, "If you accidentally delete your database, this command will attempt to restore all plots based on the data from the plot signs. \n\n&cMissing world arg /plot debugclaimtest {world} {PlotId min} {PlotId max}");
|
return !PlayerFunctions.sendMessage(null, "If you accidentally delete your database, this command will attempt to restore all plots based on the data from the plot signs. \n\n&cMissing world arg /plot debugclaimtest {world} {PlotId min} {PlotId max}");
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
final World world = Bukkit.getWorld(args[0]);
|
final World world = Bukkit.getWorld(args[0]);
|
||||||
if ((world == null) || !PlotMain.isPlotWorld(world)) {
|
if ((world == null) || !PlotMain.isPlotWorld(world)) {
|
||||||
PlayerFunctions.sendMessage(plr, "&cInvalid plot world!");
|
return !PlayerFunctions.sendMessage(null, "&cInvalid plot world!");
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
PlotId min, max;
|
PlotId min, max;
|
||||||
@ -64,24 +64,22 @@ 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) {
|
||||||
|
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.");
|
||||||
}
|
}
|
||||||
catch (final Exception e) {
|
PlayerFunctions.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: &7Beginning sign to plot conversion. This may take a while...");
|
||||||
PlayerFunctions.sendMessage(plr, "&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: Found an excess of 250,000 chunks. Limiting search radius... (~3.8 min)");
|
||||||
return false;
|
|
||||||
}
|
|
||||||
PlayerFunctions.sendMessage(plr, "&3Sign Block&8->&3PlotSquared&8: &7Beginning sign to plot conversion. This may take a while...");
|
|
||||||
PlayerFunctions.sendMessage(plr, "&3Sign Block&8->&3PlotSquared&8: Found an excess of 250,000 chunks. Limiting search radius... (~3.8 min)");
|
|
||||||
|
|
||||||
final PlotManager manager = PlotMain.getPlotManager(world);
|
final PlotManager manager = PlotMain.getPlotManager(world);
|
||||||
final PlotWorld plotworld = PlotMain.getWorldSettings(world);
|
final PlotWorld plotworld = PlotMain.getWorldSettings(world);
|
||||||
|
|
||||||
final ArrayList<Plot> plots = new ArrayList<Plot>();
|
final ArrayList<Plot> plots = new ArrayList<>();
|
||||||
|
|
||||||
for (final PlotId id : PlayerFunctions.getPlotSelectionIds(world, min, max)) {
|
for (final PlotId id : PlayerFunctions.getPlotSelectionIds(world, min, max)) {
|
||||||
final Plot plot = PlotHelper.getPlot(world, id);
|
final Plot plot = PlotHelper.getPlot(world, id);
|
||||||
final boolean contains = PlotMain.getPlots(world).containsKey(plot.id);
|
final boolean contains = PlotMain.getPlots(world).containsKey(plot.id);
|
||||||
if (contains) {
|
if (contains) {
|
||||||
PlayerFunctions.sendMessage(plr, " - &cDB Already contains: " + plot.id);
|
PlayerFunctions.sendMessage(null, " - &cDB Already contains: " + plot.id);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -100,7 +98,6 @@ public class DebugClaimTest extends SubCommand {
|
|||||||
if (block != null) {
|
if (block != null) {
|
||||||
if (block.getState() instanceof Sign) {
|
if (block.getState() instanceof Sign) {
|
||||||
final Sign sign = (Sign) block.getState();
|
final Sign sign = (Sign) block.getState();
|
||||||
if (sign != null) {
|
|
||||||
String line = sign.getLine(2);
|
String line = sign.getLine(2);
|
||||||
if ((line != null) && (line.length() > 2)) {
|
if ((line != null) && (line.length() > 2)) {
|
||||||
line = line.substring(2);
|
line = line.substring(2);
|
||||||
@ -121,14 +118,12 @@ public class DebugClaimTest extends SubCommand {
|
|||||||
uuid = UUIDHandler.getUUID(line);
|
uuid = UUIDHandler.getUUID(line);
|
||||||
}
|
}
|
||||||
if (uuid != null) {
|
if (uuid != null) {
|
||||||
PlayerFunctions.sendMessage(plr, " - &aFound plot: " + plot.id + " : " + line);
|
PlayerFunctions.sendMessage(null, " - &aFound plot: " + plot.id + " : " + line);
|
||||||
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(plr, " - &cInvalid playername: " + plot.id + " : " + line);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -136,7 +131,7 @@ public class DebugClaimTest extends SubCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (plots.size() > 0) {
|
if (plots.size() > 0) {
|
||||||
PlayerFunctions.sendMessage(plr, "&3Sign Block&8->&3PlotSquared&8: &7Updating '" + plots.size() + "' plots!");
|
PlayerFunctions.sendMessage(null, "&3Sign Block&8->&3PlotSquared&8: &7Updating '" + plots.size() + "' plots!");
|
||||||
DBFunc.createPlots(plots);
|
DBFunc.createPlots(plots);
|
||||||
DBFunc.createAllSettingsAndHelpers(plots);
|
DBFunc.createAllSettingsAndHelpers(plots);
|
||||||
|
|
||||||
@ -144,25 +139,24 @@ public class DebugClaimTest extends SubCommand {
|
|||||||
PlotMain.updatePlot(plot);
|
PlotMain.updatePlot(plot);
|
||||||
}
|
}
|
||||||
|
|
||||||
PlayerFunctions.sendMessage(plr, "&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(plr, "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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
public static boolean claimPlot(final Player player, final Plot plot, final boolean teleport) {
|
public static boolean claimPlot(final Player player, final Plot plot, final boolean teleport) {
|
||||||
return claimPlot(player, plot, teleport, "");
|
return claimPlot(player, plot, teleport, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean claimPlot(final Player player, final Plot plot, final boolean teleport, final String schematic) {
|
public static boolean claimPlot(final Player player, final Plot plot, final boolean teleport, @SuppressWarnings("unused") final String schematic) {
|
||||||
final PlayerClaimPlotEvent event = new PlayerClaimPlotEvent(player, plot);
|
final PlayerClaimPlotEvent event = new PlayerClaimPlotEvent(player, plot);
|
||||||
Bukkit.getPluginManager().callEvent(event);
|
Bukkit.getPluginManager().callEvent(event);
|
||||||
if (!event.isCancelled()) {
|
if (!event.isCancelled()) {
|
||||||
|
@ -1,20 +1,32 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Claim.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -32,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;
|
||||||
|
@ -1,21 +1,33 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Claim.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.Plot;
|
import com.intellectualcrafters.plot.Plot;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -33,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;
|
||||||
|
@ -1,27 +1,31 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Delete.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.*;
|
||||||
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import net.milkbowl.vault.economy.Economy;
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Citymonstret on 2014-08-01.
|
|
||||||
*/
|
|
||||||
public class Delete extends SubCommand {
|
public class Delete extends SubCommand {
|
||||||
|
|
||||||
public Delete() {
|
public Delete() {
|
||||||
@ -31,18 +35,16 @@ public class Delete extends SubCommand {
|
|||||||
@Override
|
@Override
|
||||||
public boolean execute(final Player plr, final String... args) {
|
public boolean execute(final Player plr, final String... args) {
|
||||||
if (!PlayerFunctions.isInPlot(plr)) {
|
if (!PlayerFunctions.isInPlot(plr)) {
|
||||||
PlayerFunctions.sendMessage(plr, "You're not in a plot.");
|
return !sendMessage(plr, C.NOT_IN_PLOT);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
final Plot plot = PlayerFunctions.getCurrentPlot(plr);
|
final Plot plot = PlayerFunctions.getCurrentPlot(plr);
|
||||||
if (!PlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(PlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
|
if (!PlayerFunctions.getTopPlot(plr.getWorld(), plot).equals(PlayerFunctions.getBottomPlot(plr.getWorld(), plot))) {
|
||||||
PlayerFunctions.sendMessage(plr, C.UNLINK_REQUIRED);
|
return !sendMessage(plr, C.UNLINK_REQUIRED);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
if ((((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(plr.getUniqueId()))) && !PlotMain.hasPermission(plr, "plots.admin")) {
|
if ((((plot == null) || !plot.hasOwner() || !plot.getOwner().equals(plr.getUniqueId()))) && !PlotMain.hasPermission(plr, "plots.admin")) {
|
||||||
PlayerFunctions.sendMessage(plr, C.NO_PLOT_PERMS);
|
return !sendMessage(plr, C.NO_PLOT_PERMS);
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
assert plot != null;
|
||||||
final PlotWorld pWorld = PlotMain.getWorldSettings(plot.getWorld());
|
final PlotWorld pWorld = PlotMain.getWorldSettings(plot.getWorld());
|
||||||
if (PlotMain.useEconomy && pWorld.USE_ECONOMY) {
|
if (PlotMain.useEconomy && pWorld.USE_ECONOMY) {
|
||||||
final double c = pWorld.SELL_PRICE;
|
final double c = pWorld.SELL_PRICE;
|
||||||
@ -59,8 +61,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 clearing has been denied.");
|
PlayerFunctions.sendMessage(plr, "Plot clearing has been denied.");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -1,28 +1,38 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Denied.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import com.intellectualcrafters.plot.C;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.Plot;
|
import com.intellectualcrafters.plot.Plot;
|
||||||
import com.intellectualcrafters.plot.UUIDHandler;
|
import com.intellectualcrafters.plot.UUIDHandler;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.intellectualcrafters.plot.events.PlayerPlotDeniedEvent;
|
import com.intellectualcrafters.plot.events.PlayerPlotDeniedEvent;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by Citymonstret on 2014-08-03.
|
|
||||||
*/
|
|
||||||
@SuppressWarnings("deprecated")
|
@SuppressWarnings("deprecated")
|
||||||
public class Denied extends SubCommand {
|
public class Denied extends SubCommand {
|
||||||
|
|
||||||
@ -50,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)) {
|
||||||
@ -71,8 +80,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;
|
||||||
}
|
}
|
||||||
@ -85,8 +93,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)) {
|
||||||
@ -116,8 +123,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;
|
||||||
}
|
}
|
||||||
|
@ -1,24 +1,36 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Helpers.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import com.intellectualcrafters.plot.C;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.Plot;
|
import com.intellectualcrafters.plot.Plot;
|
||||||
import com.intellectualcrafters.plot.UUIDHandler;
|
import com.intellectualcrafters.plot.UUIDHandler;
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import com.intellectualcrafters.plot.events.PlayerPlotHelperEvent;
|
import com.intellectualcrafters.plot.events.PlayerPlotHelperEvent;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public class Helpers extends SubCommand {
|
public class Helpers extends SubCommand {
|
||||||
@ -46,8 +58,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)) {
|
||||||
@ -67,15 +78,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)) {
|
||||||
@ -106,8 +115,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;
|
||||||
}
|
}
|
||||||
|
@ -1,19 +1,31 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Home.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import com.intellectualcrafters.plot.C;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.Plot;
|
import com.intellectualcrafters.plot.Plot;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -39,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()) {
|
||||||
@ -69,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;
|
||||||
}
|
}
|
||||||
|
@ -1,28 +1,36 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Clear.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.*;
|
||||||
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotComment;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Citymonstret on 2014-08-01.
|
* Created by Citymonstret on 2014-08-01.
|
||||||
*/
|
*/
|
||||||
@ -48,17 +56,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -67,8 +71,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;
|
||||||
}
|
}
|
||||||
@ -76,8 +79,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;
|
||||||
}
|
}
|
||||||
@ -85,8 +87,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;
|
||||||
}
|
}
|
||||||
@ -94,8 +95,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;
|
||||||
}
|
}
|
||||||
@ -103,8 +103,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;
|
||||||
}
|
}
|
||||||
@ -141,8 +140,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;
|
||||||
}
|
}
|
||||||
@ -153,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");
|
||||||
return;
|
return;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
final List<String> recipients = Arrays.asList(new String[]{"A", "O", "H", "T", "E"});
|
final List<String> recipients = Arrays.asList(new String[]{"A", "O", "H", "T", "E"});
|
||||||
int count = 1;
|
int count = 1;
|
||||||
final StringBuilder message = new StringBuilder();
|
final StringBuilder message = new StringBuilder();
|
||||||
|
@ -1,16 +1,28 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Info.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.*;
|
||||||
import java.util.UUID;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
|
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
@ -18,15 +30,8 @@ import org.bukkit.World;
|
|||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import java.util.ArrayList;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import java.util.UUID;
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.UUIDHandler;
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -48,8 +53,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(player, C.INFO_SYNTAX_CONSOLE);
|
PlayerFunctions.sendMessage(player, C.INFO_SYNTAX_CONSOLE);
|
||||||
return false;
|
return false;
|
||||||
@ -70,12 +74,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;
|
||||||
}
|
}
|
||||||
@ -89,14 +91,12 @@ public class Info extends SubCommand {
|
|||||||
{
|
{
|
||||||
if (plot.helpers == null) {
|
if (plot.helpers == null) {
|
||||||
containsEveryone = false;
|
containsEveryone = false;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
containsEveryone = plot.helpers.contains(DBFunc.everyone);
|
containsEveryone = plot.helpers.contains(DBFunc.everyone);
|
||||||
}
|
}
|
||||||
if (plot.trusted == null) {
|
if (plot.trusted == null) {
|
||||||
trustedEveryone = false;
|
trustedEveryone = false;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
trustedEveryone = plot.trusted.contains(DBFunc.everyone);
|
trustedEveryone = plot.trusted.contains(DBFunc.everyone);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -205,8 +205,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))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,15 +1,26 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Inventory.java >> Generated by: Citymonstret at 2014-08-10 13:57
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
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;
|
||||||
@ -17,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() {
|
||||||
|
@ -1,20 +1,32 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Kick.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import com.intellectualcrafters.plot.C;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.Plot;
|
import com.intellectualcrafters.plot.Plot;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Citymonstret on 2014-08-01.
|
* Created by Citymonstret on 2014-08-01.
|
||||||
|
@ -1,10 +1,23 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = MainCommand.java >> Generated by: Citymonstret at 2014-08-09 01:42
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
@ -87,8 +100,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";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -110,8 +122,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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.equalsIgnoreCase(args[0])) {
|
if (command.cmd.equalsIgnoreCase(args[0]) || command.alias.equalsIgnoreCase(args[0])) {
|
||||||
final String[] arguments = new String[args.length - 1];
|
final String[] arguments = new String[args.length - 1];
|
||||||
@ -119,12 +130,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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -146,7 +155,7 @@ public class MainCommand implements CommandExecutor, TabCompleter {
|
|||||||
public static List<SubCommand> getCommands(final SubCommand.CommandCategory category, final Player player) {
|
public static List<SubCommand> getCommands(final SubCommand.CommandCategory category, final Player player) {
|
||||||
final List<SubCommand> cmds = new ArrayList<>();
|
final List<SubCommand> cmds = new ArrayList<>();
|
||||||
for (final SubCommand c : subCommands) {
|
for (final SubCommand c : subCommands) {
|
||||||
if ((c.category == category) && c.permission.hasPermission(player)) {
|
if ((c.category.equals(category)) && c.permission.hasPermission(player)) {
|
||||||
cmds.add(c);
|
cmds.add(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -224,8 +233,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.startsWith(arg)) {
|
||||||
else if (cmd.alias.startsWith(arg)) {
|
|
||||||
tabOptions.add(cmd.alias);
|
tabOptions.add(cmd.alias);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,31 +1,35 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Merge.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.*;
|
||||||
|
import com.intellectualcrafters.plot.events.PlotMergeEvent;
|
||||||
import net.milkbowl.vault.economy.Economy;
|
import net.milkbowl.vault.economy.Economy;
|
||||||
|
|
||||||
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;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import java.util.ArrayList;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.SetBlockFast;
|
|
||||||
import com.intellectualcrafters.plot.events.PlotMergeEvent;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
|
@ -1,17 +1,37 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import com.intellectualcrafters.plot.C;
|
||||||
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
|
import com.intellectualcrafters.plot.Plot;
|
||||||
|
import com.intellectualcrafters.plot.listeners.PlotPlusListener;
|
||||||
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.C;
|
import java.util.Arrays;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.listeners.PlotPlusListener;
|
|
||||||
|
|
||||||
public class MusicSubcommand extends SubCommand {
|
public class MusicSubcommand extends SubCommand {
|
||||||
public MusicSubcommand() {
|
public MusicSubcommand() {
|
||||||
|
@ -1,14 +1,29 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.*;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotSelection;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Citymonstret on 2014-10-12.
|
* Created by Citymonstret on 2014-10-12.
|
||||||
*/
|
*/
|
||||||
@ -44,8 +59,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;
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,32 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Purge.java >> Generated by: Citymonstret at 2014-08-09 01:42
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import com.intellectualcrafters.plot.C;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
import com.intellectualcrafters.plot.PlotId;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Deprecated
|
* @Deprecated
|
||||||
@ -50,8 +61,7 @@ public class Purge extends SubCommand {
|
|||||||
DBFunc.purge(world, id);
|
DBFunc.purge(world, id);
|
||||||
PlayerFunctions.sendMessage(plr, "&aPurge of '" + args[0] + "' was successful!");
|
PlayerFunctions.sendMessage(plr, "&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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -67,8 +77,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;
|
||||||
}
|
}
|
||||||
|
@ -1,10 +1,30 @@
|
|||||||
package com.intellectualcrafters.plot.commands;
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import com.intellectualcrafters.plot.C;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.Plot;
|
import com.intellectualcrafters.plot.Plot;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Citymonstret on 2014-10-02.
|
* Created by Citymonstret on 2014-10-02.
|
||||||
@ -64,8 +84,7 @@ public class Rate extends SubCommand {
|
|||||||
final boolean success = false;
|
final boolean success = false;
|
||||||
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;
|
||||||
|
@ -1,19 +1,31 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Reload.java >> Generated by: Citymonstret at 2014-08-09 01:42
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import com.intellectualcrafters.plot.C;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
import com.intellectualcrafters.plot.PlotMain;
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
import com.intellectualcrafters.plot.PlotWorld;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Deprecated
|
* @Deprecated
|
||||||
@ -40,8 +52,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;
|
||||||
|
@ -1,26 +1,37 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import com.intellectualcrafters.jnbt.CompoundTag;
|
||||||
|
import com.intellectualcrafters.plot.*;
|
||||||
|
import com.intellectualcrafters.plot.SchematicHandler.DataCollection;
|
||||||
|
import com.intellectualcrafters.plot.SchematicHandler.Dimension;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
|
||||||
import com.intellectualcrafters.jnbt.CompoundTag;
|
import java.util.HashMap;
|
||||||
import com.intellectualcrafters.plot.C;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.SchematicHandler;
|
|
||||||
import com.intellectualcrafters.plot.SchematicHandler.DataCollection;
|
|
||||||
import com.intellectualcrafters.plot.SchematicHandler.Dimension;
|
|
||||||
import com.intellectualcrafters.plot.SetBlockFast;
|
|
||||||
import com.intellectualcrafters.plot.Settings;
|
|
||||||
import com.intellectualcrafters.plot.UUIDHandler;
|
|
||||||
|
|
||||||
public class Schematic extends SubCommand {
|
public class Schematic extends SubCommand {
|
||||||
|
|
||||||
@ -98,8 +109,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;
|
||||||
}
|
}
|
||||||
@ -215,8 +225,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() {
|
||||||
@ -224,8 +233,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(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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -259,8 +267,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];
|
||||||
@ -271,13 +278,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(plr, "&cInvalid world or id. Use &7/plots sch save <world> <id>");
|
PlayerFunctions.sendMessage(plr, "&cInvalid world or id. Use &7/plots sch save <world> <id>");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
PlayerFunctions.sendMessage(plr, "&cInvalid world or id. Use &7/plots sch save <world> <id>");
|
PlayerFunctions.sendMessage(plr, "&cInvalid world or id. Use &7/plots sch save <world> <id>");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -304,8 +309,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() {
|
||||||
@ -313,8 +317,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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,31 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Set.java >> Generated by: Citymonstret at 2014-08-09 01:42
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.*;
|
||||||
import java.util.Arrays;
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import java.util.List;
|
import com.intellectualcrafters.plot.events.PlotFlagAddEvent;
|
||||||
|
import com.intellectualcrafters.plot.events.PlotFlagRemoveEvent;
|
||||||
|
import com.intellectualcrafters.plot.listeners.PlotListener;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
@ -19,22 +33,9 @@ import org.bukkit.Material;
|
|||||||
import org.bukkit.block.Biome;
|
import org.bukkit.block.Biome;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.AbstractFlag;
|
import java.util.ArrayList;
|
||||||
import com.intellectualcrafters.plot.C;
|
import java.util.Arrays;
|
||||||
import com.intellectualcrafters.plot.Flag;
|
import java.util.List;
|
||||||
import com.intellectualcrafters.plot.FlagManager;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotBlock;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotHomePosition;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.StringComparsion;
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
|
||||||
import com.intellectualcrafters.plot.events.PlotFlagAddEvent;
|
|
||||||
import com.intellectualcrafters.plot.events.PlotFlagRemoveEvent;
|
|
||||||
import com.intellectualcrafters.plot.listeners.PlotListener;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
@ -92,8 +93,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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -105,8 +105,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());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -174,8 +173,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;
|
||||||
}
|
}
|
||||||
@ -265,8 +263,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 (NullPointerException e) {
|
||||||
catch (NullPointerException e) {
|
|
||||||
material = null;
|
material = null;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
@ -286,8 +283,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;
|
||||||
}
|
}
|
||||||
@ -343,12 +339,10 @@ 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 {
|
|
||||||
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;
|
||||||
}
|
}
|
||||||
@ -392,8 +386,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;
|
||||||
}
|
}
|
||||||
@ -405,8 +398,7 @@ public class Set extends SubCommand {
|
|||||||
AbstractFlag af = new AbstractFlag("");
|
AbstractFlag af = new AbstractFlag("");
|
||||||
try {
|
try {
|
||||||
af = new AbstractFlag(args[0].toLowerCase());
|
af = new AbstractFlag(args[0].toLowerCase());
|
||||||
}
|
} catch (final Exception e) {
|
||||||
catch (final Exception e) {
|
|
||||||
}
|
}
|
||||||
if (FlagManager.getFlags().contains(af)) {
|
if (FlagManager.getFlags().contains(af)) {
|
||||||
final StringBuilder a = new StringBuilder();
|
final StringBuilder a = new StringBuilder();
|
||||||
|
@ -1,23 +1,31 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = SetOwner.java >> Generated by: Citymonstret at 2014-08-09 01:42
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.util.UUID;
|
import com.intellectualcrafters.plot.*;
|
||||||
|
import com.intellectualcrafters.plot.database.DBFunc;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import java.util.UUID;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.UUIDHandler;
|
|
||||||
import com.intellectualcrafters.plot.database.DBFunc;
|
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
public class SetOwner extends SubCommand {
|
public class SetOwner extends SubCommand {
|
||||||
|
@ -1,10 +1,28 @@
|
|||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
|
// /
|
||||||
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
|
// it under the terms of the GNU General Public License as published by /
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import java.io.IOException;
|
import com.intellectualcrafters.plot.*;
|
||||||
import java.util.ArrayList;
|
import com.intellectualcrafters.plot.generator.DefaultPlotWorld;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
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;
|
||||||
@ -14,13 +32,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.C;
|
import java.io.IOException;
|
||||||
import com.intellectualcrafters.plot.ConfigurationNode;
|
import java.util.ArrayList;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import java.util.HashMap;
|
||||||
import com.intellectualcrafters.plot.PlotGenerator;
|
import java.util.Map;
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotWorld;
|
|
||||||
import com.intellectualcrafters.plot.generator.DefaultPlotWorld;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Citymonstret on 2014-09-26.
|
* Created by Citymonstret on 2014-09-26.
|
||||||
@ -61,8 +76,7 @@ public class Setup extends SubCommand implements Listener {
|
|||||||
|
|
||||||
if (plr == null) {
|
if (plr == null) {
|
||||||
plrname = "";
|
plrname = "";
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
plrname = plr.getName();
|
plrname = plr.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,20 +90,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) {
|
||||||
@ -117,8 +128,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.");
|
||||||
@ -130,8 +140,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;
|
||||||
}
|
}
|
||||||
@ -148,15 +157,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;
|
||||||
@ -200,8 +207,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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,17 +1,29 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = SubCommand.java >> Generated by: Citymonstret at 2014-08-09 01:42
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
import com.intellectualcrafters.plot.C;
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
import com.intellectualcrafters.plot.PlayerFunctions;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SubCommand class
|
* SubCommand class
|
||||||
@ -45,18 +57,12 @@ public abstract class SubCommand {
|
|||||||
public CommandCategory category;
|
public CommandCategory category;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @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 closests to what you want.
|
||||||
* @param usage
|
|
||||||
* Usage description: /plot command {args...}
|
|
||||||
* @param alias
|
|
||||||
* Command alias
|
|
||||||
* @param category
|
|
||||||
* CommandCategory. Pick whichever closests 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;
|
||||||
@ -69,14 +75,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();
|
||||||
@ -91,10 +93,8 @@ 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);
|
||||||
@ -110,8 +110,9 @@ public abstract class SubCommand {
|
|||||||
* @param c
|
* @param c
|
||||||
* @param args
|
* @param args
|
||||||
*/
|
*/
|
||||||
public void sendMessage(final Player plr, final C c, final String... args) {
|
public boolean sendMessage(final Player plr, final C c, final String... args) {
|
||||||
PlayerFunctions.sendMessage(plr, c, args);
|
PlayerFunctions.sendMessage(plr, c, args);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum CommandCategory {
|
public enum CommandCategory {
|
||||||
|
@ -1,25 +1,30 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = Clear.java >> Generated by: Citymonstret at 2014-08-09 01:41
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.*;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
import com.intellectualcrafters.plot.PlotSelection;
|
|
||||||
import com.intellectualcrafters.plot.SetBlockFast;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by Citymonstret on 2014-08-01.
|
* Created by Citymonstret on 2014-08-01.
|
||||||
*/
|
*/
|
||||||
@ -59,8 +64,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;
|
||||||
|
@ -1,25 +1,32 @@
|
|||||||
/*
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
* Copyright (c) IntellectualCrafters - 2014. You are not allowed to distribute
|
// PlotSquared - A plot manager and world generator for the Bukkit API /
|
||||||
* and/or monetize any of our intellectual property. IntellectualCrafters is not
|
// Copyright (c) 2014 IntellectualSites/IntellectualCrafters /
|
||||||
* affiliated with Mojang AB. Minecraft is a trademark of Mojang AB.
|
// /
|
||||||
*
|
// This program is free software; you can redistribute it and/or modify /
|
||||||
* >> File = TP.java >> Generated by: Citymonstret at 2014-08-09 01:42
|
// it under the terms of the GNU General Public License as published by /
|
||||||
*/
|
// the Free Software Foundation; either version 3 of the License, or /
|
||||||
|
// (at your option) any later version. /
|
||||||
|
// /
|
||||||
|
// This program is distributed in the hope that it will be useful, /
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of /
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the /
|
||||||
|
// GNU General Public License for more details. /
|
||||||
|
// /
|
||||||
|
// You should have received a copy of the GNU General Public License /
|
||||||
|
// along with this program; if not, write to the Free Software Foundation, /
|
||||||
|
// Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA /
|
||||||
|
// /
|
||||||
|
// You can contact us via: support@intellectualsites.com /
|
||||||
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
package com.intellectualcrafters.plot.commands;
|
package com.intellectualcrafters.plot.commands;
|
||||||
|
|
||||||
|
import com.intellectualcrafters.plot.*;
|
||||||
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;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import com.intellectualcrafters.plot.C;
|
|
||||||
import com.intellectualcrafters.plot.PlayerFunctions;
|
|
||||||
import com.intellectualcrafters.plot.Plot;
|
|
||||||
import com.intellectualcrafters.plot.PlotHelper;
|
|
||||||
import com.intellectualcrafters.plot.PlotId;
|
|
||||||
import com.intellectualcrafters.plot.PlotMain;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Citymonstret
|
* @author Citymonstret
|
||||||
*/
|
*/
|
||||||
@ -57,8 +64,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;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user