diff --git a/Towny/pom.xml b/Towny/pom.xml
index 9b441b4138..73c096e1f2 100644
--- a/Towny/pom.xml
+++ b/Towny/pom.xml
@@ -13,7 +13,7 @@
townyjar
- 0.100.1.24
+ 0.100.2.2
@@ -142,7 +142,7 @@
org.apache.commonscommons-compress
- 1.26.0
+ 1.26.1org.apache.commons
@@ -246,7 +246,7 @@
com.github.seeseemelkMockBukkit-v1.20
- 3.78.0
+ 3.80.0test
@@ -267,7 +267,7 @@
org.apache.maven.pluginsmaven-compiler-plugin
- 3.12.1
+ 3.13.08
@@ -340,7 +340,7 @@
org.apache.maven.pluginsmaven-source-plugin
- 3.3.0
+ 3.3.1attach-sources
diff --git a/Towny/src/main/java/com/palmergames/bukkit/config/ConfigNodes.java b/Towny/src/main/java/com/palmergames/bukkit/config/ConfigNodes.java
index f95c10e207..ef8903a69b 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/config/ConfigNodes.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/config/ConfigNodes.java
@@ -462,11 +462,13 @@ public enum ConfigNodes {
NWS_PLOT_MANAGEMENT_WILD_REVERT_BLOCK_WHITELIST(
"new_world_settings.plot_management.wild_revert_on_explosion_block_whitelist",
"",
+ "",
"# This section is applied to new worlds as default settings when new worlds are detected.",
"# The list of blocks to regenerate for block and entity explosions. (if empty all blocks will regenerate)"),
NWS_PLOT_MANAGEMENT_WILD_REVERT_BLOCKS_TO_NOT_OVERWRITE(
"new_world_settings.plot_management.wild_revert_explosions_blocks_to_not_replace",
"",
+ "",
"# This section is applied to new worlds as default settings when new worlds are detected.",
"# This is the list of blocks that should not be overwritten by wilderness explosion reverts. (if empty all ",
"# blocks placed into regenerating explosions will be overwritten with the original pre-explosion blocks.)",
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/Towny.java b/Towny/src/main/java/com/palmergames/bukkit/towny/Towny.java
index 2da74fe65b..6bf6d6c5fb 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/Towny.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/Towny.java
@@ -437,6 +437,7 @@ public void onDisable() {
this.townyUniverse = null;
+ // Used to be required, but in the latest versions the server will cancel these tasks for us as well.
if (this.scheduler instanceof FoliaTaskScheduler foliaScheduler)
foliaScheduler.cancelTasks();
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyAPI.java b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyAPI.java
index 6ed895c009..3355e67250 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyAPI.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyAPI.java
@@ -2,6 +2,7 @@
import com.palmergames.bukkit.towny.command.BaseCommand;
import com.palmergames.bukkit.towny.db.TownyDataSource;
+import com.palmergames.bukkit.towny.event.teleport.CancelledTownyTeleportEvent.CancelledTeleportReason;
import com.palmergames.bukkit.towny.event.townblockstatus.NationZoneTownBlockStatusEvent;
import com.palmergames.bukkit.towny.exceptions.KeyAlreadyRegisteredException;
import com.palmergames.bukkit.towny.exceptions.TownyException;
@@ -713,10 +714,13 @@ public void requestTeleport(Player player, Location spawnLoc, int cooldown) {
}
}
- public void abortTeleportRequest(Resident resident) {
-
- TeleportWarmupTimerTask.abortTeleportRequest(resident);
- }
+ public void abortTeleportRequest(Resident resident) {
+ abortTeleportRequest(resident, CancelledTeleportReason.UNKNOWN);
+ }
+
+ public void abortTeleportRequest(Resident resident, CancelledTeleportReason reason) {
+ TeleportWarmupTimerTask.abortTeleportRequest(resident, reason);
+ }
public void registerCustomDataField(CustomDataField> field) throws KeyAlreadyRegisteredException {
townyUniverse.addCustomCustomDataField(field);
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyUniverse.java b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyUniverse.java
index fca20a4aba..333e32bab5 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/TownyUniverse.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/TownyUniverse.java
@@ -800,7 +800,7 @@ public boolean hasTownyWorld(String worldName) {
if (worldName.isEmpty())
return false;
- return worlds.containsKey(worldName);
+ return worlds.containsKey(worldName.toLowerCase(Locale.ROOT));
}
/*
* Towny Tree command output.
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/command/NationCommand.java b/Towny/src/main/java/com/palmergames/bukkit/towny/command/NationCommand.java
index 1e6c2f5903..4023aa28a2 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/command/NationCommand.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/command/NationCommand.java
@@ -1560,13 +1560,19 @@ private void nationAllyAccept(Player player, Nation nation, String[] split) thro
}
if (toAccept != null) {
- // Nation has reached the max amount of allies
+ // Check if either nation has reached the max amount of allies
if (nation.hasReachedMaximumAllies()) {
toAccept.getReceiver().deleteReceivedInvite(toAccept);
toAccept.getSender().deleteSentInvite(toAccept);
TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_ally_limit_reached"));
return;
}
+ if (sendernation.hasReachedMaximumAllies()) {
+ toAccept.getReceiver().deleteReceivedInvite(toAccept);
+ toAccept.getSender().deleteSentInvite(toAccept);
+ TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_ally_limit_reached_cannot_accept", sendernation));
+ return;
+ }
try {
NationAcceptAllyRequestEvent acceptAllyRequestEvent = new NationAcceptAllyRequestEvent((Nation)toAccept.getSender(), (Nation) toAccept.getReceiver());
@@ -1689,6 +1695,10 @@ private void nationAddAlly(Resident resident, Nation nation, Nation targetNation
throw new TownyException("Could not add " + targetNation + " as Ally because your Player is null! This shouldn't be possible!");
if (nation.hasAlly(targetNation))
throw new TownyException(Translatable.of("msg_already_ally", targetNation));
+ if (nation.hasReachedMaximumAllies())
+ throw new TownyException(Translatable.of("msg_err_ally_limit_reached_cannot_send", targetNation));
+ if (targetNation.hasReachedMaximumAllies())
+ throw new TownyException(Translatable.of("msg_err_ally_limit_reached_cannot_send_targetNation", targetNation, targetNation));
if (!targetNation.hasEnemy(nation)) {
BukkitTools.ifCancelledThenThrow(new NationPreAddAllyEvent(nation, targetNation));
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/event/damage/TownyDamageEvent.java b/Towny/src/main/java/com/palmergames/bukkit/towny/event/damage/TownyDamageEvent.java
index 025560ac5c..f89e9bb744 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/event/damage/TownyDamageEvent.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/event/damage/TownyDamageEvent.java
@@ -53,7 +53,7 @@ public void setCancelled(boolean cancel) {
*/
@Nullable
public Town getTown() {
- return townblock.getTownOrNull();
+ return townblock == null ? null : townblock.getTownOrNull();
}
/**
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/event/teleport/CancelledTownyTeleportEvent.java b/Towny/src/main/java/com/palmergames/bukkit/towny/event/teleport/CancelledTownyTeleportEvent.java
new file mode 100644
index 0000000000..c8644a6d2f
--- /dev/null
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/event/teleport/CancelledTownyTeleportEvent.java
@@ -0,0 +1,77 @@
+package com.palmergames.bukkit.towny.event.teleport;
+
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
+import org.bukkit.event.Event;
+import org.bukkit.event.HandlerList;
+import org.jetbrains.annotations.NotNull;
+import com.palmergames.bukkit.towny.object.Resident;
+
+/**
+ * An event thrown by Towny when a player that was supposed to teleport to the
+ * /res, /town, or /nation spawn, but the action was cancelled. This can be due
+ * to Movement, Damage or an Unknown source (when cancelled via the TownyAPI
+ * class.
+ *
+ * @since 0.100.2.2
+ * @author LlmDl
+ */
+public class CancelledTownyTeleportEvent extends Event {
+
+ private static final HandlerList handlers = new HandlerList();
+ private final Resident resident;
+ private final Location location;
+ private final double teleportCost;
+ private final CancelledTeleportReason reason;
+
+ public CancelledTownyTeleportEvent(Resident resident, Location location, double teleportCost, CancelledTeleportReason reason) {
+ super(!Bukkit.isPrimaryThread());
+ this.resident = resident;
+ this.location = location;
+ this.teleportCost = teleportCost;
+ this.reason = reason;
+ }
+
+ /**
+ * @return Resident which is not going to teleport.
+ */
+ public Resident getResident() {
+ return resident;
+ }
+
+ /**
+ * @return Location that resident was going to go to.
+ */
+ public Location getLocation() {
+ return location;
+ }
+
+ /**
+ * @return the amount of money which was refunded to the player.
+ */
+ public double getTeleportCost() {
+ return teleportCost;
+ }
+
+ /**
+ * @return the {@link CancelledTeleportReason} that the resident will not teleport.
+ * When cancelled via the TownyAPI class, this will return UNKNOWN.
+ */
+ public CancelledTeleportReason getReason() {
+ return reason;
+ }
+
+ @NotNull
+ @Override
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+
+ public enum CancelledTeleportReason {
+ MOVEMENT, DAMAGE, UNKNOWN
+ }
+}
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyCustomListener.java b/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyCustomListener.java
index a827114218..9c2592400b 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyCustomListener.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyCustomListener.java
@@ -9,6 +9,7 @@
import com.palmergames.bukkit.towny.TownyUniverse;
import com.palmergames.bukkit.towny.command.TownCommand;
import com.palmergames.bukkit.towny.command.TownyCommand;
+import com.palmergames.bukkit.towny.confirmations.Confirmation;
import com.palmergames.bukkit.towny.event.BedExplodeEvent;
import com.palmergames.bukkit.towny.event.ChunkNotificationEvent;
import com.palmergames.bukkit.towny.event.NewTownEvent;
@@ -220,7 +221,7 @@ public void onTownUnclaim(TownPreUnclaimCmdEvent event) {
*/
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onTownClaim(TownClaimEvent event) {
- if (TownySettings.isShowingClaimParticleEffect())
+ if (TownySettings.isShowingClaimParticleEffect() && event.getTownBlock().getWorldCoord().isFullyLoaded())
Towny.getPlugin().getScheduler().runAsync(() ->
CellSurface.getCellSurface(event.getTownBlock().getWorldCoord()).runClaimingParticleOverSurfaceAtPlayer(event.getResident().getPlayer()));
@@ -276,17 +277,33 @@ public void onResidentJoinTown(TownAddResidentEvent event) {
Town town = event.getTown();
Player player = event.getResident().getPlayer();
- Town residentTown = event.getResident().getTownOrNull();
+ Town playerLocationTown = TownyAPI.getInstance().getTown(player.getLocation());
- if (player == null || residentTown == null || residentTown.equals(town))
+ if (player == null || (playerLocationTown != null && playerLocationTown.equals(town)))
return;
String notAffordMsg = Translatable.of("msg_err_cant_afford_tp").forLocale(player);
- try {
- SpawnUtil.sendToTownySpawn(player, new String[0], town, notAffordMsg, false, false, SpawnType.TOWN);
- } catch (TownyException e) {
- TownyMessaging.sendErrorMsg(player, e.getMessage(player));
+ double cost = town.getSpawnCost();
+ if (cost > 0) {
+ // The costed spawn will have its own Confirmation.
+ try {
+ SpawnUtil.sendToTownySpawn(player, new String[0], town, notAffordMsg, false, false, SpawnType.TOWN);
+ } catch (TownyException e) {
+ TownyMessaging.sendErrorMsg(player, e.getMessage(player));
+ }
+ } else {
+ // No cost, so lets offer the new resident a choice.
+ Confirmation.runOnAccept(() -> {
+ try {
+ SpawnUtil.sendToTownySpawn(player, new String[0], town, notAffordMsg, false, false, SpawnType.TOWN);
+ } catch (TownyException e) {
+ TownyMessaging.sendErrorMsg(player, e.getMessage(player));
+ }
+ })
+ .setTitle(Translatable.of("msg_new_resident_spawn_to_town_prompt"))
+ .sendTo(player);
+
}
}
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyEntityListener.java b/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyEntityListener.java
index ac40715089..67d8819446 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyEntityListener.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyEntityListener.java
@@ -443,6 +443,10 @@ public void onEntityInteract(EntityInteractEvent event) {
return;
}
+ // Prevent protecting the wilderness from switch use.
+ if (TownyAPI.getInstance().isWilderness(block))
+ return;
+
// Prevent creatures triggering switch items.
if (TownySettings.isSwitchMaterial(block.getType(), block.getLocation())) {
event.setCancelled(true);
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyEntityMonitorListener.java b/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyEntityMonitorListener.java
index 66ff8fcf0d..ca2bbb2424 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyEntityMonitorListener.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyEntityMonitorListener.java
@@ -11,6 +11,7 @@
import com.palmergames.bukkit.towny.event.deathprice.PlayerPaysDeathPriceEvent;
import com.palmergames.bukkit.towny.event.deathprice.TownPaysDeathPriceEvent;
import com.palmergames.bukkit.towny.event.player.PlayerKilledPlayerEvent;
+import com.palmergames.bukkit.towny.event.teleport.CancelledTownyTeleportEvent.CancelledTeleportReason;
import com.palmergames.bukkit.towny.hooks.PluginIntegrations;
import com.palmergames.bukkit.towny.object.Nation;
import com.palmergames.bukkit.towny.object.Resident;
@@ -64,7 +65,7 @@ public void onPlayerTakesDamage(EntityDamageEvent event) {
Resident resident = TownyAPI.getInstance().getResident(player);
- if (TeleportWarmupTimerTask.abortTeleportRequest(resident))
+ if (TeleportWarmupTimerTask.abortTeleportRequest(resident, CancelledTeleportReason.DAMAGE))
TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_teleport_cancelled_damage"));}
/**
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyPlayerListener.java b/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyPlayerListener.java
index 8ebe4cd417..21c00da904 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyPlayerListener.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/listeners/TownyPlayerListener.java
@@ -15,6 +15,7 @@
import com.palmergames.bukkit.towny.event.player.PlayerExitsFromTownBorderEvent;
import com.palmergames.bukkit.towny.event.player.PlayerKeepsExperienceEvent;
import com.palmergames.bukkit.towny.event.player.PlayerKeepsInventoryEvent;
+import com.palmergames.bukkit.towny.event.teleport.CancelledTownyTeleportEvent.CancelledTeleportReason;
import com.palmergames.bukkit.towny.hooks.PluginIntegrations;
import com.palmergames.bukkit.towny.object.CommandList;
import com.palmergames.bukkit.towny.object.PlayerCache;
@@ -736,7 +737,7 @@ public void onPlayerMove(PlayerMoveEvent event) {
if (this.teleportWarmupTime > 0 && this.isMovementCancellingWarmup) {
final Resident resident = TownyAPI.getInstance().getResident(player);
- if (resident != null && resident.hasRequestedTeleport() && !resident.isAdmin() && TeleportWarmupTimerTask.abortTeleportRequest(resident))
+ if (resident != null && resident.hasRequestedTeleport() && !resident.isAdmin() && TeleportWarmupTimerTask.abortTeleportRequest(resident, CancelledTeleportReason.MOVEMENT))
TownyMessaging.sendErrorMsg(player, Translatable.of("msg_err_teleport_cancelled"));
}
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/object/CellSurface.java b/Towny/src/main/java/com/palmergames/bukkit/towny/object/CellSurface.java
index 5b1ee9dcd9..86d0e48c81 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/object/CellSurface.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/object/CellSurface.java
@@ -15,6 +15,7 @@
import com.palmergames.bukkit.towny.TownySettings;
import com.palmergames.bukkit.towny.utils.BorderUtil;
import com.palmergames.bukkit.util.DrawSmokeTaskFactory;
+import org.bukkit.util.BoundingBox;
public class CellSurface {
private static final long PARTICLE_DELAY = 1L;
@@ -30,9 +31,12 @@ public static CellSurface getCellSurface(WorldCoord worldCoord) {
}
@Desugar
- public record BlockPos(int x, int z) {}
+ private record BlockPos(int x, int z) {}
public void runClaimingParticleOverSurfaceAtPlayer(Player player) {
+ final World world = worldCoord.getBukkitWorld();
+ if (world == null)
+ return;
// Create a Map of rings of BlockPos' which will expand outwards from the Player
// location if they are stood in the WorldCoord (or from the correct edge block
@@ -41,11 +45,11 @@ public void runClaimingParticleOverSurfaceAtPlayer(Player player) {
// Parse over the Map to generate particles on each successive ring with an
// added tick of delay (using the Map's Integer key to determine delay.)
- toRender.entrySet().forEach(e -> e.getValue().forEach(pos ->
- Towny.getPlugin().getScheduler().runLater(player, ()-> drawClaimingParticleOnTopOfBlock(player, pos.x, pos.z), e.getKey() * PARTICLE_DELAY)));
+ toRender.forEach((key, value) -> value.forEach(pos ->
+ Towny.getPlugin().getScheduler().runLater(player, () -> drawClaimingParticleOnTopOfBlock(player, world, pos.x, pos.z), key * PARTICLE_DELAY)));
// Splash the edges of the WorldCoord last with extra height to add definition to the boundaries.
- long finalDelay = toRender.keySet().size() + 1 * PARTICLE_DELAY;
+ long finalDelay = toRender.keySet().size() + PARTICLE_DELAY;
Towny.getPlugin().getScheduler().runLater(player, ()->
BorderUtil.getPlotBorder(worldCoord).runBorderedOnSurface(2, 2, DrawSmokeTaskFactory.showToPlayer(player, Color.GREEN)), finalDelay);
@@ -53,11 +57,12 @@ public void runClaimingParticleOverSurfaceAtPlayer(Player player) {
private Map> mapRingsOfClaimParticles(int startingX, int startingZ) {
Set traveled = new HashSet<>();
- Map> toRender = new HashMap>();
+ Map> toRender = new HashMap<>();
BlockPos pos;
Set localRing = new HashSet<>();
int maxRadius = TownySettings.getTownBlockSize();
+ final BoundingBox worldCoordBB = worldCoord.getBoundingBox();
for (int ringNum = 1; ringNum <= maxRadius; ringNum++) {
for (int x = startingX + Math.negateExact(ringNum); x <= startingX + ringNum; x++) {
for (int z = startingZ + Math.negateExact(ringNum); z <= startingZ + ringNum; z++) {
@@ -72,7 +77,7 @@ private Map> mapRingsOfClaimParticles(int startingX, int
traveled.add(pos);
// We might be outside of the WorldCoord.
- if (!worldCoord.getBoundingBox().contains(x, 1, z))
+ if (!worldCoordBB.contains(x, 1, z))
continue;
localRing.add(pos);
@@ -86,15 +91,12 @@ private Map> mapRingsOfClaimParticles(int startingX, int
return toRender;
}
- private void drawClaimingParticleOnTopOfBlock(Player player, int x, int z) {
- if (!player.isOnline())
- return;
- Location loc = getParticleLocation(x, z); // This has to occur sync or we make folia unhappy.
+ private void drawClaimingParticleOnTopOfBlock(Player player, World world, int x, int z) {
+ Location loc = getParticleLocation(world, x, z);
Towny.getPlugin().getScheduler().runAsync(() -> player.spawnParticle(Particle.REDSTONE, loc, 5, CLAIMING_PARTICLE));
}
- private Location getParticleLocation(int x, int z) {
- World world = worldCoord.getBukkitWorld();
+ private Location getParticleLocation(World world, int x, int z) {
return new Location(world, x, world.getHighestBlockYAt(x, z, HeightMap.MOTION_BLOCKING_NO_LEAVES), z).add(0.5, 0.95, 0.5); // centre and raise slightly.
}
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/object/WorldCoord.java b/Towny/src/main/java/com/palmergames/bukkit/towny/object/WorldCoord.java
index a26418be5b..bb5ac75de5 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/object/WorldCoord.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/object/WorldCoord.java
@@ -6,6 +6,7 @@
import com.palmergames.bukkit.towny.TownyUniverse;
import com.palmergames.bukkit.towny.exceptions.NotRegisteredException;
+import com.palmergames.util.Pair;
import io.papermc.lib.PaperLib;
import org.bukkit.Bukkit;
@@ -250,33 +251,64 @@ private void unloadChunks(Towny plugin) {
*/
@Unmodifiable
public Collection> getChunks() {
+ final World world = getBukkitWorld();
+ if (world == null)
+ return Collections.emptyList();
+
if (getCellSize() > 16) {
// Dealing with a townblocksize greater than 16, we will have multiple chunks per WorldCoord.
final Set> chunkFutures = new HashSet<>();
- int side = (int) Math.ceil(getCellSize() / 16f);
- for (int x = 0; x < side; x++) {
- for (int z = 0; z < side; z++) {
- chunkFutures.add(PaperLib.getChunkAtAsync(getSubCorner(x, z)));
- }
- }
+ for (final Pair chunkPos : getChunkPositions())
+ chunkFutures.add(PaperLib.getChunkAtAsync(world, chunkPos.left(), chunkPos.right()));
return Collections.unmodifiableSet(chunkFutures);
} else {
return Collections.singleton(PaperLib.getChunkAtAsync(getCorner()));
}
}
+
+ protected Collection> getChunkPositions() {
+ return getChunkPositions(getCellSize());
+ }
+
+ /**
+ * @param cellSize The current {@link #getCellSize()}
+ * @return A collection of all chunk coords that are contained within this worldcoord for the given cell size
+ */
+ protected Collection> getChunkPositions(final int cellSize) {
+ final Set> chunks = new HashSet<>();
+ int side = (int) Math.ceil(cellSize / 16f);
+
+ for (int x = 0; x < side; x++) {
+ for (int z = 0; z < side; z++) {
+ chunks.add(Pair.pair(x + getX(), z + getZ()));
+ }
+ }
+
+ return chunks;
+ }
+
+ /**
+ * @return Whether all chunks contained in this worldcoord are loaded.
+ */
+ public boolean isFullyLoaded() {
+ final World bukkitWorld = getBukkitWorld();
+ if (bukkitWorld == null)
+ return false;
+
+ for (final Pair chunkPos : getChunkPositions())
+ if (!bukkitWorld.isChunkLoaded(chunkPos.left(), chunkPos.right()))
+ return false;
+
+ return true;
+ }
// Used to get a location at the corner of a WorldCoord.
private Location getCorner() {
return new Location(getBukkitWorld(), getX() * getCellSize(), 0, getZ() * getCellSize());
}
- // Used to get a location representing sub coordinates of a WorldCoord, to ease the lookup of a corresponding Chunk.
- private Location getSubCorner(int x, int z) {
- return getCorner().add(x * 16, 0, z * 16);
- }
-
/**
* @return Return a Bukkit bounding box containg the space of the WorldCoord.
*/
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/regen/WorldCoordEntityRemover.java b/Towny/src/main/java/com/palmergames/bukkit/towny/regen/WorldCoordEntityRemover.java
index 29a2608d76..c7a0203818 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/regen/WorldCoordEntityRemover.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/regen/WorldCoordEntityRemover.java
@@ -1,9 +1,10 @@
package com.palmergames.bukkit.towny.regen;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.List;
+import com.palmergames.bukkit.towny.Towny;
+import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.jetbrains.annotations.Nullable;
@@ -97,23 +98,28 @@ public static void addToActiveQueue(WorldCoord worldCoord) {
* @param worldCoord - WorldCoord for the Town Block
*/
public static void doDeleteTownBlockEntities(WorldCoord worldCoord) {
- TownyWorld world = worldCoord.getTownyWorld();
- if (world == null || !world.isUsingTowny() || !world.isDeletingEntitiesOnUnclaim())
+ final TownyWorld world = worldCoord.getTownyWorld();
+ if (world == null || !world.isUsingTowny() || !world.isDeletingEntitiesOnUnclaim()) {
+ worldCoordQueue.remove(worldCoord);
return;
-
- addToActiveQueue(worldCoord);
- List toRemove = new ArrayList<>();
- Collection entities = worldCoord.getBukkitWorld().getNearbyEntities(worldCoord.getBoundingBox());
- for (Entity entity : entities) {
- if (world.getUnclaimDeleteEntityTypes().contains(entity.getType()))
- toRemove.add(entity);
}
- for (Entity entity : toRemove)
- entity.remove();
-
- worldCoordQueue.remove(worldCoord);
- activeQueue.remove(worldCoord);
+ addToActiveQueue(worldCoord);
+ Towny.getPlugin().getScheduler().run(worldCoord.getLowerMostCornerLocation(), () -> {
+ try {
+ final World bukkitWorld = world.getBukkitWorld();
+ if (bukkitWorld == null)
+ return;
+
+ for (final Entity entity : bukkitWorld.getNearbyEntities(worldCoord.getBoundingBox())) {
+ if (world.getUnclaimDeleteEntityTypes().contains(entity.getType()))
+ entity.remove();
+ }
+ } finally {
+ worldCoordQueue.remove(worldCoord);
+ activeQueue.remove(worldCoord);
+ }
+ });
}
}
diff --git a/Towny/src/main/java/com/palmergames/bukkit/towny/tasks/TeleportWarmupTimerTask.java b/Towny/src/main/java/com/palmergames/bukkit/towny/tasks/TeleportWarmupTimerTask.java
index 53d27b5ac5..fcf0c11c1e 100644
--- a/Towny/src/main/java/com/palmergames/bukkit/towny/tasks/TeleportWarmupTimerTask.java
+++ b/Towny/src/main/java/com/palmergames/bukkit/towny/tasks/TeleportWarmupTimerTask.java
@@ -5,12 +5,16 @@
import com.palmergames.bukkit.towny.TownyMessaging;
import com.palmergames.bukkit.towny.TownySettings;
import com.palmergames.bukkit.towny.TownyTimerHandler;
+import com.palmergames.bukkit.towny.event.teleport.CancelledTownyTeleportEvent;
+import com.palmergames.bukkit.towny.event.teleport.CancelledTownyTeleportEvent.CancelledTeleportReason;
import com.palmergames.bukkit.towny.object.Resident;
import com.palmergames.bukkit.towny.object.TeleportWarmupParticle;
import com.palmergames.bukkit.towny.object.TeleportRequest;
import com.palmergames.bukkit.towny.object.Translatable;
import com.palmergames.bukkit.towny.object.Translation;
import com.palmergames.bukkit.towny.object.economy.Account;
+import com.palmergames.bukkit.util.BukkitTools;
+
import io.papermc.lib.PaperLib;
import org.bukkit.Location;
@@ -109,6 +113,17 @@ public static void requestTeleport(@NotNull Resident resident, @NotNull Location
*/
@Contract("null -> false")
public static boolean abortTeleportRequest(@Nullable Resident resident) {
+ return abortTeleportRequest(resident, CancelledTeleportReason.UNKNOWN);
+ }
+
+ /**
+ * Aborts the current active teleport request for the given resident.
+ * @param resident The resident to abort the request for.
+ * @param reason The CancelledSpawnReason this player has had their teleport request cancel.
+ * @return Whether the resident had an active teleport request.
+ */
+ @Contract("null -> false")
+ public static boolean abortTeleportRequest(@Nullable Resident resident, CancelledTeleportReason reason) {
if (resident == null)
return false;
@@ -121,6 +136,8 @@ public static boolean abortTeleportRequest(@Nullable Resident resident) {
TownyMessaging.sendMsg(resident, Translatable.of("msg_cost_spawn_refund"));
}
+ BukkitTools.fireEvent(new CancelledTownyTeleportEvent(resident, request.destinationLocation(), request.teleportCost(), reason));
+
return true;
}
diff --git a/Towny/src/main/java/com/palmergames/util/Pair.java b/Towny/src/main/java/com/palmergames/util/Pair.java
index f7073aab21..6bd762c31e 100644
--- a/Towny/src/main/java/com/palmergames/util/Pair.java
+++ b/Towny/src/main/java/com/palmergames/util/Pair.java
@@ -28,4 +28,12 @@ public L key() {
public R value() {
return this.right;
}
+
+ @Override
+ public String toString() {
+ return "Pair{" +
+ "left=" + left +
+ ", right=" + right +
+ '}';
+ }
}
diff --git a/Towny/src/main/resources/ChangeLog.txt b/Towny/src/main/resources/ChangeLog.txt
index d540f67edf..4b0c2d79e6 100644
--- a/Towny/src/main/resources/ChangeLog.txt
+++ b/Towny/src/main/resources/ChangeLog.txt
@@ -9672,4 +9672,24 @@ v0.92.0.11:
0.100.1.24:
- Fix minimum_amount_of_residents_in_town_for_outpost being used while limit_outposts_using_town_and_nation_levels is also true.
- While you limit your outposts by the town/nation levels Towny will ignore any minimum_amount_of_residents_in_town_for_outpost value.
- - Fix potential NPE when loading empty cooldowns.json making Towny unable to load.
\ No newline at end of file
+ - Fix potential NPE when loading empty cooldowns.json making Towny unable to load.
+ - Fix creatures unable to use switches in the wilderness.
+ - Closes #7334.
+0.100.2.0:
+ - Bump version for release.
+0.100.2.1:
+ - Fix regression dating back to 0.99.5.17 which broke the are_new_residents_prompted_to_town_spawn feature.
+ - Fix regression dating back to 0.100.1.8, which caused the hasWorld causing SQL dbs to not load worlds with capital letters' townblocks.
+ - Closes #7337.
+ - Fix unclaim entity delete not working on folia, courtesy of Warrior with PR #7345.
+ - Fix potential NPE in the TownyDamageEvent, courtesy of FiLKoNd with PR #7339. (First-Time Contributor!)
+0.100.2.2:
+ - Fix issue with max-allies-per-nation not being respected.
+ - Add CancelledTownyTeleportEvent, thrown when a player has their towny spawn cancelled via moving, damage, or via the TownyAPI class.
+ - Closes #7353.
+ - Skip processing claim particles for unloaded chunks, courtesy of Warrior with PR #7351.
+ - Add consumer methods to the task scheduler, courtesy of Warrior with PR #7264.
+ - Bump org.apache.maven.plugins:maven-compiler-plugin from 3.12.1 to 3.13.0.
+ - Bump com.github.seeseemelk:MockBukkit-v1.20 from 3.78.0 to 3.80.0.
+ - Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1.
+ - Bump org.apache.commons:commons-compress from 1.26.0 to 1.26.1.
\ No newline at end of file
diff --git a/Towny/src/main/resources/lang/az-AZ.yml b/Towny/src/main/resources/lang/az-AZ.yml
index 5536db5e51..cc8ae6c093 100644
--- a/Towny/src/main/resources/lang/az-AZ.yml
+++ b/Towny/src/main/resources/lang/az-AZ.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Şəhərə bağlı olmayan iddia sahəsi'
mayor_help_4: 'Ətrafınızdakı radiusun x olduğunu iddia edin'
mayor_help_5: 'Maksimum radius iddia'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cGiriş çox uzun.'
msg_err_invalid_choice: '&cYanlış seçim'
msg_err_invalid_sub: '&cYanlış alt əmr.'
msg_err_command_disable: '&cBu əmri istifadə etmək üçün icazəniz yoxdur.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cKainat artıq şəhərləri tuta bilməz.'
msg_err_too_many_npc: '&cÇox npc qeydə alınmışdır.'
msg_err_negative_money: '&cYou cannot have negative money.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: 'Total Tax to pay:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'You cannot make use of your nation bank outside of the nation capital.'
msg_err_unable_to_use_bank_outside_your_town: 'You cannot make use of your town bank outside of your town.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/bg-BG.yml b/Towny/src/main/resources/lang/bg-BG.yml
index 391a9324c1..335827f222 100644
--- a/Towny/src/main/resources/lang/bg-BG.yml
+++ b/Towny/src/main/resources/lang/bg-BG.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Заявена земя, която не е свързана към града'
mayor_help_4: 'Изисквайте земя около вас в радиус Х'
mayor_help_5: 'Изисквайте земя в максималния радиус'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInput is too long.'
msg_err_invalid_choice: '&cInvalid choice'
msg_err_invalid_sub: '&cInvalid sub command.'
msg_err_command_disable: '&cYou don''t have enough permissions for that command.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cThe universe cannot hold any more towns.'
msg_err_too_many_npc: '&cToo many npc''s registered.'
msg_err_negative_money: '&cYou cannot have negative money.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: 'Total Tax to pay:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'You cannot make use of your nation bank outside of the nation capital.'
msg_err_unable_to_use_bank_outside_your_town: 'You cannot make use of your town bank outside of your town.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/cs-CZ.yml b/Towny/src/main/resources/lang/cs-CZ.yml
index 31770639d7..6fbbfd7f85 100644
--- a/Towny/src/main/resources/lang/cs-CZ.yml
+++ b/Towny/src/main/resources/lang/cs-CZ.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Zaber území nepřipojené k tvému městu'
mayor_help_4: 'Zaber území kolem sebe do vzdálenosti X'
mayor_help_5: 'Zaber území do maximální vzdálenosti'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cVstup je příliš dlouhý.'
msg_err_invalid_choice: '&cNeplatná volba'
msg_err_invalid_sub: '&cNeplatný podpříkaz.'
msg_err_command_disable: '&cPro tento příkaz nemáš dostatečná oprávnění.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cV tomto vesmíru již pro další města není místo.'
msg_err_too_many_npc: '&cPříliš mnoho npc bylo registrováno.'
msg_err_negative_money: '&cTvoje finance nemůžou dosáhnout mínusu.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Celkové daně pozemku:'
status_res_totaltax: 'Celkem k zaplacení:'
status_townblock_plottax: 'Daň za pozemek: '
status_townblock_untaxed: 'Nezdaněno'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Nemůžete využít svou frakční banku mimo hlavní město frakce.'
msg_err_unable_to_use_bank_outside_your_town: 'Nemůžete využít své městské banky mimo vaše město.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/da-DK.yml b/Towny/src/main/resources/lang/da-DK.yml
index 0a157bfea6..ed2668b64b 100644
--- a/Towny/src/main/resources/lang/da-DK.yml
+++ b/Towny/src/main/resources/lang/da-DK.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Gør krav på område som ikke er tilknyttet byen'
mayor_help_4: 'Gør krav på områder rundt om dig med en radius på X'
mayor_help_5: 'Gør krav på områder rundt om dig med den maximale radius'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInput er for langt.'
msg_err_invalid_choice: '&cUgyldigt valg'
msg_err_invalid_sub: '&cUgyldig underkommando.'
msg_err_command_disable: '&cDu har ikke nok tilladelser til at bruge denne kommando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cUniverset kan ikke rumme flere byer.'
msg_err_too_many_npc: '&cFor mange NPC''er registreret.'
msg_err_negative_money: '&cDu kan ikke have minus i penge.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: 'Total Tax to pay:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Du kan ikke gøre brug af din nationsbank, når du er ude for nationens hovedstad.'
msg_err_unable_to_use_bank_outside_your_town: 'Du kan ikke gøre brug af din bybank uden for din by.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cDu har ikke tilladelse til %s her.'
msg_err_plot_belongs_to_group: '&cGrund tilhører en gruppe, brug %s.'
plotgroup_sing: 'Grundgruppe'
msg_err_ally_limit_reached: 'Din nation har nået grænsen for allierede, ude af stand til at acceptere.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Gruppe %s blev ikke fundet.'
msg_err_expected_command_format: 'Forkert syntaks, forventet: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/de-DE.yml b/Towny/src/main/resources/lang/de-DE.yml
index abf8ec9b9c..ac9f292b28 100644
--- a/Towny/src/main/resources/lang/de-DE.yml
+++ b/Towny/src/main/resources/lang/de-DE.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Anspruchsbereich grenzt nicht an die Stadt.'
mayor_help_4: 'Beanspruche Land um dich herum in einem Radius von X'
mayor_help_5: 'Beanspruche Land mit dem maximalen Radius'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cEingabe ist zu lang.'
msg_err_invalid_choice: '&cUngültige Wahl'
msg_err_invalid_sub: '&cUngültiges Unterkommando.'
msg_err_command_disable: '&cDir ist es nicht erlaubt, diesen Befehl auszuführen.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cDie maximale Anzahl an Städten ist erreicht.'
msg_err_too_many_npc: '&cZu viele NPCs wurden registriert.'
msg_err_negative_money: '&cEin negativer Kontostand ist nicht möglich.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Gesamte Plot-Steuern:'
status_res_totaltax: 'Gesamte Steuern:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Du kannst die Nationalbank nicht nutzen, solange du außerhalb der Hauptstadt bist.'
msg_err_unable_to_use_bank_outside_your_town: 'Du kannst die Stadtbank nicht außerhalb deiner Stadt nutzen.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cSie sind hier nicht berechtigt, %s zu verwenden.'
msg_err_plot_belongs_to_group: '&cPlot gehört zu einer Gruppe, verwende %s.'
plotgroup_sing: 'Grundstücksgruppen'
msg_err_ally_limit_reached: 'Deine Nation hat das Limit an Verbündeten erreicht, Annehmen gescheitert.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Gruppe %s wurde nicht gefunden.'
msg_err_expected_command_format: 'Ungültige Syntax, erwartet: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/en-GB.yml b/Towny/src/main/resources/lang/en-GB.yml
index 7d8e18dcd6..6cf6a9ac75 100644
--- a/Towny/src/main/resources/lang/en-GB.yml
+++ b/Towny/src/main/resources/lang/en-GB.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Claim area not attached to town'
mayor_help_4: 'Claim around you to a radius of X'
mayor_help_5: 'Claim to the maximum radius'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInput is too long.'
msg_err_invalid_choice: '&cInvalid choice'
msg_err_invalid_sub: '&cInvalid sub command.'
msg_err_command_disable: '&cYou don''t have enough permissions for that command.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cThe universe cannot hold any more towns.'
msg_err_too_many_npc: '&cToo many npc''s registered.'
msg_err_negative_money: '&cYou cannot have negative money.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: 'Total Tax to pay:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'You cannot make use of your nation bank outside of the nation capital.'
msg_err_unable_to_use_bank_outside_your_town: 'You cannot make use of your town bank outside of your town.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/en-PT.yml b/Towny/src/main/resources/lang/en-PT.yml
index 081a023fd0..760eb8085d 100644
--- a/Towny/src/main/resources/lang/en-PT.yml
+++ b/Towny/src/main/resources/lang/en-PT.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Claim area not attached to town'
mayor_help_4: 'Claim around you to a radius of X'
mayor_help_5: 'Claim to the maximum radius'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cYe words ramble on too long.'
msg_err_invalid_choice: '&cYe chose wrong scallywag!'
msg_err_invalid_sub: '&cInvalid sub command.'
msg_err_command_disable: '&cYe do not have the permission to be usin'' that command.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cThe universe cannot hold any more towns.'
msg_err_too_many_npc: '&cToo many npc''s registered.'
msg_err_negative_money: '&cYou cannot have negative money.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: 'Total Tax to pay:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'You cannot make use of your nation bank outside of the nation capital.'
msg_err_unable_to_use_bank_outside_your_town: 'You cannot make use of your town bank outside of your town.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/en-UD.yml b/Towny/src/main/resources/lang/en-UD.yml
index 741d3403b7..c45b8c2e68 100644
--- a/Towny/src/main/resources/lang/en-UD.yml
+++ b/Towny/src/main/resources/lang/en-UD.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "˙uʍoʇ ǝɥʇ uᴉ pǝʇsnɹ⟘ sɐ uʍoʇ ɐ sppⱯ"
town_towntrust_help_1: "˙uʍoʇ ǝɥʇ uᴉ pǝʇsnɹ⟘ sɐ uʍoʇ ɐ sǝʌoɯǝᴚ"
town_towntrust_help_2: "˙uʍoʇ ɐ ɟo suʍoʇ pǝʇsnɹ⟘ ǝɥʇ sʇsᴉꞀ"
town_buy_help: "˙uʍoʇ ǝɥʇ ɟo ʇᴉɯᴉꞁ ɯᴉɐꞁɔ ǝɥʇ ǝsɐǝɹɔuᴉ oʇ sʞɔoꞁquʍoʇ snuoq sǝsɐɥɔɹnԀ"
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'uʍoʇ oʇ pǝɥɔɐʇʇɐ ʇou ɐǝɹɐ ɯᴉɐꞁƆ'
mayor_help_4: 'X ɟo snᴉpɐɹ ɐ oʇ noʎ punoɹɐ ɯᴉɐꞁƆ'
mayor_help_5: 'snᴉpɐɹ ɯnɯᴉxɐɯ ǝɥʇ oʇ ɯᴉɐꞁƆ'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "˙dnoɹᵷ ʇoꞁd ǝɥʇ uᴉ sqoɯ sǝꞁᵷᵷo⟘
plot_group_toggle_help_4: "˙dnoɹᵷ ʇoꞁd ǝɥʇ ɟo snʇɐʇs pǝxɐʇ ǝɥʇ sǝꞁᵷᵷo⟘"
plot_set_help_0: "˙ɔʇǝ 'ʎssɐqɯƎ 'ɯɹɐℲ 'spꞁᴉM 'uuI :xƎ"
plot_set_help_1: "˙ʇsodʇnO uɐ oʇ ʇoꞁd ɐ sʇǝS"
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "˙ǝdʎʇ ʇoꞁd ɐ sǝʌoɯǝᴚ"
plot_set_help_3: "˙ʇoꞁd ɐ sǝɯɐN"
plot_set_help_4: "˙suoᴉssᴉɯɹǝd ꞁꞁɐ ǝꞁᵷᵷo⟘"
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInput is too long.'
msg_err_invalid_choice: '&cInvalid choice'
msg_err_invalid_sub: '&cInvalid sub command.'
msg_err_command_disable: '&cYou don''t have enough permissions for that command.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cThe universe cannot hold any more towns.'
msg_err_too_many_npc: '&cToo many npc''s registered.'
msg_err_negative_money: '&cYou cannot have negative money.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: 'Total Tax to pay:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'You cannot make use of your nation bank outside of the nation capital.'
msg_err_unable_to_use_bank_outside_your_town: 'You cannot make use of your town bank outside of your town.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/en-US.yml b/Towny/src/main/resources/lang/en-US.yml
index 868c5e1c89..9a15f444fd 100644
--- a/Towny/src/main/resources/lang/en-US.yml
+++ b/Towny/src/main/resources/lang/en-US.yml
@@ -1747,6 +1747,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
@@ -2515,4 +2518,6 @@ msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days r
msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
-msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
\ No newline at end of file
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
\ No newline at end of file
diff --git a/Towny/src/main/resources/lang/es-AR.yml b/Towny/src/main/resources/lang/es-AR.yml
index 057a6759d0..9100000394 100644
--- a/Towny/src/main/resources/lang/es-AR.yml
+++ b/Towny/src/main/resources/lang/es-AR.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Reclamar área no adjunta a la ciudad'
mayor_help_4: 'Reclamar alrededor de ti a un radio X.'
mayor_help_5: 'Reclamar al radio máximo.'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cLa entrada es muy larga.'
msg_err_invalid_choice: '&cOpción inválida'
msg_err_invalid_sub: '&cSubcomando inválido.'
msg_err_command_disable: '&cNo tienes suficientes permisos para usar este comando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cEl universo no puede alojar más ciudades.'
msg_err_too_many_npc: '&cDemasiados NPCs registrados.'
msg_err_negative_money: '&cNo puedes tener dinero negativo.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Impuesto total de los terrenos:'
status_res_totaltax: 'Impuesto total:'
status_townblock_plottax: 'Cargar impuesto: '
status_townblock_untaxed: 'Sin impuestos'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'No puedes interactuar con el banco de la nación fuera de la capital.'
msg_err_unable_to_use_bank_outside_your_town: 'No puedes interactuar con el banco de tu ciudad fuera de esta.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cNo tienes permitido %s aquí.'
msg_err_plot_belongs_to_group: '&cEl terreno pertenece a un grupo, usa %s.'
plotgroup_sing: 'Grupo'
msg_err_ally_limit_reached: 'Tu nación llegó al límite de aliados, y ya no puede aceptar más solicitudes.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'No se encontró el grupo %s.'
msg_err_expected_command_format: 'Sintaxis inválida, se esperaba: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/es-CL.yml b/Towny/src/main/resources/lang/es-CL.yml
index ffbfe4d43e..ca4592891c 100644
--- a/Towny/src/main/resources/lang/es-CL.yml
+++ b/Towny/src/main/resources/lang/es-CL.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Confía en otra ciudad."
town_towntrust_help_1: "Deja de confíar en otra ciudad."
town_towntrust_help_2: "Ver las ciudades de confianza de la ciudad."
town_buy_help: "Compra terrenos bonus para aumentar el límite de reclamos de la ciudad."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Reclamar área no adjunta a la ciudad'
mayor_help_4: 'Reclamar alrededor de ti a un radio X.'
mayor_help_5: 'Reclamar al radio máximo.'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Permite los mobs en el grupo."
plot_group_toggle_help_4: "Activar el cobro de impuestos del grupo."
plot_set_help_0: "Ej: Hotel, Campo, Granja, Embajada, etc."
plot_set_help_1: "Cambia un terreno a un outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Quita el tipo de un terreno."
plot_set_help_3: "Nombra un terreno."
plot_set_help_4: "Activa todos los permisos."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cLa entrada es muy larga.'
msg_err_invalid_choice: '&cOpción inválida'
msg_err_invalid_sub: '&cSubcomando inválido.'
msg_err_command_disable: '&cNo tienes suficientes permisos para usar este comando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cEl universo no puede alojar más ciudades.'
msg_err_too_many_npc: '&cDemasiados NPCs registrados.'
msg_err_negative_money: '&cNo puedes tener dinero negativo.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Impuesto total de los terrenos:'
status_res_totaltax: 'Impuesto total:'
status_townblock_plottax: 'ImpuestoTerreno: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'No puedes interactuar con el banco de la nación fuera de la capital.'
msg_err_unable_to_use_bank_outside_your_town: 'No puedes interactuar con el banco de tu ciudad fuera de esta.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cNo tienes permitido %s aquí.'
msg_err_plot_belongs_to_group: '&cEl terreno pertenece a un grupo, usa %s.'
plotgroup_sing: 'Grupo'
msg_err_ally_limit_reached: 'Tu nación llegó al límite de aliados, y ya no puede aceptar más solicitudes.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'No se encontró el grupo %s.'
msg_err_expected_command_format: 'Sintaxis inválida, se esperaba: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/es-EC.yml b/Towny/src/main/resources/lang/es-EC.yml
index 1a894d1e5f..2d5d92680c 100644
--- a/Towny/src/main/resources/lang/es-EC.yml
+++ b/Towny/src/main/resources/lang/es-EC.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Reclamar área no adjunta a la ciudad'
mayor_help_4: 'Reclamar alrededor de ti a un radio X.'
mayor_help_5: 'Reclamar al radio máximo.'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cLa entrada es muy larga.'
msg_err_invalid_choice: '&cOpción inválida'
msg_err_invalid_sub: '&cSubcomando inválido.'
msg_err_command_disable: '&cNo tienes suficientes permisos para usar este comando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cEl universo no puede alojar más ciudades.'
msg_err_too_many_npc: '&cDemasiados NPCs registrados.'
msg_err_negative_money: '&cNo puedes tener dinero negativo.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Impuesto total de los terrenos:'
status_res_totaltax: 'Impuesto total:'
status_townblock_plottax: 'Cargar impuesto: '
status_townblock_untaxed: 'Sin impuestos'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'No puedes interactuar con el banco de la nación fuera de la capital.'
msg_err_unable_to_use_bank_outside_your_town: 'No puedes interactuar con el banco de tu ciudad fuera de esta.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cNo tienes permitido %s aquí.'
msg_err_plot_belongs_to_group: '&cEl terreno pertenece a un grupo, usa %s.'
plotgroup_sing: 'Grupo'
msg_err_ally_limit_reached: 'Tu nación llegó al límite de aliados, y ya no puede aceptar más solicitudes.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'No se encontró el grupo %s.'
msg_err_expected_command_format: 'Sintaxis inválida, se esperaba: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/es-ES.yml b/Towny/src/main/resources/lang/es-ES.yml
index 50456b0f49..9a0183eced 100644
--- a/Towny/src/main/resources/lang/es-ES.yml
+++ b/Towny/src/main/resources/lang/es-ES.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Claimear area externa'
mayor_help_4: 'Claimear area de un radio X'
mayor_help_5: 'Claimear el máximo radio posible'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cIngreso muy largo.'
msg_err_invalid_choice: '&cOpción inválida.'
msg_err_invalid_sub: '&cSubcomando inválido.'
msg_err_command_disable: '&cNo tienes los permisos necesarios para ese comando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cLimite de ciudades en este mundo alcanzado.'
msg_err_too_many_npc: '&cDemasiados NPC registrados.'
msg_err_negative_money: '&cNo puede haber dinero negativo.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total de impuestos de los plots:'
status_res_totaltax: 'Total de impuestos a pagar:'
status_townblock_plottax: 'Cargar impuesto: '
status_townblock_untaxed: 'Sin impuestos'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'No puedes usar el banco de la nación fuera de la capital.'
msg_err_unable_to_use_bank_outside_your_town: 'No puedes usar el banco de la ciudad fuera de ella.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cNo tienes permitido %s aqui.'
msg_err_plot_belongs_to_group: '&cLa parcela pertenece a un grupo, usa %s.'
plotgroup_sing: 'Grupo de Parcelas'
msg_err_ally_limit_reached: 'Tu nacion alcanso el maximo de aliados, no se pudo aceptar.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Grupo %s no encontrado.'
msg_err_expected_command_format: 'Syntaxis incorrecta, se espera: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/es-MX.yml b/Towny/src/main/resources/lang/es-MX.yml
index c45f945a20..309de98be4 100644
--- a/Towny/src/main/resources/lang/es-MX.yml
+++ b/Towny/src/main/resources/lang/es-MX.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Reclamar área no adjunta a la ciudad'
mayor_help_4: 'Reclamar alrededor de ti a un radio X.'
mayor_help_5: 'Reclamar al radio máximo.'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cLa entrada es muy larga.'
msg_err_invalid_choice: '&cOpción inválida'
msg_err_invalid_sub: '&cSubcomando inválido.'
msg_err_command_disable: '&cNo tienes suficientes permisos para usar este comando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cEl universo no puede alojar más ciudades.'
msg_err_too_many_npc: '&cDemasiados NPCs registrados.'
msg_err_negative_money: '&cNo puedes tener dinero negativo.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Impuesto total de los terrenos:'
status_res_totaltax: 'Impuesto total:'
status_townblock_plottax: 'Cargar impuesto: '
status_townblock_untaxed: 'Sin impuestos'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'No puedes interactuar con el banco de la nación fuera de la capital.'
msg_err_unable_to_use_bank_outside_your_town: 'No puedes interactuar con el banco de tu ciudad fuera de esta.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cNo tienes permitido %s aquí.'
msg_err_plot_belongs_to_group: '&cEl terreno pertenece a un grupo, usa %s.'
plotgroup_sing: 'Grupo'
msg_err_ally_limit_reached: 'Tu nación llegó al límite de aliados, y ya no puede aceptar más solicitudes.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'No se encontró el grupo %s.'
msg_err_expected_command_format: 'Sintaxis inválida, se esperaba: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/es-UY.yml b/Towny/src/main/resources/lang/es-UY.yml
index 1a894d1e5f..2d5d92680c 100644
--- a/Towny/src/main/resources/lang/es-UY.yml
+++ b/Towny/src/main/resources/lang/es-UY.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Reclamar área no adjunta a la ciudad'
mayor_help_4: 'Reclamar alrededor de ti a un radio X.'
mayor_help_5: 'Reclamar al radio máximo.'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cLa entrada es muy larga.'
msg_err_invalid_choice: '&cOpción inválida'
msg_err_invalid_sub: '&cSubcomando inválido.'
msg_err_command_disable: '&cNo tienes suficientes permisos para usar este comando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cEl universo no puede alojar más ciudades.'
msg_err_too_many_npc: '&cDemasiados NPCs registrados.'
msg_err_negative_money: '&cNo puedes tener dinero negativo.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Impuesto total de los terrenos:'
status_res_totaltax: 'Impuesto total:'
status_townblock_plottax: 'Cargar impuesto: '
status_townblock_untaxed: 'Sin impuestos'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'No puedes interactuar con el banco de la nación fuera de la capital.'
msg_err_unable_to_use_bank_outside_your_town: 'No puedes interactuar con el banco de tu ciudad fuera de esta.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cNo tienes permitido %s aquí.'
msg_err_plot_belongs_to_group: '&cEl terreno pertenece a un grupo, usa %s.'
plotgroup_sing: 'Grupo'
msg_err_ally_limit_reached: 'Tu nación llegó al límite de aliados, y ya no puede aceptar más solicitudes.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'No se encontró el grupo %s.'
msg_err_expected_command_format: 'Sintaxis inválida, se esperaba: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/es-VE.yml b/Towny/src/main/resources/lang/es-VE.yml
index 1a894d1e5f..2d5d92680c 100644
--- a/Towny/src/main/resources/lang/es-VE.yml
+++ b/Towny/src/main/resources/lang/es-VE.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Reclamar área no adjunta a la ciudad'
mayor_help_4: 'Reclamar alrededor de ti a un radio X.'
mayor_help_5: 'Reclamar al radio máximo.'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cLa entrada es muy larga.'
msg_err_invalid_choice: '&cOpción inválida'
msg_err_invalid_sub: '&cSubcomando inválido.'
msg_err_command_disable: '&cNo tienes suficientes permisos para usar este comando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cEl universo no puede alojar más ciudades.'
msg_err_too_many_npc: '&cDemasiados NPCs registrados.'
msg_err_negative_money: '&cNo puedes tener dinero negativo.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Impuesto total de los terrenos:'
status_res_totaltax: 'Impuesto total:'
status_townblock_plottax: 'Cargar impuesto: '
status_townblock_untaxed: 'Sin impuestos'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'No puedes interactuar con el banco de la nación fuera de la capital.'
msg_err_unable_to_use_bank_outside_your_town: 'No puedes interactuar con el banco de tu ciudad fuera de esta.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cNo tienes permitido %s aquí.'
msg_err_plot_belongs_to_group: '&cEl terreno pertenece a un grupo, usa %s.'
plotgroup_sing: 'Grupo'
msg_err_ally_limit_reached: 'Tu nación llegó al límite de aliados, y ya no puede aceptar más solicitudes.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'No se encontró el grupo %s.'
msg_err_expected_command_format: 'Sintaxis inválida, se esperaba: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/fr-FR.yml b/Towny/src/main/resources/lang/fr-FR.yml
index 1d50846fcd..bbf234590b 100644
--- a/Towny/src/main/resources/lang/fr-FR.yml
+++ b/Towny/src/main/resources/lang/fr-FR.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Ajoute une ville de confiance dans la ville."
town_towntrust_help_1: "Retire une ville de confiance de la ville."
town_towntrust_help_2: "Liste les villes de confiance d'une ville."
town_buy_help: "Achètes des blocs de ville bonus pour augmenter la limite de revendication de la ville."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Parcelle non attachée à la ville'
mayor_help_4: 'Annexe autour de vous dans un rayon de X'
mayor_help_5: 'Annexe au rayon maximal'
@@ -164,27 +165,27 @@ nation_list_help_7: "Liste les nations par joueurs en ligne, avec la page spéci
nation_set_help_0: "Change le chef de la nation."
nation_set_help_1: "Change la capitale de la nation."
nation_set_help_2: "Définis le montant de taxe qu'une ville va payer."
-nation_set_help_3: "Set the amount of tax that conquered towns will pay."
-nation_set_help_4: "Set the name of the nation."
-nation_set_help_5: "Set the title or surname of one of your residents."
+nation_set_help_3: "Définis le montant de taxe qu'une ville conquise va payer."
+nation_set_help_4: "Définissez le nom de la nation."
+nation_set_help_5: "Défini le titre ou le surnom d'un de vos résidents."
nation_set_help_6: "Définissez le tag de la nation."
nation_set_help_7: "Set the nation board message."
-nation_set_help_8: "Set the nation spawn point."
+nation_set_help_8: "Définissez le point d'apparition de la nation."
nation_set_help_9: "Set the cost to use /n spawn."
nation_set_help_10: "Set the mapcolor used in Mapping plugins."
-nation_toggle_help_0: "Toggles peaceful status of the nation."
-nation_toggle_help_1: "Toggles public status, allowing non-residents to use /n spawn."
-nation_toggle_help_2: "Toggles open status, allowing towns to join without an invite."
+nation_toggle_help_0: "Active/désactive le statut pacifique de la nation."
+nation_toggle_help_1: "Active/désactive le statut public, permettant aux non-résidents d'utiliser /n spawn."
+nation_toggle_help_2: "Active/désactive le statut ouvert, permettant aux villes de rejoindre sans invitation."
nation_toggle_help_3: "Toggles taxpercent, making towns pay a percentage instead of fixed rate."
-nation_sanction_help_1: "Adds a town to the SanctionedTown list."
-nation_sanction_help_2: "Removes a town from the SanctionedTown list."
-nation_sanction_help_3: "Lists your nation's Sanctioned Towns."
-nation_sanction_help_4: "Lists the given nation's Sanctioned Towns."
+nation_sanction_help_1: "Ajoute une ville à la liste des villes sanctionnées."
+nation_sanction_help_2: "Supprime une ville de la liste des villes sanctionnées."
+nation_sanction_help_3: "Liste les villes sanctionnées par votre nation."
+nation_sanction_help_4: "Liste les villes sanctionnées par la nation donnée."
king_help_1: 'Aides du Dirigeant de Nation'
king_help_2: 'Gérer vos alliances.'
king_help_3: 'Gérer vos ennemis.'
-king_help_4: "Withdraw money from your nation bank."
-king_help_5: "Add or remove towns from your nation."
+king_help_4: "Retirez de l'argent de votre banque nationale."
+king_help_5: "Ajouter ou supprimer des villes de votre nation."
king_help_6: "Use /n set ? for help."
king_help_7: "Use /n toggle ? for help."
king_help_8: "Used to absorb another nation into your nation."
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cLa donnée entrée est trop longue.'
msg_err_invalid_choice: '&cChoix invalide'
msg_err_invalid_sub: '&cSous-commande invalide.'
msg_err_command_disable: '&cVous n''avez pas la permission d''utiliser cette commande.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cLe monde ne peut pas supporter davantage de villes.'
msg_err_too_many_npc: '&cBeaucoup trop de PNJ enregistrées.'
msg_err_negative_money: '&cVous ne pouvez pas avoir un argent négatif.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Taxes totales des parcelles:'
status_res_totaltax: 'Total des taxes à payer:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Vous ne pouvez pas utiliser votre banque de nation en dehors de la capitale de votre nation.'
msg_err_unable_to_use_bank_outside_your_town: 'Vous ne pouvez pas utiliser votre banque de ville en dehors de votre ville.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cVous n''êtes pas autorisé à %s ici.'
msg_err_plot_belongs_to_group: '&cLe terrain appartient à un groupe, utilisez %s.'
plotgroup_sing: 'Groupe de terrain'
msg_err_ally_limit_reached: 'Votre nation a atteint la limite d''allié, impossible d''accepter.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Groupe %s non trouvé.'
msg_err_expected_command_format: 'Syntaxe incorrecte, utilisation attendu: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/he-IL.yml b/Towny/src/main/resources/lang/he-IL.yml
index d38f7d731b..a0a6ea0cc0 100644
--- a/Towny/src/main/resources/lang/he-IL.yml
+++ b/Towny/src/main/resources/lang/he-IL.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'תבע בעלות של שטח שלא מחובר לעיר'
mayor_help_4: 'מסביבך X תבע בעלות ברדיוס של'
mayor_help_5: 'תבע בעלות עד הרדיוס המקסימלי'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInput is too long.'
msg_err_invalid_choice: '&cInvalid choice'
msg_err_invalid_sub: '&cInvalid sub command.'
msg_err_command_disable: '&cYou don''t have enough permissions for that command.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cThe universe cannot hold any more towns.'
msg_err_too_many_npc: '&cToo many npc''s registered.'
msg_err_negative_money: '&cYou cannot have negative money.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: 'Total Tax to pay:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'You cannot make use of your nation bank outside of the nation capital.'
msg_err_unable_to_use_bank_outside_your_town: 'You cannot make use of your town bank outside of your town.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cאתה לא רשאי ל%s פה.'
msg_err_plot_belongs_to_group: '&cהחלקה שייכת לקבוצה, השתמש ב - %s.'
plotgroup_sing: 'קבוצת חלקות'
msg_err_ally_limit_reached: 'האומה שלך הגיעה לכמות המרבית של בעלי ברית, אי אפשר לאשר.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'קבוצה %s לא נמצאה.'
msg_err_expected_command_format: 'תחביר לא נכון, תחביר מצופה: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/id-ID.yml b/Towny/src/main/resources/lang/id-ID.yml
index 69695d8e8a..05e77216ab 100644
--- a/Towny/src/main/resources/lang/id-ID.yml
+++ b/Towny/src/main/resources/lang/id-ID.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Wilayah yang ingin di ambil tidak berdekatan dengan kota'
mayor_help_4: 'Ambil wilayah di sekitar mu sampai radius X'
mayor_help_5: 'Ambil wilayah sampai radius maksimal'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cMasukan terlalu panjang.'
msg_err_invalid_choice: '&cPilihan tidak benar'
msg_err_invalid_sub: '&cSub command tidak benar.'
msg_err_command_disable: '&cKamu tidak memiliki izin mengakses perintah tersebut.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cDunia ini tidak dapat menampung lebih banyak kota lagi.'
msg_err_too_many_npc: '&cTerlalu banyak NPC yang dibuat.'
msg_err_negative_money: '&cKamu tidak bisa memiliki uang bernilai negatif.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Pajak Bidang Tanah:'
status_res_totaltax: 'Total Pajak yang dibayar:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Kamu tidak dapat menggunakan bank negara diluar dari ibukota.'
msg_err_unable_to_use_bank_outside_your_town: 'Kamu tidak dapat menggunakan bank kota diluar kota.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: 'Kamu tidak diizinkan untuk %s disini.'
msg_err_plot_belongs_to_group: '&cLahan ini milik kelompok lain, gunakan %s.'
plotgroup_sing: 'Kelompok Lahan'
msg_err_ally_limit_reached: 'Negaramu sudah mencapai batas sekutu, tidak dapat menerima sekutu lagi.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Tidak menemukan kelompok %s.'
msg_err_expected_command_format: 'Sintaks salah, yang diharapkan: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/it-IT.yml b/Towny/src/main/resources/lang/it-IT.yml
index 173a4531e8..58b9dbec6a 100644
--- a/Towny/src/main/resources/lang/it-IT.yml
+++ b/Towny/src/main/resources/lang/it-IT.yml
@@ -98,8 +98,8 @@ town_list_help_0: "Visualizza la pagina specificata."
town_list_help_1: "Elenca le città per numero residente, con la pagina specificata."
town_list_help_2: "Elenca le città che sono aperte, con la pagina specificata."
town_list_help_3: "Elenca le città usando il saldo bancario, con la pagina specificata."
-town_list_help_4: "List towns in alphabetical order, with the specified page."
-town_list_help_5: "List towns by claimed land, with the specified page."
+town_list_help_4: "Elenca le città in ordine alfabetico, con la pagina specificata."
+town_list_help_5: "Elenca le città per terra reclamata, con la pagina specificata."
town_list_help_6: "List towns by number online, with the specified page."
town_set_help_0: "Set your town's board."
town_set_help_1: "Set your town's homeblock to where you're standing."
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Claima una zona non confinante con la città'
mayor_help_4: 'Claima intorno a te in un raggio X'
mayor_help_5: 'Claima per il raggio massimo'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cIl dato è troppo lungo.'
msg_err_invalid_choice: '&cScelta non valida'
msg_err_invalid_sub: '&cSottocomando non valido.'
msg_err_command_disable: '&cNon hai abbastanza permessi per quel comando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cIl mondo non può avere altre città.'
msg_err_too_many_npc: '&cTroppi NPC registrati.'
msg_err_negative_money: '&cNon puoi avere soldi negativi.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Totale Tasse Lotti:'
status_res_totaltax: 'Tasse da pagare:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Non puoi fare uso della banca della tua nazione al di fuori della capitale.'
msg_err_unable_to_use_bank_outside_your_town: 'Non puoi fare uso della banca della tua città al di fuori di essa.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cNon sei autorizzato a %s qui.'
msg_err_plot_belongs_to_group: '&cPlot appartiene a un gruppo, usa %s.'
plotgroup_sing: 'Gruppi di lotti'
msg_err_ally_limit_reached: 'La tua nazione ha raggiunto il limite alleato, non sei in grado di accettare.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Gruppo %s non trovato.'
msg_err_expected_command_format: 'Sintassi errata, prevista: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/ja-JP.yml b/Towny/src/main/resources/lang/ja-JP.yml
index c486738607..916ee9b782 100644
--- a/Towny/src/main/resources/lang/ja-JP.yml
+++ b/Towny/src/main/resources/lang/ja-JP.yml
@@ -64,78 +64,79 @@ towny_top_help_2: "サブコマンドに基づいて一番お金を持ってい
town_help_1: '町の状態'
town_help_2: '[市長]'
town_help_3: '指定した町の状態を表示'
-town_help_4: '今いるの町のステータスへのショートカット。'
+town_help_4: '今いる町のステータスへのショートカット。'
town_help_5: '町のスポーン地点にテレポートします。'
town_help_6: 'あなたが市長である新しい町'
town_help_7: '目標とした市長がいる新しい町'
-town_help_8: '市長のためのリストコマンド'
+town_help_8: '市長のためコマンドリスト'
town_help_9: '当日です!'
-town_help_10: '町に住む住民でログインしている人を一覧表示'
+town_help_10: '町のオンラインの住民の一覧を表示'
town_help_13: "町の住民一覧を表示"
town_help_14: "町のランクのリストを表示"
-town_help_15: "町の無法者のリストを参照してください。"
-town_help_16: "町のプロットグループの一覧を参照してください。"
-town_help_17: "町のプロットタイプの一覧を参照してください。"
-town_help_18: "町の人たちにメッセージを伝えてください。"
-town_help_19: "他のプレイヤーが購入できる、販売のための町を設定します。"
-town_help_20: "売りに出さないように町を設定してください。"
-town_help_21: "販売されている限り、指定された町を購入します。"
-town_help_22: "町の銀行にお金を預けてください。"
+town_help_15: "町の無法者のリストを表示"
+town_help_16: "町のプロットグループの一覧を表示"
+town_help_17: "町のプロットタイプの一覧を表示"
+town_help_18: "町の人たちにメッセージを伝える"
+town_help_19: "町を他のプレイヤーが買えるように売りに出す"
+town_help_20: "町を売りに出さない"
+town_help_21: "売りに出されている町を購入する"
+town_help_22: "町の銀行にお金を預ける"
town_help_23: "住民の町のランクを変更するために使用します。"
town_help_24: "町を削除するために使用します。"
town_help_25: "町の無法者を変更するために使用されます。"
-town_help_26: "すべての町を一覧表示するには、/t list ? を参照してください。"
-town_help_27: "メンバーとなっている町を離れてください。"
+town_help_26: "すべての町の一覧を表示するには、/t list ? を参照してください。"
+town_help_27: "自分が所属している町を抜ける"
town_help_28: "町の銀行からお金を引き出します。"
town_help_29: "/t claim ? を使用して、ヘルプを参照してください。"
-town_help_30: "あなたの町から土地を奪うのに使われました。"
+town_help_30: "あなたの町から土地を放棄するのに使われます"
town_help_31: "住所を追加または削除します。"
town_help_32: "/t set ? を使用して、ヘルプを参照してください。"
town_help_33: "/t buy ? を使用して、ヘルプを参照してください。"
town_help_34: "/t toggle ? を使用して、ヘルプを参照してください。"
town_help_35: "/t rank ? を使用して、ヘルプを参照してください。"
town_list_help_0: "指定されたページを表示"
-town_list_help_1: "住民ごとの町数、指定されたページで表示されます。"
-town_list_help_2: "指定されたページで開いている町の一覧を表示します。"
-town_list_help_3: "指定されたページで、銀行残高を使用して町を一覧表示します。"
-town_list_help_4: "町名をアルファベット順に一覧表示します。"
-town_list_help_5: "指定されたページで、所有地で町を一覧表示します。"
-town_list_help_6: "指定されたページで、オンラインで町を一覧表示します。"
-town_set_help_0: "町の掲示板を設定してください。"
-town_set_help_1: "あなたの町のホームブロックを現在地に設定します。"
-town_set_help_2: "ホームブロック内のスポーン地点を設定します。"
-town_set_help_3: "/town set perm ? を参照してください。"
-town_set_help_4: "町の税金額を設定します。"
-town_set_help_5: "プロットごとの税の特別な金額を設定します。"
-town_set_help_6: "プロットを購入する際のデフォルト価格を設定します。"
-town_set_help_7: "/t spawn を使用するコストを設定します。"
-town_set_help_8: "町名を設定してください。"
-town_set_help_9: "町のタグを設定します。"
-town_set_help_10: "住民の氏名を設定します。"
-town_set_help_11: "住民からの税率の最大額を設定します。"
-town_jail_help_0: "町の刑務所をリストします。"
-town_jail_help_1: "主な刑務所に居住者を投獄します。"
-town_jail_help_2: "指定された時間、第一刑務所の居住者を投獄します"
-town_jail_help_3: "刑務所に入れられる居住者は、所定の時間、所定の刑務所に入れられます。"
-town_jail_help_4: "最初の刑務所の居住者を、指定された時間、指定された刑務所と独房に投獄します。"
-town_jail_help_5: "定された保釈金で、指定された時間、第一刑務所の居住者を投獄します。"
-town_jail_help_6: "指定された保釈金で、指定された時間、指定された刑務所の居住者を拘留します。"
-town_jail_help_7: "指定された保釈金で、指定された時間、指定された刑務所と独房に居住者を投獄します。"
-town_jail_help_8: "住人を釈放する。"
-town_purge_help: "一定日数ログインしていない住人を排除します。"
+town_list_help_1: "指定されたページに住民の数順に町を表示"
+town_list_help_2: "指定されたページに公開している町の一覧を表示します。"
+town_list_help_3: "指定されたページに銀行残高順に町の一覧を表示します。"
+town_list_help_4: "指定されたページにアルファベット順で町の一覧を表示します。"
+town_list_help_5: "指定されたページに所有地順で町の一覧を表示します。"
+town_list_help_6: "指定されたページにオンラインの住民数順で町の一覧を表示します。"
+town_set_help_0: "町の掲示板を設定"
+town_set_help_1: "あなたの町のホームブロックを現在地に設定"
+town_set_help_2: "ホームブロックまたはアウトポスト内のスポーン地点を設定"
+town_set_help_3: "ヘルプは/town set perm ? を参照してください。"
+town_set_help_4: "町の税金額を設定"
+town_set_help_5: "プロットごとの特別な税金額を設定"
+town_set_help_6: "プロットを購入する際のデフォルトの価格を設定"
+town_set_help_7: "/t spawn を使用するコストを設定"
+town_set_help_8: "町の名前を設定"
+town_set_help_9: "町のタグを設定"
+town_set_help_10: "住民の氏名またはタイトルを設定"
+town_set_help_11: "住民からの税率の最大額を設定"
+town_jail_help_0: "町の刑務所の一覧を表示"
+town_jail_help_1: "主刑務所に住民を投獄する"
+town_jail_help_2: "指定された時間の間、主刑務所に住民を投獄します"
+town_jail_help_3: "特定の時間の間、住民を主刑務所の特定の刑務所に投獄します"
+town_jail_help_4: "特定の時間の間、住民を主刑務所の特定の刑務所の特定の独房に投獄します"
+town_jail_help_5: "定められた寄託の金額で住民を特定の時間の間主刑務所に投獄します"
+town_jail_help_6: "定められた寄託の金額で住民を特定の時間の間主刑務所の特定の刑務所に投獄します"
+town_jail_help_7: "定められた寄託の金額で住民を特定の時間の間主刑務所の特定の刑務所の特定の独房に投獄します"
+town_jail_help_8: "住人を釈放する"
+town_purge_help: "一定日数ログインしていない住人を排除します"
town_trust_help_0: "住民を町の信頼できる人物として追加します。"
town_trust_help_1: "住民を町の信頼できる人物として削除します。"
-town_trust_help_2: "町の信頼できる住民をリストします。"
+town_trust_help_2: "町の信頼できる住民の一覧を表示"
town_towntrust_help_0: "町を信頼できる町として追加します。"
-town_towntrust_help_1: "町をその町内の信頼済みとして削除します。"
-town_towntrust_help_2: "町の信頼できる町をリストします。"
-town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_towntrust_help_1: "町を信頼できる町として削除します。"
+town_towntrust_help_2: "町の信頼できる町の一覧を表示"
+town_buy_help: "追加のタウンブロックを購入して町で所有できる土地の上限をあげます"
+town_cede_help: "立っている土地を指定された町に提供する"
mayor_help_3: '町でないエリアの領有を主張する'
mayor_help_4: 'あなたの周囲Xブロック分(円又は四角)のエリアの領有を主張する'
mayor_help_5: '自動で最大半径のエリアの領有を主張する'
mayor_help_6: '町の一区画分のエリアの領有を解除する'
mayor_help_7: 'あなたの周りのエリアの領有を解除することを試みる'
-mayor_help_8: 'すべての町の区画の要求を解除しようとしています。'
+mayor_help_8: '全ての町のエリアの領有を解除することを試みる'
nation_help_1: 'あなたの国のステータス'
nation_help_2: '[国]'
nation_help_3: '指定した国の状態を表示'
@@ -145,41 +146,41 @@ nation_help_6: '新しい国を作成する'
nation_help_7: '国のリーダーコマンドを一覧表示する'
nation_help_8: '新しい国を作成する'
nation_help_9: 'オンラインの国民の一覧を表示する'
-nation_help_11: "全国の町を一覧表示します。"
-nation_help_12: "国の同盟国を一覧表示します。"
-nation_help_13: "国の敵国をリストします。"
-nation_help_14: "開かれた国に参加するために使用します。"
-nation_help_15: "国立銀行にお金を預けます。"
-nation_help_16: "国家を削除するために使用されます。"
+nation_help_11: "国の町の一覧を表示"
+nation_help_12: "国の同盟国の一覧を表示"
+nation_help_13: "国の敵国の一覧を表示"
+nation_help_14: "公開されている国に参加するために使用します。"
+nation_help_15: "国の銀行にお金を預けます。"
+nation_help_16: "国を削除するために使用されます。"
nation_help_17: "住民のランクを追加または削除するために使用されます。"
nation_help_18: "ヘルプについては /n rank ? を参照してください。"
nation_list_help_0: "指定されたページを表示します。"
-nation_list_help_1: "指定されたページを使用して、居住者数別に国をリストします。"
-nation_list_help_2: "指定されたページで、町の数ごとに国をリストします。"
-nation_list_help_3: "指定されたページで公開されている国をリストします。"
-nation_list_help_4: "指定されたページで、銀行残高を使用して国をリストします。"
-nation_list_help_5: "指定されたページを使用して、アルファベット順に国をリストします。"
-nation_list_help_6: "指定されたページを使用して、権利を主張する土地ごとに国をリストします。"
-nation_list_help_7: "指定されたページを使用して、オンラインで国を番号順にリストします。"
+nation_list_help_1: "指定されたページで、住民数順に国の一覧を表示"
+nation_list_help_2: "指定されたページで、町の数順に国の一覧を表示"
+nation_list_help_3: "指定されたページで公開されている国の一覧を表示"
+nation_list_help_4: "指定されたページで、銀行残高順に国の一覧を表示"
+nation_list_help_5: "指定されたページを使用して、アルファベット順に国の一覧を表示"
+nation_list_help_6: "指定されたページで、所有地順に国の一覧を表示"
+nation_list_help_7: "指定されたページで、オンライン住民数で国の一覧を表示"
nation_set_help_0: "国のリーダーを変える。"
-nation_set_help_1: "国の首都を変更します。"
+nation_set_help_1: "国の首都を変更"
nation_set_help_2: "町が支払う税額を設定します。"
nation_set_help_3: "征服した町が支払う税額を設定します。"
-nation_set_help_4: "国家名を設定します。"
-nation_set_help_5: "居住者の 1 人の肩書または姓を設定します。"
-nation_set_help_6: "国家タグを設定します。"
-nation_set_help_7: "国の表示メッセージを設定します。"
+nation_set_help_4: "国名を設定します。"
+nation_set_help_5: "住民の 1 人の肩書または姓を設定します。"
+nation_set_help_6: "国のタグを設定します。"
+nation_set_help_7: "国の掲示板のメッセージを設定します。"
nation_set_help_8: "国のスポーン地点を設定します。"
nation_set_help_9: "/n spawn を使用するコストを設定します。"
nation_set_help_10: "マッピングプラグインで使用されるマップカラーを設定します。"
-nation_toggle_help_0: "国家の平和な状態を切り替えます。"
+nation_toggle_help_0: "国の平和状態を切り替えます。"
nation_toggle_help_1: "公開状態を切り替え、居住者でない人が /n spawnを使用できるようにします。"
nation_toggle_help_2: "オープンステータスを切り替え、招待なしで参加できるようにする。"
-nation_toggle_help_3: "税率を切り替えて、町が固定税率ではなく割合で支払うようにします。"
-nation_sanction_help_1: "SanctionedTownのリストに町を追加する。"
-nation_sanction_help_2: "SanctionedTownのリストから町を削除する"
-nation_sanction_help_3: "Lists your nation's Sanctioned Towns."
-nation_sanction_help_4: "Lists the given nation's Sanctioned Towns."
+nation_toggle_help_3: "税率を切り替えて、町の税金を固定金額ではなく税率で支払うようにします。"
+nation_sanction_help_1: "制裁町のリストに町を追加する。"
+nation_sanction_help_2: "制裁町のリストから町を削除する"
+nation_sanction_help_3: "国の制裁町の一覧を表示"
+nation_sanction_help_4: "指定された国の制裁町の一覧を表示"
king_help_1: '国家リーダーヘルプ'
king_help_2: '同盟を設定'
king_help_3: '敵を設定'
@@ -189,15 +190,15 @@ king_help_6: "/n set ? を使用してヘルプを参照します。"
king_help_7: "/n toggle ? を使用してヘルプを参照します。"
king_help_8: "他の国を自分の国に併合するために使用されます。"
king_help_9: "自国の全員にメッセージを送る時に使います。"
-res_1: 'ステータス'
+res_1: 'あなたのステータス'
res_2: '[住民]'
-res_3: 'ターゲットプレイヤーの状態'
+res_3: '指定したプレイヤーのステータス'
res_4: 'すべてのオンラインプレイヤーの一覧を表示します'
res_5: 'ヘルプ'
res_6: 'オンラインの一致'
res_7: '正確な名前'
res_8: '謙虚な農民'
-res_9: "1日あたりの納税額はいくらにしますか"
+res_9: "あなたの1日当たりの納税額"
res_10: "/res jail ? を使用してヘルプを参照します。"
res_11: "/res toggle ? を使用してヘルプを参照します。"
res_12: "/res set ? を使用してヘルプを参照します。"
@@ -207,25 +208,25 @@ res_toggle_help_1: "区画の火災状態を切り替える。"
res_toggle_help_2: "区画のモブのステータスを切り替える。"
res_toggle_help_3: "区画の爆発ステータスを切り替える。"
res_toggle_help_4: "区画の境界線を表示するかどうかを切り替えます。"
-res_toggle_help_5: ""
-res_toggle_help_6: "Toggle the ability to see town borders."
-res_toggle_help_7: "Toggle the ability to see plot notifications."
-res_toggle_help_8: "Toggle the ability to claim where you walk."
-res_toggle_help_9: "Toggle the ability to see the map when you change plots."
+res_toggle_help_5: "常に区画の境界線を表示するかどうかを切り替えます。"
+res_toggle_help_6: "町のボーダーの表示を切り替え"
+res_toggle_help_7: "区画の通知の表示を切り替え"
+res_toggle_help_8: "歩いた土地を所有する状態を切り替え"
+res_toggle_help_9: "区画を変更した際に地図を表示する状態を切り替え"
res_toggle_help_10: "すべてのモードを削除"
res_toggle_help_11: "チャットチャンネルをスパイする"
-res_toggle_help_12: "Toggle the ability to add plots to a plotgroup you have started."
-res_toggle_help_13: "Toggle the ability to see title messages when you change plots."
-res_toggle_help_14: "Toggle the ability to unclaim where you walk."
-res_toggle_help_15: "Toggle the ability to use the infotool to learn proper block/entity names."
-res_toggle_help_16: "Toggle the ability to deactivate your admin priviledges."
-res_jail_help_0: "Pays the bail cost to get out of jail."
-res_set_help_0: "Set your resident's About/Bio"
-res_set_help_1: "Set your resident's default plot permissions."
-res_set_help_2: "Set your resident's modes."
+res_toggle_help_12: "開始したプロットグループにプロットを追加する機能を切り替える"
+res_toggle_help_13: "区画を変更した際にタイトルメッセージを表示する機能を切り替え"
+res_toggle_help_14: "歩いた土地を放棄する状態を切り替え"
+res_toggle_help_15: "インフォツールを使用して、適切なブロック/エンティティの名前を知る機能を切り替え"
+res_toggle_help_16: "管理者権限を無効にする機能を切り替え"
+res_jail_help_0: "刑務所から出るために寄託を支払う"
+res_set_help_0: "住民の情報を設定"
+res_set_help_1: "住民のデフォルトの土地権限を設定"
+res_set_help_2: "住民のモードを設定"
mode_1: '各タウンブロック間の地図を表示する'
-mode_2: '歩いた場所を獲得する'
-mode_3: '歩いた場所を手放す'
+mode_2: '歩いた土地を所有しようと試みる'
+mode_3: '歩いた場所を放棄しようと試みる'
mode_4: 'デフォルトのチャットを町のチャットに切り替える'
mode_5: 'デフォルトのチャットを国のチャットに切り替える'
mode_6: '%s を敵国の境界に置いて、戦争地帯を作成する'
@@ -244,20 +245,20 @@ world_plu: 'ワールド'
world_sing: 'ワールド'
world_help_1: '現在のワールドの状況'
world_help_2: '[ワールド]'
-world_help_3: '対象国のステータス'
+world_help_3: '対象のワールドのステータス'
world_help_4: 'すべてのワールド一覧'
world_help_5: 'このチャンクを再生成する'
-world_help_6: 'See /tw toggle ? for help'
-world_help_7: 'See /tw set ? for help'
-world_set_help_0: "Set the world's wilderness name."
-world_toggle_help_0: "Toggle on/off if towns can claim land in this world."
-world_toggle_help_1: "Toggle on/off if Towny is enabled in this world."
-world_toggle_help_2: "Toggle on/off if wars can happen in this world."
-world_toggle_help_3: "Toggle on/off if pvp or forcepvp is enabled in this world."
-world_toggle_help_4: "Toggle on/off if friendlyfire is enabled in this world."
-world_toggle_help_5: "Toggle on/off if explosions are enabled or forced in this world."
-world_toggle_help_6: "Toggle on/off if fires are enabled or forced in this world."
-world_toggle_help_7: "Toggle on/off the various mobs spawning settings in this world."
+world_help_6: '/tw toggle ? を使用してヘルプを参照します。'
+world_help_7: '/tw set ? を使用してヘルプを参照します。'
+world_set_help_0: "ワールドの荒野の名前を設定"
+world_toggle_help_0: "このワールドで町が土地を所有できるかを切り替える"
+world_toggle_help_1: "このワールドでタウニーが有効か無効かを切り替える"
+world_toggle_help_2: "このワールドで戦争が起きれるかを切り替える"
+world_toggle_help_3: "このワールドでpvpか強制pvpが有効か無効かを切り替える"
+world_toggle_help_4: "このワールドで味方同士の攻撃が有効か無効かを切り替える"
+world_toggle_help_5: "このワールドで爆発またはそれが強制されているかを切り替える"
+world_toggle_help_6: "このワールドで火災またはそれが強制されているかを切り替える"
+world_toggle_help_7: "このワールドで様々なモブのスポーンが有効か無効かを切り替える"
world_toggle_help_8: "Toggle on/off the revert-on-unclaim feature in this world."
world_toggle_help_9: "Toggle on/off the explosions-are-reverted features in this world."
world_toggle_help_10: "Toggle on/off the plot-clear-deletes-blocks command in this world."
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "プロットタイプを削除する"
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&c入力が長すぎます'
msg_err_invalid_choice: '&c無効な選択です。'
msg_err_invalid_sub: '&c無効なサブコマンドです。'
msg_err_command_disable: '&c権限がありません。'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cこれ以上町を保持できません。'
msg_err_too_many_npc: '&c登録されているNPCが多すぎます。'
msg_err_negative_money: '&cマイナス量を取引できません'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: '支払う税金の合計:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: '非課税'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: '首都以外で国の銀行を使用することはできません。'
msg_err_unable_to_use_bank_outside_your_town: '町の外で町の銀行を使用することはできません。'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cここで%sをすることはできません。'
msg_err_plot_belongs_to_group: '&cプロットはグループに属しています。%sを使用してください。'
plotgroup_sing: '土地グループ'
msg_err_ally_limit_reached: 'あなたの国はこれ以上同盟国を増やすことはできません。'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'グループ%sが見つかりません。'
msg_err_expected_command_format: '無効な構文です。%s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/ko-KR.yml b/Towny/src/main/resources/lang/ko-KR.yml
index 14f86ca547..a9fa245e87 100644
--- a/Towny/src/main/resources/lang/ko-KR.yml
+++ b/Towny/src/main/resources/lang/ko-KR.yml
@@ -46,15 +46,15 @@ help_1: '다음 명령어를 사용해보며 타우니에 대해 배워보세요
help_2: '도시 내 채팅'
help_3: '국가 내 채팅'
help_4: ''
-help_5: 'Town command help.'
-help_6: 'Nation command help.'
-help_7: 'Plot command help.'
-help_8: 'Towny command help.'
-help_9: 'Townyadmin command help.'
-towny_help_0: "General help for Towny"
-towny_help_1: "Displays a map of the nearby townblocks"
-towny_help_2: "Display the prices used with Economy"
-towny_help_3: "Display highscores"
+help_5: '타운 명령어 도움말입니다.'
+help_6: '국가 명령어 도움말입니다.'
+help_7: '도면 명령어 도움말입니다.'
+help_8: '타우니 명령어 도움말입니다.'
+help_9: '타우니 관리자 명령어 도움말입니다.'
+towny_help_0: "타우니 일반 도움말입니다."
+towny_help_1: "주변 마을 블럭을 맵에 표시합니다."
+towny_help_2: "이코노미에 사용되는 가격을 표시합니다."
+towny_help_3: "높은 점수를 표시합니다."
towny_help_4: "Display time until a new day"
towny_help_5: "Displays stats"
towny_help_6: "Displays the version of Towny"
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: '도시에 인접하지 않는 토지 구매'
mayor_help_4: '반지름이 X인 땅을 원형으로 구매'
mayor_help_5: '최대 반지름 내의 토지 구매'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&c너무 길게 입력하셨습니다.'
msg_err_invalid_choice: '&c잘못된 선택'
msg_err_invalid_sub: '&c잘못된 하위 명령어'
msg_err_command_disable: '&c이 명령어를 사용할 권한이 없습니다.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&c더 이상 마을을 세을 수 없습니다.'
msg_err_too_many_npc: '&c너무 많은 NPC가 생성되었습니다.'
msg_err_negative_money: '&c돈은 자연수로 입력되어야 합니다.'
@@ -938,6 +942,9 @@ status_res_plottax: '납부할 토지 세금 합계: '
status_res_totaltax: '납부해야하는 세금의 합계:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: '국가 수도 밖에서 국가 금고를 이용할 수 없습니다.'
msg_err_unable_to_use_bank_outside_your_town: '마을 밖에서 마을 금고를 이용할 수 없습니다.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: '땅 그룹'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/lol-US.yml b/Towny/src/main/resources/lang/lol-US.yml
index fb2801c030..a5c66e1ee7 100644
--- a/Towny/src/main/resources/lang/lol-US.yml
+++ b/Towny/src/main/resources/lang/lol-US.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Claim area not attached to town'
mayor_help_4: 'Claim around you to a radius of X'
mayor_help_5: 'Claim to the maximum radius'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInput is too long.'
msg_err_invalid_choice: '&cInvalid choice'
msg_err_invalid_sub: '&cInvalid sub command.'
msg_err_command_disable: '&cYou don''t have enough permissions for that command.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cThe universe cannot hold any more towns.'
msg_err_too_many_npc: '&cToo many npc''s registered.'
msg_err_negative_money: '&cYou cannot have negative money.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: 'Total Tax to pay:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'You cannot make use of your nation bank outside of the nation capital.'
msg_err_unable_to_use_bank_outside_your_town: 'You cannot make use of your town bank outside of your town.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/lt-LT.yml b/Towny/src/main/resources/lang/lt-LT.yml
index 4e1736fbaf..4d3ce8269d 100644
--- a/Towny/src/main/resources/lang/lt-LT.yml
+++ b/Towny/src/main/resources/lang/lt-LT.yml
@@ -129,7 +129,8 @@ town_trust_help_2: "Išvardija miesto patikimus žmones."
town_towntrust_help_0: "Prideda miestą į miesto patikimų miestų sąrašą."
town_towntrust_help_1: "Pašalina miestą iš miesto patikimų miestų sąrašo."
town_towntrust_help_2: "Išvardija miesto patikimus miestus."
-town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_buy_help: "Nuperka papildomų miesto sklypų, kad būtų padidintas miesto sklypų limitas."
+town_cede_help: "Pasiūlo sklypą, kuriame stovite, būti perimtam kito miesto."
mayor_help_3: 'Užimti teritoriją, kuri nebūtinai liečiasi su pagrindine miesto teritorija'
mayor_help_4: 'Užimti teritoriją aplink save X spinduliu'
mayor_help_5: 'Užimti teritoriją didžiausiu spinduliu'
@@ -176,10 +177,10 @@ nation_toggle_help_0: "Pakeičia valstybės taikumo būseną."
nation_toggle_help_1: "Paskelbia valstybę vieša, leidžiant nepiliečiams naudotis Jūsų valstybės /n spawn."
nation_toggle_help_2: "Paskelbia valstybę atvira, leidžiant miestams prisijungti prie jos be pakvietimo."
nation_toggle_help_3: "Įtvirtina procentinius mokesčius, todėl miestai mokėtų tam tikrą dalį pinigų nuo savo banko vietoj fiksuoto dydžio."
-nation_sanction_help_1: "Adds a town to the SanctionedTown list."
-nation_sanction_help_2: "Removes a town from the SanctionedTown list."
-nation_sanction_help_3: "Lists your nation's Sanctioned Towns."
-nation_sanction_help_4: "Lists the given nation's Sanctioned Towns."
+nation_sanction_help_1: "Prideda miestą į sankcionuojamų miestų sąrašą."
+nation_sanction_help_2: "Pašalina miestą iš sankcionuojamų miestų sąrašo."
+nation_sanction_help_3: "Išvardija Jūsų valstybės sankcionuojamus miestus."
+nation_sanction_help_4: "Išvardija nurodytos valstybės sankcionuojamus miestus."
king_help_1: 'Valstybės Vadovo Komandos'
king_help_2: 'Tvarkyti aljansų sąrašą.'
king_help_3: 'Tvarkyti priešiškų valstybių sąrašą.'
@@ -345,22 +346,22 @@ ta_toggle_help_5: "Padaryti žaidėją NPC arba ne."
ta_set_help_0: "Suteikti mero titulą nurodytam žaidėjui."
ta_set_help_1: "Nustatyti naują miestą su NPC meru, kuris nemokėtų už išlaikymą."
ta_set_help_2: "Nustatyti valstybės sostinę."
-ta_set_help_3: "Set a nation's nationzone size."
+ta_set_help_3: "Nustato valstybės zonos dydį."
ta_set_help_4: "Nustatyti gyventojo titulą."
ta_set_help_5: "Nustatyti gyventojo pavardę."
ta_set_help_6: "Nustatyti sklypą kitam miestui."
ta_set_help_7: "Nustatyti miesto įkūrėjo vardą."
-ta_set_help_8: "Use size 0 to remove nationzone override."
+ta_set_help_8: "Naudokite 0 dydį, kad panaikintumėte valstybės zonos nepaisymą."
ta_purge_help_0: "Pašalina gyventojus, kurie nebuvo prisijungę ilgiau kaip nurodytų dienų skaičius, nustatykite (nebūtinai), kad būtų pašalinti tik bemiesčiai žaidėjai arba nurodykite miesto, kurio gyventojus norite pašalinti pagal minėtąją taisyklę, pavadinimą."
ta_townmeta_help_1: "Peržiūrėti metaduomenis, saugomus mieste, kuris buvo nurodytas."
-ta_townmeta_help_2: "Set town metadata key and value."
-ta_townmeta_help_3: "Add or remove a metadata by key from the town."
+ta_townmeta_help_2: "Nustato miesto metaduomenų raktą ir reikšmę."
+ta_townmeta_help_3: "Prideda arba pašalina metaduomenis iš miesto pagal raktą."
ta_residentmeta_help_1: "Peržiūrėti gyventojo metaduomenis, kuris buvo nurodytas."
-ta_residentmeta_help_2: "Set resident metadata key and value."
-ta_residentmeta_help_3: "Add or remove a metadata by key from the resident."
+ta_residentmeta_help_2: "Nustato gyventojo metaduomenų raktą ir reikšmę."
+ta_residentmeta_help_3: "Prideda arba pašalina metaduomenis iš gyventojo pagal raktą."
ta_nationmeta_help_1: "Peržiūrėti metaduomenis, saugomus valstybėje, kuri buvo nurodytas."
-ta_nationmeta_help_2: "Set nation metadata key and value."
-ta_nationmeta_help_3: "Add or remove a metadata by key from the nation."
+ta_nationmeta_help_2: "Nustato valstybės metaduomenų raktą ir reikšmę."
+ta_nationmeta_help_3: "Prideda arba pašalina metaduomenis iš valstybės pagal raktą."
ta_reload_help_0: "Perkrauna duomenyną."
ta_reload_help_1: "Perkrauna konfigūraciją."
ta_reload_help_2: "Perkrauna kalbų failus."
@@ -369,12 +370,12 @@ ta_reload_help_4: "Perkrauna visus Towny komponentus."
ta_depositall_help_0: "Įnešti nurodytą sumą į visus miestų ir valstybių bankus."
plot_help_0: "Įjungia sklypo informacijos HUD."
plot_help_1: "Pašalina sklypo savininką."
-plot_help_2: "Deletes a list of blocks from the plot."
+plot_help_2: "Pašalina iš sklypo blokų sąrašą."
plot_help_3: "Naudokite /plot set ? tolimesnėms komandoms."
plot_help_4: "Naudokite /plot toggle ? tolimesnėms komandoms."
plot_help_5: "Naudokite /plot group ? tolimesnėms komandoms."
plot_help_6: "Pašalina žaidėjo leidimų nepaisymus."
-plot_help_7: "Adds default permission overrides for a player."
+plot_help_7: "Prideda žaidėjui numatytųjų leidimų nepaisymus."
plot_help_8: "Atveria leidimų rengyklės grafinę naudotojo sąsają."
plot_help_9: "Prideda žaidėją į sklypo patikimų žmonių sąrašą."
plot_help_10: "Pašalina žaidėją iš sklypo patikimų žmonių sąrašo."
@@ -400,9 +401,11 @@ plot_group_toggle_help_0: "Įjungia arba išjungia PVP režimą sklypų grupėje
plot_group_toggle_help_1: "Įjungia arba išjungia sprogimus sklypų grupėje."
plot_group_toggle_help_2: "Įjungia arba išjungia ugnies sklidimą sklypų grupėje."
plot_group_toggle_help_3: "Įjungia arba išjungia monstrų atsiradimą sklypų grupėje."
-plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
+plot_group_toggle_help_4: "Perjungia sklypų grupės apmokestinimo būseną."
plot_set_help_0: "Pvz.: Inn, Wilds, Farm, Embassy, t.t."
plot_set_help_1: "Nustato sklypą kaip tolimąją teritoriją."
+plot_set_help_1.5: "Nustato mažiausią dienų skaičių, kurį žaidėjas turi išbūti miesto gyventoju, kad galėtų įsigyti sklypą."
+plot_set_help_1.6: "Nustato didžiausią dienų skaičių, kurį žaidėjas turi išbūti miesto gyventoju, kad galėtų įsigyti sklypą."
plot_set_help_2: "Pašalina sklypo tipą."
plot_set_help_3: "Pavadina sklypą."
plot_set_help_4: "Įjungia arba išjungia visus leidimus."
@@ -425,11 +428,11 @@ msg_plot_fs_radius: 'Parduoti sklypus spinduliu.'
############################################################
msg_buy: '&bNusipirkote %d %s už %s.'
msg_buy_resident_plot: '&b%s nusipirko %s sklypą už %s!'
-msg_buy_resident_plot_group: '&b%s bought %s''s plotgroup for %s!'
+msg_buy_resident_plot_group: '&b%s nusipirko %s sklypų grupę už %s!'
msg_couldnt_pay_taxes: '&b%s negalėjo sumokėti mokesčių ir buvo išmestas iš %s.'
msg_couldnt_pay_plot_taxes: '&b%s negalėjo sumokėti mokesčių ir prarado sklypo nuosavybės teises.'
-msg_you_couldnt_pay_plot_tax: '&bYou couldn''t pay the plot tax of %s and lost ownership of the plot at %s.'
-msg_you_couldnt_pay_town_tax: '&bYou couldn''t pay the town tax of %s and have been removed from %s.'
+msg_you_couldnt_pay_plot_tax: '&bJūs neįstengėte sumokėti %s sklypo mokesčio ir praradote nuosavybės teises į %s sklypą.'
+msg_you_couldnt_pay_town_tax: '&bJūs neįstengėte sumokėti %s miesto mokesčio ir buvote pašalintas iš %s.'
msg_payed_town_tax: '&b Sumokėtas miesto mokestis '
msg_payed_plot_cost: '&bSumokėta %s už %s sklypą/-us %s'
msg_payed_resident_tax: '&b Sumokėtas gyventojo mokestis '
@@ -498,13 +501,13 @@ msg_admin_unclaim_area: '&cPer prievartą atsisakyta teritorijų: %s'
msg_abandoned_area_1: '&bJūsų miestas apleido teritoriją'
msg_no_money_purchase_plot: '&cJūs neturite pakankamai lėšų šiam sklypui įsigyti.'
msg_town_no_money_purchase_plot: '&cMiestas neturi pakankamai lėšų šiam sklypui išpirkti.'
-msg_no_funds_new_town: '&c%s can''t afford to settle a new town here.'
+msg_no_funds_new_town: '&c%s nepakanka lėšų, kad čia galėtų įkurti miestą.'
msg_no_funds_claim: '&cMiestas neturi pakankamai lėšų užimti %s sklypų, kainuojančių %s. Įneškite daugiau pinigų į miesto banką.'
msg_no_funds_to_buy: '&cMiestas neturi pakankamai lėšų nusipirkti %s %s, kainuojančių %s. Įneškite daugiau pinigų į miesto banką.'
msg_annexed_area: '&2Aneksuota teritorija: %s'
msg_max_plot_own: '&cJūs negalite turėti daugiau nei %s sklypų.'
msg_max_outposts_own: '&cJūs negalite turėti daugiau nei %s tolimųjų teritorijų sklypų.'
-msg_no_funds_new_nation: '&cThe town can''t afford to start a new nation.'
+msg_no_funds_new_nation: '&cMiestui nepakanka lėšų, kad galėtų sukurti valstybę.'
msg_already_claimed: '&c%s šią teritoriją jau užėmė'
msg_already_claimed_1: '&cŠi teritorija (%s) jau kažkam priklauso.'
msg_already_claimed_2: '&cŠi teritorija jau buvo užimta kažkieno kito.'
@@ -522,7 +525,7 @@ msg_peasant_right: '&bValstietis neturi teisės išsirinkti savo valdovo.'
msg_cost_spawn: '&bJūs sumokėjote %s už teleportaciją į miesto atsiradimo vietą.'
msg_cost_spawn_refund: '&bJums buvo grąžinti pinigai už miesto atsiradimo vietos naudojimą.'
msg_town_spawn_warmup: '&bLaukiama teleportacijos...'
-msg_town_rename_disabled: '&bTown Renaming Disabled'
+msg_town_rename_disabled: '&bMiestų pervardijimas išjungtas'
msg_town_set_name: '&b%s pervadino miestą į %s.'
msg_nation_set_name: '&b%s pervardino valstybę į %s.'
msg_changed_pvp: '&c%s PVP režimas buvo %s.'
@@ -541,7 +544,7 @@ msg_world_expl: '&cŠiame pasaulyje yra priverstinai įjungti sprogimai.'
msg_world_fire: '&cŠiame pasaulyje ugnies sklidimas yra priverstinai įjungtas.'
msg_town_mobs: '&cŠiame mieste monstrų atsiradimas yra priverstas.'
msg_plot_pvp: '&cPVP režimo negalima išjungti arenos sklype.'
-msg_plot_regen_wrong_size: '&cRegen can only be performed when the default plot size (16) is used.'
+msg_plot_regen_wrong_size: '&cAtkūrimas gali būti atliktas tik tada, kai yra naudojamas numatytasis sklypo dydis (16).'
msg_reloaded: '&2Towny nustatymai buvo perkrauti.'
msg_undo_complete: '&2Anuliavimas įvykdytas.'
msg_give_total: '&bSuteikė %s papildomų sklypų. (Iš viso: %s)'
@@ -625,8 +628,8 @@ msg_err_not_in_town_claim: '&cJūs turite priklausyti miestui, kad galėtumėte
msg_err_must_belong_town: '&cJūs turite priklausyti miestui.'
msg_err_dont_belong_town: '&cJūs nepriklausote miestui.'
msg_err_dont_belong_nation: '&bJūs nepriklausote valstybei.'
-msg_err_already_belong_nation: '&bYou already belong to a nation.'
-msg_err_town_already_belong_nation: '&b%s already belongs to a nation: %s.'
+msg_err_already_belong_nation: '&bJūs jau priklausote valstybei.'
+msg_err_town_already_belong_nation: '&b%s jau priklauso valstybei: %s.'
msg_err_not_same_nation: '&b%s nepriklauso Jūsų valstybei.'
msg_err_rect_auto: '&cAutomatiniu užėmimu gali naudotis tik miestai ir jų gyventojai.'
msg_err_invalid_radius: '&cNetinkamas spindulys. Naudokite sveikąjį skaičių arba „auto“.'
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cĮvestis per ilga.'
msg_err_invalid_choice: '&cNetinkamas pasirinkimas'
msg_err_invalid_sub: '&cNetinkama antrinė komanda.'
msg_err_command_disable: '&cNeturite pakankamai teisių šiai komandai.'
+msg_err_you_dont_have_permission_to_use_colours: "Jūs neturite leidimų naudoti spalvinių kodų tituluose ir pavardėse."
msg_err_universe_limit: '&cVisatoje nebegali būti daugiau miestų.'
msg_err_too_many_npc: '&cUžregistruota per daug NPC.'
msg_err_negative_money: '&cNegalite turėti neigiamų pinigų.'
@@ -775,7 +779,7 @@ town_invite_help_3: 'Išvardija visus Jūsų išsiųstus pakvietimus'
town_invite_help_4: 'Išvardija visus Jūsų gautus pakvietimus'
town_invite_help_5: 'Priimti prisijungimo prie valstybės pakvietimą'
town_invite_help_6: 'Atmesti prisijungimo prie valstybės pakvietimą'
-town_invite_help_7: 'Remove all of the invites your town has sent out'
+town_invite_help_7: 'Panaikinti visus Jūsų miesto išsiųstus pakvietimus'
nation_invite_help_1: 'Pakviesti miestą prisijungti prie valstybės'
nation_invite_help_2: 'Atšaukti miestui nusiųstą pakvietimą'
nation_invite_help_3: 'Išvardyti visus miestams siųstus pakvietimus'
@@ -803,7 +807,7 @@ msg_err_nation_sent_too_many_requests: '&bValstybė turi per daug prašymų, at
msg_err_nation_has_too_many_requests: '&bValstybė %s turi per daug prašymų, paprašykite jų atmesti keletą prieš Jums išsiunčiant prašymą iš naujo.'
player_received_invites: '&bJūs gavote %a/%m pakvietimų.'
town_revoke_invite: '&bMiestas %s atšaukė Jūsų pakvietimą prie jų prisijungti.'
-town_revoke_invite_successful: '&bYou have successfully revoked an invite to join your town sent to %s.'
+town_revoke_invite_successful: '&bJūs sėkmingai atšaukėte pakvietimą prisijungti prie Jūsų miesto, kurį išsiuntėte %s.'
town_received_invites: '&bMiestas gavo %a/%m pakvietimų.'
town_sent_invites: '&bMiestas išsiuntė %a/%m pakvietimų.'
nation_revoke_invite: '&bValstybė %s atšaukė Jūsų pakvietimą prie jų prisijungti.'
@@ -841,7 +845,7 @@ tc_err_invalid_command: 'Klaida: klaidinga komanda!'
tc_settings_reloaded: '[TownyChat] Nustatymai perkrauti!'
tc_err_unrecognized_command_format: 'Klaida: neatpažintas komandos formatas!'
tc_channel_list_status: '(Būsena)'
-tc_channel_list_in: 'In'
+tc_channel_list_in: 'Aktyvus'
tc_channel_list_out: 'Iš'
tc_err_you_dont_have_perm_mute_list: 'Jūs neturite reikalingų leidimų, jog matytumėte nutildytųjų sąrašą'
tc_err_you_dont_have_unmute_perm: 'Jūs neturite leidimų atšaukti nutildymą'
@@ -938,6 +942,9 @@ status_res_plottax: 'Sklypų mokesčių suma:'
status_res_totaltax: 'Mokėtina mokesčių suma:'
status_townblock_plottax: 'Sklypo mokestis: '
status_townblock_untaxed: 'Neapmokestintas'
+status_townblock_max_and_minjoindays: 'Miesto narystė nuo %s iki %s dienų yra privaloma sklypo įsigijimui.'
+status_townblock_minjoindays: 'Ilgesnė nei %s dienų miesto narystė privaloma sklypo įsigijimui.'
+status_townblock_maxjoindays: 'Trumpesnė nei %s dienų miesto narystė privaloma sklypo įsigijimui.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Jūs negalite naudotis valstybiniu banku už valstybės sostinės ribų.'
msg_err_unable_to_use_bank_outside_your_town: 'Jūs negalite naudotis miesto banku už miesto ribų.'
@@ -961,7 +968,7 @@ msg_err_nation_not_public: '&cTa valstybė nevieša.'
msg_nation_toggle_public: '&aValstybės viešumo statusas sėkmingai pakeistas.'
status_yes: '&aTAIP'
status_no: '&cNE'
-msg_err_unable_to_use_bank_outside_bank_plot: 'You cannot use that command outside of a bank or home plot. Bank plots are created using /plot set bank.'
+msg_err_unable_to_use_bank_outside_bank_plot: 'Jūs negalite naudoti šios komandos už banko ar namų sklypo ribų. Bankų sklypai yra sukuriami naudojant /plot set bank.'
msg_err_nation_spawn_forbidden: '&cKelionė į valstybės atsiradimo vietą draudžiama.'
msg_err_nation_spawn_forbidden_war: '&cKelionė į valstybės atsiradimo vietą yra įmanoma tik karo metu.'
msg_err_nation_spawn_forbidden_peace: '&cKelionė į valstybės atsiradimo vietą yra draudžiama karo metu.'
@@ -1054,7 +1061,7 @@ msg_error_no_player_with_that_name: 'Nerastas žaidėjas su vardu %s'
msg_admin_has_given_you_a_plot: 'Administratorius Jums užėmė sklypą: %s'
msg_town_forcemobs_setting_set_to: 'Jūsų miestui %s buvo priverstinai pakeistas monstrų nustatymas į %s'
msg_town_forcepvp_setting_set_to: 'Jūsų miestui %s buvo priverstinai pakeistas PVP nustatymas į %s'
-msg_town_forcedisabledpvp_setting_set_to: 'The town %s has had their admindisabledpvp setting forced to %s'
+msg_town_forcedisabledpvp_setting_set_to: 'Miestui %s buvo priverstinai pakeistas admindisabledpvp į %s'
msg_nation_changed_open: '&cValstybės atvirumo būsena dabar yra %s.'
msg_err_already_in_a_nation: 'Jūsų miestas jau yra valstybėje.'
msg_err_nation_not_open: '&cValstybės %s durys nėra atviros visiems. Paprašykite vadovo ar asistento, kad pakviestų Jus prie jo prisijungti.'
@@ -1083,7 +1090,7 @@ msg_you_have_been_freed_from_jail: 'Jūs buvote paleistas iš kalėjimo.'
msg_player_has_been_freed_from_jail_number: '%s buvo paleistas iš kalėjimo numeriu %s.'
msg_player_has_been_sent_to_jail_number: '%s buvo nusiųstas į kalėjimą numeriu %s.'
msg_player_is_not_online: '%s yra neprisijungęs.'
-msg_mysql_dump_success: 'MySQL database dump complete.'
+msg_mysql_dump_success: 'MySQL duomenų bazės iškrovimas baigtas.'
msg_err_mysql_not_being_used: 'Jūsų konfigūracija nenustatyta išsaugoti ir pakrauti MySQL.'
msg_save_success: 'Duomenynas išsaugotas.'
msg_load_success: 'Duomenynas pakrautas.'
@@ -1097,12 +1104,12 @@ msg_err_not_same_town: '&b%s nepriklauso Jūsų miestui.'
msg_modes_set: 'Nustatyti režimai: '
msg_err_this_plot_doesnt_have_any_associated_metadata: 'Šis sklypas neturi jokių susijusių metaduomenų.'
msg_err_the_metadata_for_key_is_not_registered: 'Metaduomenys ''%s'' neregistruoti!'
-msg_key_x_was_successfully_updated_to_x: 'Key %s was successfully updated to %s.'
-msg_err_key_x_is_not_part_of_this_plot: 'Key %s is not part of this plot, if possible please add it.'
-msg_err_key_x_already_exists: 'Key %s already exists!'
+msg_key_x_was_successfully_updated_to_x: 'Raktas %s buvo sėkmingai atnaujintas į %s.'
+msg_err_key_x_is_not_part_of_this_plot: 'Raktas %s nėra šio sklypo dalis, pridėkite jį, jei tai yra įmanoma.'
+msg_err_key_x_already_exists: 'Raktas %s jau egzistuoja!'
msg_custom_data_was_successfully_added_to_townblock: 'Specialūs duomenys buvo sėkmingai pridėti prie miesto sklypo!'
msg_data_successfully_deleted: 'Duomenys sėkmingai ištrinti!'
-msg_err_key_cannot_be_deleted: 'Key cannot be deleted because it does not exist!'
+msg_err_key_cannot_be_deleted: 'Raktas negali būti ištrintas, nes jis neegzistuoja!'
msg_err_this_town_doesnt_have_any_associated_metadata: 'Šis miestas neturi jokių susijusių metaduomenų.'
msg_err_key_x_is_not_part_of_this_town: 'Key %s is not part of this town, if possible please add it.'
msg_custom_data_was_successfully_added_to_town: 'Specialūs duomenys buvo sėkmingai pridėti prie miesto!'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Sklypų grupė'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/lzh.yml b/Towny/src/main/resources/lang/lzh.yml
index 3409f954df..bdd1e1a770 100644
--- a/Towny/src/main/resources/lang/lzh.yml
+++ b/Towny/src/main/resources/lang/lzh.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: '你所選擇的地段不在市鎮旁'
mayor_help_4: '取得周遭X格內的地段'
mayor_help_5: '取得最大半徑內的地段'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&c你輸入的內容太長了 '
msg_err_invalid_choice: '&c無效的選擇'
msg_err_invalid_sub: '&c無效的子指令 '
msg_err_command_disable: '&c你沒有足夠的權限使用這個指令 '
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&c這個世界不能再有更多的市鎮了 '
msg_err_too_many_npc: '&cNPC太多了 '
msg_err_negative_money: '&c你不能擁有負數的錢 '
@@ -938,6 +942,9 @@ status_res_plottax: '地段稅收加總:'
status_res_totaltax: '需要負擔的總稅額:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: '你不能在國外使用城邦銀行 '
msg_err_unable_to_use_bank_outside_your_town: '你不能在市鎮外使用市鎮銀行 '
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&c你不得在此%s '
msg_err_plot_belongs_to_group: '&c此地段屬於一個叢集,使用%s '
plotgroup_sing: '地段叢集'
msg_err_ally_limit_reached: '你的城邦達到了盟邦配額限制,無法接受要求 '
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: '找不到叢集%s '
msg_err_expected_command_format: '錯誤的語句,預期狀況:%s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/nl-NL.yml b/Towny/src/main/resources/lang/nl-NL.yml
index b272586b37..3389a5c3b9 100644
--- a/Towny/src/main/resources/lang/nl-NL.yml
+++ b/Towny/src/main/resources/lang/nl-NL.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Claim gebied niet gekoppeld aan stad'
mayor_help_4: 'Claim om je heen in een radius van X'
mayor_help_5: 'Claim in de maximale radius'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInvoer is te lang.'
msg_err_invalid_choice: '&cOngeldige keuze'
msg_err_invalid_sub: '&cOngeldige subcommando.'
msg_err_command_disable: '&cJe hebt niet genoeg permissies voor die commando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cHet universum kan geen steden meer bevatten.'
msg_err_too_many_npc: '&cTe veel npc''s geregistreerd.'
msg_err_negative_money: '&cJe kan niet negatief geld hebben.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Totale Plot Belasting:'
status_res_totaltax: 'Totaal te betalen belasting:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Je kunt geen gebruik maken van de nationale bank buiten de hoofdstad van je natie.'
msg_err_unable_to_use_bank_outside_your_town: 'Je kunt geen gebruik maken van je stadsbank buiten je stad.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cJe mag hier niet %s.'
msg_err_plot_belongs_to_group: '&cPlot behoort tot een groep, gebruik %s.'
plotgroup_sing: 'Plot Groep'
msg_err_ally_limit_reached: 'Jouw natie heeft het ally limit bereikt, kan niet accepteren.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Groep %s niet gevonden.'
msg_err_expected_command_format: 'Onjuiste syntaxis, verwacht: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/no-NO.yml b/Towny/src/main/resources/lang/no-NO.yml
index be9780db68..5f43f0fce7 100644
--- a/Towny/src/main/resources/lang/no-NO.yml
+++ b/Towny/src/main/resources/lang/no-NO.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Kravsområde ikke festet til byen'
mayor_help_4: 'Gjør krav om deg i en radius av X'
mayor_help_5: 'Gjør krav på maksimal radius'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInput er for lang.'
msg_err_invalid_choice: '&cUgyldig valg'
msg_err_invalid_sub: '&cUgyldig underkommando.'
msg_err_command_disable: '&cDu har ikke nok tilganger for den kommandoen.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cUniverset kan ikke ha flere byer.'
msg_err_too_many_npc: '&cFor mange NPCer er registrert.'
msg_err_negative_money: '&cDu kan ikke ha mindre enn 0 i banken.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total tomteavgift:'
status_res_totaltax: 'Total skatt å betale:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Du kan ikke bruke nasjonsbanken din utenfor nasjonens hovedstaden.'
msg_err_unable_to_use_bank_outside_your_town: 'Du kan ikke bruke bybanken din utenfor byen.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cDu har ikke lov til å %s her.'
msg_err_plot_belongs_to_group: '&cTomten tilhører en gruppe, bruk %s.'
plotgroup_sing: 'Tomtgruppe'
msg_err_ally_limit_reached: 'Din nasjon har nådd tillatt grense for allierte, ikke mulig å akseptere.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Gruppe %s ble ikke funnet.'
msg_err_expected_command_format: 'Feil syntaks, forventet: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/pl-PL.yml b/Towny/src/main/resources/lang/pl-PL.yml
index 498071f405..215b0c5a2f 100644
--- a/Towny/src/main/resources/lang/pl-PL.yml
+++ b/Towny/src/main/resources/lang/pl-PL.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Dodaje miasto do grona zaufanych twojego miata."
town_towntrust_help_1: "Usuwa miasto z grona zaufanych twojego miasta."
town_towntrust_help_2: "Lista zaufanych miast podanego miasta."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Pozyskaj teren nieprzylegajacy do miasta'
mayor_help_4: 'Pozyskaj dookoła w promieniu X'
mayor_help_5: 'Pozyskuje wszystko w maksymalnym promieniu'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Przełącza moby w grupie działek."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Np.: Gospoda, Dzicz, Plener, Ambasada itd."
plot_set_help_1: "Ustawia działkę na Placówkę."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Przywraca domyślny rodzaj działki."
plot_set_help_3: "Ustawia nazwę działki."
plot_set_help_4: "Przełącza wszystkie uprawnienia."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cWprowadzone dane są za długie.'
msg_err_invalid_choice: '&cNieprawidłowy wybór'
msg_err_invalid_sub: '&cNieprawidłowe polecenie podrzędne.'
msg_err_command_disable: '&cNie masz wymaganych uprawnień, aby użyć tego polecenia.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cŚwiat nie może mieć więcej miast.'
msg_err_too_many_npc: '&cZbyt wiele zarejestrowanych NPC.'
msg_err_negative_money: '&cNie możesz mieć ujemnego stanu konta.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Suma Podatków Od Działki:'
status_res_totaltax: 'Suma Podatków do zapłaty:'
status_townblock_plottax: 'Podatek od Działek: '
status_townblock_untaxed: 'Nieopodatkowany'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Nie możesz dokonywać operacji na koncie bankowym nacji, kiedy nie przebywasz w stolicy nacji.'
msg_err_unable_to_use_bank_outside_your_town: 'Nie możesz operować kontem bankowym miasta, kiedy nie przebywasz w mieście.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cNie możesz w tym miejscu wykonywać czynności %s.'
msg_err_plot_belongs_to_group: '&cDziałka należy do grupy, użyj %s.'
plotgroup_sing: 'Grupa Działek'
msg_err_ally_limit_reached: 'Twoja nacja osiągnęła limit sojuszników, nie możesz zaakceptować propozycji.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Grupa %s nie została znaleziona.'
msg_err_expected_command_format: 'Niepoprawna składnia, oczekiwano: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/pt-BR.yml b/Towny/src/main/resources/lang/pt-BR.yml
index de8e07a4c9..383ae4eefb 100644
--- a/Towny/src/main/resources/lang/pt-BR.yml
+++ b/Towny/src/main/resources/lang/pt-BR.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adiciona uma cidade como confiável na cidade."
town_towntrust_help_1: "Remove uma cidade como confiável na cidade."
town_towntrust_help_2: "Lista as cidades confiáveis de uma cidade."
town_buy_help: "Compra quarteirões bônus para aumentar o limite de reivindicação da cidade."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Reivindicar área separada da cidade'
mayor_help_4: 'Reivindicar à sua volta num raio de X'
mayor_help_5: 'Reivindicar no raio máximo'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cA entrada é demasiado longa.'
msg_err_invalid_choice: '&cEscolha inválida'
msg_err_invalid_sub: '&cSub-comando inválido.'
msg_err_command_disable: '&cVocê não tem permissões suficientes para executar esse comando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cO universo não consegue aguentar tantas cidades.'
msg_err_too_many_npc: '&cHá demasiados NPCs registrados.'
msg_err_negative_money: '&cVocê não pode ter dinheiro negativo.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total de Impostos do lote:'
status_res_totaltax: 'Total de Impostos para pagar:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Você não pode usar o banco de sua nação fora da capital.'
msg_err_unable_to_use_bank_outside_your_town: 'Você não pode usar o banco da sua cidade fora dela.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cVocê não tem permissão para %s aqui.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/pt-PT.yml b/Towny/src/main/resources/lang/pt-PT.yml
index 9e5f3bdc88..36e91844ed 100644
--- a/Towny/src/main/resources/lang/pt-PT.yml
+++ b/Towny/src/main/resources/lang/pt-PT.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Área reivindicada separada do resto da cidade'
mayor_help_4: 'Reivindicar à tua volta num raio de X'
mayor_help_5: 'Anexar no maior raio possível'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cA entrada é demasiado grande.'
msg_err_invalid_choice: '&cEscolha inválida'
msg_err_invalid_sub: '&cSubcomando inválido.'
msg_err_command_disable: '&cNão tens permissões suficientes para esse comando.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cO universo não consegue aguentar mais cidades.'
msg_err_too_many_npc: '&cHá demasiados NPCs registados.'
msg_err_negative_money: '&cNão podes ter dinheiro negativo.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total de Impostos do Terreno:'
status_res_totaltax: 'Impostos Totais a pagar:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Não podes usar o banco da tua nação fora da capital.'
msg_err_unable_to_use_bank_outside_your_town: 'Não podes usar o banco da tua cidade fora dela.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cVocê não tem permissão para %s aqui.'
msg_err_plot_belongs_to_group: '&cO lote pertence a um grupo, use %s.'
plotgroup_sing: 'Grupo de lote'
msg_err_ally_limit_reached: 'Sua nação atingiu o limite aliado, incapaz de aceitar.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Grupo %s não encontrado.'
msg_err_expected_command_format: 'Sintaxe incorreta, esperada: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/ro-RO.yml b/Towny/src/main/resources/lang/ro-RO.yml
index 2ed08405f2..6a748483aa 100644
--- a/Towny/src/main/resources/lang/ro-RO.yml
+++ b/Towny/src/main/resources/lang/ro-RO.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Zonă de cucerire neataşată oraşului'
mayor_help_4: 'Cucereşte în jurul tău într-o rază de X'
mayor_help_5: 'Cucereşte la rază maximă'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInput is too long.'
msg_err_invalid_choice: '&cInvalid choice'
msg_err_invalid_sub: '&cInvalid sub command.'
msg_err_command_disable: '&cYou don''t have enough permissions for that command.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cThe universe cannot hold any more towns.'
msg_err_too_many_npc: '&cToo many npc''s registered.'
msg_err_negative_money: '&cYou cannot have negative money.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: 'Total Tax to pay:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'You cannot make use of your nation bank outside of the nation capital.'
msg_err_unable_to_use_bank_outside_your_town: 'You cannot make use of your town bank outside of your town.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/ru-RU.yml b/Towny/src/main/resources/lang/ru-RU.yml
index 39333185ac..e586ad330a 100644
--- a/Towny/src/main/resources/lang/ru-RU.yml
+++ b/Towny/src/main/resources/lang/ru-RU.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Делает город доверенным в горо
town_towntrust_help_1: "Делает город не доверенным в городе."
town_towntrust_help_2: "Показывает доверенные в этом городе города."
town_buy_help: "Покупает бонусные городские блоки, чтобы увеличить лимит владений города."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Участок не прилегает к городу'
mayor_help_4: 'Заприватить местность в радиусе X вокруг вас'
mayor_help_5: 'Заприватить максимальный радиус'
@@ -178,17 +179,17 @@ nation_toggle_help_2: "Переключает статус \"открыто\",
nation_toggle_help_3: "Переключает налоговый процент, заставляя города платить процент вместо фиксированной ставки."
nation_sanction_help_1: "Добавляет город в список санкционированных городов."
nation_sanction_help_2: "Удаляет город из списка Санкционирования."
-nation_sanction_help_3: "Lists your nation's Sanctioned Towns."
+nation_sanction_help_3: "Список ваших городов под санкциями."
nation_sanction_help_4: "Lists the given nation's Sanctioned Towns."
king_help_1: 'Помощь для лидеров наций'
king_help_2: 'Установить альянс.'
king_help_3: 'Установить врагов.'
king_help_4: "Снять деньги со счёта вашей нации."
-king_help_5: "Add or remove towns from your nation."
-king_help_6: "Use /n set ? for help."
+king_help_5: "Добавить или удалить города из вашей нации."
+king_help_6: "Используйте /n set ? для помощи."
king_help_7: "Use /n toggle ? for help."
-king_help_8: "Used to absorb another nation into your nation."
-king_help_9: "Used to message everyone in your nation."
+king_help_8: "Используется для поглощения другой нации в вашу нацию."
+king_help_9: "Используется для отправки сообщений всем в вашей нации."
res_1: 'Ваш статус'
res_2: '[Горожанин]'
res_3: 'Статус указанного игрока'
@@ -196,20 +197,20 @@ res_4: 'Список всех активных игроков'
res_5: 'для помощи'
res_6: 'Совпадения в сети'
res_7: 'Точное имя'
-res_8: 'Just a humble farmer'
-res_9: "How much tax you will pay per day."
-res_10: "See /res jail ? for help."
-res_11: "See /res toggle ? for help."
-res_12: "See /res set ? for help."
-res_13: "Spawn to your town or bed."
-res_toggle_help_0: "Toggle your plots' pvp status."
-res_toggle_help_1: "Toggle your plots' fire status."
-res_toggle_help_2: "Toggle your plots' mobs status."
-res_toggle_help_3: "Toggle your plots' explosion status."
-res_toggle_help_4: "Toggle the ability to see plot borders."
-res_toggle_help_5: "Toggle the ability to see constant plot borders."
-res_toggle_help_6: "Toggle the ability to see town borders."
-res_toggle_help_7: "Toggle the ability to see plot notifications."
+res_8: 'Просто скромный фермер'
+res_9: "Сколько налогов вы будете платить в день."
+res_10: "Используйте /res jail ? для помощи."
+res_11: "Используйте /res toggle ? для помощи."
+res_12: "Используйте /res set ? для помощи."
+res_13: "Спавн к вашему городу или кровати."
+res_toggle_help_0: "Переключить PVP для плотов."
+res_toggle_help_1: "Переключить распространение огня для плотов."
+res_toggle_help_2: "Переключить спавн мобов для плотов."
+res_toggle_help_3: "Переключить взрывы для плотов."
+res_toggle_help_4: "Переключить возможность видеть границы участка."
+res_toggle_help_5: "Переключить возможность видеть границы постоянных плотов."
+res_toggle_help_6: "Переключить возможность видеть границы города."
+res_toggle_help_7: "Переключить возможность отображения уведомлений от плотов."
res_toggle_help_8: "Toggle the ability to claim where you walk."
res_toggle_help_9: "Toggle the ability to see the map when you change plots."
res_toggle_help_10: "Remove all modes."
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cСлишком длинно.'
msg_err_invalid_choice: '&cНеверный выбор'
msg_err_invalid_sub: '&cНеверная подкоманда.'
msg_err_command_disable: '&cУ вас недостаточно прав для этой команды.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cМаксимальный предел городов достигнут.'
msg_err_too_many_npc: '&cСлишком много NPC зарегистрировано.'
msg_err_negative_money: '&cОтрицательное количество денег.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Всего земельных налогов:'
status_res_totaltax: 'Всего налогов для оплаты:'
status_townblock_plottax: 'Налог на участок: '
status_townblock_untaxed: 'Не облагается налогом'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Вы не можете пользоваться своим национальным банком вне столицы нации.'
msg_err_unable_to_use_bank_outside_your_town: 'Вы не можете пользоваться своим городским банком за пределами своего города.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cВам запрещено %s здесь.'
msg_err_plot_belongs_to_group: '&cУчасток принадлежит к группе, используйте %s.'
plotgroup_sing: 'Группа участков'
msg_err_ally_limit_reached: 'Ваша нация достигла лимита союзников, принять невозможно.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Группа %s не найдена.'
msg_err_expected_command_format: 'Неверный синтаксис, ожидалось: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/sq-AL.yml b/Towny/src/main/resources/lang/sq-AL.yml
index dd84e89215..5626689b7a 100644
--- a/Towny/src/main/resources/lang/sq-AL.yml
+++ b/Towny/src/main/resources/lang/sq-AL.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Claim area not attached to town'
mayor_help_4: 'Claim around you to a radius of X'
mayor_help_5: 'Claim to the maximum radius'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInput is too long.'
msg_err_invalid_choice: '&cInvalid choice'
msg_err_invalid_sub: '&cInvalid sub command.'
msg_err_command_disable: '&cYou don''t have enough permissions for that command.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cThe universe cannot hold any more towns.'
msg_err_too_many_npc: '&cToo many npc''s registered.'
msg_err_negative_money: '&cYou cannot have negative money.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: 'Total Tax to pay:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'You cannot make use of your nation bank outside of the nation capital.'
msg_err_unable_to_use_bank_outside_your_town: 'You cannot make use of your town bank outside of your town.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/sr-CS.yml b/Towny/src/main/resources/lang/sr-CS.yml
index b185e87d85..5d5c61f363 100644
--- a/Towny/src/main/resources/lang/sr-CS.yml
+++ b/Towny/src/main/resources/lang/sr-CS.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Claim-ujte oblast koja nije vezana za grad'
mayor_help_4: 'Claim-ujte oko Vas do poluprečnika X'
mayor_help_5: 'Claim-ujte do maksimalnog poluprečnika'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cUnos je predugačak.'
msg_err_invalid_choice: '&cNevažeći izbor'
msg_err_invalid_sub: '&cNevažeća potkomanda.'
msg_err_command_disable: '&cNemate dozvole potrebne za tu komandu.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cNema uopšte mesta za još gradova.'
msg_err_too_many_npc: '&cPreviše registrovanih npc-eva.'
msg_err_negative_money: '&cNe možete biti u minusu.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Ukupni Porezi Plota:'
status_res_totaltax: 'Ukupni Porezi za platiti:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Ne možete koristiti banku nacije van prestonice nacije.'
msg_err_unable_to_use_bank_outside_your_town: 'Ne možete koristiti banku grada van Vašeg grada.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cNe smete %s ovde.'
msg_err_plot_belongs_to_group: '&cPlot pripada grupi, koristite %s.'
plotgroup_sing: 'Grupa plotova'
msg_err_ally_limit_reached: 'Vaša nacija je dostigla ograničenje saveznika, nije moguće prihvatiti.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Grupa %s nije nađena.'
msg_err_expected_command_format: 'Netačna sintaksa, očekuje se: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/sv-SE.yml b/Towny/src/main/resources/lang/sv-SE.yml
index 5771c12c78..942ef98e2e 100644
--- a/Towny/src/main/resources/lang/sv-SE.yml
+++ b/Towny/src/main/resources/lang/sv-SE.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Marken är inte sammankopplad med din stad.'
mayor_help_4: 'Köp marken omkring dig med en radius på X'
mayor_help_5: 'Köp all mark du kan åt alla håll.'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInput är för lång.'
msg_err_invalid_choice: '&cOgiltigt val'
msg_err_invalid_sub: '&cOgiltigt underkommando.'
msg_err_command_disable: '&cDu har inte tillräckligt med behörigheter för det kommandot.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cUniversum kan inte rymma fler städer.'
msg_err_too_many_npc: '&cFör många NPC:er är registrerade.'
msg_err_negative_money: '&cDu kan inte inte övertrassera ditt konto. (Negativa pengar).'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total tomtskatt:'
status_res_totaltax: 'Total skatt att betala:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Du kan inte använda din nations bank utanför nationens huvudstad.'
msg_err_unable_to_use_bank_outside_your_town: 'Du kan inte använda din nations bank utanför din stad.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cDu är inte tillåten att %s här.'
msg_err_plot_belongs_to_group: '&cPlotten tillhör en grupp, använd %s.'
plotgroup_sing: 'Tomtgrupp'
msg_err_ally_limit_reached: 'Din nation har nått gränsen för antal allierade, kunde ej acceptera.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Gruppen %s hittades inte.'
msg_err_expected_command_format: 'Felaktig syntax, förväntat: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/th-TH.yml b/Towny/src/main/resources/lang/th-TH.yml
index 4b5cae782b..1bd6342db6 100644
--- a/Towny/src/main/resources/lang/th-TH.yml
+++ b/Towny/src/main/resources/lang/th-TH.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Claim พื้นที่ไม่ติดเมือง'
mayor_help_4: 'Claim รอบตัวคุณในรัศมี X'
mayor_help_5: 'Claim ในรัศมีสูงสุด'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cนำเข้ายาวเกินไป'
msg_err_invalid_choice: '&cตัวเลือกไม่ถูกต้อง'
msg_err_invalid_sub: '&cคำสั่งย่อยไม่ถูกต้อง'
msg_err_command_disable: '&cคุณไม่ได้รับอนุญาตให้ใช้คำสั่งนี้'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cUniverse ไม่สามารถยึดเมืองได้อีกต่อไป.'
msg_err_too_many_npc: '&cมี Npc มากเกินไป'
msg_err_negative_money: '&cคุณไม่สามารถมีเงินติดลบได้'
@@ -938,6 +942,9 @@ status_res_plottax: '&2ภาษี Plot ทั้งหมด: &a'
status_res_totaltax: '&2รวมภาษีที่ต้องชำระ: &a'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'คุณไม่สามารถใช้ประโยชน์จาก Nation Bank ของคุณนอกเมืองหลวงได้.'
msg_err_unable_to_use_bank_outside_your_town: 'คุณไม่สามารถใช้ประโยชน์จาก Town Bank ของคุณนอก Town ของคุณ.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/tl-PH.yml b/Towny/src/main/resources/lang/tl-PH.yml
index 96f30e2816..6509b4e957 100644
--- a/Towny/src/main/resources/lang/tl-PH.yml
+++ b/Towny/src/main/resources/lang/tl-PH.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Ang angkinin ay hindi kalakip sa bayan'
mayor_help_4: 'Pwede mo angkinin ang paligid mo hangang sa radius nang X'
mayor_help_5: 'Angkinin hangang sa pinakamataas na radius'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cAng input ay masyadong mahaba.'
msg_err_invalid_choice: '&cImbalidong pagpili'
msg_err_invalid_sub: '&cImbalidong sub command.'
msg_err_command_disable: '&cIkaw ay walang sapat na permiso para sa command na ito.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cAng sansinukob ay hindi na ma-aaaring humawak pa nang ilang mga bayan.'
msg_err_too_many_npc: '&cNapakadaming mga Npc ang naka-rehistro.'
msg_err_negative_money: '&cIkaw ay dapat walang negatibong pera.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Kabuuang Mga Buwis sa Plot:'
status_res_totaltax: 'Kabuuang Buwis na babayaran:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Hindi mo maaaring gamitin ang iyong bangko ng bansa sa labas ng kabisera ng bansa.'
msg_err_unable_to_use_bank_outside_your_town: 'Hindi mo maaaring gamitin ang iyong bangko ng bayan sa labas ng iyong bayan.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/tr-TR.yml b/Towny/src/main/resources/lang/tr-TR.yml
index 84492303a1..69d81a8a79 100644
--- a/Towny/src/main/resources/lang/tr-TR.yml
+++ b/Towny/src/main/resources/lang/tr-TR.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Talep alanı şehire bağlı değil'
mayor_help_4: 'Etrafınızda X yarıçapına kadar hak iddia edin'
mayor_help_5: 'Maksimum yarıçap için hak talebinde bulunun'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cGiriş çok uzun.'
msg_err_invalid_choice: '&cGeçersiz seçim'
msg_err_invalid_sub: '&cGeçersiz alt komut.'
msg_err_command_disable: '&cBu komut için yeterli izne sahip değilsiniz.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cEvren daha fazla kasaba tutamaz.'
msg_err_too_many_npc: '&cÇok fazla npc kayıtlı.'
msg_err_negative_money: '&cNegatif paranız olamaz.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Toplam arsa vergileri:'
status_res_totaltax: 'Ödenmesi_gereken_toplam_vergi:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Ulus bankanızı başkentin dışında kullanamazsınız.'
msg_err_unable_to_use_bank_outside_your_town: 'Kasaba bankanızı şehrinizin dışında kullanamazsınız.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cBurada %s yapmanıza izin verilmiyor.'
msg_err_plot_belongs_to_group: '&cArsa bir gruba ait, %s kullanın.'
plotgroup_sing: 'Arsa Grubu'
msg_err_ally_limit_reached: 'Milletiniz müttefik sınırına ulaştı, kabul edemiyor.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: '%s grubu bulunamadı.'
msg_err_expected_command_format: 'Yanlış sözdizimi, bekleniyor: %s'
@@ -1627,7 +1637,7 @@ msg_setup_full_guide_link: '&bTam kurulum kılavuzunun bağlantısı için buray
msg_setup_wildernessuse: 'Vahşi doğada kullanımı etkinleştirmek ister misiniz? Bu, oyuncuların vahşi doğada blok kırmasına/inşa etmesine izin verecektir.'
msg_setup_revertunclaim: 'Claim talebinde bulunmama durumunda geri döndürmeyi kullanmak ister misiniz? Bu, sahiplenilmediklerinde kasaba bloklarının yavaş yavaş yenilenmesini sağlayacaktır.'
msg_setup_town_block_ratio: 'Kasaba blok oranınızı neye ayarlamak istersiniz? Varsayılan, ikamet eden kişi başına 8 şehir bloğudur. Daha yüksek miktarlar, kasabaların sahip oldukları her sakin için daha fazla talep etmesine izin verecektir. Bunu 0 sayısına ayarlamak, town_levels değerlerini kullanmasını sağlayacaktır.'
-msg_setup_town_cost: 'Yeni bir kasaba yaratmanın maliyeti ne kadar olmalı? Varsayılan: 250'
+msg_setup_town_cost: 'Yeni bir kasaba kurma maliyeti ne kadar olmalı? Varsayılan: 250'
msg_setup_nation_cost: 'Sizce yeni bir ulus oluşturmanın bedeli ne olmalı? Varsayılan 1000.'
msg_setup_townblock_cost: 'Bir şehir bloğunu talep etmenin maliyeti ne kadar olmalıdır? Varsayılan değer 25. Townblock, bir Chunk ile aynı boyuttadır (varsayılan ayarlar).'
msg_setup_success: 'Yapılandırma değerleri başarıyla yeni değerlerinizle değiştirildi.'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/uk-UA.yml b/Towny/src/main/resources/lang/uk-UA.yml
index e3dad0485e..2fa90ab954 100644
--- a/Towny/src/main/resources/lang/uk-UA.yml
+++ b/Towny/src/main/resources/lang/uk-UA.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Додати місто як довірене в міс
town_towntrust_help_1: "Видалити місто як довірене в місті."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Територія не приєднана до міста'
mayor_help_4: 'Привласнити місцевість в радіусі X навколо вас'
mayor_help_5: 'Привласнити максимальний радіус'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cЗанадто довго.'
msg_err_invalid_choice: '&cНевірний вибір'
msg_err_invalid_sub: '&cНевірна підкоманда.'
msg_err_command_disable: '&cУ вас недостатньо прав для цієї команди.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cМаксимальна межа міст досягнута.'
msg_err_too_many_npc: '&cЗанадто багато NPC зареєстровано.'
msg_err_negative_money: '&cНегативна кількість грошей.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Загалом податків на землю:'
status_res_totaltax: 'Загалом податків до оплати:'
status_townblock_plottax: 'Податок на ділянку: '
status_townblock_untaxed: 'Без податку'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'Ви не можете користуватись національним банком поза столицею.'
msg_err_unable_to_use_bank_outside_your_town: 'Ви не можете користуватись міським банком поза вашим містом.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&сВам заборонено %s тут.'
msg_err_plot_belongs_to_group: '&сДілянка належить групі, використовуйте %s.'
plotgroup_sing: 'Група ділянок'
msg_err_ally_limit_reached: 'Ваша нація досягнула ліміту союзників, неможливо прийняти.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Групу %s не знайдено.'
msg_err_expected_command_format: 'Неправильний синтаксис, очікувалось: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/vi-VN.yml b/Towny/src/main/resources/lang/vi-VN.yml
index 86cfb7596d..749c84a448 100644
--- a/Towny/src/main/resources/lang/vi-VN.yml
+++ b/Towny/src/main/resources/lang/vi-VN.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Thêm một thị trấn là đáng tin cậy trong th
town_towntrust_help_1: "Loại bỏ một thị trấn là đáng tin cậy trong thị trấn."
town_towntrust_help_2: "Liệt kê các thị trấn đáng tin cậy của một thị trấn."
town_buy_help: "Mua thêm các khối thị trấn để tăng giới hạn yêu cầu của thị trấn."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: 'Chiếm khu vực không thuộc thị trấn'
mayor_help_4: 'Chiếm khu vực xung quanh bạn trong bán kính X'
mayor_help_5: 'Chiếm theo bán kính lớn nhất'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&cInput is too long.'
msg_err_invalid_choice: '&cInvalid choice'
msg_err_invalid_sub: '&cInvalid sub command.'
msg_err_command_disable: '&cYou don''t have enough permissions for that command.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&cThe universe cannot hold any more towns.'
msg_err_too_many_npc: '&cToo many npc''s registered.'
msg_err_negative_money: '&cYou cannot have negative money.'
@@ -938,6 +942,9 @@ status_res_plottax: 'Total Plot Taxes:'
status_res_totaltax: 'Total Tax to pay:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: 'You cannot make use of your nation bank outside of the nation capital.'
msg_err_unable_to_use_bank_outside_your_town: 'You cannot make use of your town bank outside of your town.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&cYou are not allowed to %s here.'
msg_err_plot_belongs_to_group: '&cPlot belongs to a group, use %s.'
plotgroup_sing: 'Plot Group'
msg_err_ally_limit_reached: 'Your nation has reached the ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: 'Group %s not found.'
msg_err_expected_command_format: 'Incorrect syntax, expected: %s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/zh-CN.yml b/Towny/src/main/resources/lang/zh-CN.yml
index 597ef5b4c4..947834cc9e 100644
--- a/Towny/src/main/resources/lang/zh-CN.yml
+++ b/Towny/src/main/resources/lang/zh-CN.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "在这个城镇中,增加一个受信任的城镇。"
town_towntrust_help_1: "在这个城镇中,移除一个受信任的城镇。"
town_towntrust_help_2: "列出一个城镇所信任的城镇。"
town_buy_help: "购买额外区块上限"
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: '你所选择的区域不附属于城镇'
mayor_help_4: '声明你附近半径为X的区块'
mayor_help_5: '声明最大半径内的所有区块'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "切换你所在的区块组的怪物生成"
plot_group_toggle_help_4: "切换你所在的区块组的收税状态"
plot_set_help_0: "例如:Inn, Wilds, Farm, Embassy等。"
plot_set_help_1: "设置一个区块为哨站"
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "删除一个区块类型"
plot_set_help_3: "命名一个区块"
plot_set_help_4: "切换所有权限"
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&c你输入的内容太长了.'
msg_err_invalid_choice: '&c无效的选择'
msg_err_invalid_sub: '&c无效的子命令.'
msg_err_command_disable: '&c你没有足够的权限使用这个指令.'
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&c这个世界不能再有更多的城镇了.'
msg_err_too_many_npc: '&c已注册的NPC太多了.'
msg_err_negative_money: '&c你不能拥有负数的钱.'
@@ -938,6 +942,9 @@ status_res_plottax: '总计地税:'
status_res_totaltax: '需要缴纳税费:'
status_townblock_plottax: '区块税: '
status_townblock_untaxed: '免税'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: '你不能在国都外使用国家银行.'
msg_err_unable_to_use_bank_outside_your_town: '你不能在城镇外使用城镇银行.'
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&c你没有权限在这里%s。'
msg_err_plot_belongs_to_group: '&c这片土地属于一个土地组,请使用%s。'
plotgroup_sing: '土地组'
msg_err_ally_limit_reached: '你的盟友太多了,因此你无法接受新的邀请。'
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: '组%s未找到。'
msg_err_expected_command_format: '语法错误,预期传入%s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: ""
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/main/resources/lang/zh-TW.yml b/Towny/src/main/resources/lang/zh-TW.yml
index b6ebf4ed05..da5abd64a7 100644
--- a/Towny/src/main/resources/lang/zh-TW.yml
+++ b/Towny/src/main/resources/lang/zh-TW.yml
@@ -130,6 +130,7 @@ town_towntrust_help_0: "Adds a town as Trusted in the town."
town_towntrust_help_1: "Removes a town as Trusted in the town."
town_towntrust_help_2: "Lists the Trusted towns of a town."
town_buy_help: "Purchases bonus townblocks to increase the claim limit of the town."
+town_cede_help: "Offers the plot you are stood in to be taken over by the given Town."
mayor_help_3: '你所選擇的地段不在市鎮旁'
mayor_help_4: '取得周遭X格內的地段'
mayor_help_5: '取得最大半徑內的地段'
@@ -403,6 +404,8 @@ plot_group_toggle_help_3: "Toggles mobs in the plot group."
plot_group_toggle_help_4: "Toggles the taxed status of the plot group."
plot_set_help_0: "Ex: Inn, Wilds, Farm, Embassy, etc."
plot_set_help_1: "Sets a plot to an Outpost."
+plot_set_help_1.5: "Sets the minimum number of days a player must be a town member to purchase the plot."
+plot_set_help_1.6: "Sets the maximum number of days a player must be a town member to purchase the plot."
plot_set_help_2: "Removes a plot type."
plot_set_help_3: "Names a plot."
plot_set_help_4: "Toggle all permissions."
@@ -654,6 +657,7 @@ msg_err_input_too_long: '&c你輸入的內容太長了 '
msg_err_invalid_choice: '&c無效的選擇'
msg_err_invalid_sub: '&c無效的子指令 '
msg_err_command_disable: '&c你沒有足夠的權限使用這個指令 '
+msg_err_you_dont_have_permission_to_use_colours: "You do not have permission to use colour codes in titles and surnames."
msg_err_universe_limit: '&c這個世界不能再有更多的市鎮了 '
msg_err_too_many_npc: '&cNPC太多了 '
msg_err_negative_money: '&c你不能擁有負數的錢 '
@@ -938,6 +942,9 @@ status_res_plottax: '地段稅收加總:'
status_res_totaltax: '需要負擔的總稅額:'
status_townblock_plottax: 'Plot Tax: '
status_townblock_untaxed: 'Untaxed'
+status_townblock_max_and_minjoindays: 'Town membership of between %s and %s days required for plot purchase.'
+status_townblock_minjoindays: 'Town membership more than %s days required for plot purchase.'
+status_townblock_maxjoindays: 'Town membership less than %s days required for plot purchase.'
#Added in 0.45
msg_err_unable_to_use_bank_outside_nation_capital: '你不能在國外使用城邦銀行 '
msg_err_unable_to_use_bank_outside_your_town: '你不能在市鎮外使用市鎮銀行 '
@@ -1549,6 +1556,9 @@ msg_cache_block_err: '&c你不得在此%s '
msg_err_plot_belongs_to_group: '&c此地段屬於一個叢集,使用%s '
plotgroup_sing: '地段叢集'
msg_err_ally_limit_reached: '你的城邦達到了盟邦配額限制,無法接受要求 '
+msg_err_ally_limit_reached_cannot_accept: 'The nation of %s has reached their ally limit, unable to accept.'
+msg_err_ally_limit_reached_cannot_send: 'Your nation has reached the ally limit, unable to invite %s to become your ally.'
+msg_err_ally_limit_reached_cannot_send_targetNation: 'The nation of %s has reached their ally limit, unable to invite %s to become your ally.'
#Added in 0.114
msg_err_group_not_found: '找不到叢集%s '
msg_err_expected_command_format: '錯誤的語句,預期狀況:%s'
@@ -2121,3 +2131,21 @@ teleport_warmup_title_dont_move: "&6Don't move!"
teleport_warmup_subtitle_seconds_remaining: "&c%s &7seconds remaining until teleport."
msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because your town has a ruined status, %s plot(s) permission lines have had changed to provide no protections."
console_msg_ruined_town_plot_permissions_allowed_on_x_plots: "Because of their ruined status, %s has had %s plot(s) permission lines changed to provide no protections: %s."
+msg_err_town_cede_you_cannot_cede_a_plot_to_your_own_town: "You cannot cede a plot to your own town."
+msg_err_town_cede_you_cannot_cede_your_homeblock: "You cannot cede your town's homeblock."
+msg_err_town_cede_the_mayor_is_not_online: "The mayor of %s, %s is not online to accept your plot."
+msg_err_town_no_longer_owns_this_plot: "%s no longer owns this plot."
+msg_err_town_cede_town_cannot_cede_their_homeblock: "%s cannot cede their if homeblock."
+msg_town_cede_plot_confirmation_give_plot: "Are you sure you want to give %s this plot?"
+msg_town_cede_plot_confirmation_accept_plot: "%s would like to cede the townblock at %s to your town, will you accept?"
+msg_town_cede_plot_accepted: "%s has accepted ceding of your plot."
+msg_town_cede_plot_denied: "%s has declined your offer."
+msg_town_cede_plot_unable_to_accept: "%s was unable to accept your offer."
+msg_town_cede_plot_you_have_accepted: "You have gained control of the plot at %s."
+msg_err_cannot_claim_plot_join_date_too_low: "You cannot claim this plot until you have been a town resident for %s days."
+msg_err_cannot_claim_plot_join_date_too_high: "You cannot claim this plot, it is for residents who have been town members for less than %s days."
+msg_townblock_min_join_days_removed: "This TownBlock has had its min-join-days requirement removed."
+msg_townblock_max_join_days_removed: "This TownBlock has had its max-join-days requirement removed."
+msg_townblock_min_join_days_set_to: "This TownBlock has had its min-join-days requirement set to %s. Only players joined for more than that number of days will be able to use /plot claim."
+msg_townblock_max_join_days_set_to: "This TownBlock has had its max-join-days requirement set to %s. Only players joined for less than that number of days will be able to use /plot claim."
+msg_new_resident_spawn_to_town_prompt: "Did you want to spawn to the town you just joined?"
diff --git a/Towny/src/test/java/com/palmergames/bukkit/towny/object/WorldCoordTests.java b/Towny/src/test/java/com/palmergames/bukkit/towny/object/WorldCoordTests.java
new file mode 100644
index 0000000000..a0dc944315
--- /dev/null
+++ b/Towny/src/test/java/com/palmergames/bukkit/towny/object/WorldCoordTests.java
@@ -0,0 +1,52 @@
+package com.palmergames.bukkit.towny.object;
+
+import be.seeseemelk.mockbukkit.MockBukkit;
+import com.google.common.collect.Iterables;
+import com.palmergames.bukkit.towny.TownySettings;
+import com.palmergames.util.Pair;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.RepeatedTest;
+import org.junit.jupiter.api.RepetitionInfo;
+import org.junit.jupiter.api.Test;
+
+import java.util.Collection;
+import static org.junit.jupiter.api.Assertions.*;
+
+public class WorldCoordTests {
+ @BeforeAll
+ static void init() {
+ MockBukkit.getOrCreateMock();
+ TownySettings.loadDefaultConfig();
+ }
+
+ @Test
+ void testChunkPositions() {
+ final int length = 10;
+
+ for (int x = -length / 2; x < length / 2; x++) {
+ for (int z = -length / 2; z < length / 2; z++) {
+ WorldCoord coord = new WorldCoord("a", x, z);
+
+ Collection> chunkPositions = coord.getChunkPositions(16);
+ assertEquals(1, chunkPositions.size());
+
+ Pair pos = Iterables.getFirst(chunkPositions, null);
+ assertEquals(x, pos.left());
+ assertEquals(z, pos.right());
+ }
+ }
+ }
+
+ @Test
+ void testLargerCellSizeChunkPositions() {
+ WorldCoord coord = new WorldCoord("a", 0, 0);
+
+ assertEquals(4, coord.getChunkPositions(32).size());
+ assertEquals(9, coord.getChunkPositions(48).size());
+ }
+
+ @RepeatedTest(16)
+ void testSmallerCellSizes(RepetitionInfo info) {
+ assertEquals(1, new WorldCoord("a", 0, 0).getChunkPositions(info.getCurrentRepetition()).size());
+ }
+}
diff --git a/providers/BaseProviders/pom.xml b/providers/BaseProviders/pom.xml
index 40dd13ff62..68c09ddc43 100644
--- a/providers/BaseProviders/pom.xml
+++ b/providers/BaseProviders/pom.xml
@@ -1,61 +1,61 @@
-
-
- 4.0.0
-
-
- com.palmergames.bukkit.towny
- towny-parent
- ../../pom.xml
- 1.0.0
-
-
- towny-base-providers
- jar
-
-
-
- spigot-repo
- https://hub.spigotmc.org/nexus/content/repositories/snapshots/
-
-
-
-
-
- org.spigotmc
- spigot-api
- 1.19.4-R0.1-SNAPSHOT
- provided
-
-
- org.jetbrains
- annotations
- provided
-
-
- com.github.bsideup.jabel
- jabel-javac-plugin
- 1.0.0
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.12.1
-
- 8
-
- 17
-
- -Xplugin:jabel
-
-
-
-
-
+
+
+ 4.0.0
+
+
+ com.palmergames.bukkit.towny
+ towny-parent
+ ../../pom.xml
+ 1.0.0
+
+
+ towny-base-providers
+ jar
+
+
+
+ spigot-repo
+ https://hub.spigotmc.org/nexus/content/repositories/snapshots/
+
+
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.19.4-R0.1-SNAPSHOT
+ provided
+
+
+ org.jetbrains
+ annotations
+ provided
+
+
+ com.github.bsideup.jabel
+ jabel-javac-plugin
+ 1.0.0
+ provided
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.13.0
+
+ 8
+
+ 17
+
+ -Xplugin:jabel
+
+
+
+
+
\ No newline at end of file
diff --git a/providers/BaseProviders/src/main/java/com/palmergames/bukkit/towny/scheduling/TaskScheduler.java b/providers/BaseProviders/src/main/java/com/palmergames/bukkit/towny/scheduling/TaskScheduler.java
index c692f63acd..530d6aa15b 100644
--- a/providers/BaseProviders/src/main/java/com/palmergames/bukkit/towny/scheduling/TaskScheduler.java
+++ b/providers/BaseProviders/src/main/java/com/palmergames/bukkit/towny/scheduling/TaskScheduler.java
@@ -3,8 +3,12 @@
import org.bukkit.Location;
import org.bukkit.entity.Entity;
import org.checkerframework.framework.qual.DefaultQualifier;
+import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Consumer;
+
@DefaultQualifier(NotNull.class)
public interface TaskScheduler {
boolean isGlobalThread();
@@ -15,7 +19,64 @@ public interface TaskScheduler {
boolean isRegionThread(Location location);
- ScheduledTask run(Runnable runnable);
+ ScheduledTask run(Consumer task);
+
+ default ScheduledTask run(Entity entity, Consumer task) {
+ return run(task);
+ }
+
+ default ScheduledTask run(Location location, Consumer task) {
+ return run(task);
+ }
+
+ ScheduledTask runLater(Consumer task, long delay);
+
+ default ScheduledTask runLater(Entity entity, Consumer task, long delay) {
+ return runLater(task, delay);
+ }
+
+ default ScheduledTask runLater(Location location, Consumer task, long delay) {
+ return runLater(task, delay);
+ }
+
+ ScheduledTask runRepeating(Consumer task, long delay, long period);
+
+ default ScheduledTask runRepeating(Entity entity, Consumer task, long delay, long period) {
+ return runRepeating(task, delay, period);
+ }
+
+ default ScheduledTask runRepeating(Location location, Consumer task, long delay, long period) {
+ return runRepeating(task, delay, period);
+ }
+
+ ScheduledTask runAsync(Consumer task);
+
+ ScheduledTask runAsyncLater(Consumer task, long delay, TimeUnit timeUnit);
+
+ ScheduledTask runAsyncRepeating(Consumer task, long delay, long period, TimeUnit timeUnit);
+
+ @ApiStatus.Experimental
+ default ScheduledTask runGlobal(final Consumer task) {
+ return run(task);
+ }
+
+ @ApiStatus.Experimental
+ default ScheduledTask runGlobalLater(final Consumer task, final long delay) {
+ return runLater(task, delay);
+ }
+
+ @ApiStatus.Experimental
+ default ScheduledTask runGlobalRepeating(final Consumer task, final long delay, final long period) {
+ return runRepeating(task, delay, period);
+ }
+
+ /*
+ * Runnable methods
+ */
+
+ default ScheduledTask run(Runnable runnable) {
+ return run(task -> runnable.run());
+ }
default ScheduledTask run(Entity entity, Runnable runnable) {
return run(runnable);
@@ -25,7 +86,9 @@ default ScheduledTask run(Location location, Runnable runnable) {
return run(runnable);
}
- ScheduledTask runLater(Runnable runnable, long delay);
+ default ScheduledTask runLater(Runnable runnable, long delay) {
+ return runLater(task -> runnable.run(), delay);
+ }
default ScheduledTask runLater(Entity entity, Runnable runnable, long delay) {
return runLater(runnable, delay);
@@ -35,7 +98,9 @@ default ScheduledTask runLater(Location location, Runnable runnable, long delay)
return runLater(runnable, delay);
}
- ScheduledTask runRepeating(Runnable runnable, long delay, long period);
+ default ScheduledTask runRepeating(Runnable runnable, long delay, long period) {
+ return runRepeating(task -> runnable.run(), delay, period);
+ }
default ScheduledTask runRepeating(Entity entity, Runnable runnable, long delay, long period) {
return runRepeating(runnable, delay, period);
@@ -45,9 +110,15 @@ default ScheduledTask runRepeating(Location location, Runnable runnable, long de
return runRepeating(runnable, delay, period);
}
- ScheduledTask runAsync(Runnable runnable);
+ default ScheduledTask runAsync(Runnable runnable) {
+ return runAsync(task -> runnable.run());
+ }
- ScheduledTask runAsyncLater(Runnable runnable, long delay);
+ default ScheduledTask runAsyncLater(Runnable runnable, long delay) {
+ return runAsyncLater(task -> runnable.run(), delay * 50, TimeUnit.MILLISECONDS);
+ }
- ScheduledTask runAsyncRepeating(Runnable runnable, long delay, long period);
+ default ScheduledTask runAsyncRepeating(Runnable runnable, long delay, long period) {
+ return runAsyncRepeating(task -> runnable.run(), delay * 50, period * 50, TimeUnit.MILLISECONDS);
+ }
}
diff --git a/providers/BaseProviders/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/BukkitTaskScheduler.java b/providers/BaseProviders/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/BukkitTaskScheduler.java
index f746c24969..39effa6d69 100644
--- a/providers/BaseProviders/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/BukkitTaskScheduler.java
+++ b/providers/BaseProviders/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/BukkitTaskScheduler.java
@@ -7,8 +7,14 @@
import org.bukkit.entity.Entity;
import org.bukkit.plugin.Plugin;
import org.bukkit.scheduler.BukkitScheduler;
+import org.checkerframework.framework.qual.DefaultQualifier;
import org.jetbrains.annotations.NotNull;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Consumer;
+
+@DefaultQualifier(NotNull.class)
public class BukkitTaskScheduler implements TaskScheduler {
private final Plugin plugin;
private final BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
@@ -28,42 +34,60 @@ public boolean isTickThread() {
}
@Override
- public boolean isEntityThread(@NotNull Entity entity) {
+ public boolean isEntityThread(Entity entity) {
return Bukkit.getServer().isPrimaryThread();
}
@Override
- public boolean isRegionThread(@NotNull Location location) {
+ public boolean isRegionThread(Location location) {
return Bukkit.getServer().isPrimaryThread();
}
@Override
- public @NotNull ScheduledTask run(@NotNull Runnable runnable) {
- return new BukkitScheduledTask(this.scheduler.runTask(this.plugin, runnable));
+ public ScheduledTask run(Consumer task) {
+ AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new BukkitScheduledTask(this.scheduler.runTask(this.plugin, () -> task.accept(taskRef.get()))));
+
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runLater(@NotNull Runnable runnable, long delay) {
- return new BukkitScheduledTask(this.scheduler.runTaskLater(this.plugin, runnable, delay));
+ public ScheduledTask runLater(Consumer task, long delay) {
+ AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new BukkitScheduledTask(this.scheduler.runTaskLater(this.plugin, () -> task.accept(taskRef.get()), delay)));
+
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runRepeating(@NotNull Runnable runnable, long delay, long period) {
- return new BukkitScheduledTask(this.scheduler.runTaskTimer(this.plugin, runnable, delay, period), true);
+ public ScheduledTask runRepeating(Consumer task, long delay, long period) {
+ AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new BukkitScheduledTask(this.scheduler.runTaskTimer(this.plugin, () -> task.accept(taskRef.get()), delay, period), true));
+
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runAsync(@NotNull Runnable runnable) {
- return new BukkitScheduledTask(this.scheduler.runTaskAsynchronously(this.plugin, runnable));
+ public ScheduledTask runAsync(Consumer task) {
+ AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new BukkitScheduledTask(this.scheduler.runTaskAsynchronously(this.plugin, () -> task.accept(taskRef.get()))));
+
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runAsyncLater(@NotNull Runnable runnable, long delay) {
- return new BukkitScheduledTask(this.scheduler.runTaskLaterAsynchronously(this.plugin, runnable, delay));
+ public ScheduledTask runAsyncLater(Consumer task, long delay, TimeUnit timeUnit) {
+ AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new BukkitScheduledTask(this.scheduler.runTaskLaterAsynchronously(this.plugin, () -> task.accept(taskRef.get()), timeUnit.toMillis(delay) / 50)));
+
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runAsyncRepeating(@NotNull Runnable runnable, long delay, long period) {
- return new BukkitScheduledTask(this.scheduler.runTaskTimerAsynchronously(this.plugin, runnable, delay, period), true);
+ public ScheduledTask runAsyncRepeating(Consumer task, long delay, long period, TimeUnit timeUnit) {
+ AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new BukkitScheduledTask(this.scheduler.runTaskTimerAsynchronously(this.plugin, () -> task.accept(taskRef.get()), timeUnit.toMillis(delay) / 50, timeUnit.toMillis(period) / 50), true));
+
+ return taskRef.get();
}
}
diff --git a/providers/FoliaProvider/pom.xml b/providers/FoliaProvider/pom.xml
index 35875a0901..abebae5066 100644
--- a/providers/FoliaProvider/pom.xml
+++ b/providers/FoliaProvider/pom.xml
@@ -1,62 +1,62 @@
-
-
- 4.0.0
-
-
- com.palmergames.bukkit.towny
- towny-parent
- ../../pom.xml
- 1.0.0
-
-
- towny-folia-provider
- jar
-
-
-
- paper
- https://repo.papermc.io/repository/maven-public
-
-
-
-
-
- dev.folia
- folia-api
- 1.19.4-R0.1-SNAPSHOT
- provided
-
-
- com.palmergames.bukkit.towny
- towny-base-providers
- 1.0.0
- compile
-
-
- com.github.bsideup.jabel
- jabel-javac-plugin
- 1.0.0
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.12.1
-
- 8
-
- 17
-
- -Xplugin:jabel
-
-
-
-
-
+
+
+ 4.0.0
+
+
+ com.palmergames.bukkit.towny
+ towny-parent
+ ../../pom.xml
+ 1.0.0
+
+
+ towny-folia-provider
+ jar
+
+
+
+ paper
+ https://repo.papermc.io/repository/maven-public
+
+
+
+
+
+ dev.folia
+ folia-api
+ 1.19.4-R0.1-SNAPSHOT
+ provided
+
+
+ com.palmergames.bukkit.towny
+ towny-base-providers
+ 1.0.0
+ compile
+
+
+ com.github.bsideup.jabel
+ jabel-javac-plugin
+ 1.0.0
+ provided
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.13.0
+
+ 8
+
+ 17
+
+ -Xplugin:jabel
+
+
+
+
+
\ No newline at end of file
diff --git a/providers/FoliaProvider/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/FoliaTaskScheduler.java b/providers/FoliaProvider/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/FoliaTaskScheduler.java
index 5840ceee3d..11c81d82ab 100644
--- a/providers/FoliaProvider/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/FoliaTaskScheduler.java
+++ b/providers/FoliaProvider/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/FoliaTaskScheduler.java
@@ -9,15 +9,20 @@
import org.bukkit.Location;
import org.bukkit.entity.Entity;
import org.bukkit.plugin.Plugin;
+import org.checkerframework.framework.qual.DefaultQualifier;
import org.jetbrains.annotations.NotNull;
import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Consumer;
+@DefaultQualifier(NotNull.class)
public class FoliaTaskScheduler implements TaskScheduler {
+ private static final long MS_PER_TICK = 50L; // in an ideal world
private final RegionScheduler regionScheduler = Bukkit.getServer().getRegionScheduler();
- private final GlobalRegionScheduler globalRegionScheduler = Bukkit.getServer().getGlobalRegionScheduler();
+ final GlobalRegionScheduler globalRegionScheduler = Bukkit.getServer().getGlobalRegionScheduler();
private final AsyncScheduler asyncScheduler = Bukkit.getServer().getAsyncScheduler();
- private final Plugin plugin;
+ final Plugin plugin;
public FoliaTaskScheduler(final Plugin plugin) {
this.plugin = plugin;
@@ -34,85 +39,136 @@ public boolean isTickThread() {
}
@Override
- public boolean isEntityThread(@NotNull Entity entity) {
+ public boolean isEntityThread(final Entity entity) {
return Bukkit.getServer().isOwnedByCurrentRegion(entity);
}
@Override
- public boolean isRegionThread(@NotNull Location location) {
+ public boolean isRegionThread(final Location location) {
return Bukkit.getServer().isOwnedByCurrentRegion(location);
}
@Override
- public @NotNull ScheduledTask run(@NotNull Runnable runnable) {
- return new FoliaScheduledTask(globalRegionScheduler.run(this.plugin, task -> runnable.run()));
+ public ScheduledTask run(final Consumer task) {
+ return runAsync(task);
}
@Override
- public @NotNull ScheduledTask run(@NotNull Entity entity, @NotNull Runnable runnable) {
- return new FoliaScheduledTask(entity.getScheduler().run(this.plugin, task -> runnable.run(), null));
+ public ScheduledTask run(final Entity entity, final Consumer task) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(entity.getScheduler().run(this.plugin, t -> task.accept(taskRef.get()), null)));
+
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask run(@NotNull Location location, @NotNull Runnable runnable) {
- return new FoliaScheduledTask(regionScheduler.run(this.plugin, location, task -> runnable.run()));
+ public ScheduledTask run(final Location location, final Consumer task) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(regionScheduler.run(this.plugin, location, t -> task.accept(taskRef.get()))));
+
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runLater(@NotNull Runnable runnable, long delay) {
+ public ScheduledTask runLater(final Consumer task, final long delay) {
if (delay == 0)
- return run(runnable);
+ return run(task);
- return new FoliaScheduledTask(globalRegionScheduler.runDelayed(this.plugin, task -> runnable.run(), delay));
+ return runAsyncLater(task, delay * MS_PER_TICK, TimeUnit.MILLISECONDS);
}
@Override
- public @NotNull ScheduledTask runLater(@NotNull Entity entity, @NotNull Runnable runnable, long delay) {
+ public ScheduledTask runLater(final Entity entity, final Consumer task, final long delay) {
if (delay == 0)
- return run(entity, runnable);
+ return run(entity, task);
+
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(entity.getScheduler().runDelayed(this.plugin, t -> task.accept(taskRef.get()), null, delay)));
- return new FoliaScheduledTask(entity.getScheduler().runDelayed(this.plugin, task -> runnable.run(), null, delay));
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runLater(@NotNull Location location, @NotNull Runnable runnable, long delay) {
+ public ScheduledTask runLater(final Location location, final Consumer task, final long delay) {
if (delay == 0)
- return run(location, runnable);
+ return run(location, task);
- return new FoliaScheduledTask(regionScheduler.runDelayed(this.plugin, location, task -> runnable.run(), delay));
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(regionScheduler.runDelayed(this.plugin, location, t -> task.accept(taskRef.get()), delay)));
+
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runRepeating(@NotNull Runnable runnable, long delay, long period) {
- return new FoliaScheduledTask(globalRegionScheduler.runAtFixedRate(this.plugin, task -> runnable.run(), delay, period));
+ public ScheduledTask runRepeating(final Consumer task, final long delay, final long period) {
+ return runAsyncRepeating(task, delay * MS_PER_TICK, period * MS_PER_TICK, TimeUnit.MILLISECONDS);
}
@Override
- public @NotNull ScheduledTask runRepeating(@NotNull Entity entity, @NotNull Runnable runnable, long delay, long period) {
- return new FoliaScheduledTask(entity.getScheduler().runAtFixedRate(this.plugin, task -> runnable.run(), null, delay, period));
+ public ScheduledTask runRepeating(final Entity entity, final Consumer task, final long delay, final long period) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(entity.getScheduler().runAtFixedRate(this.plugin, t -> task.accept(taskRef.get()), null, delay, period)));
+
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runRepeating(@NotNull Location location, @NotNull Runnable runnable, long delay, long period) {
- return new FoliaScheduledTask(regionScheduler.runAtFixedRate(this.plugin, location, task -> runnable.run(), delay, period));
+ public ScheduledTask runRepeating(final Location location, final Consumer task, final long delay, final long period) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(regionScheduler.runAtFixedRate(this.plugin, location, t -> task.accept(taskRef.get()), delay, period)));
+
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runAsync(@NotNull Runnable runnable) {
- return new FoliaScheduledTask(this.asyncScheduler.runNow(this.plugin, task -> runnable.run()));
+ public ScheduledTask runAsync(final Consumer task) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(this.asyncScheduler.runNow(this.plugin, t -> task.accept(taskRef.get()))));
+
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runAsyncLater(@NotNull Runnable runnable, long delay) {
+ public ScheduledTask runAsyncLater(final Consumer task, final long delay, TimeUnit timeUnit) {
if (delay == 0)
- return runAsync(runnable);
+ return runAsync(task);
+
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(this.asyncScheduler.runDelayed(this.plugin, t -> task.accept(taskRef.get()), delay, timeUnit)));
- return new FoliaScheduledTask(this.asyncScheduler.runDelayed(this.plugin, task -> runnable.run(), delay * 50L, TimeUnit.MILLISECONDS));
+ return taskRef.get();
}
@Override
- public @NotNull ScheduledTask runAsyncRepeating(@NotNull Runnable runnable, long delay, long period) {
- return new FoliaScheduledTask(this.asyncScheduler.runAtFixedRate(this.plugin, task -> runnable.run(), delay * 50L, period * 50L, TimeUnit.MILLISECONDS));
+ public ScheduledTask runAsyncRepeating(final Consumer task, final long delay, final long period, TimeUnit timeUnit) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(this.asyncScheduler.runAtFixedRate(this.plugin, t -> task.accept(taskRef.get()), delay, period, timeUnit)));
+
+ return taskRef.get();
+ }
+
+ @Override
+ public ScheduledTask runGlobal(final Consumer task) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(this.globalRegionScheduler.run(this.plugin, t -> task.accept(taskRef.get()))));
+
+ return taskRef.get();
+ }
+
+ @Override
+ public ScheduledTask runGlobalLater(final Consumer task, final long delay) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(this.globalRegionScheduler.runDelayed(this.plugin, t -> task.accept(taskRef.get()), delay)));
+
+ return taskRef.get();
+ }
+
+ @Override
+ public ScheduledTask runGlobalRepeating(final Consumer task, final long delay, final long period) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(this.globalRegionScheduler.runAtFixedRate(this.plugin, t -> task.accept(taskRef.get()), delay, period)));
+
+ return taskRef.get();
}
/**
diff --git a/providers/PaperProvider/pom.xml b/providers/PaperProvider/pom.xml
index 0ffb13f217..a6a4c2b1c5 100644
--- a/providers/PaperProvider/pom.xml
+++ b/providers/PaperProvider/pom.xml
@@ -1,62 +1,62 @@
-
-
- 4.0.0
-
-
- com.palmergames.bukkit.towny
- towny-parent
- ../../pom.xml
- 1.0.0
-
-
- towny-paper-provider
- jar
-
-
-
- paper
- https://repo.papermc.io/repository/maven-public
-
-
-
-
-
- io.papermc.paper
- paper-api
- 1.20.1-R0.1-SNAPSHOT
- provided
-
-
- com.palmergames.bukkit.towny
- towny-folia-provider
- 1.0.0
- compile
-
-
- com.github.bsideup.jabel
- jabel-javac-plugin
- 1.0.0
- provided
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.12.1
-
- 8
-
- 17
-
- -Xplugin:jabel
-
-
-
-
-
-
+
+
+ 4.0.0
+
+
+ com.palmergames.bukkit.towny
+ towny-parent
+ ../../pom.xml
+ 1.0.0
+
+
+ towny-paper-provider
+ jar
+
+
+
+ paper
+ https://repo.papermc.io/repository/maven-public
+
+
+
+
+
+ io.papermc.paper
+ paper-api
+ 1.20.1-R0.1-SNAPSHOT
+ provided
+
+
+ com.palmergames.bukkit.towny
+ towny-folia-provider
+ 1.0.0
+ compile
+
+
+ com.github.bsideup.jabel
+ jabel-javac-plugin
+ 1.0.0
+ provided
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.13.0
+
+ 8
+
+ 17
+
+ -Xplugin:jabel
+
+
+
+
+
+
diff --git a/providers/PaperProvider/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/PaperTaskScheduler.java b/providers/PaperProvider/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/PaperTaskScheduler.java
index dfeb9b723d..96ef9e5fbb 100644
--- a/providers/PaperProvider/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/PaperTaskScheduler.java
+++ b/providers/PaperProvider/src/main/java/com/palmergames/bukkit/towny/scheduling/impl/PaperTaskScheduler.java
@@ -1,8 +1,15 @@
package com.palmergames.bukkit.towny.scheduling.impl;
+import com.palmergames.bukkit.towny.scheduling.ScheduledTask;
import org.bukkit.Bukkit;
import org.bukkit.plugin.Plugin;
+import org.checkerframework.framework.qual.DefaultQualifier;
+import org.jetbrains.annotations.NotNull;
+import java.util.concurrent.atomic.AtomicReference;
+import java.util.function.Consumer;
+
+@DefaultQualifier(NotNull.class)
public class PaperTaskScheduler extends FoliaTaskScheduler {
public PaperTaskScheduler(Plugin plugin) {
super(plugin);
@@ -13,4 +20,32 @@ public boolean isGlobalThread() {
// isGlobalThread does not exist on paper, match the bukkit task scheduler's behaviour.
return Bukkit.getServer().isPrimaryThread();
}
+
+ /*
+ * These methods run async on folia, but on paper we expect them to be sync
+ */
+
+ @Override
+ public ScheduledTask run(final Consumer task) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(globalRegionScheduler.run(plugin, t -> task.accept(taskRef.get()))));
+
+ return taskRef.get();
+ }
+
+ @Override
+ public ScheduledTask runLater(final Consumer task, long delay) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(globalRegionScheduler.runDelayed(plugin, t -> task.accept(taskRef.get()), delay)));
+
+ return taskRef.get();
+ }
+
+ @Override
+ public ScheduledTask runRepeating(final Consumer task, long delay, long period) {
+ final AtomicReference taskRef = new AtomicReference<>();
+ taskRef.set(new FoliaScheduledTask(globalRegionScheduler.runAtFixedRate(plugin, t -> task.accept(taskRef.get()), delay, period)));
+
+ return taskRef.get();
+ }
}