Merge branch 'master' into breaking

# Conflicts:
#	Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/events/PlotRateEvent.java
#	Bukkit/src/main/java/com/plotsquared/bukkit/util/BukkitEventUtil.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/PlotSquared.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Add.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Auto.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Delete.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Kick.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Load.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Music.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Owner.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Rate.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Reload.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/SchematicCmd.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Trust.java
#	Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/GameModeFlag.java
#	Core/src/main/java/com/intellectualcrafters/plot/commands/Clear.java
#	Core/src/main/java/com/intellectualcrafters/plot/commands/PluginCmd.java
#	Core/src/main/java/com/intellectualcrafters/plot/commands/Relight.java
#	Core/src/main/java/com/intellectualcrafters/plot/commands/SetHome.java
#	Core/src/main/java/com/intellectualcrafters/plot/config/C.java
#	Core/src/main/java/com/intellectualcrafters/plot/config/Configuration.java
#	Core/src/main/java/com/intellectualcrafters/plot/config/Settings.java
#	Core/src/test/java/com/github/intellectualsites/plotsquared/plot/util/EventUtilTest.java
#	Nukkit/src/main/java/com/plotsquared/nukkit/util/NukkitEventUtil.java
#	README.md
#	Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/events/PlotRateEvent.java
#	Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeSchematicHandler.java
#	Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/block/SpongeLocalQueue.java
#	Sponge/src/main/java/com/plotsquared/sponge/util/SpongeEventUtil.java
This commit is contained in:
dordsor21
2018-11-14 14:44:07 +00:00
120 changed files with 1644 additions and 1216 deletions

View File

