diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index b193b6e5f..5b2fa30d2 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,7 +1,7 @@ # Bug report template - + **Debug paste link:** diff --git a/.github/auto-comment.yml b/.github/auto-comment.yml new file mode 100644 index 000000000..4aef8cae8 --- /dev/null +++ b/.github/auto-comment.yml @@ -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! diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 000000000..96a6248b7 --- /dev/null +++ b/.github/stale.yml @@ -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 diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/BukkitMain.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/BukkitMain.java index 45efce06b..5c569a296 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/BukkitMain.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/BukkitMain.java @@ -56,8 +56,7 @@ import static com.github.intellectualsites.plotsquared.plot.util.ReflectionUtils public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain { - @Getter - private static WorldEdit worldEdit; + @Getter private static WorldEdit worldEdit; private static Map pluginMap; static { @@ -125,7 +124,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain } catch (NumberFormatException e) { e.printStackTrace(); 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}; } } @@ -451,7 +451,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain Entity passenger = entity.getPassenger(); if (!(passenger instanceof Player) && entity .getMetadata("keep").isEmpty()) { - if (entity.hasMetadata("ps-tmp-teleport")) { + if (entity + .hasMetadata("ps-tmp-teleport")) { continue; } iterator.remove(); @@ -502,7 +503,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain && (currentPlotId == null || !area .getPlot(originalPlotId) .equals(area.getPlot(currentPlotId)))) { - if (entity.hasMetadata("ps-tmp-teleport")) { + if (entity + .hasMetadata("ps-tmp-teleport")) { continue; } iterator.remove(); @@ -540,12 +542,13 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain }, 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) { initPlotMeConverter(); Settings.Enabled_Components.PLOTME_CONVERTER = false; } - final IndependentPlotGenerator result; + final IndependentPlotGenerator result; if (id != null && id.equalsIgnoreCase("single")) { result = new SingleWorldGenerator(); } else { @@ -671,7 +674,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain 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) { return null; } @@ -854,8 +858,8 @@ public final class BukkitMain extends JavaPlugin implements Listener, IPlotMain } } - @Override - public GeneratorWrapper wrapPlotGenerator(@Nullable final String world, @NonNull final IndependentPlotGenerator generator) { + @Override public GeneratorWrapper wrapPlotGenerator(@Nullable final String world, + @NonNull final IndependentPlotGenerator generator) { return new BukkitPlotGenerator(generator); } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/chat/FancyMessage.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/chat/FancyMessage.java index 3b2c5bf82..41ec91e49 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/chat/FancyMessage.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/chat/FancyMessage.java @@ -155,7 +155,8 @@ public class FancyMessage // Assume composite type // The only composite type we currently store is another FancyMessage // 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")) { component.insertionData = entry.getValue().getAsString(); @@ -622,8 +623,7 @@ public class FancyMessage * @return This builder instance. */ public FancyMessage formattedTooltip(final Iterable lines) { - return formattedTooltip( - ArrayWrapper.toArray(lines, FancyMessage.class)); + return formattedTooltip(ArrayWrapper.toArray(lines, FancyMessage.class)); } /** @@ -664,8 +664,7 @@ public class FancyMessage * @return This builder instance. */ public FancyMessage translationReplacements(final Iterable replacements) { - return translationReplacements( - ArrayWrapper.toArray(replacements, FancyMessage.class)); + return translationReplacements(ArrayWrapper.toArray(replacements, FancyMessage.class)); } /** diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/chat/TextualComponent.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/chat/TextualComponent.java index b8fc6dfa5..14e3d2305 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/chat/TextualComponent.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/chat/TextualComponent.java @@ -48,7 +48,7 @@ public abstract class TextualComponent implements Cloneable { /** * Create a textual component representing a string literal. - *

+ * *

This is the default type of textual component when a single string * literal is given to a method. * @@ -98,7 +98,7 @@ public abstract class TextualComponent implements Cloneable { /** * 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. - *

+ * *

This method is currently guaranteed to throw an {@code UnsupportedOperationException} * as it is only supported on snapshot clients. * @@ -234,7 +234,7 @@ public abstract class TextualComponent implements Cloneable { /** * Internal class used to represent a text component with a nested JSON * value. - *

+ * *

Exception validating done is on keys and values. */ private static final class ComplexTextTypeComponent extends TextualComponent diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/ClassicPlotMeConnector.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/ClassicPlotMeConnector.java index 7016fabc8..8c8daaa57 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/ClassicPlotMeConnector.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/ClassicPlotMeConnector.java @@ -113,8 +113,8 @@ public class ClassicPlotMeConnector extends APlotMeConnector { } } if (name.isEmpty()) { - PlotSquared - .log("&cCould not identify owner for plot: " + id + " -> '" + name + "'"); + PlotSquared.log( + "&cCould not identify owner for plot: " + id + " -> '" + name + "'"); missing++; continue; } @@ -129,8 +129,10 @@ public class ClassicPlotMeConnector extends APlotMeConnector { } if (missing > 0) { PlotSquared.log("&cSome names could not be identified:"); - PlotSquared.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("&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( "&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)"); @@ -232,7 +234,7 @@ public class ClassicPlotMeConnector extends APlotMeConnector { } @Override public boolean accepts(String version) { - return version == null || PlotSquared.get().canUpdate(version, "0.17.0") || PlotSquared.get() - .canUpdate("0.999.999", version); + return version == null || PlotSquared.get().canUpdate(version, "0.17.0") || PlotSquared + .get().canUpdate("0.999.999", version); } } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/LikePlotMeConverter.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/LikePlotMeConverter.java index 8f8d7b90a..b17583107 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/LikePlotMeConverter.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/LikePlotMeConverter.java @@ -47,7 +47,8 @@ public class LikePlotMeConverter { } 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() { @@ -126,7 +127,8 @@ public class LikePlotMeConverter { PlotSquared.get().worlds.set("worlds." + world + ".wall.block_claimed", claimed); String floor = 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"); // PlotSquared.get().worlds .set("worlds." + world + ".plot.filling", Collections.singletonList(filling)); @@ -330,8 +332,8 @@ public class LikePlotMeConverter { // load world with MV Bukkit.getServer() .dispatchCommand(Bukkit.getServer().getConsoleSender(), - "mv import " + actualWorldName + " normal -g " + PlotSquared - .imp().getPluginName()); + "mv import " + actualWorldName + " normal -g " + + PlotSquared.imp().getPluginName()); } else if (mw) { // unload world with MW Bukkit.getServer() @@ -345,15 +347,15 @@ public class LikePlotMeConverter { // load world with MW Bukkit.getServer() .dispatchCommand(Bukkit.getServer().getConsoleSender(), - "mw create " + actualWorldName + " plugin:" + PlotSquared - .imp() - .getPluginName()); + "mw create " + actualWorldName + " plugin:" + + PlotSquared.imp().getPluginName()); } else { // Load using Bukkit API // - User must set generator manually Bukkit.getServer().unloadWorld(world, true); World myWorld = WorldCreator.name(actualWorldName).generator( - new BukkitPlotGenerator(PlotSquared.get().IMP.getDefaultGenerator())) + new BukkitPlotGenerator( + PlotSquared.get().IMP.getDefaultGenerator())) .createWorld(); myWorld.save(); } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/PlotMeConnector_017.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/PlotMeConnector_017.java index db35eec58..2df00092a 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/PlotMeConnector_017.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/database/plotme/PlotMeConnector_017.java @@ -58,7 +58,8 @@ public class PlotMeConnector_017 extends APlotMeConnector { PlotSquared.debug("======================================="); PlotSquared.debug( "&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; } boolean checkUUID = DBFunc.hasColumn(resultSet, "ownerID"); @@ -142,7 +143,8 @@ public class PlotMeConnector_017 extends APlotMeConnector { int key = resultSet.getInt("plot_id"); Plot plot = plots.get(key); if (plot == null) { - PlotSquared.log("&6Denied (" + key + ") references deleted plot; ignoring entry."); + PlotSquared + .log("&6Denied (" + key + ") references deleted plot; ignoring entry."); continue; } String player = resultSet.getString("player"); @@ -159,7 +161,8 @@ public class PlotMeConnector_017 extends APlotMeConnector { int key = resultSet.getInt("plot_id"); Plot plot = plots.get(key); if (plot == null) { - PlotSquared.log("&6Allowed (" + key + ") references deleted plot; ignoring entry."); + PlotSquared + .log("&6Allowed (" + key + ") references deleted plot; ignoring entry."); continue; } String player = resultSet.getString("player"); diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/events/PlotChangeOwnerEvent.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/events/PlotChangeOwnerEvent.java new file mode 100644 index 000000000..3fba03284 --- /dev/null +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/events/PlotChangeOwnerEvent.java @@ -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; + } +} diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/events/PlotRateEvent.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/events/PlotRateEvent.java index 29e7a8df7..b6ca46593 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/events/PlotRateEvent.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/events/PlotRateEvent.java @@ -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.PlotPlayer; import com.github.intellectualsites.plotsquared.plot.object.Rating; +import org.bukkit.event.Cancellable; 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 final PlotPlayer rater; private Rating rating; + private boolean cancelled = false; public PlotRateEvent(PlotPlayer rater, Rating rating, Plot plot) { super(plot); @@ -37,4 +39,11 @@ public class PlotRateEvent extends PlotEvent { return handlers; } + @Override public boolean isCancelled() { + return this.cancelled; + } + + @Override public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/generator/BukkitPlotGenerator.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/generator/BukkitPlotGenerator.java index 3b9dfffa8..fb19c1e93 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/generator/BukkitPlotGenerator.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/generator/BukkitPlotGenerator.java @@ -117,7 +117,8 @@ public class BukkitPlotGenerator extends ChunkGenerator @Override 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 diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/ChunkListener.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/ChunkListener.java index 23e31c0cc..7f38b7c79 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/ChunkListener.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/ChunkListener.java @@ -226,7 +226,8 @@ public class ChunkListener implements Listener { if (!chunk.isLoaded()) { Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(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); return; } @@ -234,7 +235,8 @@ public class ChunkListener implements Listener { if (tiles.length == 0) { Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(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); return; } @@ -244,7 +246,8 @@ public class ChunkListener implements Listener { if (i >= tiles.length) { Bukkit.getScheduler().cancelTask(TaskManager.tasks.get(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); return; } @@ -268,15 +271,15 @@ public class ChunkListener implements Listener { ent.remove(); } } - PlotSquared - .debug(C.PREFIX.s() + "&a detected unsafe chunk and processed: " + (chunk.getX() << 4) - + "," + (chunk.getX() << 4)); + PlotSquared.debug( + C.PREFIX.s() + "&a detected unsafe chunk and processed: " + (chunk.getX() << 4) + + "," + (chunk.getX() << 4)); } if (tiles.length > Settings.Chunk_Processor.MAX_TILES) { if (unload) { - PlotSquared - .debug(C.PREFIX.s() + "&c detected unsafe chunk: " + (chunk.getX() << 4) + "," + ( - chunk.getX() << 4)); + PlotSquared.debug( + C.PREFIX.s() + "&c detected unsafe chunk: " + (chunk.getX() << 4) + "," + ( + chunk.getX() << 4)); cleanChunk(chunk); return true; } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents.java index 49803d8ac..fc3787a1f 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents.java @@ -909,8 +909,10 @@ public class PlayerEvents extends PlotListener implements Listener { } } - @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) - public void onChat(AsyncPlayerChatEvent event) { + @EventHandler(priority = EventPriority.LOW) public void onChat(AsyncPlayerChatEvent event) { + if (event.isCancelled()) + return; + PlotPlayer plotPlayer = BukkitUtil.getPlayer(event.getPlayer()); Location location = plotPlayer.getLocation(); PlotArea area = location.getPlotArea(); @@ -2100,7 +2102,8 @@ public class PlayerEvents extends PlotListener implements Listener { return; } 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) public void onEntityCombustByEntity(EntityCombustByEntityEvent event) { 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(), EntityDamageEvent.DamageCause.FIRE_TICK, (double) event.getDuration()); } else { diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_8.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_8.java index 0ec6acaa3..1fa202b7a 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_8.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/listeners/PlayerEvents_1_8.java @@ -42,7 +42,8 @@ public class PlayerEvents_1_8 extends PlotListener implements Listener { return; } 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; } Player player = (Player) entity; diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/EntityWrapper.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/EntityWrapper.java index bc1561217..d0b6f28b5 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/EntityWrapper.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/EntityWrapper.java @@ -7,18 +7,15 @@ import org.bukkit.World; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; -@Getter -public abstract class EntityWrapper { - - private final Entity entity; - private final EntityType type; - - public double x; - public double y; - public double z; +@Getter public abstract class EntityWrapper { protected final float yaw; 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) { this.entity = entity; diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/ReplicatingEntityWrapper.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/ReplicatingEntityWrapper.java index 4ea5055af..04e9d2f5e 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/ReplicatingEntityWrapper.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/ReplicatingEntityWrapper.java @@ -53,7 +53,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { if (depth == 1) { 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) { if (!entity.hasGravity()) { this.noGravity = true; @@ -62,8 +63,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { switch (entity.getType()) { case ARROW: case BOAT: - if (PlotSquared - .get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) { + if (PlotSquared.get() + .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) { Boat boat = (Boat) entity; this.dataByte = getOrdinal(TreeSpecies.values(), boat.getWoodType()); } @@ -188,8 +189,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { storeLiving((LivingEntity) entity); return; case SKELETON: - this.dataByte = - getOrdinal(Skeleton.SkeletonType.values(), ((Skeleton) entity).getSkeletonType()); + this.dataByte = getOrdinal(Skeleton.SkeletonType.values(), + ((Skeleton) entity).getSkeletonType()); storeLiving((LivingEntity) entity); return; case ARMOR_STAND: @@ -323,7 +324,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { void restoreEquipment(LivingEntity entity) { 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.setItemInOffHand(this.lived.offHand); } else { @@ -367,7 +369,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { } 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.offHand = equipment.getItemInOffHand().clone(); } else { @@ -412,8 +415,7 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { this.tamed.tamed = tamed.isTamed(); } - @Override - public Entity spawn(World world, int xOffset, int zOffset) { + @Override public Entity spawn(World world, int xOffset, int zOffset) { Location location = new Location(world, this.x + xOffset, this.y, this.z + zOffset); location.setYaw(this.yaw); location.setPitch(this.pitch); @@ -459,7 +461,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { if (this.depth == 1) { 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) { if (this.noGravity) { entity.setGravity(false); @@ -468,8 +471,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { switch (entity.getType()) { case ARROW: case BOAT: - if (PlotSquared - .get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) { + if (PlotSquared.get() + .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_0)) { Boat boat = (Boat) entity; boat.setWoodType(TreeSpecies.values()[dataByte]); } @@ -592,7 +595,8 @@ public final class ReplicatingEntityWrapper extends EntityWrapper { return entity; case SKELETON: if (this.dataByte != 0) { - ((Skeleton) entity).setSkeletonType(Skeleton.SkeletonType.values()[this.dataByte]); + ((Skeleton) entity) + .setSkeletonType(Skeleton.SkeletonType.values()[this.dataByte]); } storeLiving((LivingEntity) 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) { for (byte i = 0; i < list.length; i++) { diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/TeleportEntityWrapper.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/TeleportEntityWrapper.java index a7cd20e85..7456ae10e 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/TeleportEntityWrapper.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/object/entity/TeleportEntityWrapper.java @@ -52,10 +52,11 @@ public class TeleportEntityWrapper extends EntityWrapper { this.getEntity().setInvulnerable(true); this.fireTicksOld = this.getEntity().getFireTicks(); this.livingTicksOld = this.getEntity().getTicksLived(); - this.getEntity().setMetadata("ps-tmp-teleport", new FixedMetadataValue( - BukkitMain.getPlugin(BukkitMain.class), oldLocation)); + this.getEntity().setMetadata("ps-tmp-teleport", + new FixedMetadataValue(BukkitMain.getPlugin(BukkitMain.class), oldLocation)); 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() { diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_111.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_111.java index 8dcdc6a76..8b8f14e61 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_111.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/titles/DefaultTitle_111.java @@ -12,8 +12,8 @@ import org.bukkit.entity.Player; private final boolean valid; public DefaultTitle_111() { - this.valid = PlotSquared - .get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_11_0); + this.valid = PlotSquared.get() + .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_11_0); } @Override diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitChunkManager.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitChunkManager.java index 6c82721ef..c2226e077 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitChunkManager.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitChunkManager.java @@ -101,13 +101,16 @@ public class BukkitChunkManager extends ChunkManager { return chunks; } - @Override 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, + @Override + 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 int relX = newPos.getX() - pos1.getX(); final int relZ = newPos.getZ() - pos1.getZ(); 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 = new RegionWrapper(pos1.getX(), pos2.getX(), pos1.getZ(), pos2.getZ()); @@ -159,7 +162,9 @@ public class BukkitChunkManager extends ChunkManager { 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 String world = pos1.getWorld(); @@ -315,8 +320,9 @@ public class BukkitChunkManager extends ChunkManager { return true; } - @Override public void clearAllEntities( - com.github.intellectualsites.plotsquared.plot.object.Location pos1, com.github.intellectualsites.plotsquared.plot.object.Location pos2) { + @Override + public void clearAllEntities(com.github.intellectualsites.plotsquared.plot.object.Location pos1, + com.github.intellectualsites.plotsquared.plot.object.Location pos2) { String world = pos1.getWorld(); List entities = BukkitUtil.getEntities(world); 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) { RegionWrapper region1 = 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) { 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 z = loc.getZ(); 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, boolean delete) { 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 z = loc.getZ(); if (!isIn(region, x, z)) { @@ -894,14 +905,16 @@ public class BukkitChunkManager extends ChunkManager { ((NoteBlock) state).setNote(blockLocNoteEntry.getValue()); state.update(true); } else { - PlotSquared.debug("&c[WARN] Plot clear failed to regenerate note block: " + ( - blockLocNoteEntry.getKey().x + xOffset) + ',' + blockLocNoteEntry - .getKey().y + ',' + (blockLocNoteEntry.getKey().z + zOffset)); + PlotSquared.debug( + "&c[WARN] Plot clear failed to regenerate note block: " + ( + blockLocNoteEntry.getKey().x + xOffset) + ',' + blockLocNoteEntry + .getKey().y + ',' + (blockLocNoteEntry.getKey().z + zOffset)); } } catch (Exception ignored) { - PlotSquared.debug("&c[WARN] Plot clear failed to regenerate note block (e): " + ( - blockLocNoteEntry.getKey().x + xOffset) + ',' + blockLocNoteEntry.getKey().y - + ',' + (blockLocNoteEntry.getKey().z + zOffset)); + PlotSquared.debug( + "&c[WARN] Plot clear failed to regenerate note block (e): " + ( + blockLocNoteEntry.getKey().x + xOffset) + ',' + blockLocNoteEntry + .getKey().y + ',' + (blockLocNoteEntry.getKey().z + zOffset)); } } for (Entry blockLocShortEntry : this.brewTime.entrySet()) { @@ -912,16 +925,16 @@ public class BukkitChunkManager extends ChunkManager { if (state instanceof BrewingStand) { ((BrewingStand) state).setBrewingTime(blockLocShortEntry.getValue()); } else { - PlotSquared - .debug("&c[WARN] Plot clear failed to restore brewing stand cooking: " + ( - blockLocShortEntry.getKey().x + xOffset) + ',' + blockLocShortEntry - .getKey().y + ',' + (blockLocShortEntry.getKey().z + zOffset)); + PlotSquared.debug( + "&c[WARN] Plot clear failed to restore brewing stand cooking: " + ( + blockLocShortEntry.getKey().x + xOffset) + ',' + blockLocShortEntry + .getKey().y + ',' + (blockLocShortEntry.getKey().z + zOffset)); } } catch (Exception ignored) { - PlotSquared - .debug("&c[WARN] Plot clear failed to restore brewing stand cooking (e): " + ( - blockLocShortEntry.getKey().x + xOffset) + ',' + blockLocShortEntry - .getKey().y + ',' + (blockLocShortEntry.getKey().z + zOffset)); + PlotSquared.debug( + "&c[WARN] Plot clear failed to restore brewing stand cooking (e): " + ( + blockLocShortEntry.getKey().x + xOffset) + ',' + blockLocShortEntry + .getKey().y + ',' + (blockLocShortEntry.getKey().z + zOffset)); } } for (Entry blockLocEntityTypeEntry : this.spawnerData @@ -957,14 +970,17 @@ public class BukkitChunkManager extends ChunkManager { ((CommandBlock) state).setCommand(blockLocStringEntry.getValue()); state.update(true); } else { - PlotSquared.debug("&c[WARN] Plot clear failed to restore command block: " + ( - blockLocStringEntry.getKey().x + xOffset) + ',' + blockLocStringEntry - .getKey().y + ',' + (blockLocStringEntry.getKey().z + zOffset)); + PlotSquared.debug( + "&c[WARN] Plot clear failed to restore command block: " + ( + blockLocStringEntry.getKey().x + xOffset) + ',' + + blockLocStringEntry.getKey().y + ',' + ( + blockLocStringEntry.getKey().z + zOffset)); } } catch (Exception ignored) { - PlotSquared.debug("&c[WARN] Plot clear failed to restore command block (e): " + ( - blockLocStringEntry.getKey().x + xOffset) + ',' + blockLocStringEntry - .getKey().y + ',' + (blockLocStringEntry.getKey().z + zOffset)); + PlotSquared.debug( + "&c[WARN] Plot clear failed to restore command block (e): " + ( + blockLocStringEntry.getKey().x + xOffset) + ',' + blockLocStringEntry + .getKey().y + ',' + (blockLocStringEntry.getKey().z + zOffset)); } } for (Entry blockLocEntry : this.brewingStandContents @@ -979,16 +995,16 @@ public class BukkitChunkManager extends ChunkManager { .setContents(blockLocEntry.getValue()); state.update(true); } else { - PlotSquared - .debug("&c[WARN] Plot clear failed to regenerate brewing stand: " + ( - blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y - + ',' + (blockLocEntry.getKey().z + zOffset)); + PlotSquared.debug( + "&c[WARN] Plot clear failed to regenerate brewing stand: " + ( + blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y + + ',' + (blockLocEntry.getKey().z + zOffset)); } } catch (IllegalArgumentException ignored) { - PlotSquared - .debug("&c[WARN] Plot clear failed to regenerate brewing stand (e): " + ( - blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y + ',' - + (blockLocEntry.getKey().z + zOffset)); + PlotSquared.debug( + "&c[WARN] Plot clear failed to regenerate brewing stand (e): " + ( + blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y + + ',' + (blockLocEntry.getKey().z + zOffset)); } } for (Entry blockLocEntry : this.furnaceTime.entrySet()) { @@ -1002,16 +1018,16 @@ public class BukkitChunkManager extends ChunkManager { ((Furnace) state).setBurnTime(time[0]); ((Furnace) state).setCookTime(time[1]); } else { - PlotSquared - .debug("&c[WARN] Plot clear failed to restore furnace cooking: " + ( - blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y - + ',' + (blockLocEntry.getKey().z + zOffset)); + PlotSquared.debug( + "&c[WARN] Plot clear failed to restore furnace cooking: " + ( + blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y + + ',' + (blockLocEntry.getKey().z + zOffset)); } } catch (Exception ignored) { - PlotSquared - .debug("&c[WARN] Plot clear failed to restore furnace cooking (e): " + ( - blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y + ',' - + (blockLocEntry.getKey().z + zOffset)); + PlotSquared.debug( + "&c[WARN] Plot clear failed to restore furnace cooking (e): " + ( + blockLocEntry.getKey().x + xOffset) + ',' + blockLocEntry.getKey().y + + ',' + (blockLocEntry.getKey().z + zOffset)); } } for (Entry blockLocEntry : this.furnaceContents.entrySet()) { diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitEventUtil.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitEventUtil.java index 5a202a62b..4b7df7471 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitEventUtil.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitEventUtil.java @@ -10,6 +10,7 @@ import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.Event; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.UUID; @@ -83,14 +84,23 @@ public class BukkitEventUtil extends EventUtil { 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) { 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); Bukkit.getServer().getPluginManager().callEvent(event); + if (event.isCancelled()) { + return null; + } return event.getRating(); } - } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitSetupUtils.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitSetupUtils.java index d56dba523..efdb034cd 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitSetupUtils.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitSetupUtils.java @@ -132,8 +132,10 @@ public class BukkitSetupUtils extends SetupUtils { worldSection.set(step.getConstant(), step.getValue()); } PlotSquared.get().worlds.set("worlds." + world + ".generator.type", object.type); - PlotSquared.get().worlds.set("worlds." + world + ".generator.terrain", object.terrain); - PlotSquared.get().worlds.set("worlds." + world + ".generator.plugin", object.plotManager); + PlotSquared.get().worlds + .set("worlds." + world + ".generator.terrain", object.terrain); + PlotSquared.get().worlds + .set("worlds." + world + ".generator.plugin", object.plotManager); if (object.setupGenerator != null && !object.setupGenerator .equals(object.plotManager)) { PlotSquared.get().worlds diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitUtil.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitUtil.java index 8b6d3662c..f095821ce 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitUtil.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/BukkitUtil.java @@ -24,8 +24,7 @@ import org.bukkit.material.*; import javax.annotation.Nullable; import java.util.*; -@SuppressWarnings({"unused", "WeakerAccess"}) -public class BukkitUtil extends WorldUtil { +@SuppressWarnings({"unused", "WeakerAccess"}) public class BukkitUtil extends WorldUtil { private static String lastString = null; private static World lastWorld = null; @@ -86,7 +85,7 @@ public class BukkitUtil extends WorldUtil { /** * Get the PlotPlayer for an offline player. - *

+ * *

