mirror of
https://github.com/IntellectualSites/PlotSquared.git
synced 2024-11-22 05:06:44 +01:00
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:
commit
8cd54929e7
2
.github/ISSUE_TEMPLATE.md
vendored
2
.github/ISSUE_TEMPLATE.md
vendored
@ -1,7 +1,7 @@
|
|||||||
# Bug report template
|
# Bug report template
|
||||||
<!--- In order to create a valid issue report you have to follow this template. -->
|
<!--- In order to create a valid issue report you have to follow this template. -->
|
||||||
<!--- Incomplete reports might be marked as invalid. -->
|
<!--- Incomplete reports might be marked as invalid. -->
|
||||||
<!--- You may remove it if you are posting a feature request. -->
|
<!-- Feature requests and enhancements may be suggested at https://github.com/IntellectualSites/PlotSquaredSuggestions. -->
|
||||||
**Debug paste link:**
|
**Debug paste link:**
|
||||||
<!--- Enter /plot debugpaste in game or in your console and copy the output here -->
|
<!--- Enter /plot debugpaste in game or in your console and copy the output here -->
|
||||||
|
|
||||||
|
15
.github/auto-comment.yml
vendored
Normal file
15
.github/auto-comment.yml
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Comment to a new issue.
|
||||||
|
issueOpened: >
|
||||||
|
Thank your for raising a issue. We will try and get back to you as soon as possible.
|
||||||
|
|
||||||
|
Please make sure that you followed the issue template, and provied all neccessary information.
|
||||||
|
Failure to do so will prevent us from resolving the issue in a timely manner.
|
||||||
|
|
||||||
|
Please note that suggestions are now to be submitted to https://git.io/fN5B4 rather than this issue tracker!
|
||||||
|
|
||||||
|
pullRequestOpened: >
|
||||||
|
Thank your for raising your pull request.
|
||||||
|
|
||||||
|
Please make sure you have followed our contributing guidelines and to take an extra look at the code to make sure that it is functional!
|
||||||
|
|
||||||
|
We will review it as soon as possible!
|
16
.github/stale.yml
vendored
Normal file
16
.github/stale.yml
vendored
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Number of days of inactivity before an issue becomes stale
|
||||||
|
daysUntilStale: 60
|
||||||
|
# Number of days of inactivity before a stale issue is closed
|
||||||
|
daysUntilClose: 7
|
||||||
|
# Issues with these labels will never be considered stale
|
||||||
|
exemptLabels:
|
||||||
|
- [‼] high priority
|
||||||
|
# Label to use when marking an issue as stale
|
||||||
|
staleLabel: Old
|
||||||
|
# Comment to post when marking an issue as stale. Set to `false` to disable
|
||||||
|
markComment: >
|
||||||
|
This issue has been automatically marked as stale because it has not had
|
||||||
|
recent activity. It will be closed if no further activity occurs. Thank you
|
||||||
|
for your contributions.
|
||||||
|
# Comment to post when closing a stale issue. Set to `false` to disable
|
||||||
|
closeComment: false
|
@ -56,8 +56,7 @@ import static com.github.intellectualsites.plotsquared.plot.util.ReflectionUtils
|
|||||||
|
|
||||||
public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain {
|
public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain {
|
||||||
|
|
||||||
@Getter
|
@Getter private static WorldEdit worldEdit;
|
||||||
private static WorldEdit worldEdit;
|
|
||||||
private static Map<String, Plugin> pluginMap;
|
private static Map<String, Plugin> pluginMap;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
@ -125,7 +124,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
} catch (NumberFormatException e) {
|
} catch (NumberFormatException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
PlotSquared.debug(StringMan.getString(Bukkit.getBukkitVersion()));
|
PlotSquared.debug(StringMan.getString(Bukkit.getBukkitVersion()));
|
||||||
PlotSquared.debug(StringMan.getString(Bukkit.getBukkitVersion().split("-")[0].split("\\.")));
|
PlotSquared.debug(
|
||||||
|
StringMan.getString(Bukkit.getBukkitVersion().split("-")[0].split("\\.")));
|
||||||
return new int[] {1, 13, 0};
|
return new int[] {1, 13, 0};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -451,7 +451,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
Entity passenger = entity.getPassenger();
|
Entity passenger = entity.getPassenger();
|
||||||
if (!(passenger instanceof Player) && entity
|
if (!(passenger instanceof Player) && entity
|
||||||
.getMetadata("keep").isEmpty()) {
|
.getMetadata("keep").isEmpty()) {
|
||||||
if (entity.hasMetadata("ps-tmp-teleport")) {
|
if (entity
|
||||||
|
.hasMetadata("ps-tmp-teleport")) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
@ -502,7 +503,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
&& (currentPlotId == null || !area
|
&& (currentPlotId == null || !area
|
||||||
.getPlot(originalPlotId)
|
.getPlot(originalPlotId)
|
||||||
.equals(area.getPlot(currentPlotId)))) {
|
.equals(area.getPlot(currentPlotId)))) {
|
||||||
if (entity.hasMetadata("ps-tmp-teleport")) {
|
if (entity
|
||||||
|
.hasMetadata("ps-tmp-teleport")) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
@ -540,7 +542,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
}, 20);
|
}, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override @Nullable public final ChunkGenerator getDefaultWorldGenerator(final String world, final String id) {
|
@Override @Nullable
|
||||||
|
public final ChunkGenerator getDefaultWorldGenerator(final String world, final String id) {
|
||||||
if (Settings.Enabled_Components.PLOTME_CONVERTER) {
|
if (Settings.Enabled_Components.PLOTME_CONVERTER) {
|
||||||
initPlotMeConverter();
|
initPlotMeConverter();
|
||||||
Settings.Enabled_Components.PLOTME_CONVERTER = false;
|
Settings.Enabled_Components.PLOTME_CONVERTER = false;
|
||||||
@ -671,7 +674,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override @Nullable public GeneratorWrapper<?> getGenerator(@NonNull final String world, @Nullable final String name) {
|
@Override @Nullable public GeneratorWrapper<?> getGenerator(@NonNull final String world,
|
||||||
|
@Nullable final String name) {
|
||||||
if (name == null) {
|
if (name == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@ -854,8 +858,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override public GeneratorWrapper<?> wrapPlotGenerator(@Nullable final String world,
|
||||||
public GeneratorWrapper<?> wrapPlotGenerator(@Nullable final String world, @NonNull final IndependentPlotGenerator generator) {
|
@NonNull final IndependentPlotGenerator generator) {
|
||||||
return new BukkitPlotGenerator(generator);
|
return new BukkitPlotGenerator(generator);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -155,7 +155,8 @@ public class FancyMessage
|
|||||||
// Assume composite type
|
// Assume composite type
|
||||||
// The only composite type we currently store is another FancyMessage
|
// The only composite type we currently store is another FancyMessage
|
||||||
// Therefore, recursion time!
|
// Therefore, recursion time!
|
||||||
component.hoverActionData = deserialize(object.get("value").toString() /* This should properly serialize the JSON object as a JSON string */);
|
component.hoverActionData = deserialize(object.get("value")
|
||||||
|
.toString() /* This should properly serialize the JSON object as a JSON string */);
|
||||||
}
|
}
|
||||||
} else if (entry.getKey().equals("insertion")) {
|
} else if (entry.getKey().equals("insertion")) {
|
||||||
component.insertionData = entry.getValue().getAsString();
|
component.insertionData = entry.getValue().getAsString();
|
||||||
@ -622,8 +623,7 @@ public class FancyMessage
|
|||||||
* @return This builder instance.
|
* @return This builder instance.
|
||||||
*/
|
*/
|
||||||
public FancyMessage formattedTooltip(final Iterable<FancyMessage> lines) {
|
public FancyMessage formattedTooltip(final Iterable<FancyMessage> lines) {
|
||||||
return formattedTooltip(
|
return formattedTooltip(ArrayWrapper.toArray(lines, FancyMessage.class));
|
||||||
ArrayWrapper.toArray(lines, FancyMessage.class));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -664,8 +664,7 @@ public class FancyMessage
|
|||||||
* @return This builder instance.
|
* @return This builder instance.
|
||||||
*/
|
*/
|
||||||
public FancyMessage translationReplacements(final Iterable<FancyMessage> replacements) {
|
public FancyMessage translationReplacements(final Iterable<FancyMessage> replacements) {
|
||||||
return translationReplacements(
|
return translationReplacements(ArrayWrapper.toArray(replacements, FancyMessage.class));
|
||||||
ArrayWrapper.toArray(replacements, FancyMessage.class));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -48,7 +48,7 @@ public abstract class TextualComponent implements Cloneable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Create a textual component representing a string literal.
|
* Create a textual component representing a string literal.
|
||||||
* <p>
|
*
|
||||||
* <p>This is the default type of textual component when a single string
|
* <p>This is the default type of textual component when a single string
|
||||||
* literal is given to a method.
|
* literal is given to a method.
|
||||||
*
|
*
|
||||||
@ -98,7 +98,7 @@ public abstract class TextualComponent implements Cloneable {
|
|||||||
/**
|
/**
|
||||||
* Create a textual component representing a scoreboard value.
|
* Create a textual component representing a scoreboard value.
|
||||||
* The client will see the score of the specified player for the specified objective as the text represented by this component.
|
* The client will see the score of the specified player for the specified objective as the text represented by this component.
|
||||||
* <p>
|
*
|
||||||
* <p><b>This method is currently guaranteed to throw an {@code UnsupportedOperationException}
|
* <p><b>This method is currently guaranteed to throw an {@code UnsupportedOperationException}
|
||||||
* as it is only supported on snapshot clients.</b>
|
* as it is only supported on snapshot clients.</b>
|
||||||
*
|
*
|
||||||
@ -234,7 +234,7 @@ public abstract class TextualComponent implements Cloneable {
|
|||||||
/**
|
/**
|
||||||
* Internal class used to represent a text component with a nested JSON
|
* Internal class used to represent a text component with a nested JSON
|
||||||
* value.
|
* value.
|
||||||
* <p>
|
*
|
||||||
* <p>Exception validating done is on keys and values.
|
* <p>Exception validating done is on keys and values.
|
||||||
*/
|
*/
|
||||||
private static final class ComplexTextTypeComponent extends TextualComponent
|
private static final class ComplexTextTypeComponent extends TextualComponent
|
||||||
|
@ -113,8 +113,8 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (name.isEmpty()) {
|
if (name.isEmpty()) {
|
||||||
PlotSquared
|
PlotSquared.log(
|
||||||
.log("&cCould not identify owner for plot: " + id + " -> '" + name + "'");
|
"&cCould not identify owner for plot: " + id + " -> '" + name + "'");
|
||||||
missing++;
|
missing++;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -129,8 +129,10 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
|
|||||||
}
|
}
|
||||||
if (missing > 0) {
|
if (missing > 0) {
|
||||||
PlotSquared.log("&cSome names could not be identified:");
|
PlotSquared.log("&cSome names could not be identified:");
|
||||||
PlotSquared.log("&7 - Empty quotes mean PlotMe just stored an unowned plot in the database");
|
PlotSquared
|
||||||
PlotSquared.log("&7 - Names you have never seen before could be from people mistyping commands");
|
.log("&7 - Empty quotes mean PlotMe just stored an unowned plot in the database");
|
||||||
|
PlotSquared.log(
|
||||||
|
"&7 - Names you have never seen before could be from people mistyping commands");
|
||||||
PlotSquared.log(
|
PlotSquared.log(
|
||||||
"&7 - Converting from a non-uuid version of PlotMe can't identify owners if the playerdata files are deleted (these plots will "
|
"&7 - Converting from a non-uuid version of PlotMe can't identify owners if the playerdata files are deleted (these plots will "
|
||||||
+ "remain unknown until the player connects)");
|
+ "remain unknown until the player connects)");
|
||||||
@ -232,7 +234,7 @@ public class ClassicPlotMeConnector extends APlotMeConnector {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public boolean accepts(String version) {
|
@Override public boolean accepts(String version) {
|
||||||
return version == null || PlotSquared.get().canUpdate(version, "0.17.0") || PlotSquared.get()
|
return version == null || PlotSquared.get().canUpdate(version, "0.17.0") || PlotSquared
|
||||||
.canUpdate("0.999.999", version);
|
.get().canUpdate("0.999.999", version);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,8 @@ public class LikePlotMeConverter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void sendMessage(String message) {
|
private void sendMessage(String message) {
|
||||||
PlotSquared.debug("&3PlotMe&8->&3" + PlotSquared.imp().getPluginName() + "&8: &7" + message);
|
PlotSquared
|
||||||
|
.debug("&3PlotMe&8->&3" + PlotSquared.imp().getPluginName() + "&8: &7" + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getPlotMePath() {
|
public String getPlotMePath() {
|
||||||
@ -126,7 +127,8 @@ public class LikePlotMeConverter {
|
|||||||
PlotSquared.get().worlds.set("worlds." + world + ".wall.block_claimed", claimed);
|
PlotSquared.get().worlds.set("worlds." + world + ".wall.block_claimed", claimed);
|
||||||
String floor =
|
String floor =
|
||||||
plotmeDgYml.getString("worlds." + plotMeWorldName + ".PlotFloorBlock", "2"); //
|
plotmeDgYml.getString("worlds." + plotMeWorldName + ".PlotFloorBlock", "2"); //
|
||||||
PlotSquared.get().worlds.set("worlds." + world + ".plot.floor", Collections.singletonList(floor));
|
PlotSquared.get().worlds
|
||||||
|
.set("worlds." + world + ".plot.floor", Collections.singletonList(floor));
|
||||||
String filling = plotmeDgYml.getString("worlds." + plotMeWorldName + ".FillBlock", "3"); //
|
String filling = plotmeDgYml.getString("worlds." + plotMeWorldName + ".FillBlock", "3"); //
|
||||||
PlotSquared.get().worlds
|
PlotSquared.get().worlds
|
||||||
.set("worlds." + world + ".plot.filling", Collections.singletonList(filling));
|
.set("worlds." + world + ".plot.filling", Collections.singletonList(filling));
|
||||||
@ -330,8 +332,8 @@ public class LikePlotMeConverter {
|
|||||||
// load world with MV
|
// load world with MV
|
||||||
Bukkit.getServer()
|
Bukkit.getServer()
|
||||||
.dispatchCommand(Bukkit.getServer().getConsoleSender(),
|
.dispatchCommand(Bukkit.getServer().getConsoleSender(),
|
||||||
"mv import " + actualWorldName + " normal -g " + PlotSquared
|
"mv import " + actualWorldName + " normal -g "
|
||||||
.imp().getPluginName());
|
+ PlotSquared.imp().getPluginName());
|
||||||
} else if (mw) {
|
} else if (mw) {
|
||||||
// unload world with MW
|
// unload world with MW
|
||||||
Bukkit.getServer()
|
Bukkit.getServer()
|
||||||
@ -345,15 +347,15 @@ public class LikePlotMeConverter {
|
|||||||
// load world with MW
|
// load world with MW
|
||||||
Bukkit.getServer()
|
Bukkit.getServer()
|
||||||
.dispatchCommand(Bukkit.getServer().getConsoleSender(),
|
.dispatchCommand(Bukkit.getServer().getConsoleSender(),
|
||||||
"mw create " + actualWorldName + " plugin:" + PlotSquared
|
"mw create " + actualWorldName + " plugin:"
|
||||||
.imp()
|
+ PlotSquared.imp().getPluginName());
|
||||||
.getPluginName());
|
|
||||||
} else {
|
} else {
|
||||||
// Load using Bukkit API
|
// Load using Bukkit API
|
||||||
// - User must set generator manually
|
// - User must set generator manually
|
||||||
Bukkit.getServer().unloadWorld(world, true);
|
Bukkit.getServer().unloadWorld(world, true);
|
||||||
World myWorld = WorldCreator.name(actualWorldName).generator(
|
World myWorld = WorldCreator.name(actualWorldName).generator(
|
||||||
new BukkitPlotGenerator(PlotSquared.get().IMP.getDefaultGenerator()))
|
new BukkitPlotGenerator(
|
||||||
|
PlotSquared.get().IMP.getDefaultGenerator()))
|
||||||
.createWorld();
|
.createWorld();
|
||||||
myWorld.save();
|
myWorld.save();
|
||||||
}
|
}
|
||||||
|
@ -58,7 +58,8 @@ public class PlotMeConnector_017 extends APlotMeConnector {
|
|||||||
PlotSquared.debug("=======================================");
|
PlotSquared.debug("=======================================");
|
||||||
PlotSquared.debug(
|
PlotSquared.debug(
|
||||||
"&8 - &7The database does not match the version specified in the PlotMe config");
|
"&8 - &7The database does not match the version specified in the PlotMe config");
|
||||||
PlotSquared.debug("&8 - &7Please correct this, or if you are unsure, the most common is 0.16.3");
|
PlotSquared.debug(
|
||||||
|
"&8 - &7Please correct this, or if you are unsure, the most common is 0.16.3");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
boolean checkUUID = DBFunc.hasColumn(resultSet, "ownerID");
|
boolean checkUUID = DBFunc.hasColumn(resultSet, "ownerID");
|
||||||
@ -142,7 +143,8 @@ public class PlotMeConnector_017 extends APlotMeConnector {
|
|||||||
int key = resultSet.getInt("plot_id");
|
int key = resultSet.getInt("plot_id");
|
||||||
Plot plot = plots.get(key);
|
Plot plot = plots.get(key);
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
PlotSquared.log("&6Denied (" + key + ") references deleted plot; ignoring entry.");
|
PlotSquared
|
||||||
|
.log("&6Denied (" + key + ") references deleted plot; ignoring entry.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String player = resultSet.getString("player");
|
String player = resultSet.getString("player");
|
||||||
@ -159,7 +161,8 @@ public class PlotMeConnector_017 extends APlotMeConnector {
|
|||||||
int key = resultSet.getInt("plot_id");
|
int key = resultSet.getInt("plot_id");
|
||||||
Plot plot = plots.get(key);
|
Plot plot = plots.get(key);
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
PlotSquared.log("&6Allowed (" + key + ") references deleted plot; ignoring entry.");
|
PlotSquared
|
||||||
|
.log("&6Allowed (" + key + ") references deleted plot; ignoring entry.");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
String player = resultSet.getString("player");
|
String player = resultSet.getString("player");
|
||||||
|
@ -0,0 +1,105 @@
|
|||||||
|
package com.github.intellectualsites.plotsquared.bukkit.events;
|
||||||
|
|
||||||
|
import com.github.intellectualsites.plotsquared.plot.object.Plot;
|
||||||
|
import com.github.intellectualsites.plotsquared.plot.object.PlotId;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class PlotChangeOwnerEvent extends PlotEvent implements Cancellable {
|
||||||
|
|
||||||
|
private static final HandlerList handlers = new HandlerList();
|
||||||
|
private final Player initiator;
|
||||||
|
private final UUID newOwner;
|
||||||
|
private final UUID oldOwner;
|
||||||
|
private boolean hasOldOwner;
|
||||||
|
private boolean cancelled;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PlotChangeOwnerEvent: Called when a plot's owner is change.
|
||||||
|
*
|
||||||
|
* @param newOwner The new owner of the plot
|
||||||
|
* @param oldOwner The old owner of the plot
|
||||||
|
* @param plot The plot having its owner changed
|
||||||
|
*/
|
||||||
|
public PlotChangeOwnerEvent(Player initiator, Plot plot, UUID oldOwner, UUID newOwner,
|
||||||
|
boolean hasOldOwner) {
|
||||||
|
super(plot);
|
||||||
|
this.initiator = initiator;
|
||||||
|
this.newOwner = newOwner;
|
||||||
|
this.oldOwner = oldOwner;
|
||||||
|
this.hasOldOwner = hasOldOwner;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the PlotId.
|
||||||
|
*
|
||||||
|
* @return PlotId
|
||||||
|
*/
|
||||||
|
public PlotId getPlotId() {
|
||||||
|
return getPlot().getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the world name.
|
||||||
|
*
|
||||||
|
* @return String
|
||||||
|
*/
|
||||||
|
public String getWorld() {
|
||||||
|
return getPlot().getWorldName();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the change-owner initator
|
||||||
|
*
|
||||||
|
* @return Player
|
||||||
|
*/
|
||||||
|
public Player getInitiator() {
|
||||||
|
return this.initiator;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the old owner of the plot. Null if not exists.
|
||||||
|
*
|
||||||
|
* @return UUID
|
||||||
|
*/
|
||||||
|
public UUID getOldOwner() {
|
||||||
|
return this.oldOwner;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the new owner of the plot
|
||||||
|
*
|
||||||
|
* @return UUID
|
||||||
|
*/
|
||||||
|
public UUID getNewOwner() {
|
||||||
|
return this.newOwner;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get if the plot had an old owner
|
||||||
|
*
|
||||||
|
* @return boolean
|
||||||
|
*/
|
||||||
|
public boolean hasOldOwner() {
|
||||||
|
return this.hasOldOwner;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public HandlerList getHandlers() {
|
||||||
|
return handlers;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public boolean isCancelled() {
|
||||||
|
return this.cancelled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void setCancelled(boolean b) {
|
||||||
|
this.cancelled = b;
|
||||||
|
}
|
||||||
|
}
|
@ -3,13 +3,15 @@ package com.github.intellectualsites.plotsquared.bukkit.events;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.object.Plot;
|
import com.github.intellectualsites.plotsquared.plot.object.Plot;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer;
|
||||||
import com.github.intellectualsites.plotsquared.plot.object.Rating;
|
import com.github.intellectualsites.plotsquared.plot.object.Rating;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
|
|
||||||
public class PlotRateEvent extends PlotEvent {
|
public class PlotRateEvent extends PlotEvent implements Cancellable {
|
||||||
|
|
||||||
private static final HandlerList handlers = new HandlerList();
|
private static final HandlerList handlers = new HandlerList();
|
||||||
private final PlotPlayer rater;
|
private final PlotPlayer rater;
|
||||||
private Rating rating;
|
private Rating rating;
|
||||||
|
private boolean cancelled = false;
|
||||||
|
|
||||||
public PlotRateEvent(PlotPlayer rater, Rating rating, Plot plot) {
|
public PlotRateEvent(PlotPlayer rater, Rating rating, Plot plot) {
|
||||||
super(plot);
|
super(plot);
|
||||||
@ -37,4 +39,11 @@ public class PlotRateEvent extends PlotEvent {
|
|||||||
return handlers;
|
return handlers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override public boolean isCancelled() {
|
||||||
|
return this.cancelled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override public void setCancelled(boolean cancelled) {
|
||||||
|
this.cancelled = cancelled;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -117,7 +117,8 @@ public class BukkitPlotGenerator extends ChunkGenerator
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PlotArea getNewPlotArea(String world, String id, PlotId min, PlotId max) {
|
public PlotArea getNewPlotArea(String world, String id, PlotId min, PlotId max) {
|
||||||
return PlotSquared.get().IMP.getDefaultGenerator().getNewPlotArea(world, id, min, max);
|
return PlotSquared.get().IMP.getDefaultGenerator()
|
||||||
|
.getNewPlotArea(world, id, min, max);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -226,7 +226,8 @@ public class ChunkListener implements Listener {
|
|||||||
if (!chunk.isLoaded()) {
|
if (!chunk.isLoaded()) {
|
||||||
Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(currentIndex));
|
Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(currentIndex));
|
||||||
TaskManager.tasks.remove(currentIndex);
|
TaskManager.tasks.remove(currentIndex);
|
||||||
PlotSquared.debug(C.PREFIX.s() + "&aSuccessfully processed and unloaded chunk!");
|
PlotSquared
|
||||||
|
.debug(C.PREFIX.s() + "&aSuccessfully processed and unloaded chunk!");
|
||||||
chunk.unload(true, true);
|
chunk.unload(true, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -234,7 +235,8 @@ public class ChunkListener implements Listener {
|
|||||||
if (tiles.length == 0) {
|
if (tiles.length == 0) {
|
||||||
Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(currentIndex));
|
Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(currentIndex));
|
||||||
TaskManager.tasks.remove(currentIndex);
|
TaskManager.tasks.remove(currentIndex);
|
||||||
PlotSquared.debug(C.PREFIX.s() + "&aSuccessfully processed and unloaded chunk!");
|
PlotSquared
|
||||||
|
.debug(C.PREFIX.s() + "&aSuccessfully processed and unloaded chunk!");
|
||||||
chunk.unload(true, true);
|
chunk.unload(true, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -244,7 +246,8 @@ public class ChunkListener implements Listener {
|
|||||||
if (i >= tiles.length) {
|
if (i >= tiles.length) {
|
||||||
Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(currentIndex));
|
Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(currentIndex));
|
||||||
TaskManager.tasks.remove(currentIndex);
|
TaskManager.tasks.remove(currentIndex);
|
||||||
PlotSquared.debug(C.PREFIX.s() + "&aSuccessfully processed and unloaded chunk!");
|
PlotSquared
|
||||||
|
.debug(C.PREFIX.s() + "&aSuccessfully processed and unloaded chunk!");
|
||||||
chunk.unload(true, true);
|
chunk.unload(true, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -268,14 +271,14 @@ public class ChunkListener implements Listener {
|
|||||||
ent.remove();
|
ent.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug(C.PREFIX.s() + "&a detected unsafe chunk and processed: " + (chunk.getX() << 4)
|
C.PREFIX.s() + "&a detected unsafe chunk and processed: " + (chunk.getX() << 4)
|
||||||
+ "," + (chunk.getX() << 4));
|
+ "," + (chunk.getX() << 4));
|
||||||
}
|
}
|
||||||
if (tiles.length > Settings.Chunk_Processor.MAX_TILES) {
|
if (tiles.length > Settings.Chunk_Processor.MAX_TILES) {
|
||||||
if (unload) {
|
if (unload) {
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug(C.PREFIX.s() + "&c detected unsafe chunk: " + (chunk.getX() << 4) + "," + (
|
C.PREFIX.s() + "&c detected unsafe chunk: " + (chunk.getX() << 4) + "," + (
|
||||||
chunk.getX() << 4));
|
chunk.getX() << 4));
|
||||||
cleanChunk(chunk);
|
cleanChunk(chunk);
|
||||||
return true;
|
return true;
|
||||||
|
@ -909,8 +909,10 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.LOW) public void onChat(AsyncPlayerChatEvent event) {
|
||||||
public void onChat(AsyncPlayerChatEvent event) {
|
if (event.isCancelled())
|
||||||
|
return;
|
||||||
|
|
||||||
PlotPlayer plotPlayer = BukkitUtil.getPlayer(event.getPlayer());
|
PlotPlayer plotPlayer = BukkitUtil.getPlayer(event.getPlayer());
|
||||||
Location location = plotPlayer.getLocation();
|
Location location = plotPlayer.getLocation();
|
||||||
PlotArea area = location.getPlotArea();
|
PlotArea area = location.getPlotArea();
|
||||||
@ -2100,7 +2102,8 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Settings.Enabled_Components.KILL_ROAD_VEHICLES) {
|
if (Settings.Enabled_Components.KILL_ROAD_VEHICLES) {
|
||||||
entity.setMetadata("plot", new FixedMetadataValue((Plugin) PlotSquared.get().IMP, plot));
|
entity
|
||||||
|
.setMetadata("plot", new FixedMetadataValue((Plugin) PlotSquared.get().IMP, plot));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2332,7 +2335,8 @@ public class PlayerEvents extends PlotListener implements Listener {
|
|||||||
@SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.HIGHEST)
|
@SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.HIGHEST)
|
||||||
public void onEntityCombustByEntity(EntityCombustByEntityEvent event) {
|
public void onEntityCombustByEntity(EntityCombustByEntityEvent event) {
|
||||||
EntityDamageByEntityEvent eventChange = null;
|
EntityDamageByEntityEvent eventChange = null;
|
||||||
if (PlotSquared.get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_11_0)) {
|
if (PlotSquared.get()
|
||||||
|
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_11_0)) {
|
||||||
eventChange = new EntityDamageByEntityEvent(event.getCombuster(), event.getEntity(),
|
eventChange = new EntityDamageByEntityEvent(event.getCombuster(), event.getEntity(),
|
||||||
EntityDamageEvent.DamageCause.FIRE_TICK, (double) event.getDuration());
|
EntityDamageEvent.DamageCause.FIRE_TICK, (double) event.getDuration());
|
||||||
} else {
|
} else {
|
||||||
|
@ -42,7 +42,8 @@ public class PlayerEvents_1_8 extends PlotListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
HumanEntity entity = event.getWhoClicked();
|
HumanEntity entity = event.getWhoClicked();
|
||||||
if (!(entity instanceof Player) || !PlotSquared.get().hasPlotArea(entity.getWorld().getName())) {
|
if (!(entity instanceof Player) || !PlotSquared.get()
|
||||||
|
.hasPlotArea(entity.getWorld().getName())) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Player player = (Player) entity;
|
Player player = (Player) entity;
|
||||||
|
@ -7,18 +7,15 @@ import org.bukkit.World;
|
|||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.EntityType;
|
import org.bukkit.entity.EntityType;
|
||||||
|
|
||||||
@Getter
|
@Getter public abstract class EntityWrapper {
|
||||||
public abstract class EntityWrapper {
|
|
||||||
|
|
||||||
private final Entity entity;
|
|
||||||
private final EntityType type;
|
|
||||||
|
|
||||||
public double x;
|
|
||||||
public double y;
|
|
||||||
public double z;
|
|
||||||
|
|
||||||
protected final float yaw;
|
protected final float yaw;
|
||||||
protected final float pitch;
|
protected final float pitch;
|
||||||
|
private final Entity entity;
|
||||||
|
private final EntityType type;
|
||||||
|
public double x;
|
||||||
|
public double y;
|
||||||
|
public double z;
|
||||||
|
|
||||||
EntityWrapper(@NonNull final Entity entity) {
|
EntityWrapper(@NonNull final Entity entity) {
|
||||||
this.entity = entity;
|
this.entity = entity;
|
||||||
|
@ -53,7 +53,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
if (depth == 1) {
|
if (depth == 1) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (PlotSquared.get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_10_0)
|
if (PlotSquared.get()
|
||||||
|
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_10_0)
|
||||||
|| entity instanceof ArmorStand) {
|
|| entity instanceof ArmorStand) {
|
||||||
if (!entity.hasGravity()) {
|
if (!entity.hasGravity()) {
|
||||||
this.noGravity = true;
|
this.noGravity = true;
|
||||||
@ -62,8 +63,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
switch (entity.getType()) {
|
switch (entity.getType()) {
|
||||||
case ARROW:
|
case ARROW:
|
||||||
case BOAT:
|
case BOAT:
|
||||||
if (PlotSquared
|
if (PlotSquared.get()
|
||||||
.get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
||||||
Boat boat = (Boat) entity;
|
Boat boat = (Boat) entity;
|
||||||
this.dataByte = getOrdinal(TreeSpecies.values(), boat.getWoodType());
|
this.dataByte = getOrdinal(TreeSpecies.values(), boat.getWoodType());
|
||||||
}
|
}
|
||||||
@ -188,8 +189,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
storeLiving((LivingEntity) entity);
|
storeLiving((LivingEntity) entity);
|
||||||
return;
|
return;
|
||||||
case SKELETON:
|
case SKELETON:
|
||||||
this.dataByte =
|
this.dataByte = getOrdinal(Skeleton.SkeletonType.values(),
|
||||||
getOrdinal(Skeleton.SkeletonType.values(), ((Skeleton) entity).getSkeletonType());
|
((Skeleton) entity).getSkeletonType());
|
||||||
storeLiving((LivingEntity) entity);
|
storeLiving((LivingEntity) entity);
|
||||||
return;
|
return;
|
||||||
case ARMOR_STAND:
|
case ARMOR_STAND:
|
||||||
@ -323,7 +324,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
|
|
||||||
void restoreEquipment(LivingEntity entity) {
|
void restoreEquipment(LivingEntity entity) {
|
||||||
EntityEquipment equipment = entity.getEquipment();
|
EntityEquipment equipment = entity.getEquipment();
|
||||||
if (PlotSquared.get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
if (PlotSquared.get()
|
||||||
|
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
||||||
equipment.setItemInMainHand(this.lived.mainHand);
|
equipment.setItemInMainHand(this.lived.mainHand);
|
||||||
equipment.setItemInOffHand(this.lived.offHand);
|
equipment.setItemInOffHand(this.lived.offHand);
|
||||||
} else {
|
} else {
|
||||||
@ -367,7 +369,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void storeEquipment(EntityEquipment equipment) {
|
void storeEquipment(EntityEquipment equipment) {
|
||||||
if (PlotSquared.get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
if (PlotSquared.get()
|
||||||
|
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
||||||
this.lived.mainHand = equipment.getItemInMainHand().clone();
|
this.lived.mainHand = equipment.getItemInMainHand().clone();
|
||||||
this.lived.offHand = equipment.getItemInOffHand().clone();
|
this.lived.offHand = equipment.getItemInOffHand().clone();
|
||||||
} else {
|
} else {
|
||||||
@ -412,8 +415,7 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
this.tamed.tamed = tamed.isTamed();
|
this.tamed.tamed = tamed.isTamed();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override public Entity spawn(World world, int xOffset, int zOffset) {
|
||||||
public Entity spawn(World world, int xOffset, int zOffset) {
|
|
||||||
Location location = new Location(world, this.x + xOffset, this.y, this.z + zOffset);
|
Location location = new Location(world, this.x + xOffset, this.y, this.z + zOffset);
|
||||||
location.setYaw(this.yaw);
|
location.setYaw(this.yaw);
|
||||||
location.setPitch(this.pitch);
|
location.setPitch(this.pitch);
|
||||||
@ -459,7 +461,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
if (this.depth == 1) {
|
if (this.depth == 1) {
|
||||||
return entity;
|
return entity;
|
||||||
}
|
}
|
||||||
if (PlotSquared.get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_10_0)
|
if (PlotSquared.get()
|
||||||
|
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_10_0)
|
||||||
|| entity instanceof ArmorStand) {
|
|| entity instanceof ArmorStand) {
|
||||||
if (this.noGravity) {
|
if (this.noGravity) {
|
||||||
entity.setGravity(false);
|
entity.setGravity(false);
|
||||||
@ -468,8 +471,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
switch (entity.getType()) {
|
switch (entity.getType()) {
|
||||||
case ARROW:
|
case ARROW:
|
||||||
case BOAT:
|
case BOAT:
|
||||||
if (PlotSquared
|
if (PlotSquared.get()
|
||||||
.get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) {
|
||||||
Boat boat = (Boat) entity;
|
Boat boat = (Boat) entity;
|
||||||
boat.setWoodType(TreeSpecies.values()[dataByte]);
|
boat.setWoodType(TreeSpecies.values()[dataByte]);
|
||||||
}
|
}
|
||||||
@ -592,7 +595,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
return entity;
|
return entity;
|
||||||
case SKELETON:
|
case SKELETON:
|
||||||
if (this.dataByte != 0) {
|
if (this.dataByte != 0) {
|
||||||
((Skeleton) entity).setSkeletonType(Skeleton.SkeletonType.values()[this.dataByte]);
|
((Skeleton) entity)
|
||||||
|
.setSkeletonType(Skeleton.SkeletonType.values()[this.dataByte]);
|
||||||
}
|
}
|
||||||
storeLiving((LivingEntity) entity);
|
storeLiving((LivingEntity) entity);
|
||||||
return entity;
|
return entity;
|
||||||
@ -703,7 +707,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void saveEntity() {}
|
public void saveEntity() {
|
||||||
|
}
|
||||||
|
|
||||||
private byte getOrdinal(Object[] list, Object value) {
|
private byte getOrdinal(Object[] list, Object value) {
|
||||||
for (byte i = 0; i < list.length; i++) {
|
for (byte i = 0; i < list.length; i++) {
|
||||||
|
@ -52,10 +52,11 @@ public class TeleportEntityWrapper extends EntityWrapper {
|
|||||||
this.getEntity().setInvulnerable(true);
|
this.getEntity().setInvulnerable(true);
|
||||||
this.fireTicksOld = this.getEntity().getFireTicks();
|
this.fireTicksOld = this.getEntity().getFireTicks();
|
||||||
this.livingTicksOld = this.getEntity().getTicksLived();
|
this.livingTicksOld = this.getEntity().getTicksLived();
|
||||||
this.getEntity().setMetadata("ps-tmp-teleport", new FixedMetadataValue(
|
this.getEntity().setMetadata("ps-tmp-teleport",
|
||||||
BukkitMain.getPlugin(BukkitMain.class), oldLocation));
|
new FixedMetadataValue(BukkitMain.getPlugin(BukkitMain.class), oldLocation));
|
||||||
final Chunk newChunk = getNewChunk();
|
final Chunk newChunk = getNewChunk();
|
||||||
this.getEntity().teleport(new Location(newChunk.getWorld(), newChunk.getX() << 4, 5000, newChunk.getZ() << 4));
|
this.getEntity().teleport(
|
||||||
|
new Location(newChunk.getWorld(), newChunk.getX() << 4, 5000, newChunk.getZ() << 4));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Chunk getNewChunk() {
|
private Chunk getNewChunk() {
|
||||||
|
@ -12,8 +12,8 @@ import org.bukkit.entity.Player;
|
|||||||
private final boolean valid;
|
private final boolean valid;
|
||||||
|
|
||||||
public DefaultTitle_111() {
|
public DefaultTitle_111() {
|
||||||
this.valid = PlotSquared
|
this.valid = PlotSquared.get()
|
||||||
.get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_11_0);
|
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_11_0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -101,13 +101,16 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
return chunks;
|
return chunks;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public boolean copyRegion(
|
@Override
|
||||||
com.github.intellectualsites.plotsquared.plot.object.Location pos1, com.github.intellectualsites.plotsquared.plot.object.Location pos2, com.github.intellectualsites.plotsquared.plot.object.Location newPos,
|
public boolean copyRegion(com.github.intellectualsites.plotsquared.plot.object.Location pos1,
|
||||||
|
com.github.intellectualsites.plotsquared.plot.object.Location pos2,
|
||||||
|
com.github.intellectualsites.plotsquared.plot.object.Location newPos,
|
||||||
final Runnable whenDone) {
|
final Runnable whenDone) {
|
||||||
final int relX = newPos.getX() - pos1.getX();
|
final int relX = newPos.getX() - pos1.getX();
|
||||||
final int relZ = newPos.getZ() - pos1.getZ();
|
final int relZ = newPos.getZ() - pos1.getZ();
|
||||||
com.github.intellectualsites.plotsquared.plot.object.Location pos4 =
|
com.github.intellectualsites.plotsquared.plot.object.Location pos4 =
|
||||||
new com.github.intellectualsites.plotsquared.plot.object.Location(newPos.getWorld(), newPos.getX() + relX, 256, newPos.getZ() + relZ);
|
new com.github.intellectualsites.plotsquared.plot.object.Location(newPos.getWorld(),
|
||||||
|
newPos.getX() + relX, 256, newPos.getZ() + relZ);
|
||||||
|
|
||||||
final RegionWrapper region =
|
final RegionWrapper region =
|
||||||
new RegionWrapper(pos1.getX(), pos2.getX(), pos1.getZ(), pos2.getZ());
|
new RegionWrapper(pos1.getX(), pos2.getX(), pos1.getZ(), pos2.getZ());
|
||||||
@ -159,7 +162,9 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public boolean regenerateRegion(final com.github.intellectualsites.plotsquared.plot.object.Location pos1, final com.github.intellectualsites.plotsquared.plot.object.Location pos2,
|
@Override public boolean regenerateRegion(
|
||||||
|
final com.github.intellectualsites.plotsquared.plot.object.Location pos1,
|
||||||
|
final com.github.intellectualsites.plotsquared.plot.object.Location pos2,
|
||||||
final boolean ignoreAugment, final Runnable whenDone) {
|
final boolean ignoreAugment, final Runnable whenDone) {
|
||||||
final String world = pos1.getWorld();
|
final String world = pos1.getWorld();
|
||||||
|
|
||||||
@ -315,8 +320,9 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public void clearAllEntities(
|
@Override
|
||||||
com.github.intellectualsites.plotsquared.plot.object.Location pos1, com.github.intellectualsites.plotsquared.plot.object.Location pos2) {
|
public void clearAllEntities(com.github.intellectualsites.plotsquared.plot.object.Location pos1,
|
||||||
|
com.github.intellectualsites.plotsquared.plot.object.Location pos2) {
|
||||||
String world = pos1.getWorld();
|
String world = pos1.getWorld();
|
||||||
List<Entity> entities = BukkitUtil.getEntities(world);
|
List<Entity> entities = BukkitUtil.getEntities(world);
|
||||||
int bx = pos1.getX();
|
int bx = pos1.getX();
|
||||||
@ -355,7 +361,10 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public void swap(com.github.intellectualsites.plotsquared.plot.object.Location bot1, com.github.intellectualsites.plotsquared.plot.object.Location top1, com.github.intellectualsites.plotsquared.plot.object.Location bot2, com.github.intellectualsites.plotsquared.plot.object.Location top2,
|
@Override public void swap(com.github.intellectualsites.plotsquared.plot.object.Location bot1,
|
||||||
|
com.github.intellectualsites.plotsquared.plot.object.Location top1,
|
||||||
|
com.github.intellectualsites.plotsquared.plot.object.Location bot2,
|
||||||
|
com.github.intellectualsites.plotsquared.plot.object.Location top2,
|
||||||
final Runnable whenDone) {
|
final Runnable whenDone) {
|
||||||
RegionWrapper region1 =
|
RegionWrapper region1 =
|
||||||
new RegionWrapper(bot1.getX(), top1.getX(), bot1.getZ(), top1.getZ());
|
new RegionWrapper(bot1.getX(), top1.getX(), bot1.getZ(), top1.getZ());
|
||||||
@ -655,7 +664,8 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
|
|
||||||
public void saveEntitiesOut(Chunk chunk, RegionWrapper region) {
|
public void saveEntitiesOut(Chunk chunk, RegionWrapper region) {
|
||||||
for (Entity entity : chunk.getEntities()) {
|
for (Entity entity : chunk.getEntities()) {
|
||||||
com.github.intellectualsites.plotsquared.plot.object.Location loc = BukkitUtil.getLocation(entity);
|
com.github.intellectualsites.plotsquared.plot.object.Location loc =
|
||||||
|
BukkitUtil.getLocation(entity);
|
||||||
int x = loc.getX();
|
int x = loc.getX();
|
||||||
int z = loc.getZ();
|
int z = loc.getZ();
|
||||||
if (isIn(region, x, z)) {
|
if (isIn(region, x, z)) {
|
||||||
@ -673,7 +683,8 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
public void saveEntitiesIn(Chunk chunk, RegionWrapper region, int offsetX, int offsetZ,
|
public void saveEntitiesIn(Chunk chunk, RegionWrapper region, int offsetX, int offsetZ,
|
||||||
boolean delete) {
|
boolean delete) {
|
||||||
for (Entity entity : chunk.getEntities()) {
|
for (Entity entity : chunk.getEntities()) {
|
||||||
com.github.intellectualsites.plotsquared.plot.object.Location loc = BukkitUtil.getLocation(entity);
|
com.github.intellectualsites.plotsquared.plot.object.Location loc =
|
||||||
|
BukkitUtil.getLocation(entity);
|
||||||
int x = loc.getX();
|
int x = loc.getX();
|
||||||
int z = loc.getZ();
|
int z = loc.getZ();
|
||||||
if (!isIn(region, x, z)) {
|
if (!isIn(region, x, z)) {
|
||||||
@ -894,14 +905,16 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
((NoteBlock) state).setNote(blockLocNoteEntry.getValue());
|
((NoteBlock) state).setNote(blockLocNoteEntry.getValue());
|
||||||
state.update(true);
|
state.update(true);
|
||||||
} else {
|
} else {
|
||||||
PlotSquared.debug("&c[WARN] Plot clear failed to regenerate note block: " + (
|
PlotSquared.debug(
|
||||||
|
"&c[WARN] Plot clear failed to regenerate note block: " + (
|
||||||
blockLocNoteEntry.getKey().x + xOffset) + ',' + blockLocNoteEntry
|
blockLocNoteEntry.getKey().x + xOffset) + ',' + blockLocNoteEntry
|
||||||
.getKey().y + ',' + (blockLocNoteEntry.getKey().z + zOffset));
|
.getKey().y + ',' + (blockLocNoteEntry.getKey().z + zOffset));
|
||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
PlotSquared.debug("&c[WARN] Plot clear failed to regenerate note block (e): " + (
|
PlotSquared.debug(
|
||||||
blockLocNoteEntry.getKey().x + xOffset) + ',' + blockLocNoteEntry.getKey().y
|
"&c[WARN] Plot clear failed to regenerate note block (e): " + (
|
||||||
+ ',' + (blockLocNoteEntry.getKey().z + zOffset));
|
blockLocNoteEntry.getKey().x + xOffset) + ',' + blockLocNoteEntry
|
||||||
|
.getKey().y + ',' + (blockLocNoteEntry.getKey().z + zOffset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (Entry<BlockLoc, Short> blockLocShortEntry : this.brewTime.entrySet()) {
|
for (Entry<BlockLoc, Short> blockLocShortEntry : this.brewTime.entrySet()) {
|
||||||
@ -912,14 +925,14 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
if (state instanceof BrewingStand) {
|
if (state instanceof BrewingStand) {
|
||||||
((BrewingStand) state).setBrewingTime(blockLocShortEntry.getValue());
|
((BrewingStand) state).setBrewingTime(blockLocShortEntry.getValue());
|
||||||
} else {
|
} else {
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug("&c[WARN] Plot clear failed to restore brewing stand cooking: " + (
|
"&c[WARN] Plot clear failed to restore brewing stand cooking: " + (
|
||||||
blockLocShortEntry.getKey().x + xOffset) + ',' + blockLocShortEntry
|
blockLocShortEntry.getKey().x + xOffset) + ',' + blockLocShortEntry
|
||||||
.getKey().y + ',' + (blockLocShortEntry.getKey().z + zOffset));
|
.getKey().y + ',' + (blockLocShortEntry.getKey().z + zOffset));
|
||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug("&c[WARN] Plot clear failed to restore brewing stand cooking (e): " + (
|
"&c[WARN] Plot clear failed to restore brewing stand cooking (e): " + (
|
||||||
blockLocShortEntry.getKey().x + xOffset) + ',' + blockLocShortEntry
|
blockLocShortEntry.getKey().x + xOffset) + ',' + blockLocShortEntry
|
||||||
.getKey().y + ',' + (blockLocShortEntry.getKey().z + zOffset));
|
.getKey().y + ',' + (blockLocShortEntry.getKey().z + zOffset));
|
||||||
}
|
}
|
||||||
@ -957,12 +970,15 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
((CommandBlock) state).setCommand(blockLocStringEntry.getValue());
|
((CommandBlock) state).setCommand(blockLocStringEntry.getValue());
|
||||||
state.update(true);
|
state.update(true);
|
||||||
} else {
|
} else {
|
||||||
PlotSquared.debug("&c[WARN] Plot clear failed to restore command block: " + (
|
PlotSquared.debug(
|
||||||
blockLocStringEntry.getKey().x + xOffset) + ',' + blockLocStringEntry
|
"&c[WARN] Plot clear failed to restore command block: " + (
|
||||||
.getKey().y + ',' + (blockLocStringEntry.getKey().z + zOffset));
|
blockLocStringEntry.getKey().x + xOffset) + ','
|
||||||
|
+ blockLocStringEntry.getKey().y + ',' + (
|
||||||
|
blockLocStringEntry.getKey().z + zOffset));
|
||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
PlotSquared.debug("&c[WARN] Plot clear failed to restore command block (e): " + (
|
PlotSquared.debug(
|
||||||
|
"&c[WARN] Plot clear failed to restore command block (e): " + (
|
||||||
blockLocStringEntry.getKey().x + xOffset) + ',' + blockLocStringEntry
|
blockLocStringEntry.getKey().x + xOffset) + ',' + blockLocStringEntry
|
||||||
.getKey().y + ',' + (blockLocStringEntry.getKey().z + zOffset));
|
.getKey().y + ',' + (blockLocStringEntry.getKey().z + zOffset));
|
||||||
}
|
}
|
||||||
@ -979,16 +995,16 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
.setContents(blockLocEntry.getValue());
|
.setContents(blockLocEntry.getValue());
|
||||||
state.update(true);
|
state.update(true);
|
||||||
} else {
|
} else {
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug("&c[WARN] Plot clear failed to regenerate brewing stand: " + (
|
"&c[WARN] Plot clear failed to regenerate brewing stand: " + (
|
||||||
blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y
|
blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y
|
||||||
+ ',' + (blockLocEntry.getKey().z + zOffset));
|
+ ',' + (blockLocEntry.getKey().z + zOffset));
|
||||||
}
|
}
|
||||||
} catch (IllegalArgumentException ignored) {
|
} catch (IllegalArgumentException ignored) {
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug("&c[WARN] Plot clear failed to regenerate brewing stand (e): " + (
|
"&c[WARN] Plot clear failed to regenerate brewing stand (e): " + (
|
||||||
blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y + ','
|
blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y
|
||||||
+ (blockLocEntry.getKey().z + zOffset));
|
+ ',' + (blockLocEntry.getKey().z + zOffset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (Entry<BlockLoc, Short[]> blockLocEntry : this.furnaceTime.entrySet()) {
|
for (Entry<BlockLoc, Short[]> blockLocEntry : this.furnaceTime.entrySet()) {
|
||||||
@ -1002,16 +1018,16 @@ public class BukkitChunkManager extends ChunkManager {
|
|||||||
((Furnace) state).setBurnTime(time[0]);
|
((Furnace) state).setBurnTime(time[0]);
|
||||||
((Furnace) state).setCookTime(time[1]);
|
((Furnace) state).setCookTime(time[1]);
|
||||||
} else {
|
} else {
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug("&c[WARN] Plot clear failed to restore furnace cooking: " + (
|
"&c[WARN] Plot clear failed to restore furnace cooking: " + (
|
||||||
blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y
|
blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y
|
||||||
+ ',' + (blockLocEntry.getKey().z + zOffset));
|
+ ',' + (blockLocEntry.getKey().z + zOffset));
|
||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug("&c[WARN] Plot clear failed to restore furnace cooking (e): " + (
|
"&c[WARN] Plot clear failed to restore furnace cooking (e): " + (
|
||||||
blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y + ','
|
blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y
|
||||||
+ (blockLocEntry.getKey().z + zOffset));
|
+ ',' + (blockLocEntry.getKey().z + zOffset));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (Entry<BlockLoc, ItemStack[]> blockLocEntry : this.furnaceContents.entrySet()) {
|
for (Entry<BlockLoc, ItemStack[]> blockLocEntry : this.furnaceContents.entrySet()) {
|
||||||
|
@ -10,6 +10,7 @@ import org.bukkit.entity.Player;
|
|||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -83,14 +84,23 @@ public class BukkitEventUtil extends EventUtil {
|
|||||||
callEvent(new PlayerPlotHelperEvent(getPlayer(initiator), plot, player, added));
|
callEvent(new PlayerPlotHelperEvent(getPlayer(initiator), plot, player, added));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean callOwnerChange(PlotPlayer initiator, Plot plot, UUID oldOwner, UUID newOwner,
|
||||||
|
boolean hasOldOwner) {
|
||||||
|
return callEvent(
|
||||||
|
new PlotChangeOwnerEvent(getPlayer(initiator), plot, oldOwner, newOwner, hasOldOwner));
|
||||||
|
}
|
||||||
|
|
||||||
@Override public boolean callFlagRemove(Flag flag, Object object, PlotCluster cluster) {
|
@Override public boolean callFlagRemove(Flag flag, Object object, PlotCluster cluster) {
|
||||||
return callEvent(new ClusterFlagRemoveEvent(flag, cluster));
|
return callEvent(new ClusterFlagRemoveEvent(flag, cluster));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public Rating callRating(PlotPlayer player, Plot plot, Rating rating) {
|
@Override @Nullable public Rating callRating(PlotPlayer player, Plot plot, Rating rating) {
|
||||||
PlotRateEvent event = new PlotRateEvent(player, rating, plot);
|
PlotRateEvent event = new PlotRateEvent(player, rating, plot);
|
||||||
Bukkit.getServer().getPluginManager().callEvent(event);
|
Bukkit.getServer().getPluginManager().callEvent(event);
|
||||||
|
if (event.isCancelled()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return event.getRating();
|
return event.getRating();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -132,8 +132,10 @@ public class BukkitSetupUtils extends SetupUtils {
|
|||||||
worldSection.set(step.getConstant(), step.getValue());
|
worldSection.set(step.getConstant(), step.getValue());
|
||||||
}
|
}
|
||||||
PlotSquared.get().worlds.set("worlds." + world + ".generator.type", object.type);
|
PlotSquared.get().worlds.set("worlds." + world + ".generator.type", object.type);
|
||||||
PlotSquared.get().worlds.set("worlds." + world + ".generator.terrain", object.terrain);
|
PlotSquared.get().worlds
|
||||||
PlotSquared.get().worlds.set("worlds." + world + ".generator.plugin", object.plotManager);
|
.set("worlds." + world + ".generator.terrain", object.terrain);
|
||||||
|
PlotSquared.get().worlds
|
||||||
|
.set("worlds." + world + ".generator.plugin", object.plotManager);
|
||||||
if (object.setupGenerator != null && !object.setupGenerator
|
if (object.setupGenerator != null && !object.setupGenerator
|
||||||
.equals(object.plotManager)) {
|
.equals(object.plotManager)) {
|
||||||
PlotSquared.get().worlds
|
PlotSquared.get().worlds
|
||||||
|
@ -24,8 +24,7 @@ import org.bukkit.material.*;
|
|||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@SuppressWarnings({"unused", "WeakerAccess"})
|
@SuppressWarnings({"unused", "WeakerAccess"}) public class BukkitUtil extends WorldUtil {
|
||||||
public class BukkitUtil extends WorldUtil {
|
|
||||||
|
|
||||||
private static String lastString = null;
|
private static String lastString = null;
|
||||||
private static World lastWorld = null;
|
private static World lastWorld = null;
|
||||||
@ -86,7 +85,7 @@ public class BukkitUtil extends WorldUtil {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the PlotPlayer for an offline player.
|
* Get the PlotPlayer for an offline player.
|
||||||
* <p>
|
*
|
||||||
* <p>Note that this will work if the player is offline, however not all
|
* <p>Note that this will work if the player is offline, however not all
|
||||||
* functionality will work.
|
* functionality will work.
|
||||||
*
|
*
|
||||||
@ -242,8 +241,9 @@ public class BukkitUtil extends WorldUtil {
|
|||||||
return getWorld(world).getBiome(x, z).name();
|
return getWorld(world).getBiome(x, z).name();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override @SuppressWarnings("deprecation") public void setSign(@NonNull final String worldName,
|
@Override @SuppressWarnings("deprecation")
|
||||||
final int x, final int y, final int z, @NonNull final String[] lines) {
|
public void setSign(@NonNull final String worldName, final int x, final int y, final int z,
|
||||||
|
@NonNull final String[] lines) {
|
||||||
final World world = getWorld(worldName);
|
final World world = getWorld(worldName);
|
||||||
final Block block = world.getBlockAt(x, y, z);
|
final Block block = world.getBlockAt(x, y, z);
|
||||||
// block.setType(Material.AIR);
|
// block.setType(Material.AIR);
|
||||||
@ -351,7 +351,8 @@ public class BukkitUtil extends WorldUtil {
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public boolean addItems(@NonNull final String worldName, @NonNull final PlotItem items) {
|
@Override
|
||||||
|
public boolean addItems(@NonNull final String worldName, @NonNull final PlotItem items) {
|
||||||
final World world = getWorld(worldName);
|
final World world = getWorld(worldName);
|
||||||
final Block block = world.getBlockAt(items.x, items.y, items.z);
|
final Block block = world.getBlockAt(items.x, items.y, items.z);
|
||||||
if (block == null) {
|
if (block == null) {
|
||||||
@ -403,7 +404,8 @@ public class BukkitUtil extends WorldUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override @Nullable public StringComparison<PlotBlock>.ComparisonResult getClosestBlock(String name) {
|
@Override @Nullable
|
||||||
|
public StringComparison<PlotBlock>.ComparisonResult getClosestBlock(String name) {
|
||||||
try {
|
try {
|
||||||
final Material material = Material.valueOf(name.toUpperCase());
|
final Material material = Material.valueOf(name.toUpperCase());
|
||||||
return new StringComparison<PlotBlock>().new ComparisonResult(0,
|
return new StringComparison<PlotBlock>().new ComparisonResult(0,
|
||||||
@ -439,7 +441,8 @@ public class BukkitUtil extends WorldUtil {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override public void setBiomes(@NonNull final String worldName, @NonNull final RegionWrapper region,
|
@Override
|
||||||
|
public void setBiomes(@NonNull final String worldName, @NonNull final RegionWrapper region,
|
||||||
@NonNull final String biomeString) {
|
@NonNull final String biomeString) {
|
||||||
final World world = getWorld(worldName);
|
final World world = getWorld(worldName);
|
||||||
final Biome biome = Biome.valueOf(biomeString.toUpperCase());
|
final Biome biome = Biome.valueOf(biomeString.toUpperCase());
|
||||||
|
@ -50,7 +50,8 @@ public class SendChunk {
|
|||||||
RefClass classChunk = getRefClass("{nms}.Chunk");
|
RefClass classChunk = getRefClass("{nms}.Chunk");
|
||||||
this.methodInitLighting = classChunk.getMethod("initLighting");
|
this.methodInitLighting = classChunk.getMethod("initLighting");
|
||||||
RefClass classMapChunk = getRefClass("{nms}.PacketPlayOutMapChunk");
|
RefClass classMapChunk = getRefClass("{nms}.PacketPlayOutMapChunk");
|
||||||
if (PlotSquared.get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_4)) {
|
if (PlotSquared.get()
|
||||||
|
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_4)) {
|
||||||
//this works for 1.9.4 and 1.10
|
//this works for 1.9.4 and 1.10
|
||||||
tempMapChunk = classMapChunk.getConstructor(classChunk.getRealClass(), int.class);
|
tempMapChunk = classMapChunk.getConstructor(classChunk.getRealClass(), int.class);
|
||||||
} else {
|
} else {
|
||||||
@ -118,8 +119,8 @@ public class SendChunk {
|
|||||||
chunks.remove(chunk);
|
chunks.remove(chunk);
|
||||||
Object con = this.connection.of(entity).get();
|
Object con = this.connection.of(entity).get();
|
||||||
Object packet = null;
|
Object packet = null;
|
||||||
if (PlotSquared
|
if (PlotSquared.get()
|
||||||
.get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_4)) {
|
.checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_4)) {
|
||||||
try {
|
try {
|
||||||
packet = this.mapChunk.create(c, 65535);
|
packet = this.mapChunk.create(c, 65535);
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
@ -148,10 +149,11 @@ public class SendChunk {
|
|||||||
chunk.unload(true, false);
|
chunk.unload(true, false);
|
||||||
} catch (Throwable ignored) {
|
} catch (Throwable ignored) {
|
||||||
String worldName = chunk.getWorld().getName();
|
String worldName = chunk.getWorld().getName();
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug("$4Could not save chunk: " + worldName + ';' + chunk.getX() + ";"
|
"$4Could not save chunk: " + worldName + ';' + chunk.getX() + ";"
|
||||||
+ chunk.getZ());
|
+ chunk.getZ());
|
||||||
PlotSquared.debug("$3 - $4File may be open in another process (e.g. MCEdit)");
|
PlotSquared
|
||||||
|
.debug("$3 - $4File may be open in another process (e.g. MCEdit)");
|
||||||
PlotSquared.debug("$3 - $4" + worldName + "/level.dat or " + worldName
|
PlotSquared.debug("$3 - $4" + worldName + "/level.dat or " + worldName
|
||||||
+ "/level_old.dat may be corrupt (try repairing or removing these)");
|
+ "/level_old.dat may be corrupt (try repairing or removing these)");
|
||||||
}
|
}
|
||||||
|
@ -52,6 +52,7 @@ public class SetGenCB {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PlotSquared.get().loadWorld(world.getName(), PlotSquared.get().IMP.getGenerator(world.getName(), null));
|
PlotSquared.get()
|
||||||
|
.loadWorld(world.getName(), PlotSquared.get().IMP.getGenerator(world.getName(), null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -203,7 +203,8 @@ public class FileUUIDHandler extends UUIDHandlerImplementation {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
PlotSquared.debug(C.PREFIX + "&6Invalid PlayerData: " + uuid.toString() + ".dat");
|
PlotSquared
|
||||||
|
.debug(C.PREFIX + "&6Invalid PlayerData: " + uuid.toString() + ".dat");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (String name : names) {
|
for (String name : names) {
|
||||||
|
@ -43,7 +43,8 @@ public class SQLUUIDHandler extends UUIDHandlerImplementation {
|
|||||||
|
|
||||||
public SQLUUIDHandler(UUIDWrapper wrapper) {
|
public SQLUUIDHandler(UUIDWrapper wrapper) {
|
||||||
super(wrapper);
|
super(wrapper);
|
||||||
this.sqlite = new SQLite(MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), "usercache.db"));
|
this.sqlite =
|
||||||
|
new SQLite(MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), "usercache.db"));
|
||||||
try {
|
try {
|
||||||
this.sqlite.openConnection();
|
this.sqlite.openConnection();
|
||||||
} catch (ClassNotFoundException | SQLException e) {
|
} catch (ClassNotFoundException | SQLException e) {
|
||||||
@ -221,7 +222,8 @@ public class SQLUUIDHandler extends UUIDHandlerImplementation {
|
|||||||
statement.setString(1, uuid.toString());
|
statement.setString(1, uuid.toString());
|
||||||
statement.setString(2, name.toString());
|
statement.setString(2, name.toString());
|
||||||
statement.execute();
|
statement.execute();
|
||||||
PlotSquared.debug(C.PREFIX + "&cAdded '&6" + uuid + "&c' - '&6" + name + "&c'");
|
PlotSquared
|
||||||
|
.debug(C.PREFIX + "&cAdded '&6" + uuid + "&c' - '&6" + name + "&c'");
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -244,8 +246,8 @@ public class SQLUUIDHandler extends UUIDHandlerImplementation {
|
|||||||
statement.setString(1, name.value);
|
statement.setString(1, name.value);
|
||||||
statement.setString(2, uuid.toString());
|
statement.setString(2, uuid.toString());
|
||||||
statement.execute();
|
statement.execute();
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug(C.PREFIX + "Name change for '" + uuid + "' to '" + name.value + '\'');
|
C.PREFIX + "Name change for '" + uuid + "' to '" + name.value + '\'');
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ import java.util.UUID;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* PlotSquared API.
|
* PlotSquared API.
|
||||||
* <p>
|
*
|
||||||
* <p>Useful classes:
|
* <p>Useful classes:
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>{@link PlotPlayer}</li>
|
* <li>{@link PlotPlayer}</li>
|
||||||
@ -34,9 +34,7 @@ import java.util.UUID;
|
|||||||
*
|
*
|
||||||
* @version 3.3.3
|
* @version 3.3.3
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings({"unused", "WeakerAccess"})
|
@SuppressWarnings({"unused", "WeakerAccess"}) @NoArgsConstructor public class PlotAPI {
|
||||||
@NoArgsConstructor
|
|
||||||
public class PlotAPI {
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get all plots.
|
* Get all plots.
|
||||||
@ -201,7 +199,7 @@ public class PlotAPI {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the PlotPlayer for a UUID.
|
* Get the PlotPlayer for a UUID.
|
||||||
* <p>
|
*
|
||||||
* <p><i>Please note that PlotSquared can be configured to provide
|
* <p><i>Please note that PlotSquared can be configured to provide
|
||||||
* different UUIDs than bukkit</i>
|
* different UUIDs than bukkit</i>
|
||||||
*
|
*
|
||||||
|
@ -166,8 +166,8 @@ public abstract class Command {
|
|||||||
options.put("usage", declaration.usage());
|
options.put("usage", declaration.usage());
|
||||||
options.put("confirmation", declaration.confirmation());
|
options.put("confirmation", declaration.confirmation());
|
||||||
boolean set = false;
|
boolean set = false;
|
||||||
YamlConfiguration commands = PlotSquared.get() == null ? new YamlConfiguration() : PlotSquared
|
YamlConfiguration commands =
|
||||||
.get().commands;
|
PlotSquared.get() == null ? new YamlConfiguration() : PlotSquared.get().commands;
|
||||||
for (Map.Entry<String, Object> entry : options.entrySet()) {
|
for (Map.Entry<String, Object> entry : options.entrySet()) {
|
||||||
String key = this.getFullId() + "." + entry.getKey();
|
String key = this.getFullId() + "." + entry.getKey();
|
||||||
if (!commands.contains(key)) {
|
if (!commands.contains(key)) {
|
||||||
|
@ -25,7 +25,7 @@ class ConfigurationOptions {
|
|||||||
/**
|
/**
|
||||||
* Gets the char that will be used to separate {@link
|
* Gets the char that will be used to separate {@link
|
||||||
* ConfigurationSection}s.
|
* ConfigurationSection}s.
|
||||||
* <p>
|
*
|
||||||
* <p>This value does not affect how the {@link Configuration} is stored,
|
* <p>This value does not affect how the {@link Configuration} is stored,
|
||||||
* only in how you access the data. The default value is '.'.
|
* 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
|
* Sets the char that will be used to separate {@link
|
||||||
* ConfigurationSection}s.
|
* ConfigurationSection}s.
|
||||||
* <p>
|
*
|
||||||
* <p>This value does not affect how the {@link Configuration} is stored,
|
* <p>This value does not affect how the {@link Configuration} is stored,
|
||||||
* only in how you access the data. The default value is '.'.
|
* 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
|
* Checks if the {@link Configuration} should copy values from its default
|
||||||
* {@link Configuration} directly.
|
* {@link Configuration} directly.
|
||||||
* <p>
|
*
|
||||||
* <p>If this is true, all values in the default Configuration will be
|
* <p>If this is true, all values in the default Configuration will be
|
||||||
* directly copied, making it impossible to distinguish between values
|
* directly copied, making it impossible to distinguish between values
|
||||||
* that were set and values that are provided by default. As a result,
|
* 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
|
* Sets if the {@link Configuration} should copy values from its default
|
||||||
* {@link Configuration} directly.
|
* {@link Configuration} directly.
|
||||||
* <p>
|
*
|
||||||
* <p>If this is true, all values in the default Configuration will be
|
* <p>If this is true, all values in the default Configuration will be
|
||||||
* directly copied, making it impossible to distinguish between values
|
* directly copied, making it impossible to distinguish between values
|
||||||
* that were set and values that are provided by default. As a result,
|
* that were set and values that are provided by default. As a result,
|
||||||
|
@ -11,11 +11,11 @@ public interface ConfigurationSection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a set containing all keys in this section.
|
* 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
|
* <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
|
* child {@link ConfigurationSection}s (and their children, etc). These
|
||||||
* will be in a valid path notation for you to use.
|
* 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
|
* <p>If deep is set to false, then this will contain only the keys of any
|
||||||
* direct children, and not their own children.
|
* 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.
|
* 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
|
* <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,
|
* within any child {@link ConfigurationSection}s (and their children,
|
||||||
* etc). These keys will be in a valid path notation for you to use.
|
* 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
|
* <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.
|
* 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.
|
* 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
|
* <p>If the value for the requested path does not exist but a default value
|
||||||
* has been specified, this will return true.
|
* 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
|
* Checks if this {@link ConfigurationSection} has a value set for the
|
||||||
* given path.
|
* given path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the value for the requested path does not exist but a default value
|
* <p>If the value for the requested path does not exist but a default value
|
||||||
* has been specified, this will still return false.
|
* 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
|
* Gets the path of this {@link ConfigurationSection} from its root {@link
|
||||||
* Configuration}.
|
* Configuration}.
|
||||||
* <p>
|
*
|
||||||
* <p>For any {@link Configuration} themselves, this will return an empty
|
* <p>For any {@link Configuration} themselves, this will return an empty
|
||||||
* string.
|
* string.
|
||||||
* <p>
|
*
|
||||||
* <p>If the section is no longer contained within its root for any reason,
|
* <p>If the section is no longer contained within its root for any reason,
|
||||||
* such as being replaced with a different value,
|
* such as being replaced with a different value,
|
||||||
* this may return {@code null}.
|
* this may return {@code null}.
|
||||||
* <p>
|
*
|
||||||
* <p>To retrieve the single name of this section, that is, the final part
|
* <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()}.
|
* 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
|
* Gets the name of this individual {@link ConfigurationSection}, in the
|
||||||
* path.
|
* path.
|
||||||
* <p>
|
*
|
||||||
* <p>This will always be the final part of {@link #getCurrentPath()}, unless
|
* <p>This will always be the final part of {@link #getCurrentPath()}, unless
|
||||||
* the section is orphaned.
|
* the section is orphaned.
|
||||||
*
|
*
|
||||||
@ -100,10 +100,10 @@ public interface ConfigurationSection {
|
|||||||
/**
|
/**
|
||||||
* Gets the root {@link Configuration} that contains this {@link
|
* Gets the root {@link Configuration} that contains this {@link
|
||||||
* ConfigurationSection}
|
* ConfigurationSection}
|
||||||
* <p>
|
*
|
||||||
* <p>For any {@link Configuration} themselves, this will return its own
|
* <p>For any {@link Configuration} themselves, this will return its own
|
||||||
* object.
|
* object.
|
||||||
* <p>
|
*
|
||||||
* <p>If the section is no longer contained within its root for any reason,
|
* <p>If the section is no longer contained within its root for any reason,
|
||||||
* such as being replaced with a different value,
|
* such as being replaced with a different value,
|
||||||
* this may return {@code null}.
|
* this may return {@code null}.
|
||||||
@ -115,10 +115,10 @@ public interface ConfigurationSection {
|
|||||||
/**
|
/**
|
||||||
* Gets the parent {@link ConfigurationSection} that directly contains
|
* Gets the parent {@link ConfigurationSection} that directly contains
|
||||||
* this {@link ConfigurationSection}.
|
* this {@link ConfigurationSection}.
|
||||||
* <p>
|
*
|
||||||
* <p>For any {@link Configuration} themselves, this will return
|
* <p>For any {@link Configuration} themselves, this will return
|
||||||
* {@code null}.
|
* {@code null}.
|
||||||
* <p>
|
*
|
||||||
* <p>If the section is no longer contained within its parent for any
|
* <p>If the section is no longer contained within its parent for any
|
||||||
* reason, such as being replaced with a different value, this may
|
* reason, such as being replaced with a different value, this may
|
||||||
* return {@code null}.
|
* return {@code null}.
|
||||||
@ -129,7 +129,7 @@ public interface ConfigurationSection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the requested Object by path.
|
* Gets the requested Object by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the Object does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the Object does not exist and no
|
||||||
* default value was specified, this will return {@code null}.
|
* 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
|
* Gets the requested Object by path, returning a default value if not
|
||||||
* found.
|
* found.
|
||||||
* <p>
|
*
|
||||||
* <p>If the Object does not exist then the specified default value will
|
* <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
|
* returned regardless of if a default has been identified in the root
|
||||||
* {@link Configuration}.
|
* {@link Configuration}.
|
||||||
@ -155,10 +155,10 @@ public interface ConfigurationSection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the specified path to the given value.
|
* Sets the specified path to the given value.
|
||||||
* <p>
|
*
|
||||||
* <p>If value is {@code null}, the entry will be removed. Any
|
* <p>If value is {@code null}, the entry will be removed. Any
|
||||||
* existing entry will be replaced, regardless of what the new value is.
|
* 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
|
* <p>Some implementations may have limitations on what you may store. See
|
||||||
* their individual javadoc for details. No implementations should allow
|
* their individual javadoc for details. No implementations should allow
|
||||||
* you to store {@link Configuration}s or {@link ConfigurationSection}s,
|
* 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.
|
* Creates an empty {@link ConfigurationSection} at the specified path.
|
||||||
* <p>
|
*
|
||||||
* <p>Any value that was previously set at this path will be overwritten. If
|
* <p>Any value that was previously set at this path will be overwritten. If
|
||||||
* the previous value was itself a {@link ConfigurationSection}, it will
|
* the previous value was itself a {@link ConfigurationSection}, it will
|
||||||
* be orphaned.
|
* be orphaned.
|
||||||
@ -184,7 +184,7 @@ public interface ConfigurationSection {
|
|||||||
/**
|
/**
|
||||||
* Creates a {@link ConfigurationSection} at the specified path, with
|
* Creates a {@link ConfigurationSection} at the specified path, with
|
||||||
* specified values.
|
* specified values.
|
||||||
* <p>
|
*
|
||||||
* <p>Any value that was previously set at this path will be overwritten. If
|
* <p>Any value that was previously set at this path will be overwritten. If
|
||||||
* the previous value was itself a {@link ConfigurationSection}, it will
|
* the previous value was itself a {@link ConfigurationSection}, it will
|
||||||
* be orphaned.
|
* be orphaned.
|
||||||
@ -199,7 +199,7 @@ public interface ConfigurationSection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the requested String by path.
|
* Gets the requested String by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the String does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the String does not exist and no
|
||||||
* default value was specified, this will return {@code null}.
|
* 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
|
* Gets the requested String by path, returning a default value if not
|
||||||
* found.
|
* found.
|
||||||
* <p>
|
*
|
||||||
* <p>If the String does not exist then the specified default value will
|
* <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
|
* returned regardless of if a default has been identified in the root
|
||||||
* {@link Configuration}.
|
* {@link Configuration}.
|
||||||
@ -226,7 +226,7 @@ public interface ConfigurationSection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the specified path is a String.
|
* Checks if the specified path is a String.
|
||||||
* <p>
|
*
|
||||||
* <p>If the path exists but is not a String, this will return false. If
|
* <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
|
* 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
|
* 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.
|
* Gets the requested int by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the int does not exist but a default value has been specified, this
|
* <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
|
* will return the default value. If the int does not exist and no default
|
||||||
* value was specified, this will return 0.
|
* 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.
|
* 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
|
* <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
|
* returned regardless of if a default has been identified in the root
|
||||||
* {@link Configuration}.
|
* {@link Configuration}.
|
||||||
@ -265,7 +265,7 @@ public interface ConfigurationSection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the specified path is an int.
|
* 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
|
* <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
|
* 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
|
* 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.
|
* Gets the requested boolean by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the boolean does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the boolean does not exist and
|
||||||
* no default value was specified, this will return false.
|
* 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
|
* Gets the requested boolean by path, returning a default value if not
|
||||||
* found.
|
* found.
|
||||||
* <p>
|
*
|
||||||
* <p>If the boolean does not exist then the specified default value will
|
* <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
|
* returned regardless of if a default has been identified in the root
|
||||||
* {@link Configuration}.
|
* {@link Configuration}.
|
||||||
@ -305,7 +305,7 @@ public interface ConfigurationSection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the specified path is a boolean.
|
* 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
|
* <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
|
* 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
|
* 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.
|
* Gets the requested double by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the double does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the double does not exist and no
|
||||||
* default value was specified, this will return 0.
|
* 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
|
* Gets the requested double by path, returning a default value if not
|
||||||
* found.
|
* found.
|
||||||
* <p>
|
*
|
||||||
* <p>If the double does not exist then the specified default value will
|
* <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
|
* returned regardless of if a default has been identified in the root
|
||||||
* {@link Configuration}.
|
* {@link Configuration}.
|
||||||
@ -345,7 +345,7 @@ public interface ConfigurationSection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the specified path is a double.
|
* 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
|
* <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
|
* 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
|
* 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.
|
* Gets the requested long by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the long does not exist but a default value has been specified, this
|
* <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
|
* will return the default value. If the long does not exist and no
|
||||||
* default value was specified, this will return 0.
|
* 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
|
* Gets the requested long by path, returning a default value if not
|
||||||
* found.
|
* found.
|
||||||
* <p>
|
*
|
||||||
* <p>If the long does not exist then the specified default value will
|
* <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
|
* returned regardless of if a default has been identified in the root
|
||||||
* {@link Configuration}.
|
* {@link Configuration}.
|
||||||
@ -385,7 +385,7 @@ public interface ConfigurationSection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the specified path is a long.
|
* 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
|
* <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
|
* 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
|
* 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.
|
* Gets the requested List by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist but a default value has been specified, this
|
* <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
|
* will return the default value. If the List does not exist and no
|
||||||
* default value was specified, this will return null.
|
* 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
|
* Gets the requested List by path, returning a default value if not
|
||||||
* found.
|
* found.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist then the specified default value will
|
* <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
|
* returned regardless of if a default has been identified in the root
|
||||||
* {@link Configuration}.
|
* {@link Configuration}.
|
||||||
@ -427,7 +427,7 @@ public interface ConfigurationSection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks if the specified path is a List.
|
* 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
|
* <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
|
* 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
|
* 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.
|
* Gets the requested List of String by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the List does not exist and no
|
||||||
* default value was specified, this will return an empty List.
|
* 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,
|
* <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.
|
* 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.
|
* Gets the requested List of Integer by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the List does not exist and no
|
||||||
* default value was specified, this will return an empty List.
|
* default value was specified, this will return an empty List.
|
||||||
* <p>
|
*
|
||||||
* <p>This method will attempt to cast any values into a Integer if
|
* <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.
|
* 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.
|
* Gets the requested List of Boolean by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the List does not exist and no
|
||||||
* default value was specified, this will return an empty List.
|
* default value was specified, this will return an empty List.
|
||||||
* <p>
|
*
|
||||||
* <p>This method will attempt to cast any values into a Boolean if
|
* <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.
|
* 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.
|
* Gets the requested List of Double by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the List does not exist and no
|
||||||
* default value was specified, this will return an empty List.
|
* 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,
|
* <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.
|
* 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.
|
* Gets the requested List of Float by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the List does not exist and no
|
||||||
* default value was specified, this will return an empty List.
|
* 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,
|
* <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.
|
* 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.
|
* Gets the requested List of Long by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the List does not exist and no
|
||||||
* default value was specified, this will return an empty List.
|
* 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,
|
* <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.
|
* 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.
|
* Gets the requested List of Byte by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the List does not exist and no
|
||||||
* default value was specified, this will return an empty List.
|
* 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,
|
* <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.
|
* 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.
|
* Gets the requested List of Character by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the List does not exist and no
|
||||||
* default value was specified, this will return an empty List.
|
* default value was specified, this will return an empty List.
|
||||||
* <p>
|
*
|
||||||
* <p>This method will attempt to cast any values into a Character if
|
* <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.
|
* 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.
|
* Gets the requested List of Short by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the List does not exist and no
|
||||||
* default value was specified, this will return an empty List.
|
* default value was specified, this will return an empty List.
|
||||||
* <p>
|
*
|
||||||
* <p>This method will attempt to cast any values into a Short if
|
* <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.
|
* 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.
|
* Gets the requested List of Maps by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the List does not exist but a default value has been specified,
|
* <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
|
* this will return the default value. If the List does not exist and no
|
||||||
* default value was specified, this will return an empty List.
|
* default value was specified, this will return an empty List.
|
||||||
@ -589,7 +589,7 @@ public interface ConfigurationSection {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the requested ConfigurationSection by path.
|
* Gets the requested ConfigurationSection by path.
|
||||||
* <p>
|
*
|
||||||
* <p>If the ConfigurationSection does not exist but a default value has
|
* <p>If the ConfigurationSection does not exist but a default value has
|
||||||
* been specified, this will return the default value. If the
|
* been specified, this will return the default value. If the
|
||||||
* ConfigurationSection does not exist and no default value was specified,
|
* 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.
|
* Checks if the specified path is a ConfigurationSection.
|
||||||
* <p>
|
*
|
||||||
* <p>If the path exists but is not a ConfigurationSection, this will return
|
* <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
|
* 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
|
* 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
|
* Gets the equivalent {@link ConfigurationSection} from the default
|
||||||
* {@link Configuration} defined in {@link #getRoot()}.
|
* {@link Configuration} defined in {@link #getRoot()}.
|
||||||
* <p>
|
*
|
||||||
* <p>If the root contains no defaults, or the defaults doesn't contain a
|
* <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
|
* value for this path, or the value at this path is not a {@link
|
||||||
* ConfigurationSection} then this will return {@code null}.
|
* 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.
|
* 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
|
* <p>If no source {@link Configuration} was provided as a default
|
||||||
* collection, then a new {@link MemoryConfiguration} will be created to
|
* collection, then a new {@link MemoryConfiguration} will be created to
|
||||||
* hold the new default value.
|
* hold the new default value.
|
||||||
* <p>
|
*
|
||||||
* <p>If value is {@code null}, the value will be removed from the
|
* <p>If value is {@code null}, the value will be removed from the
|
||||||
* default Configuration source.
|
* default Configuration source.
|
||||||
* <p>
|
*
|
||||||
* <p>If the value as returned by {@link #getDefaultSection()} is
|
* <p>If the value as returned by {@link #getDefaultSection()} is
|
||||||
* {@code null}, then this will create a new section at the path,
|
* {@code null}, then this will create a new section at the path,
|
||||||
* replacing anything that may have existed there previously.
|
* replacing anything that may have existed there previously.
|
||||||
|
@ -16,7 +16,7 @@ public class MemorySection implements ConfigurationSection {
|
|||||||
/**
|
/**
|
||||||
* Creates an empty MemorySection for use as a root {@link Configuration}
|
* Creates an empty MemorySection for use as a root {@link Configuration}
|
||||||
* section.
|
* section.
|
||||||
* <p>
|
*
|
||||||
* <p>Note that calling this without being yourself a {@link Configuration}
|
* <p>Note that calling this without being yourself a {@link Configuration}
|
||||||
* will throw an exception!
|
* will throw an exception!
|
||||||
*
|
*
|
||||||
@ -113,7 +113,7 @@ public class MemorySection implements ConfigurationSection {
|
|||||||
/**
|
/**
|
||||||
* Creates a full path to the given {@link ConfigurationSection} from its
|
* Creates a full path to the given {@link ConfigurationSection} from its
|
||||||
* root {@link Configuration}.
|
* root {@link Configuration}.
|
||||||
* <p>
|
*
|
||||||
* <p>You may use this method for any given {@link ConfigurationSection}, not
|
* <p>You may use this method for any given {@link ConfigurationSection}, not
|
||||||
* only {@link MemorySection}.
|
* only {@link MemorySection}.
|
||||||
*
|
*
|
||||||
@ -128,7 +128,7 @@ public class MemorySection implements ConfigurationSection {
|
|||||||
/**
|
/**
|
||||||
* Creates a relative path to the given {@link ConfigurationSection} from
|
* Creates a relative path to the given {@link ConfigurationSection} from
|
||||||
* the given relative section.
|
* the given relative section.
|
||||||
* <p>
|
*
|
||||||
* <p>You may use this method for any given {@link ConfigurationSection}, not
|
* <p>You may use this method for any given {@link ConfigurationSection}, not
|
||||||
* only {@link MemorySection}.
|
* only {@link MemorySection}.
|
||||||
*
|
*
|
||||||
|
@ -31,11 +31,11 @@ public abstract class FileConfiguration extends MemoryConfiguration {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Saves this {@link FileConfiguration} to the specified location.
|
* Saves this {@link FileConfiguration} to the specified location.
|
||||||
* <p>
|
*
|
||||||
* <p>If the file does not exist, it will be created. If already exists, it
|
* <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
|
* will be overwritten. If it cannot be overwritten or created, an
|
||||||
* exception will be thrown.
|
* exception will be thrown.
|
||||||
* <p>
|
*
|
||||||
* <p>This method will save using the system default encoding, or possibly
|
* <p>This method will save using the system default encoding, or possibly
|
||||||
* using UTF8.
|
* using UTF8.
|
||||||
*
|
*
|
||||||
@ -66,11 +66,11 @@ public abstract class FileConfiguration extends MemoryConfiguration {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads this {@link FileConfiguration} from the specified location.
|
* Loads this {@link FileConfiguration} from the specified location.
|
||||||
* <p>
|
*
|
||||||
* <p>All the values contained within this configuration will be removed,
|
* <p>All the values contained within this configuration will be removed,
|
||||||
* leaving only settings and defaults, and the new values will be loaded
|
* leaving only settings and defaults, and the new values will be loaded
|
||||||
* from the given file.
|
* from the given file.
|
||||||
* <p>
|
*
|
||||||
* <p>If the file cannot be loaded for any reason, an exception will be
|
* <p>If the file cannot be loaded for any reason, an exception will be
|
||||||
* thrown.
|
* thrown.
|
||||||
*
|
*
|
||||||
@ -91,7 +91,7 @@ public abstract class FileConfiguration extends MemoryConfiguration {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Loads this {@link FileConfiguration} from the specified reader.
|
* Loads this {@link FileConfiguration} from the specified reader.
|
||||||
* <p>
|
*
|
||||||
* <p>All the values contained within this configuration will be removed,
|
* <p>All the values contained within this configuration will be removed,
|
||||||
* leaving only settings and defaults, and the new values will be loaded
|
* leaving only settings and defaults, and the new values will be loaded
|
||||||
* from the given stream.
|
* from the given stream.
|
||||||
@ -122,11 +122,11 @@ public abstract class FileConfiguration extends MemoryConfiguration {
|
|||||||
/**
|
/**
|
||||||
* Loads this {@link FileConfiguration} from the specified string, as
|
* Loads this {@link FileConfiguration} from the specified string, as
|
||||||
* opposed to from file.
|
* opposed to from file.
|
||||||
* <p>
|
*
|
||||||
* <p>All the values contained within this configuration will be removed,
|
* <p>All the values contained within this configuration will be removed,
|
||||||
* leaving only settings and defaults, and the new values will be loaded
|
* leaving only settings and defaults, and the new values will be loaded
|
||||||
* from the given string.
|
* from the given string.
|
||||||
* <p>
|
*
|
||||||
* <p>If the string is invalid in any way, an exception will be thrown.
|
* <p>If the string is invalid in any way, an exception will be thrown.
|
||||||
*
|
*
|
||||||
* @param contents Contents of a Configuration to load.
|
* @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
|
* Compiles the header for this {@link FileConfiguration} and returns the
|
||||||
* result.
|
* result.
|
||||||
* <p>
|
*
|
||||||
* <p>This will use the header from {@link #options()} -> {@link
|
* <p>This will use the header from {@link #options()} -> {@link
|
||||||
* FileConfigurationOptions#header()}, respecting the rules of {@link
|
* FileConfigurationOptions#header()}, respecting the rules of {@link
|
||||||
* FileConfigurationOptions#copyHeader()} if set.
|
* FileConfigurationOptions#copyHeader()} if set.
|
||||||
|
@ -32,13 +32,13 @@ public class FileConfigurationOptions extends MemoryConfigurationOptions {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the header that will be applied to the top of the saved output.
|
* 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
|
* <p>This header will be commented out and applied directly at the top of
|
||||||
* the generated output of the {@link FileConfiguration}. It is not
|
* the generated output of the {@link FileConfiguration}. It is not
|
||||||
* required to include a newline at the end of the header as it will
|
* 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
|
* automatically be applied, but you may include one if you wish for extra
|
||||||
* spacing.
|
* spacing.
|
||||||
* <p>
|
*
|
||||||
* <p>{@code null} is a valid value which will indicate that no header]
|
* <p>{@code null} is a valid value which will indicate that no header]
|
||||||
* is to be applied. The default value is {@code null}.
|
* 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.
|
* 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
|
* <p>This header will be commented out and applied directly at the top of
|
||||||
* the generated output of the {@link FileConfiguration}. It is not
|
* the generated output of the {@link FileConfiguration}. It is not
|
||||||
* required to include a newline at the end of the header as it will
|
* 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
|
* automatically be applied, but you may include one if you wish for extra
|
||||||
* spacing.
|
* spacing.
|
||||||
* <p>
|
*
|
||||||
* <p>{@code null} is a valid value which will indicate that no header
|
* <p>{@code null} is a valid value which will indicate that no header
|
||||||
* is to be applied.
|
* 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.
|
* 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
|
* <p>If this is true, if a default {@link FileConfiguration} is passed to
|
||||||
* {@link FileConfiguration#setDefaults(Configuration)}
|
* {@link FileConfiguration#setDefaults(Configuration)}
|
||||||
* then upon saving it will use the header from that config, instead of
|
* then upon saving it will use the header from that config, instead of
|
||||||
* the one provided here.
|
* the one provided here.
|
||||||
* <p>
|
*
|
||||||
* <p>If no default is set on the configuration, or the default is not of
|
* <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()}
|
* type FileConfiguration, or that config has no header ({@link #header()}
|
||||||
* returns null) then the header specified in this configuration will be
|
* returns null) then the header specified in this configuration will be
|
||||||
* used.
|
* used.
|
||||||
* <p>
|
*
|
||||||
* <p>Defaults to true.
|
* <p>Defaults to true.
|
||||||
*
|
*
|
||||||
* @return Whether or not to copy the header
|
* @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.
|
* 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
|
* <p>If this is true, if a default {@link FileConfiguration} is passed to
|
||||||
* {@link FileConfiguration#setDefaults(Configuration)}
|
* {@link FileConfiguration#setDefaults(Configuration)}
|
||||||
* then upon saving it will use the header from that config, instead of
|
* then upon saving it will use the header from that config, instead of
|
||||||
* the one provided here.
|
* the one provided here.
|
||||||
* <p>
|
*
|
||||||
* <p>If no default is set on the configuration, or the default is not of
|
* <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()}
|
* type FileConfiguration, or that config has no header ({@link #header()}
|
||||||
* returns null) then the header specified in this configuration will be
|
* returns null) then the header specified in this configuration will be
|
||||||
* used.
|
* used.
|
||||||
* <p>
|
*
|
||||||
* <p>Defaults to true.
|
* <p>Defaults to true.
|
||||||
*
|
*
|
||||||
* @param value Whether or not to copy the header
|
* @param value Whether or not to copy the header
|
||||||
|
@ -28,11 +28,11 @@ public class YamlConfiguration extends FileConfiguration {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new {@link YamlConfiguration}, loading from the given file.
|
* Creates a new {@link YamlConfiguration}, loading from the given file.
|
||||||
* <p>
|
*
|
||||||
* <p>Any errors loading the Configuration will be logged and then ignored.
|
* <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
|
* If the specified input is not a valid config, a blank config will be
|
||||||
* returned.
|
* returned.
|
||||||
* <p>
|
*
|
||||||
* <p>The encoding used may follow the system dependent default.
|
* <p>The encoding used may follow the system dependent default.
|
||||||
*
|
*
|
||||||
* @param file Input file
|
* @param file Input file
|
||||||
|
@ -37,7 +37,7 @@ public class YamlConfigurationOptions extends FileConfigurationOptions {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets how much spaces should be used to indent each line.
|
* 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.
|
* <p>The minimum value this may be is 2, and the maximum is 9.
|
||||||
*
|
*
|
||||||
* @return How much to indent by
|
* @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.
|
* 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.
|
* <p>The minimum value this may be is 2, and the maximum is 9.
|
||||||
*
|
*
|
||||||
* @param value New indent
|
* @param value New indent
|
||||||
|
@ -24,7 +24,7 @@ public interface ConfigurationSerializable {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a Map representation of this class.
|
* Creates a Map representation of this class.
|
||||||
* <p>
|
*
|
||||||
* <p>This class must provide a method to restore this class, as defined in
|
* <p>This class must provide a method to restore this class, as defined in
|
||||||
* the {@link ConfigurationSerializable} interface javadoc.
|
* the {@link ConfigurationSerializable} interface javadoc.
|
||||||
*
|
*
|
||||||
|
@ -43,8 +43,8 @@ public class HTTP {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a JSONObject into an HTTP header. A request header must contain
|
* Convert a JSONObject into an HTTP header. A request header must contain
|
||||||
* <p>
|
*
|
||||||
* <p>
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* {
|
* {
|
||||||
* Method: "POST" (for example),
|
* Method: "POST" (for example),
|
||||||
@ -54,8 +54,8 @@ public class HTTP {
|
|||||||
* </pre>
|
* </pre>
|
||||||
* <p>
|
* <p>
|
||||||
* A response header must contain
|
* A response header must contain
|
||||||
* <p>
|
*
|
||||||
* <p>
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* {
|
* {
|
||||||
* "HTTP-Version": "HTTP/1.1" (for example),
|
* "HTTP-Version": "HTTP/1.1" (for example),
|
||||||
|
@ -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
|
* 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},
|
* these types: {@code Boolean}, {@code JSONArray}, {@code JSONObject}, {@code Number},
|
||||||
* {@code String}, or the {@code JSONObject.NULL object}.
|
* {@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>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
|
* <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
|
* {@code opt} method returns a default value instead of throwing an exception, and so is useful for obtaining
|
||||||
* optional values.
|
* optional values.
|
||||||
* <p>
|
*
|
||||||
* <p>The generic {@code get()} and {@code opt()} methods return an object which you can cast or query for type.
|
* <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.
|
* 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
|
* <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 ,} <small>(comma)</small> may appear
|
* more forgiving in the texts they will accept: <ul> <li>An extra {@code ,} <small>(comma)</small> may appear
|
||||||
* just before the closing bracket.</li> <li>The {@code null} value will be inserted when there is {@code ,}
|
* just before the closing bracket.</li> <li>The {@code null} value will be inserted when there is {@code ,}
|
||||||
|
@ -28,8 +28,8 @@ import java.util.Map.Entry;
|
|||||||
* as null.
|
* as null.
|
||||||
* <p>
|
* <p>
|
||||||
* The <code>put</code> methods add or replace values in an object. For example,
|
* The <code>put</code> methods add or replace values in an object. For example,
|
||||||
* <p>
|
*
|
||||||
* <p>
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* myString = new JSONObject().put("JSON", "Hello, World!").toString();
|
* myString = new JSONObject().put("JSON", "Hello, World!").toString();
|
||||||
* </pre>
|
* </pre>
|
||||||
|
@ -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
|
* 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
|
* 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,
|
* values. All of these methods return the JSONWriter instance, permitting cascade style. For example,
|
||||||
* <p>
|
*
|
||||||
* <p>
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* myString = new JSONStringer().object().key("JSON").value("Hello,
|
* myString = new JSONStringer().object().key("JSON").value("Hello,
|
||||||
* World!").endObject().toString();
|
* World!").endObject().toString();
|
||||||
* </pre>
|
* </pre>
|
||||||
* <p>
|
* <p>
|
||||||
* which produces the string
|
* which produces the string
|
||||||
* <p>
|
*
|
||||||
* <p>
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* {"JSON":"Hello, World!"}
|
* {"JSON":"Hello, World!"}
|
||||||
* </pre>
|
* </pre>
|
||||||
|
@ -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
|
* 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
|
* 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,
|
* values. All of these methods return the JSONWriter instance, permitting a cascade style. For example,
|
||||||
* <p>
|
*
|
||||||
* <p>
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* new JSONWriter(myWriter).object().key("JSON").value("Hello, World!").endObject();
|
* new JSONWriter(myWriter).object().key("JSON").value("Hello, World!").endObject();
|
||||||
* </pre>
|
* </pre>
|
||||||
* <p>
|
* <p>
|
||||||
* which writes
|
* which writes
|
||||||
* <p>
|
*
|
||||||
* <p>
|
*
|
||||||
* <pre>
|
* <pre>
|
||||||
* {"JSON":"Hello, World!"}
|
* {"JSON":"Hello, World!"}
|
||||||
* </pre>
|
* </pre>
|
||||||
|
@ -44,7 +44,7 @@ public interface IPlotMain extends ILogger {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Disable the implementation.
|
* Disable the implementation.
|
||||||
* <p>
|
*
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>If a full disable isn't feasibly, just disable what it can.
|
* <li>If a full disable isn't feasibly, just disable what it can.
|
||||||
* </ul>
|
* </ul>
|
||||||
|
@ -75,8 +75,7 @@ import java.util.zip.ZipInputStream;
|
|||||||
@Getter private Updater updater;
|
@Getter private Updater updater;
|
||||||
private PlotVersion version;
|
private PlotVersion version;
|
||||||
// Files and configuration
|
// Files and configuration
|
||||||
@Getter
|
@Getter private File jarFile = null; // This file
|
||||||
private File jarFile = null; // This file
|
|
||||||
private File storageFile;
|
private File storageFile;
|
||||||
@Getter private PlotAreaManager plotAreaManager;
|
@Getter private PlotAreaManager plotAreaManager;
|
||||||
|
|
||||||
@ -266,10 +265,12 @@ import java.util.zip.ZipInputStream;
|
|||||||
copyFile("automerge.js", Settings.Paths.SCRIPTS);
|
copyFile("automerge.js", Settings.Paths.SCRIPTS);
|
||||||
copyFile("town.template", Settings.Paths.TEMPLATES);
|
copyFile("town.template", Settings.Paths.TEMPLATES);
|
||||||
copyFile("skyblock.template", Settings.Paths.TEMPLATES);
|
copyFile("skyblock.template", Settings.Paths.TEMPLATES);
|
||||||
copyFile("german.yml", Settings.Paths.TRANSLATIONS);
|
copyFile("bridge.template", Settings.Paths.TEMPLATES);
|
||||||
copyFile("s_chinese_unescaped.yml", Settings.Paths.TRANSLATIONS);
|
copyFile("de-DE.yml", Settings.Paths.TRANSLATIONS);
|
||||||
copyFile("s_chinese.yml", Settings.Paths.TRANSLATIONS);
|
copyFile("es-ES.yml", Settings.Paths.TRANSLATIONS);
|
||||||
copyFile("italian.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();
|
showDebug();
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
@ -778,8 +779,12 @@ import java.util.zip.ZipInputStream;
|
|||||||
List<PlotArea> areas = Arrays.asList(plotAreaManager.getAllPlotAreas());
|
List<PlotArea> areas = Arrays.asList(plotAreaManager.getAllPlotAreas());
|
||||||
Collections.sort(areas, new Comparator<PlotArea>() {
|
Collections.sort(areas, new Comparator<PlotArea>() {
|
||||||
@Override public int compare(PlotArea a, PlotArea b) {
|
@Override public int compare(PlotArea a, PlotArea b) {
|
||||||
if (priorityArea != null && StringMan.isEqual(a.toString(), b.toString())) {
|
if (priorityArea != null) {
|
||||||
|
if (a.equals(priorityArea)) {
|
||||||
return -1;
|
return -1;
|
||||||
|
} else if (b.equals(priorityArea)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return a.hashCode() - b.hashCode();
|
return a.hashCode() - b.hashCode();
|
||||||
}
|
}
|
||||||
@ -1089,7 +1094,7 @@ import java.util.zip.ZipInputStream;
|
|||||||
* <li>Loads (and/or generates) the PlotArea configuration
|
* <li>Loads (and/or generates) the PlotArea configuration
|
||||||
* <li>Sets up the world border if configured
|
* <li>Sets up the world border if configured
|
||||||
* </ul>
|
* </ul>
|
||||||
* <p>
|
*
|
||||||
* <p>If loading an augmented plot world:
|
* <p>If loading an augmented plot world:
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>Creates the AugmentedPopulator classes
|
* <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 + "&aDetected world load for '" + world + "'");
|
||||||
PlotSquared.log(C.PREFIX + "&3 - generator: &7" + baseGenerator + ">" + plotGenerator);
|
PlotSquared.log(C.PREFIX + "&3 - generator: &7" + baseGenerator + ">" + plotGenerator);
|
||||||
PlotSquared.log(C.PREFIX + "&3 - plotworld: &7" + plotArea.getClass().getName());
|
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)) {
|
if (!this.worlds.contains(path)) {
|
||||||
this.worlds.createSection(path);
|
this.worlds.createSection(path);
|
||||||
worldSection = this.worlds.getConfigurationSection(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.
|
* Setup the configuration for a plot world based on world arguments.
|
||||||
* <p>
|
*
|
||||||
* <p>
|
*
|
||||||
* <i>e.g. /mv create <world> normal -g PlotSquared:<args></i>
|
* <i>e.g. /mv create <world> normal -g PlotSquared:<args></i>
|
||||||
*
|
*
|
||||||
* @param world The name of the world
|
* @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);
|
final PlotArea[] array = this.plotAreaManager.getPlotAreas(world, null);
|
||||||
if (array == null) {
|
if (array == null) {
|
||||||
return;
|
return;
|
||||||
@ -1925,9 +1932,10 @@ import java.util.zip.ZipInputStream;
|
|||||||
*
|
*
|
||||||
* @param alias to search plots
|
* @param alias to search plots
|
||||||
* @param worldname to filter alias to a specific world [optional] null means all worlds
|
* @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<>();
|
final Set<Plot> result = new HashSet<>();
|
||||||
if (alias != null) {
|
if (alias != null) {
|
||||||
for (final Plot plot : getPlots()) {
|
for (final Plot plot : getPlots()) {
|
||||||
|
@ -17,9 +17,8 @@ public class Updater {
|
|||||||
|
|
||||||
public String getChanges() {
|
public String getChanges() {
|
||||||
if (changes == null) {
|
if (changes == null) {
|
||||||
try (Scanner scanner = new Scanner(new URL(
|
try (Scanner scanner = new Scanner(new URL("http://empcraft.com/plots/cl?" + Integer
|
||||||
"http://empcraft.com/plots/cl?" + Integer.toHexString(PlotSquared.get().getVersion().hash))
|
.toHexString(PlotSquared.get().getVersion().hash)).openStream(), "UTF-8")) {
|
||||||
.openStream(), "UTF-8")) {
|
|
||||||
changes = scanner.useDelimiter("\\A").next();
|
changes = scanner.useDelimiter("\\A").next();
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
@ -16,7 +16,7 @@ import java.util.Iterator;
|
|||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
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 class Add extends Command {
|
||||||
|
|
||||||
public Add() {
|
public Add() {
|
||||||
|
@ -94,7 +94,8 @@ public class Alias extends SubCommand {
|
|||||||
return false;
|
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);
|
MainUtil.sendMessage(player, C.ALIAS_IS_TAKEN);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -81,8 +81,8 @@ public class Area extends SubCommand {
|
|||||||
final int offsetX = bx - (area.ROAD_WIDTH == 0 ? 0 : lower);
|
final int offsetX = bx - (area.ROAD_WIDTH == 0 ? 0 : lower);
|
||||||
final int offsetZ = bz - (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);
|
final RegionWrapper region = new RegionWrapper(bx, tx, bz, tz);
|
||||||
Set<PlotArea> areas = PlotSquared
|
Set<PlotArea> areas =
|
||||||
.get().getPlotAreas(area.worldname, region);
|
PlotSquared.get().getPlotAreas(area.worldname, region);
|
||||||
if (!areas.isEmpty()) {
|
if (!areas.isEmpty()) {
|
||||||
C.CLUSTER_INTERSECTION
|
C.CLUSTER_INTERSECTION
|
||||||
.send(player, areas.iterator().next().toString());
|
.send(player, areas.iterator().next().toString());
|
||||||
@ -104,10 +104,12 @@ public class Area extends SubCommand {
|
|||||||
Runnable run = new Runnable() {
|
Runnable run = new Runnable() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
if (offsetX != 0) {
|
if (offsetX != 0) {
|
||||||
PlotSquared.get().worlds.set(path + ".road.offset.x", offsetX);
|
PlotSquared.get().worlds
|
||||||
|
.set(path + ".road.offset.x", offsetX);
|
||||||
}
|
}
|
||||||
if (offsetZ != 0) {
|
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);
|
final String world = SetupUtils.manager.setupWorld(object);
|
||||||
if (WorldUtil.IMP.isWorld(world)) {
|
if (WorldUtil.IMP.isWorld(world)) {
|
||||||
@ -458,8 +460,8 @@ public class Area extends SubCommand {
|
|||||||
case "remove":
|
case "remove":
|
||||||
MainUtil.sendMessage(player,
|
MainUtil.sendMessage(player,
|
||||||
"$1World creation settings may be stored in multiple locations:"
|
"$1World creation settings may be stored in multiple locations:"
|
||||||
+ "\n$3 - $2Bukkit bukkit.yml" + "\n$3 - $2" + PlotSquared.imp().getPluginName()
|
+ "\n$3 - $2Bukkit bukkit.yml" + "\n$3 - $2" + PlotSquared.imp()
|
||||||
+ " settings.yml"
|
.getPluginName() + " settings.yml"
|
||||||
+ "\n$3 - $2Multiverse worlds.yml (or any world management plugin)"
|
+ "\n$3 - $2Multiverse worlds.yml (or any world management plugin)"
|
||||||
+ "\n$1Stop the server and delete it from these locations.");
|
+ "\n$1Stop the server and delete it from these locations.");
|
||||||
return true;
|
return true;
|
||||||
|
@ -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.Permissions;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.block.GlobalBlockQueue;
|
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 {
|
public class Clear extends Command {
|
||||||
|
|
||||||
// Note: To clear a specific plot use /plot <plot> clear
|
// Note: To clear a specific plot use /plot <plot> clear
|
||||||
|
@ -103,7 +103,8 @@ public class Database extends SubCommand {
|
|||||||
if (newPlot != null) {
|
if (newPlot != null) {
|
||||||
PlotId newId = newPlot.getId();
|
PlotId newId = newPlot.getId();
|
||||||
PlotId id = plot.getId();
|
PlotId id = plot.getId();
|
||||||
File worldFile = new File(PlotSquared.imp().getWorldContainer(),
|
File worldFile =
|
||||||
|
new File(PlotSquared.imp().getWorldContainer(),
|
||||||
id.toCommaSeparatedString());
|
id.toCommaSeparatedString());
|
||||||
if (worldFile.exists()) {
|
if (worldFile.exists()) {
|
||||||
File newFile =
|
File newFile =
|
||||||
@ -127,7 +128,8 @@ public class Database extends SubCommand {
|
|||||||
plots.add(plot);
|
plots.add(plot);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
HashMap<PlotId, Plot> plotmap = PlotSquared.get().plots_tmp.get(areaname);
|
HashMap<PlotId, Plot> plotmap =
|
||||||
|
PlotSquared.get().plots_tmp.get(areaname);
|
||||||
if (plotmap == null) {
|
if (plotmap == null) {
|
||||||
plotmap = new HashMap<>();
|
plotmap = new HashMap<>();
|
||||||
PlotSquared.get().plots_tmp.put(areaname, plotmap);
|
PlotSquared.get().plots_tmp.put(areaname, plotmap);
|
||||||
|
@ -25,8 +25,8 @@ public class Debug extends SubCommand {
|
|||||||
String section = C.DEBUG_SECTION.s();
|
String section = C.DEBUG_SECTION.s();
|
||||||
information.append(header);
|
information.append(header);
|
||||||
information.append(getSection(section, "PlotArea"));
|
information.append(getSection(section, "PlotArea"));
|
||||||
information
|
information.append(
|
||||||
.append(getLine(line, "Plot Worlds", StringMan.join(PlotSquared.get().getPlotAreas(), ", ")));
|
getLine(line, "Plot Worlds", StringMan.join(PlotSquared.get().getPlotAreas(), ", ")));
|
||||||
information.append(getLine(line, "Owned Plots", PlotSquared.get().getPlots().size()));
|
information.append(getLine(line, "Owned Plots", PlotSquared.get().getPlots().size()));
|
||||||
information.append(getSection(section, "Messages"));
|
information.append(getSection(section, "Messages"));
|
||||||
information.append(getLine(line, "Total Messages", C.values().length));
|
information.append(getLine(line, "Total Messages", C.values().length));
|
||||||
|
@ -37,8 +37,9 @@ import java.util.*;
|
|||||||
if (file.exists()) {
|
if (file.exists()) {
|
||||||
init();
|
init();
|
||||||
String script = StringMan.join(Files.readLines(new File(new File(
|
String script = StringMan.join(Files.readLines(new File(new File(
|
||||||
PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS),
|
PlotSquared.get().IMP.getDirectory() + File.separator
|
||||||
"start.js"), StandardCharsets.UTF_8), System.getProperty("line.separator"));
|
+ Settings.Paths.SCRIPTS), "start.js"), StandardCharsets.UTF_8),
|
||||||
|
System.getProperty("line.separator"));
|
||||||
this.scope.put("THIS", this);
|
this.scope.put("THIS", this);
|
||||||
this.scope.put("PlotPlayer", ConsolePlayer.getConsole());
|
this.scope.put("PlotPlayer", ConsolePlayer.getConsole());
|
||||||
this.engine.eval(script, this.scope);
|
this.engine.eval(script, this.scope);
|
||||||
@ -261,8 +262,8 @@ import java.util.*;
|
|||||||
case "addcmd":
|
case "addcmd":
|
||||||
try {
|
try {
|
||||||
final String cmd = StringMan.join(Files.readLines(MainUtil.getFile(new File(
|
final String cmd = StringMan.join(Files.readLines(MainUtil.getFile(new File(
|
||||||
PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS),
|
PlotSquared.get().IMP.getDirectory() + File.separator
|
||||||
args[1]), StandardCharsets.UTF_8),
|
+ Settings.Paths.SCRIPTS), args[1]), StandardCharsets.UTF_8),
|
||||||
System.getProperty("line.separator"));
|
System.getProperty("line.separator"));
|
||||||
new Command(MainCommand.getInstance(), true, args[1].split("\\.")[0], null,
|
new Command(MainCommand.getInstance(), true, args[1].split("\\.")[0], null,
|
||||||
RequiredType.NONE, CommandCategory.DEBUG) {
|
RequiredType.NONE, CommandCategory.DEBUG) {
|
||||||
@ -291,8 +292,8 @@ import java.util.*;
|
|||||||
case "run":
|
case "run":
|
||||||
try {
|
try {
|
||||||
script = StringMan.join(Files.readLines(MainUtil.getFile(new File(
|
script = StringMan.join(Files.readLines(MainUtil.getFile(new File(
|
||||||
PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS),
|
PlotSquared.get().IMP.getDirectory() + File.separator
|
||||||
args[1]), StandardCharsets.UTF_8),
|
+ Settings.Paths.SCRIPTS), args[1]), StandardCharsets.UTF_8),
|
||||||
System.getProperty("line.separator"));
|
System.getProperty("line.separator"));
|
||||||
if (args.length > 2) {
|
if (args.length > 2) {
|
||||||
HashMap<String, String> replacements = new HashMap<>();
|
HashMap<String, String> replacements = new HashMap<>();
|
||||||
@ -307,8 +308,8 @@ import java.util.*;
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "list-scripts":
|
case "list-scripts":
|
||||||
String path =
|
String path = PlotSquared.get().IMP.getDirectory() + File.separator
|
||||||
PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS;
|
+ Settings.Paths.SCRIPTS;
|
||||||
File folder = new File(path);
|
File folder = new File(path);
|
||||||
File[] filesArray = folder.listFiles();
|
File[] filesArray = folder.listFiles();
|
||||||
|
|
||||||
@ -411,13 +412,15 @@ import java.util.*;
|
|||||||
} catch (ScriptException e) {
|
} catch (ScriptException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
PlotSquared.log("> " + (System.currentTimeMillis() - start) + "ms -> " + result);
|
PlotSquared.log(
|
||||||
|
"> " + (System.currentTimeMillis() - start) + "ms -> " + result);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
Object result = this.engine.eval(script, this.scope);
|
Object result = this.engine.eval(script, this.scope);
|
||||||
PlotSquared.log("> " + (System.currentTimeMillis() - start) + "ms -> " + result);
|
PlotSquared
|
||||||
|
.log("> " + (System.currentTimeMillis() - start) + "ms -> " + result);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
} catch (ScriptException e) {
|
} catch (ScriptException e) {
|
||||||
|
@ -25,8 +25,9 @@ public class DebugPaste extends SubCommand {
|
|||||||
String commandsYML = HastebinUtility.upload(PlotSquared.get().commandsFile);
|
String commandsYML = HastebinUtility.upload(PlotSquared.get().commandsFile);
|
||||||
String latestLOG;
|
String latestLOG;
|
||||||
try {
|
try {
|
||||||
latestLOG = HastebinUtility
|
latestLOG = HastebinUtility.upload(
|
||||||
.upload(new File(PlotSquared.get().IMP.getDirectory(), "../../logs/latest.log"));
|
new File(PlotSquared.get().IMP.getDirectory(),
|
||||||
|
"../../logs/latest.log"));
|
||||||
} catch (IOException ignored) {
|
} catch (IOException ignored) {
|
||||||
MainUtil.sendMessage(player,
|
MainUtil.sendMessage(player,
|
||||||
"&clatest.log is too big to be pasted, will ignore");
|
"&clatest.log is too big to be pasted, will ignore");
|
||||||
|
@ -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.object.*;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.*;
|
import com.github.intellectualsites.plotsquared.plot.util.*;
|
||||||
|
|
||||||
@CommandDeclaration(command = "delete", permission = "plots.delete", description = "Delete a plot", usage = "/plot delete", aliases = {
|
|
||||||
"dispose", "del",
|
@CommandDeclaration(command = "delete", permission = "plots.delete", description = "Delete the plot you stand on", usage = "/plot delete", aliases = {
|
||||||
"reset"}, category = CommandCategory.CLAIMING, requiredType = RequiredType.NONE, confirmation = true)
|
"dispose",
|
||||||
|
"del"}, category = CommandCategory.CLAIMING, requiredType = RequiredType.NONE, confirmation = true)
|
||||||
public class Delete extends SubCommand {
|
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) {
|
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
||||||
|
|
||||||
Location loc = player.getLocation();
|
Location loc = player.getLocation();
|
||||||
|
@ -18,7 +18,7 @@ import java.util.Set;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@CommandDeclaration(command = "kick", aliases = {
|
@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 class Kick extends SubCommand {
|
||||||
|
|
||||||
public Kick() {
|
public Kick() {
|
||||||
@ -75,8 +75,8 @@ public class Kick extends SubCommand {
|
|||||||
Location spawn = WorldUtil.IMP.getSpawn(location.getWorld());
|
Location spawn = WorldUtil.IMP.getSpawn(location.getWorld());
|
||||||
C.YOU_GOT_KICKED.send(player2);
|
C.YOU_GOT_KICKED.send(player2);
|
||||||
if (plot.equals(spawn.getPlot())) {
|
if (plot.equals(spawn.getPlot())) {
|
||||||
Location newSpawn =
|
Location newSpawn = WorldUtil.IMP
|
||||||
WorldUtil.IMP.getSpawn(PlotSquared.get().getPlotAreaManager().getAllWorlds()[0]);
|
.getSpawn(PlotSquared.get().getPlotAreaManager().getAllWorlds()[0]);
|
||||||
if (plot.equals(newSpawn.getPlot())) {
|
if (plot.equals(newSpawn.getPlot())) {
|
||||||
// Kick from server if you can't be teleported to spawn
|
// Kick from server if you can't be teleported to spawn
|
||||||
player2.kick(C.YOU_GOT_KICKED.s());
|
player2.kick(C.YOU_GOT_KICKED.s());
|
||||||
|
@ -15,7 +15,7 @@ import java.net.URL;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@CommandDeclaration(command = "load", aliases = {
|
@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 {
|
public class Load extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
||||||
@ -70,7 +70,8 @@ public class Load extends SubCommand {
|
|||||||
MainUtil.sendMessage(player, C.GENERATING_COMPONENT);
|
MainUtil.sendMessage(player, C.GENERATING_COMPONENT);
|
||||||
TaskManager.runTaskAsync(new Runnable() {
|
TaskManager.runTaskAsync(new Runnable() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
SchematicHandler.Schematic schematic = SchematicHandler.manager.getSchematic(url);
|
SchematicHandler.Schematic schematic =
|
||||||
|
SchematicHandler.manager.getSchematic(url);
|
||||||
if (schematic == null) {
|
if (schematic == null) {
|
||||||
plot.removeRunning();
|
plot.removeRunning();
|
||||||
sendMessage(player, C.SCHEMATIC_INVALID,
|
sendMessage(player, C.SCHEMATIC_INVALID,
|
||||||
|
@ -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.object.*;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.WorldUtil;
|
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 {
|
public class Music extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(PlotPlayer player, String[] args) {
|
@Override public boolean onCommand(PlotPlayer player, String[] args) {
|
||||||
|
@ -73,14 +73,17 @@ public class Owner extends SetCommand {
|
|||||||
final boolean removeDenied = plot.isDenied(finalUUID);
|
final boolean removeDenied = plot.isDenied(finalUUID);
|
||||||
Runnable run = new Runnable() {
|
Runnable run = new Runnable() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
|
if (plot.setOwner(finalUUID, player)) {
|
||||||
if (removeDenied)
|
if (removeDenied)
|
||||||
plot.removeDenied(finalUUID);
|
plot.removeDenied(finalUUID);
|
||||||
plot.setOwner(finalUUID);
|
|
||||||
plot.setSign(finalName);
|
plot.setSign(finalName);
|
||||||
MainUtil.sendMessage(player, C.SET_OWNER);
|
MainUtil.sendMessage(player, C.SET_OWNER);
|
||||||
if (other != null) {
|
if (other != null) {
|
||||||
MainUtil.sendMessage(other, C.NOW_OWNER, plot.getArea() + ";" + plot.getId());
|
MainUtil
|
||||||
|
.sendMessage(other, C.NOW_OWNER, plot.getArea() + ";" + plot.getId());
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
MainUtil.sendMessage(player, C.SET_OWNER_CANCELLED);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
if (hasConfirmation(player)) {
|
if (hasConfirmation(player)) {
|
||||||
|
@ -8,14 +8,14 @@ import com.github.intellectualsites.plotsquared.plot.util.HttpUtil;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
|
import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.TaskManager;
|
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 {
|
public class PluginCmd extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
@Override public boolean onCommand(final PlotPlayer player, String[] args) {
|
||||||
TaskManager.IMP.taskAsync(new Runnable() {
|
TaskManager.IMP.taskAsync(new Runnable() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
MainUtil.sendMessage(player, String
|
MainUtil.sendMessage(player, String.format(
|
||||||
.format("$2>> $1&l" + PlotSquared.imp().getPluginName() + " $2($1Version$2: $1%s$2)",
|
"$2>> $1&l" + PlotSquared.imp().getPluginName() + " $2($1Version$2: $1%s$2)",
|
||||||
PlotSquared.get().getVersion()));
|
PlotSquared.get().getVersion()));
|
||||||
MainUtil.sendMessage(player,
|
MainUtil.sendMessage(player,
|
||||||
"$2>> $1&lAuthors$2: $1Citymonstret $2& $1Empire92 $2& $1MattBDev");
|
"$2>> $1&lAuthors$2: $1Citymonstret $2& $1Empire92 $2& $1MattBDev");
|
||||||
|
@ -110,7 +110,8 @@ public class Purge extends SubCommand {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (PlotSquared.get().plots_tmp != null) {
|
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();
|
String worldName = entry.getKey();
|
||||||
if (world != null && !world.equalsIgnoreCase(worldName)) {
|
if (world != null && !world.equalsIgnoreCase(worldName)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -102,9 +102,12 @@ public class Rate extends SubCommand {
|
|||||||
int rV = rating.getValue();
|
int rV = rating.getValue();
|
||||||
Rating result =
|
Rating result =
|
||||||
EventUtil.manager.callRating(this.player, plot, new Rating(rV));
|
EventUtil.manager.callRating(this.player, plot, new Rating(rV));
|
||||||
|
if (result != null) {
|
||||||
plot.addRating(this.player.getUUID(), result);
|
plot.addRating(this.player.getUUID(), result);
|
||||||
sendMessage(this.player, C.RATING_APPLIED, plot.getId().toString());
|
sendMessage(this.player, C.RATING_APPLIED,
|
||||||
if (Permissions.hasPermission(this.player, C.PERMISSION_COMMENT)) {
|
plot.getId().toString());
|
||||||
|
if (Permissions
|
||||||
|
.hasPermission(this.player, C.PERMISSION_COMMENT)) {
|
||||||
Command command =
|
Command command =
|
||||||
MainCommand.getInstance().getCommand(Comment.class);
|
MainCommand.getInstance().getCommand(Comment.class);
|
||||||
if (command != null) {
|
if (command != null) {
|
||||||
@ -112,6 +115,7 @@ public class Rate extends SubCommand {
|
|||||||
command.getUsage());
|
command.getUsage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
setTitle(Settings.Ratings.CATEGORIES.get(index.getValue()));
|
setTitle(Settings.Ratings.CATEGORIES.get(index.getValue()));
|
||||||
@ -169,9 +173,11 @@ public class Rate extends SubCommand {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Rating result = EventUtil.manager.callRating(player, plot, new Rating(rating));
|
Rating result = EventUtil.manager.callRating(player, plot, new Rating(rating));
|
||||||
|
if (result != null) {
|
||||||
plot.addRating(uuid, result);
|
plot.addRating(uuid, result);
|
||||||
sendMessage(player, C.RATING_APPLIED, plot.getId().toString());
|
sendMessage(player, C.RATING_APPLIED, plot.getId().toString());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
if (plot.getSettings().ratings == null) {
|
if (plot.getSettings().ratings == null) {
|
||||||
if (!Settings.Enabled_Components.RATING_CACHE) {
|
if (!Settings.Enabled_Components.RATING_CACHE) {
|
||||||
|
@ -9,7 +9,7 @@ import com.github.intellectualsites.plotsquared.plot.util.block.LocalBlockQueue;
|
|||||||
|
|
||||||
import java.util.HashSet;
|
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 class Relight extends Command {
|
||||||
public Relight() {
|
public Relight() {
|
||||||
super(MainCommand.getInstance(), true);
|
super(MainCommand.getInstance(), true);
|
||||||
|
@ -14,7 +14,7 @@ import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Objects;
|
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 {
|
public class Reload extends SubCommand {
|
||||||
|
|
||||||
@Override public boolean onCommand(PlotPlayer player, String[] args) {
|
@Override public boolean onCommand(PlotPlayer player, String[] args) {
|
||||||
@ -25,8 +25,8 @@ public class Reload extends SubCommand {
|
|||||||
C.load(PlotSquared.get().translationFile);
|
C.load(PlotSquared.get().translationFile);
|
||||||
PlotSquared.get().foreachPlotArea(new RunnableVal<PlotArea>() {
|
PlotSquared.get().foreachPlotArea(new RunnableVal<PlotArea>() {
|
||||||
@Override public void run(PlotArea area) {
|
@Override public void run(PlotArea area) {
|
||||||
ConfigurationSection worldSection =
|
ConfigurationSection worldSection = PlotSquared.get().worlds
|
||||||
PlotSquared.get().worlds.getConfigurationSection("worlds." + area.worldname);
|
.getConfigurationSection("worlds." + area.worldname);
|
||||||
if (worldSection == null) {
|
if (worldSection == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@ import java.util.Collection;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@CommandDeclaration(command = "schematic", permission = "plots.schematic", description = "Schematic command", aliases = {
|
@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 {
|
public class SchematicCmd extends SubCommand {
|
||||||
|
|
||||||
private boolean running = false;
|
private boolean running = false;
|
||||||
|
@ -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.object.PlotPlayer;
|
||||||
import com.github.intellectualsites.plotsquared.plot.util.MainUtil;
|
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)
|
"sh", "seth"}, category = CommandCategory.SETTINGS, requiredType = RequiredType.NONE)
|
||||||
public class SetHome extends SetCommand {
|
public class SetHome extends SetCommand {
|
||||||
|
|
||||||
@Override public boolean set(PlotPlayer player, Plot plot, String value) {
|
@Override public boolean set(PlotPlayer player, Plot plot, String value) {
|
||||||
switch (value.toLowerCase()) {
|
switch (value.toLowerCase()) {
|
||||||
case "unset":
|
case "unset":
|
||||||
|
case "reset":
|
||||||
case "remove":
|
case "remove":
|
||||||
case "none": {
|
case "none": {
|
||||||
Plot base = plot.getBasePlot(false);
|
Plot base = plot.getBasePlot(false);
|
||||||
|
@ -74,7 +74,8 @@ import java.util.Map.Entry;
|
|||||||
MainUtil.sendMessage(player,
|
MainUtil.sendMessage(player,
|
||||||
"&cYou must choose a generator!" + prefix + StringMan
|
"&cYou must choose a generator!" + prefix + StringMan
|
||||||
.join(SetupUtils.generators.keySet(), prefix)
|
.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);
|
sendMessage(player, C.SETUP_INIT);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,8 @@ public class Template extends SubCommand {
|
|||||||
|
|
||||||
public static boolean extractAllFiles(String world, String template) {
|
public static boolean extractAllFiles(String world, String template) {
|
||||||
try {
|
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()) {
|
if (!folder.exists()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -84,7 +85,8 @@ public class Template extends SubCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void zipAll(String world, Set<FileBytes> files) throws IOException {
|
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();
|
output.mkdirs();
|
||||||
try (FileOutputStream fos = new FileOutputStream(
|
try (FileOutputStream fos = new FileOutputStream(
|
||||||
output + File.separator + world + ".template");
|
output + File.separator + world + ".template");
|
||||||
|
@ -17,7 +17,7 @@ import java.util.Set;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@CommandDeclaration(command = "trust", aliases = {
|
@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 class Trust extends Command {
|
||||||
|
|
||||||
public Trust() {
|
public Trust() {
|
||||||
|
@ -106,8 +106,8 @@ import java.util.*;
|
|||||||
}
|
}
|
||||||
List<Plot> plots;
|
List<Plot> plots;
|
||||||
if (shouldSortByArea) {
|
if (shouldSortByArea) {
|
||||||
plots = PlotSquared
|
plots = PlotSquared.get()
|
||||||
.get().sortPlots(unsorted, PlotSquared.SortType.CREATION_DATE, sortByArea);
|
.sortPlots(unsorted, PlotSquared.SortType.CREATION_DATE, sortByArea);
|
||||||
} else {
|
} else {
|
||||||
plots = PlotSquared.get().sortPlotsByTemp(unsorted);
|
plots = PlotSquared.get().sortPlotsByTemp(unsorted);
|
||||||
}
|
}
|
||||||
|
@ -342,11 +342,13 @@ public enum C {
|
|||||||
"Schematics"), SCHEMATIC_INVALID("$2That is not a valid schematic. Reason: $2%s",
|
"Schematics"), SCHEMATIC_INVALID("$2That is not a valid schematic. Reason: $2%s",
|
||||||
"Schematics"), SCHEMATIC_VALID("$2That is a valid schematic",
|
"Schematics"), SCHEMATIC_VALID("$2That is a valid schematic",
|
||||||
"Schematics"), SCHEMATIC_PASTE_FAILED("$2Failed to paste the 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 Stuff
|
||||||
*/
|
*/
|
||||||
TITLE_ENTERED_PLOT("$1Plot: %world%;%x%;%z%", "Titles"), TITLE_ENTERED_PLOT_SUB("$4Owned by %s",
|
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
|
* Core Stuff
|
||||||
*/
|
*/
|
||||||
TASK_START("Starting task...", "Core"), PREFIX("$3[$1P2$3] $2", "Core"), ENABLED(
|
TASK_START("Starting task...", "Core"), PREFIX("$3[$1P2$3] $2", "Core"), ENABLED(
|
||||||
@ -418,8 +420,8 @@ public enum C {
|
|||||||
* Player not found
|
* Player not found
|
||||||
*/
|
*/
|
||||||
INVALID_PLAYER_WAIT("$2Player not found: $1%s$2, fetching it. Try again soon.",
|
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("$2Player not found: $1%s$2.", "Errors"), INVALID_PLAYER_OFFLINE(
|
||||||
"Errors"), INVALID_PLAYER_OFFLINE("$2The player must be online: $1%s.", "Errors"), /*
|
"$2The player must be online: $1%s.", "Errors"), /*
|
||||||
* Command flag
|
* Command flag
|
||||||
*/
|
*/
|
||||||
INVALID_COMMAND_FLAG("$2Invalid command flag: %s0", "Errors"), /*
|
INVALID_COMMAND_FLAG("$2Invalid command flag: %s0", "Errors"), /*
|
||||||
@ -591,7 +593,8 @@ public enum C {
|
|||||||
TRUSTED_ADDED("$4You successfully trusted a user to the plot", "Trusted"), TRUSTED_REMOVED(
|
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(
|
"$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(
|
"$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
|
* Member
|
||||||
*/
|
*/
|
||||||
REMOVED_PLAYERS("$2Removed %s players from this plot.", "Member"), ALREADY_OWNER(
|
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"), /*
|
"$2You are not allowed to add any more players to this plot", "Member"), /*
|
||||||
* Set Owner
|
* Set Owner
|
||||||
*/
|
*/
|
||||||
SET_OWNER("$4You successfully set the plot owner", "Owner"), NOW_OWNER(
|
SET_OWNER("$4You successfully set the plot owner", "Owner"), SET_OWNER_CANCELLED(
|
||||||
"$4You are now owner of plot %s", "Owner"), /*
|
"$2The setowner action was cancelled", "Owner"), NOW_OWNER("$4You are now owner of plot %s",
|
||||||
|
"Owner"), /*
|
||||||
* Signs
|
* Signs
|
||||||
*/
|
*/
|
||||||
OWNER_SIGN_LINE_1("$1ID: $1%id%", "Signs"), OWNER_SIGN_LINE_2("$1Owner:",
|
OWNER_SIGN_LINE_1("$1ID: $1%id%", "Signs"), OWNER_SIGN_LINE_2("$1Owner:",
|
||||||
|
@ -68,8 +68,8 @@ public class Config {
|
|||||||
field.set(instance, value);
|
field.set(instance, value);
|
||||||
return;
|
return;
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug("Invalid configuration value: " + key + ": " + value + " in " + root
|
"Invalid configuration value: " + key + ": " + value + " in " + root
|
||||||
.getSimpleName());
|
.getSimpleName());
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -262,7 +262,8 @@ public class Config {
|
|||||||
setAccessible(field);
|
setAccessible(field);
|
||||||
return field;
|
return field;
|
||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
PlotSquared.debug("Invalid config field: " + StringMan.join(split, ".") + " for " + toNodeName(
|
PlotSquared.debug(
|
||||||
|
"Invalid config field: " + StringMan.join(split, ".") + " for " + toNodeName(
|
||||||
instance.getClass().getSimpleName()));
|
instance.getClass().getSimpleName()));
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -87,7 +87,7 @@ public class Configuration {
|
|||||||
};
|
};
|
||||||
public static final SettingValue<PlotBlock> BLOCK = new SettingValue<PlotBlock>("BLOCK") {
|
public static final SettingValue<PlotBlock> BLOCK = new SettingValue<PlotBlock>("BLOCK") {
|
||||||
@Override public boolean validateValue(String string) {
|
@Override public boolean validateValue(String string) {
|
||||||
StringComparison.ComparisonResult value =
|
StringComparison<PlotBlock>.ComparisonResult value =
|
||||||
WorldUtil.IMP.getClosestBlock(string);
|
WorldUtil.IMP.getClosestBlock(string);
|
||||||
return !(value == null || value.match > 1);
|
return !(value == null || value.match > 1);
|
||||||
}
|
}
|
||||||
|
@ -14,9 +14,11 @@ public class Settings extends Config {
|
|||||||
NOTE: Fields are saved in declaration order, classes in reverse order
|
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
|
@Final // Indicates that this value isn't configurable
|
||||||
public static final String ISSUES = "https://github.com/IntellectualSites/PlotSquared/issues";
|
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 =
|
@Final public static final String WIKI =
|
||||||
"https://github.com/IntellectualSites/PlotSquared/wiki";
|
"https://github.com/IntellectualSites/PlotSquared/wiki";
|
||||||
@Final public static String DATE; // These values are set from P2 before loading
|
@Final public static String DATE; // These values are set from P2 before loading
|
||||||
|
@ -320,7 +320,7 @@ public interface AbstractDB {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Replace a old uuid with a new one in the database.
|
* Replace a old uuid with a new one in the database.
|
||||||
* <p>
|
*
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li> Useful for replacing a few uuids (not the entire database).</li>
|
* <li> Useful for replacing a few uuids (not the entire database).</li>
|
||||||
* <li>or entire conversion, the uuidconvert command scales better.</li>
|
* <li>or entire conversion, the uuidconvert command scales better.</li>
|
||||||
|
@ -754,7 +754,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
last = subList.size();
|
last = subList.size();
|
||||||
preparedStmt.addBatch();
|
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.executeBatch();
|
||||||
preparedStmt.clearParameters();
|
preparedStmt.clearParameters();
|
||||||
preparedStmt.close();
|
preparedStmt.close();
|
||||||
@ -797,7 +798,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
last = subList.size();
|
last = subList.size();
|
||||||
preparedStmt.addBatch();
|
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.executeBatch();
|
||||||
preparedStmt.clearParameters();
|
preparedStmt.clearParameters();
|
||||||
preparedStmt.close();
|
preparedStmt.close();
|
||||||
@ -1693,7 +1695,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
if (Settings.Enabled_Components.DATABASE_PURGER) {
|
if (Settings.Enabled_Components.DATABASE_PURGER) {
|
||||||
toDelete.add(last.temp);
|
toDelete.add(last.temp);
|
||||||
} else {
|
} else {
|
||||||
PlotSquared.debug("&cPLOT #" + id + "(" + last + ") in `" + this.prefix
|
PlotSquared.debug(
|
||||||
|
"&cPLOT #" + id + "(" + last + ") in `" + this.prefix
|
||||||
+ "plot` is a duplicate. Delete this plot or set `database-purger: true` in the settings.yml.");
|
+ "plot` is a duplicate. Delete this plot or set `database-purger: true` in the settings.yml.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2378,7 +2381,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} 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();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
@ -2970,7 +2974,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
}
|
}
|
||||||
// owner
|
// owner
|
||||||
if (!plot.owner.equals(dataPlot.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);
|
setOwner(plot, plot.owner);
|
||||||
}
|
}
|
||||||
// trusted
|
// trusted
|
||||||
@ -2979,7 +2984,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
HashSet<UUID> toRemove = (HashSet<UUID>) dataPlot.getTrusted().clone();
|
HashSet<UUID> toRemove = (HashSet<UUID>) dataPlot.getTrusted().clone();
|
||||||
toRemove.removeAll(plot.getTrusted());
|
toRemove.removeAll(plot.getTrusted());
|
||||||
toAdd.removeAll(dataPlot.getTrusted());
|
toAdd.removeAll(dataPlot.getTrusted());
|
||||||
PlotSquared.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " trusted for: "
|
PlotSquared.debug(
|
||||||
|
"&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " trusted for: "
|
||||||
+ plot);
|
+ plot);
|
||||||
if (!toRemove.isEmpty()) {
|
if (!toRemove.isEmpty()) {
|
||||||
for (UUID uuid : toRemove) {
|
for (UUID uuid : toRemove) {
|
||||||
@ -2997,7 +3003,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
HashSet<UUID> toRemove = (HashSet<UUID>) dataPlot.getMembers().clone();
|
HashSet<UUID> toRemove = (HashSet<UUID>) dataPlot.getMembers().clone();
|
||||||
toRemove.removeAll(plot.getMembers());
|
toRemove.removeAll(plot.getMembers());
|
||||||
toAdd.removeAll(dataPlot.getMembers());
|
toAdd.removeAll(dataPlot.getMembers());
|
||||||
PlotSquared.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " members for: "
|
PlotSquared.debug(
|
||||||
|
"&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " members for: "
|
||||||
+ plot);
|
+ plot);
|
||||||
if (!toRemove.isEmpty()) {
|
if (!toRemove.isEmpty()) {
|
||||||
for (UUID uuid : toRemove) {
|
for (UUID uuid : toRemove) {
|
||||||
@ -3015,7 +3022,8 @@ import java.util.concurrent.atomic.AtomicInteger;
|
|||||||
HashSet<UUID> toRemove = (HashSet<UUID>) dataPlot.getDenied().clone();
|
HashSet<UUID> toRemove = (HashSet<UUID>) dataPlot.getDenied().clone();
|
||||||
toRemove.removeAll(plot.getDenied());
|
toRemove.removeAll(plot.getDenied());
|
||||||
toAdd.removeAll(dataPlot.getDenied());
|
toAdd.removeAll(dataPlot.getDenied());
|
||||||
PlotSquared.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " denied for: "
|
PlotSquared.debug(
|
||||||
|
"&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " denied for: "
|
||||||
+ plot);
|
+ plot);
|
||||||
if (!toRemove.isEmpty()) {
|
if (!toRemove.isEmpty()) {
|
||||||
for (UUID uuid : toRemove) {
|
for (UUID uuid : toRemove) {
|
||||||
|
@ -117,7 +117,8 @@ public class FlagManager {
|
|||||||
.replaceAll(",", "´"));
|
.replaceAll(",", "´"));
|
||||||
i++;
|
i++;
|
||||||
} catch (Exception e) {
|
} 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();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -136,7 +136,8 @@ public final class Flags {
|
|||||||
}
|
}
|
||||||
Flag flag = (Flag) fieldValue;
|
Flag flag = (Flag) fieldValue;
|
||||||
if (!flag.getName().equals(fieldName)) {
|
if (!flag.getName().equals(fieldName)) {
|
||||||
PlotSquared.debug(Flags.class + "Field doesn't match: " + fieldName + " != " + flag
|
PlotSquared.debug(
|
||||||
|
Flags.class + "Field doesn't match: " + fieldName + " != " + flag
|
||||||
.getName());
|
.getName());
|
||||||
}
|
}
|
||||||
flags.put(flag.getName(), flag);
|
flags.put(flag.getName(), flag);
|
||||||
|
@ -35,6 +35,6 @@ public class GameModeFlag extends Flag<PlotGameMode> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public String getValueDescription() {
|
@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'";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -26,6 +26,6 @@ public class IntegerListFlag extends ListFlag<List<Integer>> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public String getValueDescription() {
|
@Override public String getValueDescription() {
|
||||||
return "Flag value must be a integer list";
|
return "Flag value must be an integer list";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,6 @@ public class PlotWeatherFlag extends Flag<PlotWeather> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override public String getValueDescription() {
|
@Override public String getValueDescription() {
|
||||||
return "";
|
return "Flag must be a weather: 'rain' or 'sun'";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -42,7 +42,8 @@ public class HybridPlotManager extends ClassicPlotManager {
|
|||||||
files.add(new FileBytes(newDir + "intersection.schematic",
|
files.add(new FileBytes(newDir + "intersection.schematic",
|
||||||
Files.readAllBytes(intersection.toPath())));
|
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()) {
|
if (plot.exists()) {
|
||||||
files.add(
|
files.add(
|
||||||
new FileBytes(newDir + "plot.schematic", Files.readAllBytes(plot.toPath())));
|
new FileBytes(newDir + "plot.schematic", Files.readAllBytes(plot.toPath())));
|
||||||
|
@ -192,8 +192,10 @@ public class HybridPlotWorld extends ClassicPlotWorld {
|
|||||||
"schematics/GEN_ROAD_SCHEMATIC/" + this.worldname + "/intersection.schematic");
|
"schematics/GEN_ROAD_SCHEMATIC/" + this.worldname + "/intersection.schematic");
|
||||||
File schem3File = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(),
|
File schem3File = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(),
|
||||||
"schematics/GEN_ROAD_SCHEMATIC/" + this.worldname + "/plot.schematic");
|
"schematics/GEN_ROAD_SCHEMATIC/" + this.worldname + "/plot.schematic");
|
||||||
SchematicHandler.Schematic schematic1 = SchematicHandler.manager.getSchematic(schematic1File);
|
SchematicHandler.Schematic schematic1 =
|
||||||
SchematicHandler.Schematic schematic2 = SchematicHandler.manager.getSchematic(schematic2File);
|
SchematicHandler.manager.getSchematic(schematic1File);
|
||||||
|
SchematicHandler.Schematic schematic2 =
|
||||||
|
SchematicHandler.manager.getSchematic(schematic2File);
|
||||||
SchematicHandler.Schematic schematic3 = SchematicHandler.manager.getSchematic(schem3File);
|
SchematicHandler.Schematic schematic3 = SchematicHandler.manager.getSchematic(schem3File);
|
||||||
int shift = this.ROAD_WIDTH / 2;
|
int shift = this.ROAD_WIDTH / 2;
|
||||||
int oddshift = (this.ROAD_WIDTH & 1) == 0 ? 0 : 1;
|
int oddshift = (this.ROAD_WIDTH & 1) == 0 ? 0 : 1;
|
||||||
|
@ -198,7 +198,8 @@ public abstract class SquarePlotManager extends GridPlotManager {
|
|||||||
}
|
}
|
||||||
PlotSquared.debug("invalid location: " + Arrays.toString(merged));
|
PlotSquared.debug("invalid location: " + Arrays.toString(merged));
|
||||||
} catch (Exception ignored) {
|
} 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;
|
return null;
|
||||||
}
|
}
|
||||||
|
@ -96,8 +96,8 @@ public class ProcessedWEExtent extends AbstractDelegateExtent {
|
|||||||
this.BScount++;
|
this.BScount++;
|
||||||
if (this.BScount > Settings.Chunk_Processor.MAX_TILES) {
|
if (this.BScount > Settings.Chunk_Processor.MAX_TILES) {
|
||||||
this.BSblocked = true;
|
this.BSblocked = true;
|
||||||
PlotSquared
|
PlotSquared.debug(
|
||||||
.debug(C.PREFIX + "&cdetected unsafe WorldEdit: " + location.getBlockX() + ","
|
C.PREFIX + "&cdetected unsafe WorldEdit: " + location.getBlockX() + ","
|
||||||
+ location.getBlockZ());
|
+ location.getBlockZ());
|
||||||
}
|
}
|
||||||
if (WEManager.maskContains(this.mask, location.getBlockX(), location.getBlockY(),
|
if (WEManager.maskContains(this.mask, location.getBlockX(), location.getBlockY(),
|
||||||
|
@ -39,8 +39,9 @@ public class WESubscriber {
|
|||||||
Player player = (Player) actor;
|
Player player = (Player) actor;
|
||||||
Location loc = player.getLocation();
|
Location loc = player.getLocation();
|
||||||
com.github.intellectualsites.plotsquared.plot.object.Location pLoc =
|
com.github.intellectualsites.plotsquared.plot.object.Location pLoc =
|
||||||
new com.github.intellectualsites.plotsquared.plot.object.Location(player.getWorld().getName(),
|
new com.github.intellectualsites.plotsquared.plot.object.Location(
|
||||||
loc.getBlockX(), loc.getBlockX(), loc.getBlockZ());
|
player.getWorld().getName(), loc.getBlockX(), loc.getBlockX(),
|
||||||
|
loc.getBlockZ());
|
||||||
Plot plot = pLoc.getPlot();
|
Plot plot = pLoc.getPlot();
|
||||||
if (plot == null) {
|
if (plot == null) {
|
||||||
event.setExtent(new NullExtent());
|
event.setExtent(new NullExtent());
|
||||||
|
@ -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.
|
* Clear a plot.
|
||||||
*
|
*
|
||||||
@ -2417,7 +2450,8 @@ public class Plot {
|
|||||||
if (current.owner == null || current.settings == null) {
|
if (current.owner == null || current.settings == null) {
|
||||||
// Invalid plot
|
// Invalid plot
|
||||||
// merged onto unclaimed plot
|
// merged onto unclaimed plot
|
||||||
PlotSquared.debug("Ignoring invalid merged plot: " + current + " | " + current.owner);
|
PlotSquared
|
||||||
|
.debug("Ignoring invalid merged plot: " + current + " | " + current.owner);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
tmpSet.add(current);
|
tmpSet.add(current);
|
||||||
|
@ -15,8 +15,7 @@ public class PlotMessage {
|
|||||||
} catch (Throwable e) {
|
} catch (Throwable e) {
|
||||||
PlotSquared.debug(
|
PlotSquared.debug(
|
||||||
PlotSquared.imp().getPluginName() + " doesn't support fancy chat for " + PlotSquared
|
PlotSquared.imp().getPluginName() + " doesn't support fancy chat for " + PlotSquared
|
||||||
.get().IMP
|
.get().IMP.getServerVersion());
|
||||||
.getServerVersion());
|
|
||||||
ChatManager.manager = new PlainChatManager();
|
ChatManager.manager = new PlainChatManager();
|
||||||
reset(ChatManager.manager);
|
reset(ChatManager.manager);
|
||||||
}
|
}
|
||||||
|
@ -28,7 +28,8 @@ public class SinglePlotManager extends PlotManager {
|
|||||||
|
|
||||||
@Override public boolean clearPlot(PlotArea plotArea, Plot plot, final Runnable whenDone) {
|
@Override public boolean clearPlot(PlotArea plotArea, Plot plot, final Runnable whenDone) {
|
||||||
SetupUtils.manager.unload(plot.getWorldName(), false);
|
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() {
|
TaskManager.IMP.taskAsync(new Runnable() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
MainUtil.deleteDirectory(worldFolder);
|
MainUtil.deleteDirectory(worldFolder);
|
||||||
|
@ -209,7 +209,8 @@ public abstract class ChunkManager {
|
|||||||
public abstract void unloadChunk(String world, ChunkLoc loc, boolean save, boolean safe);
|
public abstract void unloadChunk(String world, ChunkLoc loc, boolean save, boolean safe);
|
||||||
|
|
||||||
public Set<ChunkLoc> getChunkChunks(String world) {
|
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();
|
File[] regionFiles = folder.listFiles();
|
||||||
HashSet<ChunkLoc> chunks = new HashSet<>();
|
HashSet<ChunkLoc> chunks = new HashSet<>();
|
||||||
if (regionFiles == null) {
|
if (regionFiles == null) {
|
||||||
|
@ -10,6 +10,7 @@ import com.github.intellectualsites.plotsquared.plot.object.*;
|
|||||||
import com.github.intellectualsites.plotsquared.plot.util.expiry.ExpireManager;
|
import com.github.intellectualsites.plotsquared.plot.util.expiry.ExpireManager;
|
||||||
import com.google.common.base.Optional;
|
import com.google.common.base.Optional;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -18,7 +19,15 @@ public abstract class EventUtil {
|
|||||||
|
|
||||||
public static EventUtil manager = null;
|
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);
|
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 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) {
|
public void doJoinTask(final PlotPlayer player) {
|
||||||
if (player == null) {
|
if (player == null) {
|
||||||
return; //possible future warning message to figure out where we are retrieving null
|
return; //possible future warning message to figure out where we are retrieving null
|
||||||
|
@ -427,7 +427,8 @@ public abstract class SchematicHandler {
|
|||||||
* @return schematic if found, else null
|
* @return schematic if found, else null
|
||||||
*/
|
*/
|
||||||
public Schematic getSchematic(String name) {
|
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.exists()) {
|
||||||
if (!parent.mkdir()) {
|
if (!parent.mkdir()) {
|
||||||
throw new RuntimeException("Could not create schematic parent directory");
|
throw new RuntimeException("Could not create schematic parent directory");
|
||||||
|
@ -388,8 +388,10 @@ public class ExpireManager {
|
|||||||
PlotAnalysis changed = plot.getComplexity(null);
|
PlotAnalysis changed = plot.getComplexity(null);
|
||||||
int changes = changed == null ? 0 : changed.changes_sd;
|
int changes = changed == null ? 0 : changed.changes_sd;
|
||||||
int modified = changed == null ? 0 : changed.changes;
|
int modified = changed == null ? 0 : changed.changes;
|
||||||
PlotSquared.debug("$2[&5Expire&dManager$2] &cDeleted expired plot: " + plot + " User:" + plot.owner
|
PlotSquared.debug(
|
||||||
+ " Delta:" + changes + "/" + modified + " Connected: " + StringMan.getString(plots));
|
"$2[&5Expire&dManager$2] &cDeleted expired plot: " + plot + " User:" + plot.owner
|
||||||
|
+ " Delta:" + changes + "/" + modified + " Connected: " + StringMan
|
||||||
|
.getString(plots));
|
||||||
PlotSquared.debug("$4 - Area: " + plot.getArea());
|
PlotSquared.debug("$4 - Area: " + plot.getArea());
|
||||||
if (plot.hasOwner()) {
|
if (plot.hasOwner()) {
|
||||||
PlotSquared.debug("$4 - Owner: " + UUIDHandler.getName(plot.owner));
|
PlotSquared.debug("$4 - Owner: " + UUIDHandler.getName(plot.owner));
|
||||||
|
@ -78,7 +78,8 @@ public class PlotAnalysis {
|
|||||||
TaskManager.runTaskAsync(new Runnable() {
|
TaskManager.runTaskAsync(new Runnable() {
|
||||||
@Override public void run() {
|
@Override public void run() {
|
||||||
Iterator<Plot> iterator = plots.iterator();
|
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()) {
|
while (iterator.hasNext()) {
|
||||||
Plot plot = iterator.next();
|
Plot plot = iterator.next();
|
||||||
if (plot.getSettings().ratings == null || plot.getSettings().getRatings()
|
if (plot.getSettings().ratings == null || plot.getSettings().getRatings()
|
||||||
@ -168,7 +169,8 @@ 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 {
|
try {
|
||||||
ratingAnalysis.join();
|
ratingAnalysis.join();
|
||||||
@ -176,7 +178,8 @@ public class PlotAnalysis {
|
|||||||
e.printStackTrace();
|
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++) {
|
for (int i = 0; i < plots.size(); i++) {
|
||||||
Plot plot = plots.get(i);
|
Plot plot = plots.get(i);
|
||||||
PlotSquared.debug(" | " + plot);
|
PlotSquared.debug(" | " + plot);
|
||||||
|
BIN
Core/src/main/resources/bridge.template
Normal file
BIN
Core/src/main/resources/bridge.template
Normal file
Binary file not shown.
@ -1,6 +1,7 @@
|
|||||||
confirm:
|
confirm:
|
||||||
failed_confirm: $2No tienes acciones pendientes por confirmar.
|
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'
|
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:
|
||||||
move_success: $4La parcela fue movida correctamente.
|
move_success: $4La parcela fue movida correctamente.
|
||||||
copy_success: $4La parcela fue copiada correctamente.
|
copy_success: $4La parcela fue copiada correctamente.
|
||||||
@ -16,7 +17,9 @@ web:
|
|||||||
compass:
|
compass:
|
||||||
compass_target: $4Parcela seleccionada con la brujula completada.
|
compass_target: $4Parcela seleccionada con la brujula completada.
|
||||||
cluster:
|
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_heading: $2Hay $1%s$2 agrupaciones en este mundo.
|
||||||
cluster_list_element: $2 - $1%s&-
|
cluster_list_element: $2 - $1%s&-
|
||||||
cluster_intersection: $2El area propuesta se solapa con $1%s$2 de la parcela existente.
|
cluster_intersection: $2El area propuesta se solapa con $1%s$2 de la parcela existente.
|
||||||
@ -35,8 +38,9 @@ cluster:
|
|||||||
cluster_removed_helper: $4Ayudante eliminado de la agrupacion con exito.
|
cluster_removed_helper: $4Ayudante eliminado de la agrupacion con exito.
|
||||||
cluster_regenerated: $4Regeneracion de la agrupacion comenzada con exito.
|
cluster_regenerated: $4Regeneracion de la agrupacion comenzada con exito.
|
||||||
cluster_teleporting: $4Teletransportando...
|
cluster_teleporting: $4Teletransportando...
|
||||||
cluster_info: '$1Agrupacion actual: $2%id%&-$1Nombre: $2%name%&-$1Propietario: $2%owner%&-$1Tamaño: $2%size%&-$1Derechos: $2%rights%'
|
cluster_info: '$1Agrupacion actual: $2%id%&-$1Nombre: $2%name%&-$1Propietario: $2%owner%&-$1Tamaño:
|
||||||
cluster_current_plotid: '$1Parcela actual: $2%s'
|
$2%size%&-$1Derechos: $2%rights%'
|
||||||
|
cluster_outside: '$2El área propuesta está fuera del área de la parcela: %s0'
|
||||||
border:
|
border:
|
||||||
border: $2Estas en las afueras del borde del mapa.
|
border: $2Estas en las afueras del borde del mapa.
|
||||||
unclaim:
|
unclaim:
|
||||||
@ -111,6 +115,7 @@ ratings:
|
|||||||
rating_not_your_own: $2No puedes valorar tu propia parcela.
|
rating_not_your_own: $2No puedes valorar tu propia parcela.
|
||||||
rating_not_done: $2Solo puedes valorar parcelas terminadas.
|
rating_not_done: $2Solo puedes valorar parcelas terminadas.
|
||||||
rating_not_owned: $2No puedes valorar una parcela que no pertenece a nadie.
|
rating_not_owned: $2No puedes valorar una parcela que no pertenece a nadie.
|
||||||
|
ratings_purged: $2Calificaciones purgadas para esta parcela
|
||||||
tutorial:
|
tutorial:
|
||||||
rate_this: $2¡Valora esta parcela!
|
rate_this: $2¡Valora esta parcela!
|
||||||
comment_this: '$2Deja tu opinion de esta parcela: %s'
|
comment_this: '$2Deja tu opinion de esta parcela: %s'
|
||||||
@ -123,6 +128,7 @@ economy:
|
|||||||
cannot_afford_merge: $2Tu no puedes permitirte combinar las parcelas. Cuesta $1%s
|
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.
|
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_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:
|
||||||
setup_init: '$1Uso: $2/plot setup <cantidad>'
|
setup_init: '$1Uso: $2/plot setup <cantidad>'
|
||||||
setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1Espectando: $2%s2 $1Default: $2%s3'
|
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_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_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_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_world: $2 Necesitas especificar el nombre del mundo ($1/plot setup
|
||||||
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
|
&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'
|
setup_invalid_generator: '$2Generador inválido. Opciones posibles: %s'
|
||||||
schematics:
|
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_invalid: '$2Este no es un schematic valido. Razon: $2%s'
|
||||||
schematic_valid: $2Este es un schematic valido.
|
schematic_valid: $2Este es un schematic valido.
|
||||||
schematic_paste_failed: $2Fallo al pegar el schematic.
|
schematic_paste_failed: $2Fallo al pegar el schematic.
|
||||||
schematic_paste_success: $4El schematic ha sido copiado correctamente.
|
schematic_paste_success: $4El schematic ha sido copiado correctamente.
|
||||||
|
schematic_too_large: $2¡La trama es demasiado grande para esta acción!
|
||||||
titles:
|
titles:
|
||||||
title_entered_plot: '$1Parcela: %world%;%x%;%z%'
|
title_entered_plot: '$1Parcela: %world%;%x%;%z%'
|
||||||
title_entered_plot_sub: $4Propiedad de %s
|
title_entered_plot_sub: $4Propiedad de %s
|
||||||
@ -148,12 +160,9 @@ core:
|
|||||||
task_start: Comenzando la tarea...
|
task_start: Comenzando la tarea...
|
||||||
prefix: $3[$1P2$3] $2
|
prefix: $3[$1P2$3] $2
|
||||||
enabled: $1PlotSquared esta activado.
|
enabled: $1PlotSquared esta activado.
|
||||||
example_message: $2Esto es un ejemplo de mensaje &k!!!
|
|
||||||
reload:
|
reload:
|
||||||
reloaded_configs: $1Las traducciones y opciones del mundo han sido cargados.
|
reloaded_configs: $1Las traducciones y opciones del mundo han sido cargados.
|
||||||
reload_failed: $2Fallo al cargar las configuraciones de los archivos.
|
reload_failed: $2Fallo al cargar las configuraciones de los archivos.
|
||||||
bar api:
|
|
||||||
bossbar_clearing: '$2Limpiando parcela: $1%id%'
|
|
||||||
desc:
|
desc:
|
||||||
desc_set: $2Descripcion de la parcela.
|
desc_set: $2Descripcion de la parcela.
|
||||||
desc_unset: $2Descripcion de la parcela no especificada.
|
desc_unset: $2Descripcion de la parcela no especificada.
|
||||||
@ -163,6 +172,7 @@ alias:
|
|||||||
missing_alias: $2Necesitas especificar un alias.
|
missing_alias: $2Necesitas especificar un alias.
|
||||||
alias_too_long: $2El alias debe ser < de 50 caracteres
|
alias_too_long: $2El alias debe ser < de 50 caracteres
|
||||||
alias_is_taken: $2Ese alias ya ha sido utilizado.
|
alias_is_taken: $2Ese alias ya ha sido utilizado.
|
||||||
|
alias_removed: $2Parcela alias eliminado
|
||||||
position:
|
position:
|
||||||
missing_position: '$2Necesitas especificar una posicion. Valores posibles: $1none'
|
missing_position: '$2Necesitas especificar una posicion. Valores posibles: $1none'
|
||||||
position_set: $1Hogar establecido en tu posicion actual.
|
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.
|
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.
|
you_be_denied: $2No tienes permitido entrar en esta parcela.
|
||||||
merge_request_confirm: Peticion de agrupamiento de %s
|
merge_request_confirm: Peticion de agrupamiento de %s
|
||||||
|
cant_claim_more_clusters: $2No puedes reclamar más grupos.
|
||||||
merge:
|
merge:
|
||||||
merge_not_valid: $2La peticion de agrupacion ya no es valida.
|
merge_not_valid: $2La peticion de agrupacion ya no es valida.
|
||||||
merge_accepted: $2La peticion de agrupacion ha sido aceptada.
|
merge_accepted: $2La peticion de agrupacion ha sido aceptada.
|
||||||
@ -191,14 +202,6 @@ merge:
|
|||||||
unlink_required: $2Se requiere una desconexion para hacer esto.
|
unlink_required: $2Se requiere una desconexion para hacer esto.
|
||||||
unlink_impossible: $2Solo puedes desconectar una mega-parcela.
|
unlink_impossible: $2Solo puedes desconectar una mega-parcela.
|
||||||
unlink_success: $2Se han desconectado las parcelas.
|
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:
|
errors:
|
||||||
invalid_player_wait: '$2Jugador no encontrado: $1%s$2, buscando. Prueba mas tarde.'
|
invalid_player_wait: '$2Jugador no encontrado: $1%s$2, buscando. Prueba mas tarde.'
|
||||||
invalid_player: '$2Jugador no encontrado: $1%s$2.'
|
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_world: $2Esto no es un mundo valido. (caso sensitivo)
|
||||||
not_valid_plot_world: $2Esta no es una parcela valida. (caso sensitivo)
|
not_valid_plot_world: $2Esta no es una parcela valida. (caso sensitivo)
|
||||||
no_plots: $2No tienes ninguna parcela.
|
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.
|
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:
|
paste:
|
||||||
debug_report_created: '$1Se ha enviado una depuracion a: $1%url%'
|
debug_report_created: '$1Se ha enviado una depuracion a: $1%url%'
|
||||||
purge:
|
purge:
|
||||||
purge_syntax: Usa /plot purge <x;z|player|unowned|unknown|all> <world>
|
|
||||||
purge_success: $4Se ha limpiado %s parcelas.
|
purge_success: $4Se ha limpiado %s parcelas.
|
||||||
trim:
|
trim:
|
||||||
trim_syntax: Usa /plot trim <all|x;y> <world>
|
|
||||||
trim_in_progress: La tarea de recorte esta en proceso!
|
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.
|
not_valid_hybrid_plot_world: Es necesario el dueño de las parcelas para realizar esta accion.
|
||||||
block list:
|
block list:
|
||||||
@ -253,6 +256,7 @@ invalid:
|
|||||||
no_such_plot: $2No existe dicha parcela.
|
no_such_plot: $2No existe dicha parcela.
|
||||||
player_has_not_been_on: $2Este usuario no ha estado en el mundo de parcelas.
|
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: $2No se ha encontrado parcelas con esta informacion.
|
||||||
|
found_no_plots_for_player: '$2No se encontraron parcelas para jugador: %s'
|
||||||
camera:
|
camera:
|
||||||
camera_started: $2Has entrado en modo camara para la parcela $1%s
|
camera_started: $2Has entrado en modo camara para la parcela $1%s
|
||||||
camera_stopped: $2Ya no estas en modo camara.
|
camera_stopped: $2Ya no estas en modo camara.
|
||||||
@ -263,13 +267,16 @@ need:
|
|||||||
need_plot_world: $2Necesitas especificar un mundo de parcelas.
|
need_plot_world: $2Necesitas especificar un mundo de parcelas.
|
||||||
need_user: $2Necesitas especificar un usuario.
|
need_user: $2Necesitas especificar un usuario.
|
||||||
info:
|
info:
|
||||||
none: Ninguno.
|
none: Ninguno
|
||||||
unknown: Desconocido.
|
unknown: Desconocido
|
||||||
everyone: Todos.
|
everyone: Todos
|
||||||
plot_unowned: $2La parcela actual tiene que tener un propietario para ejecutar esa accion.
|
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_unclaimed: $2Parcela $1%s$2 aun no esta claimeada.
|
||||||
plot_info_header: $3&m---------&r $1INFO $3&m---------
|
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_footer: $3&m---------&r $1INFO $3&m---------
|
||||||
plot_info_trusted: $1Confianza:$2 %trusted%
|
plot_info_trusted: $1Confianza:$2 %trusted%
|
||||||
plot_info_members: $1Miembros:$2 %members%
|
plot_info_members: $1Miembros:$2 %members%
|
||||||
@ -283,6 +290,10 @@ info:
|
|||||||
plot_info_size: $1Tamaño:$2 %size%
|
plot_info_size: $1Tamaño:$2 %size%
|
||||||
plot_user_list: ' $1%user%$2,'
|
plot_user_list: ' $1%user%$2,'
|
||||||
info_syntax_console: $2/plot info X;Y
|
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:
|
working:
|
||||||
generating_component: $1Empezando a generar componentes desde tus opciones.
|
generating_component: $1Empezando a generar componentes desde tus opciones.
|
||||||
clearing_plot: $2Limpiando parcela async.
|
clearing_plot: $2Limpiando parcela async.
|
||||||
@ -290,6 +301,7 @@ working:
|
|||||||
plot_not_claimed: $2Parcela no reclamada.
|
plot_not_claimed: $2Parcela no reclamada.
|
||||||
plot_is_claimed: $2Esta parcela ya esta reclamada.
|
plot_is_claimed: $2Esta parcela ya esta reclamada.
|
||||||
claimed: $4Has reclamado con exito esta parcela.
|
claimed: $4Has reclamado con exito esta parcela.
|
||||||
|
deleting_done: $4Eliminar completado! Tomó %sms.
|
||||||
list:
|
list:
|
||||||
comment_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1Lista de %amount% comentarios.
|
comment_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1Lista de %amount% comentarios.
|
||||||
clickable: ' (interactive)'
|
clickable: ' (interactive)'
|
||||||
@ -298,6 +310,7 @@ list:
|
|||||||
plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner.
|
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_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%.
|
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:
|
||||||
left_plot: $2Has abandonado una parcela.
|
left_plot: $2Has abandonado una parcela.
|
||||||
chat:
|
chat:
|
||||||
@ -305,6 +318,7 @@ chat:
|
|||||||
plot_chat_forced: $2Este mundo obliga a usar el chat de parcela.
|
plot_chat_forced: $2Este mundo obliga a usar el chat de parcela.
|
||||||
plot_chat_on: $4Chat de parcela activado.
|
plot_chat_on: $4Chat de parcela activado.
|
||||||
plot_chat_off: $4Chat de parcela desactivado.
|
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:
|
deny:
|
||||||
denied_removed: $4Este usuario ya no esta denegado en esta parcela.
|
denied_removed: $4Este usuario ya no esta denegado en esta parcela.
|
||||||
denied_added: $4Has denegado este usuario de tu 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_not_added: $2La flag no se ha podido añadir.
|
||||||
flag_removed: $4Flag removida con exito.
|
flag_removed: $4Flag removida con exito.
|
||||||
flag_added: $4Flag añadida 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:
|
||||||
trusted_added: $4Has añadido un usuario de confianza en esta parcela.
|
trusted_added: $4Has añadido un usuario de confianza en esta parcela.
|
||||||
trusted_removed: $4Has removido un usuario de confianza en esta parcela.
|
trusted_removed: $4Has removido un usuario de confianza en esta parcela.
|
||||||
@ -341,17 +356,39 @@ member:
|
|||||||
owner:
|
owner:
|
||||||
set_owner: $4Has añadido con exito el dueño de la parcela.
|
set_owner: $4Has añadido con exito el dueño de la parcela.
|
||||||
now_owner: $4Ahora eres dueño de esta parcela %s
|
now_owner: $4Ahora eres dueño de esta parcela %s
|
||||||
|
set_owner_cancelled: $2La setowner la acción fue cancelada
|
||||||
signs:
|
signs:
|
||||||
owner_sign_line_1: '$1ID: $1%id%'
|
owner_sign_line_1: '$1ID: $1%id%'
|
||||||
owner_sign_line_2: '$1Propietario:'
|
owner_sign_line_2: '$1Propietario:'
|
||||||
owner_sign_line_3: $2%plr%
|
owner_sign_line_3: $2%plr%
|
||||||
owner_sign_line_4: $3Claimeado
|
owner_sign_line_4: $3Claimeado
|
||||||
help:
|
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_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_info_item: $1/plot help %category% $3- $2%category_desc%
|
||||||
help_item: $1%usage% [%alias%]&- $3- $2%desc%&-
|
help_item: $1%usage% [%alias%]&- $3- $2%desc%&-
|
||||||
direction: '$1Direccion actual: %dir%'
|
direction: '$1Direccion actual: %dir%'
|
||||||
'-':
|
'-':
|
||||||
custom_string: '-'
|
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'
|
@ -19,9 +19,9 @@ web:
|
|||||||
compass:
|
compass:
|
||||||
compass_target: $4Lotto mirato con successo con la bussola
|
compass_target: $4Lotto mirato con successo con la bussola
|
||||||
cluster:
|
cluster:
|
||||||
cluster_available_args: '$1Sono disponibili i seguenti sotto comandi: $4list$2, $4create$2,
|
cluster_available_args: '$1Sono disponibili i seguenti sotto comandi: $4list$2,
|
||||||
$4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2,
|
$4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2,
|
||||||
$4tp$2, $4sethome'
|
$4info$2, $4tp$2, $4sethome'
|
||||||
cluster_list_heading: $2Ci sono $1%s$2 cluster in questo mondo
|
cluster_list_heading: $2Ci sono $1%s$2 cluster in questo mondo
|
||||||
cluster_list_element: $2 - $1%s&-
|
cluster_list_element: $2 - $1%s&-
|
||||||
cluster_intersection: '$2L''area proposta si sovrappone a: %s0'
|
cluster_intersection: '$2L''area proposta si sovrappone a: %s0'
|
||||||
@ -50,12 +50,9 @@ unclaim:
|
|||||||
worldedit masks:
|
worldedit masks:
|
||||||
worldedit_delayed: $2Attendi durante l'elaborazione della tua azione WorldEdit...
|
worldedit_delayed: $2Attendi durante l'elaborazione della tua azione WorldEdit...
|
||||||
worldedit_run: '$2Scuse per il ritardo. Ora in esecuzione: %s'
|
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.
|
require_selection_in_mask: $2%s della tua selezione non è all'interno del tuo lotto. Puoi apportare modifiche solo dentro il 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_volume: $2Non puoi selezionare un volume di %current%. Il volume massimo
|
worldedit_iterations: $2Non puoi iterare %current% volte. Il massimo numero di iterazioni consentite è %max%.
|
||||||
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_unsafe: $2L'accesso a quel comando è stato bloccato
|
||||||
worldedit_bypass: $2&oPer bypassare le tue restrizioni usa $4/plot wea
|
worldedit_bypass: $2&oPer bypassare le tue restrizioni usa $4/plot wea
|
||||||
worldedit_bypassed: $2Attualmente bypassando le restrizioni di WorldEdit.
|
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_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_valid_arg: $2Valore $1%s0 $2impostato a %s1
|
||||||
setup_finished: $4Dovresti essere stato teletrasportato nel mondo creato. Altrimenti
|
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
|
sarà necessario impostare manualmente il generatore usando il file bukkit.yml
|
||||||
di gestione dei mondi scelto.
|
o il tuo plugin di gestione dei mondi scelto.
|
||||||
setup_world_taken: $2%s è già un mondo lotti
|
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
|
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
|
<generatore>$2)&-$1Comandi aggiuntivi:&-$2 - $1/plot setup <valore>&-$2 - $1/plot
|
||||||
setup back&-$2 - $1/plot setup cancel
|
setup back&-$2 - $1/plot setup cancel
|
||||||
setup_missing_generator: $2Devi specificare un generatore ($1/plot setup <mondo>
|
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
|
&l<generatore>&r$2)&-$1Comandi aggiuntivi:&-$2 - $1/plot setup <valore>&-$2 -
|
||||||
setup back&-$2 - $1/plot setup cancel
|
$1/plot setup back&-$2 - $1/plot setup cancel
|
||||||
setup_invalid_generator: '$2Generatore non valido. Opzioni possibili: %s'
|
setup_invalid_generator: '$2Generatore non valido. Opzioni possibili: %s'
|
||||||
schematics:
|
schematics:
|
||||||
schematic_too_large: $2Il lotto è troppo grande per questa azione!
|
schematic_too_large: $2Il lotto è troppo grande per questa azione!
|
||||||
@ -271,7 +268,7 @@ invalid:
|
|||||||
no_such_plot: $2Quel lotto non esiste
|
no_such_plot: $2Quel lotto non esiste
|
||||||
player_has_not_been_on: $2Quel giocatore non è mai stato nel mondo lotti
|
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: $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:
|
||||||
camera_started: $2Hai inserito la modalità telecamera per il lotto $1%s
|
camera_started: $2Hai inserito la modalità telecamera per il lotto $1%s
|
||||||
camera_stopped: $2Non sei più in modalità telecamera
|
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_unclaimed: $2Il lotto $1%s$2 non è ancora claimato
|
||||||
plot_info_header: $3&m---------&r $1INFO $3&m---------
|
plot_info_header: $3&m---------&r $1INFO $3&m---------
|
||||||
plot_info: '$1ID: $2%id%$1&-$1Alias: $2%alias%$1&-$1Proprietario: $2%owner%$1&-$1Bioma:
|
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%biome%$1&-$1Puoi costruire: $2%build%$1&-$1Valutazione: $2%rating%&-$1Visto:
|
||||||
$2%trusted%$1&-$1Membri: $2%members%$1&-$1Bloccati: $2%denied%$1&-$1Flag: $2%flags%'
|
$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_footer: $3&m---------&r $1INFO $3&m---------
|
||||||
plot_info_trusted: $1Membri fidati:$2 %trusted%
|
plot_info_trusted: $1Membri fidati:$2 %trusted%
|
||||||
plot_info_members: $1Membri:$2 %members%
|
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
|
plot_removed_user: $1Il lotto %s in cui eri aggiunto è stato eliminato a causa dell'inattività del proprietario
|
||||||
member:
|
member:
|
||||||
removed_players: $2Rimossi %s giocatori dal lotto.
|
removed_players: $2Rimossi %s giocatori dal lotto.
|
||||||
already_owner: '$2L''utente %s0 è già il proprietario di questo lotto.'
|
already_owner: $2L'utente %s0 è già il proprietario di questo lotto.
|
||||||
already_added: '$2L''utente %s0 è già aggiunto a quella categoria.'
|
already_added: $2L'utente %s0 è già aggiunto a quella categoria.
|
||||||
member_added: $4Quell'utente ora può costruire quando il proprietario è online
|
member_added: $4Quell'utente ora può costruire quando il proprietario è online
|
||||||
member_removed: $1Hai rimosso con successo un utente dal lotto
|
member_removed: $1Hai rimosso con successo un utente dal lotto
|
||||||
member_was_not_added: $2Quel giocatore non è aggiunto a questo lotto
|
member_was_not_added: $2Quel giocatore non è aggiunto a questo lotto
|
||||||
@ -374,6 +372,7 @@ member:
|
|||||||
owner:
|
owner:
|
||||||
set_owner: $4Hai impostato correttamente il proprietario del lotto
|
set_owner: $4Hai impostato correttamente il proprietario del lotto
|
||||||
now_owner: $4Sei ora proprietario del lotto %s
|
now_owner: $4Sei ora proprietario del lotto %s
|
||||||
|
set_owner_cancelled: $2L'azione del proprietario è stata annullata
|
||||||
signs:
|
signs:
|
||||||
owner_sign_line_1: '$1ID: $1%id%'
|
owner_sign_line_1: '$1ID: $1%id%'
|
||||||
owner_sign_line_2: '$1Proprietario:'
|
owner_sign_line_2: '$1Proprietario:'
|
@ -1,12 +1,12 @@
|
|||||||
# SOME DESCRIPTIVE TITLE.
|
|
||||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
# Translate by Protocodyne Korean Translate team
|
# Translate by Protocodyne Korean Translate team
|
||||||
# First Author <bmr02039@protocodyne.com>, 2015.
|
# First Author <bmr02039@protocodyne.com>, 2015.
|
||||||
confirm:
|
confirm:
|
||||||
failed_confirm: $2이 작업이 완료되기 위한 행동이 당신에게 존재하지 않습니다!
|
failed_confirm: $2이 작업이 완료되기 위한 행동이 당신에게 존재하지 않습니다!
|
||||||
requires_confirm: '$2정말로 실행되길 원하나요: $1%s$2?&-$2이 작업은 되돌릴 수
|
requires_confirm: '$2정말로 실행되길 원하나요: $1%s$2?&-$2이 작업은 되돌릴 수 없습니다! 확실하다면 다음 명령어를 입력하세요:
|
||||||
없습니다! 확실하다면 다음 명령어를 입력하세요: $1/plot confirm'
|
$1/plot confirm'
|
||||||
|
expired_confirm: $2확인이 만료되었습니다. 명령을 다시 실행하십시오.!
|
||||||
move:
|
move:
|
||||||
move_success: $4성공적으로 땅이 옮겨졌습니다.
|
move_success: $4성공적으로 땅이 옮겨졌습니다.
|
||||||
copy_success: $4성공적으로 땅이 복사되었습니다.
|
copy_success: $4성공적으로 땅이 복사되었습니다.
|
||||||
@ -20,14 +20,13 @@ web:
|
|||||||
load_list: '$2schematic로드를 원한다면, 다음명령어를 사용하세요 $1/plot load #'
|
load_list: '$2schematic로드를 원한다면, 다음명령어를 사용하세요 $1/plot load #'
|
||||||
save_success: $1성공적으로 저장되었습니다!
|
save_success: $1성공적으로 저장되었습니다!
|
||||||
compass:
|
compass:
|
||||||
compass_target: $4Successfully targeted plot with compass
|
compass_target: $4나침반과 함께 음모를 성공적으로 지정했습니다.
|
||||||
cluster:
|
cluster:
|
||||||
cluster_available_args: '$1다음 하위명령어가 사용 가능합니다.: $4list$2, $4create$2,
|
cluster_available_args: '$1다음 하위명령어가 사용 가능합니다.: $4list$2, $4create$2, $4delete$2,
|
||||||
$4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2,
|
$4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, $4tp$2, $4sethome'
|
||||||
$4tp$2, $4sethome'
|
|
||||||
cluster_list_heading: $2이 월드에 $1%s$2 cluster가 있습니다
|
cluster_list_heading: $2이 월드에 $1%s$2 cluster가 있습니다
|
||||||
cluster_list_element: $2 - $1%s&-
|
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_added: $4cluster가 성공적으로 생성되었습니다.
|
||||||
cluster_deleted: $4cluster가 성공적으로 삭제되었습니다.
|
cluster_deleted: $4cluster가 성공적으로 삭제되었습니다.
|
||||||
cluster_resized: $4cluster가 성공적으로 재조정 되었습니다.
|
cluster_resized: $4cluster가 성공적으로 재조정 되었습니다.
|
||||||
@ -43,9 +42,9 @@ cluster:
|
|||||||
cluster_removed_helper: $4helper가 성공적으로 cluster에서 제거되었습니다
|
cluster_removed_helper: $4helper가 성공적으로 cluster에서 제거되었습니다
|
||||||
cluster_regenerated: $4성공적으로 cluster가 재생성 되었습니다
|
cluster_regenerated: $4성공적으로 cluster가 재생성 되었습니다
|
||||||
cluster_teleporting: $4이동중...
|
cluster_teleporting: $4이동중...
|
||||||
cluster_info: '$1현재 cluster: $2%id%&-$1이름: $2%name%&-$1소유자: $2%owner%&-$1크기:
|
cluster_info: '$1현재 cluster: $2%id%&-$1이름: $2%name%&-$1소유자: $2%owner%&-$1크기: $2%size%&-$1Rights:
|
||||||
$2%size%&-$1Rights: $2%rights%'
|
$2%rights%'
|
||||||
cluster_current_plotid: '$1현재 땅: $2%s'
|
cluster_outside: '$2제안 된 영역이 플롯 영역 밖에 있습니다: %s0'
|
||||||
border:
|
border:
|
||||||
border: $2당신은 현재 지도의 경계 밖에 있습니다
|
border: $2당신은 현재 지도의 경계 밖에 있습니다
|
||||||
unclaim:
|
unclaim:
|
||||||
@ -54,7 +53,8 @@ unclaim:
|
|||||||
worldedit masks:
|
worldedit masks:
|
||||||
worldedit_delayed: $2당신의 WorldEdit 행동을 처리중이니 기다려주시기 바랍니다...
|
worldedit_delayed: $2당신의 WorldEdit 행동을 처리중이니 기다려주시기 바랍니다...
|
||||||
worldedit_run: '$2처리가 지연되어 죄송합니다. 해당 명령어를 실행합니다: %s'
|
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_volume: $2당신은 a volume of %current%를 선택 할 수 없습니다. 당신이 수정할 수 있는 최대부피는 %max% 입니다.
|
||||||
worldedit_iterations: $2당신은 %current%번 반복 적용시킬 수 없습니다. 당신이 수정가능한 최대 부피는 %max% 입니다.
|
worldedit_iterations: $2당신은 %current%번 반복 적용시킬 수 없습니다. 당신이 수정가능한 최대 부피는 %max% 입니다.
|
||||||
worldedit_unsafe: $2해당 명령어는 실행 될 수 없습니다.
|
worldedit_unsafe: $2해당 명령어는 실행 될 수 없습니다.
|
||||||
@ -84,10 +84,10 @@ comment:
|
|||||||
invalid_inbox: '$2올바르지 않은 메일함 입니다..&-$1Accepted values: %s'
|
invalid_inbox: '$2올바르지 않은 메일함 입니다..&-$1Accepted values: %s'
|
||||||
no_perm_inbox: $2당신은 해당 메일함에 권한이 없습니다
|
no_perm_inbox: $2당신은 해당 메일함에 권한이 없습니다
|
||||||
no_perm_inbox_modify: $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_removed: $4comment가 성공적으로 삭제되었습니다/s:n$2 - '$3%s$2'
|
||||||
comment_added: $4A comment가 남아있습니다
|
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가 없습니다
|
inbox_empty: $2comment가 없습니다
|
||||||
console:
|
console:
|
||||||
not_console: $2보안상의 이유로, 이 명령어는 Console에서만 입력 가능합니다.
|
not_console: $2보안상의 이유로, 이 명령어는 Console에서만 입력 가능합니다.
|
||||||
@ -101,8 +101,7 @@ clipboard:
|
|||||||
pasted: $4해당 땅은 성공적으로 붙여넣어졌습니다. 해당 땅은 클립보드로부터 제거됩니다.
|
pasted: $4해당 땅은 성공적으로 붙여넣어졌습니다. 해당 땅은 클립보드로부터 제거됩니다.
|
||||||
paste_failed: '$2선택된 땅의 복사가 실패했습니다. 사유: $2%s'
|
paste_failed: '$2선택된 땅의 복사가 실패했습니다. 사유: $2%s'
|
||||||
no_clipboard: $2클립보드에 복사된 땅이 존재하지 않습니다
|
no_clipboard: $2클립보드에 복사된 땅이 존재하지 않습니다
|
||||||
clipboard_info: '$2현재 선택 - Plot ID: $1%id$2, Width: $1%width$2, Total
|
clipboard_info: '$2현재 선택 - Plot ID: $1%id$2, Width: $1%width$2, Total Blocks: $1%total$2'
|
||||||
Blocks: $1%total$2'
|
|
||||||
toggle:
|
toggle:
|
||||||
toggle_enabled: '$2가능한 세팅: %s'
|
toggle_enabled: '$2가능한 세팅: %s'
|
||||||
toggle_disabled: '$2불가능한 세팅: %s'
|
toggle_disabled: '$2불가능한 세팅: %s'
|
||||||
@ -121,6 +120,7 @@ ratings:
|
|||||||
rating_not_your_own: $2당신은 자신의 땅에 투표 할 수 없습니다
|
rating_not_your_own: $2당신은 자신의 땅에 투표 할 수 없습니다
|
||||||
rating_not_done: $2당신은 완료된 땅에만 투표 할 수 있습니다.
|
rating_not_done: $2당신은 완료된 땅에만 투표 할 수 있습니다.
|
||||||
rating_not_owned: $2당신은 소유자가 없는 땅에 투표 할 수 없습니다
|
rating_not_owned: $2당신은 소유자가 없는 땅에 투표 할 수 없습니다
|
||||||
|
ratings_purged: $2Purged ratings for this plot
|
||||||
tutorial:
|
tutorial:
|
||||||
rate_this: $2이 땅에 투표해보세요!
|
rate_this: $2이 땅에 투표해보세요!
|
||||||
comment_this: '$2이땅에 피드백을 남겨보세요: %s'
|
comment_this: '$2이땅에 피드백을 남겨보세요: %s'
|
||||||
@ -129,43 +129,47 @@ economy:
|
|||||||
cannot_afford_plot: $2당신은 이 땅을 구입 할 수 없습니다. 이 땅의 가격은 $1%s 입니다
|
cannot_afford_plot: $2당신은 이 땅을 구입 할 수 없습니다. 이 땅의 가격은 $1%s 입니다
|
||||||
not_for_sale: $2이 땅은 판매 불가능합니다
|
not_for_sale: $2이 땅은 판매 불가능합니다
|
||||||
cannot_buy_own: $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 입니다
|
cannot_afford_merge: $2당신은 이 땅을 함칠 수 없습니다. 이 땅의 가격은 $1%s 입니다
|
||||||
added_balance: $1%s $2이 당신의 통장에 추가되었습니다
|
added_balance: $1%s $2이 당신의 통장에 추가되었습니다
|
||||||
removed_balance: $1%s $2이 당신의 통장에서 빠져나갔습니다
|
removed_balance: $1%s $2이 당신의 통장에서 빠져나갔습니다
|
||||||
|
removed_granted_plot: $2너는 사용했다 %s 계획 교부금 (들), 당신이있어 $1%s $2왼쪽
|
||||||
setup:
|
setup:
|
||||||
setup_init: '$1Usage: $2/plot setup <value>'
|
setup_init: '$1용법: $2/plot setup <value>'
|
||||||
setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1Expecting: $2%s2 $1Default: $2%s3'
|
setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1기대: $2%s2 $1태만: $2%s3'
|
||||||
setup_invalid_arg: '$2%s0 는 올바르지 않은 값입니다 %s1. 설정 취소를 원하시면
|
setup_invalid_arg: '$2%s0 는 올바르지 않은 값입니다 %s1. 설정 취소를 원하시면 다음 명령어를 사용하십시오: $1/plot
|
||||||
다음 명령어를 사용하십시오: $1/plot setup cancel'
|
setup cancel'
|
||||||
setup_valid_arg: $2Value $1%s0 $2set to %s1
|
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_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_world: $2당신은 월드의 이름을 지정해야 합니다 ($1/plot setup &l<world>$1 <generator>$2)&-$1Additional
|
||||||
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
|
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'
|
setup_invalid_generator: '$2올바르지 않은 생성기 입니다. 가능한 옵션: %s'
|
||||||
schematics:
|
schematics:
|
||||||
schematic_missing_arg: '$2당신은 인수를 지정해야 합니다. 가능한 값: $1test
|
schematic_missing_arg: '$2당신은 인수를 지정해야 합니다. 가능한 값: $1test <name>$2 , $1save$2 ,
|
||||||
<name>$2 , $1save$2 , $1paste $2, $1exportall'
|
$1paste $2, $1exportall'
|
||||||
schematic_invalid: '$2이것은 올바르지 않은 schematic파일 입니다. 사유: $2%s'
|
schematic_invalid: '$2이것은 올바르지 않은 schematic파일 입니다. 사유: $2%s'
|
||||||
schematic_valid: $2이것은 올바른 schematic파일 입니다
|
schematic_valid: $2이것은 올바른 schematic파일 입니다
|
||||||
schematic_paste_failed: $2schematic 적용에 실패하엿습니다
|
schematic_paste_failed: $2schematic 적용에 실패하엿습니다
|
||||||
schematic_paste_success: $4schematic이 성공적으로 적용되었습니다
|
schematic_paste_success: $4schematic이 성공적으로 적용되었습니다
|
||||||
|
schematic_too_large: $2플롯이 너무 커서이 작업을 수행 할 수 없습니다!
|
||||||
titles:
|
titles:
|
||||||
title_entered_plot: '$1Plot: %world%;%x%;%z%'
|
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_greeting: '$1%id%$2> '
|
||||||
prefix_farewell: '$1%id%$2> '
|
prefix_farewell: '$1%id%$2> '
|
||||||
core:
|
core:
|
||||||
task_start: 작업을 시작합니다...
|
task_start: 작업을 시작합니다...
|
||||||
prefix: $3[$1P2$3] $2
|
prefix: $3[$1P2$3] $2
|
||||||
enabled: $1PlotSquared 가 실행됩니다
|
enabled: $1PlotSquared 가 실행됩니다
|
||||||
example_message: $2This Korean Translation Make by Protocodyne &k!!!
|
|
||||||
reload:
|
reload:
|
||||||
reloaded_configs: $1번역 파일 및 월드 설정 파일이 성공적으로 리로드 되었습니다
|
reloaded_configs: $1번역 파일 및 월드 설정 파일이 성공적으로 리로드 되었습니다
|
||||||
reload_failed: $2설정파일의 리로드에 실패하였습니다
|
reload_failed: $2설정파일의 리로드에 실패하였습니다
|
||||||
bar api:
|
|
||||||
bossbar_clearing: '$2Clearing plot: $1%id%'
|
|
||||||
desc:
|
desc:
|
||||||
desc_set: $2Plot 설명 설정
|
desc_set: $2Plot 설명 설정
|
||||||
desc_unset: $2Plot 설명 설정취소
|
desc_unset: $2Plot 설명 설정취소
|
||||||
@ -175,6 +179,7 @@ alias:
|
|||||||
missing_alias: $2당신은 별명을 설정해야 합니다
|
missing_alias: $2당신은 별명을 설정해야 합니다
|
||||||
alias_too_long: $2별명은 50자 이내여야 합니다
|
alias_too_long: $2별명은 50자 이내여야 합니다
|
||||||
alias_is_taken: $2이 별명은 이미 존재합니다
|
alias_is_taken: $2이 별명은 이미 존재합니다
|
||||||
|
alias_removed: $2플롯 별칭이 제거되었습니다
|
||||||
position:
|
position:
|
||||||
missing_position: '$2당신은 위치를 지정해야합니다. 가능한 값: $1none'
|
missing_position: '$2당신은 위치를 지정해야합니다. 가능한 값: $1none'
|
||||||
position_set: $1Home 위치를 현재 위치로 지정합니다
|
position_set: $1Home 위치를 현재 위치로 지정합니다
|
||||||
@ -193,24 +198,18 @@ permission:
|
|||||||
cant_claim_more_plots_num: $2당신은 한번에 $1%s $2plots보다 더 많이 소유할 수 없습니다
|
cant_claim_more_plots_num: $2당신은 한번에 $1%s $2plots보다 더 많이 소유할 수 없습니다
|
||||||
you_be_denied: $2당신은 이 땅에 들어갈 수 없습니다
|
you_be_denied: $2당신은 이 땅에 들어갈 수 없습니다
|
||||||
merge_request_confirm: 병합요청이 들어왔습니다 %s
|
merge_request_confirm: 병합요청이 들어왔습니다 %s
|
||||||
|
cant_claim_more_clusters: $2더 많은 클러스터를 청구 할 수 없습니다.
|
||||||
merge:
|
merge:
|
||||||
merge_not_valid: $2이 병합 요청은 더이상 유효하지 않습니다
|
merge_not_valid: $2이 병합 요청은 더이상 유효하지 않습니다
|
||||||
merge_accepted: $2병합 요청이 수락되었습니다
|
merge_accepted: $2병합 요청이 수락되었습니다
|
||||||
success_merge: $2땅이 병합되었습니다
|
success_merge: $2땅이 병합되었습니다
|
||||||
merge_requested: $2병합요청이 성공적으로 전송되었습니다
|
merge_requested: $2병합요청이 성공적으로 전송되었습니다
|
||||||
no_perm_merge: '$2당신은 이 땅의 소유자가 아닙니다: $1%plot%'
|
no_perm_merge: '$2당신은 이 땅의 소유자가 아닙니다: $1%plot%'
|
||||||
no_available_automerge: $2당신은 지정한 방향으로 인접한 plots를 소유하지 않았거나 plots를 필요한 크기로 합병 할 수 없습니다.
|
no_available_automerge: $2당신은 지정한 방향으로 인접한 plots를 소유하지 않았거나 plots를 필요한 크기로 합병 할
|
||||||
|
수 없습니다.
|
||||||
unlink_required: $2An unlink는 이것을 하는데 요구 됩니다.
|
unlink_required: $2An unlink는 이것을 하는데 요구 됩니다.
|
||||||
unlink_impossible: $2당신은 오직 mega-plot만 unlink 할 수 있습니다
|
unlink_impossible: $2당신은 오직 mega-plot만 unlink 할 수 있습니다
|
||||||
unlink_success: $2성공적으로 plots을 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:
|
errors:
|
||||||
invalid_player_wait: '$2플레이어를 찾지 못했습니다: $1%s$2, fetching it. 잠시 후 시도해주세요.'
|
invalid_player_wait: '$2플레이어를 찾지 못했습니다: $1%s$2, fetching it. 잠시 후 시도해주세요.'
|
||||||
invalid_player_offline: '$2플레이어는 반드시 접속 중이어야 합니다: $1%s.'
|
invalid_player_offline: '$2플레이어는 반드시 접속 중이어야 합니다: $1%s.'
|
||||||
@ -224,22 +223,22 @@ errors:
|
|||||||
not_valid_world: $2옳바르지 않은 World 입니다
|
not_valid_world: $2옳바르지 않은 World 입니다
|
||||||
not_valid_plot_world: $2올바르지 않은 plot world 입니다 (case sensitive)
|
not_valid_plot_world: $2올바르지 않은 plot world 입니다 (case sensitive)
|
||||||
no_plots: $2당신은 어떤 땅도 가지고 있지 않습니다
|
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 타이머는 현재의 땅 또는 당신에게 묶여있습니다. 완료까지 잠시 기다려주시기 바랍니다
|
wait_for_timer: $2A setblock 타이머는 현재의 땅 또는 당신에게 묶여있습니다. 완료까지 잠시 기다려주시기 바랍니다
|
||||||
|
invalid_command_flag: '$2잘못된 명령 플래그: %s0'
|
||||||
|
error: '$2오류가 발생했습니다: %s'
|
||||||
|
not_loaded: $2플롯을로드 할 수 없습니다
|
||||||
paste:
|
paste:
|
||||||
debug_report_created: '$1Uploaded a full debug to: $1%url%'
|
debug_report_created: '$1전체 디버그를에 업로드했습니다.: $1%url%'
|
||||||
purge:
|
purge:
|
||||||
purge_syntax: Use /plot purge <x;z|player|unowned|unknown|all> <world>
|
|
||||||
purge_success: $4%s 땅들을 성공적으로 제거하였습니다
|
purge_success: $4%s 땅들을 성공적으로 제거하였습니다
|
||||||
trim:
|
trim:
|
||||||
trim_syntax: Use /plot trim <all|x;y> <world>
|
|
||||||
trim_in_progress: 최적화 작업이 이미 진행중입니다!
|
trim_in_progress: 최적화 작업이 이미 진행중입니다!
|
||||||
not_valid_hybrid_plot_world: 이 행동을 위하여 hybrid plot manager가 필요합니다.
|
not_valid_hybrid_plot_world: 이 행동을 위하여 hybrid plot manager가 필요합니다.
|
||||||
block list:
|
block list:
|
||||||
block_list_separater: '$1,$2 '
|
block_list_separater: '$1,$2 '
|
||||||
biome:
|
biome:
|
||||||
need_biome: $2당신은 유효한 생태계를 지정해야 합니다.
|
need_biome: $2당신은 유효한 생태계를 지정해야 합니다.
|
||||||
biome_set_to: $2Plot biome set to $2
|
biome_set_to: $2플롯 생물 설정 $2
|
||||||
teleport:
|
teleport:
|
||||||
teleported_to_plot: $1당신은 이동 되었습니다.
|
teleported_to_plot: $1당신은 이동 되었습니다.
|
||||||
teleported_to_road: $2당신은 길로 이동 되었습니다.
|
teleported_to_road: $2당신은 길로 이동 되었습니다.
|
||||||
@ -258,13 +257,14 @@ invalid:
|
|||||||
not_valid_data: $2그것은 유효한 데이터 ID가 아닙니다.
|
not_valid_data: $2그것은 유효한 데이터 ID가 아닙니다.
|
||||||
not_valid_block: '$2그것은 유효한 블록이 아닙니다.: %s 그것은 유효한 블록이 아닙니다.'
|
not_valid_block: '$2그것은 유효한 블록이 아닙니다.: %s 그것은 유효한 블록이 아닙니다.'
|
||||||
not_allowed_block: '$2그 블록은 허락되지 않았습니다 : %s'
|
not_allowed_block: '$2그 블록은 허락되지 않았습니다 : %s'
|
||||||
not_valid_number: '$2그것은 %s범위내에서 유효하지 않은 숫자입니다.'
|
not_valid_number: $2그것은 %s범위내에서 유효하지 않은 숫자입니다.
|
||||||
not_valid_plot_id: $2그 땅의 ID는 유효하지 않습니다.
|
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그것은 당신의 땅이 아닙니다.
|
not_your_plot: $2그것은 당신의 땅이 아닙니다.
|
||||||
no_such_plot: $2거기엔 어떤 땅도 없습니다.
|
no_such_plot: $2거기엔 어떤 땅도 없습니다.
|
||||||
player_has_not_been_on: $2해당 플레이어는 plotworld에 없습니다.
|
player_has_not_been_on: $2해당 플레이어는 plotworld에 없습니다.
|
||||||
found_no_plots: $2당신의 검색에서 아무 땅도 발견하지 못했습니다
|
found_no_plots: $2당신의 검색에서 아무 땅도 발견하지 못했습니다
|
||||||
|
found_no_plots_for_player: '$2No plots found for player: %s'
|
||||||
camera:
|
camera:
|
||||||
camera_started: $2당신은 땅을 위한 카메라 모드에 입장했습니다 $1%s
|
camera_started: $2당신은 땅을 위한 카메라 모드에 입장했습니다 $1%s
|
||||||
camera_stopped: $2카메라 모드를 종료합니다
|
camera_stopped: $2카메라 모드를 종료합니다
|
||||||
@ -297,32 +297,40 @@ info:
|
|||||||
plot_info_size: $1Size:$2 %size%
|
plot_info_size: $1Size:$2 %size%
|
||||||
plot_user_list: ' $1%user%$2,'
|
plot_user_list: ' $1%user%$2,'
|
||||||
info_syntax_console: $2/plot info X;Y
|
info_syntax_console: $2/plot info X;Y
|
||||||
|
now: 지금
|
||||||
|
never: 못
|
||||||
|
plot_info_seen: $1Seen:$2 %seen%
|
||||||
|
plot_flag_list: $1%s0:%s1$2
|
||||||
working:
|
working:
|
||||||
generating_component: $1당신의 설정값으로부터 component 생성을 시작합니다
|
generating_component: $1당신의 설정값으로부터 component 생성을 시작합니다
|
||||||
clearing_plot: $2Clearing plot async.
|
clearing_plot: $2플롯 비동기 지우기.
|
||||||
clearing_done: $4Clear completed! Took %sms.
|
clearing_done: $4명확한 완료. 했다 %sms.
|
||||||
plot_not_claimed: $2땅이 판매되지 않았습니다
|
plot_not_claimed: $2땅이 판매되지 않았습니다
|
||||||
plot_is_claimed: $2이 땅은 이미 판매되었습니다
|
plot_is_claimed: $2이 땅은 이미 판매되었습니다
|
||||||
claimed: $4성공적으로 땅을 판매하였습니다
|
claimed: $4성공적으로 땅을 판매하였습니다
|
||||||
|
deleting_done: $4삭제가 완료되었습니다! 가져왔다 %sms.
|
||||||
list:
|
list:
|
||||||
comment_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1List of %amount% comments
|
comment_list_header_paged: $2(페이지 $1%cur$2/$1%max$2) $1목록 %amount% 코멘트
|
||||||
clickable: ' (interactive)'
|
clickable: ' (상호 작용하는)'
|
||||||
plot_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1List of %amount% plots
|
plot_list_header_paged: $2(페이지 $1%cur$2/$1%max$2) $1목록 %amount% plots
|
||||||
plot_list_header: $1List of %word% plots
|
plot_list_header: $1목록 %word% plots
|
||||||
plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner
|
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_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:
|
||||||
left_plot: $2당신은 땅을 떠났습니다.
|
left_plot: $2당신은 땅을 떠났습니다.
|
||||||
chat:
|
chat:
|
||||||
plot_chat_format: '$2[$1Plot Chat$2][$1%plot_id%$2] $1%sender%$2: $1%msg%'
|
plot_chat_format: '$2[$1Plot Chat$2][$1%plot_id%$2] $1%sender%$2: $1%msg%'
|
||||||
plot_chat_forced: $이 월드는 모두가 plot chat을 쓰도록 강제합니다
|
plot_chat_forced: $이 월드는 모두가 plot chat을 쓰도록 강제합니다
|
||||||
plot_chat_on: $4Plot chat enabled.
|
plot_chat_on: $4플롯 채팅 사용 설정 됨.
|
||||||
plot_chat_off: $4Plot chat disabled.
|
plot_chat_off: $4플롯 채팅 사용 중지됨.
|
||||||
|
plot_chat_spy_format: '$2[$1Plot Spy$2][$1%plot_id%$2] $1%sender%$2: $1%msg%'
|
||||||
deny:
|
deny:
|
||||||
denied_removed: $4당신은 이 땅으로부터 플레이어를 차단 해제 했습니다.
|
denied_removed: $4당신은 이 땅으로부터 플레이어를 차단 해제 했습니다.
|
||||||
denied_added: $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해당 플레이어는 이 땅에서 차단되지 않았습니다.
|
was_not_denied: $2해당 플레이어는 이 땅에서 차단되지 않았습니다.
|
||||||
you_got_denied: $4당신은 해당 땅으로부터 차단되었습니다 따라서 spawn으로 자동 이동 되었습니다.
|
you_got_denied: $4당신은 해당 땅으로부터 차단되었습니다 따라서 spawn으로 자동 이동 되었습니다.
|
||||||
rain:
|
rain:
|
||||||
@ -339,6 +347,7 @@ flag:
|
|||||||
flag_not_added: $2그 깃발은 추가될 수 없습니다
|
flag_not_added: $2그 깃발은 추가될 수 없습니다
|
||||||
flag_removed: $4깃발이 성공적으로 제거되었습니다
|
flag_removed: $4깃발이 성공적으로 제거되었습니다
|
||||||
flag_added: $4깃발이 성공적으로 추가되었습니다
|
flag_added: $4깃발이 성공적으로 추가되었습니다
|
||||||
|
not_valid_flag_suggested: '$2That is not a valid flag. Did you mean: $1%s'
|
||||||
trusted:
|
trusted:
|
||||||
trusted_added: $4당신은 그 땅에 유저를 성공적으로 위탁했습니다
|
trusted_added: $4당신은 그 땅에 유저를 성공적으로 위탁했습니다
|
||||||
trusted_removed: $4당신은 그 땅으로부터 신용(위탁)받은 유저를 성공적으로 제거했습니다.
|
trusted_removed: $4당신은 그 땅으로부터 신용(위탁)받은 유저를 성공적으로 제거했습니다.
|
||||||
@ -355,18 +364,39 @@ member:
|
|||||||
owner:
|
owner:
|
||||||
set_owner: $4당신은 땅의 소유자를 성공적으로 설정했습니다
|
set_owner: $4당신은 땅의 소유자를 성공적으로 설정했습니다
|
||||||
now_owner: $4당신은 이제 %s땅의 소유자입니다
|
now_owner: $4당신은 이제 %s땅의 소유자입니다
|
||||||
|
set_owner_cancelled: $2The setowner action was cancelled
|
||||||
signs:
|
signs:
|
||||||
owner_sign_line_1: '$1ID: $1%id%'
|
owner_sign_line_1: '$1ID: $1%id%'
|
||||||
owner_sign_line_2: '$1소유자:'
|
owner_sign_line_2: '$1소유자:'
|
||||||
owner_sign_line_3: $2%plr%
|
owner_sign_line_3: $2%plr%
|
||||||
owner_sign_line_4: $3Claimed
|
owner_sign_line_4: $3Claimed
|
||||||
help:
|
help:
|
||||||
help_header: "$3&m---------&r $1Plot\xb2 도움말 $3&m---------"
|
help_header: $3&m---------&r $1Plot² 도움말 $3&m---------
|
||||||
help_page_header: '$1Category: $2%category%$2,$1 Page: $2%current%$3/$2%max%$2'
|
help_page_header: '$1범주: $2%category%$2,$1 페이지: $2%current%$3/$2%max%$2'
|
||||||
help_footer: "$3&m---------&r $1Plot\xb2 도움말 $3&m---------"
|
help_footer: $3&m---------&r $1Plot² 도움말 $3&m---------
|
||||||
help_info_item: $1/plot help %category% $3- $2%category_desc%
|
help_info_item: $1/plot help %category% $3- $2%category_desc%
|
||||||
help_item: $1%usage% [%alias%]&- $3- $2%desc%&-
|
help_item: $1%usage% [%alias%]&- $3- $2%desc%&-
|
||||||
direction: '$1Current direction: %dir%'
|
direction: '$1현재 방향: %dir%'
|
||||||
'-':
|
'-':
|
||||||
custom_string: '-'
|
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'
|
@ -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'
|
|
@ -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: "-"
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user