@ -22,7 +22,7 @@ import java.util.UUID;
/**
* PlotSquared API.
* <p>
*
* <p>Useful classes:
* <ul>
* <li>{@link PlotPlayer}</li>
@ -34,9 +34,7 @@ import java.util.UUID;
*
* @version 3.3.3
*/
@SuppressWarnings({"unused", "WeakerAccess"})
@NoArgsConstructor
public class PlotAPI {
@SuppressWarnings({"unused", "WeakerAccess"}) @NoArgsConstructor public class PlotAPI {
/**
* Get all plots.
@ -201,7 +199,7 @@ public class PlotAPI {
/**
* Get the PlotPlayer for a UUID.
* <p>
*
* <p><i>Please note that PlotSquared can be configured to provide
* different UUIDs than bukkit</i>
*

View File

@ -166,8 +166,8 @@ public abstract class Command {
options.put("usage", declaration.usage());
options.put("confirmation", declaration.confirmation());
boolean set = false;
YamlConfiguration commands = PlotSquared.get() == null ? new YamlConfiguration() : PlotSquared
.get().commands;
YamlConfiguration commands =
PlotSquared.get() == null ? new YamlConfiguration() : PlotSquared.get().commands;
for (Map.Entry<String, Object> entry : options.entrySet()) {
String key = this.getFullId() + "." + entry.getKey();
if (!commands.contains(key)) {

View File

@ -25,7 +25,7 @@ class ConfigurationOptions {
/**
* Gets the char that will be used to separate {@link
* ConfigurationSection}s.
* <p>
*
* <p>This value does not affect how the {@link Configuration} is stored,
* only in how you access the data. The default value is '.'.
*
@ -38,7 +38,7 @@ class ConfigurationOptions {
/**
* Sets the char that will be used to separate {@link
* ConfigurationSection}s.
* <p>
*
* <p>This value does not affect how the {@link Configuration} is stored,
* only in how you access the data. The default value is '.'.
*
@ -53,7 +53,7 @@ class ConfigurationOptions {
/**
* Checks if the {@link Configuration} should copy values from its default
* {@link Configuration} directly.
* <p>
*
* <p>If this is true, all values in the default Configuration will be
* directly copied, making it impossible to distinguish between values
* that were set and values that are provided by default. As a result,
@ -71,7 +71,7 @@ class ConfigurationOptions {
/**
* Sets if the {@link Configuration} should copy values from its default
* {@link Configuration} directly.
* <p>
*
* <p>If this is true, all values in the default Configuration will be
* directly copied, making it impossible to distinguish between values
* that were set and values that are provided by default. As a result,

View File

@ -11,11 +11,11 @@ public interface ConfigurationSection {
/**
* Gets a set containing all keys in this section.
* <p>
*
* <p>If deep is set to true, then this will contain all the keys within any
* child {@link ConfigurationSection}s (and their children, etc). These
* will be in a valid path notation for you to use.
* <p>
*
* <p>If deep is set to false, then this will contain only the keys of any
* direct children, and not their own children.
*
@ -27,11 +27,11 @@ public interface ConfigurationSection {
/**
* Gets a Map containing all keys and their values for this section.
* <p>
*
* <p>If deep is set to true, then this will contain all the keys and values
* within any child {@link ConfigurationSection}s (and their children,
* etc). These keys will be in a valid path notation for you to use.
* <p>
*
* <p>If deep is set to false, then this will contain only the keys and
* values of any direct children, and not their own children.
*
@ -43,7 +43,7 @@ public interface ConfigurationSection {
/**
* Checks if this {@link ConfigurationSection} contains the given path.
* <p>
*
* <p>If the value for the requested path does not exist but a default value
* has been specified, this will return true.
*
@ -57,7 +57,7 @@ public interface ConfigurationSection {
/**
* Checks if this {@link ConfigurationSection} has a value set for the
* given path.
* <p>
*
* <p>If the value for the requested path does not exist but a default value
* has been specified, this will still return false.
*
@ -71,14 +71,14 @@ public interface ConfigurationSection {
/**
* Gets the path of this {@link ConfigurationSection} from its root {@link
* Configuration}.
* <p>
*
* <p>For any {@link Configuration} themselves, this will return an empty
* string.
* <p>
*
* <p>If the section is no longer contained within its root for any reason,
* such as being replaced with a different value,
* this may return {@code null}.
* <p>
*
* <p>To retrieve the single name of this section, that is, the final part
* of the path returned by this method, you may use {@link #getName()}.
*
@ -89,7 +89,7 @@ public interface ConfigurationSection {
/**
* Gets the name of this individual {@link ConfigurationSection}, in the
* path.
* <p>
*
* <p>This will always be the final part of {@link #getCurrentPath()}, unless
* the section is orphaned.
*
@ -100,10 +100,10 @@ public interface ConfigurationSection {
/**
* Gets the root {@link Configuration} that contains this {@link
* ConfigurationSection}
* <p>
*
* <p>For any {@link Configuration} themselves, this will return its own
* object.
* <p>
*
* <p>If the section is no longer contained within its root for any reason,
* such as being replaced with a different value,
* this may return {@code null}.
@ -115,10 +115,10 @@ public interface ConfigurationSection {
/**
* Gets the parent {@link ConfigurationSection} that directly contains
* this {@link ConfigurationSection}.
* <p>
*
* <p>For any {@link Configuration} themselves, this will return
* {@code null}.
* <p>
*
* <p>If the section is no longer contained within its parent for any
* reason, such as being replaced with a different value, this may
* return {@code null}.
@ -129,7 +129,7 @@ public interface ConfigurationSection {
/**
* Gets the requested Object by path.
* <p>
*
* <p>If the Object does not exist but a default value has been specified,
* this will return the default value. If the Object does not exist and no
* default value was specified, this will return {@code null}.
@ -142,7 +142,7 @@ public interface ConfigurationSection {
/**
* Gets the requested Object by path, returning a default value if not
* found.
* <p>
*
* <p>If the Object does not exist then the specified default value will
* returned regardless of if a default has been identified in the root
* {@link Configuration}.
@ -155,10 +155,10 @@ public interface ConfigurationSection {
/**
* Sets the specified path to the given value.
* <p>
*
* <p>If value is {@code null}, the entry will be removed. Any
* existing entry will be replaced, regardless of what the new value is.
* <p>
*
* <p>Some implementations may have limitations on what you may store. See
* their individual javadoc for details. No implementations should allow
* you to store {@link Configuration}s or {@link ConfigurationSection}s,
@ -171,7 +171,7 @@ public interface ConfigurationSection {
/**
* Creates an empty {@link ConfigurationSection} at the specified path.
* <p>
*
* <p>Any value that was previously set at this path will be overwritten. If
* the previous value was itself a {@link ConfigurationSection}, it will
* be orphaned.
@ -184,7 +184,7 @@ public interface ConfigurationSection {
/**
* Creates a {@link ConfigurationSection} at the specified path, with
* specified values.
* <p>
*
* <p>Any value that was previously set at this path will be overwritten. If
* the previous value was itself a {@link ConfigurationSection}, it will
* be orphaned.
@ -199,7 +199,7 @@ public interface ConfigurationSection {
/**
* Gets the requested String by path.
* <p>
*
* <p>If the String does not exist but a default value has been specified,
* this will return the default value. If the String does not exist and no
* default value was specified, this will return {@code null}.
@ -212,7 +212,7 @@ public interface ConfigurationSection {
/**
* Gets the requested String by path, returning a default value if not
* found.
* <p>
*
* <p>If the String does not exist then the specified default value will
* returned regardless of if a default has been identified in the root
* {@link Configuration}.
@ -226,7 +226,7 @@ public interface ConfigurationSection {
/**
* Checks if the specified path is a String.
* <p>
*
* <p>If the path exists but is not a String, this will return false. If
* the path does not exist, this will return false. If the path does not
* exist but a default value has been specified, this will check if that
@ -239,7 +239,7 @@ public interface ConfigurationSection {
/**
* Gets the requested int by path.
* <p>
*
* <p>If the int does not exist but a default value has been specified, this
* will return the default value. If the int does not exist and no default
* value was specified, this will return 0.
@ -251,7 +251,7 @@ public interface ConfigurationSection {
/**
* Gets the requested int by path, returning a default value if not found.
* <p>
*
* <p>If the int does not exist then the specified default value will
* returned regardless of if a default has been identified in the root
* {@link Configuration}.
@ -265,7 +265,7 @@ public interface ConfigurationSection {
/**
* Checks if the specified path is an int.
* <p>
*
* <p>If the path exists but is not a int, this will return false. If the
* path does not exist, this will return false. If the path does not exist
* but a default value has been specified, this will check if that default
@ -278,7 +278,7 @@ public interface ConfigurationSection {
/**
* Gets the requested boolean by path.
* <p>
*
* <p>If the boolean does not exist but a default value has been specified,
* this will return the default value. If the boolean does not exist and
* no default value was specified, this will return false.
@ -291,7 +291,7 @@ public interface ConfigurationSection {
/**
* Gets the requested boolean by path, returning a default value if not
* found.
* <p>
*
* <p>If the boolean does not exist then the specified default value will
* returned regardless of if a default has been identified in the root
* {@link Configuration}.
@ -305,7 +305,7 @@ public interface ConfigurationSection {
/**
* Checks if the specified path is a boolean.
* <p>
*
* <p>If the path exists but is not a boolean, this will return false. If the
* path does not exist, this will return false. If the path does not exist
* but a default value has been specified, this will check if that default
@ -318,7 +318,7 @@ public interface ConfigurationSection {
/**
* Gets the requested double by path.
* <p>
*
* <p>If the double does not exist but a default value has been specified,
* this will return the default value. If the double does not exist and no
* default value was specified, this will return 0.
@ -331,7 +331,7 @@ public interface ConfigurationSection {
/**
* Gets the requested double by path, returning a default value if not
* found.
* <p>
*
* <p>If the double does not exist then the specified default value will
* returned regardless of if a default has been identified in the root
* {@link Configuration}.
@ -345,7 +345,7 @@ public interface ConfigurationSection {
/**
* Checks if the specified path is a double.
* <p>
*
* <p>If the path exists but is not a double, this will return false. If the
* path does not exist, this will return false. If the path does not exist
* but a default value has been specified, this will check if that default
@ -358,7 +358,7 @@ public interface ConfigurationSection {
/**
* Gets the requested long by path.
* <p>
*
* <p>If the long does not exist but a default value has been specified, this
* will return the default value. If the long does not exist and no
* default value was specified, this will return 0.
@ -371,7 +371,7 @@ public interface ConfigurationSection {
/**
* Gets the requested long by path, returning a default value if not
* found.
* <p>
*
* <p>If the long does not exist then the specified default value will
* returned regardless of if a default has been identified in the root
* {@link Configuration}.
@ -385,7 +385,7 @@ public interface ConfigurationSection {
/**
* Checks if the specified path is a long.
* <p>
*
* <p>If the path exists but is not a long, this will return false. If the
* path does not exist, this will return false. If the path does not exist
* but a default value has been specified, this will check if that default
@ -400,7 +400,7 @@ public interface ConfigurationSection {
/**
* Gets the requested List by path.
* <p>
*
* <p>If the List does not exist but a default value has been specified, this
* will return the default value. If the List does not exist and no
* default value was specified, this will return null.
@ -413,7 +413,7 @@ public interface ConfigurationSection {
/**
* Gets the requested List by path, returning a default value if not
* found.
* <p>
*
* <p>If the List does not exist then the specified default value will
* returned regardless of if a default has been identified in the root
* {@link Configuration}.
@ -427,7 +427,7 @@ public interface ConfigurationSection {
/**
* Checks if the specified path is a List.
* <p>
*
* <p>If the path exists but is not a List, this will return false. If the
* path does not exist, this will return false. If the path does not exist
* but a default value has been specified, this will check if that default
@ -440,11 +440,11 @@ public interface ConfigurationSection {
/**
* Gets the requested List of String by path.
* <p>
*
* <p>If the List does not exist but a default value has been specified,
* this will return the default value. If the List does not exist and no
* default value was specified, this will return an empty List.
* <p>
*
* <p>This method will attempt to cast any values into a String if possible,
* but may miss any values out if they are not compatible.
*
@ -455,11 +455,11 @@ public interface ConfigurationSection {
/**
* Gets the requested List of Integer by path.
* <p>
*
* <p>If the List does not exist but a default value has been specified,
* this will return the default value. If the List does not exist and no
* default value was specified, this will return an empty List.
* <p>
*
* <p>This method will attempt to cast any values into a Integer if
* possible, but may miss any values out if they are not compatible.
*
@ -470,11 +470,11 @@ public interface ConfigurationSection {
/**
* Gets the requested List of Boolean by path.
* <p>
*
* <p>If the List does not exist but a default value has been specified,
* this will return the default value. If the List does not exist and no
* default value was specified, this will return an empty List.
* <p>
*
* <p>This method will attempt to cast any values into a Boolean if
* possible, but may miss any values out if they are not compatible.
*
@ -485,11 +485,11 @@ public interface ConfigurationSection {
/**
* Gets the requested List of Double by path.
* <p>
*
* <p>If the List does not exist but a default value has been specified,
* this will return the default value. If the List does not exist and no
* default value was specified, this will return an empty List.
* <p>
*
* <p>This method will attempt to cast any values into a Double if possible,
* but may miss any values out if they are not compatible.
*
@ -500,11 +500,11 @@ public interface ConfigurationSection {
/**
* Gets the requested List of Float by path.
* <p>
*
* <p>If the List does not exist but a default value has been specified,
* this will return the default value. If the List does not exist and no
* default value was specified, this will return an empty List.
* <p>
*
* <p>This method will attempt to cast any values into a Float if possible,
* but may miss any values out if they are not compatible.
*
@ -515,11 +515,11 @@ public interface ConfigurationSection {
/**
* Gets the requested List of Long by path.
* <p>
*
* <p>If the List does not exist but a default value has been specified,
* this will return the default value. If the List does not exist and no
* default value was specified, this will return an empty List.
* <p>
*
* <p>This method will attempt to cast any values into a Long if possible,
* but may miss any values out if they are not compatible.
*
@ -530,11 +530,11 @@ public interface ConfigurationSection {
/**
* Gets the requested List of Byte by path.
* <p>
*
* <p>If the List does not exist but a default value has been specified,
* this will return the default value. If the List does not exist and no
* default value was specified, this will return an empty List.
* <p>
*
* <p>This method will attempt to cast any values into a Byte if possible,
* but may miss any values out if they are not compatible.
*
@ -545,11 +545,11 @@ public interface ConfigurationSection {
/**
* Gets the requested List of Character by path.
* <p>
*
* <p>If the List does not exist but a default value has been specified,
* this will return the default value. If the List does not exist and no
* default value was specified, this will return an empty List.
* <p>
*
* <p>This method will attempt to cast any values into a Character if
* possible, but may miss any values out if they are not compatible.
*
@ -560,11 +560,11 @@ public interface ConfigurationSection {
/**
* Gets the requested List of Short by path.
* <p>
*
* <p>If the List does not exist but a default value has been specified,
* this will return the default value. If the List does not exist and no
* default value was specified, this will return an empty List.
* <p>
*
* <p>This method will attempt to cast any values into a Short if
* possible, but may miss any values out if they are not compatible.
*
@ -575,7 +575,7 @@ public interface ConfigurationSection {
/**
* Gets the requested List of Maps by path.
* <p>
*
* <p>If the List does not exist but a default value has been specified,
* this will return the default value. If the List does not exist and no
* default value was specified, this will return an empty List.
@ -589,7 +589,7 @@ public interface ConfigurationSection {
/**
* Gets the requested ConfigurationSection by path.
* <p>
*
* <p>If the ConfigurationSection does not exist but a default value has
* been specified, this will return the default value. If the
* ConfigurationSection does not exist and no default value was specified,
@ -602,7 +602,7 @@ public interface ConfigurationSection {
/**
* Checks if the specified path is a ConfigurationSection.
* <p>
*
* <p>If the path exists but is not a ConfigurationSection, this will return
* false. If the path does not exist, this will return false. If the path
* does not exist but a default value has been specified, this will check
@ -617,7 +617,7 @@ public interface ConfigurationSection {
/**
* Gets the equivalent {@link ConfigurationSection} from the default
* {@link Configuration} defined in {@link #getRoot()}.
* <p>
*
* <p>If the root contains no defaults, or the defaults doesn't contain a
* value for this path, or the value at this path is not a {@link
* ConfigurationSection} then this will return {@code null}.
@ -628,14 +628,14 @@ public interface ConfigurationSection {
/**
* Sets the default value in the root at the given path as provided.
* <p>
*
* <p>If no source {@link Configuration} was provided as a default
* collection, then a new {@link MemoryConfiguration} will be created to
* hold the new default value.
* <p>
*
* <p>If value is {@code null}, the value will be removed from the
* default Configuration source.
* <p>
*
* <p>If the value as returned by {@link #getDefaultSection()} is
* {@code null}, then this will create a new section at the path,
* replacing anything that may have existed there previously.

View File

@ -16,7 +16,7 @@ public class MemorySection implements ConfigurationSection {
/**
* Creates an empty MemorySection for use as a root {@link Configuration}
* section.
* <p>
*
* <p>Note that calling this without being yourself a {@link Configuration}
* will throw an exception!
*
@ -113,7 +113,7 @@ public class MemorySection implements ConfigurationSection {
/**
* Creates a full path to the given {@link ConfigurationSection} from its
* root {@link Configuration}.
* <p>
*
* <p>You may use this method for any given {@link ConfigurationSection}, not
* only {@link MemorySection}.
*
@ -128,7 +128,7 @@ public class MemorySection implements ConfigurationSection {
/**
* Creates a relative path to the given {@link ConfigurationSection} from
* the given relative section.
* <p>
*
* <p>You may use this method for any given {@link ConfigurationSection}, not
* only {@link MemorySection}.
*

View File

@ -31,11 +31,11 @@ public abstract class FileConfiguration extends MemoryConfiguration {
/**
* Saves this {@link FileConfiguration} to the specified location.
* <p>
*
* <p>If the file does not exist, it will be created. If already exists, it
* will be overwritten. If it cannot be overwritten or created, an
* exception will be thrown.
* <p>
*
* <p>This method will save using the system default encoding, or possibly
* using UTF8.
*
@ -66,11 +66,11 @@ public abstract class FileConfiguration extends MemoryConfiguration {
/**
* Loads this {@link FileConfiguration} from the specified location.
* <p>
*
* <p>All the values contained within this configuration will be removed,
* leaving only settings and defaults, and the new values will be loaded
* from the given file.
* <p>
*
* <p>If the file cannot be loaded for any reason, an exception will be
* thrown.
*
@ -91,7 +91,7 @@ public abstract class FileConfiguration extends MemoryConfiguration {
/**
* Loads this {@link FileConfiguration} from the specified reader.
* <p>
*
* <p>All the values contained within this configuration will be removed,
* leaving only settings and defaults, and the new values will be loaded
* from the given stream.
@ -122,11 +122,11 @@ public abstract class FileConfiguration extends MemoryConfiguration {
/**
* Loads this {@link FileConfiguration} from the specified string, as
* opposed to from file.
* <p>
*
* <p>All the values contained within this configuration will be removed,
* leaving only settings and defaults, and the new values will be loaded
* from the given string.
* <p>
*
* <p>If the string is invalid in any way, an exception will be thrown.
*
* @param contents Contents of a Configuration to load.
@ -138,7 +138,7 @@ public abstract class FileConfiguration extends MemoryConfiguration {
/**
* Compiles the header for this {@link FileConfiguration} and returns the
* result.
* <p>
*
* <p>This will use the header from {@link #options()} -> {@link
* FileConfigurationOptions#header()}, respecting the rules of {@link
* FileConfigurationOptions#copyHeader()} if set.

View File

@ -32,13 +32,13 @@ public class FileConfigurationOptions extends MemoryConfigurationOptions {
/**
* Gets the header that will be applied to the top of the saved output.
* <p>
*
* <p>This header will be commented out and applied directly at the top of
* the generated output of the {@link FileConfiguration}. It is not
* required to include a newline at the end of the header as it will
* automatically be applied, but you may include one if you wish for extra
* spacing.
* <p>
*
* <p>{@code null} is a valid value which will indicate that no header]
* is to be applied. The default value is {@code null}.
*
@ -50,13 +50,13 @@ public class FileConfigurationOptions extends MemoryConfigurationOptions {
/**
* Sets the header that will be applied to the top of the saved output.
* <p>
*
* <p>This header will be commented out and applied directly at the top of
* the generated output of the {@link FileConfiguration}. It is not
* required to include a newline at the end of the header as it will
* automatically be applied, but you may include one if you wish for extra
* spacing.
* <p>
*
* <p>{@code null} is a valid value which will indicate that no header
* is to be applied.
*
@ -70,17 +70,17 @@ public class FileConfigurationOptions extends MemoryConfigurationOptions {
/**
* Gets whether or not the header should be copied from a default source.
* <p>
*
* <p>If this is true, if a default {@link FileConfiguration} is passed to
* {@link FileConfiguration#setDefaults(Configuration)}
* then upon saving it will use the header from that config, instead of
* the one provided here.
* <p>
*
* <p>If no default is set on the configuration, or the default is not of
* type FileConfiguration, or that config has no header ({@link #header()}
* returns null) then the header specified in this configuration will be
* used.
* <p>
*
* <p>Defaults to true.
*
* @return Whether or not to copy the header
@ -91,17 +91,17 @@ public class FileConfigurationOptions extends MemoryConfigurationOptions {
/**
* Sets whether or not the header should be copied from a default source.
* <p>
*
* <p>If this is true, if a default {@link FileConfiguration} is passed to
* {@link FileConfiguration#setDefaults(Configuration)}
* then upon saving it will use the header from that config, instead of
* the one provided here.
* <p>
*
* <p>If no default is set on the configuration, or the default is not of
* type FileConfiguration, or that config has no header ({@link #header()}
* returns null) then the header specified in this configuration will be
* used.
* <p>
*
* <p>Defaults to true.
*
* @param value Whether or not to copy the header

View File

@ -28,11 +28,11 @@ public class YamlConfiguration extends FileConfiguration {
/**
* Creates a new {@link YamlConfiguration}, loading from the given file.
* <p>
*
* <p>Any errors loading the Configuration will be logged and then ignored.
* If the specified input is not a valid config, a blank config will be
* returned.
* <p>
*
* <p>The encoding used may follow the system dependent default.
*
* @param file Input file

View File

@ -37,7 +37,7 @@ public class YamlConfigurationOptions extends FileConfigurationOptions {
/**
* Gets how much spaces should be used to indent each line.
* <p>
*
* <p>The minimum value this may be is 2, and the maximum is 9.
*
* @return How much to indent by
@ -48,7 +48,7 @@ public class YamlConfigurationOptions extends FileConfigurationOptions {
/**
* Sets how much spaces should be used to indent each line.
* <p>
*
* <p>The minimum value this may be is 2, and the maximum is 9.
*
* @param value New indent

View File

@ -24,7 +24,7 @@ public interface ConfigurationSerializable {
/**
* Creates a Map representation of this class.
* <p>
*
* <p>This class must provide a method to restore this class, as defined in
* the {@link ConfigurationSerializable} interface javadoc.
*

View File

@ -43,8 +43,8 @@ public class HTTP {
/**
* Convert a JSONObject into an HTTP header. A request header must contain
* <p>
* <p>
*
*
* <pre>
* {
* Method: "POST" (for example),
@ -54,8 +54,8 @@ public class HTTP {
* </pre>
* <p>
* A response header must contain
* <p>
* <p>
*
*
* <pre>
* {
* "HTTP-Version": "HTTP/1.1" (for example),

View File

@ -14,16 +14,16 @@ import java.util.Map;
* accessing the values by index, and {@code put} methods for adding or replacing values. The values can be any of
* these types: {@code Boolean}, {@code JSONArray}, {@code JSONObject}, {@code Number},
* {@code String}, or the {@code JSONObject.NULL object}.
* <p>
*
* <p>The constructor can convert a JSON text into a Java object. The {@code toString} method converts to JSON text.
* <p>
*
* <p>A {@code get} method returns a value if one can be found, and throws an exception if one cannot be found. An
* {@code opt} method returns a default value instead of throwing an exception, and so is useful for obtaining
* optional values.
* <p>
*
* <p>The generic {@code get()} and {@code opt()} methods return an object which you can cast or query for type.
* There are also typed {@code get} and {@code opt} methods that do type checking and type coercion for you.
* <p>
*
* <p>The texts produced by the {@code toString} methods strictly conform to JSON syntax rules. The constructors are
* more forgiving in the texts they will accept: <ul> <li>An extra {@code ,}&nbsp;<small>(comma)</small> may appear
* just before the closing bracket.</li> <li>The {@code null} value will be inserted when there is {@code ,}

View File

@ -28,8 +28,8 @@ import java.util.Map.Entry;
* as null.
* <p>
* The <code>put</code> methods add or replace values in an object. For example,
* <p>
* <p>
*
*
* <pre>
* myString = new JSONObject().put(&quot;JSON&quot;, &quot;Hello, World!&quot;).toString();
* </pre>

View File

@ -11,16 +11,16 @@ import java.io.StringWriter;
* method for adding keys before values in objects. There are <code>array</code> and <code>endArray</code> methods that
* make and bound array values, and <code>object</code> and <code>endObject</code> methods which make and bound object
* values. All of these methods return the JSONWriter instance, permitting cascade style. For example,
* <p>
* <p>
*
*
* <pre>
* myString = new JSONStringer().object().key(&quot;JSON&quot;).value(&quot;Hello,
* World!&quot;).endObject().toString();
* </pre>
* <p>
* which produces the string
* <p>
* <p>
*
*
* <pre>
* {"JSON":"Hello, World!"}
* </pre>

View File

@ -12,15 +12,15 @@ import java.io.Writer;
* method for adding keys before values in objects. There are <code>array</code> and <code>endArray</code> methods that
* make and bound array values, and <code>object</code> and <code>endObject</code> methods which make and bound object
* values. All of these methods return the JSONWriter instance, permitting a cascade style. For example,
* <p>
* <p>
*
*
* <pre>
* new JSONWriter(myWriter).object().key(&quot;JSON&quot;).value(&quot;Hello, World!&quot;).endObject();
* </pre>
* <p>
* which writes
* <p>
* <p>
*
*
* <pre>
* {"JSON":"Hello, World!"}
* </pre>

View File

@ -44,7 +44,7 @@ public interface IPlotMain extends ILogger {
/**
* Disable the implementation.
* <p>
*
* <ul>
* <li>If a full disable isn't feasibly, just disable what it can.
* </ul>

View File

@ -75,8 +75,7 @@ import java.util.zip.ZipInputStream;
@Getter private Updater updater;
private PlotVersion version;
// Files and configuration
@Getter
private File jarFile = null; // This file
@Getter private File jarFile = null; // This file
private File storageFile;
@Getter private PlotAreaManager plotAreaManager;
@ -266,10 +265,12 @@ import java.util.zip.ZipInputStream;
copyFile("automerge.js", Settings.Paths.SCRIPTS);
copyFile("town.template", Settings.Paths.TEMPLATES);
copyFile("skyblock.template", Settings.Paths.TEMPLATES);
copyFile("german.yml", Settings.Paths.TRANSLATIONS);
copyFile("s_chinese_unescaped.yml", Settings.Paths.TRANSLATIONS);
copyFile("s_chinese.yml", Settings.Paths.TRANSLATIONS);
copyFile("italian.yml", Settings.Paths.TRANSLATIONS);
copyFile("bridge.template", Settings.Paths.TEMPLATES);
copyFile("de-DE.yml", Settings.Paths.TRANSLATIONS);
copyFile("es-ES.yml", Settings.Paths.TRANSLATIONS);
copyFile("zh-CN.yml", Settings.Paths.TRANSLATIONS);
copyFile("it-IT.yml", Settings.Paths.TRANSLATIONS);
copyFile("ko-KR.yml", Settings.Paths.TRANSLATIONS);
showDebug();
} catch (Throwable e) {
e.printStackTrace();
@ -778,8 +779,12 @@ import java.util.zip.ZipInputStream;
List<PlotArea> areas = Arrays.asList(plotAreaManager.getAllPlotAreas());
Collections.sort(areas, new Comparator<PlotArea>() {
@Override public int compare(PlotArea a, PlotArea b) {
if (priorityArea != null && StringMan.isEqual(a.toString(), b.toString())) {
return -1;
if (priorityArea != null) {
if (a.equals(priorityArea)) {
return -1;
} else if (b.equals(priorityArea)) {
return 1;
}
}
return a.hashCode() - b.hashCode();
}
@ -1089,7 +1094,7 @@ import java.util.zip.ZipInputStream;
* <li>Loads (and/or generates) the PlotArea configuration
* <li>Sets up the world border if configured
* </ul>
* <p>
*
* <p>If loading an augmented plot world:
* <ul>
* <li>Creates the AugmentedPopulator classes
@ -1151,7 +1156,8 @@ import java.util.zip.ZipInputStream;
PlotSquared.log(C.PREFIX + "&aDetected world load for '" + world + "'");
PlotSquared.log(C.PREFIX + "&3 - generator: &7" + baseGenerator + ">" + plotGenerator);
PlotSquared.log(C.PREFIX + "&3 - plotworld: &7" + plotArea.getClass().getName());
PlotSquared.log(C.PREFIX + "&3 - plotAreaManager: &7" + plotManager.getClass().getName());
PlotSquared
.log(C.PREFIX + "&3 - plotAreaManager: &7" + plotManager.getClass().getName());
if (!this.worlds.contains(path)) {
this.worlds.createSection(path);
worldSection = this.worlds.getConfigurationSection(path);
@ -1323,8 +1329,8 @@ import java.util.zip.ZipInputStream;
/**
* Setup the configuration for a plot world based on world arguments.
* <p>
* <p>
*
*
* <i>e.g. /mv create &lt;world&gt; normal -g PlotSquared:&lt;args&gt;</i>
*
* @param world The name of the world
@ -1784,7 +1790,8 @@ import java.util.zip.ZipInputStream;
}
}
public void foreachPlotArea(@NonNull final String world, @NonNull final RunnableVal<PlotArea> runnable) {
public void foreachPlotArea(@NonNull final String world,
@NonNull final RunnableVal<PlotArea> runnable) {
final PlotArea[] array = this.plotAreaManager.getPlotAreas(world, null);
if (array == null) {
return;
@ -1925,9 +1932,10 @@ import java.util.zip.ZipInputStream;
*
* @param alias to search plots
* @param worldname to filter alias to a specific world [optional] null means all worlds
* @return Set<{@link Plot}> empty if nothing found
* @return Set<{ @ link Plot }> empty if nothing found
*/
public Set<Plot> getPlotsByAlias(@Nullable final String alias, @NonNull final String worldname) {
public Set<Plot> getPlotsByAlias(@Nullable final String alias,
@NonNull final String worldname) {
final Set<Plot> result = new HashSet<>();
if (alias != null) {
for (final Plot plot : getPlots()) {

View File

@ -17,9 +17,8 @@ public class Updater {
public String getChanges() {
if (changes == null) {
try (Scanner scanner = new Scanner(new URL(
"http://empcraft.com/plots/cl?" + Integer.toHexString(PlotSquared.get().getVersion().hash))
.openStream(), "UTF-8")) {
try (Scanner scanner = new Scanner(new URL("http://empcraft.com/plots/cl?" + Integer
.toHexString(PlotSquared.get().getVersion().hash)).openStream(), "UTF-8")) {
changes = scanner.useDelimiter("\\A").next();
} catch (IOException e) {
e.printStackTrace();

View File

@ -16,7 +16,7 @@ import java.util.Iterator;
import java.util.Set;
import java.util.UUID;
@CommandDeclaration(command = "add", description = "Allow a user to build while you are online", usage = "/plot add <player>", category = CommandCategory.SETTINGS, permission = "plots.add", requiredType = RequiredType.NONE)
@CommandDeclaration(command = "add", description = "Allow a user to build in a plot while you are online", usage = "/plot add <player>", category = CommandCategory.SETTINGS, permission = "plots.add", requiredType = RequiredType.NONE)
public class Add extends Command {
public Add() {

View File

@ -94,7 +94,8 @@ public class Alias extends SubCommand {
return false;
}
}
if (UUIDHandler.nameExists(new StringWrapper(alias)) || PlotSquared.get().hasPlotArea(alias)) {
if (UUIDHandler.nameExists(new StringWrapper(alias)) || PlotSquared.get()
.hasPlotArea(alias)) {
MainUtil.sendMessage(player, C.ALIAS_IS_TAKEN);
return false;
}

View File

@ -81,8 +81,8 @@ public class Area extends SubCommand {
final int offsetX = bx - (area.ROAD_WIDTH == 0 ? 0 : lower);
final int offsetZ = bz - (area.ROAD_WIDTH == 0 ? 0 : lower);
final RegionWrapper region = new RegionWrapper(bx, tx, bz, tz);
Set<PlotArea> areas = PlotSquared
.get().getPlotAreas(area.worldname, region);
Set<PlotArea> areas =
PlotSquared.get().getPlotAreas(area.worldname, region);
if (!areas.isEmpty()) {
C.CLUSTER_INTERSECTION
.send(player, areas.iterator().next().toString());
@ -104,10 +104,12 @@ public class Area extends SubCommand {
Runnable run = new Runnable() {
@Override public void run() {
if (offsetX != 0) {
PlotSquared.get().worlds.set(path + ".road.offset.x", offsetX);
PlotSquared.get().worlds
.set(path + ".road.offset.x", offsetX);
}
if (offsetZ != 0) {
PlotSquared.get().worlds.set(path + ".road.offset.z", offsetZ);
PlotSquared.get().worlds
.set(path + ".road.offset.z", offsetZ);
}
final String world = SetupUtils.manager.setupWorld(object);
if (WorldUtil.IMP.isWorld(world)) {
@ -458,8 +460,8 @@ public class Area extends SubCommand {
case "remove":
MainUtil.sendMessage(player,
"$1World creation settings may be stored in multiple locations:"
+ "\n$3 - $2Bukkit bukkit.yml" + "\n$3 - $2" + PlotSquared.imp().getPluginName()
+ " settings.yml"
+ "\n$3 - $2Bukkit bukkit.yml" + "\n$3 - $2" + PlotSquared.imp()
.getPluginName() + " settings.yml"
+ "\n$3 - $2Multiverse worlds.yml (or any world management plugin)"
+ "\n$1Stop the server and delete it from these locations.");
return true;

View File

@ -14,7 +14,7 @@ import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
import com.github.intellectualsites.plotsquared.plot.util.Permissions;
import com.github.intellectualsites.plotsquared.plot.util.block.GlobalBlockQueue;
@CommandDeclaration(command = "clear", description = "Clear a plot", permission = "plots.clear", category = CommandCategory.APPEARANCE, usage = "/plot clear", aliases = "reset", confirmation = true)
@CommandDeclaration(command = "clear", description = "Clear the plot you stand on", permission = "plots.clear", category = CommandCategory.APPEARANCE, usage = "/plot clear", aliases = "reset", confirmation = true)
public class Clear extends Command {
// Note: To clear a specific plot use /plot <plot> clear

View File

@ -103,8 +103,9 @@ public class Database extends SubCommand {
if (newPlot != null) {
PlotId newId = newPlot.getId();
PlotId id = plot.getId();
File worldFile = new File(PlotSquared.imp().getWorldContainer(),
id.toCommaSeparatedString());
File worldFile =
new File(PlotSquared.imp().getWorldContainer(),
id.toCommaSeparatedString());
if (worldFile.exists()) {
File newFile =
new File(PlotSquared.imp().getWorldContainer(),
@ -127,7 +128,8 @@ public class Database extends SubCommand {
plots.add(plot);
}
} else {
HashMap<PlotId, Plot> plotmap = PlotSquared.get().plots_tmp.get(areaname);
HashMap<PlotId, Plot> plotmap =
PlotSquared.get().plots_tmp.get(areaname);
if (plotmap == null) {
plotmap = new HashMap<>();
PlotSquared.get().plots_tmp.put(areaname, plotmap);

View File

@ -25,8 +25,8 @@ public class Debug extends SubCommand {
String section = C.DEBUG_SECTION.s();
information.append(header);
information.append(getSection(section, "PlotArea"));
information
.append(getLine(line, "Plot Worlds", StringMan.join(PlotSquared.get().getPlotAreas(), ", ")));
information.append(
getLine(line, "Plot Worlds", StringMan.join(PlotSquared.get().getPlotAreas(), ", ")));
information.append(getLine(line, "Owned Plots", PlotSquared.get().getPlots().size()));
information.append(getSection(section, "Messages"));
information.append(getLine(line, "Total Messages", C.values().length));

View File

@ -37,8 +37,9 @@ import java.util.*;
if (file.exists()) {
init();
String script = StringMan.join(Files.readLines(new File(new File(
PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS),
"start.js"), StandardCharsets.UTF_8), System.getProperty("line.separator"));
PlotSquared.get().IMP.getDirectory() + File.separator
+ Settings.Paths.SCRIPTS), "start.js"), StandardCharsets.UTF_8),
System.getProperty("line.separator"));
this.scope.put("THIS", this);
this.scope.put("PlotPlayer", ConsolePlayer.getConsole());
this.engine.eval(script, this.scope);
@ -261,8 +262,8 @@ import java.util.*;
case "addcmd":
try {
final String cmd = StringMan.join(Files.readLines(MainUtil.getFile(new File(
PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS),
args[1]), StandardCharsets.UTF_8),
PlotSquared.get().IMP.getDirectory() + File.separator
+ Settings.Paths.SCRIPTS), args[1]), StandardCharsets.UTF_8),
System.getProperty("line.separator"));
new Command(MainCommand.getInstance(), true, args[1].split("\\.")[0], null,
RequiredType.NONE, CommandCategory.DEBUG) {
@ -291,8 +292,8 @@ import java.util.*;
case "run":
try {
script = StringMan.join(Files.readLines(MainUtil.getFile(new File(
PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS),
args[1]), StandardCharsets.UTF_8),
PlotSquared.get().IMP.getDirectory() + File.separator
+ Settings.Paths.SCRIPTS), args[1]), StandardCharsets.UTF_8),
System.getProperty("line.separator"));
if (args.length > 2) {
HashMap<String, String> replacements = new HashMap<>();
@ -307,8 +308,8 @@ import java.util.*;
}
break;
case "list-scripts":
String path =
PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS;
String path = PlotSquared.get().IMP.getDirectory() + File.separator
+ Settings.Paths.SCRIPTS;
File folder = new File(path);
File[] filesArray = folder.listFiles();
@ -411,13 +412,15 @@ import java.util.*;
} catch (ScriptException e) {
e.printStackTrace();
}
PlotSquared.log("> " + (System.currentTimeMillis() - start) + "ms -> " + result);
PlotSquared.log(
"> " + (System.currentTimeMillis() - start) + "ms -> " + result);
}
});
} else {
long start = System.currentTimeMillis();
Object result = this.engine.eval(script, this.scope);
PlotSquared.log("> " + (System.currentTimeMillis() - start) + "ms -> " + result);
PlotSquared
.log("> " + (System.currentTimeMillis() - start) + "ms -> " + result);
}
return true;
} catch (ScriptException e) {

View File

@ -25,8 +25,9 @@ public class DebugPaste extends SubCommand {
String commandsYML = HastebinUtility.upload(PlotSquared.get().commandsFile);
String latestLOG;
try {
latestLOG = HastebinUtility
.upload(new File(PlotSquared.get().IMP.getDirectory(), "../../logs/latest.log"));
latestLOG = HastebinUtility.upload(
new File(PlotSquared.get().IMP.getDirectory(),
"../../logs/latest.log"));
} catch (IOException ignored) {
MainUtil.sendMessage(player,
"&clatest.log is too big to be pasted, will ignore");

View File

@ -6,11 +6,15 @@ import com.github.intellectualsites.plotsquared.plot.config.Settings;
import com.github.intellectualsites.plotsquared.plot.object.*;
import com.github.intellectualsites.plotsquared.plot.util.*;
@CommandDeclaration(command = "delete", permission = "plots.delete", description = "Delete a plot", usage = "/plot delete", aliases = {
"dispose", "del",
"reset"}, category = CommandCategory.CLAIMING, requiredType = RequiredType.NONE, confirmation = true)
@CommandDeclaration(command = "delete", permission = "plots.delete", description = "Delete the plot you stand on", usage = "/plot delete", aliases = {
"dispose",
"del"}, category = CommandCategory.CLAIMING, requiredType = RequiredType.NONE, confirmation = true)
public class Delete extends SubCommand {
// Note: To delete a specific plot use /plot <plot> delete
// The syntax also works with any command: /plot <plot> <command>
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
Location loc = player.getLocation();

View File

@ -18,7 +18,7 @@ import java.util.Set;
import java.util.UUID;
@CommandDeclaration(command = "kick", aliases = {
"k"}, description = "Kick a player from your plot", permission = "plots.kick", usage = "<player>", category = CommandCategory.TELEPORT, requiredType = RequiredType.NONE)
"k"}, description = "Kick a player from your plot", permission = "plots.kick", usage = "/plot kick <player>", category = CommandCategory.TELEPORT, requiredType = RequiredType.NONE)
public class Kick extends SubCommand {
public Kick() {
@ -75,8 +75,8 @@ public class Kick extends SubCommand {
Location spawn = WorldUtil.IMP.getSpawn(location.getWorld());
C.YOU_GOT_KICKED.send(player2);
if (plot.equals(spawn.getPlot())) {
Location newSpawn =
WorldUtil.IMP.getSpawn(PlotSquared.get().getPlotAreaManager().getAllWorlds()[0]);
Location newSpawn = WorldUtil.IMP
.getSpawn(PlotSquared.get().getPlotAreaManager().getAllWorlds()[0]);
if (plot.equals(newSpawn.getPlot())) {
// Kick from server if you can't be teleported to spawn
player2.kick(C.YOU_GOT_KICKED.s());

View File

@ -15,7 +15,7 @@ import java.net.URL;
import java.util.List;
@CommandDeclaration(command = "load", aliases = {
"restore"}, category = CommandCategory.SCHEMATIC, requiredType = RequiredType.NONE, description = "Load your plot", permission = "plots.load", usage = "/plot restore")
"restore"}, category = CommandCategory.SCHEMATIC, requiredType = RequiredType.NONE, description = "Load your plot", permission = "plots.load", usage = "/plot load")
public class Load extends SubCommand {
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
@ -70,7 +70,8 @@ public class Load extends SubCommand {
MainUtil.sendMessage(player, C.GENERATING_COMPONENT);
TaskManager.runTaskAsync(new Runnable() {
@Override public void run() {
SchematicHandler.Schematic schematic = SchematicHandler.manager.getSchematic(url);
SchematicHandler.Schematic schematic =
SchematicHandler.manager.getSchematic(url);
if (schematic == null) {
plot.removeRunning();
sendMessage(player, C.SCHEMATIC_INVALID,

View File

@ -6,7 +6,7 @@ import com.github.intellectualsites.plotsquared.plot.flag.Flags;
import com.github.intellectualsites.plotsquared.plot.object.*;
import com.github.intellectualsites.plotsquared.plot.util.WorldUtil;
@CommandDeclaration(command = "music", permission = "plots.music", description = "Player music in a plot", usage = "/plot music", category = CommandCategory.APPEARANCE, requiredType = RequiredType.PLAYER)
@CommandDeclaration(command = "music", permission = "plots.music", description = "Play music in your plot", usage = "/plot music", category = CommandCategory.APPEARANCE, requiredType = RequiredType.PLAYER)
public class Music extends SubCommand {
@Override public boolean onCommand(PlotPlayer player, String[] args) {

View File

@ -73,14 +73,17 @@ public class Owner extends SetCommand {
final boolean removeDenied = plot.isDenied(finalUUID);
Runnable run = new Runnable() {
@Override public void run() {
if (removeDenied)
plot.removeDenied(finalUUID);
plot.setOwner(finalUUID);
plot.setSign(finalName);
MainUtil.sendMessage(player, C.SET_OWNER);
if (other != null) {
MainUtil.sendMessage(other, C.NOW_OWNER, plot.getArea() + ";" + plot.getId());
}
if (plot.setOwner(finalUUID, player)) {
if (removeDenied)
plot.removeDenied(finalUUID);
plot.setSign(finalName);
MainUtil.sendMessage(player, C.SET_OWNER);
if (other != null) {
MainUtil
.sendMessage(other, C.NOW_OWNER, plot.getArea() + ";" + plot.getId());
}
} else
MainUtil.sendMessage(player, C.SET_OWNER_CANCELLED);
}
};
if (hasConfirmation(player)) {

View File

@ -8,15 +8,15 @@ import com.github.intellectualsites.plotsquared.plot.util.HttpUtil;
import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
import com.github.intellectualsites.plotsquared.plot.util.TaskManager;
@CommandDeclaration(command = "plugin", permission = "plots.use", description = "Show plugin information", aliases = "version", category = CommandCategory.INFO)
@CommandDeclaration(command = "plugin", permission = "plots.use", description = "Show plugin information", usage = "/plot plugin", aliases = "version", category = CommandCategory.INFO)
public class PluginCmd extends SubCommand {
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
TaskManager.IMP.taskAsync(new Runnable() {
@Override public void run() {
MainUtil.sendMessage(player, String
.format("$2>> $1&l" + PlotSquared.imp().getPluginName() + " $2($1Version$2: $1%s$2)",
PlotSquared.get().getVersion()));
MainUtil.sendMessage(player, String.format(
"$2>> $1&l" + PlotSquared.imp().getPluginName() + " $2($1Version$2: $1%s$2)",
PlotSquared.get().getVersion()));
MainUtil.sendMessage(player,
"$2>> $1&lAuthors$2: $1Citymonstret $2& $1Empire92 $2& $1MattBDev");
MainUtil.sendMessage(player,

View File

@ -110,7 +110,8 @@ public class Purge extends SubCommand {
}
}
if (PlotSquared.get().plots_tmp != null) {
for (Entry<String, HashMap<PlotId, Plot>> entry : PlotSquared.get().plots_tmp.entrySet()) {
for (Entry<String, HashMap<PlotId, Plot>> entry : PlotSquared.get().plots_tmp
.entrySet()) {
String worldName = entry.getKey();
if (world != null && !world.equalsIgnoreCase(worldName)) {
continue;

View File

@ -102,14 +102,18 @@ public class Rate extends SubCommand {
int rV = rating.getValue();
Rating result =
EventUtil.manager.callRating(this.player, plot, new Rating(rV));
plot.addRating(this.player.getUUID(), result);
sendMessage(this.player, C.RATING_APPLIED, plot.getId().toString());
if (Permissions.hasPermission(this.player, C.PERMISSION_COMMENT)) {
Command command =
MainCommand.getInstance().getCommand(Comment.class);
if (command != null) {
MainUtil.sendMessage(this.player, C.COMMENT_THIS,
command.getUsage());
if (result != null) {
plot.addRating(this.player.getUUID(), result);
sendMessage(this.player, C.RATING_APPLIED,
plot.getId().toString());
if (Permissions
.hasPermission(this.player, C.PERMISSION_COMMENT)) {
Command command =
MainCommand.getInstance().getCommand(Comment.class);
if (command != null) {
MainUtil.sendMessage(this.player, C.COMMENT_THIS,
command.getUsage());
}
}
}
return false;
@ -169,8 +173,10 @@ public class Rate extends SubCommand {
return;
}
Rating result = EventUtil.manager.callRating(player, plot, new Rating(rating));
plot.addRating(uuid, result);
sendMessage(player, C.RATING_APPLIED, plot.getId().toString());
if (result != null) {
plot.addRating(uuid, result);
sendMessage(player, C.RATING_APPLIED, plot.getId().toString());
}
}
};
if (plot.getSettings().ratings == null) {

View File

@ -9,7 +9,7 @@ import com.github.intellectualsites.plotsquared.plot.util.block.LocalBlockQueue;
import java.util.HashSet;
@CommandDeclaration(command = "relight", description = "Relight your plot", category = CommandCategory.DEBUG)
@CommandDeclaration(command = "relight", description = "Relight your plot", usage = "/plot relight", category = CommandCategory.DEBUG)
public class Relight extends Command {
public Relight() {
super(MainCommand.getInstance(), true);

View File

@ -14,7 +14,7 @@ import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
import java.io.IOException;
import java.util.Objects;
@CommandDeclaration(command = "reload", permission = "plots.admin.command.reload", description = "Reload configurations", usage = "/plot reload", category = CommandCategory.ADMINISTRATION)
@CommandDeclaration(command = "reload", aliases = "rl", permission = "plots.admin.command.reload", description = "Reload translations and world settings", usage = "/plot reload", category = CommandCategory.ADMINISTRATION)
public class Reload extends SubCommand {
@Override public boolean onCommand(PlotPlayer player, String[] args) {
@ -25,8 +25,8 @@ public class Reload extends SubCommand {
C.load(PlotSquared.get().translationFile);
PlotSquared.get().foreachPlotArea(new RunnableVal<PlotArea>() {
@Override public void run(PlotArea area) {
ConfigurationSection worldSection =
PlotSquared.get().worlds.getConfigurationSection("worlds." + area.worldname);
ConfigurationSection worldSection = PlotSquared.get().worlds
.getConfigurationSection("worlds." + area.worldname);
if (worldSection == null) {
return;
}

View File

@ -17,7 +17,7 @@ import java.util.Collection;
import java.util.UUID;
@CommandDeclaration(command = "schematic", permission = "plots.schematic", description = "Schematic command", aliases = {
"sch"}, category = CommandCategory.SCHEMATIC, usage = "/plot schematic <arg...>")
"sch", "schem"}, category = CommandCategory.SCHEMATIC, usage = "/plot schematic <arg...>")
public class SchematicCmd extends SubCommand {
private boolean running = false;

View File

@ -8,13 +8,14 @@ import com.github.intellectualsites.plotsquared.plot.object.Plot;
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
@CommandDeclaration(command = "sethome", permission = "plots.set.home", description = "Set the plot home", usage = "/plot sethome [none]", aliases = {
@CommandDeclaration(command = "sethome", permission = "plots.set.home", description = "Set the plot home to your current position", usage = "/plot sethome [none]", aliases = {
"sh", "seth"}, category = CommandCategory.SETTINGS, requiredType = RequiredType.NONE)
public class SetHome extends SetCommand {
@Override public boolean set(PlotPlayer player, Plot plot, String value) {
switch (value.toLowerCase()) {
case "unset":
case "reset":
case "remove":
case "none": {
Plot base = plot.getBasePlot(false);

View File

@ -74,7 +74,8 @@ import java.util.Map.Entry;
MainUtil.sendMessage(player,
"&cYou must choose a generator!" + prefix + StringMan
.join(SetupUtils.generators.keySet(), prefix)
.replaceAll(PlotSquared.imp().getPluginName(), "&2" + PlotSquared.imp().getPluginName()));
.replaceAll(PlotSquared.imp().getPluginName(),
"&2" + PlotSquared.imp().getPluginName()));
sendMessage(player, C.SETUP_INIT);
return false;
}

View File

@ -26,7 +26,8 @@ public class Template extends SubCommand {
public static boolean extractAllFiles(String world, String template) {
try {
File folder = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.TEMPLATES);
File folder =
MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.TEMPLATES);
if (!folder.exists()) {
return false;
}
@ -84,7 +85,8 @@ public class Template extends SubCommand {
}
public static void zipAll(String world, Set<FileBytes> files) throws IOException {
File output = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.TEMPLATES);
File output =
MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.TEMPLATES);
output.mkdirs();
try (FileOutputStream fos = new FileOutputStream(
output + File.separator + world + ".template");

View File

@ -17,7 +17,7 @@ import java.util.Set;
import java.util.UUID;
@CommandDeclaration(command = "trust", aliases = {
"t"}, requiredType = RequiredType.NONE, usage = "/plot trust <player>", description = "Allow a player to build in a plot", category = CommandCategory.SETTINGS)
"t"}, requiredType = RequiredType.NONE, usage = "/plot trust <player>", description = "Allow a user to build in a plot while you are offline", category = CommandCategory.SETTINGS)
public class Trust extends Command {
public Trust() {

View File

@ -106,8 +106,8 @@ import java.util.*;
}
List<Plot> plots;
if (shouldSortByArea) {
plots = PlotSquared
.get().sortPlots(unsorted, PlotSquared.SortType.CREATION_DATE, sortByArea);
plots = PlotSquared.get()
.sortPlots(unsorted, PlotSquared.SortType.CREATION_DATE, sortByArea);
} else {
plots = PlotSquared.get().sortPlotsByTemp(unsorted);
}

View File

@ -160,7 +160,7 @@ public enum C {
* Confirm
*/
EXPIRED_CONFIRM("$2Confirmation has expired, please run the command again!",
"Confirm"), FAILED_CONFIRM("$2You have no pending actions to confirm!",
"Confirm"), FAILED_CONFIRM("$2You have no pending actions to confirm!",
"Confirm"), REQUIRES_CONFIRM(
"$2Are you sure you wish to execute: $1%s$2?&-$2This cannot be undone! If you are sure: $1/plot confirm",
"Confirm"), /*
@ -185,8 +185,8 @@ public enum C {
* Cluster
*/
CLUSTER_AVAILABLE_ARGS(
"$1The following sub commands are available: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, "
+ "$4members$2, $4info$2, $4tp$2, $4sethome", "Cluster"), CLUSTER_LIST_HEADING(
"$1The following sub commands are available: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, "
+ "$4members$2, $4info$2, $4tp$2, $4sethome", "Cluster"), CLUSTER_LIST_HEADING(
"$2There are $1%s$2 clusters in this world", "Cluster"), CLUSTER_LIST_ELEMENT("$2 - $1%s&-",
"Cluster"), CLUSTER_INTERSECTION("$2The proposed area overlaps with: %s0",
"Cluster"), CLUSTER_OUTSIDE("$2The proposed area is outside the plot area: %s0",
@ -217,7 +217,7 @@ public enum C {
* WorldEdit masks
*/
WORLDEDIT_DELAYED("$2Please wait while we process your WorldEdit action...",
"WorldEdit Masks"), WORLDEDIT_RUN("$2Apologies for the delay. Now executing: %s",
"WorldEdit Masks"), WORLDEDIT_RUN("$2Apologies for the delay. Now executing: %s",
"WorldEdit Masks"), REQUIRE_SELECTION_IN_MASK(
"$2%s of your selection is not within your plot mask. You can only make edits within your plot.",
"WorldEdit Masks"), WORLDEDIT_VOLUME(
@ -262,7 +262,7 @@ public enum C {
* Console
*/
NOT_CONSOLE("$2For safety reasons, this command can only be executed by console.",
"Console"), IS_CONSOLE("$2This command can only be executed by a player.", "Console"),
"Console"), IS_CONSOLE("$2This command can only be executed by a player.", "Console"),
/*
Inventory
@ -337,16 +337,18 @@ public enum C {
* Schematic Stuff
*/
SCHEMATIC_TOO_LARGE("$2The plot is too large for this action!",
"Schematics"), SCHEMATIC_MISSING_ARG(
"Schematics"), SCHEMATIC_MISSING_ARG(
"$2You need to specify an argument. Possible values: $1test <name>$2 , $1save$2 , $1paste $2, $1exportall",
"Schematics"), SCHEMATIC_INVALID("$2That is not a valid schematic. Reason: $2%s",
"Schematics"), SCHEMATIC_VALID("$2That is a valid schematic",
"Schematics"), SCHEMATIC_PASTE_FAILED("$2Failed to paste the schematic",
"Schematics"), SCHEMATIC_PASTE_SUCCESS("$4The schematic pasted successfully", "Schematics"), /*
"Schematics"), SCHEMATIC_PASTE_SUCCESS("$4The schematic pasted successfully",
"Schematics"), /*
* Title Stuff
*/
TITLE_ENTERED_PLOT("$1Plot: %world%;%x%;%z%", "Titles"), TITLE_ENTERED_PLOT_SUB("$4Owned by %s",
"Titles"), PREFIX_GREETING("$1%id%$2> ", "Titles"), PREFIX_FAREWELL("$1%id%$2> ", "Titles"), /*
"Titles"), PREFIX_GREETING("$1%id%$2> ", "Titles"), PREFIX_FAREWELL("$1%id%$2> ",
"Titles"), /*
* Core Stuff
*/
TASK_START("Starting task...", "Core"), PREFIX("$3[$1P2$3] $2", "Core"), ENABLED(
@ -354,7 +356,7 @@ public enum C {
* Reload
*/
RELOADED_CONFIGS("$1Translations and world settings have been reloaded",
"Reload"), RELOAD_FAILED("$2Failed to reload file configurations", "Reload"),
"Reload"), RELOAD_FAILED("$2Failed to reload file configurations", "Reload"),
/*
* BarAPI
*/
@ -372,7 +374,7 @@ public enum C {
* Position
*/
MISSING_POSITION("$2You need to specify a position. Possible values: $1none",
"Position"), POSITION_SET("$1Home position set to your current location",
"Position"), POSITION_SET("$1Home position set to your current location",
"Position"), POSITION_UNSET("$1Home position reset to the default location",
"Position"), HOME_ARGUMENT("$2Use /plot set home [none]", "Position"), INVALID_POSITION(
"$2That is not a valid position value", "Position"), /*
@ -385,7 +387,7 @@ public enum C {
* Permission
*/
NO_SCHEMATIC_PERMISSION("$2You don't have the permission required to use schematic $1%s",
"Permission"), NO_PERMISSION("$2You are lacking the permission node: $1%s",
"Permission"), NO_PERMISSION("$2You are lacking the permission node: $1%s",
"Permission"), NO_PERMISSION_EVENT("$2You are lacking the permission node: $1%s",
"Permission"), NO_PLOT_PERMS("$2You must be the plot owner to perform this action",
"Permission"), CANT_CLAIM_MORE_PLOTS("$2You can't claim more plots.",
@ -418,15 +420,15 @@ public enum C {
* Player not found
*/
INVALID_PLAYER_WAIT("$2Player not found: $1%s$2, fetching it. Try again soon.",
"Errors"), INVALID_PLAYER("$2Player not found: $1%s$2.",
"Errors"), INVALID_PLAYER_OFFLINE("$2The player must be online: $1%s.", "Errors"), /*
"Errors"), INVALID_PLAYER("$2Player not found: $1%s$2.", "Errors"), INVALID_PLAYER_OFFLINE(
"$2The player must be online: $1%s.", "Errors"), /*
* Command flag
*/
INVALID_COMMAND_FLAG("$2Invalid command flag: %s0", "Errors"), /*
* Unknown Error
*/
ERROR("$2An error occurred: %s",
"Errors"), // SETTINGS_PASTE_UPLOADED("$2settings.yml was uploaded to: $1%url%", "Paste"),
"Errors"), // SETTINGS_PASTE_UPLOADED("$2settings.yml was uploaded to: $1%url%", "Paste"),
// LATEST_LOG_UPLOADED("$2latest.log was uploaded to: $1%url%", "Paste"),
DEBUG_REPORT_CREATED("$1Uploaded a full debug to: $1%url%", "Paste"), /*
*
@ -438,7 +440,7 @@ public enum C {
* trim
*/
TRIM_IN_PROGRESS("A world trim task is already in progress!",
"Trim"), NOT_VALID_HYBRID_PLOT_WORLD(
"Trim"), NOT_VALID_HYBRID_PLOT_WORLD(
"The hybrid plot manager is required to perform this action", "Trim"), /*
* No <plot>
*/
@ -538,7 +540,7 @@ public enum C {
* List
*/
COMMENT_LIST_HEADER_PAGED("$2(Page $1%cur$2/$1%max$2) $1List of %amount% comments",
"List"), CLICKABLE(" (interactive)", "List"), AREA_LIST_HEADER_PAGED(
"List"), CLICKABLE(" (interactive)", "List"), AREA_LIST_HEADER_PAGED(
"$2(Page $1%cur$2/$1%max$2) $1List of %amount% areas", "List"), PLOT_LIST_HEADER_PAGED(
"$2(Page $1%cur$2/$1%max$2) $1List of %amount% plots", "List"), PLOT_LIST_HEADER(
"$1List of %word% plots", "List"), PLOT_LIST_ITEM("$2>> $1%id$2:$1%world $2- $1%owner",
@ -550,12 +552,12 @@ public enum C {
* Wait
*/
WAIT_FOR_TIMER(
"$2A setblock timer is bound to either the current plot or you. Please wait for it to finish",
"Errors"), /*
"$2A setblock timer is bound to either the current plot or you. Please wait for it to finish",
"Errors"), /*
* Chat
*/
PLOT_CHAT_SPY_FORMAT("$2[$1Plot Spy$2][$1%plot_id%$2] $1%sender%$2: $1%msg%",
"Chat"), PLOT_CHAT_FORMAT("$2[$1Plot Chat$2][$1%plot_id%$2] $1%sender%$2: $1%msg%",
"Chat"), PLOT_CHAT_FORMAT("$2[$1Plot Chat$2][$1%plot_id%$2] $1%sender%$2: $1%msg%",
"Chat"), PLOT_CHAT_FORCED("$2This world forces everyone to use plot chat.",
"Chat"), PLOT_CHAT_ON("$4Plot chat enabled.", "Chat"), PLOT_CHAT_OFF(
"$4Plot chat disabled.", "Chat"), /*
@ -574,7 +576,7 @@ public enum C {
* Rain
*/
NEED_ON_OFF("$2You need to specify a value. Possible values: $1on$2, $1off",
"Rain"), SETTING_UPDATED("$4You successfully updated the setting", "Rain"), /*
"Rain"), SETTING_UPDATED("$4You successfully updated the setting", "Rain"), /*
* Flag
*/
FLAG_KEY("$2Key: %s", "Flag"), FLAG_TYPE("$2Type: %s", "Flag"), FLAG_DESC("$2Desc: %s",
@ -591,7 +593,8 @@ public enum C {
TRUSTED_ADDED("$4You successfully trusted a user to the plot", "Trusted"), TRUSTED_REMOVED(
"$4You successfully removed a trusted user from the plot", "Trusted"), WAS_NOT_ADDED(
"$2That player was not trusted on this plot", "Trusted"), PLOT_REMOVED_USER(
"$1Plot %s of which you were added to has been deleted due to owner inactivity", "Trusted"), /*
"$1Plot %s of which you were added to has been deleted due to owner inactivity",
"Trusted"), /*
* Member
*/
REMOVED_PLAYERS("$2Removed %s players from this plot.", "Member"), ALREADY_OWNER(
@ -603,8 +606,9 @@ public enum C {
"$2You are not allowed to add any more players to this plot", "Member"), /*
* Set Owner
*/
SET_OWNER("$4You successfully set the plot owner", "Owner"), NOW_OWNER(
"$4You are now owner of plot %s", "Owner"), /*
SET_OWNER("$4You successfully set the plot owner", "Owner"), SET_OWNER_CANCELLED(
"$2The setowner action was cancelled", "Owner"), NOW_OWNER("$4You are now owner of plot %s",
"Owner"), /*
* Signs
*/
OWNER_SIGN_LINE_1("$1ID: $1%id%", "Signs"), OWNER_SIGN_LINE_2("$1Owner:",

View File

@ -68,9 +68,9 @@ public class Config {
field.set(instance, value);
return;
} catch (Throwable e) {
PlotSquared
.debug("Invalid configuration value: " + key + ": " + value + " in " + root
.getSimpleName());
PlotSquared.debug(
"Invalid configuration value: " + key + ": " + value + " in " + root
.getSimpleName());
e.printStackTrace();
}
}
@ -262,8 +262,9 @@ public class Config {
setAccessible(field);
return field;
} catch (Throwable e) {
PlotSquared.debug("Invalid config field: " + StringMan.join(split, ".") + " for " + toNodeName(
instance.getClass().getSimpleName()));
PlotSquared.debug(
"Invalid config field: " + StringMan.join(split, ".") + " for " + toNodeName(
instance.getClass().getSimpleName()));
return null;
}
}

View File

@ -87,7 +87,7 @@ public class Configuration {
};
public static final SettingValue<PlotBlock> BLOCK = new SettingValue<PlotBlock>("BLOCK") {
@Override public boolean validateValue(String string) {
StringComparison.ComparisonResult value =
StringComparison<PlotBlock>.ComparisonResult value =
WorldUtil.IMP.getClosestBlock(string);
return !(value == null || value.match > 1);
}

View File

@ -14,9 +14,11 @@ public class Settings extends Config {
NOTE: Fields are saved in declaration order, classes in reverse order
*/
@Comment("These first 4 aren't configurable") // This is a comment
@Comment("These first 7 aren't configurable") // This is a comment
@Final // Indicates that this value isn't configurable
public static final String ISSUES = "https://github.com/IntellectualSites/PlotSquared/issues";
@Final public static final String SUGGESTION =
"https://github.com/IntellectualSites/PlotSquaredSuggestions";
@Final public static final String WIKI =
"https://github.com/IntellectualSites/PlotSquared/wiki";
@Final public static String DATE; // These values are set from P2 before loading
@ -31,7 +33,7 @@ public class Settings extends Config {
@Create // This value will be generated automatically
public static ConfigBlock<Auto_Clear> AUTO_CLEAR = null;
// A ConfigBlock is a section that can have multiple instances e.g. multiple expiry tasks
// A ConfigBlock is a section that can have multiple instances e.g. multiple expiry tasks
public static void save(File file) {
save(file, Settings.class);

View File

@ -320,7 +320,7 @@ public interface AbstractDB {
/**
* Replace a old uuid with a new one in the database.
* <p>
*
* <ul>
* <li> Useful for replacing a few uuids (not the entire database).</li>
* <li>or entire conversion, the uuidconvert command scales better.</li>

View File

@ -754,7 +754,8 @@ import java.util.concurrent.atomic.AtomicInteger;
last = subList.size();
preparedStmt.addBatch();
}
PlotSquared.debug("&aBatch 1: " + count + " | " + objList.get(0).getClass().getCanonicalName());
PlotSquared.debug(
"&aBatch 1: " + count + " | " + objList.get(0).getClass().getCanonicalName());
preparedStmt.executeBatch();
preparedStmt.clearParameters();
preparedStmt.close();
@ -797,7 +798,8 @@ import java.util.concurrent.atomic.AtomicInteger;
last = subList.size();
preparedStmt.addBatch();
}
PlotSquared.debug("&aBatch 2: " + count + " | " + objList.get(0).getClass().getCanonicalName());
PlotSquared.debug(
"&aBatch 2: " + count + " | " + objList.get(0).getClass().getCanonicalName());
preparedStmt.executeBatch();
preparedStmt.clearParameters();
preparedStmt.close();
@ -1693,8 +1695,9 @@ import java.util.concurrent.atomic.AtomicInteger;
if (Settings.Enabled_Components.DATABASE_PURGER) {
toDelete.add(last.temp);
} else {
PlotSquared.debug("&cPLOT #" + id + "(" + last + ") in `" + this.prefix
+ "plot` is a duplicate. Delete this plot or set `database-purger: true` in the settings.yml.");
PlotSquared.debug(
"&cPLOT #" + id + "(" + last + ") in `" + this.prefix
+ "plot` is a duplicate. Delete this plot or set `database-purger: true` in the settings.yml.");
}
}
} else {
@ -1734,9 +1737,9 @@ import java.util.concurrent.atomic.AtomicInteger;
}
}
/*
* Getting helpers
*/
/*
* Getting helpers
*/
try (ResultSet r = statement.executeQuery(
"SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_helpers`")) {
ArrayList<Integer> toDelete = new ArrayList<>();
@ -1762,9 +1765,9 @@ import java.util.concurrent.atomic.AtomicInteger;
deleteRows(toDelete, this.prefix + "plot_helpers", "plot_plot_id");
}
/*
* Getting trusted
*/
/*
* Getting trusted
*/
try (ResultSet r = statement.executeQuery(
"SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_trusted`")) {
ArrayList<Integer> toDelete = new ArrayList<>();
@ -1790,9 +1793,9 @@ import java.util.concurrent.atomic.AtomicInteger;
deleteRows(toDelete, this.prefix + "plot_trusted", "plot_plot_id");
}
/*
* Getting denied
*/
/*
* Getting denied
*/
try (ResultSet r = statement.executeQuery(
"SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_denied`")) {
ArrayList<Integer> toDelete = new ArrayList<>();
@ -2378,7 +2381,8 @@ import java.util.concurrent.atomic.AtomicInteger;
}
}
} catch (SQLException e) {
PlotSquared.debug("&7[WARN] Failed to fetch rating for plot " + plot.getId().toString());
PlotSquared
.debug("&7[WARN] Failed to fetch rating for plot " + plot.getId().toString());
e.printStackTrace();
}
return map;
@ -2970,7 +2974,8 @@ import java.util.concurrent.atomic.AtomicInteger;
}
// owner
if (!plot.owner.equals(dataPlot.owner)) {
PlotSquared.debug("&8 - &7Setting owner: " + plot + " -> " + MainUtil.getName(plot.owner));
PlotSquared
.debug("&8 - &7Setting owner: " + plot + " -> " + MainUtil.getName(plot.owner));
setOwner(plot, plot.owner);
}
// trusted
@ -2979,8 +2984,9 @@ import java.util.concurrent.atomic.AtomicInteger;
HashSet<UUID> toRemove = (HashSet<UUID>) dataPlot.getTrusted().clone();
toRemove.removeAll(plot.getTrusted());
toAdd.removeAll(dataPlot.getTrusted());
PlotSquared.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " trusted for: "
+ plot);
PlotSquared.debug(
"&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " trusted for: "
+ plot);
if (!toRemove.isEmpty()) {
for (UUID uuid : toRemove) {
removeTrusted(plot, uuid);
@ -2997,8 +3003,9 @@ import java.util.concurrent.atomic.AtomicInteger;
HashSet<UUID> toRemove = (HashSet<UUID>) dataPlot.getMembers().clone();
toRemove.removeAll(plot.getMembers());
toAdd.removeAll(dataPlot.getMembers());
PlotSquared.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " members for: "
+ plot);
PlotSquared.debug(
"&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " members for: "
+ plot);
if (!toRemove.isEmpty()) {
for (UUID uuid : toRemove) {
removeMember(plot, uuid);
@ -3015,8 +3022,9 @@ import java.util.concurrent.atomic.AtomicInteger;
HashSet<UUID> toRemove = (HashSet<UUID>) dataPlot.getDenied().clone();
toRemove.removeAll(plot.getDenied());
toAdd.removeAll(dataPlot.getDenied());
PlotSquared.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " denied for: "
+ plot);
PlotSquared.debug(
"&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " denied for: "
+ plot);
if (!toRemove.isEmpty()) {
for (UUID uuid : toRemove) {
removeDenied(plot, uuid);

View File

@ -117,7 +117,8 @@ public class FlagManager {
.replaceAll(",", "´"));
i++;
} catch (Exception e) {
PlotSquared.debug("Failed to parse flag: " + entry.getKey() + "->" + entry.getValue());
PlotSquared
.debug("Failed to parse flag: " + entry.getKey() + "->" + entry.getValue());
e.printStackTrace();
}
}

View File

@ -136,8 +136,9 @@ public final class Flags {
}
Flag flag = (Flag) fieldValue;
if (!flag.getName().equals(fieldName)) {
PlotSquared.debug(Flags.class + "Field doesn't match: " + fieldName + " != " + flag
.getName());
PlotSquared.debug(
Flags.class + "Field doesn't match: " + fieldName + " != " + flag
.getName());
}
flags.put(flag.getName(), flag);
}

View File

@ -35,6 +35,6 @@ public class GameModeFlag extends Flag<PlotGameMode> {
}
@Override public String getValueDescription() {
return "Flag value must be a gamemode: 'creative' , 'survival', 'adventure' or 'spectator'";
return "Flag value must be a gamemode: 'survival', 'creative', 'adventure' or 'spectator'";
}
}

View File

@ -26,6 +26,6 @@ public class IntegerListFlag extends ListFlag<List<Integer>> {
}
@Override public String getValueDescription() {
return "Flag value must be a integer list";
return "Flag value must be an integer list";
}
}

View File

@ -30,6 +30,6 @@ public class PlotWeatherFlag extends Flag<PlotWeather> {
}
@Override public String getValueDescription() {
return "";
return "Flag must be a weather: 'rain' or 'sun'";
}
}

View File

@ -42,7 +42,8 @@ public class HybridPlotManager extends ClassicPlotManager {
files.add(new FileBytes(newDir + "intersection.schematic",
Files.readAllBytes(intersection.toPath())));
}
File plot = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), dir + "plot.schematic");
File plot =
MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), dir + "plot.schematic");
if (plot.exists()) {
files.add(
new FileBytes(newDir + "plot.schematic", Files.readAllBytes(plot.toPath())));

View File

@ -192,8 +192,10 @@ public class HybridPlotWorld extends ClassicPlotWorld {
"schematics/GEN_ROAD_SCHEMATIC/" + this.worldname + "/intersection.schematic");
File schem3File = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(),
"schematics/GEN_ROAD_SCHEMATIC/" + this.worldname + "/plot.schematic");
SchematicHandler.Schematic schematic1 = SchematicHandler.manager.getSchematic(schematic1File);
SchematicHandler.Schematic schematic2 = SchematicHandler.manager.getSchematic(schematic2File);
SchematicHandler.Schematic schematic1 =
SchematicHandler.manager.getSchematic(schematic1File);
SchematicHandler.Schematic schematic2 =
SchematicHandler.manager.getSchematic(schematic2File);
SchematicHandler.Schematic schematic3 = SchematicHandler.manager.getSchematic(schem3File);
int shift = this.ROAD_WIDTH / 2;
int oddshift = (this.ROAD_WIDTH & 1) == 0 ? 0 : 1;

View File

@ -198,7 +198,8 @@ public abstract class SquarePlotManager extends GridPlotManager {
}
PlotSquared.debug("invalid location: " + Arrays.toString(merged));
} catch (Exception ignored) {
PlotSquared.debug("Invalid plot / road width in settings.yml for world: " + plotArea.worldname);
PlotSquared.debug(
"Invalid plot / road width in settings.yml for world: " + plotArea.worldname);
}
return null;
}

View File

@ -96,9 +96,9 @@ public class ProcessedWEExtent extends AbstractDelegateExtent {
this.BScount++;
if (this.BScount > Settings.Chunk_Processor.MAX_TILES) {
this.BSblocked = true;
PlotSquared
.debug(C.PREFIX + "&cdetected unsafe WorldEdit: " + location.getBlockX() + ","
+ location.getBlockZ());
PlotSquared.debug(
C.PREFIX + "&cdetected unsafe WorldEdit: " + location.getBlockX() + ","
+ location.getBlockZ());
}
if (WEManager.maskContains(this.mask, location.getBlockX(), location.getBlockY(),
location.getBlockZ())) {

View File

@ -39,8 +39,9 @@ public class WESubscriber {
Player player = (Player) actor;
Location loc = player.getLocation();
com.github.intellectualsites.plotsquared.plot.object.Location pLoc =
new com.github.intellectualsites.plotsquared.plot.object.Location(player.getWorld().getName(),
loc.getBlockX(), loc.getBlockX(), loc.getBlockZ());
new com.github.intellectualsites.plotsquared.plot.object.Location(
player.getWorld().getName(), loc.getBlockX(), loc.getBlockX(),
loc.getBlockZ());
Plot plot = pLoc.getPlot();
if (plot == null) {
event.setExtent(new NullExtent());

View File

@ -745,6 +745,39 @@ public class Plot {
}
}
/**
* Set the plot owner (and update the database)
*
* @param owner
* @param initiator
* @return boolean
*/
public boolean setOwner(UUID owner, PlotPlayer initiator) {
boolean result = EventUtil.manager
.callOwnerChange(initiator, this, owner, hasOwner() ? this.owner : null, hasOwner());
if (!result)
return false;
if (!hasOwner()) {
this.owner = owner;
create();
return true;
}
if (!isMerged()) {
if (!this.owner.equals(owner)) {
this.owner = owner;
DBFunc.setOwner(this, owner);
}
return true;
}
for (Plot current : getConnectedPlots()) {
if (!owner.equals(current.owner)) {
current.owner = owner;
DBFunc.setOwner(current, owner);
}
}
return true;
}
/**
* Clear a plot.
*
@ -2417,7 +2450,8 @@ public class Plot {
if (current.owner == null || current.settings == null) {
// Invalid plot
// merged onto unclaimed plot
PlotSquared.debug("Ignoring invalid merged plot: " + current + " | " + current.owner);
PlotSquared
.debug("Ignoring invalid merged plot: " + current + " | " + current.owner);
continue;
}
tmpSet.add(current);

View File

@ -15,8 +15,7 @@ public class PlotMessage {
} catch (Throwable e) {
PlotSquared.debug(
PlotSquared.imp().getPluginName() + " doesn't support fancy chat for " + PlotSquared
.get().IMP
.getServerVersion());
.get().IMP.getServerVersion());
ChatManager.manager = new PlainChatManager();
reset(ChatManager.manager);
}

View File

@ -28,7 +28,8 @@ public class SinglePlotManager extends PlotManager {
@Override public boolean clearPlot(PlotArea plotArea, Plot plot, final Runnable whenDone) {
SetupUtils.manager.unload(plot.getWorldName(), false);
final File worldFolder = new File(PlotSquared.get().IMP.getWorldContainer(), plot.getWorldName());
final File worldFolder =
new File(PlotSquared.get().IMP.getWorldContainer(), plot.getWorldName());
TaskManager.IMP.taskAsync(new Runnable() {
@Override public void run() {
MainUtil.deleteDirectory(worldFolder);

View File

@ -209,7 +209,8 @@ public abstract class ChunkManager {
public abstract void unloadChunk(String world, ChunkLoc loc, boolean save, boolean safe);
public Set<ChunkLoc> getChunkChunks(String world) {
File folder = new File(PlotSquared.get().IMP.getWorldContainer(), world + File.separator + "region");
File folder =
new File(PlotSquared.get().IMP.getWorldContainer(), world + File.separator + "region");
File[] regionFiles = folder.listFiles();
HashSet<ChunkLoc> chunks = new HashSet<>();
if (regionFiles == null) {

View File

@ -10,6 +10,7 @@ import com.github.intellectualsites.plotsquared.plot.object.*;
import com.github.intellectualsites.plotsquared.plot.util.expiry.ExpireManager;
import com.google.common.base.Optional;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.UUID;
@ -18,7 +19,15 @@ public abstract class EventUtil {
public static EventUtil manager = null;
public abstract Rating callRating(PlotPlayer player, Plot plot, Rating rating);
/**
* Submit a plot rate event and return the updated rating
*
* @param player Player that rated the plot
* @param plot Plot that was rated
* @param rating Rating given to the plot
* @return Updated rating or null if the event was cancelled
*/
@Nullable public abstract Rating callRating(PlotPlayer player, Plot plot, Rating rating);
public abstract boolean callClaim(PlotPlayer player, Plot plot, boolean auto);
@ -50,6 +59,9 @@ public abstract class EventUtil {
public abstract void callMember(PlotPlayer initiator, Plot plot, UUID player, boolean added);
public abstract boolean callOwnerChange(PlotPlayer initiator, Plot plot, UUID newOwner,
UUID oldOwner, boolean hasOldOwner);
public void doJoinTask(final PlotPlayer player) {
if (player == null) {
return; //possible future warning message to figure out where we are retrieving null

View File

@ -427,7 +427,8 @@ public abstract class SchematicHandler {
* @return schematic if found, else null
*/
public Schematic getSchematic(String name) {
File parent = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.SCHEMATICS);
File parent =
MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.SCHEMATICS);
if (!parent.exists()) {
if (!parent.mkdir()) {
throw new RuntimeException("Could not create schematic parent directory");

View File

@ -103,7 +103,7 @@ public abstract class UUIDHandlerImplementation {
/*
* lazy UUID conversion:
* - Useful if the person misconfigured the database, or settings before
* PlotMe conversion
* PlotMe conversion
*/
if (!Settings.UUID.OFFLINE && !this.unknown.isEmpty()) {
TaskManager.runTaskAsync(new Runnable() {

View File

@ -388,8 +388,10 @@ public class ExpireManager {
PlotAnalysis changed = plot.getComplexity(null);
int changes = changed == null ? 0 : changed.changes_sd;
int modified = changed == null ? 0 : changed.changes;
PlotSquared.debug("$2[&5Expire&dManager$2] &cDeleted expired plot: " + plot + " User:" + plot.owner
+ " Delta:" + changes + "/" + modified + " Connected: " + StringMan.getString(plots));
PlotSquared.debug(
"$2[&5Expire&dManager$2] &cDeleted expired plot: " + plot + " User:" + plot.owner
+ " Delta:" + changes + "/" + modified + " Connected: " + StringMan
.getString(plots));
PlotSquared.debug("$4 - Area: " + plot.getArea());
if (plot.hasOwner()) {
PlotSquared.debug("$4 - Owner: " + UUIDHandler.getName(plot.owner));

View File

@ -78,7 +78,8 @@ public class PlotAnalysis {
TaskManager.runTaskAsync(new Runnable() {
@Override public void run() {
Iterator<Plot> iterator = plots.iterator();
PlotSquared.debug(" - $1Reducing " + plots.size() + " plots to those with sufficient data");
PlotSquared.debug(
" - $1Reducing " + plots.size() + " plots to those with sufficient data");
while (iterator.hasNext()) {
Plot plot = iterator.next();
if (plot.getSettings().ratings == null || plot.getSettings().getRatings()
@ -168,15 +169,17 @@ public class PlotAnalysis {
}
}
PlotSquared.debug(" - $1Waiting on plot rating thread: " + mi.intValue() * 100 / plots.size()
+ "%");
PlotSquared.debug(
" - $1Waiting on plot rating thread: " + mi.intValue() * 100 / plots.size()
+ "%");
try {
ratingAnalysis.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
PlotSquared.debug(" - $1Processing and grouping single plot analysis for bulk processing");
PlotSquared
.debug(" - $1Processing and grouping single plot analysis for bulk processing");
for (int i = 0; i < plots.size(); i++) {
Plot plot = plots.get(i);
PlotSquared.debug(" | " + plot);

Binary file not shown.

View File

@ -1,6 +1,7 @@
confirm:
failed_confirm: $2No tienes acciones pendientes por confirmar.
requires_confirm: '$2¿Estas seguro de realizar este comando?: $1%s$2?&-$2¡No hay vuelta atras! Si estas seguro escribe: $1/plot confirm'
expired_confirm: $2La confirmación ha expirado, por favor ejecute el comando otra vez!
move:
move_success: $4La parcela fue movida correctamente.
copy_success: $4La parcela fue copiada correctamente.
@ -16,27 +17,30 @@ web:
compass:
compass_target: $4Parcela seleccionada con la brujula completada.
cluster:
cluster_available_args: '$1Los siguientes subcomandos estan disponibles: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, $4tp$2, $4sethome'
cluster_available_args: '$1Los siguientes subcomandos estan disponibles: $4list$2,
$4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2,
$4info$2, $4tp$2, $4sethome'
cluster_list_heading: $2Hay $1%s$2 agrupaciones en este mundo.
cluster_list_element: $2 - $1%s&-
cluster_intersection: $2El area propuesta se solapa con $1%s$2 de la parcela existente.
cluster_added: $4Creacion de agrupaciones completado.
cluster_deleted: $4Borrado de agrupaciones completado.
cluster_resized: $4Reescalado de agrupaciones completado.
cluster_added: $4Creacion de agrupaciones completado.
cluster_deleted: $4Borrado de agrupaciones completado.
cluster_resized: $4Reescalado de agrupaciones completado.
cluster_added_user: $4Añadido usuario a la agrupacion con exito.
cannot_kick_player: $2Tu no puedes expulsar a este jugador.
cannot_kick_player: $2Tu no puedes expulsar a este jugador.
cluster_invited: '$1Has sido invitado a la siguiente agrupacion: $2%s'
cluster_removed: '$1Has sido eliminado de la agrupacion: $2%s'
cluster_kicked_user: $4Usuario expulsado con exito.
cluster_kicked_user: $4Usuario expulsado con exito.
invalid_cluster: '$1Nombre de agrupacion invalido: $2%s'
cluster_not_added: $2Este jugador no fue añadido a la agrupacion de parcelas.
cluster_cannot_leave: $1Debes eliminar o transferir el dueño antes de salir.
cluster_cannot_leave: $1Debes eliminar o transferir el dueño antes de salir.
cluster_added_helper: $4Ayudante añadido a la agrupacion con exito.
cluster_removed_helper: $4Ayudante eliminado de la agrupacion con exito.
cluster_regenerated: $4Regeneracion de la agrupacion comenzada con exito.
cluster_teleporting: $4Teletransportando...
cluster_info: '$1Agrupacion actual: $2%id%&-$1Nombre: $2%name%&-$1Propietario: $2%owner%&-$1Tamaño: $2%size%&-$1Derechos: $2%rights%'
cluster_current_plotid: '$1Parcela actual: $2%s'
cluster_info: '$1Agrupacion actual: $2%id%&-$1Nombre: $2%name%&-$1Propietario: $2%owner%&-$1Tamaño:
$2%size%&-$1Derechos: $2%rights%'
cluster_outside: '$2El área propuesta está fuera del área de la parcela: %s0'
border:
border: $2Estas en las afueras del borde del mapa.
unclaim:
@ -63,7 +67,7 @@ records:
notify_leave: $2%player $2abandona tu parcela ($1%plot$2)
swap:
swap_overlap: $2Las áreas propuestas no pueden superponerse.
swap_dimensions: $2El area propuesta debe tener dimensiones comparables.
swap_dimensions: $2El area propuesta debe tener dimensiones comparables.
swap_syntax: $2/plot swap <plot id>
swap_success: $4Intercambio de parcelas completado
started_swap: $2 Intercambiando las tareas de las parcelas. Serás notificado cuando el proceso haya terminado.
@ -77,7 +81,7 @@ comment:
no_perm_inbox_modify: $2No tienes permisos para modificar esta bandeja de entrada.
no_plot_inbox: $2Debes permanecer en la parcela para poder escribir el comentario.
comment_removed: $4Comentario eliminado satisfactoriamente/s:n$2 - '$3%s$2'
comment_added: $4Te han dejado un comentario.
comment_added: $4Te han dejado un comentario.
comment_header: $2&m---------&r $1Comentarios $2&m---------&r
inbox_empty: $2No hay comentarios.
console:
@ -100,7 +104,7 @@ blocked command:
command_blocked: $2El comando no esta permitido en esta parcela.
done:
done_already_done: $2Esta parcela esta finalizada.
done_not_done: $2Esta parcela no esta finalizada.
done_not_done: $2Esta parcela no esta finalizada.
done_insufficient_complexity: $2Esta parcela es muy simple. Porfavor añade mas detalles antes de usar este comando.
done_success: $1Parcela finalizada con exito.
done_removed: $1Ya puedes continuar construyendo en esta parcela.
@ -111,6 +115,7 @@ ratings:
rating_not_your_own: $2No puedes valorar tu propia parcela.
rating_not_done: $2Solo puedes valorar parcelas terminadas.
rating_not_owned: $2No puedes valorar una parcela que no pertenece a nadie.
ratings_purged: $2Calificaciones purgadas para esta parcela
tutorial:
rate_this: $2¡Valora esta parcela!
comment_this: '$2Deja tu opinion de esta parcela: %s'
@ -121,8 +126,9 @@ economy:
cannot_buy_own: $2No puedes comprar tu propia parcela.
plot_sold: $4Tu parcela; $1%s0$4, se ha vendido por $1%s1$4 para $1$%s2
cannot_afford_merge: $2Tu no puedes permitirte combinar las parcelas. Cuesta $1%s
added_balance: $1%s $2 fue añadido a tu fondo de dinero.
removed_balance: $1%s $2 fue removido de tu fondo de dinero.
added_balance: $1%s $2 fue añadido a tu fondo de dinero.
removed_balance: $1%s $2 fue removido de tu fondo de dinero.
removed_granted_plot: $2Usaste %s concesiones de trama, te quedan 5 $1%s
setup:
setup_init: '$1Uso: $2/plot setup <cantidad>'
setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1Espectando: $2%s2 $1Default: $2%s3'
@ -130,15 +136,21 @@ setup:
setup_valid_arg: $2Valor $1%s0 $2ajustado a %s1
setup_finished: $4Deberias haber sido teletransportado al mundo creado, sino tendras que generarlo manualmente usando el bukkit.yml
setup_world_taken: $2%s este mundo ya esta registrado.
setup_missing_world: $2 Necesitas especificar el nombre del mundo ($1/plot setup &l<world>$1 <generator>$2)&-$1Additional commands:&-$2 - $1/plot setup <value>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel
setup_missing_generator: $2Tienes que especificar un generador ($1/plot setup <world> &l<generator>&r$2)&-$1Additional commands:&-$2 - $1/plot setup <value>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel
setup_missing_world: $2 Necesitas especificar el nombre del mundo ($1/plot setup
&l<world>$1 <generator>$2)&-$1Comandos adicionales:&-$2 - $1/plot setup <value>&-$2
- $1/plot setup back&-$2 - $1/plot setup cancel
setup_missing_generator: $2Tienes que especificar un generador ($1/plot setup <world>
&l<generator>&r$2)&-$1Comandos adicionales:&-$2 - $1/plot setup <value>&-$2 - $1/plot
setup back&-$2 - $1/plot setup cancel
setup_invalid_generator: '$2Generador inválido. Opciones posibles: %s'
schematics:
schematic_missing_arg: '$2Necesitas especificar un argumento. Valores posibles: $1test <name>$2 , $1save$2 , $1paste $2, $1exportall'
schematic_missing_arg: '$2Necesitas especificar un argumento. Valores posibles:
$1test <name>$2 , $1save$2 , $1paste $2, $1exportall'
schematic_invalid: '$2Este no es un schematic valido. Razon: $2%s'
schematic_valid: $2Este es un schematic valido.
schematic_paste_failed: $2Fallo al pegar el schematic.
schematic_paste_success: $4El schematic ha sido copiado correctamente.
schematic_too_large: $2¡La trama es demasiado grande para esta acción!
titles:
title_entered_plot: '$1Parcela: %world%;%x%;%z%'
title_entered_plot_sub: $4Propiedad de %s
@ -148,12 +160,9 @@ core:
task_start: Comenzando la tarea...
prefix: $3[$1P2$3] $2
enabled: $1PlotSquared esta activado.
example_message: $2Esto es un ejemplo de mensaje &k!!!
reload:
reloaded_configs: $1Las traducciones y opciones del mundo han sido cargados.
reload_failed: $2Fallo al cargar las configuraciones de los archivos.
bar api:
bossbar_clearing: '$2Limpiando parcela: $1%id%'
desc:
desc_set: $2Descripcion de la parcela.
desc_unset: $2Descripcion de la parcela no especificada.
@ -163,6 +172,7 @@ alias:
missing_alias: $2Necesitas especificar un alias.
alias_too_long: $2El alias debe ser < de 50 caracteres
alias_is_taken: $2Ese alias ya ha sido utilizado.
alias_removed: $2Parcela alias eliminado
position:
missing_position: '$2Necesitas especificar una posicion. Valores posibles: $1none'
position_set: $1Hogar establecido en tu posicion actual.
@ -181,6 +191,7 @@ permission:
cant_claim_more_plots_num: $2No puedes claimear mas de $1%s $2parcelas a la vez.
you_be_denied: $2No tienes permitido entrar en esta parcela.
merge_request_confirm: Peticion de agrupamiento de %s
cant_claim_more_clusters: $2No puedes reclamar más grupos.
merge:
merge_not_valid: $2La peticion de agrupacion ya no es valida.
merge_accepted: $2La peticion de agrupacion ha sido aceptada.
@ -191,14 +202,6 @@ merge:
unlink_required: $2Se requiere una desconexion para hacer esto.
unlink_impossible: $2Solo puedes desconectar una mega-parcela.
unlink_success: $2Se han desconectado las parcelas.
commands:
not_valid_subcommand: $2No es un subcomando valido.
did_you_mean: '$2Quisiste decir: $1%s'
name_little: $2%s0 el nombre es muy corto, $1%s1$2<$1%s3
no_commands: $2No tienes permitido utilizar cualquier subcomando.
subcommand_set_options_header: '$2Valores posibles: '
command_syntax: '$1Usos: $2%s'
flag_tutorial_usage: '$1Haz que un administrador coloque la bandera: $2%s'
errors:
invalid_player_wait: '$2Jugador no encontrado: $1%s$2, buscando. Prueba mas tarde.'
invalid_player: '$2Jugador no encontrado: $1%s$2.'
@ -212,15 +215,15 @@ errors:
not_valid_world: $2Esto no es un mundo valido. (caso sensitivo)
not_valid_plot_world: $2Esta no es una parcela valida. (caso sensitivo)
no_plots: $2No tienes ninguna parcela.
not_using_plotme: $2Este server utiliza el $1PlotSquared $2plot sistema de mantenimiento. Utilice el $1/ps $2o $1/p2 $2o $1/plot $2en vez.
wait_for_timer: $2El temporizador del selector de bloque esta ligado a ti o a la parcela actual. Por favor espere a que termine.
invalid_command_flag: '$2Indicador de comando no válido: %s0'
error: '$2Ocurrió un error: %s'
not_loaded: $2No se pudo cargar la trama
paste:
debug_report_created: '$1Se ha enviado una depuracion a: $1%url%'
purge:
purge_syntax: Usa /plot purge <x;z|player|unowned|unknown|all> <world>
purge_success: $4Se ha limpiado %s parcelas.
trim:
trim_syntax: Usa /plot trim <all|x;y> <world>
trim_in_progress: La tarea de recorte esta en proceso!
not_valid_hybrid_plot_world: Es necesario el dueño de las parcelas para realizar esta accion.
block list:
@ -253,6 +256,7 @@ invalid:
no_such_plot: $2No existe dicha parcela.
player_has_not_been_on: $2Este usuario no ha estado en el mundo de parcelas.
found_no_plots: $2No se ha encontrado parcelas con esta informacion.
found_no_plots_for_player: '$2No se encontraron parcelas para jugador: %s'
camera:
camera_started: $2Has entrado en modo camara para la parcela $1%s
camera_stopped: $2Ya no estas en modo camara.
@ -263,13 +267,16 @@ need:
need_plot_world: $2Necesitas especificar un mundo de parcelas.
need_user: $2Necesitas especificar un usuario.
info:
none: Ninguno.
unknown: Desconocido.
everyone: Todos.
none: Ninguno
unknown: Desconocido
everyone: Todos
plot_unowned: $2La parcela actual tiene que tener un propietario para ejecutar esa accion.
plot_info_unclaimed: $2Parcela $1%s$2 aun no esta claimeada.
plot_info_header: $3&m---------&r $1INFO $3&m---------
plot_info: '$1ID: $2%id%$1&-$1Alias: $2%alias%$1&-$1Propietario: $2%owner%$1&-$1Bioma: $2%biome%$1&-$1Puede construir: $2%build%$1&-$1Clasificacion: $2%rating%&-$1Confianza: $2%trusted%$1&-$1Miembros: $2%members%$1&-$1Denegados: $2%denied%$1&-$1Flags: $2%flags%'
plot_info: '$1ID: $2%id%$1&-$1Alias: $2%alias%$1&-$1Propietario: $2%owner%$1&-$1Bioma:
$2%biome%$1&-$1Puede construir: $2%build%$1&-$1Clasificacion: $2%rating%&-$1Confianza:
$2%trusted%$1&-$1Miembros: $2%members%$1&-$1Denegados: $2%denied%$1&-$1Flags:
$2%flags%'
plot_info_footer: $3&m---------&r $1INFO $3&m---------
plot_info_trusted: $1Confianza:$2 %trusted%
plot_info_members: $1Miembros:$2 %members%
@ -283,6 +290,10 @@ info:
plot_info_size: $1Tamaño:$2 %size%
plot_user_list: ' $1%user%$2,'
info_syntax_console: $2/plot info X;Y
now: Ahora
never: Nunca
plot_info_seen: $1Seen:$2 %seen%
plot_flag_list: $1%s0:%s1$2
working:
generating_component: $1Empezando a generar componentes desde tus opciones.
clearing_plot: $2Limpiando parcela async.
@ -290,6 +301,7 @@ working:
plot_not_claimed: $2Parcela no reclamada.
plot_is_claimed: $2Esta parcela ya esta reclamada.
claimed: $4Has reclamado con exito esta parcela.
deleting_done: $4Eliminar completado! Tomó %sms.
list:
comment_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1Lista de %amount% comentarios.
clickable: ' (interactive)'
@ -298,6 +310,7 @@ list:
plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner.
plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner.
plot_list_footer: $2>> $1%word% un total $2%num% $1claimeado %plot%.
area_list_header_paged: $2(Página $1%cur$2/$1%max$2) $1lista de %amount% areas
left:
left_plot: $2Has abandonado una parcela.
chat:
@ -305,6 +318,7 @@ chat:
plot_chat_forced: $2Este mundo obliga a usar el chat de parcela.
plot_chat_on: $4Chat de parcela activado.
plot_chat_off: $4Chat de parcela desactivado.
plot_chat_spy_format: '$2[$1Plot Spy$2][$1%plot_id%$2] $1%sender%$2: $1%msg%'
deny:
denied_removed: $4Este usuario ya no esta denegado en esta parcela.
denied_added: $4Has denegado este usuario de tu parcela.
@ -325,6 +339,7 @@ flag:
flag_not_added: $2La flag no se ha podido añadir.
flag_removed: $4Flag removida con exito.
flag_added: $4Flag añadida con exito.
not_valid_flag_suggested: '$2Eso no es una bandera válida. Querías decir: $1%s'
trusted:
trusted_added: $4Has añadido un usuario de confianza en esta parcela.
trusted_removed: $4Has removido un usuario de confianza en esta parcela.
@ -341,17 +356,39 @@ member:
owner:
set_owner: $4Has añadido con exito el dueño de la parcela.
now_owner: $4Ahora eres dueño de esta parcela %s
set_owner_cancelled: $2La setowner la acción fue cancelada
signs:
owner_sign_line_1: '$1ID: $1%id%'
owner_sign_line_2: '$1Propietario:'
owner_sign_line_3: $2%plr%
owner_sign_line_4: $3Claimeado
help:
help_header: "$3&m---------&r $1Plot\xb2 Ayuda $3&m---------"
help_header: $3&m---------&r $1Plot² Ayuda $3&m---------
help_page_header: '$1Categoria: $2%category%$2,$1 Página: $2%current%$3/$2%max%$2'
help_footer: "$3&m---------&r $1Plot\xb2 Ayuda $3&m---------"
help_footer: $3&m---------&r $1Plot² Ayuda $3&m---------
help_info_item: $1/plot help %category% $3- $2%category_desc%
help_item: $1%usage% [%alias%]&- $3- $2%desc%&-
direction: '$1Direccion actual: %dir%'
'-':
custom_string: '-'
commandconfig:
not_valid_subcommand: $2No es un subcomando valido.
did_you_mean: '$2Quisiste decir: $1%s'
name_little: $2%s0 el nombre es muy corto, $1%s1$2<$1%s3
no_commands: $2No tienes permitido utilizar cualquier subcomando.
subcommand_set_options_header: '$2Valores posibles: '
command_syntax: '$1Usos: $2%s'
flag_tutorial_usage: '$1Haz que un administrador coloque la bandera: $2%s'
bar api: {}
set:
set_attribute: $4Establecer con éxito %s0 ajustado a %s1
cap:
entity_cap: $2No tienes permitido engendrar más mobs
near:
plot_near: '$1Jugadores: %s0'
kick:
you_got_kicked: $4Te patearon!
grants:
granted_plots: '$1Resultado: $2%s $1grants left'
granted_plot: $1You granted %s0 plot to $2%s1
granted_plot_failed: '$1Subvención fallida: $2%s'

View File

@ -19,9 +19,9 @@ web:
compass:
compass_target: $4Lotto mirato con successo con la bussola
cluster:
cluster_available_args: '$1Sono disponibili i seguenti sotto comandi: $4list$2, $4create$2,
$4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2,
$4tp$2, $4sethome'
cluster_available_args: '$1Sono disponibili i seguenti sotto comandi: $4list$2,
$4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2,
$4info$2, $4tp$2, $4sethome'
cluster_list_heading: $2Ci sono $1%s$2 cluster in questo mondo
cluster_list_element: $2 - $1%s&-
cluster_intersection: '$2L''area proposta si sovrappone a: %s0'
@ -50,12 +50,9 @@ unclaim:
worldedit masks:
worldedit_delayed: $2Attendi durante l'elaborazione della tua azione WorldEdit...
worldedit_run: '$2Scuse per il ritardo. Ora in esecuzione: %s'
require_selection_in_mask: $2%s della tua selezione non è all'interno del tuo lotto.
Puoi apportare modifiche solo dentro il tuo lotto.
worldedit_volume: $2Non puoi selezionare un volume di %current%. Il volume massimo
che puoi modificare è %max%.
worldedit_iterations: $2Non puoi iterare %current% volte. Il massimo numero di
iterazioni consentite è %max%.
require_selection_in_mask: $2%s della tua selezione non è all'interno del tuo lotto. Puoi apportare modifiche solo dentro il tuo lotto.
worldedit_volume: $2Non puoi selezionare un volume di %current%. Il volume massimo che puoi modificare è %max%.
worldedit_iterations: $2Non puoi iterare %current% volte. Il massimo numero di iterazioni consentite è %max%.
worldedit_unsafe: $2L'accesso a quel comando è stato bloccato
worldedit_bypass: $2&oPer bypassare le tue restrizioni usa $4/plot wea
worldedit_bypassed: $2Attualmente bypassando le restrizioni di WorldEdit.
@ -139,15 +136,15 @@ setup:
setup_invalid_arg: '$2%s0 non è un argomento valido per il passaggio %s1. Per cancellare il setup usa: $1/plot setup cancel'
setup_valid_arg: $2Valore $1%s0 $2impostato a %s1
setup_finished: $4Dovresti essere stato teletrasportato nel mondo creato. Altrimenti
sarà necessario impostare manualmente il generatore usando il file bukkit.yml o il tuo plugin
di gestione dei mondi scelto.
sarà necessario impostare manualmente il generatore usando il file bukkit.yml
o il tuo plugin di gestione dei mondi scelto.
setup_world_taken: $2%s è già un mondo lotti
setup_missing_world: $2Devi specificare un nome per il mondo ($1/plot setup &l<mondo>$1
<generatore>$2)&-$1Comandi aggiuntivi:&-$2 - $1/plot setup <valore>&-$2 - $1/plot
setup back&-$2 - $1/plot setup cancel
setup_missing_generator: $2Devi specificare un generatore ($1/plot setup <mondo>
&l<generatore>&r$2)&-$1Comandi aggiuntivi:&-$2 - $1/plot setup <valore>&-$2 - $1/plot
setup back&-$2 - $1/plot setup cancel
&l<generatore>&r$2)&-$1Comandi aggiuntivi:&-$2 - $1/plot setup <valore>&-$2 -
$1/plot setup back&-$2 - $1/plot setup cancel
setup_invalid_generator: '$2Generatore non valido. Opzioni possibili: %s'
schematics:
schematic_too_large: $2Il lotto è troppo grande per questa azione!
@ -271,7 +268,7 @@ invalid:
no_such_plot: $2Quel lotto non esiste
player_has_not_been_on: $2Quel giocatore non è mai stato nel mondo lotti
found_no_plots: $2Non sono stati trovati lotti con la tua ricerca
found_no_plots_for_player: $2Nessun lotto trovato per il giocatore: %s
found_no_plots_for_player: '$2Nessun lotto trovato per il giocatore: %s'
camera:
camera_started: $2Hai inserito la modalità telecamera per il lotto $1%s
camera_stopped: $2Non sei più in modalità telecamera
@ -293,8 +290,9 @@ info:
plot_info_unclaimed: $2Il lotto $1%s$2 non è ancora claimato
plot_info_header: $3&m---------&r $1INFO $3&m---------
plot_info: '$1ID: $2%id%$1&-$1Alias: $2%alias%$1&-$1Proprietario: $2%owner%$1&-$1Bioma:
$2%biome%$1&-$1Puoi costruire: $2%build%$1&-$1Valutazione: $2%rating%&-$1Visto: $2%seen%&-$1Membri fidati:
$2%trusted%$1&-$1Membri: $2%members%$1&-$1Bloccati: $2%denied%$1&-$1Flag: $2%flags%'
$2%biome%$1&-$1Puoi costruire: $2%build%$1&-$1Valutazione: $2%rating%&-$1Visto:
$2%seen%&-$1Membri fidati: $2%trusted%$1&-$1Membri: $2%members%$1&-$1Bloccati:
$2%denied%$1&-$1Flag: $2%flags%'
plot_info_footer: $3&m---------&r $1INFO $3&m---------
plot_info_trusted: $1Membri fidati:$2 %trusted%
plot_info_members: $1Membri:$2 %members%
@ -365,8 +363,8 @@ trusted:
plot_removed_user: $1Il lotto %s in cui eri aggiunto è stato eliminato a causa dell'inattività del proprietario
member:
removed_players: $2Rimossi %s giocatori dal lotto.
already_owner: '$2L''utente %s0 è già il proprietario di questo lotto.'
already_added: '$2L''utente %s0 è già aggiunto a quella categoria.'
already_owner: $2L'utente %s0 è già il proprietario di questo lotto.
already_added: $2L'utente %s0 è già aggiunto a quella categoria.
member_added: $4Quell'utente ora può costruire quando il proprietario è online
member_removed: $1Hai rimosso con successo un utente dal lotto
member_was_not_added: $2Quel giocatore non è aggiunto a questo lotto
@ -374,6 +372,7 @@ member:
owner:
set_owner: $4Hai impostato correttamente il proprietario del lotto
now_owner: $4Sei ora proprietario del lotto %s
set_owner_cancelled: $2L'azione del proprietario è stata annullata
signs:
owner_sign_line_1: '$1ID: $1%id%'
owner_sign_line_2: '$1Proprietario:'

View File

@ -1,12 +1,12 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# Translate by Protocodyne Korean Translate team
# First Author <bmr02039@protocodyne.com>, 2015.
confirm:
failed_confirm: $2이 작업이 완료되기 위한 행동이 당신에게 존재하지 않습니다!
requires_confirm: '$2정말로 실행되길 원하나요: $1%s$2?&-$2이 작업은 되돌릴 수
없습니다! 확실하다면 다음 명령어를 입력하세요: $1/plot confirm'
requires_confirm: '$2정말로 실행되길 원하나요: $1%s$2?&-$2이 작업은 되돌릴 수 없습니다! 확실하다면 다음 명령어를 입력하세요:
$1/plot confirm'
expired_confirm: $2확인이 만료되었습니다. 명령을 다시 실행하십시오.!
move:
move_success: $4성공적으로 땅이 옮겨졌습니다.
copy_success: $4성공적으로 땅이 복사되었습니다.
@ -20,14 +20,13 @@ web:
load_list: '$2schematic로드를 원한다면, 다음명령어를 사용하세요 $1/plot load #'
save_success: $1성공적으로 저장되었습니다!
compass:
compass_target: $4Successfully targeted plot with compass
compass_target: $4나침반과 함께 음모를 성공적으로 지정했습니다.
cluster:
cluster_available_args: '$1다음 하위명령어가 사용 가능합니다.: $4list$2, $4create$2,
$4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2,
$4tp$2, $4sethome'
cluster_available_args: '$1다음 하위명령어가 사용 가능합니다.: $4list$2, $4create$2, $4delete$2,
$4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, $4tp$2, $4sethome'
cluster_list_heading: $2이 월드에 $1%s$2 cluster가 있습니다
cluster_list_element: $2 - $1%s&-
cluster_intersection: $2The proposed area overlaps with $1%s$2 existing cluster/s
cluster_intersection: $2제안 된 영역이 겹칩니다 와 $1%s$2 기존의 cluster
cluster_added: $4cluster가 성공적으로 생성되었습니다.
cluster_deleted: $4cluster가 성공적으로 삭제되었습니다.
cluster_resized: $4cluster가 성공적으로 재조정 되었습니다.
@ -43,9 +42,9 @@ cluster:
cluster_removed_helper: $4helper가 성공적으로 cluster에서 제거되었습니다
cluster_regenerated: $4성공적으로 cluster가 재생성 되었습니다
cluster_teleporting: $4이동중...
cluster_info: '$1현재 cluster: $2%id%&-$1이름: $2%name%&-$1소유자: $2%owner%&-$1크기:
$2%size%&-$1Rights: $2%rights%'
cluster_current_plotid: '$1현재 땅: $2%s'
cluster_info: '$1현재 cluster: $2%id%&-$1이름: $2%name%&-$1소유자: $2%owner%&-$1크기: $2%size%&-$1Rights:
$2%rights%'
cluster_outside: '$2제안 된 영역이 플롯 영역 밖에 있습니다: %s0'
border:
border: $2당신은 현재 지도의 경계 밖에 있습니다
unclaim:
@ -54,7 +53,8 @@ unclaim:
worldedit masks:
worldedit_delayed: $2당신의 WorldEdit 행동을 처리중이니 기다려주시기 바랍니다...
worldedit_run: '$2처리가 지연되어 죄송합니다. 해당 명령어를 실행합니다: %s'
require_selection_in_mask: $2%s of your selection is not within your plot mask. You can only make edits within your plot.
require_selection_in_mask: $2%s 선택한 마스크가 플롯 마스크 안에 있지 않습니다..
플롯 내에서만 편집 할 수 있습니다..
worldedit_volume: $2당신은 a volume of %current%를 선택 할 수 없습니다. 당신이 수정할 수 있는 최대부피는 %max% 입니다.
worldedit_iterations: $2당신은 %current%번 반복 적용시킬 수 없습니다. 당신이 수정가능한 최대 부피는 %max% 입니다.
worldedit_unsafe: $2해당 명령어는 실행 될 수 없습니다.
@ -84,10 +84,10 @@ comment:
invalid_inbox: '$2올바르지 않은 메일함 입니다..&-$1Accepted values: %s'
no_perm_inbox: $2당신은 해당 메일함에 권한이 없습니다
no_perm_inbox_modify: $2당신은 해당 메일함을 수정할 권한이 없습니다
no_plot_inbox: $2You must stand in or supply a plot argument
no_plot_inbox: $2당신은 서 있거나 줄거리를 제공해야합니다
comment_removed: $4comment가 성공적으로 삭제되었습니다/s:n$2 - '$3%s$2'
comment_added: $4A comment가 남아있습니다
comment_header: $2&m---------&r $1Comments $2&m---------&r
comment_header: $2&m---------&r $1댓글 $2&m---------&r
inbox_empty: $2comment가 없습니다
console:
not_console: $2보안상의 이유로, 이 명령어는 Console에서만 입력 가능합니다.
@ -101,8 +101,7 @@ clipboard:
pasted: $4해당 땅은 성공적으로 붙여넣어졌습니다. 해당 땅은 클립보드로부터 제거됩니다.
paste_failed: '$2선택된 땅의 복사가 실패했습니다. 사유: $2%s'
no_clipboard: $2클립보드에 복사된 땅이 존재하지 않습니다
clipboard_info: '$2현재 선택 - Plot ID: $1%id$2, Width: $1%width$2, Total
Blocks: $1%total$2'
clipboard_info: '$2현재 선택 - Plot ID: $1%id$2, Width: $1%width$2, Total Blocks: $1%total$2'
toggle:
toggle_enabled: '$2가능한 세팅: %s'
toggle_disabled: '$2불가능한 세팅: %s'
@ -121,6 +120,7 @@ ratings:
rating_not_your_own: $2당신은 자신의 땅에 투표 할 수 없습니다
rating_not_done: $2당신은 완료된 땅에만 투표 할 수 있습니다.
rating_not_owned: $2당신은 소유자가 없는 땅에 투표 할 수 없습니다
ratings_purged: $2Purged ratings for this plot
tutorial:
rate_this: $2이 땅에 투표해보세요!
comment_this: '$2이땅에 피드백을 남겨보세요: %s'
@ -129,43 +129,47 @@ economy:
cannot_afford_plot: $2당신은 이 땅을 구입 할 수 없습니다. 이 땅의 가격은 $1%s 입니다
not_for_sale: $2이 땅은 판매 불가능합니다
cannot_buy_own: $2당신은 본인의 땅을 구입 불가능 합니다
plot_sold: $4당신의 땅; $1%s0$4, has been sold to $1%s1$4 for $1$%s2
plot_sold: $4당신의 땅; $1%s0$4, 판매 된 $1%s1$4 에 대한 $1$%s2
cannot_afford_merge: $2당신은 이 땅을 함칠 수 없습니다. 이 땅의 가격은 $1%s 입니다
added_balance: $1%s $2이 당신의 통장에 추가되었습니다
removed_balance: $1%s $2이 당신의 통장에서 빠져나갔습니다
removed_granted_plot: $2너는 사용했다 %s 계획 교부금 (들), 당신이있어 $1%s $2왼쪽
setup:
setup_init: '$1Usage: $2/plot setup <value>'
setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1Expecting: $2%s2 $1Default: $2%s3'
setup_invalid_arg: '$2%s0 는 올바르지 않은 값입니다 %s1. 설정 취소를 원하시면
다음 명령어를 사용하십시오: $1/plot setup cancel'
setup_init: '$1용법: $2/plot setup <value>'
setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1기대: $2%s2 $1태만: $2%s3'
setup_invalid_arg: '$2%s0 는 올바르지 않은 값입니다 %s1. 설정 취소를 원하시면 다음 명령어를 사용하십시오: $1/plot
setup cancel'
setup_valid_arg: $2Value $1%s0 $2set to %s1
setup_finished: $4당신은 만들어진 World로 이동되있어야 합니다. 그렇지 않으면 당신은 bukkit.yml를 통하여 워드를 설정하거나 다중월드 플러그인을 사용하여 월드를 생성하여야 합니다.
setup_finished: $4당신은 만들어진 World로 이동되있어야 합니다. 그렇지 않으면 당신은 bukkit.yml를 통하여 워드를 설정하거나
다중월드 플러그인을 사용하여 월드를 생성하여야 합니다.
setup_world_taken: $2%s 는 이미 등록된 Plot World 입니다
setup_missing_world: $2당신은 월드의 이름을 지정해야 합니다 ($1/plot setup &l<world>$1 <generator>$2)&-$1Additional commands:&-$2 - $1/plot setup <value>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel
setup_missing_generator: $2당신은 생성기를 지정해야 합니다 ($1/plot setup <world> &l<generator>&r$2)&-$1Additional commands:&-$2 - $1/plot setup <value>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel
setup_missing_world: $2당신은 월드의 이름을 지정해야 합니다 ($1/plot setup &l<world>$1 <generator>$2)&-$1Additional
commands:&-$2 - $1/plot setup <value>&-$2 - $1/plot setup back&-$2 - $1/plot setup
cancel
setup_missing_generator: $2당신은 생성기를 지정해야 합니다 ($1/plot setup <world> &l<generator>&r$2)&-$1Additional
commands:&-$2 - $1/plot setup <value>&-$2 - $1/plot setup back&-$2 - $1/plot setup
cancel
setup_invalid_generator: '$2올바르지 않은 생성기 입니다. 가능한 옵션: %s'
schematics:
schematic_missing_arg: '$2당신은 인수를 지정해야 합니다. 가능한 값: $1test
<name>$2 , $1save$2 , $1paste $2, $1exportall'
schematic_missing_arg: '$2당신은 인수를 지정해야 합니다. 가능한 값: $1test <name>$2 , $1save$2 ,
$1paste $2, $1exportall'
schematic_invalid: '$2이것은 올바르지 않은 schematic파일 입니다. 사유: $2%s'
schematic_valid: $2이것은 올바른 schematic파일 입니다
schematic_paste_failed: $2schematic 적용에 실패하엿습니다
schematic_paste_success: $4schematic이 성공적으로 적용되었습니다
schematic_too_large: $2플롯이 너무 커서이 작업을 수행 할 수 없습니다!
titles:
title_entered_plot: '$1Plot: %world%;%x%;%z%'
title_entered_plot_sub: $4Owned by %s
title_entered_plot_sub: $4에게 소유 된 %s
prefix_greeting: '$1%id%$2> '
prefix_farewell: '$1%id%$2> '
core:
task_start: 작업을 시작합니다...
prefix: $3[$1P2$3] $2
enabled: $1PlotSquared 가 실행됩니다
example_message: $2This Korean Translation Make by Protocodyne &k!!!
reload:
reloaded_configs: $1번역 파일 및 월드 설정 파일이 성공적으로 리로드 되었습니다
reload_failed: $2설정파일의 리로드에 실패하였습니다
bar api:
bossbar_clearing: '$2Clearing plot: $1%id%'
desc:
desc_set: $2Plot 설명 설정
desc_unset: $2Plot 설명 설정취소
@ -175,6 +179,7 @@ alias:
missing_alias: $2당신은 별명을 설정해야 합니다
alias_too_long: $2별명은 50자 이내여야 합니다
alias_is_taken: $2이 별명은 이미 존재합니다
alias_removed: $2플롯 별칭이 제거되었습니다
position:
missing_position: '$2당신은 위치를 지정해야합니다. 가능한 값: $1none'
position_set: $1Home 위치를 현재 위치로 지정합니다
@ -193,24 +198,18 @@ permission:
cant_claim_more_plots_num: $2당신은 한번에 $1%s $2plots보다 더 많이 소유할 수 없습니다
you_be_denied: $2당신은 이 땅에 들어갈 수 없습니다
merge_request_confirm: 병합요청이 들어왔습니다 %s
cant_claim_more_clusters: $2더 많은 클러스터를 청구 할 수 없습니다.
merge:
merge_not_valid: $2이 병합 요청은 더이상 유효하지 않습니다
merge_accepted: $2병합 요청이 수락되었습니다
success_merge: $2땅이 병합되었습니다
merge_requested: $2병합요청이 성공적으로 전송되었습니다
no_perm_merge: '$2당신은 이 땅의 소유자가 아닙니다: $1%plot%'
no_available_automerge: $2당신은 지정한 방향으로 인접한 plots를 소유하지 않았거나 plots를 필요한 크기로 합병 할 수 없습니다.
no_available_automerge: $2당신은 지정한 방향으로 인접한 plots를 소유하지 않았거나 plots를 필요한 크기로 합병 할
수 없습니다.
unlink_required: $2An unlink는 이것을 하는데 요구 됩니다.
unlink_impossible: $2당신은 오직 mega-plot만 unlink 할 수 있습니다
unlink_success: $2성공적으로 plots을 unlink 하였습니다.
commands:
not_valid_subcommand: $2이것은 유효하지 않은 하위 명령어 입니다
did_you_mean: '$2이것을 명령어를 의미하나요: $1%s'
name_little: $2%s0 아름이 너무 짧습니다, $1%s1$2<$1%s3
no_commands: $2죄송합니다 당신은 하위명령어 사용을 허가받지 못했습니다.
subcommand_set_options_header: '$2Possible Values: '
command_syntax: '$1Usage: $2%s'
flag_tutorial_usage: '$1Have an admin set the flag: $2%s'
errors:
invalid_player_wait: '$2플레이어를 찾지 못했습니다: $1%s$2, fetching it. 잠시 후 시도해주세요.'
invalid_player_offline: '$2플레이어는 반드시 접속 중이어야 합니다: $1%s.'
@ -224,22 +223,22 @@ errors:
not_valid_world: $2옳바르지 않은 World 입니다
not_valid_plot_world: $2올바르지 않은 plot world 입니다 (case sensitive)
no_plots: $2당신은 어떤 땅도 가지고 있지 않습니다
not_using_plotme: $2이 서버는 상위버전의 $1PlotSquared $2plot 관리 시스템을 사용합니다. Please use the $1/ps $2or $1/p2 $2or $1/plot $2instead
wait_for_timer: $2A setblock 타이머는 현재의 땅 또는 당신에게 묶여있습니다. 완료까지 잠시 기다려주시기 바랍니다
invalid_command_flag: '$2잘못된 명령 플래그: %s0'
error: '$2오류가 발생했습니다: %s'
not_loaded: $2플롯을로드 할 수 없습니다
paste:
debug_report_created: '$1Uploaded a full debug to: $1%url%'
debug_report_created: '$1전체 디버그를에 업로드했습니다.: $1%url%'
purge:
purge_syntax: Use /plot purge <x;z|player|unowned|unknown|all> <world>
purge_success: $4%s 땅들을 성공적으로 제거하였습니다
trim:
trim_syntax: Use /plot trim <all|x;y> <world>
trim_in_progress: 최적화 작업이 이미 진행중입니다!
not_valid_hybrid_plot_world: 이 행동을 위하여 hybrid plot manager가 필요합니다.
block list:
block_list_separater: '$1,$2 '
biome:
need_biome: $2당신은 유효한 생태계를 지정해야 합니다.
biome_set_to: $2Plot biome set to $2
biome_set_to: $2플롯 생물 설정 $2
teleport:
teleported_to_plot: $1당신은 이동 되었습니다.
teleported_to_road: $2당신은 길로 이동 되었습니다.
@ -258,13 +257,14 @@ invalid:
not_valid_data: $2그것은 유효한 데이터 ID가 아닙니다.
not_valid_block: '$2그것은 유효한 블록이 아닙니다.: %s 그것은 유효한 블록이 아닙니다.'
not_allowed_block: '$2그 블록은 허락되지 않았습니다 : %s'
not_valid_number: '$2그것은 %s범위내에서 유효하지 않은 숫자입니다.'
not_valid_number: $2그것은 %s범위내에서 유효하지 않은 숫자입니다.
not_valid_plot_id: $2그 땅의 ID는 유효하지 않습니다.
plot_id_form: '$2땅의 ID는 반드시 형식에 있어야 합니다: $1X;Y $2e.g. $1-5;7'
plot_id_form: '$2땅의 ID는 반드시 형식에 있어야 합니다: $1X;Y $2e.g. $1-5;7'
not_your_plot: $2그것은 당신의 땅이 아닙니다.
no_such_plot: $2거기엔 어떤 땅도 없습니다.
player_has_not_been_on: $2해당 플레이어는 plotworld에 없습니다.
found_no_plots: $2당신의 검색에서 아무 땅도 발견하지 못했습니다
found_no_plots_for_player: '$2No plots found for player: %s'
camera:
camera_started: $2당신은 땅을 위한 카메라 모드에 입장했습니다 $1%s
camera_stopped: $2카메라 모드를 종료합니다
@ -297,32 +297,40 @@ info:
plot_info_size: $1Size:$2 %size%
plot_user_list: ' $1%user%$2,'
info_syntax_console: $2/plot info X;Y
now: 지금
never:
plot_info_seen: $1Seen:$2 %seen%
plot_flag_list: $1%s0:%s1$2
working:
generating_component: $1당신의 설정값으로부터 component 생성을 시작합니다
clearing_plot: $2Clearing plot async.
clearing_done: $4Clear completed! Took %sms.
clearing_plot: $2플롯 비동기 지우기.
clearing_done: $4명확한 완료. 했다 %sms.
plot_not_claimed: $2땅이 판매되지 않았습니다
plot_is_claimed: $2이 땅은 이미 판매되었습니다
claimed: $4성공적으로 땅을 판매하였습니다
deleting_done: $4삭제가 완료되었습니다! 가져왔다 %sms.
list:
comment_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1List of %amount% comments
clickable: ' (interactive)'
plot_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1List of %amount% plots
plot_list_header: $1List of %word% plots
comment_list_header_paged: $2(페이지 $1%cur$2/$1%max$2) $1목록 %amount% 코멘트
clickable: ' (상호 작용하는)'
plot_list_header_paged: $2(페이지 $1%cur$2/$1%max$2) $1목록 %amount% plots
plot_list_header: $1목록 %word% plots
plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner
plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner
plot_list_footer: $2>> $1%word% a total of $2%num% $1claimed %plot%.
plot_list_footer: $2>> $1%word% $2%num% $1claimed %plot%.
area_list_header_paged: $2(페이지 $1%cur$2/$1%max$2) $1목록f %amount% areas
left:
left_plot: $2당신은 땅을 떠났습니다.
chat:
plot_chat_format: '$2[$1Plot Chat$2][$1%plot_id%$2] $1%sender%$2: $1%msg%'
plot_chat_forced: $이 월드는 모두가 plot chat을 쓰도록 강제합니다
plot_chat_on: $4Plot chat enabled.
plot_chat_off: $4Plot chat disabled.
plot_chat_on: $4플롯 채팅 사용 설정 됨.
plot_chat_off: $4플롯 채팅 사용 중지됨.
plot_chat_spy_format: '$2[$1Plot Spy$2][$1%plot_id%$2] $1%sender%$2: $1%msg%'
deny:
denied_removed: $4당신은 이 땅으로부터 플레이어를 차단 해제 했습니다.
denied_added: $4당신은 이 땅으로부터 플레이어를 성공적으로 차단 했습니다.
denied_need_argument: $2변수가 빠졌습니다. $1/plot denied add <name> $2or $1/plot denied remove <name>
denied_need_argument: $2변수가 빠졌습니다. $1/plot denied add <name> $2or $1/plot denied
remove <name>
was_not_denied: $2해당 플레이어는 이 땅에서 차단되지 않았습니다.
you_got_denied: $4당신은 해당 땅으로부터 차단되었습니다 따라서 spawn으로 자동 이동 되었습니다.
rain:
@ -339,6 +347,7 @@ flag:
flag_not_added: $2그 깃발은 추가될 수 없습니다
flag_removed: $4깃발이 성공적으로 제거되었습니다
flag_added: $4깃발이 성공적으로 추가되었습니다
not_valid_flag_suggested: '$2That is not a valid flag. Did you mean: $1%s'
trusted:
trusted_added: $4당신은 그 땅에 유저를 성공적으로 위탁했습니다
trusted_removed: $4당신은 그 땅으로부터 신용(위탁)받은 유저를 성공적으로 제거했습니다.
@ -355,18 +364,39 @@ member:
owner:
set_owner: $4당신은 땅의 소유자를 성공적으로 설정했습니다
now_owner: $4당신은 이제 %s땅의 소유자입니다
set_owner_cancelled: $2The setowner action was cancelled
signs:
owner_sign_line_1: '$1ID: $1%id%'
owner_sign_line_2: '$1소유자:'
owner_sign_line_3: $2%plr%
owner_sign_line_4: $3Claimed
help:
help_header: "$3&m---------&r $1Plot\xb2 도움말 $3&m---------"
help_page_header: '$1Category: $2%category%$2,$1 Page: $2%current%$3/$2%max%$2'
help_footer: "$3&m---------&r $1Plot\xb2 도움말 $3&m---------"
help_header: $3&m---------&r $1Plot² 도움말 $3&m---------
help_page_header: '$1범주: $2%category%$2,$1 페이지: $2%current%$3/$2%max%$2'
help_footer: $3&m---------&r $1Plot² 도움말 $3&m---------
help_info_item: $1/plot help %category% $3- $2%category_desc%
help_item: $1%usage% [%alias%]&- $3- $2%desc%&-
direction: '$1Current direction: %dir%'
direction: '$1현재 방향: %dir%'
'-':
custom_string: '-'
commandconfig:
not_valid_subcommand: $2이것은 유효하지 않은 하위 명령어 입니다
did_you_mean: '$2이것을 명령어를 의미하나요: $1%s'
name_little: $2%s0 아름이 너무 짧습니다, $1%s1$2<$1%s3
no_commands: $2죄송합니다 당신은 하위명령어 사용을 허가받지 못했습니다.
subcommand_set_options_header: '$2Possible Values: '
command_syntax: '$1Usage: $2%s'
flag_tutorial_usage: '$1관리자에게 국기를 설정하게하십시오: $2%s'
bar api: {}
set:
set_attribute: $4설정 완료 %s0 로 설정 %s1
cap:
entity_cap: $2더 많은 몹을 스폰하는 것은 허용되지 않습니다.
near:
plot_near: '$1선수: %s0'
kick:
you_got_kicked: $4너는 쫓겨났다
grants:
granted_plots: '$1결과: $2%s $1grants left'
granted_plot: $1You granted %s0 plot to $2%s1
granted_plot_failed: '$1Grant failed: $2%s'

View File

@ -1,378 +0,0 @@
#Translator: c7w/1345979462
confirm:
failed_confirm: $2\u4f60\u5f53\u524d\u6ca1\u6709\u53ef\u4ee5\u63a5\u53d7\u7684\u884c\u52a8\uff01
requires_confirm: '$2\u4f60\u662f\u5426\u8981\u6267\u884c: $1%s$2?&-$2\u8be5\u64cd\u4f5c\u4e0d\u53ef\u9006! \u5982\u679c\u786e\u5b9a\u8bf7\u8f93\u5165: $1/plot confirm'
move:
move_success: $4\u6210\u529f\u7684\u79fb\u52a8\u4e86\u5730\u76ae\u3002
copy_success: $4\u6210\u529f\u7684\u590d\u5236\u4e86\u5730\u76ae\u3002
requires_unowned: $2\u4f60\u6307\u5b9a\u7684\u4f4d\u7f6e\u5df2\u88ab\u5360\u7528\u3002
set:
set_attribute: $4\u6210\u529f\u5c06 %s0 \u8bbe\u7f6e\u4e3a %s1
web:
generating_link: $1\u5904\u7406\u5730\u76ae\u4e2d...
generating_link_failed: $2\u521b\u5efa\u4e0b\u8f7d\u94fe\u63a5\u5931\u8d25\u4e86\uff01
save_failed: $2\u4fdd\u5b58\u5931\u8d25
load_null: $2\u8bf7\u4f7f\u7528 $4/plot load $2\u6765\u83b7\u53d6\u6a21\u578b\u5217\u8868
load_failed: $2\u8bfb\u53d6\u6a21\u578b\u5931\u8d25
load_list: '$2\u82e5\u8981\u8bfb\u53d6\u4e00\u4e2a\u6a21\u578b\uff0c\u8bf7\u4f7f\u7528 $1/plot load #'
save_success: $1\u6210\u529f\u4fdd\u5b58\uff01
compass:
compass_target: $4\u6210\u529f\u7684\u7528\u6307\u5357\u9488\u6307\u5411\u4e86\u5730\u76ae\uff01
cluster:
cluster_available_args: '''$1\u4e0b\u9762\u7684\u5b50\u6307\u4ee4\u662f\u53ef\u884c\u7684: $4list$2, $4create$2, $4delete$2, $4resize$2,
$4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, $4tp$2, $4sethome'''
cluster_list_heading: $2\u5728\u8fd9\u4e2a\u4e16\u754c\u4e2d\u6709 $1%s$2 \u4e2a\u5730\u76ae\u7fa4
cluster_list_element: $2 - $1%s&-
cluster_intersection: $2\u76ee\u6807\u533a\u57df\u88ab %s0 \u8986\u76d6'
cluster_added: $4\u6210\u529f\u7684\u521b\u5efa\u4e86\u7fa4\u3002
cluster_deleted: $4\u6210\u529f\u7684\u5220\u9664\u4e86\u7fa4\u3002
cluster_resized: $4\u6210\u529f\u4e3a\u7fa4\u91cd\u65b0\u8bbe\u7f6e\u5927\u5c0f\u3002
cluster_added_user: $4\u6210\u529f\u4e3a\u7fa4\u589e\u52a0\u7528\u6237\u3002
cannot_kick_player: $2\u4f60\u4e0d\u80fd\u4ece\u5730\u76ae\u4e2d\u79fb\u9664\u90a3\u4f4d\u73a9\u5bb6\uff01
cluster_invited: $1\u4f60\u88ab\u9080\u8bf7\u53bb\u4e0b\u5217\u7fa4\uff1a $2%s
cluster_removed: $1\u4f60\u88ab\u8be5\u7fa4\u79fb\u9664\uff1a $2%s
cluster_kicked_user: $4\u6210\u529f\u79fb\u9664\u4e86\u7528\u6237\u3002
invalid_cluster: '''$1\u4e0d\u5408\u6cd5\u7684\u7fa4\u540d\u79f0\uff1a $2%s'''
cluster_not_added: $2\u90a3\u4e2a\u73a9\u5bb6\u6ca1\u6709\u88ab\u6dfb\u52a0\u5230\u5730\u76ae\u7fa4\u4e2d
cluster_cannot_leave: $1\u4f60\u5728\u79bb\u5f00\u4e4b\u524d\u5fc5\u987b\u5220\u9664\u6216\u8f6c\u8ba9\u7fa4
cluster_added_helper: $4\u6210\u529f\u4e3a\u5730\u76ae\u7fa4\u589e\u52a0\u4e86\u63f4\u5efa\u8005
cluster_removed_helper: $4\u6210\u529f\u4e3a\u5730\u76ae\u7fa4\u79fb\u9664\u4e86\u4e00\u4f4d\u63f4\u5efa\u8005
cluster_regenerated: $4\u6210\u529f\u7684\u5f00\u59cb\u4e86\u5730\u76ae\u7fa4\u91cd\u5efa\u4efb\u52a1
cluster_teleporting: $4\u4f20\u9001\u4e2d...
cluster_info: '''$1\u5f53\u524d\u7fa4\uff1a $2%id%&-$1\u540d\u79f0\uff1a $2%name%&-$1\u6240\u6709\u8005\uff1a $2%owner%&-$1\u5927\u5c0f\uff1a $2%size%&-$1\u6743\u5229\uff1a
$2%rights%'''
cluster_outside: '$2The proposed area is outside the plot area: %s0'
border:
border: $2\u4f60\u5728\u5f53\u524d\u5730\u56fe\u8fb9\u754c\u4e4b\u5916
unclaim:
unclaim_success: $4\u4f60\u6210\u529f\u7684\u653e\u5f03\u4e86\u5730\u76ae
unclaim_failed: $2\u4e0d\u80fd\u653e\u5f03\u5730\u76ae
worldedit masks:
worldedit_delayed: $2\u8bf7\u7b49\u5f85\u6211\u4eec\u5904\u7406\u4f60\u7684 Worldedit \u884c\u52a8...
worldedit_run: '''$2\u8bf7\u7b49\u5f85\u5f53\u524d\u4efb\u52a1\u5b8c\u6210\u3002\u5f53\u524d\u6b63\u5728\u8fdb\u884c\u7684\u4efb\u52a1\uff1a%s'''
require_selection_in_mask: $2\u4f60\u5f53\u524d\u9009\u62e9\u8303\u56f4\u4e2d %s \u4e0d\u662f\u4f60\u7684\u5730\u76ae\uff0c\u4f60\u53ea\u80fd\u5728\u4f60\u81ea\u5df1\u7684\u5730\u76ae\u4e0a\u66f4\u6539\u3002
worldedit_volume: $2\u4f60\u76ee\u524d\u9009\u533a\u4e2d\u6709 %current%\u4e2a\u65b9\u5757\uff0c\u4f60\u6700\u5927\u53ef\u4ee5\u4e00\u6b21\u6027\u7f16\u8f91\u7684\u65b9\u5757\u6570\u76ee\u4e3a %max%\u3002
worldedit_iterations: $2\u4f60\u4e0d\u80fd\u91cd\u590d %current% \u6b21\u3002\u4f60\u53ef\u4ee5\u91cd\u590d\u7684\u6700\u5927\u6b21\u6570\u4e3a %max%\u6b21\u3002
worldedit_unsafe: $2\u90a3\u4e2a\u6307\u4ee4\u5df2\u88ab\u7981\u7528
worldedit_bypass: $2&o\u82e5\u8981\u89e3\u9664\u4f60\u7684 Worldedit \u9650\u5236\uff0c\u8f93\u5165 $4/plot wea
worldedit_bypassed: $2\u5f53\u524d\u89e3\u9664\u4e86\u4f60\u7684 WorldEdit \u9650\u5236
worldedit_unmasked: $1\u4f60\u7684 WorldEdit \u73b0\u5728\u88ab\u89e3\u9664\u9650\u5236\u3002
worldedit_restricted: $1\u4f60\u7684 WorldEdit \u73b0\u5728\u88ab\u9650\u5236\u3002
gamemode:
gamemode_was_bypassed: $1\u4f60\u4e3a\u5730\u76ae $2{plot} $1\u8df3\u8fc7\u4e86\u6e38\u620f\u6a21\u5f0f \u2014\u2014 ($2{gamemode}$1) $1
height limit:
height_limit: $1\u8fd9\u4e2a\u5730\u76ae\u7684\u5efa\u7b51\u9ad8\u5ea6\u9650\u5236\u4e3a $2{limit}
records:
record_play: $2%player $2\u5f00\u59cb\u4e86 $1%name \u7684\u8bb0\u5f55
notify_enter: $2%player $2\u8fdb\u5165\u4e86\u4f60\u7684\u5730\u76ae ($1%plot$2)
notify_leave: $2%player $2\u79bb\u5f00\u4e86\u4f60\u7684\u5730\u76ae ($1%plot$2)
swap:
swap_overlap: $2\u76ee\u6807\u533a\u57df\u4e0d\u5141\u8bb8\u88ab\u8986\u76d6
swap_dimensions: $2\u548c\u76ee\u6807\u533a\u57df\u5fc5\u987b\u62e5\u6709\u76f8\u540c\u7684\u4e16\u754c\u7c7b\u578b
swap_syntax: $2/plots swap <id>
swap_success: $4\u6210\u529f\u7684\u4ea4\u6362\u4e86\u5730\u76ae
started_swap: $2\u4ea4\u6362\u5730\u76ae\u4efb\u52a1\u5df2\u5f00\u59cb\uff0c\u4f60\u5c06\u4f1a\u5728\u5b8c\u6210\u540e\u6536\u5230\u901a\u77e5\u3002
comment:
inbox_notification: '%s \u6761\u672a\u8bfb\u4fe1\u606f\u3002\u4f7f\u7528 /plot inbox \u6765\u8bfb\u53d6'
not_valid_inbox_index: $2\u5728\u7b2c %s \u9875\u6ca1\u6709\u4fe1\u606f
inbox_item: $2 - $4%s
comment_syntax: $2\u8bf7\u4f7f\u7528 /plots comment [X;Z] <%s> <comment>
invalid_inbox: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6536\u4ef6\u7bb1&-$1\u5141\u8bb8\u7684\u503c\uff1a %s
no_perm_inbox: $2\u4f60\u6ca1\u6709\u67e5\u770b\u90a3\u4e2a\u6536\u4ef6\u7bb1\u7684\u6743\u9650
no_perm_inbox_modify: $2\u4f60\u6ca1\u6709\u66f4\u6539\u90a3\u4e2a\u6536\u4ef6\u7bb1\u7684\u6743\u9650
no_plot_inbox: $2\u4f60\u5fc5\u987b\u7ad9\u5728\u6216\u6307\u5b9a\u4e00\u4e2a\u5730\u76ae\u53c2\u6570
comment_removed: $4\u6210\u529f\u7684\u5220\u9664\u4e86\u8bc4\u8bba\uff1a$2 - '$3%s$2'
comment_added: $4\u4e00\u6761\u8bc4\u8bba\u88ab\u7559\u4e0b
comment_header: $2&m---------&r $1\u8bc4\u8bba $2&m---------&r
inbox_empty: $2\u6ca1\u6709\u8bc4\u8bba
console:
not_console: $2\u4e3a\u4e86\u5b89\u5168\uff0c\u8fd9\u4e2a\u6307\u4ee4\u53ea\u80fd\u7531\u63a7\u5236\u53f0\u6267\u884c\u3002
is_console: $2\u8fd9\u4e2a\u6307\u4ee4\u53ea\u80fd\u7531\u73a9\u5bb6\u6267\u884c\u3002
inventory:
inventory_usage: '&c\u4f7f\u7528\uff1a &6{usage}'
inventory_desc: '&c\u63cf\u8ff0\uff1a &6{desc}'
inventory_category: '&c\u7c7b\u578b\uff1a &6{category}'
clipboard:
clipboard_set: $2\u5f53\u524d\u5730\u76ae\u5df2\u88ab\u590d\u5236\u5230\u4f60\u7684\u526a\u5207\u677f\u4e2d\uff0c\u4f7f\u7528 $1/plot paste$2 \u6765\u7c98\u8d34\u3002
pasted: $4\u5730\u76ae\u5df2\u88ab\u6210\u529f\u7c98\u8d34\u3002\u5b83\u4ece\u4f60\u7684\u526a\u5207\u677f\u4e2d\u88ab\u79fb\u9664\u3002
paste_failed: $2\u7c98\u8d34\u9009\u4e2d\u533a\u57df\u65f6\u5931\u8d25\u4e86\uff0c\u5931\u8d25\u539f\u56e0\uff1a $2%s
no_clipboard: $2\u4f60\u7684\u526a\u5207\u677f\u4e2d\u6ca1\u6709\u9009\u62e9\u3002
clipboard_info: '$2\u5f53\u524d\u9009\u62e9 - \u5730\u76aeID: $1%id$2, \u5bbd\u5ea6: $1%width$2, \u603b\u8ba1\u65b9\u5757\u6570\uff1a$1%total$2'
toggle:
toggle_enabled: $2\u542f\u7528\u8bbe\u7f6e\uff1a %s
toggle_disabled: $2\u7981\u7528\u8bbe\u7f6e\uff1a %s
blocked command:
command_blocked: $2\u5728\u8fd9\u4e2a\u5730\u76ae\u4e2d\u90a3\u4e2a\u6307\u4ee4\u4e0d\u88ab\u5141\u8bb8
done:
done_already_done: $2\u8fd9\u4e2a\u5730\u76ae\u5df2\u7ecf\u88ab\u6807\u8bb0\u5b8c\u6210\u3002
done_not_done: $2\u8fd9\u4e2a\u5730\u76ae\u6ca1\u6709\u88ab\u6807\u8bb0\u5b8c\u6210\u3002
done_insufficient_complexity: $2\u8fd9\u4e2a\u5730\u76ae\u592a\u8fc7\u4e8e\u7b80\u5355\u3002\u8bf7\u5728\u4f7f\u7528\u8fd9\u4e2a\u6307\u4ee4\u4e4b\u524d\u589e\u52a0\u589e\u52a0\u66f4\u591a\u7ec6\u8282\u3002
done_success: $1\u6210\u529f\u5c06\u5730\u76ae\u6807\u8bb0\u5b8c\u6210\u3002
done_removed: $1\u4f60\u73b0\u5728\u53ef\u4ee5\u7ee7\u7eed\u5728\u5730\u76ae\u4e2d\u5efa\u7b51\u4e86\u3002
ratings:
rating_not_valid: $2\u4f60\u9700\u8981\u5728 1 - 10 \u4e4b\u524d\u6307\u5b9a\u4e00\u4e2a\u6570\u5b57
rating_already_exists: $2\u4f60\u5df2\u7ecf\u4e3a\u5730\u76ae $2%s \u6295\u8fc7\u7968\u4e86
rating_applied: $4\u4f60\u6210\u529f\u7684\u4e3a\u5730\u76ae $2%s \u6295\u4e86\u4e00\u7968
rating_not_your_own: $2\u4f60\u4e0d\u80fd\u4e3a\u81ea\u5df1\u7684\u5730\u76ae\u6295\u7968
rating_not_done: $2\u4f60\u53ea\u80fd\u4e3a\u5b8c\u6210\u7684\u5730\u76ae\u6295\u7968\u3002
rating_not_owned: $2\u4f60\u4e0d\u80fd\u4e3a\u65e0\u4e3b\u7684\u5730\u76ae\u6295\u7968\u3002
tutorial:
rate_this: $2\u4e3a\u8fd9\u4e2a\u5730\u76ae\u6295\u7968\uff01
comment_this: $2\u4e3a\u8fd9\u4e2a\u5730\u76ae\u7559\u4e00\u4e9b\u53cd\u9988\uff1a %s
economy:
econ_disabled: $2\u73b0\u5728\u6ca1\u6709\u542f\u52a8\u7ecf\u6d4e\u7cfb\u7edf
cannot_afford_plot: $2\u4f60\u6ca1\u6709\u8db3\u591f\u7684\u94b1\u4e70\u8fd9\u5757\u5730\u76ae\u3002\u5b83\u9700\u8981\u82b1\u8d39 $1%s
not_for_sale: $2\u8fd9\u5757\u5730\u76ae\u6ca1\u6709\u51fa\u552e
cannot_buy_own: $2\u4f60\u4e0d\u80fd\u8d2d\u4e70\u4f60\u81ea\u5df1\u7684\u5730\u76ae
plot_sold: $4\u4f60\u7684\u5730\u76ae $1%s0$4\uff0c\u4ee5 $1$%s2 \u7684\u4ef7\u683c\u88ab\u5356\u7ed9\u4e86 $1%s1$4
cannot_afford_merge: $2\u4f60\u6ca1\u6709\u8db3\u591f\u7684\u94b1\u6765\u5408\u5e76\u5730\u76ae\u3002\u5b83\u9700\u8981\u82b1\u8d39 $1%s
added_balance: $1%s $2\u88ab\u6253\u5165\u4f60\u7684\u8d26\u6237
removed_balance: $1%s $2\u4ece\u4f60\u7684\u8d26\u6237\u53d6\u51fa
removed_granted_plot: $2\u4f60\u4f7f\u7528\u4e86 %s \u4e2a\u5730\u76ae\u6388\u6743\uff0c\u4f60\u8fd8\u5269\u4e0b $1%s $2\u4e2a
setup:
setup_init: $1\u8bf7\u4f7f\u7528\uff1a $2/plot setup <value>
setup_step: $3[$1\u7b2c %s0 $1\u6b65$3] $1%s1 $2- $1\u53c2\u6570\u7c7b\u578b\uff1a $2%s2 $1\u9ed8\u8ba4\u503c\uff1a $2%s3
setup_invalid_arg: $2%s0 \u4e0d\u662f\u5bf9\u4e8e\u7b2c %s1 \u6b65\u7684\u6b63\u786e\u7684\u53c2\u6570\u3002\u8981\u60f3\u53d6\u6d88\u8bbe\u7f6e\u4f7f\u7528\uff1a $1/plot setup cancel
setup_valid_arg: $2\u4f60\u5c06\u503c $1%s0 $2\u8bbe\u7f6e\u4e3a\u4e86 %s1
setup_finished: $4\u4f60\u5e94\u8be5\u88ab\u4f20\u9001\u5230\u4e86\u521b\u5efa\u7684\u4e16\u754c\u3002\u5426\u5219\u4f60\u9700\u8981\u624b\u52a8\u8bbe\u7f6e\u5728 bukkit.yml \u4e2d\u7684\u4e16\u754c\u521b\u5efa\u5668\u6216\u8005\u4f60\u9009\u62e9\u7684\u4e16\u754c\u7684\u7ba1\u7406\u63d2\u4ef6\u3002
setup_world_taken: $2%s \u662f\u4e00\u4e2a\u5df2\u7ecf\u521b\u5efa\u7684\u5730\u76ae\u4e16\u754c
setup_missing_world: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u4e16\u754c\u540d($1/plot setup &l<world>$1 <generator>$2)&-$1\u9644\u52a0\u6307\u4ee4\uff1a&-$2 - $1/plot setup <value>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel
setup_missing_generator: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u4e16\u754c\u751f\u6210\u5668 ($1/plot setup <world> &l<generator>&r$2)&-$1\u9644\u52a0\u6307\u4ee4\uff1a&-$2 - $1/plot setup <value>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel
setup_invalid_generator: $2\u9519\u8bef\u7684\u751f\u6210\u5668\u3002\u6b63\u786e\u7684\u751f\u6210\u5668\u6709\uff1a %s
schematics:
schematic_too_large: $2\u8fd9\u4e2a\u5730\u76ae\u5bf9\u6b64\u884c\u52a8\u592a\u5927\u4e86\uff01
schematic_missing_arg: $2\u4f60\u9700\u8981\u5236\u5b9a\u4e00\u4e2a\u53c2\u6570\u3002\u6b63\u786e\u7684\u503c\uff1a $1test <name>$2 , $1save$2 , $1paste $2, $1exportall
schematic_invalid: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6a21\u677f\u3002\u539f\u56e0\uff1a $2%s
schematic_valid: $2\u90a3\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6a21\u677f
schematic_paste_failed: $2\u7c98\u8d34\u6a21\u677f\u5931\u8d25\u4e86
schematic_paste_success: $4\u6210\u529f\u7684\u7c98\u8d34\u4e86\u6a21\u677f
titles:
title_entered_plot: $1\u5730\u76ae\uff1a %world%;%x%;%z%
title_entered_plot_sub: $4\u5730\u76ae\u4e3b\u4eba %s
prefix_greeting: '$1%id%$2> '
prefix_farewell: '$1%id%$2> '
core:
task_start: \u4efb\u52a1\u5f00\u59cb...
prefix: $3[$1\u5730\u76ae\u7cfb\u7edf$3] $2
enabled: $1PlotSquared \u73b0\u5df2\u5f00\u542f
reload:
reloaded_configs: $1\u7ffb\u8bd1\u548c\u4e16\u754c\u8bbe\u7f6e\u88ab\u91cd\u65b0\u8bfb\u53d6
reload_failed: $2\u8bfb\u53d6\u6587\u4ef6\u914d\u7f6e\u5931\u8d25
desc:
desc_set: $2\u5730\u76ae\u7684\u63cf\u8ff0\u88ab\u8bbe\u7f6e
desc_unset: $2\u5730\u76ae\u7684\u63cf\u8ff0\u88ab\u91cd\u7f6e
missing_desc: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u63cf\u8ff0
alias:
alias_set_to: $2\u5730\u76ae\u7b80\u79f0\u8bbe\u7f6e\u4e3a $1%alias%
missing_alias: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u7b80\u79f0
alias_too_long: $2\u5728\u957f\u5ea6\u4e0a\u7b80\u79f0\u5fc5\u987b\u5c0f\u4e8e50\u5b57\u7b26
alias_is_taken: $2\u5df2\u7ecf\u6709\u5730\u76ae\u547d\u540d\u4e3a\u90a3\u4e2a\u7b80\u79f0\u4e86
position:
missing_position: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u65b9\u4f4d\u3002\u6b63\u786e\u7684\u503c\uff1a \u00d7\u65e0\u00d7
position_set: $1\u5c06\u5bb6\u8bbe\u7f6e\u4e3a\u5f53\u524d\u4f4d\u7f6e
position_unset: $1\u5bb6\u7684\u4f4d\u7f6e\u91cd\u7f6e\u5230\u9ed8\u8ba4\u4f4d\u7f6e
home_argument: $2\u8bf7\u4f7f\u7528 /plot set home [none]
invalid_position: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u4f4d\u7f6e\u7684\u503c
cap:
entity_cap: $2\u4f60\u4e0d\u80fd\u518d\u751f\u6210\u66f4\u591a\u602a\u7269\u4e86\uff01
time:
time_format: $1%hours%, %min%, %sec%
permission:
no_schematic_permission: $2\u4f60\u6ca1\u6709\u6743\u9650\u6765\u4f7f\u7528\u6a21\u677f $1%s
no_permission: $2\u4f60\u6ca1\u6709\u6743\u9650\uff01 ($1%s)
no_permission_event: $2\u4f60\u6ca1\u6709\u6743\u9650\u8fd9\u6837\u505a\uff01 ($1%s)
no_plot_perms: $2\u4f60\u9700\u8981\u5730\u76ae\u4e3b\u4eba\u6743\u9650
cant_claim_more_plots: $2\u4f60\u4e0d\u80fd\u518d\u9886\u53d6\u66f4\u591a\u5730\u76ae\u4e86
cant_transfer_more_plots: $2\u4f60\u4e0d\u80fd\u7ed9\u90a3\u4e2a\u73a9\u5bb6\u66f4\u591a\u5730\u76ae\u4e86
cant_claim_more_plots_num: $2\u4f60\u4e0d\u80fd\u540c\u65f6\u9886\u53d6\u8d85\u8fc7 $1%s $2\u4e2a\u5730\u76ae
you_be_denied: $2\u4f60\u4e0d\u80fd\u8fdb\u5165\u90a3\u4e2a\u5730\u76ae
merge_request_confirm: \u6765\u81ea %s \u7684\u5730\u76ae\u5408\u5e76\u7533\u8bf7
cant_claim_more_clusters: $2You can't claim more clusters.
merge:
merge_not_valid: $2\u8fd9\u4e2a\u5408\u5e76\u8bf7\u6c42\u4e0d\u518d\u5408\u6cd5
merge_accepted: $2\u5408\u5e76\u8bf7\u6c42\u88ab\u63a5\u53d7
success_merge: $2\u5730\u76ae\u6210\u529f\u88ab\u5408\u5e76\uff01
merge_requested: $2\u6210\u529f\u7684\u53d1\u9001\u4e86\u4e00\u4e2a\u5408\u5e76\u8bf7\u6c42
no_perm_merge: $2\u4f60\u4e0d\u662f\u5730\u76ae $1%plot% \u7684\u4e3b\u4eba
no_available_automerge: $2\u4f60\u5728\u6307\u5b9a\u4f4d\u7f6e\u6ca1\u6709\u90bb\u8fd1\u7684\u5730\u76ae\u6216\u4e0d\u5141\u8bb8\u4f60\u5408\u5e76\u6210\u90a3\u6837\u5927\u5c0f\u3002
unlink_required: $2\u4f60\u9700\u8981\u5148\u89e3\u9664\u5730\u76ae\u7684\u5408\u5e76\u3002
unlink_impossible: $2\u4f60\u53ea\u80fd\u89e3\u9664\u8d85\u7ea7\u5730\u76ae\u7684\u5408\u5e76
unlink_success: $2\u6210\u529f\u7684\u89e3\u9664\u4e86\u5730\u76ae\u7684\u5408\u5e76\u3002
commandconfig:
not_valid_subcommand: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u5b50\u547d\u4ee4
did_you_mean: $2\u4f60\u60f3\u8f93\u5165\uff1a $1%s$2\u5417
name_little: $2%s0 \u7684\u540d\u5b57\u592a\u77ed\u4e86\uff0c$1%s1$2<$1%s3
no_commands: $2\u5f88\u62b1\u6b49\uff0c\u4f60\u6ca1\u6709\u6743\u9650\u4f7f\u7528\u4efb\u4f55\u5b50\u6307\u4ee4\u3002
subcommand_set_options_header: '$2\u6b63\u786e\u7684\u503c\uff1a '
command_syntax: $1\u8bf7\u4f7f\u7528\uff1a $2%s
flag_tutorial_usage: $1\u4f7f\u4e00\u4f4d\u7ba1\u7406\u5458\u8bbe\u7f6e\u6807\u5fd7\uff1a $2%s
errors:
invalid_player_wait: $2\u6ca1\u6709\u627e\u5230\u73a9\u5bb6\uff1a$1%s$2\u3002\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002
invalid_player: $2\u6ca1\u6709\u627e\u5230\u73a9\u5bb6\uff1a $1%s$2.
invalid_player_offline: $2\u8fd9\u4e2a\u73a9\u5bb6\u5fc5\u987b\u5728\u7ebf\uff1a $1%s.
error: $2\u53d1\u751f\u4e86\u4e00\u4e2a\u9519\u8bef\uff1a %s
command_went_wrong: $2\u5f53\u4f7f\u7528\u6307\u4ee4\u65f6\u53d1\u751f\u4e86\u9519\u8bef...
no_free_plots: $2\u73b0\u5728\u6ca1\u6709\u53ef\u83b7\u5f97\u7684\u514d\u8d39\u5730\u76ae
not_in_plot: $2\u4f60\u4e0d\u5728\u4e00\u4e2a\u5730\u76ae\u4e2d
not_in_cluster: $2\u4f60\u5fc5\u987b\u5728\u4e00\u4e2a\u5730\u76ae\u7fa4\u7ec4\u4e2d\u624d\u80fd\u4f7f\u7528\u8fd9\u4e2a\u547d\u4ee4
not_in_plot_world: $2\u4f60\u4e0d\u5728\u4e00\u4e2a\u5730\u76ae\u4e16\u754c\u4e2d
plotworld_incompatible: $2\u4e24\u4e2a\u4e16\u754c\u5fc5\u987b\u662f\u517c\u5bb9\u7684
not_valid_world: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u4e16\u754c(\u533a\u5206\u5927\u5c0f\u5199)
not_valid_plot_world: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u5730\u76ae\u4e16\u754c(\u533a\u5206\u5927\u5c0f\u5199)
no_plots: $2\u4f60\u4e0d\u62e5\u6709\u4efb\u4f55\u5730\u76ae
wait_for_timer: $2A setblock timer is bound to either the current plot or you. Please wait for it to finish
invalid_command_flag: '$2Invalid command flag: %s0'
paste:
debug_report_created: $1U\u5c06DEBUG\u4fe1\u606f\u7c98\u8d34\u5230\u4e86\uff1a $1%url%
purge:
purge_success: $4\u6210\u529f\u7684\u5408\u5e76\u4e86 %s \u5757\u5730\u76ae
trim:
trim_in_progress: \u5df2\u7ecf\u6709\u4e00\u4e2a\u5730\u76ae\u6e05\u7406\u4efb\u52a1\u5728\u8fdb\u884c\uff01
not_valid_hybrid_plot_world: \u8981\u8fdb\u884c\u8fd9\u4e2a\u884c\u52a8\uff0c\u4f60\u9700\u8981\u7acb\u65b9\u4f53\u5730\u76ae\u7ba1\u7406\u7cfb\u7edf\u3002
block list:
block_list_separater: '$1,$2 '
biome:
need_biome: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u6b63\u786e\u7684\u751f\u7269\u7fa4\u7cfb
biome_set_to: $2\u5730\u76ae\u7684\u751f\u7269\u7fa4\u7cfb\u8bbe\u7f6e\u4e3a $2
teleport:
teleported_to_plot: $1\u4f60\u5df2\u88ab\u4f20\u9001
teleported_to_road: $2\u4f60\u88ab\u4f20\u9001\u5230\u4e86\u9053\u8def\u4e0a
teleport_in_seconds: $1\u4f20\u9001\u5c06\u5728 %s \u79d2\u540e\u8fdb\u884c\u3002\u4e0d\u8981\u79fb\u52a8...
teleport_failed: $2\u4f20\u9001\u56e0\u79fb\u52a8\u6216\u4f24\u5bb3\u88ab\u53d6\u6d88
set block:
set_block_action_finished: $1\u4e0a\u4e00\u4e2a\u65b9\u5757\u8bbe\u7f6e\u884c\u52a8\u73b0\u5728\u5b8c\u6210\u4e86\u3002
unsafe:
debugallowunsafe_on: $2\u5141\u8bb8\u4e86\u4e0d\u5b89\u5168\u7684\u884c\u52a8
debugallowunsafe_off: $2\u4e0d\u5b89\u5168\u7684\u884c\u52a8\u88ab\u7981\u7528
debug:
debug_header: $1Debug \u4fe1\u606f&-
debug_section: $2>> $1&l%val%
debug_line: $2>> $1%var%$2:$1 %val%&-
invalid:
not_valid_data: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6570\u636eID
not_valid_block: $2%s \u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u65b9\u5757
not_allowed_block: $2\u8fd9\u4e2a\u65b9\u5757\u88ab\u7981\u7528\uff1a %s
not_valid_number: $2\u5728\u8303\u56f4\u4e0a\u8fd9\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6570\u503c\uff1a %s
not_valid_plot_id: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u5730\u76aeID
plot_id_form: $2\u5730\u76ae ID \u7684\u683c\u5f0f\u5fc5\u987b\u4e3a\uff1a $1X;Y $2\u4f8b\u5982\uff1a $1-5;7
not_your_plot: $2\u90a3\u4e0d\u662f\u4f60\u7684\u5730\u76ae
no_such_plot: $2\u6ca1\u6709\u8fd9\u4e2a\u5730\u76ae
player_has_not_been_on: $2\u90a3\u4f4d\u73a9\u5bb6\u4e0d\u5728\u5730\u76ae\u4e2d
found_no_plots: $2\u5728\u4f60\u7684\u641c\u7d22\u8bf7\u6c42\u4e2d\u627e\u4e0d\u5230\u5339\u914d\u7684\u5730\u76ae
camera:
camera_started: $2\u4f60\u8fdb\u5165\u4e86\u5730\u76ae $1%s \u7684\u6444\u50cf\u673a\u6a21\u5f0f
camera_stopped: $2\u4f60\u9000\u51fa\u4e86\u6444\u50cf\u673a\u6a21\u5f0f
need:
need_plot_number: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u5730\u76aeID\u6216\u5730\u76ae\u7b80\u79f0
need_block: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u65b9\u5757
need_plot_id: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u65b9\u5757 ID\u3002
need_plot_world: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u5730\u76ae\u533a\u57df\u3002
need_user: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u7528\u6237\u540d
info:
none: \u65e0
now: \u73b0\u5728
never: \u4ece\u4e0d
unknown: \u672a\u77e5
everyone: \u6240\u6709\u4eba
plot_unowned: $2\u6267\u884c\u8fd9\u4e2a\u884c\u52a8\u5f53\u524d\u5730\u76ae\u5fc5\u987b\u6709\u4e3b\u4eba
plot_info_unclaimed: $2\u5730\u76ae $1%s$2 \u8fd8\u6ca1\u6709\u88ab\u9886\u53d6
plot_info_header: $3&m---------&r $1\u4fe1\u606f $3&m---------
plot_info: $1ID\uff1a $2%id%$1&-$1\u522b\u79f0\uff1a $2%alias%$1&-$1\u5730\u76ae\u4e3b\u4eba\uff1a $2%owner%$1&-$1\u751f\u7269\u7fa4\u7cfb\uff1a $2%biome%$1&-$1\u662f\u5426\u53ef\u5efa\u7b51\uff1a $2%build%$1&-$1\u8bc4\u7ea7\uff1a $2%rating%&-$1\u53ef\u89c1\uff1a $2%seen%&-$1\u63f4\u5efa\u8005\uff1a $2%trusted%$1&-$1\u6210\u5458\uff1a $2%members%$1&-$1\u9ed1\u540d\u5355\uff1a $2%denied%$1&-$1\u6807\u5fd7\uff1a $2%flags%
plot_info_footer: $3&m---------&r $1\u4fe1\u606f $3&m---------
plot_info_trusted: $1\u63f4\u5efa\u8005\uff1a$2 %trusted%
plot_info_members: $1\u6210\u5458\uff1a$2 %members%
plot_info_denied: $1\u9ed1\u540d\u5355\uff1a$2 %denied%
plot_info_flags: $1\u6807\u5fd7\uff1a$2 %flags%
plot_info_biome: $1\u751f\u7269\u7fa4\u7cfb\uff1a$2 %biome%
plot_info_rating: $1\u8bc4\u7ea7\uff1a$2 %rating%
plot_info_owner: $1\u5730\u76ae\u4e3b\u4eba\uff1a$2 %owner%
plot_info_id: $1\u5730\u76aeID\uff1a$2 %id%
plot_info_alias: $1\u5730\u76ae\u522b\u79f0\uff1a$2 %alias%
plot_info_size: $1\u5730\u76ae\u5927\u5c0f\uff1a$2 %size%
plot_info_seen: $1\u5730\u76ae\u53ef\u89c1\uff1a$2 %seen%
plot_user_list: ' $1%user%$2,'
plot_flag_list: $1%s0:%s1$2
info_syntax_console: $2/plot info X;Y
working:
generating_component: $1\u4ece\u60a8\u7684\u8bbe\u7f6e\u4e2d\u5f00\u59cb\u7ec4\u6210\u90e8\u4ef6
clearing_plot: $2\u6e05\u9664\u5730\u76ae\u5f02\u6b65\u5904\u7406\u3002
clearing_done: $4\u6e05\u7406\u5b8c\u6210\uff01\u82b1\u8d39\u4e86 %s \u6beb\u79d2\u3002
plot_not_claimed: $2\u5730\u76ae\u6ca1\u6709\u88ab\u9886\u53d6
plot_is_claimed: $2\u8fd9\u4e2a\u5730\u76ae\u5df2\u7ecf\u88ab\u9886\u53d6
claimed: $4\u4f60\u6210\u529f\u7684\u9886\u53d6\u4e86\u5730\u76ae
deleting_done: $4Delete completed! Took %sms.
list:
comment_list_header_paged: $2(\u7b2c $1%cur$2 \u9875/\u5171 $1%max$2 \u9875) $1\u5217\u51fa\u4e86 %amount% \u6761\u8bc4\u8bba
clickable: ' \uff08\u53ef\u70b9\u51fb\uff09'
area_list_header_paged: $2(\u7b2c $1%cur$2 \u9875/\u5171 $1%max$2 \u9875) $1\u5217\u51fa\u4e86 %amount% \u7247\u533a\u57df
plot_list_header_paged: $2(\u7b2c $1%cur$2 \u9875/\u5171 $1%max$2 \u9875) $1\u5217\u51fa\u4e86 %amount% \u5757\u5730\u76ae
plot_list_header: $1\u5217\u51fa\u4e86 %word% \u5730\u76ae
plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner
plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner
plot_list_footer: $2>> $1%word% \u603b\u8ba1\u6709\u5757 $2%num% $1\u9886\u53d6\u7684 %plot%.
left:
left_plot: $2\u4f60\u79bb\u5f00\u4e86\u4e00\u4e2a\u5730\u76ae
chat:
plot_chat_format: '$2[$1\u5730\u76ae\u804a\u5929$2][$1%plot_id%$2] $1%sender%$2: $1%msg%'
plot_chat_forced: $2\u8fd9\u4e2a\u4e16\u754c\u5f3a\u5236\u6240\u6709\u4eba\u4f7f\u7528\u5730\u76ae\u804a\u5929
plot_chat_on: $4\u5f00\u542f\u4e86\u5730\u76ae\u804a\u5929\u3002
plot_chat_off: $4\u5173\u95ed\u4e86\u5730\u76ae\u804a\u5929\u3002
deny:
denied_removed: $4Y\u4f60\u6210\u529f\u7684\u4ece\u6b64\u5730\u76ae\u9ed1\u540d\u5355\u89e3\u9664\u4e86\u4e00\u4f4d\u73a9\u5bb6
denied_added: $4\u4f60\u6210\u529f\u7684\u5c06\u8fd9\u4f4d\u73a9\u5bb6\u52a0\u5165\u6b64\u5730\u76ae\u7684\u9ed1\u540d\u5355\u4e2d
denied_need_argument: $2\u7f3a\u5c11\u53c2\u6570\u3002\u8bf7\u4f7f\u7528$1/plot denied add <name> $2\u6216\u8005 $1/plot denied remove <name>
was_not_denied: $2\u90a3\u4f4d\u73a9\u5bb6\u4e0d\u5728\u6b64\u5730\u76ae\u7684\u9ed1\u540d\u5355\u4e2d
you_got_denied: $4\u4f60\u88ab\u6240\u5728\u7684\u5730\u76ae\u52a0\u5165\u4e86\u9ed1\u540d\u5355\uff0c\u6240\u4ee5\u4f60\u88ab\u4f20\u9001\u5230\u4e86\u51fa\u751f\u70b9\u3002
kick:
you_got_kicked: $4\u4f60\u88ab\u8e22\u51fa\u4e86\u5730\u76ae\uff01
rain:
need_on_off: $2\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a\u503c\u3002\u6b63\u786e\u7684\u503c\uff1a $1on$2, $1off
setting_updated: $4\u4f60\u6210\u529f\u7684\u66f4\u65b0\u4e86\u8bbe\u7f6e\u3002
flag:
flag_key: $2\u5173\u952e\u8bcd\uff1a %s
flag_type: $2\u7c7b\u578b\uff1a %s
flag_desc: $2\u63cf\u8ff0\uff1a %s
not_valid_flag: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6807\u5fd7
not_valid_flag_suggested: $2\u90a3\u4e0d\u662f\u4e00\u4e2a\u6b63\u786e\u7684\u6807\u5fd7\u3002\u4f60\u60f3\u7528\uff1a $1%s \u5417\uff1f
not_valid_value: $2\u5730\u76ae\u503c\u5fc5\u987b\u4e3a\u4ee3\u6570
flag_not_in_plot: $2\u8fd9\u4e2a\u5730\u76ae\u76ee\u524d\u6ca1\u6709\u6807\u5fd7
flag_not_removed: $2\u8fd9\u4e2a\u6807\u5fd7\u4e0d\u80fd\u88ab\u79fb\u9664
flag_not_added: $2\u8fd9\u4e2a\u6807\u5fd7\u4e0d\u80fd\u88ab\u6dfb\u52a0
flag_removed: $4\u6210\u529f\u7684\u79fb\u9664\u4e86\u6807\u5fd7
flag_added: $4\u6210\u529f\u7684\u6dfb\u52a0\u4e86\u6807\u5fd7
trusted:
trusted_added: $4\u4f60\u6210\u529f\u7684\u4e3a\u5730\u76ae\u6dfb\u52a0\u4e86\u4e00\u4f4d\u4fe1\u4efb\u73a9\u5bb6
trusted_removed: $4\u4f60\u6210\u529f\u7684\u4e3a\u5730\u76ae\u79fb\u9664\u4e86\u4e00\u4f4d\u4fe1\u4efb\u73a9\u5bb6
was_not_added: $2\u90a3\u4f4d\u73a9\u5bb6\u5728\u8fd9\u4e2a\u5730\u76ae\u4e2d\u4e0d\u662f\u4fe1\u4efb\u73a9\u5bb6
plot_removed_user: $1\u56e0\u4e3a\u5730\u76ae\u4e3b\u4eba\u7684\u957f\u671f\u4e0d\u5728\u7ebf\uff0c\u4f60\u6240\u4f5c\u4e3a\u4fe1\u4efb\u73a9\u5bb6\u7684\u5730\u76ae %s \u5df2\u88ab\u5220\u9664
member:
removed_players: $2Removed %s players from this plot.
already_owner: $2\u73a9\u5bb6 %s0 \u5df2\u7ecf\u662f\u5730\u76ae\u4e3b\u4eba\u4e86
already_added: $2\u73a9\u5bb6 %s0 \u5df2\u7ecf\u88ab\u6dfb\u52a0\u5230\u6b64\u7c7b\u4e86
member_added: $4\u90a3\u4f4d\u73a9\u5bb6\u73b0\u5728\u5728\u5730\u76ae\u4e3b\u4eba\u5728\u7ebf\u65f6\u53ef\u4ee5\u7f16\u8f91\u5730\u76ae
member_removed: $1\u4f60\u6210\u529f\u7684\u4e3a\u5730\u76ae\u79fb\u9664\u4e86\u4e00\u4f4d\u6210\u5458
member_was_not_added: $2\u90a3\u4f4d\u73a9\u5bb6\u4e0d\u662f\u5730\u76ae\u7684\u4e00\u4f4d\u6210\u5458
plot_max_members: $2\u4f60\u4e0d\u88ab\u5141\u8bb8\u518d\u4e3a\u5730\u76ae\u589e\u52a0\u6210\u5458\u4e86
owner:
set_owner: $4\u4f60\u6210\u529f\u7684\u8bbe\u7f6e\u4e86\u5730\u76ae\u4e3b\u4eba
now_owner: $4\u4f60\u73b0\u5728\u662f\u5730\u76ae %s \u7684\u4e3b\u4eba\u4e86
signs:
owner_sign_line_1: $1\u5730\u76aeID\uff1a $1%id%
owner_sign_line_2: '$1\u6240\u6709\u8005:'
owner_sign_line_3: $2%plr%
owner_sign_line_4: $3\u88ab\u9886\u53d6
help:
help_header: $3&m---------&r $1\u5730\u76ae\u7cfb\u7edf\u2461\u5e2e\u52a9\u6587\u4ef6 $3&m---------
help_page_header: '$1\u7c7b\u578b: $2%category%$2,$1 \u9875\u9762\uff1a $2%current%$3/$2%max%$2'
help_footer: $3&m---------&r $1\u5730\u76ae\u7cfb\u7edf\u2461\u5e2e\u52a9\u6587\u4ef6 $3&m---------
help_info_item: $1/plots help %category% $3- $2%category_desc%
help_item: $1%usage% [%alias%]&- $3- $2%desc%&-
direction: $1\u5f53\u524d\u8def\u5f84\uff1a %dir%
grants:
granted_plots: $1\u7ed3\u679c\uff1a $1\u5269\u4f59 $2%s
granted_plot: $1\u4f60\u5c06 %s0 \u5730\u76ae\u8d60\u4e88 $2%s1
granted_plot_failed: $1\u8d60\u4e88\u5931\u8d25\u4e86\uff1a$2%s
'-':
custom_string: '-'
near:
plot_near: '$1Players: %s0'

View File

@ -1,257 +0,0 @@
### UNESCAPED TEMPLATE ###
# Translated by: Liouftgoo/Mayomi9
# UTF-8 ESCAPE USING: http://www.rapidmonkey.com/unicodeconverter/
### UNESCAPED TEMPLATE ###
camera_started: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>Ƥ $1%s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ"
command_syntax: "$1<>÷<EFBFBD>: $2%s"
not_valid_flag: "$2<><EFBFBD><E2B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD>ı<EFBFBD>ʶ"
setup_world_taken: "$2%s <20>Ѿ<EFBFBD><D1BE>ǵ<EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
plot_list_item: "$2>> $1%id$2:$1%world $2- $1%owner"
schematic_invalid: "$2<><EFBFBD><E2B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>ļ<EFBFBD>. ԭ<><D4AD>: $2%s"
not_valid_inbox_index: "$2ҳ<32><D2B3> %s û<><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
setup_invalid_generator: "$2<><32>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD>. <20><>ѡ: %s"
teleported_to_road: "$2<><EFBFBD>͵<EFBFBD><CDB5><EFBFBD>·<EFBFBD><C2B7>"
debug_section: "$2>> $1&l%val%"
plot_id_form: "$2<><32>ƤID<49>ĸ<EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD>Ϊ: $1X;Y $2<><32><EFBFBD><EFBFBD>: $1-5;7"
invalid_position: "$2<><EFBFBD><E2B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>λ<EFBFBD><CEBB>"
worldedit_unsafe: "$2<><32>ָ<EFBFBD><D6B8><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD>ֹʹ<D6B9><CAB9>"
not_in_plot_world: "$2<><EFBFBD>ڵ<EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
cannot_buy_own: "$2<><EFBFBD><E3B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ĵ<EFBFBD>Ƥ"
help_item: "$1%usage% [%alias%]&- $3- $2%desc%&-"
not_valid_world: "$2<><EFBFBD><E2B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><D7A2><EFBFBD>Сд)"
home_argument: "$2<>÷<EFBFBD> /plot set home [<5B>ɲ<EFBFBD><C9B2><EFBFBD>]"
title_left_plot_color: "GOLD"
merge_not_valid: "$2<>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʧЧ."
debug_line: "$2>> $1%var%$2:$1 %val% "
comment_added: "$4<><34><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>"
alias_is_taken: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><D1B1><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>"
setup_missing_generator: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD> ($1/plot setup <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> &l<<3C><><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD>>&r$2)&-$1<><31><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>:&-$2 - $1/plot setup <<3C><><EFBFBD><EFBFBD>>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel"
block_list_separater: "$1,$2 "
alias_set_to: "$2<><32>Ƥ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ $1%alias%"
did_you_mean: "$2<><32><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD><CBBC> $1%s $2<><32>?"
cluster_not_added: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>Ⱥ<EFBFBD><C8BA>"
success_merge: "$2<><32>Ƥ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD>ϲ<EFBFBD>!"
position_set: "$1<><31><EFBFBD>㵱ǰ<E3B5B1><C7B0>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD>ü<EFBFBD>"
cluster_regenerated: "$4<>ɹ<EFBFBD><C9B9><EFBFBD>ʼȺ<CABC><C8BA><EFBFBD>ؽ<EFBFBD>"
not_valid_data: "$2<><EFBFBD><E2B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>ֵ."
not_for_sale: "$2<><32><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
not_in_cluster: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>Ⱥ<EFBFBD>в<EFBFBD><D0B2>ܽ<EFBFBD><DCBD>д˲<D0B4><CBB2><EFBFBD>"
schematic_paste_success: "$4<><34><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ճ<EFBFBD><D5B3><EFBFBD>ɹ<EFBFBD>"
set_block_action_finished: "$1<><31><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
missing_alias: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
paste_failed: "$2ճ<32><D5B3>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. ԭ<><D4AD>: $2%s"
invalid_player: "$2δ<32>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD> $1%s."
plot_info_helpers: "$1<><31><EFBFBD><EFBFBD>:$2 %helpers%"
cluster_added: "$4<>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ."
setup_init: "$1<>÷<EFBFBD>: $2/plot setup <<3C><><EFBFBD><EFBFBD>>"
bossbar_clearing: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ $1%id%"
title_entered_plot_sub_color: "RED"
prefix_greeting: "$1%id%$2> "
not_your_plot: "$2<><EFBFBD><E2B2BB><EFBFBD><EFBFBD>ĵ<EFBFBD>Ƥ."
worldedit_volume: "$2<><32><EFBFBD>޷<EFBFBD>ѡ<EFBFBD><D1A1> %current% <20>Ŀռ<C4BF>. <20><><EFBFBD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ %max%."
not_valid_plot_id: "$2<><EFBFBD><E2B2BB><EFBFBD><EFBFBD>Ч<EFBFBD>ĵ<EFBFBD>ƤID."
unclaim_success: "$4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ."
teleport_failed: "$2<><32>Ϊ<EFBFBD>ܵ<EFBFBD><DCB5>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
need_plot_world: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>."
plot_not_claimed: "$2<><32>Ƥδ<C6A4><CEB4><EFBFBD><EFBFBD>ȡ"
title_entered_plot_color: "GOLD"
denied_removed: "$4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>ҵĺ<D2B5><C4BA><EFBFBD><EFBFBD><EFBFBD>"
plot_removed_helper: "$1<><31><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>Ƥ %s <20><>Ϊӵ<CEAA><D3B5><EFBFBD>߲<EFBFBD><DFB2><EFBFBD>Ծ<EFBFBD><D4BE><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>"
plotworld_incompatible: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0BBA5><EFBFBD><EFBFBD>"
generating_component: "$1<><31>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E8B6A8><EFBFBD><EFBFBD>"
not_valid_block_list_header: "$2<><EFBFBD><E2B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>. <20><>Ч<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>: "
alias_too_long: "$2<><32><EFBFBD><EFBFBD><EFBFBD>ij<EFBFBD><C4B3>ȱ<EFBFBD><C8B1><EFBFBD>С<EFBFBD><D0A1>50<35><30><EFBFBD>ַ<EFBFBD>"
move_success: "$4<>ɹ<EFBFBD><C9B9>Ƴ<EFBFBD><C6B3><EFBFBD>Ƥ."
no_plot_perms: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>Ƥӵ<C6A4><D3B5><EFBFBD>߲<EFBFBD><DFB2><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
command_went_wrong: "$2ִ<32><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>..."
helper_added: "$4<><34>ɹ<EFBFBD>Ϊ<EFBFBD><CEAA>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD>˰<EFBFBD><CBB0><EFBFBD>"
schematic_paste_failed: "$2ճ<32><D5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>ʧ<EFBFBD><CAA7>"
removed_balance: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB>п۳<D0BF><DBB3><EFBFBD> $1%s"
setup_step: "$3[$1<><31><EFBFBD><EFBFBD> - %s$3] $1%s $2- $1<><31><EFBFBD><EFBFBD>: $2%s $1Ĭ<31><C4AC>ֵ: $2%s"
schematic_valid: "$2<><32><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD>ļ<EFBFBD>"
owner_sign_line_4: "$3<><33><EFBFBD><EFBFBD>ȡ"
cluster_added_helper: "$4<>ɹ<EFBFBD>Ϊ<EFBFBD><CEAA>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
owner_sign_line_3: "$2%plr%"
already_owner: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>ӵ<EFBFBD>е<EFBFBD>Ƥ<EFBFBD><C6A4>."
owner_sign_line_2: "$1ӵ<31><D3B5><EFBFBD><EFBFBD>:"
owner_sign_line_1: "$1ID: $1%id%"
not_valid_subcommand: "$2<><EFBFBD><E2B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
subcommand_set_options_header: "$2<><32><EFBFBD>õIJ<C3B5><C4B2><EFBFBD>: "
requires_unowned: "$2<><32>λ<EFBFBD><CEBB><EFBFBD>ѱ<EFBFBD>ռ<EFBFBD><D5BC>."
plot_unowned: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵ<EFBFBD>Ƥӵ<C6A4><D3B5><EFBFBD>߲<EFBFBD><DFB2><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
inbox_item: "$2 - $4%s"
cannot_kick_player: "$2<><EFBFBD><E3B2BB><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
clearing_done: "$4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! <20><>ʱ %s<><73><EFBFBD><EFBFBD>."
setup_valid_arg: "$2<><32><EFBFBD><EFBFBD> $1%s $2<><32><EFBFBD><EFBFBD>Ϊ %s"
camera_stopped: "$2<><32>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ"
flag_type: "$2<><32><EFBFBD><EFBFBD>: %s"
pasted: "$4<><34>ѡ<EFBFBD><D1A1>ĵ<EFBFBD>Ƥ<EFBFBD>ɹ<EFBFBD>ճ<EFBFBD><D5B3>."
cluster_info: "$1<><31>ǰ<EFBFBD><C7B0>Ⱥ: $2%id%&-$1<><31><EFBFBD><EFBFBD>: $2%name%&-$1ӵ<31><D3B5><EFBFBD><EFBFBD>: $2%owner%&-$1<><31>С: $2%size%&-$1Ȩ<31><C8A8>: $2%rights%"
cluster_cannot_leave: "$1<><31><EFBFBD>˳<EFBFBD>֮ǰ<D6AE><C7B0>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȩ"
help_header: "$3====== $1<><31>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD> $3======"
cannot_afford_merge: "$2<><32>û<EFBFBD><C3BB><EFBFBD><EFBFBD>Ľ<EFBFBD>Ǯ<EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>Ƥ. <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> $1%s"
setting_updated: "$4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>趨"
need_key: "$2<><32><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>: $1%values%"
merge_requested: "$2<>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD>ͺϲ<CDBA><CFB2><EFBFBD><EFBFBD><EFBFBD>"
compass_target: "$4S<34>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD>͵<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD>Ƥ"
flag_not_added: "$2<>ñ<EFBFBD>ʶ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
no_plots: "$2<><32>û<EFBFBD>ж<EFBFBD><D0B6><EFBFBD>ĵ<EFBFBD>Ƥ<EFBFBD><C6A4>"
need_plot_id: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ƤID."
flag_not_removed: "$2<>ñ<EFBFBD>ʶ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD>Ƴ<EFBFBD>"
trusted_removed: "$1<><31>ӵ<EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
comment_header: "$2====== <20><><EFBFBD>԰<EFBFBD> ======"
flag_removed: "$4<>ɹ<EFBFBD><C9B9>Ƴ<EFBFBD><C6B3><EFBFBD>ʶ"
rating_applied: "$4<><34>Ϊ<EFBFBD><CEAA>Ƥ $2%s $4<><34><EFBFBD><EFBFBD><EFBFBD>"
requires_confirm: "$2<><32><EFBFBD>Ƿ<EFBFBD>ִ<EFBFBD><D6B4>: $1%s$2?&-$2<>ò<EFBFBD><C3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>! <20><><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: $1/plot confirm"
flag_added: "$4<>ɹ<EFBFBD><C9B9><EFBFBD>ӱ<EFBFBD>ʶ"
econ_disabled: "$2<><32><EFBFBD>ù<EFBFBD><C3B9><EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>"
not_valid_hybrid_plot_world: "The hybrid plot manager is required to perform this action"
no_commands: "$2<><32>û<EFBFBD><C3BB>Ȩ<EFBFBD><C8A8>ʹ<EFBFBD><CAB9><EFBFBD>κ<EFBFBD>ָ<EFBFBD><D6B8>."
missing_position: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB>λ<EFBFBD><CEBB>. <20><><EFBFBD>õIJ<C3B5><C4B2><EFBFBD>: $1none"
record_play: "$2%player $2<><32>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>CD $1%name"
no_perm_inbox_modify: "$2<><32>û<EFBFBD><C3BB>Ȩ<EFBFBD><C8A8><EFBFBD>޸<EFBFBD>"
unlink_required: "$2<><32><EFBFBD><EFBFBD><EFBFBD>Ҫȡ<D2AA><C8A1><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD>Ƥ."
denied_need_argument: "$2ȱ<32>ٲ<EFBFBD><D9B2><EFBFBD>. $1/plot denied add <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> $2<><32> $1/plot denied remove <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>"
added_balance: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD> $1%s"
not_using_plotme: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD> $1PlotSquared $2<><32>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>ϵͳ. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> $1/ps $2<><32> $1/p2 $2<><32> $1/plot $2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
player_has_not_been_on: "$2<><32><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>ûӵ<C3BB>е<EFBFBD>Ƥ"
plot_list_footer: "$2>> $1%word% <20><> $2%num% $1<><31><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1> %plot%."
trim_in_progress: "<22><>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD>!"
cluster_deleted: "$4<>ɹ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>Ⱥ."
cant_claim_more_plots: "$2<><EFBFBD><E3B2BB><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ĵ<EFBFBD>Ƥ<EFBFBD><C6A4>."
unlink_success: "$2<>ɹ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>Ƥ<EFBFBD>ϲ<EFBFBD>."
no_perm_inbox: "$2<><32>û<EFBFBD><C3BB>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
worldedit_bypass: "$2&o<><6F><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> $3/plot wea"
prefix: "$3[$1<><31>Ƥ$3] "
claimed: "$4<><34>ɹ<EFBFBD><C9B9><EFBFBD>ȡ<EFBFBD>˵<EFBFBD>Ƥ"
failed_confirm: "$2<><32>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>˴<EFBFBD><CBB4><EFBFBD>!"
copy_success: "$4<><34>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>Ƥ."
cluster_available_args: "$1<><31><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>Ⱥָ<C8BA><D6B8>: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4helpers$2, $4info$2, $4tp$2, $4sethome"
cluster_list_heading: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> $1%s$2 <20><><EFBFBD><EFBFBD>Ⱥ"
cluster_list_element: "$2 - $1%s&-"
cluster_intersection: "$2<>õ<EFBFBD><C3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD> $1%s$2 <20><><EFBFBD><EFBFBD>Ⱥ"
cluster_resized: "$4<>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD>Ĵ<EFBFBD>С."
cluster_added_user: "$4<>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>Ⱥ<EFBFBD><C8BA>."
cluster_invited: "$1<><EFBFBD><E3B1BB><EFBFBD><EFBFBD><EBB5BD>Ⱥ: $2%s"
cluster_removed: "$1<><EFBFBD><E3B1BB>Ⱥ $2%s <20>߳<EFBFBD><DFB3><EFBFBD>"
cluster_kicked_user: "$4<>ɹ<EFBFBD><C9B9>߳<EFBFBD><DFB3><EFBFBD><EFBFBD>"
invalid_cluster: "$1<><31>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD>: $2%s"
cluster_removed_helper: "$4<>ɹ<EFBFBD><C9B9>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD>"
cluster_teleporting: "$4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>..."
cluster_current_plotid: "$1<><31>ǰ<EFBFBD><C7B0>Ƥ: $2%s"
border: "$2<><32><EFBFBD>ߵ<EFBFBD><DFB5>˵<EFBFBD>ͼ<EFBFBD>߾<EFBFBD>"
require_selection_in_mask: "$2<><32>ѡ<EFBFBD><D1A1>ĵ<EFBFBD>Ƥ %s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>Ƥ<EFBFBD>н<EFBFBD><D0BD><EFBFBD>."
worldedit_iterations: "$2<><EFBFBD><E3B2BB><EFBFBD>ظ<EFBFBD> %current% <20><>. <20><><EFBFBD><EFBFBD>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD>Ϊ %max%."
worldedit_unmasked: "$1<><31><EFBFBD>WE<57><45><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
worldedit_restricted: "$1<><31><EFBFBD>WE<57><45><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD><EFBFBD>."
notify_enter: "$2%player $2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>Ƥ ($1%plot$2)"
notify_leave: "$2%player $2<><EFBFBD><EBBFAA><EFBFBD><EFBFBD>ĵ<EFBFBD>Ƥ ($1%plot$2)"
swap_overlap: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
swap_dimensions: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫͬ<D2AA><CDAC><EFBFBD><EFBFBD>С<EFBFBD>ijߴ<C4B3>"
swap_syntax: "$2/plot swap <<3C><>ƤID>"
swap_success: "$4<>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ"
started_swap: "$2<><32>ʼ<EFBFBD><CABC>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֪ͨ<CDA8><D6AA>"
comment_syntax: "$2<>÷<EFBFBD> /plot comment [X;Z] <%s> <<3C><><EFBFBD><EFBFBD>>"
invalid_inbox: "$2<><EFBFBD><E2B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>ҳ<EFBFBD><D2B3>.&-$1<><31><EFBFBD>õIJ<C3B5><C4B2><EFBFBD>: %s"
no_plot_inbox: "$2<><EFBFBD><E2B2BB><EFBFBD><EFBFBD>Ч<EFBFBD>ĵ<EFBFBD>Ƥҳ<C6A4><D2B3>"
comment_removed: "$4<>ɹ<EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>/s:n$2 - '$3%s$2'"
not_console: "$<24><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD>޿<EFBFBD><DEBF><EFBFBD>̨<EFBFBD><CCA8><EFBFBD><EFBFBD>."
is_console: "$2<><32>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>."
clipboard_set: "$2<><32>ǰ<EFBFBD><C7B0>Ƥ<EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD><C6B5>˼<EFBFBD><CBBC>а<EFBFBD>, ʹ<><CAB9> $1/plot paste$2 <20><>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD>"
no_clipboard: "$2<><32>û<EFBFBD><C3BB>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>а<EFBFBD>"
clipboard_info: "$2<><32>ǰѡ<C7B0><D1A1> - <20><>Ƥ ID: $1%id$2, <20><><EFBFBD>: $1%width$2, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: $1%total$2"
rating_not_valid: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB>1~10֮<30><D6AE><EFBFBD><EFBFBD><EFBFBD>"
rating_already_exists: "$2<><32><EFBFBD>Ѿ<EFBFBD>Ϊ<EFBFBD><CEAA>Ƥ $2%s <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
rating_not_your_own: "$2<><EFBFBD><E3B2BB>Ϊ<EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>"
rating_not_owned: "$2<><EFBFBD><E3B2BB>Ϊ<EFBFBD><CEAA><EFBFBD>õ<EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>"
cannot_afford_plot: "$2<><32>û<EFBFBD><C3BB><EFBFBD><EFBFBD>Ľ<EFBFBD>Ǯ<EFBFBD><C7AE><EFBFBD><EFBFBD><EFBFBD>Ƥ. <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD> $1%s"
plot_sold: "$4<><34>ĵ<EFBFBD>Ƥ; $1%s$4, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> $1%s$4 <20>۸<EFBFBD>Ϊ $1$%s"
setup_invalid_arg: "$2%s<><73><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD> %s <20><><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD>. ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: $1/plot setup cancel"
setup_finished: "$3<><33><EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD> MULTIVERSE <20><> MULTIWORLD <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>Զ<EFBFBD>д<EFBFBD><D0B4>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ֶ<EFBFBD>д<EFBFBD><D0B4><EFBFBD>ļ<EFBFBD> bukkit.yml"
setup_missing_world: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ($1/plot setup &l<<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>$1 <<3C><><EFBFBD>ɲ<EFBFBD><C9B2><EFBFBD>>$2)&-$1<><31><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>:&-$2 - $1/plot setup <<3C><><EFBFBD><EFBFBD>>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel"
schematic_missing_arg: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>õIJ<C3B5><C4B2><EFBFBD>: $1test <<3C><><EFBFBD><EFBFBD>>$2 , $1save$2 , $1paste $2, $1exportall"
title_entered_plot: "<22><>Ƥλ<C6A4><CEBB>: %world%;%x%;%z%"
title_entered_plot_sub: <><D3B5><EFBFBD><EFBFBD> %s"
title_left_plot: "<22><><EFBFBD><EFBFBD><EBBFAA> %s"
title_left_plot_sub: <><D3B5><EFBFBD><EFBFBD> %s"
title_left_plot_sub_color: "RED"
prefix_farewell: "$1%id%$2> "
enabled: "$1PlotSquared <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
example_message: "$2<><32><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>Ϣ &k!!!"
reloaded_configs: "$1<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><E8B6A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ"
reload_failed: "$2<><32><EFBFBD><EFBFBD>ȡʧ<C8A1><CAA7><EFBFBD><EFBFBD>"
time_format: "$1%hours%, %min%, %sec%"
no_schematic_permission: "$2<><32>û<EFBFBD><C3BB>Ȩ<EFBFBD><C8A8>ʹ<EFBFBD>ý<EFBFBD><C3BD><EFBFBD><EFBFBD>ļ<EFBFBD> $1%s"
no_permission: "$2<><32>ȱ<EFBFBD><C8B1><EFBFBD><EFBFBD>Ȩ<EFBFBD><C8A8>: $1%s"
cant_transfer_more_plots: "$2<><EFBFBD>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
cant_claim_more_plots_num: "$2<><EFBFBD><E3B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ȡ $1%s $2<><32><EFBFBD>Ƥ"
you_be_denied: "$2<><EFBFBD>ܽ<EFBFBD><DCBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ"
no_perm_merge: "$2<><EFBFBD><E3B2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ $1%plot% $2<><32>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>"
unlink_impossible: "$2<><32>ֻ<EFBFBD><D6BB>ȡ<EFBFBD><C8A1><EFBFBD>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ"
no_merge_to_mega: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD>ϲ<EFBFBD>."
merge_accepted: "$2<>ϲ<EFBFBD><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD><D1B1><EFBFBD><EFBFBD><EFBFBD>"
merge_request_confirm: "<22>յ<EFBFBD><D5B5><EFBFBD> %s <20>ĺϲ<C4BA><CFB2><EFBFBD><EFBFBD><EFBFBD>"
name_little: "$2%s <20><><EFBFBD><EFBFBD>̫<EFBFBD><CCAB><EFBFBD><EFBFBD>, $1%s$2<$1%s"
purge_syntax: "<22>÷<EFBFBD> /plot purge <x;z|player|unowned|unknown|all> <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>"
purge_success: "$4<>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> %s <20><><EFBFBD>Ƥ"
trim_syntax: "<22>÷<EFBFBD> /plot trim <all|x;y> <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>"
trim_start: "<22><>ʼ<EFBFBD><CABC>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>..."
no_free_plots: "$2û<32><C3BB><EFBFBD><EFBFBD>ѵĵ<D1B5>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>"
not_in_plot: "$2<><EFBFBD>ڵ<EFBFBD>Ƥ<EFBFBD><C6A4>"
not_valid_plot_world: "$2<><EFBFBD><E2B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><><D7A2><EFBFBD>Сд)"
block_list_item: " $1%mat%$2,"
need_biome: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>"
biome_set_to: "$2<><32>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ $2"
teleported_to_plot: "$2<><EFBFBD>͵<EFBFBD><CDB5>˵<EFBFBD>Ƥ<EFBFBD><C6A4>"
teleport_in_seconds: "$1<><31><EFBFBD><EFBFBD> %s <20><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD>..."
deubg_header: "$1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ"
not_valid_block: "$2<><EFBFBD><E2B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>."
not_valid_number: "$2<><EFBFBD><E2B2BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
no_such_plot: "$2û<32>и<EFBFBD><D0B8><EFBFBD><EFBFBD>͵ĵ<CDB5>Ƥ"
found_no_plots: "$2<>޷<EFBFBD><DEB7><EFBFBD><EFBFBD>ݸ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>ҵ<EFBFBD>Ƥ"
need_plot_number: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ƤID<49><44><EFBFBD><EFBFBD><EFBFBD>"
need_block: "$<24><><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>"
need_user: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>"
plot_info_unclaimed: "$2<><32>Ƥ $1%s$2 <20><>δ<EFBFBD><CEB4><EFBFBD><EFBFBD>ȡ"
plot_info_header: "$3====== $1INFO $3======"
plot_info: "$1ID: $2%id%$1&-$1<><31><EFBFBD><EFBFBD>: $2%alias%$1&-$1ӵ<31><D3B5><EFBFBD><EFBFBD>: $2%owner%$1&-$1<><31><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>: $2%biome%$1&-$1<>ɷ<EFBFBD><C9B7><EFBFBD>: $2%build%$1&-$1<><31><EFBFBD><EFBFBD>: $2%rating%$1/$210$1&-$1<><31><EFBFBD><EFBFBD>: $2%helpers%$1&-$1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: $2%trusted%$1&-$1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: $2%denied%$1&-$1<><31>ʶ: $2%flags%"
plot_info_trusted: "$1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:$2 %trusted%"
plot_info_denied: "$1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:$2 %denied%"
plot_info_flags: "$1<><31>ʶ:$2 %flags%"
plot_info_biome: "$1<><31><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA>:$2 %biome%"
plot_info_rating: "$1<><31><EFBFBD><EFBFBD>:$2 %rating%"
plot_info_owner: "$1ӵ<31><D3B5><EFBFBD><EFBFBD>:$2 %owner%"
plot_info_id: "$1ID:$2 %id%"
plot_info_alias: "$1<><31><EFBFBD><EFBFBD>:$2 %alias%"
plot_info_size: "$1<><31>С:$2 %size%"
plot_user_list: " $1%user%$2,"
info_syntax_console: "$2/plot info <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> X;Y"
clearing_plot: "$2<><32><EFBFBD><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>."
plot_is_claimed: "$2<><32><EFBFBD><EFBFBD>Ƥ<EFBFBD>ѱ<EFBFBD><D1B1><EFBFBD>ȡ"
plot_list_header_paged: "$2(ҳ<><D2B3> $1%cur$2/$1%max$2) $1<>г<EFBFBD><D0B3><EFBFBD> %word% <20><><EFBFBD>Ƥ"
plot_list_header: "$11<31>г<EFBFBD><D0B3><EFBFBD> %word% <20><><EFBFBD>Ƥ"
plot_list_item_ordered: "$2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner"
left_plot: "$2<><32><EFBFBD><EFBFBD>˵<EFBFBD>Ƥ"
wait_for_timer: "$2<><32><EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>Ժ<EFBFBD>..."
plot_chat_format: "$2[$1<><31>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD>$2][$1%plot_id%$2] $1%sender%$2: $1%msg%"
denied_added: "$4<><34>ɹ<EFBFBD>Ϊ<EFBFBD><CEAA>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD>˺<EFBFBD><CBBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
was_not_denied: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҳ<EFBFBD><D2B2>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
need_on_off: "$2<><32><EFBFBD><EFBFBD>Ҫָ<D2AA><D6B8>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>õIJ<C3B5><C4B2><EFBFBD>: $1on$2, $1off"
flag_key: "$2<>ؼ<EFBFBD><D8BC><EFBFBD>: %s"
flag_desc: "$2<><32><EFBFBD><EFBFBD>: %s"
not_valid_value: "$2<><32>ʶ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>"
flag_not_in_plot: "$2<><32><EFBFBD><EFBFBD>Ƥ<EFBFBD><C6A4>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD>ʶ 26"
helper_removed: "$4<><34>ɹ<EFBFBD>Ϊ<EFBFBD><CEAA>Ƥ<EFBFBD>Ƴ<EFBFBD><C6B3>˰<EFBFBD><CBB0><EFBFBD>"
helper_need_argument: "$2ȱ<32>ٲ<EFBFBD><D9B2><EFBFBD>. $1/plot helpers add <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> $2<><32> $1/plot helpers remove <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>"
was_not_added: "$2<><32><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>û<EFBFBD>г<EFBFBD>Ϊ<EFBFBD>õ<EFBFBD>Ƥ<EFBFBD>İ<EFBFBD><C4B0><EFBFBD>"
already_added: "$2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˸÷<CBB8><C3B7><EFBFBD>."
trusted_added: "$4<><34>ɹ<EFBFBD>Ϊ<EFBFBD><CEAA>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
trusted_need_argument: "$2ȱ<32>ٲ<EFBFBD><D9B2><EFBFBD>. $1/plot trusted add <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>> $2<><32> $1/plot trusted remove <<3C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>>"
t_was_not_added: "$2<><32><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>û<EFBFBD>г<EFBFBD>Ϊ<EFBFBD>õ<EFBFBD>Ƥ<EFBFBD>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
set_owner: "$4<><34>ɹ<EFBFBD>Ϊ<EFBFBD><CEAA>Ƥ<EFBFBD><C6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>"
now_owner: "$4<><34><EFBFBD><EFBFBD><EFBFBD>ڳ<EFBFBD>Ϊ<EFBFBD><CEAA>Ƥ %s <20><>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
help_category: "$1<><31><EFBFBD><EFBFBD>: $2%category%$2,$1 ҳ<><D2B3>: $2%current%$3/$2%max%$2,$1 <20><><EFBFBD><EFBFBD>ʾ: $2%dis%$3/$2%total%"
help_info: "$3====== $1ѡ<31><D1A1>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> $3======"
help_info_item: "$1/plot help %category% $3- $2%category_desc%"
direction: "$1<><31>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>: %dir%"
custom_string: "-"

View File

@ -0,0 +1,407 @@
# This file is translated by c7w, w/1345979462 and 佛壁灯(f0rb1d)
# Translation Guide
# 1. 句子与变量、命令、数字之间保留空隙,全角符号除外
# 2. 使用已成功/已复制/正在/未启用/已启用/请使用开头
# 3. 使用阁下(其实好像也无所谓)
# 4. 失败/成功/无效应放在句末
# 就差不多这些
confirm:
expired_confirm: $2确认已过期请重新执行命令
failed_confirm: $2阁下没有待确认的操作
requires_confirm: '$2阁下是否确定执行$1%s$2?&-$2此操作无法恢复若阁下确定请输入$1/plot confirm'
move:
move_success: $4已成功移除地皮。
copy_success: $4已成功复制地皮。
requires_unowned: $2指定地点已被占用。
set:
set_attribute: $4已成功设置 %s0 为 %s1
web:
generating_link: $1正在处理地皮···
generating_link_failed: $2生成下载链接失败
save_failed: $2保存失败
load_null: $2请使用 $4/plot load$2 获取布局列表
load_failed: $2载入布局失败
load_list: '$2要载入布局请使用 $1/plot load #'
save_success: $1已成功保存
compass:
compass_target: $4已成功将指南针指向地皮
cluster:
cluster_available_args: '$1以下子指令可用$4list$2, $4create$2,
$4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2,
$4tp$2, $4sethome'
cluster_list_heading: $2此世界中有 $1%s$2 个群集
cluster_list_element: $2 - $1%s&-
cluster_intersection: '$计划的区域与%s0重叠'
cluster_outside: '$2计划的区域在地皮区域%s0外'
cluster_added: $4已成功创建群集。
cluster_deleted: $4已成功删除群集。
cluster_resized: $4已成功调整群集尺寸。
cluster_added_user: $4已成功将玩家添加到群集。
cannot_kick_player: $2阁下无法踢出此玩家
cluster_invited: '$1阁下已被邀请至群集 $2%s'
cluster_removed: '$1阁下已被群集 $2%s $1移除'
cluster_kicked_user: $4已成功踢出此玩家
invalid_cluster: '$1群集名 $2%s 无效'
cluster_not_added: $2此玩家未被添加至地皮群集
cluster_cannot_leave: $1阁下必须在离开前先删除群集或转移所有权
cluster_added_helper: $4已成功将帮手添加到群集
cluster_removed_helper: $4已成功将帮手从群集移除
cluster_regenerated: $4已成功开始群集重生
cluster_teleporting: $4正在传送···
cluster_info: '$1当前群集$2%id%&-$1名称$2%name%&-$1所有者$2%owner%&-$1大小
$2%size%&-$1权限$2%rights%'
border:
border: $2阁下处于当前地图边界外
unclaim:
unclaim_success: $4阁下已成功解除认领地皮。
unclaim_failed: $2无法解除认领地皮
worldedit masks:
worldedit_delayed: $2请在我们处理阁下的WorldEdit操作时稍等片刻···
worldedit_run: '$2很抱歉造成了延迟。现正执行%s'
require_selection_in_mask: $2选中的 %s 不在阁下的地皮覆盖范围内。
阁下仅可对自己的地皮做出修改。
worldedit_volume: $2阁下无法选择 %current% 体积。阁下可编辑的最大
体积为 %max%。
worldedit_iterations: $2阁下无法重复 %current% 次。容许的最大
重复次数为 %max%。
worldedit_unsafe: $2已禁止对此命令的访问
worldedit_bypass: $2&o要绕过对阁下的限制请使用 $4/plot wea
worldedit_bypassed: $2当前正绕过WorldEdit功能限制。
worldedit_unmasked: $1阁下的WorldEdit功能现已解除限制。
worldedit_restricted: $1阁下的WorldEdit功能现已受限制。
gamemode:
gamemode_was_bypassed: $1阁下绕过了为 $2{plot} $1设置的游戏模式$2{gamemode}$1限制
height limit:
height_limit: $1此地皮拥有高度 $2{limit} 的限制
records:
record_play: $2%player $2已开始游玩记录 $1%name
notify_enter: $2%player $2已进入阁下的地皮$1%plot$2
notify_leave: $2%player $2已离开阁下的地皮$1%plot$2
swap:
swap_overlap: $2计划的区域不允许重叠
swap_dimensions: $2计划的区域必须有可对比的维度
swap_syntax: $2/plot swap <编号>
swap_success: $4已成功交换地皮
started_swap: $2已开始地皮交换任务。阁下将会在完成时收到提醒
comment:
inbox_notification: '%s 条未读消息。请使用 /plot inbox 阅读'
not_valid_inbox_index: $2索引 %s 处无评论
inbox_item: $2 - $4%s
comment_syntax: $2请使用 /plot comment [X;Z] <%s> <评论>
invalid_inbox: '$2此收件箱无效。&-$1接受的值%s'
no_perm_inbox: $2阁下没有此收件箱的权限
no_perm_inbox_modify: $2阁下没有编辑此收件箱的权限
no_plot_inbox: $2阁下必须站在地皮内或提供地皮参数
comment_removed: $4已成功删除评论$2 - '$3%s$2'
comment_added: $4有玩家留下了一条评论
comment_header: $2&m---------&r $1评论 $2&m---------&r
inbox_empty: $2无评论
console:
not_console: $2由于安全考虑此命令只可由控制台执行。
is_console: $2此命令只可被玩家执行。
inventory:
inventory_usage: '&c用法&6{usage}'
inventory_desc: '&c描述&6{desc}'
inventory_category: '&c分类&6{category}'
clipboard:
clipboard_set: $2当前地皮已复制到阁下的剪贴板请使用 $1/plot paste$2 粘贴
pasted: $4已成功粘贴选择项并已从剪贴板中清除。
paste_failed: '$2无法粘贴选择项。理由$2%s'
no_clipboard: $2阁下的剪贴板内无选择项
clipboard_info: '$2当前选择项 - 地皮编号:$1%id$2, 宽度:$1%width$2, 方块
总数: $1%total$2'
toggle:
toggle_enabled: '$2已启用设置%s'
toggle_disabled: '$2已禁用设置%s'
blocked command:
command_blocked: $2此地皮中不允许使用此命令
done:
done_already_done: $2此地皮已被标记为已完成
done_not_done: $2此地皮未标记为已完成。
done_insufficient_complexity: $2此地皮过于简单。请在使用此命令前添加更多的细节。
done_success: $1已成功标记此地皮为已完成。
done_removed: $1阁下现在可以在此地皮中继续建造了。
ratings:
ratings_purged: $2已清除此地皮的评分
rating_not_valid: $2阁下需要指定介于 1 到 10 之间的数字
rating_already_exists: $2阁下已评价过地皮 $2%s
rating_applied: $4阁下已成功评价地皮 $2%s
rating_not_your_own: $2阁下无法评价自己的地皮
rating_not_done: $2阁下仅可评价已完成的地皮。
rating_not_owned: $2阁下无法评价尚未被任何玩家拥有的地皮
tutorial:
rate_this: $2评价此地皮
comment_this: '$2请为地皮 %s 留下反馈'
economy:
econ_disabled: $2未启用经济系统
cannot_afford_plot: $2阁下无法购买此地皮。此地皮价值 $1%s
not_for_sale: $2此地皮恕不出售
cannot_buy_own: $2阁下无法购买自己的地皮
plot_sold: $4阁下的地皮 $1%s0$4 已以 $1$%s2$4 的价格售给了 $1%s1
cannot_afford_merge: $2阁下无法合并地皮。此操作花费 $1%s
added_balance: $1%s $2已转入您的余额
removed_balance: $1%s $2已从您的余额中转出
removed_granted_plot: $2阁下已使用了授予的 %s 块地皮,剩余 $1%s $2块
setup:
setup_init: '$1用法$2/plot setup <值>'
setup_step: '$3[$1步骤 %s0$3] $1%s1 $2- $1预期值$2%s2 $1默认值$2%s3'
setup_invalid_arg: '$2%s0 不是步骤 %s1 的有效参数。要取消配置
请使用:$1/plot setup cancel'
setup_valid_arg: $2值 $1%s0 $2已设置为 %s1
setup_finished: $4阁下应已被传送至新建的世界。否则阁下将需
在 bukkit.yml 或世界管理插件中手动设置生成器。
setup_world_taken: $2%s 已是一个世界
setup_missing_world: $2阁下需要指定世界名$1/plot setup &l<世界名>$1
<生成器>$2&-$1附加指令&-$2 - $1/plot setup <值>&-$2 - $1/plot
setup back&-$2 - $1/plot setup cancel
setup_missing_generator: $2阁下需要指定生成器$1/plot setup <世界名>
&l<生成器>&r$2)&-$1附加指令&-$2 - $1/plot setup <值>&-$2 - $1/plot
setup back&-$2 - $1/plot setup cancel
setup_invalid_generator: '$2无效的生成器。可能选项%s'
schematics:
schematic_too_large: $2此地皮过大无法进行此操作
schematic_missing_arg: '$2阁下需要指定参数。可能的值$1test
<名称>$2 , $1save$2 , $1paste $2, $1exportall'
schematic_invalid: '$2布局无效。理由$2%s'
schematic_valid: $2布局无效
schematic_paste_failed: $2粘贴布局失败
schematic_paste_success: $4已成功粘贴布局
titles:
title_entered_plot: '$1地皮%world%;%x%;%z%'
title_entered_plot_sub: $4由 %s 所有
prefix_greeting: '$1%id%$2> '
prefix_farewell: '$1%id%$2> '
core:
task_start: 正在启动任务···
prefix: $3[$1P2$3] $2
enabled: $1%s0 现已启用
reload:
reloaded_configs: $1已重载翻译及世界设置
reload_failed: $2重载文件配置失败
desc:
desc_set: $2已设置地皮描述
desc_unset: $2已重置地皮描述
missing_desc: $2阁下需要指定描述
alias:
alias_set_to: $2地皮别名已设置为 $1%alias%
alias_removed: $2已移除地皮别名
missing_alias: $2阁下需要指定别名
alias_too_long: $2别名长度必须小于 50 个字符
alias_is_taken: $2此别名已被占用
position:
missing_position: '$2阁下需要指定位置。可能的值$1none'
position_set: $1已设置家为阁下的当前位置
position_unset: $1已重置家为默认位置
home_argument: $2使用 /plot set home [无]
invalid_position: $2位置值无效
cap:
entity_cap: $2阁下被禁止生成更多怪物
time:
time_format: $1%hours%, %min%, %sec%
permission:
no_schematic_permission: $2阁下没有使用布局的所需权限
$1%s
no_permission: '$2阁下缺少权限节点$1%s'
no_permission_event: '$2阁下缺少权限节点$1%s'
no_plot_perms: $2阁下必须为地皮所有者才能执行此操作
cant_claim_more_plots: $2阁下无法拥有更多地皮。
cant_claim_more_clusters: $2阁下无法拥有更多群集。
cant_transfer_more_plots: $2阁下无法赠予此用户更多地皮
cant_claim_more_plots_num: $2阁下无法同时拥有多于 $1%s $2块地皮
you_be_denied: $2阁下被禁止进入此地皮
merge_request_confirm: 来自 %s 的合并请求
merge:
merge_not_valid: $2此合并请求已不再可用。
merge_accepted: $2此合并请求已被接受
success_merge: $2已合并地皮
merge_requested: $2已成功发送合并请求
no_perm_merge: '$2阁下不是地皮 $1%plot% $2的所有者'
no_available_automerge: $2阁下在指定方向不拥有任何相邻的地皮
或阁下被禁止合并所需的大小。
unlink_required: $2需要解除关联才能执行此操作。
unlink_impossible: $2阁下只能解除关联大地皮
unlink_success: $2已成功将地皮解除关联。
commandconfig:
not_valid_subcommand: $2此子命令无效
did_you_mean: '$2阁下的意思是否是$1%s'
name_little: $2%s0 名称过短,$1%s1$2<$1%s3
no_commands: $2很抱歉但阁下无法使用任何子命令。
subcommand_set_options_header: '$2可能的值'
command_syntax: '$1用法$2%s'
flag_tutorial_usage: '$1请让管理员设置标记$2%s'
errors:
invalid_player_wait: '$2未找到玩家$1%s$2正在获取。请稍后再试。'
invalid_player: '$2未找到玩家$1%s$2.'
invalid_player_offline: '$2玩家 $1%s $2必须在线。'
invalid_command_flag: '$2无效的命令标记%s0'
error: '$2发生了 %s 错误'
command_went_wrong: $2执行此命令时发生错误···
no_free_plots: $2无可用的免费地皮
not_in_plot: $2阁下不在地皮上
not_loaded: $2无法加载地皮
not_in_cluster: $2阁下必须在地皮群集上以进行此操作
not_in_plot_world: $2阁下不在地皮区域上
plotworld_incompatible: $2两个世界必须相互兼容
not_valid_world: $2世界无效大小写敏感
not_valid_plot_world: $2地皮区域无效大小写敏感
no_plots: $2阁下不拥有任何地皮
wait_for_timer: $2一个设置方块计时器已关联到当前地皮或阁下上。请等待此操作完成
paste:
debug_report_created: '$1已上传完整调试日志至$1%url%'
purge:
purge_success: $4已成功清除了 %s 块地皮
trim:
trim_in_progress: 世界修整任务正在进行中!
not_valid_hybrid_plot_world: 需要混合地皮管理以执行此操作
block list:
block_list_separater: '$1,$2 '
biome:
need_biome: $2阁下需要指定一个有效的生态群落。
biome_set_to: $2地皮生态群落被设置为 $2
teleport:
teleported_to_plot: $1阁下已被传送
teleported_to_road: $2阁下已被传送到道路上
teleport_in_seconds: $1%s 秒后传送。请勿移动···
teleport_failed: $2传送由于移动或伤害取消
set block:
set_block_action_finished: $1已完成最后一个设置方块操作。
unsafe:
debugallowunsafe_on: $2已允许不安全的操作
debugallowunsafe_off: $2已禁用不安全的操作
debug:
debug_header: $1调试信息&-
debug_section: $2>> $1&l%val%
debug_line: $2>> $1%var%$2:$1 %val%&-
invalid:
not_valid_data: $2数据编号无效。
not_valid_block: '$2%s 不是有效的方块。'
not_allowed_block: '$2方块 %s 被禁止'
not_valid_number: '$2%s 不是区间内的有效数字'
not_valid_plot_id: $2地皮编号无效。
plot_id_form: '$2地皮编号必须为 $1X;Y 形式 $2例如:$1-5;7'
not_your_plot: $2此地皮不为阁下拥有
no_such_plot: $2没有此地皮
player_has_not_been_on: $2此玩家从未进入过地皮世界
found_no_plots: $2阁下的搜索查询未找到地皮
found_no_plots_for_player: '$2未找到玩家 %s 的地皮'
camera:
camera_started: $2阁下已进入地皮 $1%s 的摄像模式
camera_stopped: $2阁下已不再处于摄像模式
need:
need_plot_number: $2阁下必须指定地皮数字或别名
need_block: $2阁下必须指定方块
need_plot_id: $2阁下必须指定地皮编号。
need_plot_world: $2阁下必须指定地皮区域。
need_user: $2阁下必须指定用户名
near:
plot_near: '$1玩家%s0'
info:
none:
now: 现在
never: 从不
unknown: 未知
everyone: 所有人
plot_unowned: $2当前地皮必须有所有者才能执行此操作
plot_info_unclaimed: $2地皮 $1%s$2 尚未被领取
plot_info_header: $3&m---------&r $1信息 $3&m---------
plot_info: '$1编号$2%id%$1&-$1别名$2%alias%$1&-$1所有者$2%owner%$1&-$1生态群落
$2%biome%$1&-$1可以建造$2%build%$1&-$1评分$2%rating%&-$1可见$2%seen%&-$1受信
$2%trusted%$1&-$1成员$2%members%$1&-$1拒绝$2%denied%$1&-$1标记$2%flags%'
plot_info_footer: $3&m---------&r $1信息 $3&m---------
plot_info_trusted: $1受信$2 %trusted%
plot_info_members: $1成员$2 %members%
plot_info_denied: $1拒绝$2 %denied%
plot_info_flags: $1标记$2 %flags%
plot_info_biome: $1生态群落$2 %biome%
plot_info_rating: $1评分$2 %rating%
plot_info_owner: $1所有者$2 %owner%
plot_info_id: $1编号$2 %id%
plot_info_alias: $1别名$2 %alias%
plot_info_size: $1大小$2 %size%
plot_info_seen: $1可见$2 %seen%
plot_user_list: ' $1%user%$2,'
plot_flag_list: $1%s0:%s1$2
info_syntax_console: $2/plot info X;Y
working:
generating_component: $1已开始从阁下的设置中生成元件
clearing_plot: $2正在清除地皮异步。
clearing_done: $4已清除此操作花费了 %s 毫秒。
deleting_done: $4已删除此操作花费了 %s 毫秒。
plot_not_claimed: $2地皮未领取
plot_is_claimed: $2此地皮已被领取
claimed: $4阁下已成功领取地皮
list:
comment_list_header_paged: $2页面 $1%cur$2/$1%max$2 $1共计 %amount% 条评论
clickable: '(可交互)'
area_list_header_paged: $2页面 $1%cur$2/$1%max$2 $1共计 %amount% 块区域
plot_list_header_paged: $2页面 $1%cur$2/$1%max$2 $1共计 %amount% 块地皮
plot_list_header: $1共计 %word% 块地皮
plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner
plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner
plot_list_footer: $2>> $1%word% 共计 $2%num% $1领取了地皮 %plot%。
left:
left_plot: $2阁下已离开地皮
chat:
plot_chat_spy_format: '$2[$1地皮间谍$2][$1%plot_id%$2] $1%sender%$2: $1%msg%'
plot_chat_format: '$2[$1地皮老铁$2][$1%plot_id%$2] $1%sender%$2: $1%msg%'
plot_chat_forced: $2此世界强制所有人使用地皮聊天。
plot_chat_on: $4已启用地皮聊天。
plot_chat_off: $4已禁用地皮聊天。
deny:
denied_removed: $4阁下已成功解禁此玩家进入地皮
denied_added: $4阁下已成功禁止此玩家进入地皮
denied_need_argument: $2缺少参数。$1/plot denied add <名称> $2或 $1/plot
denied remove <名称>
was_not_denied: $2此玩家未被此地皮封禁
you_got_denied: $4阁下已被禁止进入先前所在的地皮并已被传送至出生点
kick:
you_got_kicked: $4阁下已被踢出
rain:
need_on_off: '$2阁下需要指定值。可能的值$1on$2, $1off'
setting_updated: $4阁下已成功更新设置
flag:
flag_key: '$2关键词%s'
flag_type: '$2类型%s'
flag_desc: '$2描述%s'
not_valid_flag: $2标记无效
not_valid_flag_suggested: '$2标记无效。阁下的意思是否是$1%s'
not_valid_value: $2标记值必须为字母数字混合编制
flag_not_in_plot: $2此地皮不拥有此标记
flag_not_removed: $2无法移除此标记
flag_not_added: $2无法添加此标记
flag_removed: $4已成功移除标记
flag_added: $4已成功添加标记
trusted:
trusted_added: $4阁下已成功将用户添加到地皮受信列表
trusted_removed: $4阁下已成功将用户从地皮受信列表中移除
was_not_added: $2此用户在此地皮上不受信任
plot_removed_user: $1阁下所添加至的地皮 %s 由于所有者不活跃已被删除
member:
removed_players: $2已从此地皮中移除了 %s 位玩家。
already_owner: '$2此玩家已是地皮所有者%s0'
already_added: '$2此玩家已被添加到此分类%s0'
member_added: $4此用户现已可以在地皮所有者在线时建造
member_removed: $1阁下已成功从此地皮中移除了用户
member_was_not_added: $2此玩家并未被添加到此地皮的用户列表
plot_max_members: $2阁下被禁止添加更多玩家至此地皮
owner:
set_owner: $4阁下已成功设置地皮所有者
now_owner: $4阁下现在是地皮 %s 的所有者
signs:
owner_sign_line_1: '$1编号$1%id%'
owner_sign_line_2: '$1所有者'
owner_sign_line_3: $2%plr%
owner_sign_line_4: $3已被领取
help:
help_header: $3&m---------&r $1Plot² 帮助 $3&m---------
help_page_header: '$1分类$2%category%$2,$1 页面:$2%current%$3/$2%max%$2'
help_footer: $3&m---------&r $1Plot² 帮助 $3&m---------
help_info_item: $1/plot help %category% $3- $2%category_desc%
help_item: $1%usage% [%alias%]&- $3- $2%desc%&-
direction: '$1当前方向%dir%'
grants:
granted_plots: '$1结果剩余 $2%s $1次授权'
granted_plot: $1阁下授权了 %s0 地皮至 $2%s1
granted_plot_failed: '$1授权失败$2%s'
'-':
custom_string: '-'

View File

@ -65,4 +65,10 @@ public class EventUtilTest extends EventUtil {
@Override public void callMember(PlotPlayer initiator, Plot plot, UUID player, boolean added) {
}
@Override
public boolean callOwnerChange(PlotPlayer initiator, Plot plot, UUID newOwner, UUID oldOwner,
boolean hasOldOwner) {
return false;
}
}