Note that this will work if the player is offline, however not all * functionality will work. * @@ -242,8 +241,9 @@ public class BukkitUtil extends WorldUtil { return getWorld(world).getBiome(x, z).name(); } - @Override @SuppressWarnings("deprecation") public void setSign(@NonNull final String worldName, - final int x, final int y, final int z, @NonNull final String[] lines) { + @Override @SuppressWarnings("deprecation") + 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 Block block = world.getBlockAt(x, y, z); // block.setType(Material.AIR); @@ -351,7 +351,8 @@ public class BukkitUtil extends WorldUtil { 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 Block block = world.getBlockAt(items.x, items.y, items.z); if (block == null) { @@ -403,7 +404,8 @@ public class BukkitUtil extends WorldUtil { } } - @Override @Nullable public StringComparison.ComparisonResult getClosestBlock(String name) { + @Override @Nullable + public StringComparison.ComparisonResult getClosestBlock(String name) { try { final Material material = Material.valueOf(name.toUpperCase()); return new StringComparison().new ComparisonResult(0, @@ -439,7 +441,8 @@ public class BukkitUtil extends WorldUtil { 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) { final World world = getWorld(worldName); final Biome biome = Biome.valueOf(biomeString.toUpperCase()); diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SendChunk.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SendChunk.java index 250e89d56..b82be5ca5 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SendChunk.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SendChunk.java @@ -50,7 +50,8 @@ public class SendChunk { RefClass classChunk = getRefClass("{nms}.Chunk"); this.methodInitLighting = classChunk.getMethod("initLighting"); 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 tempMapChunk = classMapChunk.getConstructor(classChunk.getRealClass(), int.class); } else { @@ -118,8 +119,8 @@ public class SendChunk { chunks.remove(chunk); Object con = this.connection.of(entity).get(); Object packet = null; - if (PlotSquared - .get().checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_4)) { + if (PlotSquared.get() + .checkVersion(PlotSquared.get().IMP.getServerVersion(), BukkitVersion.v1_9_4)) { try { packet = this.mapChunk.create(c, 65535); } catch (Exception ignored) { @@ -148,10 +149,11 @@ public class SendChunk { chunk.unload(true, false); } catch (Throwable ignored) { String worldName = chunk.getWorld().getName(); + PlotSquared.debug( + "$4Could not save chunk: " + worldName + ';' + chunk.getX() + ";" + + chunk.getZ()); PlotSquared - .debug("$4Could not save chunk: " + worldName + ';' + chunk.getX() + ";" - + chunk.getZ()); - PlotSquared.debug("$3 - $4File may be open in another process (e.g. MCEdit)"); + .debug("$3 - $4File may be open in another process (e.g. MCEdit)"); PlotSquared.debug("$3 - $4" + worldName + "/level.dat or " + worldName + "/level_old.dat may be corrupt (try repairing or removing these)"); } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SetGenCB.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SetGenCB.java index 3266a8051..110635f2d 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SetGenCB.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/util/SetGenCB.java @@ -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)); } } diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/uuid/FileUUIDHandler.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/uuid/FileUUIDHandler.java index 1f021292b..2223feceb 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/uuid/FileUUIDHandler.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/uuid/FileUUIDHandler.java @@ -203,7 +203,8 @@ public class FileUUIDHandler extends UUIDHandlerImplementation { } } } 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) { diff --git a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/uuid/SQLUUIDHandler.java b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/uuid/SQLUUIDHandler.java index 72378eb6e..1c9a30bba 100644 --- a/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/uuid/SQLUUIDHandler.java +++ b/Bukkit/src/main/java/com/github/intellectualsites/plotsquared/bukkit/uuid/SQLUUIDHandler.java @@ -43,7 +43,8 @@ public class SQLUUIDHandler extends UUIDHandlerImplementation { public SQLUUIDHandler(UUIDWrapper 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 { this.sqlite.openConnection(); } catch (ClassNotFoundException | SQLException e) { @@ -221,7 +222,8 @@ public class SQLUUIDHandler extends UUIDHandlerImplementation { statement.setString(1, uuid.toString()); statement.setString(2, name.toString()); 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) { e.printStackTrace(); } @@ -244,8 +246,8 @@ public class SQLUUIDHandler extends UUIDHandlerImplementation { statement.setString(1, name.value); statement.setString(2, uuid.toString()); statement.execute(); - PlotSquared - .debug(C.PREFIX + "Name change for '" + uuid + "' to '" + name.value + '\''); + PlotSquared.debug( + C.PREFIX + "Name change for '" + uuid + "' to '" + name.value + '\''); } catch (SQLException e) { e.printStackTrace(); } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/api/PlotAPI.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/api/PlotAPI.java index 973a6230f..c966903be 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/api/PlotAPI.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/api/PlotAPI.java @@ -22,7 +22,7 @@ import java.util.UUID; /** * PlotSquared API. - *

+ * *

Useful classes: *

    *
  • {@link PlotPlayer}
  • @@ -34,9 +34,7 @@ import java.util.UUID; * * @version 3.3.3 */ -@SuppressWarnings({"unused", "WeakerAccess"}) -@NoArgsConstructor -public class PlotAPI { +@SuppressWarnings({"unused", "WeakerAccess"}) @NoArgsConstructor public class PlotAPI { /** * Get all plots. @@ -201,7 +199,7 @@ public class PlotAPI { /** * Get the PlotPlayer for a UUID. - *

    + * *

    Please note that PlotSquared can be configured to provide * different UUIDs than bukkit * diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/commands/Command.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/commands/Command.java index c07496697..6bac09a26 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/commands/Command.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/commands/Command.java @@ -166,8 +166,8 @@ public abstract class Command { options.put("usage", declaration.usage()); options.put("confirmation", declaration.confirmation()); boolean set = false; - YamlConfiguration commands = PlotSquared.get() == null ? new YamlConfiguration() : PlotSquared - .get().commands; + YamlConfiguration commands = + PlotSquared.get() == null ? new YamlConfiguration() : PlotSquared.get().commands; for (Map.Entry entry : options.entrySet()) { String key = this.getFullId() + "." + entry.getKey(); if (!commands.contains(key)) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/ConfigurationOptions.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/ConfigurationOptions.java index d26cac65d..5d13920e4 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/ConfigurationOptions.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/ConfigurationOptions.java @@ -25,7 +25,7 @@ class ConfigurationOptions { /** * Gets the char that will be used to separate {@link * ConfigurationSection}s. - *

    + * *

    This value does not affect how the {@link Configuration} is stored, * only in how you access the data. The default value is '.'. * @@ -38,7 +38,7 @@ class ConfigurationOptions { /** * Sets the char that will be used to separate {@link * ConfigurationSection}s. - *

    + * *

    This value does not affect how the {@link Configuration} is stored, * only in how you access the data. The default value is '.'. * @@ -53,7 +53,7 @@ class ConfigurationOptions { /** * Checks if the {@link Configuration} should copy values from its default * {@link Configuration} directly. - *

    + * *

    If this is true, all values in the default Configuration will be * directly copied, making it impossible to distinguish between values * that were set and values that are provided by default. As a result, @@ -71,7 +71,7 @@ class ConfigurationOptions { /** * Sets if the {@link Configuration} should copy values from its default * {@link Configuration} directly. - *

    + * *

    If this is true, all values in the default Configuration will be * directly copied, making it impossible to distinguish between values * that were set and values that are provided by default. As a result, diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/ConfigurationSection.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/ConfigurationSection.java index 9f4fc7da4..0752dfb57 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/ConfigurationSection.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/ConfigurationSection.java @@ -11,11 +11,11 @@ public interface ConfigurationSection { /** * Gets a set containing all keys in this section. - *

    + * *

    If deep is set to true, then this will contain all the keys within any * child {@link ConfigurationSection}s (and their children, etc). These * will be in a valid path notation for you to use. - *

    + * *

    If deep is set to false, then this will contain only the keys of any * direct children, and not their own children. * @@ -27,11 +27,11 @@ public interface ConfigurationSection { /** * Gets a Map containing all keys and their values for this section. - *

    + * *

    If deep is set to true, then this will contain all the keys and values * within any child {@link ConfigurationSection}s (and their children, * etc). These keys will be in a valid path notation for you to use. - *

    + * *

    If deep is set to false, then this will contain only the keys and * values of any direct children, and not their own children. * @@ -43,7 +43,7 @@ public interface ConfigurationSection { /** * Checks if this {@link ConfigurationSection} contains the given path. - *

    + * *

    If the value for the requested path does not exist but a default value * has been specified, this will return true. * @@ -57,7 +57,7 @@ public interface ConfigurationSection { /** * Checks if this {@link ConfigurationSection} has a value set for the * given path. - *

    + * *

    If the value for the requested path does not exist but a default value * has been specified, this will still return false. * @@ -71,14 +71,14 @@ public interface ConfigurationSection { /** * Gets the path of this {@link ConfigurationSection} from its root {@link * Configuration}. - *

    + * *

    For any {@link Configuration} themselves, this will return an empty * string. - *

    + * *

    If the section is no longer contained within its root for any reason, * such as being replaced with a different value, * this may return {@code null}. - *

    + * *

    To retrieve the single name of this section, that is, the final part * of the path returned by this method, you may use {@link #getName()}. * @@ -89,7 +89,7 @@ public interface ConfigurationSection { /** * Gets the name of this individual {@link ConfigurationSection}, in the * path. - *

    + * *

    This will always be the final part of {@link #getCurrentPath()}, unless * the section is orphaned. * @@ -100,10 +100,10 @@ public interface ConfigurationSection { /** * Gets the root {@link Configuration} that contains this {@link * ConfigurationSection} - *

    + * *

    For any {@link Configuration} themselves, this will return its own * object. - *

    + * *

    If the section is no longer contained within its root for any reason, * such as being replaced with a different value, * this may return {@code null}. @@ -115,10 +115,10 @@ public interface ConfigurationSection { /** * Gets the parent {@link ConfigurationSection} that directly contains * this {@link ConfigurationSection}. - *

    + * *

    For any {@link Configuration} themselves, this will return * {@code null}. - *

    + * *

    If the section is no longer contained within its parent for any * reason, such as being replaced with a different value, this may * return {@code null}. @@ -129,7 +129,7 @@ public interface ConfigurationSection { /** * Gets the requested Object by path. - *

    + * *

    If the Object does not exist but a default value has been specified, * this will return the default value. If the Object does not exist and no * default value was specified, this will return {@code null}. @@ -142,7 +142,7 @@ public interface ConfigurationSection { /** * Gets the requested Object by path, returning a default value if not * found. - *

    + * *

    If the Object does not exist then the specified default value will * returned regardless of if a default has been identified in the root * {@link Configuration}. @@ -155,10 +155,10 @@ public interface ConfigurationSection { /** * Sets the specified path to the given value. - *

    + * *

    If value is {@code null}, the entry will be removed. Any * existing entry will be replaced, regardless of what the new value is. - *

    + * *

    Some implementations may have limitations on what you may store. See * their individual javadoc for details. No implementations should allow * you to store {@link Configuration}s or {@link ConfigurationSection}s, @@ -171,7 +171,7 @@ public interface ConfigurationSection { /** * Creates an empty {@link ConfigurationSection} at the specified path. - *

    + * *

    Any value that was previously set at this path will be overwritten. If * the previous value was itself a {@link ConfigurationSection}, it will * be orphaned. @@ -184,7 +184,7 @@ public interface ConfigurationSection { /** * Creates a {@link ConfigurationSection} at the specified path, with * specified values. - *

    + * *

    Any value that was previously set at this path will be overwritten. If * the previous value was itself a {@link ConfigurationSection}, it will * be orphaned. @@ -199,7 +199,7 @@ public interface ConfigurationSection { /** * Gets the requested String by path. - *

    + * *

    If the String does not exist but a default value has been specified, * this will return the default value. If the String does not exist and no * default value was specified, this will return {@code null}. @@ -212,7 +212,7 @@ public interface ConfigurationSection { /** * Gets the requested String by path, returning a default value if not * found. - *

    + * *

    If the String does not exist then the specified default value will * returned regardless of if a default has been identified in the root * {@link Configuration}. @@ -226,7 +226,7 @@ public interface ConfigurationSection { /** * Checks if the specified path is a String. - *

    + * *

    If the path exists but is not a String, this will return false. If * the path does not exist, this will return false. If the path does not * exist but a default value has been specified, this will check if that @@ -239,7 +239,7 @@ public interface ConfigurationSection { /** * Gets the requested int by path. - *

    + * *

    If the int does not exist but a default value has been specified, this * will return the default value. If the int does not exist and no default * value was specified, this will return 0. @@ -251,7 +251,7 @@ public interface ConfigurationSection { /** * Gets the requested int by path, returning a default value if not found. - *

    + * *

    If the int does not exist then the specified default value will * returned regardless of if a default has been identified in the root * {@link Configuration}. @@ -265,7 +265,7 @@ public interface ConfigurationSection { /** * Checks if the specified path is an int. - *

    + * *

    If the path exists but is not a int, this will return false. If the * path does not exist, this will return false. If the path does not exist * but a default value has been specified, this will check if that default @@ -278,7 +278,7 @@ public interface ConfigurationSection { /** * Gets the requested boolean by path. - *

    + * *

    If the boolean does not exist but a default value has been specified, * this will return the default value. If the boolean does not exist and * no default value was specified, this will return false. @@ -291,7 +291,7 @@ public interface ConfigurationSection { /** * Gets the requested boolean by path, returning a default value if not * found. - *

    + * *

    If the boolean does not exist then the specified default value will * returned regardless of if a default has been identified in the root * {@link Configuration}. @@ -305,7 +305,7 @@ public interface ConfigurationSection { /** * Checks if the specified path is a boolean. - *

    + * *

    If the path exists but is not a boolean, this will return false. If the * path does not exist, this will return false. If the path does not exist * but a default value has been specified, this will check if that default @@ -318,7 +318,7 @@ public interface ConfigurationSection { /** * Gets the requested double by path. - *

    + * *

    If the double does not exist but a default value has been specified, * this will return the default value. If the double does not exist and no * default value was specified, this will return 0. @@ -331,7 +331,7 @@ public interface ConfigurationSection { /** * Gets the requested double by path, returning a default value if not * found. - *

    + * *

    If the double does not exist then the specified default value will * returned regardless of if a default has been identified in the root * {@link Configuration}. @@ -345,7 +345,7 @@ public interface ConfigurationSection { /** * Checks if the specified path is a double. - *

    + * *

    If the path exists but is not a double, this will return false. If the * path does not exist, this will return false. If the path does not exist * but a default value has been specified, this will check if that default @@ -358,7 +358,7 @@ public interface ConfigurationSection { /** * Gets the requested long by path. - *

    + * *

    If the long does not exist but a default value has been specified, this * will return the default value. If the long does not exist and no * default value was specified, this will return 0. @@ -371,7 +371,7 @@ public interface ConfigurationSection { /** * Gets the requested long by path, returning a default value if not * found. - *

    + * *

    If the long does not exist then the specified default value will * returned regardless of if a default has been identified in the root * {@link Configuration}. @@ -385,7 +385,7 @@ public interface ConfigurationSection { /** * Checks if the specified path is a long. - *

    + * *

    If the path exists but is not a long, this will return false. If the * path does not exist, this will return false. If the path does not exist * but a default value has been specified, this will check if that default @@ -400,7 +400,7 @@ public interface ConfigurationSection { /** * Gets the requested List by path. - *

    + * *

    If the List does not exist but a default value has been specified, this * will return the default value. If the List does not exist and no * default value was specified, this will return null. @@ -413,7 +413,7 @@ public interface ConfigurationSection { /** * Gets the requested List by path, returning a default value if not * found. - *

    + * *

    If the List does not exist then the specified default value will * returned regardless of if a default has been identified in the root * {@link Configuration}. @@ -427,7 +427,7 @@ public interface ConfigurationSection { /** * Checks if the specified path is a List. - *

    + * *

    If the path exists but is not a List, this will return false. If the * path does not exist, this will return false. If the path does not exist * but a default value has been specified, this will check if that default @@ -440,11 +440,11 @@ public interface ConfigurationSection { /** * Gets the requested List of String by path. - *

    + * *

    If the List does not exist but a default value has been specified, * this will return the default value. If the List does not exist and no * default value was specified, this will return an empty List. - *

    + * *

    This method will attempt to cast any values into a String if possible, * but may miss any values out if they are not compatible. * @@ -455,11 +455,11 @@ public interface ConfigurationSection { /** * Gets the requested List of Integer by path. - *

    + * *

    If the List does not exist but a default value has been specified, * this will return the default value. If the List does not exist and no * default value was specified, this will return an empty List. - *

    + * *

    This method will attempt to cast any values into a Integer if * possible, but may miss any values out if they are not compatible. * @@ -470,11 +470,11 @@ public interface ConfigurationSection { /** * Gets the requested List of Boolean by path. - *

    + * *

    If the List does not exist but a default value has been specified, * this will return the default value. If the List does not exist and no * default value was specified, this will return an empty List. - *

    + * *

    This method will attempt to cast any values into a Boolean if * possible, but may miss any values out if they are not compatible. * @@ -485,11 +485,11 @@ public interface ConfigurationSection { /** * Gets the requested List of Double by path. - *

    + * *

    If the List does not exist but a default value has been specified, * this will return the default value. If the List does not exist and no * default value was specified, this will return an empty List. - *

    + * *

    This method will attempt to cast any values into a Double if possible, * but may miss any values out if they are not compatible. * @@ -500,11 +500,11 @@ public interface ConfigurationSection { /** * Gets the requested List of Float by path. - *

    + * *

    If the List does not exist but a default value has been specified, * this will return the default value. If the List does not exist and no * default value was specified, this will return an empty List. - *

    + * *

    This method will attempt to cast any values into a Float if possible, * but may miss any values out if they are not compatible. * @@ -515,11 +515,11 @@ public interface ConfigurationSection { /** * Gets the requested List of Long by path. - *

    + * *

    If the List does not exist but a default value has been specified, * this will return the default value. If the List does not exist and no * default value was specified, this will return an empty List. - *

    + * *

    This method will attempt to cast any values into a Long if possible, * but may miss any values out if they are not compatible. * @@ -530,11 +530,11 @@ public interface ConfigurationSection { /** * Gets the requested List of Byte by path. - *

    + * *

    If the List does not exist but a default value has been specified, * this will return the default value. If the List does not exist and no * default value was specified, this will return an empty List. - *

    + * *

    This method will attempt to cast any values into a Byte if possible, * but may miss any values out if they are not compatible. * @@ -545,11 +545,11 @@ public interface ConfigurationSection { /** * Gets the requested List of Character by path. - *

    + * *

    If the List does not exist but a default value has been specified, * this will return the default value. If the List does not exist and no * default value was specified, this will return an empty List. - *

    + * *

    This method will attempt to cast any values into a Character if * possible, but may miss any values out if they are not compatible. * @@ -560,11 +560,11 @@ public interface ConfigurationSection { /** * Gets the requested List of Short by path. - *

    + * *

    If the List does not exist but a default value has been specified, * this will return the default value. If the List does not exist and no * default value was specified, this will return an empty List. - *

    + * *

    This method will attempt to cast any values into a Short if * possible, but may miss any values out if they are not compatible. * @@ -575,7 +575,7 @@ public interface ConfigurationSection { /** * Gets the requested List of Maps by path. - *

    + * *

    If the List does not exist but a default value has been specified, * this will return the default value. If the List does not exist and no * default value was specified, this will return an empty List. @@ -589,7 +589,7 @@ public interface ConfigurationSection { /** * Gets the requested ConfigurationSection by path. - *

    + * *

    If the ConfigurationSection does not exist but a default value has * been specified, this will return the default value. If the * ConfigurationSection does not exist and no default value was specified, @@ -602,7 +602,7 @@ public interface ConfigurationSection { /** * Checks if the specified path is a ConfigurationSection. - *

    + * *

    If the path exists but is not a ConfigurationSection, this will return * false. If the path does not exist, this will return false. If the path * does not exist but a default value has been specified, this will check @@ -617,7 +617,7 @@ public interface ConfigurationSection { /** * Gets the equivalent {@link ConfigurationSection} from the default * {@link Configuration} defined in {@link #getRoot()}. - *

    + * *

    If the root contains no defaults, or the defaults doesn't contain a * value for this path, or the value at this path is not a {@link * ConfigurationSection} then this will return {@code null}. @@ -628,14 +628,14 @@ public interface ConfigurationSection { /** * Sets the default value in the root at the given path as provided. - *

    + * *

    If no source {@link Configuration} was provided as a default * collection, then a new {@link MemoryConfiguration} will be created to * hold the new default value. - *

    + * *

    If value is {@code null}, the value will be removed from the * default Configuration source. - *

    + * *

    If the value as returned by {@link #getDefaultSection()} is * {@code null}, then this will create a new section at the path, * replacing anything that may have existed there previously. diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/MemorySection.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/MemorySection.java index ddc2506bd..0f87931f4 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/MemorySection.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/MemorySection.java @@ -16,7 +16,7 @@ public class MemorySection implements ConfigurationSection { /** * Creates an empty MemorySection for use as a root {@link Configuration} * section. - *

    + * *

    Note that calling this without being yourself a {@link Configuration} * will throw an exception! * @@ -113,7 +113,7 @@ public class MemorySection implements ConfigurationSection { /** * Creates a full path to the given {@link ConfigurationSection} from its * root {@link Configuration}. - *

    + * *

    You may use this method for any given {@link ConfigurationSection}, not * only {@link MemorySection}. * @@ -128,7 +128,7 @@ public class MemorySection implements ConfigurationSection { /** * Creates a relative path to the given {@link ConfigurationSection} from * the given relative section. - *

    + * *

    You may use this method for any given {@link ConfigurationSection}, not * only {@link MemorySection}. * diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/FileConfiguration.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/FileConfiguration.java index 23a976e7d..668509bf3 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/FileConfiguration.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/FileConfiguration.java @@ -31,11 +31,11 @@ public abstract class FileConfiguration extends MemoryConfiguration { /** * Saves this {@link FileConfiguration} to the specified location. - *

    + * *

    If the file does not exist, it will be created. If already exists, it * will be overwritten. If it cannot be overwritten or created, an * exception will be thrown. - *

    + * *

    This method will save using the system default encoding, or possibly * using UTF8. * @@ -66,11 +66,11 @@ public abstract class FileConfiguration extends MemoryConfiguration { /** * Loads this {@link FileConfiguration} from the specified location. - *

    + * *

    All the values contained within this configuration will be removed, * leaving only settings and defaults, and the new values will be loaded * from the given file. - *

    + * *

    If the file cannot be loaded for any reason, an exception will be * thrown. * @@ -91,7 +91,7 @@ public abstract class FileConfiguration extends MemoryConfiguration { /** * Loads this {@link FileConfiguration} from the specified reader. - *

    + * *

    All the values contained within this configuration will be removed, * leaving only settings and defaults, and the new values will be loaded * from the given stream. @@ -122,11 +122,11 @@ public abstract class FileConfiguration extends MemoryConfiguration { /** * Loads this {@link FileConfiguration} from the specified string, as * opposed to from file. - *

    + * *

    All the values contained within this configuration will be removed, * leaving only settings and defaults, and the new values will be loaded * from the given string. - *

    + * *

    If the string is invalid in any way, an exception will be thrown. * * @param contents Contents of a Configuration to load. @@ -138,7 +138,7 @@ public abstract class FileConfiguration extends MemoryConfiguration { /** * Compiles the header for this {@link FileConfiguration} and returns the * result. - *

    + * *

    This will use the header from {@link #options()} -> {@link * FileConfigurationOptions#header()}, respecting the rules of {@link * FileConfigurationOptions#copyHeader()} if set. diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/FileConfigurationOptions.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/FileConfigurationOptions.java index 646e52d37..a216d0566 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/FileConfigurationOptions.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/FileConfigurationOptions.java @@ -32,13 +32,13 @@ public class FileConfigurationOptions extends MemoryConfigurationOptions { /** * Gets the header that will be applied to the top of the saved output. - *

    + * *

    This header will be commented out and applied directly at the top of * the generated output of the {@link FileConfiguration}. It is not * required to include a newline at the end of the header as it will * automatically be applied, but you may include one if you wish for extra * spacing. - *

    + * *

    {@code null} is a valid value which will indicate that no header] * is to be applied. The default value is {@code null}. * @@ -50,13 +50,13 @@ public class FileConfigurationOptions extends MemoryConfigurationOptions { /** * Sets the header that will be applied to the top of the saved output. - *

    + * *

    This header will be commented out and applied directly at the top of * the generated output of the {@link FileConfiguration}. It is not * required to include a newline at the end of the header as it will * automatically be applied, but you may include one if you wish for extra * spacing. - *

    + * *

    {@code null} is a valid value which will indicate that no header * is to be applied. * @@ -70,17 +70,17 @@ public class FileConfigurationOptions extends MemoryConfigurationOptions { /** * Gets whether or not the header should be copied from a default source. - *

    + * *

    If this is true, if a default {@link FileConfiguration} is passed to * {@link FileConfiguration#setDefaults(Configuration)} * then upon saving it will use the header from that config, instead of * the one provided here. - *

    + * *

    If no default is set on the configuration, or the default is not of * type FileConfiguration, or that config has no header ({@link #header()} * returns null) then the header specified in this configuration will be * used. - *

    + * *

    Defaults to true. * * @return Whether or not to copy the header @@ -91,17 +91,17 @@ public class FileConfigurationOptions extends MemoryConfigurationOptions { /** * Sets whether or not the header should be copied from a default source. - *

    + * *

    If this is true, if a default {@link FileConfiguration} is passed to * {@link FileConfiguration#setDefaults(Configuration)} * then upon saving it will use the header from that config, instead of * the one provided here. - *

    + * *

    If no default is set on the configuration, or the default is not of * type FileConfiguration, or that config has no header ({@link #header()} * returns null) then the header specified in this configuration will be * used. - *

    + * *

    Defaults to true. * * @param value Whether or not to copy the header diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/YamlConfiguration.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/YamlConfiguration.java index 139547d31..d8c41c3da 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/YamlConfiguration.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/YamlConfiguration.java @@ -28,11 +28,11 @@ public class YamlConfiguration extends FileConfiguration { /** * Creates a new {@link YamlConfiguration}, loading from the given file. - *

    + * *

    Any errors loading the Configuration will be logged and then ignored. * If the specified input is not a valid config, a blank config will be * returned. - *

    + * *

    The encoding used may follow the system dependent default. * * @param file Input file diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/YamlConfigurationOptions.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/YamlConfigurationOptions.java index 0aa0f515e..a17bc3538 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/YamlConfigurationOptions.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/file/YamlConfigurationOptions.java @@ -37,7 +37,7 @@ public class YamlConfigurationOptions extends FileConfigurationOptions { /** * Gets how much spaces should be used to indent each line. - *

    + * *

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

    + * *

    The minimum value this may be is 2, and the maximum is 9. * * @param value New indent diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/serialization/ConfigurationSerializable.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/serialization/ConfigurationSerializable.java index 9010c515c..f83e7a468 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/serialization/ConfigurationSerializable.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/configuration/serialization/ConfigurationSerializable.java @@ -24,7 +24,7 @@ public interface ConfigurationSerializable { /** * Creates a Map representation of this class. - *

    + * *

    This class must provide a method to restore this class, as defined in * the {@link ConfigurationSerializable} interface javadoc. * diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/json/HTTP.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/json/HTTP.java index b03eacf69..338111da3 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/json/HTTP.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/json/HTTP.java @@ -43,8 +43,8 @@ public class HTTP { /** * Convert a JSONObject into an HTTP header. A request header must contain - *

    - *

    + * + * *

          * {
          *    Method: "POST" (for example),
    @@ -54,8 +54,8 @@ public class HTTP {
          * 
    *

    * A response header must contain - *

    - *

    + * + * *

          * {
          *    "HTTP-Version": "HTTP/1.1" (for example),
    diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONArray.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONArray.java
    index 7eec3f8b4..62ee01329 100644
    --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONArray.java
    +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONArray.java
    @@ -14,16 +14,16 @@ import java.util.Map;
      * accessing the values by index, and {@code put} methods for adding or replacing values. The values can be any of
      * these types: {@code Boolean}, {@code JSONArray}, {@code JSONObject}, {@code Number},
      * {@code String}, or the {@code JSONObject.NULL object}.
    - * 

    + * *

    The constructor can convert a JSON text into a Java object. The {@code toString} method converts to JSON text. - *

    + * *

    A {@code get} method returns a value if one can be found, and throws an exception if one cannot be found. An * {@code opt} method returns a default value instead of throwing an exception, and so is useful for obtaining * optional values. - *

    + * *

    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. - *

    + * *

    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:

    • An extra {@code ,} (comma) may appear * just before the closing bracket.
    • The {@code null} value will be inserted when there is {@code ,} diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONObject.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONObject.java index b428a1f7a..9a84920dc 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONObject.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONObject.java @@ -28,8 +28,8 @@ import java.util.Map.Entry; * as null. *

      * The put methods add or replace values in an object. For example, - *

      - *

      + * + * *

        * myString = new JSONObject().put("JSON", "Hello, World!").toString();
        * 
      diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONStringer.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONStringer.java index f7e4dcbb6..bbb89133b 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONStringer.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONStringer.java @@ -11,16 +11,16 @@ import java.io.StringWriter; * method for adding keys before values in objects. There are array and endArray methods that * make and bound array values, and object and endObject methods which make and bound object * values. All of these methods return the JSONWriter instance, permitting cascade style. For example, - *

      - *

      + * + * *

        * myString = new JSONStringer().object().key("JSON").value("Hello,
        * World!").endObject().toString();
        * 
      *

      * which produces the string - *

      - *

      + * + * *

        * {"JSON":"Hello, World!"}
        * 
      diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONWriter.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONWriter.java index 2d669772a..de6af2c75 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONWriter.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/json/JSONWriter.java @@ -12,15 +12,15 @@ import java.io.Writer; * method for adding keys before values in objects. There are array and endArray methods that * make and bound array values, and object and endObject methods which make and bound object * values. All of these methods return the JSONWriter instance, permitting a cascade style. For example, - *

      - *

      + * + * *

        * new JSONWriter(myWriter).object().key("JSON").value("Hello, World!").endObject();
        * 
      *

      * which writes - *

      - *

      + * + * *

        * {"JSON":"Hello, World!"}
        * 
      diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/IPlotMain.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/IPlotMain.java index 67001b583..c797a76f3 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/IPlotMain.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/IPlotMain.java @@ -44,7 +44,7 @@ public interface IPlotMain extends ILogger { /** * Disable the implementation. - *

      + * *

        *
      • If a full disable isn't feasibly, just disable what it can. *
      diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/PlotSquared.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/PlotSquared.java index 651459897..8b48ab190 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/PlotSquared.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/PlotSquared.java @@ -75,8 +75,7 @@ import java.util.zip.ZipInputStream; @Getter private Updater updater; private PlotVersion version; // Files and configuration - @Getter - private File jarFile = null; // This file + @Getter private File jarFile = null; // This file private File storageFile; @Getter private PlotAreaManager plotAreaManager; @@ -266,10 +265,12 @@ import java.util.zip.ZipInputStream; copyFile("automerge.js", Settings.Paths.SCRIPTS); copyFile("town.template", Settings.Paths.TEMPLATES); copyFile("skyblock.template", Settings.Paths.TEMPLATES); - copyFile("german.yml", Settings.Paths.TRANSLATIONS); - copyFile("s_chinese_unescaped.yml", Settings.Paths.TRANSLATIONS); - copyFile("s_chinese.yml", Settings.Paths.TRANSLATIONS); - copyFile("italian.yml", Settings.Paths.TRANSLATIONS); + copyFile("bridge.template", Settings.Paths.TEMPLATES); + copyFile("de-DE.yml", Settings.Paths.TRANSLATIONS); + copyFile("es-ES.yml", Settings.Paths.TRANSLATIONS); + copyFile("zh-CN.yml", Settings.Paths.TRANSLATIONS); + copyFile("it-IT.yml", Settings.Paths.TRANSLATIONS); + copyFile("ko-KR.yml", Settings.Paths.TRANSLATIONS); showDebug(); } catch (Throwable e) { e.printStackTrace(); @@ -778,8 +779,12 @@ import java.util.zip.ZipInputStream; List areas = Arrays.asList(plotAreaManager.getAllPlotAreas()); Collections.sort(areas, new Comparator() { @Override public int compare(PlotArea a, PlotArea b) { - if (priorityArea != null && StringMan.isEqual(a.toString(), b.toString())) { - return -1; + if (priorityArea != null) { + if (a.equals(priorityArea)) { + return -1; + } else if (b.equals(priorityArea)) { + return 1; + } } return a.hashCode() - b.hashCode(); } @@ -1089,7 +1094,7 @@ import java.util.zip.ZipInputStream; *
    • Loads (and/or generates) the PlotArea configuration *
    • Sets up the world border if configured *
    - *

    + * *

    If loading an augmented plot world: *

      *
    • Creates the AugmentedPopulator classes @@ -1151,7 +1156,8 @@ import java.util.zip.ZipInputStream; PlotSquared.log(C.PREFIX + "&aDetected world load for '" + world + "'"); PlotSquared.log(C.PREFIX + "&3 - generator: &7" + baseGenerator + ">" + plotGenerator); PlotSquared.log(C.PREFIX + "&3 - plotworld: &7" + plotArea.getClass().getName()); - PlotSquared.log(C.PREFIX + "&3 - plotAreaManager: &7" + plotManager.getClass().getName()); + PlotSquared + .log(C.PREFIX + "&3 - plotAreaManager: &7" + plotManager.getClass().getName()); if (!this.worlds.contains(path)) { this.worlds.createSection(path); worldSection = this.worlds.getConfigurationSection(path); @@ -1323,8 +1329,8 @@ import java.util.zip.ZipInputStream; /** * Setup the configuration for a plot world based on world arguments. - *

      - *

      + * + * * e.g. /mv create <world> normal -g PlotSquared:<args> * * @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 runnable) { + public void foreachPlotArea(@NonNull final String world, + @NonNull final RunnableVal runnable) { final PlotArea[] array = this.plotAreaManager.getPlotAreas(world, null); if (array == null) { return; @@ -1925,9 +1932,10 @@ import java.util.zip.ZipInputStream; * * @param alias to search plots * @param worldname to filter alias to a specific world [optional] null means all worlds - * @return Set<{@link Plot}> empty if nothing found + * @return Set<{ @ link Plot }> empty if nothing found */ - public Set getPlotsByAlias(@Nullable final String alias, @NonNull final String worldname) { + public Set getPlotsByAlias(@Nullable final String alias, + @NonNull final String worldname) { final Set result = new HashSet<>(); if (alias != null) { for (final Plot plot : getPlots()) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/Updater.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/Updater.java index d1d1f97cc..bd780ae90 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/Updater.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/Updater.java @@ -17,9 +17,8 @@ public class Updater { public String getChanges() { if (changes == null) { - try (Scanner scanner = new Scanner(new URL( - "http://empcraft.com/plots/cl?" + Integer.toHexString(PlotSquared.get().getVersion().hash)) - .openStream(), "UTF-8")) { + try (Scanner scanner = new Scanner(new URL("http://empcraft.com/plots/cl?" + Integer + .toHexString(PlotSquared.get().getVersion().hash)).openStream(), "UTF-8")) { changes = scanner.useDelimiter("\\A").next(); } catch (IOException e) { e.printStackTrace(); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Add.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Add.java index 8664a0d85..9cb4870ab 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Add.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Add.java @@ -16,7 +16,7 @@ import java.util.Iterator; import java.util.Set; import java.util.UUID; -@CommandDeclaration(command = "add", description = "Allow a user to build while you are online", usage = "/plot add ", 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 ", category = CommandCategory.SETTINGS, permission = "plots.add", requiredType = RequiredType.NONE) public class Add extends Command { public Add() { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Alias.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Alias.java index a9c7bea2a..b5e248fab 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Alias.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Alias.java @@ -94,7 +94,8 @@ public class Alias extends SubCommand { return false; } } - if (UUIDHandler.nameExists(new StringWrapper(alias)) || PlotSquared.get().hasPlotArea(alias)) { + if (UUIDHandler.nameExists(new StringWrapper(alias)) || PlotSquared.get() + .hasPlotArea(alias)) { MainUtil.sendMessage(player, C.ALIAS_IS_TAKEN); return false; } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Area.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Area.java index ba7c4f046..ec7d08672 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Area.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Area.java @@ -81,8 +81,8 @@ public class Area extends SubCommand { final int offsetX = bx - (area.ROAD_WIDTH == 0 ? 0 : lower); final int offsetZ = bz - (area.ROAD_WIDTH == 0 ? 0 : lower); final RegionWrapper region = new RegionWrapper(bx, tx, bz, tz); - Set areas = PlotSquared - .get().getPlotAreas(area.worldname, region); + Set areas = + PlotSquared.get().getPlotAreas(area.worldname, region); if (!areas.isEmpty()) { C.CLUSTER_INTERSECTION .send(player, areas.iterator().next().toString()); @@ -104,10 +104,12 @@ public class Area extends SubCommand { Runnable run = new Runnable() { @Override public void run() { if (offsetX != 0) { - PlotSquared.get().worlds.set(path + ".road.offset.x", offsetX); + PlotSquared.get().worlds + .set(path + ".road.offset.x", offsetX); } if (offsetZ != 0) { - PlotSquared.get().worlds.set(path + ".road.offset.z", offsetZ); + PlotSquared.get().worlds + .set(path + ".road.offset.z", offsetZ); } final String world = SetupUtils.manager.setupWorld(object); if (WorldUtil.IMP.isWorld(world)) { @@ -458,8 +460,8 @@ public class Area extends SubCommand { case "remove": MainUtil.sendMessage(player, "$1World creation settings may be stored in multiple locations:" - + "\n$3 - $2Bukkit bukkit.yml" + "\n$3 - $2" + PlotSquared.imp().getPluginName() - + " settings.yml" + + "\n$3 - $2Bukkit bukkit.yml" + "\n$3 - $2" + PlotSquared.imp() + .getPluginName() + " settings.yml" + "\n$3 - $2Multiverse worlds.yml (or any world management plugin)" + "\n$1Stop the server and delete it from these locations."); return true; diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Clear.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Clear.java index ac977ea18..a9dbe3e91 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Clear.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Clear.java @@ -14,7 +14,7 @@ import com.github.intellectualsites.plotsquared.plot.util.MainUtil; import com.github.intellectualsites.plotsquared.plot.util.Permissions; import com.github.intellectualsites.plotsquared.plot.util.block.GlobalBlockQueue; -@CommandDeclaration(command = "clear", description = "Clear a plot", permission = "plots.clear", category = CommandCategory.APPEARANCE, usage = "/plot clear", aliases = "reset", confirmation = true) +@CommandDeclaration(command = "clear", description = "Clear the plot you stand on", permission = "plots.clear", category = CommandCategory.APPEARANCE, usage = "/plot clear", aliases = "reset", confirmation = true) public class Clear extends Command { // Note: To clear a specific plot use /plot clear diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Database.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Database.java index 621efa920..c89821f4c 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Database.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Database.java @@ -103,8 +103,9 @@ public class Database extends SubCommand { if (newPlot != null) { PlotId newId = newPlot.getId(); PlotId id = plot.getId(); - File worldFile = new File(PlotSquared.imp().getWorldContainer(), - id.toCommaSeparatedString()); + File worldFile = + new File(PlotSquared.imp().getWorldContainer(), + id.toCommaSeparatedString()); if (worldFile.exists()) { File newFile = new File(PlotSquared.imp().getWorldContainer(), @@ -127,7 +128,8 @@ public class Database extends SubCommand { plots.add(plot); } } else { - HashMap plotmap = PlotSquared.get().plots_tmp.get(areaname); + HashMap plotmap = + PlotSquared.get().plots_tmp.get(areaname); if (plotmap == null) { plotmap = new HashMap<>(); PlotSquared.get().plots_tmp.put(areaname, plotmap); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Debug.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Debug.java index 976e3683f..5fcb921a0 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Debug.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Debug.java @@ -25,8 +25,8 @@ public class Debug extends SubCommand { String section = C.DEBUG_SECTION.s(); information.append(header); information.append(getSection(section, "PlotArea")); - information - .append(getLine(line, "Plot Worlds", StringMan.join(PlotSquared.get().getPlotAreas(), ", "))); + information.append( + getLine(line, "Plot Worlds", StringMan.join(PlotSquared.get().getPlotAreas(), ", "))); information.append(getLine(line, "Owned Plots", PlotSquared.get().getPlots().size())); information.append(getSection(section, "Messages")); information.append(getLine(line, "Total Messages", C.values().length)); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/DebugExec.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/DebugExec.java index 87dab8b30..822c13123 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/DebugExec.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/DebugExec.java @@ -37,8 +37,9 @@ import java.util.*; if (file.exists()) { init(); String script = StringMan.join(Files.readLines(new File(new File( - PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS), - "start.js"), StandardCharsets.UTF_8), System.getProperty("line.separator")); + PlotSquared.get().IMP.getDirectory() + File.separator + + Settings.Paths.SCRIPTS), "start.js"), StandardCharsets.UTF_8), + System.getProperty("line.separator")); this.scope.put("THIS", this); this.scope.put("PlotPlayer", ConsolePlayer.getConsole()); this.engine.eval(script, this.scope); @@ -261,8 +262,8 @@ import java.util.*; case "addcmd": try { final String cmd = StringMan.join(Files.readLines(MainUtil.getFile(new File( - PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS), - args[1]), StandardCharsets.UTF_8), + PlotSquared.get().IMP.getDirectory() + File.separator + + Settings.Paths.SCRIPTS), args[1]), StandardCharsets.UTF_8), System.getProperty("line.separator")); new Command(MainCommand.getInstance(), true, args[1].split("\\.")[0], null, RequiredType.NONE, CommandCategory.DEBUG) { @@ -291,8 +292,8 @@ import java.util.*; case "run": try { script = StringMan.join(Files.readLines(MainUtil.getFile(new File( - PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS), - args[1]), StandardCharsets.UTF_8), + PlotSquared.get().IMP.getDirectory() + File.separator + + Settings.Paths.SCRIPTS), args[1]), StandardCharsets.UTF_8), System.getProperty("line.separator")); if (args.length > 2) { HashMap replacements = new HashMap<>(); @@ -307,8 +308,8 @@ import java.util.*; } break; case "list-scripts": - String path = - PlotSquared.get().IMP.getDirectory() + File.separator + Settings.Paths.SCRIPTS; + String path = PlotSquared.get().IMP.getDirectory() + File.separator + + Settings.Paths.SCRIPTS; File folder = new File(path); File[] filesArray = folder.listFiles(); @@ -411,13 +412,15 @@ import java.util.*; } catch (ScriptException e) { e.printStackTrace(); } - PlotSquared.log("> " + (System.currentTimeMillis() - start) + "ms -> " + result); + PlotSquared.log( + "> " + (System.currentTimeMillis() - start) + "ms -> " + result); } }); } else { long start = System.currentTimeMillis(); Object result = this.engine.eval(script, this.scope); - PlotSquared.log("> " + (System.currentTimeMillis() - start) + "ms -> " + result); + PlotSquared + .log("> " + (System.currentTimeMillis() - start) + "ms -> " + result); } return true; } catch (ScriptException e) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/DebugPaste.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/DebugPaste.java index c2b23598c..1e29809ff 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/DebugPaste.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/DebugPaste.java @@ -25,8 +25,9 @@ public class DebugPaste extends SubCommand { String commandsYML = HastebinUtility.upload(PlotSquared.get().commandsFile); String latestLOG; try { - latestLOG = HastebinUtility - .upload(new File(PlotSquared.get().IMP.getDirectory(), "../../logs/latest.log")); + latestLOG = HastebinUtility.upload( + new File(PlotSquared.get().IMP.getDirectory(), + "../../logs/latest.log")); } catch (IOException ignored) { MainUtil.sendMessage(player, "&clatest.log is too big to be pasted, will ignore"); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Delete.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Delete.java index 6b15563f8..39637e83b 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Delete.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Delete.java @@ -6,11 +6,15 @@ import com.github.intellectualsites.plotsquared.plot.config.Settings; import com.github.intellectualsites.plotsquared.plot.object.*; import com.github.intellectualsites.plotsquared.plot.util.*; -@CommandDeclaration(command = "delete", permission = "plots.delete", description = "Delete a plot", usage = "/plot delete", aliases = { - "dispose", "del", - "reset"}, category = CommandCategory.CLAIMING, requiredType = RequiredType.NONE, confirmation = true) + +@CommandDeclaration(command = "delete", permission = "plots.delete", description = "Delete the plot you stand on", usage = "/plot delete", aliases = { + "dispose", + "del"}, category = CommandCategory.CLAIMING, requiredType = RequiredType.NONE, confirmation = true) public class Delete extends SubCommand { + // Note: To delete a specific plot use /plot delete + // The syntax also works with any command: /plot + @Override public boolean onCommand(final PlotPlayer player, String[] args) { Location loc = player.getLocation(); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Kick.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Kick.java index a8af942a6..63d42bd29 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Kick.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Kick.java @@ -18,7 +18,7 @@ import java.util.Set; import java.util.UUID; @CommandDeclaration(command = "kick", aliases = { - "k"}, description = "Kick a player from your plot", permission = "plots.kick", usage = "", category = CommandCategory.TELEPORT, requiredType = RequiredType.NONE) + "k"}, description = "Kick a player from your plot", permission = "plots.kick", usage = "/plot kick ", category = CommandCategory.TELEPORT, requiredType = RequiredType.NONE) public class Kick extends SubCommand { public Kick() { @@ -75,8 +75,8 @@ public class Kick extends SubCommand { Location spawn = WorldUtil.IMP.getSpawn(location.getWorld()); C.YOU_GOT_KICKED.send(player2); if (plot.equals(spawn.getPlot())) { - Location newSpawn = - WorldUtil.IMP.getSpawn(PlotSquared.get().getPlotAreaManager().getAllWorlds()[0]); + Location newSpawn = WorldUtil.IMP + .getSpawn(PlotSquared.get().getPlotAreaManager().getAllWorlds()[0]); if (plot.equals(newSpawn.getPlot())) { // Kick from server if you can't be teleported to spawn player2.kick(C.YOU_GOT_KICKED.s()); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Load.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Load.java index 769241809..fab9eaf95 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Load.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Load.java @@ -15,7 +15,7 @@ import java.net.URL; import java.util.List; @CommandDeclaration(command = "load", aliases = { - "restore"}, category = CommandCategory.SCHEMATIC, requiredType = RequiredType.NONE, description = "Load your plot", permission = "plots.load", usage = "/plot restore") + "restore"}, category = CommandCategory.SCHEMATIC, requiredType = RequiredType.NONE, description = "Load your plot", permission = "plots.load", usage = "/plot load") public class Load extends SubCommand { @Override public boolean onCommand(final PlotPlayer player, String[] args) { @@ -70,7 +70,8 @@ public class Load extends SubCommand { MainUtil.sendMessage(player, C.GENERATING_COMPONENT); TaskManager.runTaskAsync(new Runnable() { @Override public void run() { - SchematicHandler.Schematic schematic = SchematicHandler.manager.getSchematic(url); + SchematicHandler.Schematic schematic = + SchematicHandler.manager.getSchematic(url); if (schematic == null) { plot.removeRunning(); sendMessage(player, C.SCHEMATIC_INVALID, diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Music.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Music.java index 618783f91..468b15b24 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Music.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Music.java @@ -6,7 +6,7 @@ import com.github.intellectualsites.plotsquared.plot.flag.Flags; import com.github.intellectualsites.plotsquared.plot.object.*; import com.github.intellectualsites.plotsquared.plot.util.WorldUtil; -@CommandDeclaration(command = "music", permission = "plots.music", description = "Player music in a plot", usage = "/plot music", category = CommandCategory.APPEARANCE, requiredType = RequiredType.PLAYER) +@CommandDeclaration(command = "music", permission = "plots.music", description = "Play music in your plot", usage = "/plot music", category = CommandCategory.APPEARANCE, requiredType = RequiredType.PLAYER) public class Music extends SubCommand { @Override public boolean onCommand(PlotPlayer player, String[] args) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Owner.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Owner.java index 8c1e3f859..964cbf212 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Owner.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Owner.java @@ -73,14 +73,17 @@ public class Owner extends SetCommand { final boolean removeDenied = plot.isDenied(finalUUID); Runnable run = new Runnable() { @Override public void run() { - if (removeDenied) - plot.removeDenied(finalUUID); - plot.setOwner(finalUUID); - plot.setSign(finalName); - MainUtil.sendMessage(player, C.SET_OWNER); - if (other != null) { - MainUtil.sendMessage(other, C.NOW_OWNER, plot.getArea() + ";" + plot.getId()); - } + if (plot.setOwner(finalUUID, player)) { + if (removeDenied) + plot.removeDenied(finalUUID); + plot.setSign(finalName); + MainUtil.sendMessage(player, C.SET_OWNER); + if (other != null) { + MainUtil + .sendMessage(other, C.NOW_OWNER, plot.getArea() + ";" + plot.getId()); + } + } else + MainUtil.sendMessage(player, C.SET_OWNER_CANCELLED); } }; if (hasConfirmation(player)) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/PluginCmd.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/PluginCmd.java index e15b887f3..37cf5ad60 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/PluginCmd.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/PluginCmd.java @@ -8,15 +8,15 @@ import com.github.intellectualsites.plotsquared.plot.util.HttpUtil; import com.github.intellectualsites.plotsquared.plot.util.MainUtil; import com.github.intellectualsites.plotsquared.plot.util.TaskManager; -@CommandDeclaration(command = "plugin", permission = "plots.use", description = "Show plugin information", aliases = "version", category = CommandCategory.INFO) +@CommandDeclaration(command = "plugin", permission = "plots.use", description = "Show plugin information", usage = "/plot plugin", aliases = "version", category = CommandCategory.INFO) public class PluginCmd extends SubCommand { @Override public boolean onCommand(final PlotPlayer player, String[] args) { TaskManager.IMP.taskAsync(new Runnable() { @Override public void run() { - MainUtil.sendMessage(player, String - .format("$2>> $1&l" + PlotSquared.imp().getPluginName() + " $2($1Version$2: $1%s$2)", - PlotSquared.get().getVersion())); + MainUtil.sendMessage(player, String.format( + "$2>> $1&l" + PlotSquared.imp().getPluginName() + " $2($1Version$2: $1%s$2)", + PlotSquared.get().getVersion())); MainUtil.sendMessage(player, "$2>> $1&lAuthors$2: $1Citymonstret $2& $1Empire92 $2& $1MattBDev"); MainUtil.sendMessage(player, diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Purge.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Purge.java index 2b41c5a9f..57e0fe2e9 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Purge.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Purge.java @@ -110,7 +110,8 @@ public class Purge extends SubCommand { } } if (PlotSquared.get().plots_tmp != null) { - for (Entry> entry : PlotSquared.get().plots_tmp.entrySet()) { + for (Entry> entry : PlotSquared.get().plots_tmp + .entrySet()) { String worldName = entry.getKey(); if (world != null && !world.equalsIgnoreCase(worldName)) { continue; diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Rate.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Rate.java index dd6954520..9b31124c8 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Rate.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Rate.java @@ -102,14 +102,18 @@ public class Rate extends SubCommand { int rV = rating.getValue(); Rating result = EventUtil.manager.callRating(this.player, plot, new Rating(rV)); - plot.addRating(this.player.getUUID(), result); - sendMessage(this.player, C.RATING_APPLIED, plot.getId().toString()); - if (Permissions.hasPermission(this.player, C.PERMISSION_COMMENT)) { - Command command = - MainCommand.getInstance().getCommand(Comment.class); - if (command != null) { - MainUtil.sendMessage(this.player, C.COMMENT_THIS, - command.getUsage()); + if (result != null) { + plot.addRating(this.player.getUUID(), result); + sendMessage(this.player, C.RATING_APPLIED, + plot.getId().toString()); + if (Permissions + .hasPermission(this.player, C.PERMISSION_COMMENT)) { + Command command = + MainCommand.getInstance().getCommand(Comment.class); + if (command != null) { + MainUtil.sendMessage(this.player, C.COMMENT_THIS, + command.getUsage()); + } } } return false; @@ -169,8 +173,10 @@ public class Rate extends SubCommand { return; } Rating result = EventUtil.manager.callRating(player, plot, new Rating(rating)); - plot.addRating(uuid, result); - sendMessage(player, C.RATING_APPLIED, plot.getId().toString()); + if (result != null) { + plot.addRating(uuid, result); + sendMessage(player, C.RATING_APPLIED, plot.getId().toString()); + } } }; if (plot.getSettings().ratings == null) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Relight.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Relight.java index eed56e922..7b3b52fe0 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Relight.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Relight.java @@ -9,7 +9,7 @@ import com.github.intellectualsites.plotsquared.plot.util.block.LocalBlockQueue; import java.util.HashSet; -@CommandDeclaration(command = "relight", description = "Relight your plot", category = CommandCategory.DEBUG) +@CommandDeclaration(command = "relight", description = "Relight your plot", usage = "/plot relight", category = CommandCategory.DEBUG) public class Relight extends Command { public Relight() { super(MainCommand.getInstance(), true); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Reload.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Reload.java index ab7416fd7..d24b54ff8 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Reload.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Reload.java @@ -14,7 +14,7 @@ import com.github.intellectualsites.plotsquared.plot.util.MainUtil; import java.io.IOException; import java.util.Objects; -@CommandDeclaration(command = "reload", permission = "plots.admin.command.reload", description = "Reload configurations", usage = "/plot reload", category = CommandCategory.ADMINISTRATION) +@CommandDeclaration(command = "reload", aliases = "rl", permission = "plots.admin.command.reload", description = "Reload translations and world settings", usage = "/plot reload", category = CommandCategory.ADMINISTRATION) public class Reload extends SubCommand { @Override public boolean onCommand(PlotPlayer player, String[] args) { @@ -25,8 +25,8 @@ public class Reload extends SubCommand { C.load(PlotSquared.get().translationFile); PlotSquared.get().foreachPlotArea(new RunnableVal() { @Override public void run(PlotArea area) { - ConfigurationSection worldSection = - PlotSquared.get().worlds.getConfigurationSection("worlds." + area.worldname); + ConfigurationSection worldSection = PlotSquared.get().worlds + .getConfigurationSection("worlds." + area.worldname); if (worldSection == null) { return; } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/SchematicCmd.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/SchematicCmd.java index b69f7f82b..d529a44e5 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/SchematicCmd.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/SchematicCmd.java @@ -17,7 +17,7 @@ import java.util.Collection; import java.util.UUID; @CommandDeclaration(command = "schematic", permission = "plots.schematic", description = "Schematic command", aliases = { - "sch"}, category = CommandCategory.SCHEMATIC, usage = "/plot schematic ") + "sch", "schem"}, category = CommandCategory.SCHEMATIC, usage = "/plot schematic ") public class SchematicCmd extends SubCommand { private boolean running = false; diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/SetHome.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/SetHome.java index fb17626d9..86f474cd0 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/SetHome.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/SetHome.java @@ -8,13 +8,14 @@ import com.github.intellectualsites.plotsquared.plot.object.Plot; import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; import com.github.intellectualsites.plotsquared.plot.util.MainUtil; -@CommandDeclaration(command = "sethome", permission = "plots.set.home", description = "Set the plot home", usage = "/plot sethome [none]", aliases = { +@CommandDeclaration(command = "sethome", permission = "plots.set.home", description = "Set the plot home to your current position", usage = "/plot sethome [none]", aliases = { "sh", "seth"}, category = CommandCategory.SETTINGS, requiredType = RequiredType.NONE) public class SetHome extends SetCommand { @Override public boolean set(PlotPlayer player, Plot plot, String value) { switch (value.toLowerCase()) { case "unset": + case "reset": case "remove": case "none": { Plot base = plot.getBasePlot(false); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Setup.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Setup.java index 9c5e89a93..2b79fd8af 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Setup.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Setup.java @@ -74,7 +74,8 @@ import java.util.Map.Entry; MainUtil.sendMessage(player, "&cYou must choose a generator!" + prefix + StringMan .join(SetupUtils.generators.keySet(), prefix) - .replaceAll(PlotSquared.imp().getPluginName(), "&2" + PlotSquared.imp().getPluginName())); + .replaceAll(PlotSquared.imp().getPluginName(), + "&2" + PlotSquared.imp().getPluginName())); sendMessage(player, C.SETUP_INIT); return false; } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Template.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Template.java index 28f824296..5c7e2d100 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Template.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Template.java @@ -26,7 +26,8 @@ public class Template extends SubCommand { public static boolean extractAllFiles(String world, String template) { try { - File folder = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.TEMPLATES); + File folder = + MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.TEMPLATES); if (!folder.exists()) { return false; } @@ -84,7 +85,8 @@ public class Template extends SubCommand { } public static void zipAll(String world, Set files) throws IOException { - File output = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.TEMPLATES); + File output = + MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.TEMPLATES); output.mkdirs(); try (FileOutputStream fos = new FileOutputStream( output + File.separator + world + ".template"); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Trust.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Trust.java index 1cb31b9a9..3858d597b 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Trust.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Trust.java @@ -17,7 +17,7 @@ import java.util.Set; import java.util.UUID; @CommandDeclaration(command = "trust", aliases = { - "t"}, requiredType = RequiredType.NONE, usage = "/plot trust ", description = "Allow a player to build in a plot", category = CommandCategory.SETTINGS) + "t"}, requiredType = RequiredType.NONE, usage = "/plot trust ", description = "Allow a user to build in a plot while you are offline", category = CommandCategory.SETTINGS) public class Trust extends Command { public Trust() { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Visit.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Visit.java index e4b4e054f..958133332 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Visit.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/commands/Visit.java @@ -106,8 +106,8 @@ import java.util.*; } List plots; if (shouldSortByArea) { - plots = PlotSquared - .get().sortPlots(unsorted, PlotSquared.SortType.CREATION_DATE, sortByArea); + plots = PlotSquared.get() + .sortPlots(unsorted, PlotSquared.SortType.CREATION_DATE, sortByArea); } else { plots = PlotSquared.get().sortPlotsByTemp(unsorted); } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/C.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/C.java index d9aab2846..04db1c2f3 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/C.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/C.java @@ -160,7 +160,7 @@ public enum C { * Confirm */ EXPIRED_CONFIRM("$2Confirmation has expired, please run the command again!", - "Confirm"), FAILED_CONFIRM("$2You have no pending actions to confirm!", + "Confirm"), FAILED_CONFIRM("$2You have no pending actions to confirm!", "Confirm"), REQUIRES_CONFIRM( "$2Are you sure you wish to execute: $1%s$2?&-$2This cannot be undone! If you are sure: $1/plot confirm", "Confirm"), /* @@ -185,8 +185,8 @@ public enum C { * Cluster */ CLUSTER_AVAILABLE_ARGS( - "$1The following sub commands are available: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, " - + "$4members$2, $4info$2, $4tp$2, $4sethome", "Cluster"), CLUSTER_LIST_HEADING( + "$1The following sub commands are available: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, " + + "$4members$2, $4info$2, $4tp$2, $4sethome", "Cluster"), CLUSTER_LIST_HEADING( "$2There are $1%s$2 clusters in this world", "Cluster"), CLUSTER_LIST_ELEMENT("$2 - $1%s&-", "Cluster"), CLUSTER_INTERSECTION("$2The proposed area overlaps with: %s0", "Cluster"), CLUSTER_OUTSIDE("$2The proposed area is outside the plot area: %s0", @@ -217,7 +217,7 @@ public enum C { * WorldEdit masks */ WORLDEDIT_DELAYED("$2Please wait while we process your WorldEdit action...", - "WorldEdit Masks"), WORLDEDIT_RUN("$2Apologies for the delay. Now executing: %s", + "WorldEdit Masks"), WORLDEDIT_RUN("$2Apologies for the delay. Now executing: %s", "WorldEdit Masks"), REQUIRE_SELECTION_IN_MASK( "$2%s of your selection is not within your plot mask. You can only make edits within your plot.", "WorldEdit Masks"), WORLDEDIT_VOLUME( @@ -262,7 +262,7 @@ public enum C { * Console */ NOT_CONSOLE("$2For safety reasons, this command can only be executed by console.", - "Console"), IS_CONSOLE("$2This command can only be executed by a player.", "Console"), + "Console"), IS_CONSOLE("$2This command can only be executed by a player.", "Console"), /* Inventory @@ -337,16 +337,18 @@ public enum C { * Schematic Stuff */ SCHEMATIC_TOO_LARGE("$2The plot is too large for this action!", - "Schematics"), SCHEMATIC_MISSING_ARG( + "Schematics"), SCHEMATIC_MISSING_ARG( "$2You need to specify an argument. Possible values: $1test $2 , $1save$2 , $1paste $2, $1exportall", "Schematics"), SCHEMATIC_INVALID("$2That is not a valid schematic. Reason: $2%s", "Schematics"), SCHEMATIC_VALID("$2That is a valid schematic", "Schematics"), SCHEMATIC_PASTE_FAILED("$2Failed to paste the schematic", - "Schematics"), SCHEMATIC_PASTE_SUCCESS("$4The schematic pasted successfully", "Schematics"), /* + "Schematics"), SCHEMATIC_PASTE_SUCCESS("$4The schematic pasted successfully", + "Schematics"), /* * Title Stuff */ TITLE_ENTERED_PLOT("$1Plot: %world%;%x%;%z%", "Titles"), TITLE_ENTERED_PLOT_SUB("$4Owned by %s", - "Titles"), PREFIX_GREETING("$1%id%$2> ", "Titles"), PREFIX_FAREWELL("$1%id%$2> ", "Titles"), /* + "Titles"), PREFIX_GREETING("$1%id%$2> ", "Titles"), PREFIX_FAREWELL("$1%id%$2> ", + "Titles"), /* * Core Stuff */ TASK_START("Starting task...", "Core"), PREFIX("$3[$1P2$3] $2", "Core"), ENABLED( @@ -354,7 +356,7 @@ public enum C { * Reload */ RELOADED_CONFIGS("$1Translations and world settings have been reloaded", - "Reload"), RELOAD_FAILED("$2Failed to reload file configurations", "Reload"), + "Reload"), RELOAD_FAILED("$2Failed to reload file configurations", "Reload"), /* * BarAPI */ @@ -372,7 +374,7 @@ public enum C { * Position */ MISSING_POSITION("$2You need to specify a position. Possible values: $1none", - "Position"), POSITION_SET("$1Home position set to your current location", + "Position"), POSITION_SET("$1Home position set to your current location", "Position"), POSITION_UNSET("$1Home position reset to the default location", "Position"), HOME_ARGUMENT("$2Use /plot set home [none]", "Position"), INVALID_POSITION( "$2That is not a valid position value", "Position"), /* @@ -385,7 +387,7 @@ public enum C { * Permission */ NO_SCHEMATIC_PERMISSION("$2You don't have the permission required to use schematic $1%s", - "Permission"), NO_PERMISSION("$2You are lacking the permission node: $1%s", + "Permission"), NO_PERMISSION("$2You are lacking the permission node: $1%s", "Permission"), NO_PERMISSION_EVENT("$2You are lacking the permission node: $1%s", "Permission"), NO_PLOT_PERMS("$2You must be the plot owner to perform this action", "Permission"), CANT_CLAIM_MORE_PLOTS("$2You can't claim more plots.", @@ -418,15 +420,15 @@ public enum C { * Player not found */ INVALID_PLAYER_WAIT("$2Player not found: $1%s$2, fetching it. Try again soon.", - "Errors"), INVALID_PLAYER("$2Player not found: $1%s$2.", - "Errors"), INVALID_PLAYER_OFFLINE("$2The player must be online: $1%s.", "Errors"), /* + "Errors"), INVALID_PLAYER("$2Player not found: $1%s$2.", "Errors"), INVALID_PLAYER_OFFLINE( + "$2The player must be online: $1%s.", "Errors"), /* * Command flag */ INVALID_COMMAND_FLAG("$2Invalid command flag: %s0", "Errors"), /* * Unknown Error */ ERROR("$2An error occurred: %s", - "Errors"), // SETTINGS_PASTE_UPLOADED("$2settings.yml was uploaded to: $1%url%", "Paste"), + "Errors"), // SETTINGS_PASTE_UPLOADED("$2settings.yml was uploaded to: $1%url%", "Paste"), // LATEST_LOG_UPLOADED("$2latest.log was uploaded to: $1%url%", "Paste"), DEBUG_REPORT_CREATED("$1Uploaded a full debug to: $1%url%", "Paste"), /* * @@ -438,7 +440,7 @@ public enum C { * trim */ TRIM_IN_PROGRESS("A world trim task is already in progress!", - "Trim"), NOT_VALID_HYBRID_PLOT_WORLD( + "Trim"), NOT_VALID_HYBRID_PLOT_WORLD( "The hybrid plot manager is required to perform this action", "Trim"), /* * No */ @@ -538,7 +540,7 @@ public enum C { * List */ COMMENT_LIST_HEADER_PAGED("$2(Page $1%cur$2/$1%max$2) $1List of %amount% comments", - "List"), CLICKABLE(" (interactive)", "List"), AREA_LIST_HEADER_PAGED( + "List"), CLICKABLE(" (interactive)", "List"), AREA_LIST_HEADER_PAGED( "$2(Page $1%cur$2/$1%max$2) $1List of %amount% areas", "List"), PLOT_LIST_HEADER_PAGED( "$2(Page $1%cur$2/$1%max$2) $1List of %amount% plots", "List"), PLOT_LIST_HEADER( "$1List of %word% plots", "List"), PLOT_LIST_ITEM("$2>> $1%id$2:$1%world $2- $1%owner", @@ -550,12 +552,12 @@ public enum C { * Wait */ WAIT_FOR_TIMER( - "$2A setblock timer is bound to either the current plot or you. Please wait for it to finish", - "Errors"), /* + "$2A setblock timer is bound to either the current plot or you. Please wait for it to finish", + "Errors"), /* * Chat */ PLOT_CHAT_SPY_FORMAT("$2[$1Plot Spy$2][$1%plot_id%$2] $1%sender%$2: $1%msg%", - "Chat"), PLOT_CHAT_FORMAT("$2[$1Plot Chat$2][$1%plot_id%$2] $1%sender%$2: $1%msg%", + "Chat"), PLOT_CHAT_FORMAT("$2[$1Plot Chat$2][$1%plot_id%$2] $1%sender%$2: $1%msg%", "Chat"), PLOT_CHAT_FORCED("$2This world forces everyone to use plot chat.", "Chat"), PLOT_CHAT_ON("$4Plot chat enabled.", "Chat"), PLOT_CHAT_OFF( "$4Plot chat disabled.", "Chat"), /* @@ -574,7 +576,7 @@ public enum C { * Rain */ NEED_ON_OFF("$2You need to specify a value. Possible values: $1on$2, $1off", - "Rain"), SETTING_UPDATED("$4You successfully updated the setting", "Rain"), /* + "Rain"), SETTING_UPDATED("$4You successfully updated the setting", "Rain"), /* * Flag */ FLAG_KEY("$2Key: %s", "Flag"), FLAG_TYPE("$2Type: %s", "Flag"), FLAG_DESC("$2Desc: %s", @@ -591,7 +593,8 @@ public enum C { TRUSTED_ADDED("$4You successfully trusted a user to the plot", "Trusted"), TRUSTED_REMOVED( "$4You successfully removed a trusted user from the plot", "Trusted"), WAS_NOT_ADDED( "$2That player was not trusted on this plot", "Trusted"), PLOT_REMOVED_USER( - "$1Plot %s of which you were added to has been deleted due to owner inactivity", "Trusted"), /* + "$1Plot %s of which you were added to has been deleted due to owner inactivity", + "Trusted"), /* * Member */ REMOVED_PLAYERS("$2Removed %s players from this plot.", "Member"), ALREADY_OWNER( @@ -603,8 +606,9 @@ public enum C { "$2You are not allowed to add any more players to this plot", "Member"), /* * Set Owner */ - SET_OWNER("$4You successfully set the plot owner", "Owner"), NOW_OWNER( - "$4You are now owner of plot %s", "Owner"), /* + SET_OWNER("$4You successfully set the plot owner", "Owner"), SET_OWNER_CANCELLED( + "$2The setowner action was cancelled", "Owner"), NOW_OWNER("$4You are now owner of plot %s", + "Owner"), /* * Signs */ OWNER_SIGN_LINE_1("$1ID: $1%id%", "Signs"), OWNER_SIGN_LINE_2("$1Owner:", diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Config.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Config.java index 76b949d69..82992e265 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Config.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Config.java @@ -68,9 +68,9 @@ public class Config { field.set(instance, value); return; } catch (Throwable e) { - PlotSquared - .debug("Invalid configuration value: " + key + ": " + value + " in " + root - .getSimpleName()); + PlotSquared.debug( + "Invalid configuration value: " + key + ": " + value + " in " + root + .getSimpleName()); e.printStackTrace(); } } @@ -262,8 +262,9 @@ public class Config { setAccessible(field); return field; } catch (Throwable e) { - PlotSquared.debug("Invalid config field: " + StringMan.join(split, ".") + " for " + toNodeName( - instance.getClass().getSimpleName())); + PlotSquared.debug( + "Invalid config field: " + StringMan.join(split, ".") + " for " + toNodeName( + instance.getClass().getSimpleName())); return null; } } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Configuration.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Configuration.java index 3b82561c8..96c0d94eb 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Configuration.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Configuration.java @@ -87,7 +87,7 @@ public class Configuration { }; public static final SettingValue BLOCK = new SettingValue("BLOCK") { @Override public boolean validateValue(String string) { - StringComparison.ComparisonResult value = + StringComparison.ComparisonResult value = WorldUtil.IMP.getClosestBlock(string); return !(value == null || value.match > 1); } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Settings.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Settings.java index 19d51ebf4..e55fc0ec5 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Settings.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/config/Settings.java @@ -14,9 +14,11 @@ public class Settings extends Config { NOTE: Fields are saved in declaration order, classes in reverse order */ - @Comment("These first 4 aren't configurable") // This is a comment + @Comment("These first 7 aren't configurable") // This is a comment @Final // Indicates that this value isn't configurable public static final String ISSUES = "https://github.com/IntellectualSites/PlotSquared/issues"; + @Final public static final String SUGGESTION = + "https://github.com/IntellectualSites/PlotSquaredSuggestions"; @Final public static final String WIKI = "https://github.com/IntellectualSites/PlotSquared/wiki"; @Final public static String DATE; // These values are set from P2 before loading @@ -31,7 +33,7 @@ public class Settings extends Config { @Create // This value will be generated automatically public static ConfigBlock AUTO_CLEAR = null; - // A ConfigBlock is a section that can have multiple instances e.g. multiple expiry tasks + // A ConfigBlock is a section that can have multiple instances e.g. multiple expiry tasks public static void save(File file) { save(file, Settings.class); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/database/AbstractDB.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/database/AbstractDB.java index cb1b22376..4b74ebd9c 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/database/AbstractDB.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/database/AbstractDB.java @@ -320,7 +320,7 @@ public interface AbstractDB { /** * Replace a old uuid with a new one in the database. - *

      + * *

        *
      • Useful for replacing a few uuids (not the entire database).
      • *
      • or entire conversion, the uuidconvert command scales better.
      • diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/database/SQLManager.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/database/SQLManager.java index a2f3ee724..66a21174d 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/database/SQLManager.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/database/SQLManager.java @@ -754,7 +754,8 @@ import java.util.concurrent.atomic.AtomicInteger; last = subList.size(); preparedStmt.addBatch(); } - PlotSquared.debug("&aBatch 1: " + count + " | " + objList.get(0).getClass().getCanonicalName()); + PlotSquared.debug( + "&aBatch 1: " + count + " | " + objList.get(0).getClass().getCanonicalName()); preparedStmt.executeBatch(); preparedStmt.clearParameters(); preparedStmt.close(); @@ -797,7 +798,8 @@ import java.util.concurrent.atomic.AtomicInteger; last = subList.size(); preparedStmt.addBatch(); } - PlotSquared.debug("&aBatch 2: " + count + " | " + objList.get(0).getClass().getCanonicalName()); + PlotSquared.debug( + "&aBatch 2: " + count + " | " + objList.get(0).getClass().getCanonicalName()); preparedStmt.executeBatch(); preparedStmt.clearParameters(); preparedStmt.close(); @@ -1693,8 +1695,9 @@ import java.util.concurrent.atomic.AtomicInteger; if (Settings.Enabled_Components.DATABASE_PURGER) { toDelete.add(last.temp); } else { - PlotSquared.debug("&cPLOT #" + id + "(" + last + ") in `" + this.prefix - + "plot` is a duplicate. Delete this plot or set `database-purger: true` in the settings.yml."); + PlotSquared.debug( + "&cPLOT #" + id + "(" + last + ") in `" + this.prefix + + "plot` is a duplicate. Delete this plot or set `database-purger: true` in the settings.yml."); } } } else { @@ -1734,9 +1737,9 @@ import java.util.concurrent.atomic.AtomicInteger; } } - /* - * Getting helpers - */ + /* + * Getting helpers + */ try (ResultSet r = statement.executeQuery( "SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_helpers`")) { ArrayList toDelete = new ArrayList<>(); @@ -1762,9 +1765,9 @@ import java.util.concurrent.atomic.AtomicInteger; deleteRows(toDelete, this.prefix + "plot_helpers", "plot_plot_id"); } - /* - * Getting trusted - */ + /* + * Getting trusted + */ try (ResultSet r = statement.executeQuery( "SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_trusted`")) { ArrayList toDelete = new ArrayList<>(); @@ -1790,9 +1793,9 @@ import java.util.concurrent.atomic.AtomicInteger; deleteRows(toDelete, this.prefix + "plot_trusted", "plot_plot_id"); } - /* - * Getting denied - */ + /* + * Getting denied + */ try (ResultSet r = statement.executeQuery( "SELECT `user_uuid`, `plot_plot_id` FROM `" + this.prefix + "plot_denied`")) { ArrayList toDelete = new ArrayList<>(); @@ -2378,7 +2381,8 @@ import java.util.concurrent.atomic.AtomicInteger; } } } catch (SQLException e) { - PlotSquared.debug("&7[WARN] Failed to fetch rating for plot " + plot.getId().toString()); + PlotSquared + .debug("&7[WARN] Failed to fetch rating for plot " + plot.getId().toString()); e.printStackTrace(); } return map; @@ -2970,7 +2974,8 @@ import java.util.concurrent.atomic.AtomicInteger; } // owner if (!plot.owner.equals(dataPlot.owner)) { - PlotSquared.debug("&8 - &7Setting owner: " + plot + " -> " + MainUtil.getName(plot.owner)); + PlotSquared + .debug("&8 - &7Setting owner: " + plot + " -> " + MainUtil.getName(plot.owner)); setOwner(plot, plot.owner); } // trusted @@ -2979,8 +2984,9 @@ import java.util.concurrent.atomic.AtomicInteger; HashSet toRemove = (HashSet) dataPlot.getTrusted().clone(); toRemove.removeAll(plot.getTrusted()); toAdd.removeAll(dataPlot.getTrusted()); - PlotSquared.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " trusted for: " - + plot); + PlotSquared.debug( + "&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " trusted for: " + + plot); if (!toRemove.isEmpty()) { for (UUID uuid : toRemove) { removeTrusted(plot, uuid); @@ -2997,8 +3003,9 @@ import java.util.concurrent.atomic.AtomicInteger; HashSet toRemove = (HashSet) dataPlot.getMembers().clone(); toRemove.removeAll(plot.getMembers()); toAdd.removeAll(dataPlot.getMembers()); - PlotSquared.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " members for: " - + plot); + PlotSquared.debug( + "&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " members for: " + + plot); if (!toRemove.isEmpty()) { for (UUID uuid : toRemove) { removeMember(plot, uuid); @@ -3015,8 +3022,9 @@ import java.util.concurrent.atomic.AtomicInteger; HashSet toRemove = (HashSet) dataPlot.getDenied().clone(); toRemove.removeAll(plot.getDenied()); toAdd.removeAll(dataPlot.getDenied()); - PlotSquared.debug("&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " denied for: " - + plot); + PlotSquared.debug( + "&8 - &7Correcting " + (toAdd.size() + toRemove.size()) + " denied for: " + + plot); if (!toRemove.isEmpty()) { for (UUID uuid : toRemove) { removeDenied(plot, uuid); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/FlagManager.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/FlagManager.java index 8615a67a5..c52b77f44 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/FlagManager.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/FlagManager.java @@ -117,7 +117,8 @@ public class FlagManager { .replaceAll(",", "´")); i++; } catch (Exception e) { - PlotSquared.debug("Failed to parse flag: " + entry.getKey() + "->" + entry.getValue()); + PlotSquared + .debug("Failed to parse flag: " + entry.getKey() + "->" + entry.getValue()); e.printStackTrace(); } } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flags.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flags.java index 5f038e96d..6603b8387 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flags.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/Flags.java @@ -136,8 +136,9 @@ public final class Flags { } Flag flag = (Flag) fieldValue; if (!flag.getName().equals(fieldName)) { - PlotSquared.debug(Flags.class + "Field doesn't match: " + fieldName + " != " + flag - .getName()); + PlotSquared.debug( + Flags.class + "Field doesn't match: " + fieldName + " != " + flag + .getName()); } flags.put(flag.getName(), flag); } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/GameModeFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/GameModeFlag.java index cf9dd5c37..3467171f2 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/GameModeFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/GameModeFlag.java @@ -35,6 +35,6 @@ public class GameModeFlag extends Flag { } @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'"; } } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerListFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerListFlag.java index 66a479fca..e46071b86 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerListFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/IntegerListFlag.java @@ -26,6 +26,6 @@ public class IntegerListFlag extends ListFlag> { } @Override public String getValueDescription() { - return "Flag value must be a integer list"; + return "Flag value must be an integer list"; } } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotWeatherFlag.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotWeatherFlag.java index b2cbed710..e6f93ee2d 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotWeatherFlag.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/flag/PlotWeatherFlag.java @@ -30,6 +30,6 @@ public class PlotWeatherFlag extends Flag { } @Override public String getValueDescription() { - return ""; + return "Flag must be a weather: 'rain' or 'sun'"; } } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/HybridPlotManager.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/HybridPlotManager.java index 967a644da..b727e0960 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/HybridPlotManager.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/HybridPlotManager.java @@ -42,7 +42,8 @@ public class HybridPlotManager extends ClassicPlotManager { files.add(new FileBytes(newDir + "intersection.schematic", Files.readAllBytes(intersection.toPath()))); } - File plot = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), dir + "plot.schematic"); + File plot = + MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), dir + "plot.schematic"); if (plot.exists()) { files.add( new FileBytes(newDir + "plot.schematic", Files.readAllBytes(plot.toPath()))); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/HybridPlotWorld.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/HybridPlotWorld.java index 80381d04e..dd509e559 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/HybridPlotWorld.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/HybridPlotWorld.java @@ -192,8 +192,10 @@ public class HybridPlotWorld extends ClassicPlotWorld { "schematics/GEN_ROAD_SCHEMATIC/" + this.worldname + "/intersection.schematic"); File schem3File = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), "schematics/GEN_ROAD_SCHEMATIC/" + this.worldname + "/plot.schematic"); - SchematicHandler.Schematic schematic1 = SchematicHandler.manager.getSchematic(schematic1File); - SchematicHandler.Schematic schematic2 = SchematicHandler.manager.getSchematic(schematic2File); + SchematicHandler.Schematic schematic1 = + SchematicHandler.manager.getSchematic(schematic1File); + SchematicHandler.Schematic schematic2 = + SchematicHandler.manager.getSchematic(schematic2File); SchematicHandler.Schematic schematic3 = SchematicHandler.manager.getSchematic(schem3File); int shift = this.ROAD_WIDTH / 2; int oddshift = (this.ROAD_WIDTH & 1) == 0 ? 0 : 1; diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/SquarePlotManager.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/SquarePlotManager.java index 658a79f93..d65e4940e 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/SquarePlotManager.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/generator/SquarePlotManager.java @@ -198,7 +198,8 @@ public abstract class SquarePlotManager extends GridPlotManager { } PlotSquared.debug("invalid location: " + Arrays.toString(merged)); } catch (Exception ignored) { - PlotSquared.debug("Invalid plot / road width in settings.yml for world: " + plotArea.worldname); + PlotSquared.debug( + "Invalid plot / road width in settings.yml for world: " + plotArea.worldname); } return null; } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/listener/ProcessedWEExtent.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/listener/ProcessedWEExtent.java index f364e689a..448dd50b8 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/listener/ProcessedWEExtent.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/listener/ProcessedWEExtent.java @@ -96,9 +96,9 @@ public class ProcessedWEExtent extends AbstractDelegateExtent { this.BScount++; if (this.BScount > Settings.Chunk_Processor.MAX_TILES) { this.BSblocked = true; - PlotSquared - .debug(C.PREFIX + "&cdetected unsafe WorldEdit: " + location.getBlockX() + "," - + location.getBlockZ()); + PlotSquared.debug( + C.PREFIX + "&cdetected unsafe WorldEdit: " + location.getBlockX() + "," + + location.getBlockZ()); } if (WEManager.maskContains(this.mask, location.getBlockX(), location.getBlockY(), location.getBlockZ())) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/listener/WESubscriber.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/listener/WESubscriber.java index 417e9c534..f86b9f53c 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/listener/WESubscriber.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/listener/WESubscriber.java @@ -39,8 +39,9 @@ public class WESubscriber { Player player = (Player) actor; Location loc = player.getLocation(); com.github.intellectualsites.plotsquared.plot.object.Location pLoc = - new com.github.intellectualsites.plotsquared.plot.object.Location(player.getWorld().getName(), - loc.getBlockX(), loc.getBlockX(), loc.getBlockZ()); + new com.github.intellectualsites.plotsquared.plot.object.Location( + player.getWorld().getName(), loc.getBlockX(), loc.getBlockX(), + loc.getBlockZ()); Plot plot = pLoc.getPlot(); if (plot == null) { event.setExtent(new NullExtent()); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/Plot.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/Plot.java index 80e0dfdcc..d072df622 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/Plot.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/Plot.java @@ -745,6 +745,39 @@ public class Plot { } } + /** + * Set the plot owner (and update the database) + * + * @param owner + * @param initiator + * @return boolean + */ + public boolean setOwner(UUID owner, PlotPlayer initiator) { + boolean result = EventUtil.manager + .callOwnerChange(initiator, this, owner, hasOwner() ? this.owner : null, hasOwner()); + if (!result) + return false; + if (!hasOwner()) { + this.owner = owner; + create(); + return true; + } + if (!isMerged()) { + if (!this.owner.equals(owner)) { + this.owner = owner; + DBFunc.setOwner(this, owner); + } + return true; + } + for (Plot current : getConnectedPlots()) { + if (!owner.equals(current.owner)) { + current.owner = owner; + DBFunc.setOwner(current, owner); + } + } + return true; + } + /** * Clear a plot. * @@ -2417,7 +2450,8 @@ public class Plot { if (current.owner == null || current.settings == null) { // Invalid plot // merged onto unclaimed plot - PlotSquared.debug("Ignoring invalid merged plot: " + current + " | " + current.owner); + PlotSquared + .debug("Ignoring invalid merged plot: " + current + " | " + current.owner); continue; } tmpSet.add(current); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/PlotMessage.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/PlotMessage.java index e8620c148..47069a38e 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/PlotMessage.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/PlotMessage.java @@ -15,8 +15,7 @@ public class PlotMessage { } catch (Throwable e) { PlotSquared.debug( PlotSquared.imp().getPluginName() + " doesn't support fancy chat for " + PlotSquared - .get().IMP - .getServerVersion()); + .get().IMP.getServerVersion()); ChatManager.manager = new PlainChatManager(); reset(ChatManager.manager); } diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/worlds/SinglePlotManager.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/worlds/SinglePlotManager.java index 92a8be064..13566671e 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/worlds/SinglePlotManager.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/object/worlds/SinglePlotManager.java @@ -28,7 +28,8 @@ public class SinglePlotManager extends PlotManager { @Override public boolean clearPlot(PlotArea plotArea, Plot plot, final Runnable whenDone) { SetupUtils.manager.unload(plot.getWorldName(), false); - final File worldFolder = new File(PlotSquared.get().IMP.getWorldContainer(), plot.getWorldName()); + final File worldFolder = + new File(PlotSquared.get().IMP.getWorldContainer(), plot.getWorldName()); TaskManager.IMP.taskAsync(new Runnable() { @Override public void run() { MainUtil.deleteDirectory(worldFolder); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/ChunkManager.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/ChunkManager.java index be6d99296..e863e1302 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/ChunkManager.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/ChunkManager.java @@ -209,7 +209,8 @@ public abstract class ChunkManager { public abstract void unloadChunk(String world, ChunkLoc loc, boolean save, boolean safe); public Set getChunkChunks(String world) { - File folder = new File(PlotSquared.get().IMP.getWorldContainer(), world + File.separator + "region"); + File folder = + new File(PlotSquared.get().IMP.getWorldContainer(), world + File.separator + "region"); File[] regionFiles = folder.listFiles(); HashSet chunks = new HashSet<>(); if (regionFiles == null) { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/EventUtil.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/EventUtil.java index 116d6cc8c..f7799e5f2 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/EventUtil.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/EventUtil.java @@ -10,6 +10,7 @@ import com.github.intellectualsites.plotsquared.plot.object.*; import com.github.intellectualsites.plotsquared.plot.util.expiry.ExpireManager; import com.google.common.base.Optional; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.HashSet; import java.util.UUID; @@ -18,7 +19,15 @@ public abstract class EventUtil { public static EventUtil manager = null; - public abstract Rating callRating(PlotPlayer player, Plot plot, Rating rating); + /** + * Submit a plot rate event and return the updated rating + * + * @param player Player that rated the plot + * @param plot Plot that was rated + * @param rating Rating given to the plot + * @return Updated rating or null if the event was cancelled + */ + @Nullable public abstract Rating callRating(PlotPlayer player, Plot plot, Rating rating); public abstract boolean callClaim(PlotPlayer player, Plot plot, boolean auto); @@ -50,6 +59,9 @@ public abstract class EventUtil { public abstract void callMember(PlotPlayer initiator, Plot plot, UUID player, boolean added); + public abstract boolean callOwnerChange(PlotPlayer initiator, Plot plot, UUID newOwner, + UUID oldOwner, boolean hasOldOwner); + public void doJoinTask(final PlotPlayer player) { if (player == null) { return; //possible future warning message to figure out where we are retrieving null diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/SchematicHandler.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/SchematicHandler.java index ec326ea3a..d4774c928 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/SchematicHandler.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/SchematicHandler.java @@ -427,7 +427,8 @@ public abstract class SchematicHandler { * @return schematic if found, else null */ public Schematic getSchematic(String name) { - File parent = MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.SCHEMATICS); + File parent = + MainUtil.getFile(PlotSquared.get().IMP.getDirectory(), Settings.Paths.SCHEMATICS); if (!parent.exists()) { if (!parent.mkdir()) { throw new RuntimeException("Could not create schematic parent directory"); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/UUIDHandlerImplementation.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/UUIDHandlerImplementation.java index f871d10a7..02beb3dc5 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/UUIDHandlerImplementation.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/UUIDHandlerImplementation.java @@ -103,7 +103,7 @@ public abstract class UUIDHandlerImplementation { /* * lazy UUID conversion: * - Useful if the person misconfigured the database, or settings before - * PlotMe conversion + * PlotMe conversion */ if (!Settings.UUID.OFFLINE && !this.unknown.isEmpty()) { TaskManager.runTaskAsync(new Runnable() { diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/expiry/ExpireManager.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/expiry/ExpireManager.java index 4e4c248ac..e62727158 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/expiry/ExpireManager.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/expiry/ExpireManager.java @@ -388,8 +388,10 @@ public class ExpireManager { PlotAnalysis changed = plot.getComplexity(null); int changes = changed == null ? 0 : changed.changes_sd; int modified = changed == null ? 0 : changed.changes; - PlotSquared.debug("$2[&5Expire&dManager$2] &cDeleted expired plot: " + plot + " User:" + plot.owner - + " Delta:" + changes + "/" + modified + " Connected: " + StringMan.getString(plots)); + PlotSquared.debug( + "$2[&5Expire&dManager$2] &cDeleted expired plot: " + plot + " User:" + plot.owner + + " Delta:" + changes + "/" + modified + " Connected: " + StringMan + .getString(plots)); PlotSquared.debug("$4 - Area: " + plot.getArea()); if (plot.hasOwner()) { PlotSquared.debug("$4 - Owner: " + UUIDHandler.getName(plot.owner)); diff --git a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/expiry/PlotAnalysis.java b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/expiry/PlotAnalysis.java index ba3223587..118cda789 100644 --- a/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/expiry/PlotAnalysis.java +++ b/Core/src/main/java/com/github/intellectualsites/plotsquared/plot/util/expiry/PlotAnalysis.java @@ -78,7 +78,8 @@ public class PlotAnalysis { TaskManager.runTaskAsync(new Runnable() { @Override public void run() { Iterator iterator = plots.iterator(); - PlotSquared.debug(" - $1Reducing " + plots.size() + " plots to those with sufficient data"); + PlotSquared.debug( + " - $1Reducing " + plots.size() + " plots to those with sufficient data"); while (iterator.hasNext()) { Plot plot = iterator.next(); if (plot.getSettings().ratings == null || plot.getSettings().getRatings() @@ -168,15 +169,17 @@ public class PlotAnalysis { } } - PlotSquared.debug(" - $1Waiting on plot rating thread: " + mi.intValue() * 100 / plots.size() - + "%"); + PlotSquared.debug( + " - $1Waiting on plot rating thread: " + mi.intValue() * 100 / plots.size() + + "%"); try { ratingAnalysis.join(); } catch (InterruptedException e) { e.printStackTrace(); } - PlotSquared.debug(" - $1Processing and grouping single plot analysis for bulk processing"); + PlotSquared + .debug(" - $1Processing and grouping single plot analysis for bulk processing"); for (int i = 0; i < plots.size(); i++) { Plot plot = plots.get(i); PlotSquared.debug(" | " + plot); diff --git a/Core/src/main/resources/bridge.template b/Core/src/main/resources/bridge.template new file mode 100644 index 000000000..d5f9ccd93 Binary files /dev/null and b/Core/src/main/resources/bridge.template differ diff --git a/Core/src/main/resources/german.yml b/Core/src/main/resources/de-DE.yml similarity index 100% rename from Core/src/main/resources/german.yml rename to Core/src/main/resources/de-DE.yml diff --git a/Core/src/main/resources/spanish.yml b/Core/src/main/resources/es-ES.yml similarity index 85% rename from Core/src/main/resources/spanish.yml rename to Core/src/main/resources/es-ES.yml index 0102805c8..f4459649d 100644 --- a/Core/src/main/resources/spanish.yml +++ b/Core/src/main/resources/es-ES.yml @@ -1,6 +1,7 @@ confirm: failed_confirm: $2No tienes acciones pendientes por confirmar. requires_confirm: '$2¿Estas seguro de realizar este comando?: $1%s$2?&-$2¡No hay vuelta atras! Si estas seguro escribe: $1/plot confirm' + expired_confirm: $2La confirmación ha expirado, por favor ejecute el comando otra vez! move: move_success: $4La parcela fue movida correctamente. copy_success: $4La parcela fue copiada correctamente. @@ -16,27 +17,30 @@ web: compass: compass_target: $4Parcela seleccionada con la brujula completada. cluster: - cluster_available_args: '$1Los siguientes subcomandos estan disponibles: $4list$2, $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, $4tp$2, $4sethome' + cluster_available_args: '$1Los siguientes subcomandos estan disponibles: $4list$2, + $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, + $4info$2, $4tp$2, $4sethome' cluster_list_heading: $2Hay $1%s$2 agrupaciones en este mundo. cluster_list_element: $2 - $1%s&- cluster_intersection: $2El area propuesta se solapa con $1%s$2 de la parcela existente. - cluster_added: $4Creacion de agrupaciones completado. - cluster_deleted: $4Borrado de agrupaciones completado. - cluster_resized: $4Reescalado de agrupaciones completado. + cluster_added: $4Creacion de agrupaciones completado. + cluster_deleted: $4Borrado de agrupaciones completado. + cluster_resized: $4Reescalado de agrupaciones completado. cluster_added_user: $4Añadido usuario a la agrupacion con exito. - cannot_kick_player: $2Tu no puedes expulsar a este jugador. + cannot_kick_player: $2Tu no puedes expulsar a este jugador. cluster_invited: '$1Has sido invitado a la siguiente agrupacion: $2%s' cluster_removed: '$1Has sido eliminado de la agrupacion: $2%s' - cluster_kicked_user: $4Usuario expulsado con exito. + cluster_kicked_user: $4Usuario expulsado con exito. invalid_cluster: '$1Nombre de agrupacion invalido: $2%s' cluster_not_added: $2Este jugador no fue añadido a la agrupacion de parcelas. - cluster_cannot_leave: $1Debes eliminar o transferir el dueño antes de salir. + cluster_cannot_leave: $1Debes eliminar o transferir el dueño antes de salir. cluster_added_helper: $4Ayudante añadido a la agrupacion con exito. cluster_removed_helper: $4Ayudante eliminado de la agrupacion con exito. cluster_regenerated: $4Regeneracion de la agrupacion comenzada con exito. cluster_teleporting: $4Teletransportando... - cluster_info: '$1Agrupacion actual: $2%id%&-$1Nombre: $2%name%&-$1Propietario: $2%owner%&-$1Tamaño: $2%size%&-$1Derechos: $2%rights%' - cluster_current_plotid: '$1Parcela actual: $2%s' + cluster_info: '$1Agrupacion actual: $2%id%&-$1Nombre: $2%name%&-$1Propietario: $2%owner%&-$1Tamaño: + $2%size%&-$1Derechos: $2%rights%' + cluster_outside: '$2El área propuesta está fuera del área de la parcela: %s0' border: border: $2Estas en las afueras del borde del mapa. unclaim: @@ -63,7 +67,7 @@ records: notify_leave: $2%player $2abandona tu parcela ($1%plot$2) swap: swap_overlap: $2Las áreas propuestas no pueden superponerse. - swap_dimensions: $2El area propuesta debe tener dimensiones comparables. + swap_dimensions: $2El area propuesta debe tener dimensiones comparables. swap_syntax: $2/plot swap swap_success: $4Intercambio de parcelas completado started_swap: $2 Intercambiando las tareas de las parcelas. Serás notificado cuando el proceso haya terminado. @@ -77,7 +81,7 @@ comment: no_perm_inbox_modify: $2No tienes permisos para modificar esta bandeja de entrada. no_plot_inbox: $2Debes permanecer en la parcela para poder escribir el comentario. comment_removed: $4Comentario eliminado satisfactoriamente/s:n$2 - '$3%s$2' - comment_added: $4Te han dejado un comentario. + comment_added: $4Te han dejado un comentario. comment_header: $2&m---------&r $1Comentarios $2&m---------&r inbox_empty: $2No hay comentarios. console: @@ -100,7 +104,7 @@ blocked command: command_blocked: $2El comando no esta permitido en esta parcela. done: done_already_done: $2Esta parcela esta finalizada. - done_not_done: $2Esta parcela no esta finalizada. + done_not_done: $2Esta parcela no esta finalizada. done_insufficient_complexity: $2Esta parcela es muy simple. Porfavor añade mas detalles antes de usar este comando. done_success: $1Parcela finalizada con exito. done_removed: $1Ya puedes continuar construyendo en esta parcela. @@ -111,6 +115,7 @@ ratings: rating_not_your_own: $2No puedes valorar tu propia parcela. rating_not_done: $2Solo puedes valorar parcelas terminadas. rating_not_owned: $2No puedes valorar una parcela que no pertenece a nadie. + ratings_purged: $2Calificaciones purgadas para esta parcela tutorial: rate_this: $2¡Valora esta parcela! comment_this: '$2Deja tu opinion de esta parcela: %s' @@ -121,8 +126,9 @@ economy: cannot_buy_own: $2No puedes comprar tu propia parcela. plot_sold: $4Tu parcela; $1%s0$4, se ha vendido por $1%s1$4 para $1$%s2 cannot_afford_merge: $2Tu no puedes permitirte combinar las parcelas. Cuesta $1%s - added_balance: $1%s $2 fue añadido a tu fondo de dinero. - removed_balance: $1%s $2 fue removido de tu fondo de dinero. + added_balance: $1%s $2 fue añadido a tu fondo de dinero. + removed_balance: $1%s $2 fue removido de tu fondo de dinero. + removed_granted_plot: $2Usaste %s concesiones de trama, te quedan 5 $1%s setup: setup_init: '$1Uso: $2/plot setup ' setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1Espectando: $2%s2 $1Default: $2%s3' @@ -130,15 +136,21 @@ setup: setup_valid_arg: $2Valor $1%s0 $2ajustado a %s1 setup_finished: $4Deberias haber sido teletransportado al mundo creado, sino tendras que generarlo manualmente usando el bukkit.yml setup_world_taken: $2%s este mundo ya esta registrado. - setup_missing_world: $2 Necesitas especificar el nombre del mundo ($1/plot setup &l$1 $2)&-$1Additional commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel - setup_missing_generator: $2Tienes que especificar un generador ($1/plot setup &l&r$2)&-$1Additional commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel + setup_missing_world: $2 Necesitas especificar el nombre del mundo ($1/plot setup + &l$1 $2)&-$1Comandos adicionales:&-$2 - $1/plot setup &-$2 + - $1/plot setup back&-$2 - $1/plot setup cancel + setup_missing_generator: $2Tienes que especificar un generador ($1/plot setup + &l&r$2)&-$1Comandos adicionales:&-$2 - $1/plot setup &-$2 - $1/plot + setup back&-$2 - $1/plot setup cancel setup_invalid_generator: '$2Generador inválido. Opciones posibles: %s' schematics: - schematic_missing_arg: '$2Necesitas especificar un argumento. Valores posibles: $1test $2 , $1save$2 , $1paste $2, $1exportall' + schematic_missing_arg: '$2Necesitas especificar un argumento. Valores posibles: + $1test $2 , $1save$2 , $1paste $2, $1exportall' schematic_invalid: '$2Este no es un schematic valido. Razon: $2%s' schematic_valid: $2Este es un schematic valido. schematic_paste_failed: $2Fallo al pegar el schematic. schematic_paste_success: $4El schematic ha sido copiado correctamente. + schematic_too_large: $2¡La trama es demasiado grande para esta acción! titles: title_entered_plot: '$1Parcela: %world%;%x%;%z%' title_entered_plot_sub: $4Propiedad de %s @@ -148,12 +160,9 @@ core: task_start: Comenzando la tarea... prefix: $3[$1P2$3] $2 enabled: $1PlotSquared esta activado. - example_message: $2Esto es un ejemplo de mensaje &k!!! reload: reloaded_configs: $1Las traducciones y opciones del mundo han sido cargados. reload_failed: $2Fallo al cargar las configuraciones de los archivos. -bar api: - bossbar_clearing: '$2Limpiando parcela: $1%id%' desc: desc_set: $2Descripcion de la parcela. desc_unset: $2Descripcion de la parcela no especificada. @@ -163,6 +172,7 @@ alias: missing_alias: $2Necesitas especificar un alias. alias_too_long: $2El alias debe ser < de 50 caracteres alias_is_taken: $2Ese alias ya ha sido utilizado. + alias_removed: $2Parcela alias eliminado position: missing_position: '$2Necesitas especificar una posicion. Valores posibles: $1none' position_set: $1Hogar establecido en tu posicion actual. @@ -181,6 +191,7 @@ permission: cant_claim_more_plots_num: $2No puedes claimear mas de $1%s $2parcelas a la vez. you_be_denied: $2No tienes permitido entrar en esta parcela. merge_request_confirm: Peticion de agrupamiento de %s + cant_claim_more_clusters: $2No puedes reclamar más grupos. merge: merge_not_valid: $2La peticion de agrupacion ya no es valida. merge_accepted: $2La peticion de agrupacion ha sido aceptada. @@ -191,14 +202,6 @@ merge: unlink_required: $2Se requiere una desconexion para hacer esto. unlink_impossible: $2Solo puedes desconectar una mega-parcela. unlink_success: $2Se han desconectado las parcelas. -commands: - not_valid_subcommand: $2No es un subcomando valido. - did_you_mean: '$2Quisiste decir: $1%s' - name_little: $2%s0 el nombre es muy corto, $1%s1$2<$1%s3 - no_commands: $2No tienes permitido utilizar cualquier subcomando. - subcommand_set_options_header: '$2Valores posibles: ' - command_syntax: '$1Usos: $2%s' - flag_tutorial_usage: '$1Haz que un administrador coloque la bandera: $2%s' errors: invalid_player_wait: '$2Jugador no encontrado: $1%s$2, buscando. Prueba mas tarde.' invalid_player: '$2Jugador no encontrado: $1%s$2.' @@ -212,15 +215,15 @@ errors: not_valid_world: $2Esto no es un mundo valido. (caso sensitivo) not_valid_plot_world: $2Esta no es una parcela valida. (caso sensitivo) no_plots: $2No tienes ninguna parcela. - not_using_plotme: $2Este server utiliza el $1PlotSquared $2plot sistema de mantenimiento. Utilice el $1/ps $2o $1/p2 $2o $1/plot $2en vez. wait_for_timer: $2El temporizador del selector de bloque esta ligado a ti o a la parcela actual. Por favor espere a que termine. + invalid_command_flag: '$2Indicador de comando no válido: %s0' + error: '$2Ocurrió un error: %s' + not_loaded: $2No se pudo cargar la trama paste: debug_report_created: '$1Se ha enviado una depuracion a: $1%url%' purge: - purge_syntax: Usa /plot purge purge_success: $4Se ha limpiado %s parcelas. trim: - trim_syntax: Usa /plot trim trim_in_progress: La tarea de recorte esta en proceso! not_valid_hybrid_plot_world: Es necesario el dueño de las parcelas para realizar esta accion. block list: @@ -253,6 +256,7 @@ invalid: no_such_plot: $2No existe dicha parcela. player_has_not_been_on: $2Este usuario no ha estado en el mundo de parcelas. found_no_plots: $2No se ha encontrado parcelas con esta informacion. + found_no_plots_for_player: '$2No se encontraron parcelas para jugador: %s' camera: camera_started: $2Has entrado en modo camara para la parcela $1%s camera_stopped: $2Ya no estas en modo camara. @@ -263,13 +267,16 @@ need: need_plot_world: $2Necesitas especificar un mundo de parcelas. need_user: $2Necesitas especificar un usuario. info: - none: Ninguno. - unknown: Desconocido. - everyone: Todos. + none: Ninguno + unknown: Desconocido + everyone: Todos plot_unowned: $2La parcela actual tiene que tener un propietario para ejecutar esa accion. plot_info_unclaimed: $2Parcela $1%s$2 aun no esta claimeada. plot_info_header: $3&m---------&r $1INFO $3&m--------- - plot_info: '$1ID: $2%id%$1&-$1Alias: $2%alias%$1&-$1Propietario: $2%owner%$1&-$1Bioma: $2%biome%$1&-$1Puede construir: $2%build%$1&-$1Clasificacion: $2%rating%&-$1Confianza: $2%trusted%$1&-$1Miembros: $2%members%$1&-$1Denegados: $2%denied%$1&-$1Flags: $2%flags%' + plot_info: '$1ID: $2%id%$1&-$1Alias: $2%alias%$1&-$1Propietario: $2%owner%$1&-$1Bioma: + $2%biome%$1&-$1Puede construir: $2%build%$1&-$1Clasificacion: $2%rating%&-$1Confianza: + $2%trusted%$1&-$1Miembros: $2%members%$1&-$1Denegados: $2%denied%$1&-$1Flags: + $2%flags%' plot_info_footer: $3&m---------&r $1INFO $3&m--------- plot_info_trusted: $1Confianza:$2 %trusted% plot_info_members: $1Miembros:$2 %members% @@ -283,6 +290,10 @@ info: plot_info_size: $1Tamaño:$2 %size% plot_user_list: ' $1%user%$2,' info_syntax_console: $2/plot info X;Y + now: Ahora + never: Nunca + plot_info_seen: $1Seen:$2 %seen% + plot_flag_list: $1%s0:%s1$2 working: generating_component: $1Empezando a generar componentes desde tus opciones. clearing_plot: $2Limpiando parcela async. @@ -290,6 +301,7 @@ working: plot_not_claimed: $2Parcela no reclamada. plot_is_claimed: $2Esta parcela ya esta reclamada. claimed: $4Has reclamado con exito esta parcela. + deleting_done: $4Eliminar completado! Tomó %sms. list: comment_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1Lista de %amount% comentarios. clickable: ' (interactive)' @@ -298,6 +310,7 @@ list: plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner. plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner. plot_list_footer: $2>> $1%word% un total $2%num% $1claimeado %plot%. + area_list_header_paged: $2(Página $1%cur$2/$1%max$2) $1lista de %amount% areas left: left_plot: $2Has abandonado una parcela. chat: @@ -305,6 +318,7 @@ chat: plot_chat_forced: $2Este mundo obliga a usar el chat de parcela. plot_chat_on: $4Chat de parcela activado. plot_chat_off: $4Chat de parcela desactivado. + plot_chat_spy_format: '$2[$1Plot Spy$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' deny: denied_removed: $4Este usuario ya no esta denegado en esta parcela. denied_added: $4Has denegado este usuario de tu parcela. @@ -325,6 +339,7 @@ flag: flag_not_added: $2La flag no se ha podido añadir. flag_removed: $4Flag removida con exito. flag_added: $4Flag añadida con exito. + not_valid_flag_suggested: '$2Eso no es una bandera válida. Querías decir: $1%s' trusted: trusted_added: $4Has añadido un usuario de confianza en esta parcela. trusted_removed: $4Has removido un usuario de confianza en esta parcela. @@ -341,17 +356,39 @@ member: owner: set_owner: $4Has añadido con exito el dueño de la parcela. now_owner: $4Ahora eres dueño de esta parcela %s + set_owner_cancelled: $2La setowner la acción fue cancelada signs: owner_sign_line_1: '$1ID: $1%id%' owner_sign_line_2: '$1Propietario:' owner_sign_line_3: $2%plr% owner_sign_line_4: $3Claimeado help: - help_header: "$3&m---------&r $1Plot\xb2 Ayuda $3&m---------" + help_header: $3&m---------&r $1Plot² Ayuda $3&m--------- help_page_header: '$1Categoria: $2%category%$2,$1 Página: $2%current%$3/$2%max%$2' - help_footer: "$3&m---------&r $1Plot\xb2 Ayuda $3&m---------" + help_footer: $3&m---------&r $1Plot² Ayuda $3&m--------- help_info_item: $1/plot help %category% $3- $2%category_desc% help_item: $1%usage% [%alias%]&- $3- $2%desc%&- direction: '$1Direccion actual: %dir%' '-': custom_string: '-' +commandconfig: + not_valid_subcommand: $2No es un subcomando valido. + did_you_mean: '$2Quisiste decir: $1%s' + name_little: $2%s0 el nombre es muy corto, $1%s1$2<$1%s3 + no_commands: $2No tienes permitido utilizar cualquier subcomando. + subcommand_set_options_header: '$2Valores posibles: ' + command_syntax: '$1Usos: $2%s' + flag_tutorial_usage: '$1Haz que un administrador coloque la bandera: $2%s' +bar api: {} +set: + set_attribute: $4Establecer con éxito %s0 ajustado a %s1 +cap: + entity_cap: $2No tienes permitido engendrar más mobs +near: + plot_near: '$1Jugadores: %s0' +kick: + you_got_kicked: $4Te patearon! +grants: + granted_plots: '$1Resultado: $2%s $1grants left' + granted_plot: $1You granted %s0 plot to $2%s1 + granted_plot_failed: '$1Subvención fallida: $2%s' diff --git a/Core/src/main/resources/italian.yml b/Core/src/main/resources/it-IT.yml similarity index 95% rename from Core/src/main/resources/italian.yml rename to Core/src/main/resources/it-IT.yml index a57515825..6419a2234 100644 --- a/Core/src/main/resources/italian.yml +++ b/Core/src/main/resources/it-IT.yml @@ -19,9 +19,9 @@ web: compass: compass_target: $4Lotto mirato con successo con la bussola cluster: - cluster_available_args: '$1Sono disponibili i seguenti sotto comandi: $4list$2, $4create$2, - $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, - $4tp$2, $4sethome' + cluster_available_args: '$1Sono disponibili i seguenti sotto comandi: $4list$2, + $4create$2, $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, + $4info$2, $4tp$2, $4sethome' cluster_list_heading: $2Ci sono $1%s$2 cluster in questo mondo cluster_list_element: $2 - $1%s&- cluster_intersection: '$2L''area proposta si sovrappone a: %s0' @@ -50,12 +50,9 @@ unclaim: worldedit masks: worldedit_delayed: $2Attendi durante l'elaborazione della tua azione WorldEdit... worldedit_run: '$2Scuse per il ritardo. Ora in esecuzione: %s' - require_selection_in_mask: $2%s della tua selezione non è all'interno del tuo lotto. - Puoi apportare modifiche solo dentro il tuo lotto. - worldedit_volume: $2Non puoi selezionare un volume di %current%. Il volume massimo - che puoi modificare è %max%. - worldedit_iterations: $2Non puoi iterare %current% volte. Il massimo numero di - iterazioni consentite è %max%. + require_selection_in_mask: $2%s della tua selezione non è all'interno del tuo lotto. Puoi apportare modifiche solo dentro il tuo lotto. + worldedit_volume: $2Non puoi selezionare un volume di %current%. Il volume massimo che puoi modificare è %max%. + worldedit_iterations: $2Non puoi iterare %current% volte. Il massimo numero di iterazioni consentite è %max%. worldedit_unsafe: $2L'accesso a quel comando è stato bloccato worldedit_bypass: $2&oPer bypassare le tue restrizioni usa $4/plot wea worldedit_bypassed: $2Attualmente bypassando le restrizioni di WorldEdit. @@ -139,15 +136,15 @@ setup: setup_invalid_arg: '$2%s0 non è un argomento valido per il passaggio %s1. Per cancellare il setup usa: $1/plot setup cancel' setup_valid_arg: $2Valore $1%s0 $2impostato a %s1 setup_finished: $4Dovresti essere stato teletrasportato nel mondo creato. Altrimenti - sarà necessario impostare manualmente il generatore usando il file bukkit.yml o il tuo plugin - di gestione dei mondi scelto. + sarà necessario impostare manualmente il generatore usando il file bukkit.yml + o il tuo plugin di gestione dei mondi scelto. setup_world_taken: $2%s è già un mondo lotti setup_missing_world: $2Devi specificare un nome per il mondo ($1/plot setup &l$1 $2)&-$1Comandi aggiuntivi:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel setup_missing_generator: $2Devi specificare un generatore ($1/plot setup - &l&r$2)&-$1Comandi aggiuntivi:&-$2 - $1/plot setup &-$2 - $1/plot - setup back&-$2 - $1/plot setup cancel + &l&r$2)&-$1Comandi aggiuntivi:&-$2 - $1/plot setup &-$2 - + $1/plot setup back&-$2 - $1/plot setup cancel setup_invalid_generator: '$2Generatore non valido. Opzioni possibili: %s' schematics: schematic_too_large: $2Il lotto è troppo grande per questa azione! @@ -271,7 +268,7 @@ invalid: no_such_plot: $2Quel lotto non esiste player_has_not_been_on: $2Quel giocatore non è mai stato nel mondo lotti found_no_plots: $2Non sono stati trovati lotti con la tua ricerca - found_no_plots_for_player: $2Nessun lotto trovato per il giocatore: %s + found_no_plots_for_player: '$2Nessun lotto trovato per il giocatore: %s' camera: camera_started: $2Hai inserito la modalità telecamera per il lotto $1%s camera_stopped: $2Non sei più in modalità telecamera @@ -293,8 +290,9 @@ info: plot_info_unclaimed: $2Il lotto $1%s$2 non è ancora claimato plot_info_header: $3&m---------&r $1INFO $3&m--------- plot_info: '$1ID: $2%id%$1&-$1Alias: $2%alias%$1&-$1Proprietario: $2%owner%$1&-$1Bioma: - $2%biome%$1&-$1Puoi costruire: $2%build%$1&-$1Valutazione: $2%rating%&-$1Visto: $2%seen%&-$1Membri fidati: - $2%trusted%$1&-$1Membri: $2%members%$1&-$1Bloccati: $2%denied%$1&-$1Flag: $2%flags%' + $2%biome%$1&-$1Puoi costruire: $2%build%$1&-$1Valutazione: $2%rating%&-$1Visto: + $2%seen%&-$1Membri fidati: $2%trusted%$1&-$1Membri: $2%members%$1&-$1Bloccati: + $2%denied%$1&-$1Flag: $2%flags%' plot_info_footer: $3&m---------&r $1INFO $3&m--------- plot_info_trusted: $1Membri fidati:$2 %trusted% plot_info_members: $1Membri:$2 %members% @@ -365,8 +363,8 @@ trusted: plot_removed_user: $1Il lotto %s in cui eri aggiunto è stato eliminato a causa dell'inattività del proprietario member: removed_players: $2Rimossi %s giocatori dal lotto. - already_owner: '$2L''utente %s0 è già il proprietario di questo lotto.' - already_added: '$2L''utente %s0 è già aggiunto a quella categoria.' + already_owner: $2L'utente %s0 è già il proprietario di questo lotto. + already_added: $2L'utente %s0 è già aggiunto a quella categoria. member_added: $4Quell'utente ora può costruire quando il proprietario è online member_removed: $1Hai rimosso con successo un utente dal lotto member_was_not_added: $2Quel giocatore non è aggiunto a questo lotto @@ -374,6 +372,7 @@ member: owner: set_owner: $4Hai impostato correttamente il proprietario del lotto now_owner: $4Sei ora proprietario del lotto %s + set_owner_cancelled: $2L'azione del proprietario è stata annullata signs: owner_sign_line_1: '$1ID: $1%id%' owner_sign_line_2: '$1Proprietario:' diff --git a/Core/src/main/resources/Ko-kr.yml b/Core/src/main/resources/ko-KR.yml similarity index 81% rename from Core/src/main/resources/Ko-kr.yml rename to Core/src/main/resources/ko-KR.yml index ab6bec1d7..07d6caca5 100644 --- a/Core/src/main/resources/Ko-kr.yml +++ b/Core/src/main/resources/ko-KR.yml @@ -1,12 +1,12 @@ -# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # Translate by Protocodyne Korean Translate team # First Author , 2015. confirm: failed_confirm: $2이 작업이 완료되기 위한 행동이 당신에게 존재하지 않습니다! - requires_confirm: '$2정말로 실행되길 원하나요: $1%s$2?&-$2이 작업은 되돌릴 수 - 없습니다! 확실하다면 다음 명령어를 입력하세요: $1/plot confirm' + requires_confirm: '$2정말로 실행되길 원하나요: $1%s$2?&-$2이 작업은 되돌릴 수 없습니다! 확실하다면 다음 명령어를 입력하세요: + $1/plot confirm' + expired_confirm: $2확인이 만료되었습니다. 명령을 다시 실행하십시오.! move: move_success: $4성공적으로 땅이 옮겨졌습니다. copy_success: $4성공적으로 땅이 복사되었습니다. @@ -20,14 +20,13 @@ web: load_list: '$2schematic로드를 원한다면, 다음명령어를 사용하세요 $1/plot load #' save_success: $1성공적으로 저장되었습니다! compass: - compass_target: $4Successfully targeted plot with compass + compass_target: $4나침반과 함께 음모를 성공적으로 지정했습니다. cluster: - cluster_available_args: '$1다음 하위명령어가 사용 가능합니다.: $4list$2, $4create$2, - $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, - $4tp$2, $4sethome' + cluster_available_args: '$1다음 하위명령어가 사용 가능합니다.: $4list$2, $4create$2, $4delete$2, + $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, $4tp$2, $4sethome' cluster_list_heading: $2이 월드에 $1%s$2 cluster가 있습니다 cluster_list_element: $2 - $1%s&- - cluster_intersection: $2The proposed area overlaps with $1%s$2 existing cluster/s + cluster_intersection: $2제안 된 영역이 겹칩니다 와 $1%s$2 기존의 cluster cluster_added: $4cluster가 성공적으로 생성되었습니다. cluster_deleted: $4cluster가 성공적으로 삭제되었습니다. cluster_resized: $4cluster가 성공적으로 재조정 되었습니다. @@ -43,9 +42,9 @@ cluster: cluster_removed_helper: $4helper가 성공적으로 cluster에서 제거되었습니다 cluster_regenerated: $4성공적으로 cluster가 재생성 되었습니다 cluster_teleporting: $4이동중... - cluster_info: '$1현재 cluster: $2%id%&-$1이름: $2%name%&-$1소유자: $2%owner%&-$1크기: - $2%size%&-$1Rights: $2%rights%' - cluster_current_plotid: '$1현재 땅: $2%s' + cluster_info: '$1현재 cluster: $2%id%&-$1이름: $2%name%&-$1소유자: $2%owner%&-$1크기: $2%size%&-$1Rights: + $2%rights%' + cluster_outside: '$2제안 된 영역이 플롯 영역 밖에 있습니다: %s0' border: border: $2당신은 현재 지도의 경계 밖에 있습니다 unclaim: @@ -54,7 +53,8 @@ unclaim: worldedit masks: worldedit_delayed: $2당신의 WorldEdit 행동을 처리중이니 기다려주시기 바랍니다... worldedit_run: '$2처리가 지연되어 죄송합니다. 해당 명령어를 실행합니다: %s' - require_selection_in_mask: $2%s of your selection is not within your plot mask. You can only make edits within your plot. + require_selection_in_mask: $2%s 선택한 마스크가 플롯 마스크 안에 있지 않습니다.. + 플롯 내에서만 편집 할 수 있습니다.. worldedit_volume: $2당신은 a volume of %current%를 선택 할 수 없습니다. 당신이 수정할 수 있는 최대부피는 %max% 입니다. worldedit_iterations: $2당신은 %current%번 반복 적용시킬 수 없습니다. 당신이 수정가능한 최대 부피는 %max% 입니다. worldedit_unsafe: $2해당 명령어는 실행 될 수 없습니다. @@ -84,10 +84,10 @@ comment: invalid_inbox: '$2올바르지 않은 메일함 입니다..&-$1Accepted values: %s' no_perm_inbox: $2당신은 해당 메일함에 권한이 없습니다 no_perm_inbox_modify: $2당신은 해당 메일함을 수정할 권한이 없습니다 - no_plot_inbox: $2You must stand in or supply a plot argument + no_plot_inbox: $2당신은 서 있거나 줄거리를 제공해야합니다 comment_removed: $4comment가 성공적으로 삭제되었습니다/s:n$2 - '$3%s$2' comment_added: $4A comment가 남아있습니다 - comment_header: $2&m---------&r $1Comments $2&m---------&r + comment_header: $2&m---------&r $1댓글 $2&m---------&r inbox_empty: $2comment가 없습니다 console: not_console: $2보안상의 이유로, 이 명령어는 Console에서만 입력 가능합니다. @@ -101,8 +101,7 @@ clipboard: pasted: $4해당 땅은 성공적으로 붙여넣어졌습니다. 해당 땅은 클립보드로부터 제거됩니다. paste_failed: '$2선택된 땅의 복사가 실패했습니다. 사유: $2%s' no_clipboard: $2클립보드에 복사된 땅이 존재하지 않습니다 - clipboard_info: '$2현재 선택 - Plot ID: $1%id$2, Width: $1%width$2, Total - Blocks: $1%total$2' + clipboard_info: '$2현재 선택 - Plot ID: $1%id$2, Width: $1%width$2, Total Blocks: $1%total$2' toggle: toggle_enabled: '$2가능한 세팅: %s' toggle_disabled: '$2불가능한 세팅: %s' @@ -121,6 +120,7 @@ ratings: rating_not_your_own: $2당신은 자신의 땅에 투표 할 수 없습니다 rating_not_done: $2당신은 완료된 땅에만 투표 할 수 있습니다. rating_not_owned: $2당신은 소유자가 없는 땅에 투표 할 수 없습니다 + ratings_purged: $2Purged ratings for this plot tutorial: rate_this: $2이 땅에 투표해보세요! comment_this: '$2이땅에 피드백을 남겨보세요: %s' @@ -129,43 +129,47 @@ economy: cannot_afford_plot: $2당신은 이 땅을 구입 할 수 없습니다. 이 땅의 가격은 $1%s 입니다 not_for_sale: $2이 땅은 판매 불가능합니다 cannot_buy_own: $2당신은 본인의 땅을 구입 불가능 합니다 - plot_sold: $4당신의 땅; $1%s0$4, has been sold to $1%s1$4 for $1$%s2 + plot_sold: $4당신의 땅; $1%s0$4, 판매 된 $1%s1$4 에 대한 $1$%s2 cannot_afford_merge: $2당신은 이 땅을 함칠 수 없습니다. 이 땅의 가격은 $1%s 입니다 added_balance: $1%s $2이 당신의 통장에 추가되었습니다 removed_balance: $1%s $2이 당신의 통장에서 빠져나갔습니다 + removed_granted_plot: $2너는 사용했다 %s 계획 교부금 (들), 당신이있어 $1%s $2왼쪽 setup: - setup_init: '$1Usage: $2/plot setup ' - setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1Expecting: $2%s2 $1Default: $2%s3' - setup_invalid_arg: '$2%s0 는 올바르지 않은 값입니다 %s1. 설정 취소를 원하시면 - 다음 명령어를 사용하십시오: $1/plot setup cancel' + setup_init: '$1용법: $2/plot setup ' + setup_step: '$3[$1Step %s0$3] $1%s1 $2- $1기대: $2%s2 $1태만: $2%s3' + setup_invalid_arg: '$2%s0 는 올바르지 않은 값입니다 %s1. 설정 취소를 원하시면 다음 명령어를 사용하십시오: $1/plot + setup cancel' setup_valid_arg: $2Value $1%s0 $2set to %s1 - setup_finished: $4당신은 만들어진 World로 이동되있어야 합니다. 그렇지 않으면 당신은 bukkit.yml를 통하여 워드를 설정하거나 다중월드 플러그인을 사용하여 월드를 생성하여야 합니다. + setup_finished: $4당신은 만들어진 World로 이동되있어야 합니다. 그렇지 않으면 당신은 bukkit.yml를 통하여 워드를 설정하거나 + 다중월드 플러그인을 사용하여 월드를 생성하여야 합니다. setup_world_taken: $2%s 는 이미 등록된 Plot World 입니다 - setup_missing_world: $2당신은 월드의 이름을 지정해야 합니다 ($1/plot setup &l$1 $2)&-$1Additional commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel - setup_missing_generator: $2당신은 생성기를 지정해야 합니다 ($1/plot setup &l&r$2)&-$1Additional commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup cancel + setup_missing_world: $2당신은 월드의 이름을 지정해야 합니다 ($1/plot setup &l$1 $2)&-$1Additional + commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup + cancel + setup_missing_generator: $2당신은 생성기를 지정해야 합니다 ($1/plot setup &l&r$2)&-$1Additional + commands:&-$2 - $1/plot setup &-$2 - $1/plot setup back&-$2 - $1/plot setup + cancel setup_invalid_generator: '$2올바르지 않은 생성기 입니다. 가능한 옵션: %s' schematics: - schematic_missing_arg: '$2당신은 인수를 지정해야 합니다. 가능한 값: $1test - $2 , $1save$2 , $1paste $2, $1exportall' + schematic_missing_arg: '$2당신은 인수를 지정해야 합니다. 가능한 값: $1test $2 , $1save$2 , + $1paste $2, $1exportall' schematic_invalid: '$2이것은 올바르지 않은 schematic파일 입니다. 사유: $2%s' schematic_valid: $2이것은 올바른 schematic파일 입니다 schematic_paste_failed: $2schematic 적용에 실패하엿습니다 schematic_paste_success: $4schematic이 성공적으로 적용되었습니다 + schematic_too_large: $2플롯이 너무 커서이 작업을 수행 할 수 없습니다! titles: title_entered_plot: '$1Plot: %world%;%x%;%z%' - title_entered_plot_sub: $4Owned by %s + title_entered_plot_sub: $4에게 소유 된 %s prefix_greeting: '$1%id%$2> ' prefix_farewell: '$1%id%$2> ' core: task_start: 작업을 시작합니다... prefix: $3[$1P2$3] $2 enabled: $1PlotSquared 가 실행됩니다 - example_message: $2This Korean Translation Make by Protocodyne &k!!! reload: reloaded_configs: $1번역 파일 및 월드 설정 파일이 성공적으로 리로드 되었습니다 reload_failed: $2설정파일의 리로드에 실패하였습니다 -bar api: - bossbar_clearing: '$2Clearing plot: $1%id%' desc: desc_set: $2Plot 설명 설정 desc_unset: $2Plot 설명 설정취소 @@ -175,6 +179,7 @@ alias: missing_alias: $2당신은 별명을 설정해야 합니다 alias_too_long: $2별명은 50자 이내여야 합니다 alias_is_taken: $2이 별명은 이미 존재합니다 + alias_removed: $2플롯 별칭이 제거되었습니다 position: missing_position: '$2당신은 위치를 지정해야합니다. 가능한 값: $1none' position_set: $1Home 위치를 현재 위치로 지정합니다 @@ -193,24 +198,18 @@ permission: cant_claim_more_plots_num: $2당신은 한번에 $1%s $2plots보다 더 많이 소유할 수 없습니다 you_be_denied: $2당신은 이 땅에 들어갈 수 없습니다 merge_request_confirm: 병합요청이 들어왔습니다 %s + cant_claim_more_clusters: $2더 많은 클러스터를 청구 할 수 없습니다. merge: merge_not_valid: $2이 병합 요청은 더이상 유효하지 않습니다 merge_accepted: $2병합 요청이 수락되었습니다 success_merge: $2땅이 병합되었습니다 merge_requested: $2병합요청이 성공적으로 전송되었습니다 no_perm_merge: '$2당신은 이 땅의 소유자가 아닙니다: $1%plot%' - no_available_automerge: $2당신은 지정한 방향으로 인접한 plots를 소유하지 않았거나 plots를 필요한 크기로 합병 할 수 없습니다. + no_available_automerge: $2당신은 지정한 방향으로 인접한 plots를 소유하지 않았거나 plots를 필요한 크기로 합병 할 + 수 없습니다. unlink_required: $2An unlink는 이것을 하는데 요구 됩니다. unlink_impossible: $2당신은 오직 mega-plot만 unlink 할 수 있습니다 unlink_success: $2성공적으로 plots을 unlink 하였습니다. -commands: - not_valid_subcommand: $2이것은 유효하지 않은 하위 명령어 입니다 - did_you_mean: '$2이것을 명령어를 의미하나요: $1%s' - name_little: $2%s0 아름이 너무 짧습니다, $1%s1$2<$1%s3 - no_commands: $2죄송합니다 당신은 하위명령어 사용을 허가받지 못했습니다. - subcommand_set_options_header: '$2Possible Values: ' - command_syntax: '$1Usage: $2%s' - flag_tutorial_usage: '$1Have an admin set the flag: $2%s' errors: invalid_player_wait: '$2플레이어를 찾지 못했습니다: $1%s$2, fetching it. 잠시 후 시도해주세요.' invalid_player_offline: '$2플레이어는 반드시 접속 중이어야 합니다: $1%s.' @@ -224,22 +223,22 @@ errors: not_valid_world: $2옳바르지 않은 World 입니다 not_valid_plot_world: $2올바르지 않은 plot world 입니다 (case sensitive) no_plots: $2당신은 어떤 땅도 가지고 있지 않습니다 - not_using_plotme: $2이 서버는 상위버전의 $1PlotSquared $2plot 관리 시스템을 사용합니다. Please use the $1/ps $2or $1/p2 $2or $1/plot $2instead wait_for_timer: $2A setblock 타이머는 현재의 땅 또는 당신에게 묶여있습니다. 완료까지 잠시 기다려주시기 바랍니다 + invalid_command_flag: '$2잘못된 명령 플래그: %s0' + error: '$2오류가 발생했습니다: %s' + not_loaded: $2플롯을로드 할 수 없습니다 paste: - debug_report_created: '$1Uploaded a full debug to: $1%url%' + debug_report_created: '$1전체 디버그를에 업로드했습니다.: $1%url%' purge: - purge_syntax: Use /plot purge purge_success: $4%s 땅들을 성공적으로 제거하였습니다 trim: - trim_syntax: Use /plot trim trim_in_progress: 최적화 작업이 이미 진행중입니다! not_valid_hybrid_plot_world: 이 행동을 위하여 hybrid plot manager가 필요합니다. block list: block_list_separater: '$1,$2 ' biome: need_biome: $2당신은 유효한 생태계를 지정해야 합니다. - biome_set_to: $2Plot biome set to $2 + biome_set_to: $2플롯 생물 설정 $2 teleport: teleported_to_plot: $1당신은 이동 되었습니다. teleported_to_road: $2당신은 길로 이동 되었습니다. @@ -258,13 +257,14 @@ invalid: not_valid_data: $2그것은 유효한 데이터 ID가 아닙니다. not_valid_block: '$2그것은 유효한 블록이 아닙니다.: %s 그것은 유효한 블록이 아닙니다.' not_allowed_block: '$2그 블록은 허락되지 않았습니다 : %s' - not_valid_number: '$2그것은 %s범위내에서 유효하지 않은 숫자입니다.' + not_valid_number: $2그것은 %s범위내에서 유효하지 않은 숫자입니다. not_valid_plot_id: $2그 땅의 ID는 유효하지 않습니다. - plot_id_form: '$2땅의 ID는 반드시 형식에 있어야 합니다: $1X;Y $2e.g. $1-5;7' + plot_id_form: '$2땅의 ID는 반드시 형식에 있어야 합니다: $1X;Y $2e.g. $1-5;7' not_your_plot: $2그것은 당신의 땅이 아닙니다. no_such_plot: $2거기엔 어떤 땅도 없습니다. player_has_not_been_on: $2해당 플레이어는 plotworld에 없습니다. found_no_plots: $2당신의 검색에서 아무 땅도 발견하지 못했습니다 + found_no_plots_for_player: '$2No plots found for player: %s' camera: camera_started: $2당신은 땅을 위한 카메라 모드에 입장했습니다 $1%s camera_stopped: $2카메라 모드를 종료합니다 @@ -297,32 +297,40 @@ info: plot_info_size: $1Size:$2 %size% plot_user_list: ' $1%user%$2,' info_syntax_console: $2/plot info X;Y + now: 지금 + never: 못 + plot_info_seen: $1Seen:$2 %seen% + plot_flag_list: $1%s0:%s1$2 working: generating_component: $1당신의 설정값으로부터 component 생성을 시작합니다 - clearing_plot: $2Clearing plot async. - clearing_done: $4Clear completed! Took %sms. + clearing_plot: $2플롯 비동기 지우기. + clearing_done: $4명확한 완료. 했다 %sms. plot_not_claimed: $2땅이 판매되지 않았습니다 plot_is_claimed: $2이 땅은 이미 판매되었습니다 claimed: $4성공적으로 땅을 판매하였습니다 + deleting_done: $4삭제가 완료되었습니다! 가져왔다 %sms. list: - comment_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1List of %amount% comments - clickable: ' (interactive)' - plot_list_header_paged: $2(Page $1%cur$2/$1%max$2) $1List of %amount% plots - plot_list_header: $1List of %word% plots + comment_list_header_paged: $2(페이지 $1%cur$2/$1%max$2) $1목록 %amount% 코멘트 + clickable: ' (상호 작용하는)' + plot_list_header_paged: $2(페이지 $1%cur$2/$1%max$2) $1목록 %amount% plots + plot_list_header: $1목록 %word% plots plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner - plot_list_footer: $2>> $1%word% a total of $2%num% $1claimed %plot%. + plot_list_footer: $2>> $1%word% 총 $2%num% $1claimed %plot%. + area_list_header_paged: $2(페이지 $1%cur$2/$1%max$2) $1목록f %amount% areas left: left_plot: $2당신은 땅을 떠났습니다. chat: plot_chat_format: '$2[$1Plot Chat$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' plot_chat_forced: $이 월드는 모두가 plot chat을 쓰도록 강제합니다 - plot_chat_on: $4Plot chat enabled. - plot_chat_off: $4Plot chat disabled. + plot_chat_on: $4플롯 채팅 사용 설정 됨. + plot_chat_off: $4플롯 채팅 사용 중지됨. + plot_chat_spy_format: '$2[$1Plot Spy$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' deny: denied_removed: $4당신은 이 땅으로부터 플레이어를 차단 해제 했습니다. denied_added: $4당신은 이 땅으로부터 플레이어를 성공적으로 차단 했습니다. - denied_need_argument: $2변수가 빠졌습니다. $1/plot denied add $2or $1/plot denied remove + denied_need_argument: $2변수가 빠졌습니다. $1/plot denied add $2or $1/plot denied + remove was_not_denied: $2해당 플레이어는 이 땅에서 차단되지 않았습니다. you_got_denied: $4당신은 해당 땅으로부터 차단되었습니다 따라서 spawn으로 자동 이동 되었습니다. rain: @@ -339,6 +347,7 @@ flag: flag_not_added: $2그 깃발은 추가될 수 없습니다 flag_removed: $4깃발이 성공적으로 제거되었습니다 flag_added: $4깃발이 성공적으로 추가되었습니다 + not_valid_flag_suggested: '$2That is not a valid flag. Did you mean: $1%s' trusted: trusted_added: $4당신은 그 땅에 유저를 성공적으로 위탁했습니다 trusted_removed: $4당신은 그 땅으로부터 신용(위탁)받은 유저를 성공적으로 제거했습니다. @@ -355,18 +364,39 @@ member: owner: set_owner: $4당신은 땅의 소유자를 성공적으로 설정했습니다 now_owner: $4당신은 이제 %s땅의 소유자입니다 + set_owner_cancelled: $2The setowner action was cancelled signs: owner_sign_line_1: '$1ID: $1%id%' owner_sign_line_2: '$1소유자:' owner_sign_line_3: $2%plr% owner_sign_line_4: $3Claimed help: - help_header: "$3&m---------&r $1Plot\xb2 도움말 $3&m---------" - help_page_header: '$1Category: $2%category%$2,$1 Page: $2%current%$3/$2%max%$2' - help_footer: "$3&m---------&r $1Plot\xb2 도움말 $3&m---------" + help_header: $3&m---------&r $1Plot² 도움말 $3&m--------- + help_page_header: '$1범주: $2%category%$2,$1 페이지: $2%current%$3/$2%max%$2' + help_footer: $3&m---------&r $1Plot² 도움말 $3&m--------- help_info_item: $1/plot help %category% $3- $2%category_desc% help_item: $1%usage% [%alias%]&- $3- $2%desc%&- - direction: '$1Current direction: %dir%' + direction: '$1현재 방향: %dir%' '-': custom_string: '-' - +commandconfig: + not_valid_subcommand: $2이것은 유효하지 않은 하위 명령어 입니다 + did_you_mean: '$2이것을 명령어를 의미하나요: $1%s' + name_little: $2%s0 아름이 너무 짧습니다, $1%s1$2<$1%s3 + no_commands: $2죄송합니다 당신은 하위명령어 사용을 허가받지 못했습니다. + subcommand_set_options_header: '$2Possible Values: ' + command_syntax: '$1Usage: $2%s' + flag_tutorial_usage: '$1관리자에게 국기를 설정하게하십시오: $2%s' +bar api: {} +set: + set_attribute: $4설정 완료 %s0 로 설정 %s1 +cap: + entity_cap: $2더 많은 몹을 스폰하는 것은 허용되지 않습니다. +near: + plot_near: '$1선수: %s0' +kick: + you_got_kicked: $4너는 쫓겨났다 +grants: + granted_plots: '$1결과: $2%s $1grants left' + granted_plot: $1You granted %s0 plot to $2%s1 + granted_plot_failed: '$1Grant failed: $2%s' diff --git a/Core/src/main/resources/s_chinese.yml b/Core/src/main/resources/s_chinese.yml deleted file mode 100644 index e6fbf8701..000000000 --- a/Core/src/main/resources/s_chinese.yml +++ /dev/null @@ -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 - 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> - 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 - 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$1 $2)&-$1\u9644\u52a0\u6307\u4ee4\uff1a&-$2 - $1/plot setup &-$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 &l&r$2)&-$1\u9644\u52a0\u6307\u4ee4\uff1a&-$2 - $1/plot setup &-$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 $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 $2\u6216\u8005 $1/plot denied remove - 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' diff --git a/Core/src/main/resources/s_chinese_unescaped.yml b/Core/src/main/resources/s_chinese_unescaped.yml deleted file mode 100644 index 328adc858..000000000 --- a/Core/src/main/resources/s_chinese_unescaped.yml +++ /dev/null @@ -1,257 +0,0 @@ -### UNESCAPED TEMPLATE ### -# Translated by: Liouftgoo/Mayomi9 -# UTF-8 ESCAPE USING: http://www.rapidmonkey.com/unicodeconverter/ -### UNESCAPED TEMPLATE ### -camera_started: "$2������˵�Ƥ $1%s �������ģʽ" -command_syntax: "$1�÷�: $2%s" -not_valid_flag: "$2�ⲻ��һ����Ч�ı�ʶ" -setup_world_taken: "$2%s �Ѿ��ǵ�Ƥ������" -plot_list_item: "$2>> $1%id$2:$1%world $2- $1%owner" -schematic_invalid: "$2�ⲻ��һ����Ч�Ľ����ļ�. ԭ��: $2%s" -not_valid_inbox_index: "$2ҳ�� %s û������" -setup_invalid_generator: "$2��Ч�����ɲ���. ��ѡ: %s" -teleported_to_road: "$2�㴫�͵���·��" -debug_section: "$2>> $1&l%val%" -plot_id_form: "$2��ƤID�ĸ�ʽ����Ϊ: $1X;Y $2����: $1-5;7" -invalid_position: "$2�ⲻ��һ����Ч��λ��" -worldedit_unsafe: "$2��ָ���Ѿ�����ֹʹ��" -not_in_plot_world: "$2�㲻�ڵ�Ƥ������" -cannot_buy_own: "$2�㲻�������Լ��ĵ�Ƥ" -help_item: "$1%usage% [%alias%]&- $3- $2%desc%&-" -not_valid_world: "$2�ⲻ��һ����Ч������ (ע���Сд)" -home_argument: "$2�÷� /plot set home [�ɲ���]" -title_left_plot_color: "GOLD" -merge_not_valid: "$2�ϲ�������ʧЧ." -debug_line: "$2>> $1%var%$2:$1 %val% " -comment_added: "$4�����һ���µ�����" -alias_is_taken: "$2��������ѱ�����ʹ��" -setup_missing_generator: "$2����Ҫָ��һ�����ɲ��� ($1/plot setup <��������> &l<���ɲ���>&r$2)&-$1����ָ��:&-$2 - $1/plot setup <����>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel" -block_list_separater: "$1,$2 " -alias_set_to: "$2��Ƥ�ı�������Ϊ $1%alias%" -did_you_mean: "$2�����˼�� $1%s $2��?" -cluster_not_added: "$2������δ�������Ƥ��Ⱥ��" -success_merge: "$2��Ƥ�ɹ����ϲ�!" -position_set: "$1���㵱ǰ��λ�����ü�" -cluster_regenerated: "$4�ɹ���ʼȺ���ؽ�" -not_valid_data: "$2�ⲻ��һ����Ч�IJ���ֵ." -not_for_sale: "$2����Ƥ��������" -not_in_cluster: "$2�������һ����Ƥ��Ⱥ�в��ܽ��д˲���" -schematic_paste_success: "$4�����ļ�ճ���ɹ�" -set_block_action_finished: "$1���һ���������������." -missing_alias: "$2����Ҫָ��һ������" -paste_failed: "$2ճ��ʱ��������. ԭ��: $2%s" -invalid_player: "$2δ�ҵ���� $1%s." -plot_info_helpers: "$1����:$2 %helpers%" -cluster_added: "$4�ɹ�������Ⱥ." -setup_init: "$1�÷�: $2/plot setup <����>" -bossbar_clearing: "$2���������Ƥ $1%id%" -title_entered_plot_sub_color: "RED" -prefix_greeting: "$1%id%$2> " -not_your_plot: "$2�ⲻ����ĵ�Ƥ." -worldedit_volume: "$2���޷�ѡ�� %current% �Ŀռ�. ���ռ��������Ϊ %max%." -not_valid_plot_id: "$2�ⲻ����Ч�ĵ�ƤID." -unclaim_success: "$4�����������Ƥ." -teleport_failed: "$2��Ϊ�ܵ��˺�����ȡ������" -need_plot_world: "$2����Ҫָ��һ����Ƥ����." -plot_not_claimed: "$2��Ƥδ����ȡ" -title_entered_plot_color: "GOLD" -denied_removed: "$4�����������Ƥ����ҵĺ�����" -plot_removed_helper: "$1�����ĵ�Ƥ %s ��Ϊӵ���߲���Ծ����ɾ����" -plotworld_incompatible: "$2������������໥����" -generating_component: "$1��ʼ��������趨����" -not_valid_block_list_header: "$2�ⲻ��һ����Ч�ķ���. ��Ч�ķ���: " -alias_too_long: "$2�����ij��ȱ���С��50���ַ�" -move_success: "$4�ɹ��Ƴ���Ƥ." -no_plot_perms: "$2������ǵ�Ƥӵ���߲���ִ���������" -command_went_wrong: "$2ִ������ʱ�����˴���..." -helper_added: "$4��ɹ�Ϊ��Ƥ�����˰���" -schematic_paste_failed: "$2ճ�������ļ�ʧ��" -removed_balance: "$2������˻��п۳��� $1%s" -setup_step: "$3[$1���� - %s$3] $1%s $2- $1����: $2%s $1Ĭ��ֵ: $2%s" -schematic_valid: "$2����һ����Ч�Ľ����ļ�" -owner_sign_line_4: "$3����ȡ" -cluster_added_helper: "$4�ɹ�Ϊ��Ⱥ�������" -owner_sign_line_3: "$2%plr%" -already_owner: "$2�������Ѿ�ӵ�е�Ƥ��." -owner_sign_line_2: "$1ӵ����:" -owner_sign_line_1: "$1ID: $1%id%" -not_valid_subcommand: "$2�ⲻ��һ����Ч��������" -subcommand_set_options_header: "$2���õIJ���: " -requires_unowned: "$2��λ���ѱ�ռ��." -plot_unowned: "$2������ǵ�Ƥӵ���߲���ִ���������" -inbox_item: "$2 - $4%s" -cannot_kick_player: "$2�㲻���߳������" -clearing_done: "$4�������! ��ʱ %s����." -setup_valid_arg: "$2���� $1%s $2����Ϊ %s" -camera_stopped: "$2��ȡ���������ģʽ" -flag_type: "$2����: %s" -pasted: "$4��ѡ��ĵ�Ƥ�ɹ�ճ��." -cluster_info: "$1��ǰ��Ⱥ: $2%id%&-$1����: $2%name%&-$1ӵ����: $2%owner%&-$1��С: $2%size%&-$1Ȩ��: $2%rights%" -cluster_cannot_leave: "$1���˳�֮ǰ��ת������Ȩ" -help_header: "$3====== $1��Ƥ�����˵� $3======" -cannot_afford_merge: "$2��û���㹻�Ľ�Ǯ�ϲ���Ƥ. ��Ҫ���� $1%s" -setting_updated: "$4�����������趨" -need_key: "$2���ò���: $1%values%" -merge_requested: "$2�ɹ����ͺϲ�����" -compass_target: "$4S�ɹ����͵�Ŀ���Ƥ" -flag_not_added: "$2�ñ�ʶ�޷������" -no_plots: "$2��û�ж���ĵ�Ƥ��" -need_plot_id: "$2����Ҫָ��һ����ƤID." -flag_not_removed: "$2�ñ�ʶ�޷����Ƴ�" -trusted_removed: "$1��ӵ�Ƥ���Ƴ���һ���������" -comment_header: "$2====== ���԰� ======" -flag_removed: "$4�ɹ��Ƴ���ʶ" -rating_applied: "$4��Ϊ��Ƥ $2%s $4�����" -requires_confirm: "$2���Ƿ�ִ��: $1%s$2?&-$2�ò���������! ���ȷ��������: $1/plot confirm" -flag_added: "$4�ɹ���ӱ�ʶ" -econ_disabled: "$2���ù���δ����" -not_valid_hybrid_plot_world: "The hybrid plot manager is required to perform this action" -no_commands: "$2��û��Ȩ��ʹ���κ�ָ��." -missing_position: "$2����Ҫָ��һ��λ��. ���õIJ���: $1none" -record_play: "$2%player $2��ʼ����CD $1%name" -no_perm_inbox_modify: "$2��û��Ȩ���޸�" -unlink_required: "$2�����Ҫȡ���ϲ���Ƥ." -denied_need_argument: "$2ȱ�ٲ���. $1/plot denied add <�������> $2�� $1/plot denied remove <�������>" -added_balance: "$2������˻��м����� $1%s" -not_using_plotme: "$2���������ʹ���� $1PlotSquared $2��Ƥ����ϵͳ. ������ $1/ps $2�� $1/p2 $2�� $1/plot $2������" -player_has_not_been_on: "$2�����һ�ûӵ�е�Ƥ" -plot_list_footer: "$2>> $1%word% �� $2%num% $1����ȡ�� %plot%." -trim_in_progress: "��Ƥ�����������ڽ���!" -cluster_deleted: "$4�ɹ�ɾ����Ⱥ." -cant_claim_more_plots: "$2�㲻����ȡ����ĵ�Ƥ��." -unlink_success: "$2�ɹ�ȡ����Ƥ�ϲ�." -no_perm_inbox: "$2��û��Ȩ��������" -worldedit_bypass: "$2&o����Ȩ�������� $3/plot wea" -prefix: "$3[$1��Ƥ$3] " -claimed: "$4��ɹ���ȡ�˵�Ƥ" -failed_confirm: "$2��һ��ʱ�����˴���!" -copy_success: "$4��ɹ������˵�Ƥ." -cluster_available_args: "$1���õ���Ⱥָ��: $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���������� $1%s$2 ����Ⱥ" -cluster_list_element: "$2 - $1%s&-" -cluster_intersection: "$2�õ������ص��� $1%s$2 ����Ⱥ" -cluster_resized: "$4�ɹ���������Ⱥ�Ĵ�С." -cluster_added_user: "$4�ɹ�������ҵ���Ⱥ��." -cluster_invited: "$1�㱻���뵽��Ⱥ: $2%s" -cluster_removed: "$1�㱻��Ⱥ $2%s �߳���" -cluster_kicked_user: "$4�ɹ��߳����" -invalid_cluster: "$1��Ч����Ⱥ����: $2%s" -cluster_removed_helper: "$4�ɹ��Ƴ�����Ⱥ�İ���" -cluster_teleporting: "$4������..." -cluster_current_plotid: "$1��ǰ��Ƥ: $2%s" -border: "$2���ߵ��˵�ͼ�߾�" -require_selection_in_mask: "$2��ѡ��ĵ�Ƥ %s �������. ��ֻ������ĵ�Ƥ�н���." -worldedit_iterations: "$2�㲻���ظ� %current% ��. ����ظ�����Ϊ %max%." -worldedit_unmasked: "$1���WE����û������." -worldedit_restricted: "$1���WE���ܱ�����." -notify_enter: "$2%player $2��������ĵ�Ƥ ($1%plot$2)" -notify_leave: "$2%player $2�뿪����ĵ�Ƥ ($1%plot$2)" -swap_overlap: "$2������������" -swap_dimensions: "$2��������Ҫͬ����С�ijߴ�" -swap_syntax: "$2/plot swap <��ƤID>" -swap_success: "$4�ɹ�������Ƥ" -started_swap: "$2��ʼ��Ƥ����. �����������֪ͨ��" -comment_syntax: "$2�÷� /plot comment [X;Z] <%s> <����>" -invalid_inbox: "$2�ⲻ��һ����Ч��ҳ��.&-$1���õIJ���: %s" -no_plot_inbox: "$2�ⲻ����Ч�ĵ�Ƥҳ��" -comment_removed: "$4�ɹ�ɾ����Ƥ����/s:n$2 - '$3%s$2'" -not_console: "$��ָ����޿���̨����." -is_console: "$2��ָ������������." -clipboard_set: "$2��ǰ��Ƥ�Ѿ������Ƶ��˼��а�, ʹ�� $1/plot paste$2 ��ճ����" -no_clipboard: "$2��û��ѡ����а�" -clipboard_info: "$2��ǰѡ�� - ��Ƥ ID: $1%id$2, ���: $1%width$2, ��������: $1%total$2" -rating_not_valid: "$2����Ҫָ��һ��1~10֮�����" -rating_already_exists: "$2���Ѿ�Ϊ��Ƥ $2%s ��������" -rating_not_your_own: "$2�㲻��Ϊ�Լ���Ƥ����" -rating_not_owned: "$2�㲻��Ϊ���õ�Ƥ����" -cannot_afford_plot: "$2��û���㹻�Ľ�Ǯ�����Ƥ. ��Ҫ���� $1%s" -plot_sold: "$4��ĵ�Ƥ; $1%s$4, �������� $1%s$4 �۸�Ϊ $1$%s" -setup_invalid_arg: "$2%s���Dz��� %s ����Ч����. ȡ����������: $1/plot setup cancel" -setup_finished: "$3���ʹ���� MULTIVERSE �� MULTIWORLD �����������û��Զ�д��. ��������Ҫ�ֶ�д���ļ� bukkit.yml" -setup_missing_world: "$2����Ҫָ��һ���������� ($1/plot setup &l<��������>$1 <���ɲ���>$2)&-$1����ָ��:&-$2 - $1/plot setup <����>&-$2 - $1/plot setup back&-$2 - $1/plot setup cancel" -schematic_missing_arg: "$2����Ҫָ��һ������. ���õIJ���: $1test <����>$2 , $1save$2 , $1paste $2, $1exportall" -title_entered_plot: "��Ƥλ��: %world%;%x%;%z%" -title_entered_plot_sub: "ӵ���� %s" -title_left_plot: "���뿪�� %s" -title_left_plot_sub: "ӵ���� %s" -title_left_plot_sub_color: "RED" -prefix_farewell: "$1%id%$2> " -enabled: "$1PlotSquared ������" -example_message: "$2����һ����ʾ��Ϣ &k!!!" -reloaded_configs: "$1�ļ����趨�����¶�ȡ" -reload_failed: "$2���¶�ȡʧ����" -time_format: "$1%hours%, %min%, %sec%" -no_schematic_permission: "$2��û��Ȩ��ʹ�ý����ļ� $1%s" -no_permission: "$2��ȱ����Ȩ��: $1%s" -cant_transfer_more_plots: "$2�㲻�ܷ�������ĵ�Ƥ������" -cant_claim_more_plots_num: "$2�㲻��һ����ȡ $1%s $2���Ƥ" -you_be_denied: "$2�㲻�ܽ�������Ƥ" -no_perm_merge: "$2�㲻������Ƥ $1%plot% $2��ӵ����" -unlink_impossible: "$2��ֻ��ȡ���ϲ�������Ƥ" -no_merge_to_mega: "$2������Ƥ�޷����ϲ�." -merge_accepted: "$2�ϲ������ѱ�����" -merge_request_confirm: "�յ��� %s �ĺϲ�����" -name_little: "$2%s ����̫����, $1%s$2<$1%s" -purge_syntax: "�÷� /plot purge <��������>" -purge_success: "$4�ɹ������� %s ���Ƥ" -trim_syntax: "�÷� /plot trim <��������>" -trim_start: "��ʼ��Ƥ����..." -no_free_plots: "$2û����ѵĵ�Ƥ����" -not_in_plot: "$2�㲻�ڵ�Ƥ��" -not_valid_plot_world: "$2�ⲻ��һ����Ч������ (ע���Сд)" -block_list_item: " $1%mat%$2," -need_biome: "$2����Ҫָ��һ������Ⱥ��" -biome_set_to: "$2��Ƥ������Ⱥ������Ϊ $2" -teleported_to_plot: "$2�㴫�͵��˵�Ƥ��" -teleport_in_seconds: "$1���� %s ���ڴ���. �����ƶ�..." -deubg_header: "$1������Ϣ" -not_valid_block: "$2�ⲻ��һ����Ч�ķ���." -not_valid_number: "$2�ⲻ��һ����Ч������" -no_such_plot: "$2û�и����͵ĵ�Ƥ" -found_no_plots: "$2�޷����ݸ�Ҫ����ҵ�Ƥ" -need_plot_number: "$2����Ҫָ��һ����ƤID�����" -need_block: "$����Ҫָ��һ�ַ���" -need_user: "$2����Ҫָ��һ�����" -plot_info_unclaimed: "$2��Ƥ $1%s$2 ��δ����ȡ" -plot_info_header: "$3====== $1INFO $3======" -plot_info: "$1ID: $2%id%$1&-$1����: $2%alias%$1&-$1ӵ����: $2%owner%$1&-$1����Ⱥ��: $2%biome%$1&-$1�ɷ���: $2%build%$1&-$1����: $2%rating%$1/$210$1&-$1����: $2%helpers%$1&-$1�������: $2%trusted%$1&-$1������: $2%denied%$1&-$1��ʶ: $2%flags%" -plot_info_trusted: "$1�������:$2 %trusted%" -plot_info_denied: "$1���������:$2 %denied%" -plot_info_flags: "$1��ʶ:$2 %flags%" -plot_info_biome: "$1����Ⱥ��:$2 %biome%" -plot_info_rating: "$1����:$2 %rating%" -plot_info_owner: "$1ӵ����:$2 %owner%" -plot_info_id: "$1ID:$2 %id%" -plot_info_alias: "$1����:$2 %alias%" -plot_info_size: "$1��С:$2 %size%" -plot_user_list: " $1%user%$2," -info_syntax_console: "$2/plot info <��������> X;Y" -clearing_plot: "$2�����Ƥ��." -plot_is_claimed: "$2����Ƥ�ѱ���ȡ" -plot_list_header_paged: "$2(ҳ�� $1%cur$2/$1%max$2) $1�г��� %word% ���Ƥ" -plot_list_header: "$11�г��� %word% ���Ƥ" -plot_list_item_ordered: "$2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner" -left_plot: "$2���뿪�˵�Ƥ" -wait_for_timer: "$2���÷����ʱ��������. ���Ժ�..." -plot_chat_format: "$2[$1��Ƥ����$2][$1%plot_id%$2] $1%sender%$2: $1%msg%" -denied_added: "$4��ɹ�Ϊ��Ƥ�����˺��������" -was_not_denied: "$2������Ҳ��ں�������" -need_on_off: "$2����Ҫָ��һ������. ���õIJ���: $1on$2, $1off" -flag_key: "$2�ؼ���: %s" -flag_desc: "$2����: %s" -not_valid_value: "$2��ʶ�IJ�������Ϊ����" -flag_not_in_plot: "$2����Ƥ��û�����ñ�ʶ 26" -helper_removed: "$4��ɹ�Ϊ��Ƥ�Ƴ��˰���" -helper_need_argument: "$2ȱ�ٲ���. $1/plot helpers add <�������> $2�� $1/plot helpers remove <�������>" -was_not_added: "$2�����һ�û�г�Ϊ�õ�Ƥ�İ���" -already_added: "$2�������Ѿ������˸÷���." -trusted_added: "$4��ɹ�Ϊ��Ƥ�����˿������" -trusted_need_argument: "$2ȱ�ٲ���. $1/plot trusted add <�������> $2�� $1/plot trusted remove <�������>" -t_was_not_added: "$2�����һ�û�г�Ϊ�õ�Ƥ�Ŀ������" -set_owner: "$4��ɹ�Ϊ��Ƥ������ӵ����" -now_owner: "$4�����ڳ�Ϊ��Ƥ %s ��ӵ������" -help_category: "$1����: $2%category%$2,$1 ҳ��: $2%current%$3/$2%max%$2,$1 ����ʾ: $2%dis%$3/$2%total%" -help_info: "$3====== $1ѡ��һ������ $3======" -help_info_item: "$1/plot help %category% $3- $2%category_desc%" -direction: "$1��ǰ����: %dir%" -custom_string: "-" \ No newline at end of file diff --git a/Core/src/main/resources/zh-CN.yml b/Core/src/main/resources/zh-CN.yml new file mode 100644 index 000000000..4afc3564a --- /dev/null +++ b/Core/src/main/resources/zh-CN.yml @@ -0,0 +1,407 @@ +# This file is translated by c7w, w/1345979462 and 佛壁灯(f0rb1d) +# Translation Guide +# 1. 句子与变量、命令、数字之间保留空隙,全角符号除外 +# 2. 使用已成功/已复制/正在/未启用/已启用/请使用开头 +# 3. 使用阁下(其实好像也无所谓) +# 4. 失败/成功/无效应放在句末 +# 就差不多这些 +confirm: + expired_confirm: $2确认已过期,请重新执行命令! + failed_confirm: $2阁下没有待确认的操作! + requires_confirm: '$2阁下是否确定执行:$1%s$2?&-$2此操作无法恢复!若阁下确定,请输入:$1/plot confirm' +move: + move_success: $4已成功移除地皮。 + copy_success: $4已成功复制地皮。 + requires_unowned: $2指定地点已被占用。 +set: + set_attribute: $4已成功设置 %s0 为 %s1 +web: + generating_link: $1正在处理地皮··· + generating_link_failed: $2生成下载链接失败! + save_failed: $2保存失败 + load_null: $2请使用 $4/plot load$2 获取布局列表 + load_failed: $2载入布局失败 + load_list: '$2要载入布局,请使用 $1/plot load #' + save_success: $1已成功保存! +compass: + compass_target: $4已成功将指南针指向地皮 +cluster: + cluster_available_args: '$1以下子指令可用:$4list$2, $4create$2, + $4delete$2, $4resize$2, $4invite$2, $4kick$2, $4leave$2, $4members$2, $4info$2, + $4tp$2, $4sethome' + cluster_list_heading: $2此世界中有 $1%s$2 个群集 + cluster_list_element: $2 - $1%s&- + cluster_intersection: '$计划的区域与%s0重叠' + cluster_outside: '$2计划的区域在地皮区域%s0外' + cluster_added: $4已成功创建群集。 + cluster_deleted: $4已成功删除群集。 + cluster_resized: $4已成功调整群集尺寸。 + cluster_added_user: $4已成功将玩家添加到群集。 + cannot_kick_player: $2阁下无法踢出此玩家 + cluster_invited: '$1阁下已被邀请至群集 $2%s' + cluster_removed: '$1阁下已被群集 $2%s $1移除' + cluster_kicked_user: $4已成功踢出此玩家 + invalid_cluster: '$1群集名 $2%s 无效' + cluster_not_added: $2此玩家未被添加至地皮群集 + cluster_cannot_leave: $1阁下必须在离开前先删除群集或转移所有权 + cluster_added_helper: $4已成功将帮手添加到群集 + cluster_removed_helper: $4已成功将帮手从群集移除 + cluster_regenerated: $4已成功开始群集重生 + cluster_teleporting: $4正在传送··· + cluster_info: '$1当前群集:$2%id%&-$1名称:$2%name%&-$1所有者:$2%owner%&-$1大小: + $2%size%&-$1权限:$2%rights%' +border: + border: $2阁下处于当前地图边界外 +unclaim: + unclaim_success: $4阁下已成功解除认领地皮。 + unclaim_failed: $2无法解除认领地皮 +worldedit masks: + worldedit_delayed: $2请在我们处理阁下的WorldEdit操作时稍等片刻··· + worldedit_run: '$2很抱歉造成了延迟。现正执行:%s' + require_selection_in_mask: $2选中的 %s 不在阁下的地皮覆盖范围内。 + 阁下仅可对自己的地皮做出修改。 + worldedit_volume: $2阁下无法选择 %current% 体积。阁下可编辑的最大 + 体积为 %max%。 + worldedit_iterations: $2阁下无法重复 %current% 次。容许的最大 + 重复次数为 %max%。 + worldedit_unsafe: $2已禁止对此命令的访问 + worldedit_bypass: $2&o要绕过对阁下的限制,请使用 $4/plot wea + worldedit_bypassed: $2当前正绕过WorldEdit功能限制。 + worldedit_unmasked: $1阁下的WorldEdit功能现已解除限制。 + worldedit_restricted: $1阁下的WorldEdit功能现已受限制。 +gamemode: + gamemode_was_bypassed: $1阁下绕过了为 $2{plot} $1设置的游戏模式($2{gamemode}$1)限制 +height limit: + height_limit: $1此地皮拥有高度 $2{limit} 的限制 +records: + record_play: $2%player $2已开始游玩记录 $1%name + notify_enter: $2%player $2已进入阁下的地皮($1%plot$2) + notify_leave: $2%player $2已离开阁下的地皮($1%plot$2) +swap: + swap_overlap: $2计划的区域不允许重叠 + swap_dimensions: $2计划的区域必须有可对比的维度 + swap_syntax: $2/plot swap <编号> + swap_success: $4已成功交换地皮 + started_swap: $2已开始地皮交换任务。阁下将会在完成时收到提醒 +comment: + inbox_notification: '%s 条未读消息。请使用 /plot inbox 阅读' + not_valid_inbox_index: $2索引 %s 处无评论 + inbox_item: $2 - $4%s + comment_syntax: $2请使用 /plot comment [X;Z] <%s> <评论> + invalid_inbox: '$2此收件箱无效。&-$1接受的值:%s' + no_perm_inbox: $2阁下没有此收件箱的权限 + no_perm_inbox_modify: $2阁下没有编辑此收件箱的权限 + no_plot_inbox: $2阁下必须站在地皮内或提供地皮参数 + comment_removed: $4已成功删除评论$2 - '$3%s$2' + comment_added: $4有玩家留下了一条评论 + comment_header: $2&m---------&r $1评论 $2&m---------&r + inbox_empty: $2无评论 +console: + not_console: $2由于安全考虑,此命令只可由控制台执行。 + is_console: $2此命令只可被玩家执行。 +inventory: + inventory_usage: '&c用法:&6{usage}' + inventory_desc: '&c描述:&6{desc}' + inventory_category: '&c分类:&6{category}' +clipboard: + clipboard_set: $2当前地皮已复制到阁下的剪贴板,请使用 $1/plot paste$2 粘贴 + pasted: $4已成功粘贴选择项并已从剪贴板中清除。 + paste_failed: '$2无法粘贴选择项。理由:$2%s' + no_clipboard: $2阁下的剪贴板内无选择项 + clipboard_info: '$2当前选择项 - 地皮编号:$1%id$2, 宽度:$1%width$2, 方块 + 总数: $1%total$2' +toggle: + toggle_enabled: '$2已启用设置:%s' + toggle_disabled: '$2已禁用设置:%s' +blocked command: + command_blocked: $2此地皮中不允许使用此命令 +done: + done_already_done: $2此地皮已被标记为已完成 + done_not_done: $2此地皮未标记为已完成。 + done_insufficient_complexity: $2此地皮过于简单。请在使用此命令前添加更多的细节。 + done_success: $1已成功标记此地皮为已完成。 + done_removed: $1阁下现在可以在此地皮中继续建造了。 +ratings: + ratings_purged: $2已清除此地皮的评分 + rating_not_valid: $2阁下需要指定介于 1 到 10 之间的数字 + rating_already_exists: $2阁下已评价过地皮 $2%s + rating_applied: $4阁下已成功评价地皮 $2%s + rating_not_your_own: $2阁下无法评价自己的地皮 + rating_not_done: $2阁下仅可评价已完成的地皮。 + rating_not_owned: $2阁下无法评价尚未被任何玩家拥有的地皮 +tutorial: + rate_this: $2评价此地皮! + comment_this: '$2请为地皮 %s 留下反馈' +economy: + econ_disabled: $2未启用经济系统 + cannot_afford_plot: $2阁下无法购买此地皮。此地皮价值 $1%s + not_for_sale: $2此地皮恕不出售 + cannot_buy_own: $2阁下无法购买自己的地皮 + plot_sold: $4阁下的地皮 $1%s0$4 已以 $1$%s2$4 的价格售给了 $1%s1 + cannot_afford_merge: $2阁下无法合并地皮。此操作花费 $1%s + added_balance: $1%s $2已转入您的余额 + removed_balance: $1%s $2已从您的余额中转出 + removed_granted_plot: $2阁下已使用了授予的 %s 块地皮,剩余 $1%s $2块 +setup: + setup_init: '$1用法:$2/plot setup <值>' + setup_step: '$3[$1步骤 %s0$3] $1%s1 $2- $1预期值:$2%s2 $1默认值:$2%s3' + setup_invalid_arg: '$2%s0 不是步骤 %s1 的有效参数。要取消配置 + 请使用:$1/plot setup cancel' + setup_valid_arg: $2值 $1%s0 $2已设置为 %s1 + setup_finished: $4阁下应已被传送至新建的世界。否则阁下将需 + 在 bukkit.yml 或世界管理插件中手动设置生成器。 + setup_world_taken: $2%s 已是一个世界 + setup_missing_world: $2阁下需要指定世界名($1/plot setup &l<世界名>$1 + <生成器>$2)&-$1附加指令:&-$2 - $1/plot setup <值>&-$2 - $1/plot + setup back&-$2 - $1/plot setup cancel + setup_missing_generator: $2阁下需要指定生成器($1/plot setup <世界名> + &l<生成器>&r$2)&-$1附加指令&-$2 - $1/plot setup <值>&-$2 - $1/plot + setup back&-$2 - $1/plot setup cancel + setup_invalid_generator: '$2无效的生成器。可能选项:%s' +schematics: + schematic_too_large: $2此地皮过大无法进行此操作! + schematic_missing_arg: '$2阁下需要指定参数。可能的值:$1test + <名称>$2 , $1save$2 , $1paste $2, $1exportall' + schematic_invalid: '$2布局无效。理由:$2%s' + schematic_valid: $2布局无效 + schematic_paste_failed: $2粘贴布局失败 + schematic_paste_success: $4已成功粘贴布局 +titles: + title_entered_plot: '$1地皮:%world%;%x%;%z%' + title_entered_plot_sub: $4由 %s 所有 + prefix_greeting: '$1%id%$2> ' + prefix_farewell: '$1%id%$2> ' +core: + task_start: 正在启动任务··· + prefix: $3[$1P2$3] $2 + enabled: $1%s0 现已启用 +reload: + reloaded_configs: $1已重载翻译及世界设置 + reload_failed: $2重载文件配置失败 +desc: + desc_set: $2已设置地皮描述 + desc_unset: $2已重置地皮描述 + missing_desc: $2阁下需要指定描述 +alias: + alias_set_to: $2地皮别名已设置为 $1%alias% + alias_removed: $2已移除地皮别名 + missing_alias: $2阁下需要指定别名 + alias_too_long: $2别名长度必须小于 50 个字符 + alias_is_taken: $2此别名已被占用 +position: + missing_position: '$2阁下需要指定位置。可能的值:$1none' + position_set: $1已设置家为阁下的当前位置 + position_unset: $1已重置家为默认位置 + home_argument: $2使用 /plot set home [无] + invalid_position: $2位置值无效 +cap: + entity_cap: $2阁下被禁止生成更多怪物 +time: + time_format: $1%hours%, %min%, %sec% +permission: + no_schematic_permission: $2阁下没有使用布局的所需权限 + $1%s + no_permission: '$2阁下缺少权限节点:$1%s' + no_permission_event: '$2阁下缺少权限节点:$1%s' + no_plot_perms: $2阁下必须为地皮所有者才能执行此操作 + cant_claim_more_plots: $2阁下无法拥有更多地皮。 + cant_claim_more_clusters: $2阁下无法拥有更多群集。 + cant_transfer_more_plots: $2阁下无法赠予此用户更多地皮 + cant_claim_more_plots_num: $2阁下无法同时拥有多于 $1%s $2块地皮 + you_be_denied: $2阁下被禁止进入此地皮 + merge_request_confirm: 来自 %s 的合并请求 +merge: + merge_not_valid: $2此合并请求已不再可用。 + merge_accepted: $2此合并请求已被接受 + success_merge: $2已合并地皮! + merge_requested: $2已成功发送合并请求 + no_perm_merge: '$2阁下不是地皮 $1%plot% $2的所有者' + no_available_automerge: $2阁下在指定方向不拥有任何相邻的地皮 + 或阁下被禁止合并所需的大小。 + unlink_required: $2需要解除关联才能执行此操作。 + unlink_impossible: $2阁下只能解除关联大地皮 + unlink_success: $2已成功将地皮解除关联。 +commandconfig: + not_valid_subcommand: $2此子命令无效 + did_you_mean: '$2阁下的意思是否是:$1%s' + name_little: $2%s0 名称过短,$1%s1$2<$1%s3 + no_commands: $2很抱歉,但阁下无法使用任何子命令。 + subcommand_set_options_header: '$2可能的值:' + command_syntax: '$1用法:$2%s' + flag_tutorial_usage: '$1请让管理员设置标记:$2%s' +errors: + invalid_player_wait: '$2未找到玩家:$1%s$2,正在获取。请稍后再试。' + invalid_player: '$2未找到玩家:$1%s$2.' + invalid_player_offline: '$2玩家 $1%s $2必须在线。' + invalid_command_flag: '$2无效的命令标记:%s0' + error: '$2发生了 %s 错误' + command_went_wrong: $2执行此命令时发生错误··· + no_free_plots: $2无可用的免费地皮 + not_in_plot: $2阁下不在地皮上 + not_loaded: $2无法加载地皮 + not_in_cluster: $2阁下必须在地皮群集上以进行此操作 + not_in_plot_world: $2阁下不在地皮区域上 + plotworld_incompatible: $2两个世界必须相互兼容 + not_valid_world: $2世界无效(大小写敏感) + not_valid_plot_world: $2地皮区域无效(大小写敏感) + no_plots: $2阁下不拥有任何地皮 + wait_for_timer: $2一个设置方块计时器已关联到当前地皮或阁下上。请等待此操作完成 +paste: + debug_report_created: '$1已上传完整调试日志至:$1%url%' +purge: + purge_success: $4已成功清除了 %s 块地皮 +trim: + trim_in_progress: 世界修整任务正在进行中! + not_valid_hybrid_plot_world: 需要混合地皮管理以执行此操作 +block list: + block_list_separater: '$1,$2 ' +biome: + need_biome: $2阁下需要指定一个有效的生态群落。 + biome_set_to: $2地皮生态群落被设置为 $2 +teleport: + teleported_to_plot: $1阁下已被传送 + teleported_to_road: $2阁下已被传送到道路上 + teleport_in_seconds: $1%s 秒后传送。请勿移动··· + teleport_failed: $2传送由于移动或伤害取消 +set block: + set_block_action_finished: $1已完成最后一个设置方块操作。 +unsafe: + debugallowunsafe_on: $2已允许不安全的操作 + debugallowunsafe_off: $2已禁用不安全的操作 +debug: + debug_header: $1调试信息&- + debug_section: $2>> $1&l%val% + debug_line: $2>> $1%var%$2:$1 %val%&- +invalid: + not_valid_data: $2数据编号无效。 + not_valid_block: '$2%s 不是有效的方块。' + not_allowed_block: '$2方块 %s 被禁止' + not_valid_number: '$2%s 不是区间内的有效数字' + not_valid_plot_id: $2地皮编号无效。 + plot_id_form: '$2地皮编号必须为 $1X;Y 形式 $2例如:$1-5;7' + not_your_plot: $2此地皮不为阁下拥有 + no_such_plot: $2没有此地皮 + player_has_not_been_on: $2此玩家从未进入过地皮世界 + found_no_plots: $2阁下的搜索查询未找到地皮 + found_no_plots_for_player: '$2未找到玩家 %s 的地皮' +camera: + camera_started: $2阁下已进入地皮 $1%s 的摄像模式 + camera_stopped: $2阁下已不再处于摄像模式 +need: + need_plot_number: $2阁下必须指定地皮数字或别名 + need_block: $2阁下必须指定方块 + need_plot_id: $2阁下必须指定地皮编号。 + need_plot_world: $2阁下必须指定地皮区域。 + need_user: $2阁下必须指定用户名 +near: + plot_near: '$1玩家:%s0' +info: + none: 无 + now: 现在 + never: 从不 + unknown: 未知 + everyone: 所有人 + plot_unowned: $2当前地皮必须有所有者才能执行此操作 + plot_info_unclaimed: $2地皮 $1%s$2 尚未被领取 + plot_info_header: $3&m---------&r $1信息 $3&m--------- + plot_info: '$1编号:$2%id%$1&-$1别名:$2%alias%$1&-$1所有者:$2%owner%$1&-$1生态群落: + $2%biome%$1&-$1可以建造:$2%build%$1&-$1评分:$2%rating%&-$1可见:$2%seen%&-$1受信: + $2%trusted%$1&-$1成员:$2%members%$1&-$1拒绝:$2%denied%$1&-$1标记:$2%flags%' + plot_info_footer: $3&m---------&r $1信息 $3&m--------- + plot_info_trusted: $1受信:$2 %trusted% + plot_info_members: $1成员:$2 %members% + plot_info_denied: $1拒绝:$2 %denied% + plot_info_flags: $1标记:$2 %flags% + plot_info_biome: $1生态群落:$2 %biome% + plot_info_rating: $1评分:$2 %rating% + plot_info_owner: $1所有者:$2 %owner% + plot_info_id: $1编号:$2 %id% + plot_info_alias: $1别名:$2 %alias% + plot_info_size: $1大小:$2 %size% + plot_info_seen: $1可见:$2 %seen% + plot_user_list: ' $1%user%$2,' + plot_flag_list: $1%s0:%s1$2 + info_syntax_console: $2/plot info X;Y +working: + generating_component: $1已开始从阁下的设置中生成元件 + clearing_plot: $2正在清除地皮异步。 + clearing_done: $4已清除!此操作花费了 %s 毫秒。 + deleting_done: $4已删除!此操作花费了 %s 毫秒。 + plot_not_claimed: $2地皮未领取 + plot_is_claimed: $2此地皮已被领取 + claimed: $4阁下已成功领取地皮 +list: + comment_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 条评论 + clickable: '(可交互)' + area_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 块区域 + plot_list_header_paged: $2(页面 $1%cur$2/$1%max$2) $1共计 %amount% 块地皮 + plot_list_header: $1共计 %word% 块地皮 + plot_list_item: $2>> $1%id$2:$1%world $2- $1%owner + plot_list_item_ordered: $2[$1%in$2] >> $1%id$2:$1%world $2- $1%owner + plot_list_footer: $2>> $1%word% 共计 $2%num% $1领取了地皮 %plot%。 +left: + left_plot: $2阁下已离开地皮 +chat: + plot_chat_spy_format: '$2[$1地皮间谍$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' + plot_chat_format: '$2[$1地皮老铁$2][$1%plot_id%$2] $1%sender%$2: $1%msg%' + plot_chat_forced: $2此世界强制所有人使用地皮聊天。 + plot_chat_on: $4已启用地皮聊天。 + plot_chat_off: $4已禁用地皮聊天。 +deny: + denied_removed: $4阁下已成功解禁此玩家进入地皮 + denied_added: $4阁下已成功禁止此玩家进入地皮 + denied_need_argument: $2缺少参数。$1/plot denied add <名称> $2或 $1/plot + denied remove <名称> + was_not_denied: $2此玩家未被此地皮封禁 + you_got_denied: $4阁下已被禁止进入先前所在的地皮并已被传送至出生点 +kick: + you_got_kicked: $4阁下已被踢出! +rain: + need_on_off: '$2阁下需要指定值。可能的值:$1on$2, $1off' + setting_updated: $4阁下已成功更新设置 +flag: + flag_key: '$2关键词:%s' + flag_type: '$2类型:%s' + flag_desc: '$2描述:%s' + not_valid_flag: $2标记无效 + not_valid_flag_suggested: '$2标记无效。阁下的意思是否是:$1%s' + not_valid_value: $2标记值必须为字母数字混合编制 + flag_not_in_plot: $2此地皮不拥有此标记 + flag_not_removed: $2无法移除此标记 + flag_not_added: $2无法添加此标记 + flag_removed: $4已成功移除标记 + flag_added: $4已成功添加标记 +trusted: + trusted_added: $4阁下已成功将用户添加到地皮受信列表 + trusted_removed: $4阁下已成功将用户从地皮受信列表中移除 + was_not_added: $2此用户在此地皮上不受信任 + plot_removed_user: $1阁下所添加至的地皮 %s 由于所有者不活跃已被删除 +member: + removed_players: $2已从此地皮中移除了 %s 位玩家。 + already_owner: '$2此玩家已是地皮所有者:%s0' + already_added: '$2此玩家已被添加到此分类:%s0' + member_added: $4此用户现已可以在地皮所有者在线时建造 + member_removed: $1阁下已成功从此地皮中移除了用户 + member_was_not_added: $2此玩家并未被添加到此地皮的用户列表 + plot_max_members: $2阁下被禁止添加更多玩家至此地皮 +owner: + set_owner: $4阁下已成功设置地皮所有者 + now_owner: $4阁下现在是地皮 %s 的所有者 +signs: + owner_sign_line_1: '$1编号:$1%id%' + owner_sign_line_2: '$1所有者:' + owner_sign_line_3: $2%plr% + owner_sign_line_4: $3已被领取 +help: + help_header: $3&m---------&r $1Plot² 帮助 $3&m--------- + help_page_header: '$1分类:$2%category%$2,$1 页面:$2%current%$3/$2%max%$2' + help_footer: $3&m---------&r $1Plot² 帮助 $3&m--------- + help_info_item: $1/plot help %category% $3- $2%category_desc% + help_item: $1%usage% [%alias%]&- $3- $2%desc%&- + direction: '$1当前方向:%dir%' +grants: + granted_plots: '$1结果:剩余 $2%s $1次授权' + granted_plot: $1阁下授权了 %s0 地皮至 $2%s1 + granted_plot_failed: '$1授权失败:$2%s' +'-': + custom_string: '-' diff --git a/Core/src/test/java/com/github/intellectualsites/plotsquared/plot/util/EventUtilTest.java b/Core/src/test/java/com/github/intellectualsites/plotsquared/plot/util/EventUtilTest.java index 203515699..566a459b3 100644 --- a/Core/src/test/java/com/github/intellectualsites/plotsquared/plot/util/EventUtilTest.java +++ b/Core/src/test/java/com/github/intellectualsites/plotsquared/plot/util/EventUtilTest.java @@ -65,4 +65,10 @@ public class EventUtilTest extends EventUtil { @Override public void callMember(PlotPlayer initiator, Plot plot, UUID player, boolean added) { } + + @Override + public boolean callOwnerChange(PlotPlayer initiator, Plot plot, UUID newOwner, UUID oldOwner, + boolean hasOldOwner) { + return false; + } } diff --git a/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/NukkitMain.java b/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/NukkitMain.java index dd68a3bf9..1cc8b8246 100644 --- a/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/NukkitMain.java +++ b/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/NukkitMain.java @@ -199,8 +199,7 @@ public final class NukkitMain extends PluginBase implements Listener, IPlotMain if (entity instanceof Player) { continue; } - Location location = - NukkitUtil.getLocation(entity.getLocation()); + Location location = NukkitUtil.getLocation(entity.getLocation()); Plot plot = location.getPlot(); if (plot == null) { if (location.isPlotArea()) { diff --git a/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/events/PlotChangeOwnerEvent.java b/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/events/PlotChangeOwnerEvent.java new file mode 100644 index 000000000..d929aedde --- /dev/null +++ b/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/events/PlotChangeOwnerEvent.java @@ -0,0 +1,107 @@ +package com.github.intellectualsites.plotsquared.nukkit.events; + +import cn.nukkit.Player; +import cn.nukkit.event.Cancellable; +import cn.nukkit.event.HandlerList; +import com.github.intellectualsites.plotsquared.plot.object.Plot; +import com.github.intellectualsites.plotsquared.plot.object.PlotId; + +import java.util.UUID; + +public class PlotChangeOwnerEvent extends PlotEvent implements Cancellable { + + private static final HandlerList handlers = new HandlerList(); + private final Plot plot; + private final Player initiator; + private final UUID newOwner; + private final UUID oldOwner; + private final 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.plot = plot; + this.initiator = initiator; + this.newOwner = newOwner; + this.hasOldOwner = hasOldOwner; + this.oldOwner = oldOwner; + } + + 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 + * + * @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; + } + + public HandlerList getHandlers() { + return handlers; + } + + @Override public boolean isCancelled() { + return this.cancelled; + } + + @Override public void setCancelled(boolean b) { + this.cancelled = b; + } +} diff --git a/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/events/PlotRateEvent.java b/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/events/PlotRateEvent.java index 4fbadbf70..3afe9c905 100644 --- a/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/events/PlotRateEvent.java +++ b/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/events/PlotRateEvent.java @@ -1,15 +1,17 @@ package com.github.intellectualsites.plotsquared.nukkit.events; +import cn.nukkit.event.Cancellable; import cn.nukkit.event.HandlerList; import com.github.intellectualsites.plotsquared.plot.object.Plot; import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; import com.github.intellectualsites.plotsquared.plot.object.Rating; -public class PlotRateEvent extends PlotEvent { +public class PlotRateEvent extends PlotEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); private final PlotPlayer rater; private Rating rating; + private boolean cancelled = false; public PlotRateEvent(PlotPlayer rater, Rating rating, Plot plot) { super(plot); @@ -33,4 +35,11 @@ public class PlotRateEvent extends PlotEvent { this.rating = rating; } + @Override public boolean isCancelled() { + return this.cancelled; + } + + @Override public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } } diff --git a/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/generator/NukkitPlotGenerator.java b/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/generator/NukkitPlotGenerator.java index cd5e157b3..ef274cf2b 100644 --- a/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/generator/NukkitPlotGenerator.java +++ b/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/generator/NukkitPlotGenerator.java @@ -61,7 +61,8 @@ public class NukkitPlotGenerator extends Generator implements GeneratorWrapper tasks = new HashMap<>(); + public NukkitTaskManager(NukkitMain bukkitMain) { this.plugin = bukkitMain; } diff --git a/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/util/block/NukkitHybridGen.java b/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/util/block/NukkitHybridGen.java index 4f5031a2d..ccca6dfe8 100644 --- a/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/util/block/NukkitHybridGen.java +++ b/Nukkit/src/main/java/com/github/intellectualsites/plotsquared/nukkit/util/block/NukkitHybridGen.java @@ -14,7 +14,8 @@ public class NukkitHybridGen extends NukkitPlotGenerator { private static Map defaultSettings(Map existing) { if (!existing.containsKey("world")) { - Map levels = ((NukkitMain) PlotSquared.get().IMP).getServer().getLevels(); + Map levels = + ((NukkitMain) PlotSquared.get().IMP).getServer().getLevels(); int max = -1; for (Map.Entry entry : levels.entrySet()) { int id = entry.getKey(); diff --git a/README.md b/README.md index e589d2dfc..5d0cdf7d6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ -# PlotSquared +

        + +

        + +--- For the end user, PlotSquared is packed with a tonne of cool features. It allows you to merge plots, and build together with your friends. @@ -10,10 +14,12 @@ is to provide a lag-free and smooth experience. ## Links -### Server Owner +* [Download](https://github.com/IntellectualSites/PlotSquared/releases/tag/dev) +* [Jenkins](https://ci.athion.net/job/PlotSquared/) * [Spigot Page](https://www.spigotmc.org/resources/plotsquared.1177/) * [Discord](https://discord.gg/a6NZPV2) * [WebChat/IRC]: #IntellectualCrafters on irc.esper.net +* [Discord](https://discord.gg/ngZCzbU) * [Wiki](https://github.com/intellectualcrafters/plotsquared/wiki) ### Developer Resources @@ -47,6 +53,9 @@ Press `Import` and select `...path/to/project/code_style.xml` `File > Settings > Editor > Code Style`. Next to "Scheme" there is a cog wheel, press that and then `Import Scheme > IntelliJ IDEA Code Style XML` and then select `..path/to/project/code_style.xml` +## Suggestions +Suggestions are welcome! We have a separate issue tracker for suggestions, that can be found in [this](https://github.com/IntellectualSites/PlotSquaredSuggestions) repository. + # Official Addons * [Plot2Dynmap](http://www.spigotmc.org/resources/plot2dynmap.1292/) * [AdvPlots](http://www.spigotmc.org/resources/advplots-%CE%B2.1500/) @@ -57,3 +66,5 @@ Press `Import` and select `...path/to/project/code_style.xml` * [PlotSquaredMG](https://www.spigotmc.org/resources/plotsquaredmg.8025/) * [BasicPlots](https://www.spigotmc.org/resources/basicplots.6901/) * [HoloPlots](https://www.spigotmc.org/resources/holoplots.4880/) + +[WebChat/IRC]: https://webchat.esper.net/?nick=&channels=IntellectualCrafters diff --git a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/events/PlotChangeOwnerEvent.java b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/events/PlotChangeOwnerEvent.java new file mode 100644 index 000000000..e21674565 --- /dev/null +++ b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/events/PlotChangeOwnerEvent.java @@ -0,0 +1,96 @@ +package com.github.intellectualsites.plotsquared.sponge.events; + +import com.github.intellectualsites.plotsquared.plot.object.Plot; +import com.github.intellectualsites.plotsquared.plot.object.PlotId; +import org.spongepowered.api.entity.living.player.Player; +import org.spongepowered.api.event.Cancellable; + +import java.util.UUID; + +public class PlotChangeOwnerEvent extends PlotEvent implements Cancellable { + + private final Player initiator; + private final UUID newOwner; + private final UUID oldOwner; + private final 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; + } + + + /** + * 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 boolean isCancelled() { + return this.cancelled; + } + + @Override public void setCancelled(boolean b) { + this.cancelled = b; + } +} diff --git a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/events/PlotRateEvent.java b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/events/PlotRateEvent.java index 3b5b0595b..6c967d133 100644 --- a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/events/PlotRateEvent.java +++ b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/events/PlotRateEvent.java @@ -3,10 +3,13 @@ package com.github.intellectualsites.plotsquared.sponge.events; import com.github.intellectualsites.plotsquared.plot.object.Plot; import com.github.intellectualsites.plotsquared.plot.object.PlotPlayer; import com.github.intellectualsites.plotsquared.plot.object.Rating; +import org.spongepowered.api.event.Cancellable; + +public class PlotRateEvent extends PlotEvent implements Cancellable { -public class PlotRateEvent extends PlotEvent { private final PlotPlayer rater; private Rating rating; + private boolean cancelled = false; public PlotRateEvent(final PlotPlayer rater, final Rating rating, final Plot plot) { super(plot); @@ -22,7 +25,11 @@ public class PlotRateEvent extends PlotEvent { return rating; } - public void setRating(final Rating rating) { - this.rating = rating; + @Override public boolean isCancelled() { + return this.cancelled; + } + + @Override public void setCancelled(boolean cancel) { + this.cancelled = cancel; } } diff --git a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/listener/MainListener.java b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/listener/MainListener.java index b1af61e09..822001959 100644 --- a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/listener/MainListener.java +++ b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/listener/MainListener.java @@ -41,7 +41,7 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Predicate; @SuppressWarnings("Guava") public class MainListener { - + /* * TODO: * - Anything marked with a TODO below @@ -69,6 +69,9 @@ import java.util.function.Predicate; @Listener public void onChat(MessageEvent event) { // TODO + if (event.isMessageCancelled()) + return; + Player player = SpongeUtil.getCause(event.getCause(), Player.class); if (player == null) { return; diff --git a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeEventUtil.java b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeEventUtil.java index a5b619abf..d4c16e73d 100644 --- a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeEventUtil.java +++ b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeEventUtil.java @@ -8,6 +8,7 @@ import com.github.intellectualsites.plotsquared.sponge.events.*; import org.spongepowered.api.event.Event; import org.spongepowered.api.event.EventManager; +import javax.annotation.Nullable; import java.util.ArrayList; import java.util.UUID; @@ -79,13 +80,24 @@ public class SpongeEventUtil extends EventUtil { callEvent(new PlayerPlotHelperEvent(SpongeUtil.getPlayer(initiator), plot, player, added)); } + @Override + public boolean callOwnerChange(PlotPlayer initiator, Plot plot, UUID oldOwner, UUID newOwner, + boolean hasOldOwner) { + return callEvent( + new PlotChangeOwnerEvent(SpongeUtil.getPlayer(initiator), plot, oldOwner, newOwner, + hasOldOwner)); + } + @Override public boolean callFlagRemove(Flag flag, Object object, PlotCluster 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); this.events.post(event); + if (event.isCancelled()) { + return null; + } return event.getRating(); } diff --git a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeSchematicHandler.java b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeSchematicHandler.java index d9c217424..648a3ebd2 100644 --- a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeSchematicHandler.java +++ b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeSchematicHandler.java @@ -109,12 +109,12 @@ public class SpongeSchematicHandler extends SchematicHandler { ChunkLoc chunk = chunks.remove(0); int X = chunk.x; int Z = chunk.z; - int xxb = X << 4; - int zzb = Z << 4; - if (!worldObj.getChunk(xxb, 1, zzb).isPresent() && !worldObj - .loadChunk(xxb, 1, zzb, false).isPresent()) { + if (!worldObj.getChunk(X, 0, Z).isPresent() && !worldObj + .loadChunk(X, 0, Z, false).isPresent()) { continue; } + int xxb = X << 4; + int zzb = Z << 4; int xxt = xxb + 15; int zzt = zzb + 15; @@ -134,10 +134,10 @@ public class SpongeSchematicHandler extends SchematicHandler { int ry = y - sy; int i1 = ry * width * length; for (int z = zzb; z <= zzt; z++) { - int rz = z - p1z; + int rz = z - bz; int i2 = i1 + rz * width; for (int x = xxb; x <= xxt; x++) { - int rx = x - p1x; + int rx = x - bx; int index = i2 + rx; BlockState state = worldObj.getBlock(x, y, z); diff --git a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeSetupUtils.java b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeSetupUtils.java index 472d3645c..3caf627bc 100644 --- a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeSetupUtils.java +++ b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/SpongeSetupUtils.java @@ -129,8 +129,10 @@ public class SpongeSetupUtils extends SetupUtils { worldSection.set(step.getConstant(), step.getValue()); } PlotSquared.get().worlds.set("worlds." + world + ".generator.type", object.type); - PlotSquared.get().worlds.set("worlds." + world + ".generator.terrain", object.terrain); - PlotSquared.get().worlds.set("worlds." + world + ".generator.plugin", object.plotManager); + PlotSquared.get().worlds + .set("worlds." + world + ".generator.terrain", object.terrain); + PlotSquared.get().worlds + .set("worlds." + world + ".generator.plugin", object.plotManager); if (object.setupGenerator != null && !object.setupGenerator .equals(object.plotManager)) { PlotSquared.get().worlds diff --git a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/block/SpongeLocalQueue.java b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/block/SpongeLocalQueue.java index 4305b1654..00e294138 100644 --- a/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/block/SpongeLocalQueue.java +++ b/Sponge/src/main/java/com/github/intellectualsites/plotsquared/sponge/util/block/SpongeLocalQueue.java @@ -267,6 +267,7 @@ public class SpongeLocalQueue extends BasicLocalBlockQueue { public void setBlocks(LocalChunk lc) { World worldObj = getSpongeWorld(); + net.minecraft.world.World nmsWorld = ((net.minecraft.world.World) worldObj); org.spongepowered.api.world.Chunk spongeChunk = (org.spongepowered.api.world.Chunk) getChunk(worldObj, lc.getX(), lc.getZ()); Chunk nmsChunk = (Chunk) spongeChunk; @@ -276,7 +277,13 @@ public class SpongeLocalQueue extends BasicLocalBlockQueue { if (array == null) { continue; } - ExtendedBlockStorage section = nmsChunk.getBlockStorageArray()[layer]; + ExtendedBlockStorage[] sections = nmsChunk.getBlockStorageArray(); + ExtendedBlockStorage section = sections[layer]; + if (section == null) { + section = sections[layer] = + new ExtendedBlockStorage(layer << 4, nmsWorld.provider.hasSkyLight()); + } + short[] cacheX = MainUtil.x_loc[0]; short[] cacheY = MainUtil.y_loc[0]; short[] cacheZ = MainUtil.z_loc[0];