More fixes for next release.

* Fix /buyblocks command adding to accrued instead of bonus blocks.
* Fix various relocation issues causing plugin event listeners not to be
registered.
* Move visual revert and claim creation cancel to shift right-click.
Note: With this change, visuals will no longer revert on left-click and/or item change.
* Add support to visualize claims, using left-click, during claim creation.
* Add teleport support for BorderClaimEvent.
* Add support for Java 13.
* Update FR/RU lang files. Thanks to Ark'I'Dian and Polyacov for
translations.

Fixes #67
Fixes #68
Fixes #70
This commit is contained in:
bloodshot 2019-11-19 11:12:46 -05:00
parent 90eed11bea
commit 2f7da6a633
15 changed files with 354 additions and 391 deletions

View File

@ -136,7 +136,7 @@ public class GDBootstrap extends JavaPlugin {
BootstrapUtil.addUrlToClassLoader(name, file);
// inject reflect helper
final String javaVersion = System.getProperty("java.version");
if (javaVersion.startsWith("11") || javaVersion.startsWith("12")) {
if (getJavaVersion() >= 11) {
name = "com.griefdefender:reflect-helper:2.0";
} else {
name = "com.griefdefender:reflect-helper:1.0";
@ -208,4 +208,17 @@ public class GDBootstrap extends JavaPlugin {
}
return null;
}
private static int getJavaVersion() {
String version = System.getProperty("java.version");
if(version.startsWith("1.")) {
version = version.substring(2, 3);
} else {
final int dot = version.indexOf(".");
if(dot != -1) {
version = version.substring(0, dot);
}
}
return Integer.parseInt(version);
}
}

View File

@ -38,7 +38,6 @@ import com.griefdefender.GDPlayerData;
import com.griefdefender.GriefDefenderPlugin;
import com.griefdefender.api.permission.option.Options;
import com.griefdefender.cache.MessageCache;
import com.griefdefender.claim.GDClaim;
import com.griefdefender.configuration.MessageStorage;
import com.griefdefender.permission.GDPermissionManager;
import com.griefdefender.permission.GDPermissions;
@ -76,7 +75,6 @@ public class CommandClaimBuyBlocks extends BaseCommand {
}
final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId());
final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAt(player.getLocation());
final double economyBlockCost = GDPermissionManager.getInstance().getInternalOptionValue(TypeToken.of(Double.class), player, Options.ECONOMY_BLOCK_COST);
final double economyBlockSell = GDPermissionManager.getInstance().getInternalOptionValue(TypeToken.of(Double.class), player, Options.ECONOMY_BLOCK_SELL_RETURN);
if (economyBlockCost == 0 && economyBlockSell == 0) {
@ -103,15 +101,6 @@ public class CommandClaimBuyBlocks extends BaseCommand {
}
final double totalCost = blockCount * economyBlockCost;
final int newClaimBlockTotal = playerData.getAccruedClaimBlocks() + blockCount;
if (newClaimBlockTotal > playerData.getMaxAccruedClaimBlocks()) {
final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.ECONOMY_BLOCK_PURCHASE_LIMIT, ImmutableMap.of(
"total", newClaimBlockTotal,
"limit", playerData.getMaxAccruedClaimBlocks()));
GriefDefenderPlugin.sendMessage(player, message);
return;
}
final EconomyResponse result = economy.withdrawPlayer(player, totalCost);
if (!result.transactionSuccess()) {
@ -121,7 +110,8 @@ public class CommandClaimBuyBlocks extends BaseCommand {
return;
}
playerData.addAccruedClaimBlocks(blockCount);
final int bonusTotal = playerData.getBonusClaimBlocks();
playerData.setBonusClaimBlocks(bonusTotal + blockCount);
playerData.getStorageData().save();
final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.ECONOMY_BLOCK_PURCHASE_CONFIRMATION, ImmutableMap.of(

View File

@ -10,7 +10,6 @@ import com.google.common.collect.ImmutableMap;
import com.griefdefender.GDPlayerData;
import com.griefdefender.GriefDefenderPlugin;
import com.griefdefender.cache.MessageCache;
import com.griefdefender.claim.GDClaim;
import com.griefdefender.configuration.MessageStorage;
import com.griefdefender.permission.GDPermissions;
import com.griefdefender.text.action.GDCallbackHolder;
@ -40,7 +39,6 @@ public class CommandGiveBlocks extends BaseCommand {
@Subcommand("giveblocks")
public void execute(Player src, OfflinePlayer targetPlayer, int amount) {
final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(src.getWorld(), src.getUniqueId());
final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAt(src.getLocation());
int availableBlocks = playerData.getAccruedClaimBlocks() + playerData.getBonusClaimBlocks();
if (amount > availableBlocks) {
TextAdapter.sendComponent(src, MessageStorage.MESSAGE_DATA.getMessage(MessageStorage.COMMAND_GIVEBLOCKS_NOT_ENOUGH,
@ -56,13 +54,13 @@ public class CommandGiveBlocks extends BaseCommand {
.append("\n[")
.append("Confirm", TextColor.GREEN)
.append("]\n")
.clickEvent(ClickEvent.runCommand(GDCallbackHolder.getInstance().createCallbackRunCommand(createConfirmationConsumer(src, targetPlayer, claim, amount))))
.clickEvent(ClickEvent.runCommand(GDCallbackHolder.getInstance().createCallbackRunCommand(createConfirmationConsumer(src, targetPlayer, amount))))
.hoverEvent(HoverEvent.showText(MessageCache.getInstance().UI_CLICK_CONFIRM)).build())
.build();
TextAdapter.sendComponent(src, confirmationText);
}
private static Consumer<CommandSender> createConfirmationConsumer(Player src, OfflinePlayer targetPlayer, GDClaim claim, int amount) {
private static Consumer<CommandSender> createConfirmationConsumer(Player src, OfflinePlayer targetPlayer, int amount) {
return confirm -> {
final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(src.getWorld(), src.getUniqueId());
final int accruedTotal = playerData.getAccruedClaimBlocks();
@ -87,7 +85,7 @@ public class CommandGiveBlocks extends BaseCommand {
if (targetPlayer.isOnline()) {
final Component targetMessage = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.COMMAND_GIVEBLOCKS_RECEIVED,
ImmutableMap.of("amount", TextComponent.of(amount, TextColor.GOLD),
"player", claim.getOwnerName().color(TextColor.AQUA)));
"player", TextComponent.of(src.getName(), TextColor.AQUA)));
TextAdapter.sendComponent((Player) targetPlayer, targetMessage);
}
};

View File

@ -114,6 +114,7 @@ public class MessageStorage {
public static final String CLAIM_FAREWELL_INVALID = "claim-farewell-invalid";
public static final String CLAIM_GREETING = "claim-greeting";
public static final String CLAIM_LAST_ACTIVE = "claim-last-active";
public static final String CLAIM_MODE_START = "claim-mode-start";
public static final String CLAIM_NAME = "claim-name";
public static final String CLAIM_OWNER_ONLY = "claim-owner-only";
public static final String CLAIM_PROTECTED_ENTITY = "claim-protected-entity";

View File

@ -86,14 +86,14 @@ public class CommonEntityEventHandler {
this.storage = GriefDefenderPlugin.getInstance().dataStore;
}
public void onEntityMove(Event event, Location fromLocation, Location toLocation, Entity targetEntity){
public boolean onEntityMove(Event event, Location fromLocation, Location toLocation, Entity targetEntity){
final Vector3i fromPos = VecHelper.toVector3i(fromLocation);
final Vector3i toPos = VecHelper.toVector3i(toLocation);
if (fromPos.equals(toPos)) {
return;
return true;
}
if ((!GDFlags.ENTER_CLAIM && !GDFlags.EXIT_CLAIM)) {
return;
return true;
}
final Player player = targetEntity instanceof Player ? (Player) targetEntity : null;
@ -108,12 +108,12 @@ public class CommonEntityEventHandler {
}
final World world = targetEntity.getWorld();
if (!GriefDefenderPlugin.getInstance().claimsEnabledForWorld(world.getUID())) {
return;
return true;
}
final boolean enterBlacklisted = GriefDefenderPlugin.isSourceIdBlacklisted(Flags.ENTER_CLAIM.getName(), targetEntity, world.getUID());
final boolean exitBlacklisted = GriefDefenderPlugin.isSourceIdBlacklisted(Flags.EXIT_CLAIM.getName(), targetEntity, world.getUID());
if (enterBlacklisted && exitBlacklisted) {
return;
return true;
}
GDTimings.ENTITY_MOVE_EVENT.startTiming();
@ -137,7 +137,7 @@ public class CommonEntityEventHandler {
}
if (fromClaim == toClaim) {
GDTimings.ENTITY_MOVE_EVENT.stopTiming();
return;
return true;
}
GDBorderClaimEvent gpEvent = new GDBorderClaimEvent(targetEntity, fromClaim, toClaim);
@ -148,7 +148,7 @@ public class CommonEntityEventHandler {
final Vehicle vehicle = (Vehicle) targetEntity;
vehicle.teleport(fromLocation);
GDTimings.ENTITY_MOVE_EVENT.stopTiming();
return;
return false;
}
if (event instanceof Cancellable) {
((Cancellable) event).setCancelled(true);
@ -157,6 +157,7 @@ public class CommonEntityEventHandler {
if (player != null && cancelMessage != null) {
TextAdapter.sendComponent(player, cancelMessage);
}
return false;
} else {
final boolean showGpPrefix = GriefDefenderPlugin.getGlobalConfig().getConfig().message.enterExitShowGdPrefix;
user.getInternalPlayerData().lastClaim = new WeakReference<>(toClaim);
@ -177,7 +178,7 @@ public class CommonEntityEventHandler {
}
Component farewellMessage = gpEvent.getExitMessage().orElse(null);
if (farewellMessage != null && !farewellMessage.equals(TextComponent.empty()) && !farewellMessage.equals("")) {
if (farewellMessage != null && !farewellMessage.equals(TextComponent.empty())) {
ChatType chatType = gpEvent.getExitMessageChatType();
if (chatType == ChatTypes.ACTION_BAR) {
TextAdapter.sendActionBar(player, TextComponent.builder("")
@ -200,7 +201,7 @@ public class CommonEntityEventHandler {
}
GDTimings.ENTITY_MOVE_EVENT.stopTiming();
return;
return true;
}
if (fromClaim != toClaim) {
@ -239,20 +240,20 @@ public class CommonEntityEventHandler {
final Vehicle vehicle = (Vehicle) targetEntity;
vehicle.teleport(fromLocation);
GDTimings.ENTITY_MOVE_EVENT.stopTiming();
return;
return false;
}
if (event instanceof Cancellable) {
((Cancellable) event).setCancelled(true);
}
GDTimings.ENTITY_MOVE_EVENT.stopTiming();
return;
return false;
}
if (user != null) {
final boolean showGpPrefix = GriefDefenderPlugin.getGlobalConfig().getConfig().message.enterExitShowGdPrefix;
user.getInternalPlayerData().lastClaim = new WeakReference<>(toClaim);
Component welcomeMessage = gpEvent.getEnterMessage().orElse(null);
if (welcomeMessage != null && !welcomeMessage.equals(TextComponent.empty()) && !welcomeMessage.equals("")) {
if (welcomeMessage != null && !welcomeMessage.equals(TextComponent.empty())) {
ChatType chatType = gpEvent.getEnterMessageChatType();
if (chatType == ChatTypes.ACTION_BAR) {
TextAdapter.sendActionBar(player, TextComponent.builder("")
@ -268,7 +269,7 @@ public class CommonEntityEventHandler {
}
Component farewellMessage = gpEvent.getExitMessage().orElse(null);
if (farewellMessage != null && !farewellMessage.equals(TextComponent.empty()) && !farewellMessage.equals("")) {
if (farewellMessage != null && !farewellMessage.equals(TextComponent.empty())) {
ChatType chatType = gpEvent.getExitMessageChatType();
if (chatType == ChatTypes.ACTION_BAR) {
TextAdapter.sendActionBar(player, TextComponent.builder("")
@ -294,6 +295,7 @@ public class CommonEntityEventHandler {
}
GDTimings.ENTITY_MOVE_EVENT.stopTiming();
return true;
}
private void checkPlayerFlight(Player player, GDPlayerData playerData, GDClaim fromClaim, GDClaim toClaim) {

View File

@ -299,18 +299,6 @@ public class PlayerEventHandler implements Listener {
"block-amount", playerData.getRemainingClaimBlocks()));
GriefDefenderPlugin.sendMessage(player, message);
}
} else if (!playerData.claimMode) {
if (playerData.lastShovelLocation != null) {
playerData.revertActiveVisual(player);
// check for any active WECUI visuals
if (this.worldEditProvider != null) {
this.worldEditProvider.revertVisuals(player, playerData, null);
}
}
playerData.lastShovelLocation = null;
playerData.endShovelLocation = null;
playerData.claimResizing = null;
playerData.shovelMode = ShovelTypes.BASIC;
}
GDTimings.PLAYER_CHANGE_HELD_ITEM_EVENT.stopTiming();
}
@ -790,8 +778,15 @@ public class PlayerEventHandler implements Listener {
final TeleportCause type = event.getCause();
final Location sourceLocation = event.getFrom();
final Location destination = event.getTo();
final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId());
final GDClaim sourceClaim = this.dataStore.getClaimAtPlayer(playerData, player.getLocation());
// Handle BorderClaimEvent
if (!CommonEntityEventHandler.getInstance().onEntityMove(event, sourceLocation, destination, player)) {
event.setCancelled(true);
GDTimings.ENTITY_TELEPORT_EVENT.stopTiming();
return;
}
if (sourceClaim != null) {
final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.PERMISSION_PORTAL_EXIT,
@ -817,7 +812,6 @@ public class PlayerEventHandler implements Listener {
}
// check if destination world is enabled
final Location destination = event.getTo();
final World toWorld = destination.getWorld();
if (!GriefDefenderPlugin.getInstance().claimsEnabledForWorld(toWorld.getUID())) {
GDTimings.ENTITY_TELEPORT_EVENT.stopTiming();
@ -889,6 +883,19 @@ public class PlayerEventHandler implements Listener {
}
private void onPlayerHandleClaimCreateAction(PlayerInteractEvent event, Block clickedBlock, Player player, ItemStack itemInHand, GDPlayerData playerData) {
if (player.isSneaking() && (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK)) {
playerData.revertActiveVisual(player);
// check for any active WECUI visuals
if (this.worldEditProvider != null) {
this.worldEditProvider.revertVisuals(player, playerData, null);
}
playerData.lastShovelLocation = null;
playerData.endShovelLocation = null;
playerData.claimResizing = null;
playerData.shovelMode = ShovelTypes.BASIC;
return;
}
GDTimings.PLAYER_HANDLE_SHOVEL_ACTION.startTiming();
Location location = clickedBlock != null ? clickedBlock.getLocation() : null;
@ -1068,11 +1075,18 @@ public class PlayerEventHandler implements Listener {
}
}
playerData.revertActiveVisual(player);
playerData.lastShovelLocation = location;
final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.CLAIM_START,
ImmutableMap.of(
"type", PlayerUtil.getInstance().getClaimTypeComponentFromShovel(playerData.shovelMode)));
Component message = null;
if (playerData.claimMode) {
message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.CLAIM_MODE_START,
ImmutableMap.of(
"type", PlayerUtil.getInstance().getClaimTypeComponentFromShovel(playerData.shovelMode)));
} else {
message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.CLAIM_START,
ImmutableMap.of(
"type", PlayerUtil.getInstance().getClaimTypeComponentFromShovel(playerData.shovelMode),
"item", ItemTypeRegistryModule.getInstance().getNMSKey(event.getItem())));
}
GriefDefenderPlugin.sendMessage(player, message);
ClaimVisual visual = ClaimVisual.fromClick(location, location.getBlockY(), PlayerUtil.getInstance().getVisualTypeFromShovel(playerData.shovelMode), player, playerData);
visual.apply(player, false);
@ -1175,9 +1189,17 @@ public class PlayerEventHandler implements Listener {
if (claim.isSubdivision()) {
GriefDefenderPlugin.sendMessage(player, MessageCache.getInstance().RESIZE_OVERLAP_SUBDIVISION);
} else {
final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.CLAIM_START,
ImmutableMap.of(
"type", playerData.shovelMode.getName()));
Component message = null;
if (playerData.claimMode) {
message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.CLAIM_START,
ImmutableMap.of(
"type", playerData.shovelMode.getName()));
} else {
message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.CLAIM_START,
ImmutableMap.of(
"type", playerData.shovelMode.getName(),
"item", ItemTypeRegistryModule.getInstance().getNMSKey(event.getItem())));
}
GriefDefenderPlugin.sendMessage(player, message);
playerData.lastShovelLocation = location;
playerData.claimSubdividing = claim;
@ -1417,6 +1439,9 @@ public class PlayerEventHandler implements Listener {
private boolean investigateClaim(PlayerInteractEvent event, Player player, Block clickedBlock, ItemStack itemInHand) {
final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId());
if (playerData.claimMode && (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK)) {
if (player.isSneaking()) {
return true;
}
// claim mode inspects with left-click
return false;
}
@ -1425,17 +1450,6 @@ public class PlayerEventHandler implements Listener {
}
GDTimings.PLAYER_INVESTIGATE_CLAIM.startTiming();
if (event.getAction() == Action.LEFT_CLICK_AIR || event.getAction() == Action.LEFT_CLICK_BLOCK) {
if (!playerData.claimMode || !playerData.visualBlocks.isEmpty()) {
playerData.revertActiveVisual(player);
if (this.worldEditProvider != null) {
this.worldEditProvider.revertVisuals(player, playerData, null);
}
GDTimings.PLAYER_INVESTIGATE_CLAIM.stopTiming();
return false;
}
}
GDClaim claim = null;
if (event.getAction() == Action.LEFT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_AIR) {
claim = this.findNearbyClaim(player);
@ -1489,7 +1503,6 @@ public class PlayerEventHandler implements Listener {
if (claim.getUniqueId() != playerData.visualClaimId) {
int height = playerData.lastValidInspectLocation != null ? playerData.lastValidInspectLocation.getBlockY() : clickedBlock.getLocation().getBlockY();
playerData.revertActiveVisual(player);
claim.getVisualizer().createClaimBlockVisuals(playerData.getClaimCreateMode() == CreateModeTypes.VOLUME ? height : PlayerUtil.getInstance().getEyeHeight(player), player.getLocation(), playerData);
claim.getVisualizer().apply(player);
if (this.worldEditProvider != null) {

View File

@ -94,7 +94,6 @@
"name": "com.flowpowered:flow-math:1.0.3",
"sha1": "d98020239e5015091ad3be927cef9dea0d61a234",
"path": "com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar",
"relocate": "com.flowpowered:flowpowered",
"url": "https://repo1.maven.org/maven2/com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar"
},
{
@ -206,70 +205,60 @@
"name": "net.kyori:event-api:3.0.0",
"sha1": "4e207f07d2adaa15e174a085f65bc6ae5a81029e",
"path": "net/kyori/event-api/3.0.0/event-api-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-api/3.0.0/event-api-3.0.0.jar"
},
{
"name": "net.kyori:event-method:3.0.0",
"sha1": "85fe9bbf8ebadde4c82602af29352ba5db06e8e5",
"path": "net/kyori/event-method/3.0.0/event-method-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method/3.0.0/event-method-3.0.0.jar"
},
{
"name": "net.kyori:event-method-asm:3.0.0",
"sha1": "69113430c1ba05c9d9fa6e48028edd53e3e16723",
"path": "net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar"
},
{
"name": "net.kyori:text-adapter-bukkit:3.0.3",
"sha1": "37033ab1173d73a62a087cbd5c8d356774f4cee3",
"path": "net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar"
},
{
"name": "net.kyori:text-adapter-bungeecord:3.0.2",
"sha1": "d57c245bdc182bdf37d1b7a32691859add018a2b",
"path": "net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar"
},
{
"name": "net.kyori:text-adapter-spongeapi:3.0.2",
"sha1": "8562afb1594a9d34b891f23add503741d0656873",
"path": "net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar"
},
{
"name": "net.kyori:text-api:3.0.2",
"sha1": "608cdb44a74bbd68745941760df730ed55e4b47c",
"path": "net/kyori/text-api/3.0.2/text-api-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-api/3.0.2/text-api-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-gson:3.0.2",
"sha1": "9ac22f04f3504c52ff1618c5a8d9a6145d8d9c9e",
"path": "net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-legacy:3.0.2",
"sha1": "8acbfb36356259273a8e3a15782e4f2980375bc5",
"path": "net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-plain:3.0.2",
"sha1": "8d60703f579019f7c26959d2e46501c3d389b48d",
"path": "net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar"
}
]

View File

@ -100,7 +100,6 @@
"name": "com.flowpowered:flow-math:1.0.3",
"sha1": "d98020239e5015091ad3be927cef9dea0d61a234",
"path": "com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar",
"relocate": "com.flowpowered:flowpowered",
"url": "https://repo1.maven.org/maven2/com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar"
},
{
@ -212,70 +211,60 @@
"name": "net.kyori:event-api:3.0.0",
"sha1": "4e207f07d2adaa15e174a085f65bc6ae5a81029e",
"path": "net/kyori/event-api/3.0.0/event-api-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-api/3.0.0/event-api-3.0.0.jar"
},
{
"name": "net.kyori:event-method:3.0.0",
"sha1": "85fe9bbf8ebadde4c82602af29352ba5db06e8e5",
"path": "net/kyori/event-method/3.0.0/event-method-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method/3.0.0/event-method-3.0.0.jar"
},
{
"name": "net.kyori:event-method-asm:3.0.0",
"sha1": "69113430c1ba05c9d9fa6e48028edd53e3e16723",
"path": "net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar"
},
{
"name": "net.kyori:text-adapter-bukkit:3.0.3",
"sha1": "37033ab1173d73a62a087cbd5c8d356774f4cee3",
"path": "net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar"
},
{
"name": "net.kyori:text-adapter-bungeecord:3.0.2",
"sha1": "d57c245bdc182bdf37d1b7a32691859add018a2b",
"path": "net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar"
},
{
"name": "net.kyori:text-adapter-spongeapi:3.0.2",
"sha1": "8562afb1594a9d34b891f23add503741d0656873",
"path": "net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar"
},
{
"name": "net.kyori:text-api:3.0.2",
"sha1": "608cdb44a74bbd68745941760df730ed55e4b47c",
"path": "net/kyori/text-api/3.0.2/text-api-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-api/3.0.2/text-api-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-gson:3.0.2",
"sha1": "9ac22f04f3504c52ff1618c5a8d9a6145d8d9c9e",
"path": "net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-legacy:3.0.2",
"sha1": "8acbfb36356259273a8e3a15782e4f2980375bc5",
"path": "net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-plain:3.0.2",
"sha1": "8d60703f579019f7c26959d2e46501c3d389b48d",
"path": "net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar"
}
]

View File

@ -100,7 +100,6 @@
"name": "com.flowpowered:flow-math:1.0.3",
"sha1": "d98020239e5015091ad3be927cef9dea0d61a234",
"path": "com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar",
"relocate": "com.flowpowered:flowpowered",
"url": "https://repo1.maven.org/maven2/com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar"
},
{
@ -212,70 +211,60 @@
"name": "net.kyori:event-api:3.0.0",
"sha1": "4e207f07d2adaa15e174a085f65bc6ae5a81029e",
"path": "net/kyori/event-api/3.0.0/event-api-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-api/3.0.0/event-api-3.0.0.jar"
},
{
"name": "net.kyori:event-method:3.0.0",
"sha1": "85fe9bbf8ebadde4c82602af29352ba5db06e8e5",
"path": "net/kyori/event-method/3.0.0/event-method-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method/3.0.0/event-method-3.0.0.jar"
},
{
"name": "net.kyori:event-method-asm:3.0.0",
"sha1": "69113430c1ba05c9d9fa6e48028edd53e3e16723",
"path": "net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar"
},
{
"name": "net.kyori:text-adapter-bukkit:3.0.3",
"sha1": "37033ab1173d73a62a087cbd5c8d356774f4cee3",
"path": "net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar"
},
{
"name": "net.kyori:text-adapter-bungeecord:3.0.2",
"sha1": "d57c245bdc182bdf37d1b7a32691859add018a2b",
"path": "net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar"
},
{
"name": "net.kyori:text-adapter-spongeapi:3.0.2",
"sha1": "8562afb1594a9d34b891f23add503741d0656873",
"path": "net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar"
},
{
"name": "net.kyori:text-api:3.0.2",
"sha1": "608cdb44a74bbd68745941760df730ed55e4b47c",
"path": "net/kyori/text-api/3.0.2/text-api-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-api/3.0.2/text-api-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-gson:3.0.2",
"sha1": "9ac22f04f3504c52ff1618c5a8d9a6145d8d9c9e",
"path": "net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-legacy:3.0.2",
"sha1": "8acbfb36356259273a8e3a15782e4f2980375bc5",
"path": "net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-plain:3.0.2",
"sha1": "8d60703f579019f7c26959d2e46501c3d389b48d",
"path": "net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar"
}
]

View File

@ -100,7 +100,6 @@
"name": "com.flowpowered:flow-math:1.0.3",
"sha1": "d98020239e5015091ad3be927cef9dea0d61a234",
"path": "com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar",
"relocate": "com.flowpowered:flowpowered",
"url": "https://repo1.maven.org/maven2/com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar"
},
{
@ -212,70 +211,60 @@
"name": "net.kyori:event-api:3.0.0",
"sha1": "4e207f07d2adaa15e174a085f65bc6ae5a81029e",
"path": "net/kyori/event-api/3.0.0/event-api-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-api/3.0.0/event-api-3.0.0.jar"
},
{
"name": "net.kyori:event-method:3.0.0",
"sha1": "85fe9bbf8ebadde4c82602af29352ba5db06e8e5",
"path": "net/kyori/event-method/3.0.0/event-method-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method/3.0.0/event-method-3.0.0.jar"
},
{
"name": "net.kyori:event-method-asm:3.0.0",
"sha1": "69113430c1ba05c9d9fa6e48028edd53e3e16723",
"path": "net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar"
},
{
"name": "net.kyori:text-adapter-bukkit:3.0.3",
"sha1": "37033ab1173d73a62a087cbd5c8d356774f4cee3",
"path": "net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar"
},
{
"name": "net.kyori:text-adapter-bungeecord:3.0.2",
"sha1": "d57c245bdc182bdf37d1b7a32691859add018a2b",
"path": "net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar"
},
{
"name": "net.kyori:text-adapter-spongeapi:3.0.2",
"sha1": "8562afb1594a9d34b891f23add503741d0656873",
"path": "net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar"
},
{
"name": "net.kyori:text-api:3.0.2",
"sha1": "608cdb44a74bbd68745941760df730ed55e4b47c",
"path": "net/kyori/text-api/3.0.2/text-api-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-api/3.0.2/text-api-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-gson:3.0.2",
"sha1": "9ac22f04f3504c52ff1618c5a8d9a6145d8d9c9e",
"path": "net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-legacy:3.0.2",
"sha1": "8acbfb36356259273a8e3a15782e4f2980375bc5",
"path": "net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-plain:3.0.2",
"sha1": "8d60703f579019f7c26959d2e46501c3d389b48d",
"path": "net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar"
}
]

View File

@ -100,7 +100,6 @@
"name": "com.flowpowered:flow-math:1.0.3",
"sha1": "d98020239e5015091ad3be927cef9dea0d61a234",
"path": "com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar",
"relocate": "com.flowpowered:flowpowered",
"url": "https://repo1.maven.org/maven2/com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar"
},
{
@ -212,70 +211,60 @@
"name": "net.kyori:event-api:3.0.0",
"sha1": "4e207f07d2adaa15e174a085f65bc6ae5a81029e",
"path": "net/kyori/event-api/3.0.0/event-api-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-api/3.0.0/event-api-3.0.0.jar"
},
{
"name": "net.kyori:event-method:3.0.0",
"sha1": "85fe9bbf8ebadde4c82602af29352ba5db06e8e5",
"path": "net/kyori/event-method/3.0.0/event-method-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method/3.0.0/event-method-3.0.0.jar"
},
{
"name": "net.kyori:event-method-asm:3.0.0",
"sha1": "69113430c1ba05c9d9fa6e48028edd53e3e16723",
"path": "net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar"
},
{
"name": "net.kyori:text-adapter-bukkit:3.0.3",
"sha1": "37033ab1173d73a62a087cbd5c8d356774f4cee3",
"path": "net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar"
},
{
"name": "net.kyori:text-adapter-bungeecord:3.0.2",
"sha1": "d57c245bdc182bdf37d1b7a32691859add018a2b",
"path": "net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar"
},
{
"name": "net.kyori:text-adapter-spongeapi:3.0.2",
"sha1": "8562afb1594a9d34b891f23add503741d0656873",
"path": "net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar"
},
{
"name": "net.kyori:text-api:3.0.2",
"sha1": "608cdb44a74bbd68745941760df730ed55e4b47c",
"path": "net/kyori/text-api/3.0.2/text-api-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-api/3.0.2/text-api-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-gson:3.0.2",
"sha1": "9ac22f04f3504c52ff1618c5a8d9a6145d8d9c9e",
"path": "net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-legacy:3.0.2",
"sha1": "8acbfb36356259273a8e3a15782e4f2980375bc5",
"path": "net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-plain:3.0.2",
"sha1": "8d60703f579019f7c26959d2e46501c3d389b48d",
"path": "net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar"
}
]

View File

@ -94,7 +94,6 @@
"name": "com.flowpowered:flow-math:1.0.3",
"sha1": "d98020239e5015091ad3be927cef9dea0d61a234",
"path": "com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar",
"relocate": "com.flowpowered:flowpowered",
"url": "https://repo1.maven.org/maven2/com/flowpowered/flow-math/1.0.3/flow-math-1.0.3.jar"
},
{
@ -206,70 +205,60 @@
"name": "net.kyori:event-api:3.0.0",
"sha1": "4e207f07d2adaa15e174a085f65bc6ae5a81029e",
"path": "net/kyori/event-api/3.0.0/event-api-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-api/3.0.0/event-api-3.0.0.jar"
},
{
"name": "net.kyori:event-method:3.0.0",
"sha1": "85fe9bbf8ebadde4c82602af29352ba5db06e8e5",
"path": "net/kyori/event-method/3.0.0/event-method-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method/3.0.0/event-method-3.0.0.jar"
},
{
"name": "net.kyori:event-method-asm:3.0.0",
"sha1": "69113430c1ba05c9d9fa6e48028edd53e3e16723",
"path": "net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/event-method-asm/3.0.0/event-method-asm-3.0.0.jar"
},
{
"name": "net.kyori:text-adapter-bukkit:3.0.3",
"sha1": "37033ab1173d73a62a087cbd5c8d356774f4cee3",
"path": "net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bukkit/3.0.3/text-adapter-bukkit-3.0.3.jar"
},
{
"name": "net.kyori:text-adapter-bungeecord:3.0.2",
"sha1": "d57c245bdc182bdf37d1b7a32691859add018a2b",
"path": "net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-bungeecord/3.0.2/text-adapter-bungeecord-3.0.2.jar"
},
{
"name": "net.kyori:text-adapter-spongeapi:3.0.2",
"sha1": "8562afb1594a9d34b891f23add503741d0656873",
"path": "net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-adapter-spongeapi/3.0.2/text-adapter-spongeapi-3.0.2.jar"
},
{
"name": "net.kyori:text-api:3.0.2",
"sha1": "608cdb44a74bbd68745941760df730ed55e4b47c",
"path": "net/kyori/text-api/3.0.2/text-api-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-api/3.0.2/text-api-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-gson:3.0.2",
"sha1": "9ac22f04f3504c52ff1618c5a8d9a6145d8d9c9e",
"path": "net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-gson/3.0.2/text-serializer-gson-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-legacy:3.0.2",
"sha1": "8acbfb36356259273a8e3a15782e4f2980375bc5",
"path": "net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-legacy/3.0.2/text-serializer-legacy-3.0.2.jar"
},
{
"name": "net.kyori:text-serializer-plain:3.0.2",
"sha1": "8d60703f579019f7c26959d2e46501c3d389b48d",
"path": "net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar",
"relocate": "net.kyori:kyori",
"url": "https://repo1.maven.org/maven2/net/kyori/text-serializer-plain/3.0.2/text-serializer-plain-3.0.2.jar"
}
]

View File

@ -30,11 +30,11 @@ GriefDefender {
flag-group="Gets/Sets flag permission for a group in claim you are standing in."
flag-player="Gets/Sets flag permission for a player in claim you are standing in."
flag-reset="Resets a claim to flag defaults."
mode-admin="Switches the shovel tool to administrative claims mode"
mode-basic="Switches the shovel tool back to basic claims mode."
mode-nature="Switches the shovel tool to restoration mode."
mode-subdivision="Switches the shovel tool to subdivision mode, used to subdivide your claims."
mode-town="Switches the shovel tool to town claims mode."
mode-admin="Switches the claim tool to administrative claims mode"
mode-basic="Switches the claim tool back to basic claims mode."
mode-nature="Switches the claim tool to restoration mode."
mode-subdivision="Switches the claim tool to subdivision mode, used to subdivide your claims."
mode-town="Switches the claim tool to town claims mode."
option-claim="Gets/Sets claim options in the claim you are standing in."
permission-group="Sets a permission on a group with a claim context."
permission-player="Sets a permission on a player with a claim context."
@ -99,6 +99,7 @@ GriefDefender {
claim-greeting-clear="&aThe claim greeting message has been cleared."
claim-ignore="&aNow ignoring claims."
claim-last-active="&aClaim last active &6{date}&a."
claim-mode-start="{type}&a corner set! Right click again at the opposite corner to claim a rectangle of land. To cancel, type &f/claim&a to exit claim mode."
claim-name="&aSet claim name to {name}&a."
claim-no-claims="&cYou don't have any land claims."
claim-no-set-home="&cYou must be trusted in order to use /sethome here."
@ -115,7 +116,7 @@ GriefDefender {
claim-size-need-blocks-2d="&cYou don't have enough blocks for this claim size.\nYou need &a{block-amount}&c more blocks."
claim-size-need-blocks-3d="&cYou don't have enough blocks for this claim size.\nYou need &a{chunk-amount}&c more chunks. &f({block-amount})"
claim-size-too-small="&cThe selected claim size of &a{width}&fx&a{length}&c would be too small. A claim must be at least &a{min-width}&fx&a{min-length}&c in size."
claim-start="{type}&a corner set! Use the shovel again at the opposite corner to claim a rectangle of land. To cancel, put your shovel away."
claim-start="{type}&a corner set! Use the {item}&a again at the opposite corner to claim a rectangle of land. To cancel, put your {item}&a away."
claim-too-far="&cThat's too far away."
claim-transfer-exceeds-limit="&cClaim could not be transferred as it would exceed the new owner's creation limit."
claim-transfer-success="&aClaim transferred."
@ -205,7 +206,7 @@ GriefDefender {
create-failed-result="&aThe claim failed to be created due to : &6{reason}&a."
create-insufficient-blocks-2d="&cYou don't have enough blocks to claim this area.\nYou need &a{block-amount}&c more blocks."
create-insufficient-blocks-3d="&cYou don't have enough blocks to claim this area.\nYou need &a{chunk-amount}&c more chunks. &f({block-amount})"
create-overlap="&cYou can't create a claim here because it would overlap your other claim. Use &f/abandonclaim&c to delete it, or use your shovel at a corner to resize it."
create-overlap="&cYou can't create a claim here because it would overlap an existing claim."
create-overlap-player="&cYou can't create a claim here because it would overlap &6{player}&c's claim."
create-overlap-short="&cYour selected area overlaps an existing claim."
create-subdivision-fail="&cNo claim exists at selected corner. Please click a valid block location within parent claim in order to create your subdivision."
@ -421,7 +422,7 @@ GriefDefender {
mode-admin="&aAdministrative claims mode active. Any claims created will be free and editable by other administrators."
mode-basic="&aBasic claim creation mode enabled."
mode-nature="&aReady to restore claim! Right click on a block to restore, and use &f/modebasic&c to stop."
mode-subdivision="&aSubdivision mode. Use your shovel to create subdivisions in your existing claims. Use &f/modebasic&a to exit."
mode-subdivision="&aSubdivision creation mode enabled. Use &f/modebasic&a to exit."
mode-town="&aTown creation mode enabled."
option-description-abandon-delay="&aThe amount of days before a newly created claim can be abandoned."
option-description-abandon-return-ratio="&aThe portion of basic claim blocks returned to a player when a claim is abandoned."
@ -559,9 +560,9 @@ GriefDefender {
registry-entity-not-found="&cThe entity {id}&c could not be found in registry."
registry-item-not-found="&cThe item {id}&c could not be found in registry."
resize-overlap="&cCan't resize here because it would overlap another nearby claim."
resize-overlap-subdivision="&cYou can't create a subdivision here because it would overlap another subdivision. Consider &f/abandon&c to delete it, or use your shovel at a corner to resize it."
resize-overlap-subdivision="&cYou can't create a subdivision here because it would overlap an existing subdivision."
resize-same-location="&cYou must select a different block location to resize claim."
resize-start="&aResizing claim. Use your shovel again at the new location for this corner."
resize-start="&aResizing claim. Use your tool again at the new location for this corner."
resize-success-2d="&aClaim resized. You have &6{block-amount} &amore blocks remaining."
resize-success-3d="&aClaim resized. You have &6{chunk-amount} &amore chunks remaining. &f({block-amount})"
result-type-change-deny="&cYou cannot change a claim to {type}."

View File

@ -1,184 +1,192 @@
GriefDefender {
descriptions {
abandon-all="Abandonne l'ENSEMBLE de tes protections."
abandon-claim="Abandonne une protection."
abandon-top="Abandonne la protection de plus haut niveau."
abandon-all="Abandonne l'ENSEMBLE de tes terrains."
abandon-claim="Abandonne un terrain."
abandon-top="Abandonne le terrain de plus haut niveau."
buy-blocks="Achète des blocs supplémentaires avec l'argent du serveur.\nNote: Nécessite un plug-in d'économie."
callback="Exécute un rappel définis comme faisant partie d'un objet textuel. Utilisée principalement pour un usage interne."
claim-bank="Utilisée pour retirer ou déposer de l'argent pour une utilisation dans la protection."
claim-clear="Permet de nettoyer les entités dans une ou plusieurs protection(s)."
claim-debug="Active/Désactive le mode débug pour les flags de protection."
claim-farewell="Définis le message de sortie de la protection."
claim-greeting="Définis le message d'accueil de la protection."
claim-ignore="Active/Désactive le mode pour ignorer les protections."
claim-info="Affiche l'ensemble des informations connues pour la protection dans laquelle tu te trouves.."
claim-inherit="Active/Désactive l'héritage des permissions depuis une protection parente."
claim-list="Liste l'ensemble des protections connues dans la zone."
claim-name="Définis le nom de la protection."
claim-restore="Restaure la protection à son état naturel. À utiliser avec prudence."
callback="Exécute un rappel défini comme faisant partie d'un objet textuel. Utilisée principalement pour un usage interne."
claim-bank="Utilisée pour retirer ou déposer de l'argent pour une utilisation dans le terrain."
claim-clear="Permet de nettoyer les entités dans un ou plusieurs terrain(s)."
claim-debug="Active/Désactive le mode débug pour les marques du terrain."
claim-farewell="Définis le message de sortie du terrain."
claim-greeting="Définis le message d'accueil du terrain."
claim-ignore="Active/Désactive le mode pour ignorer les terrains."
claim-info="Affiche l'ensemble des informations connues pour le terrain dans lequel tu te trouves."
claim-inherit="Active/Désactive l'héritage des permissions depuis un terrain parent."
claim-list="Liste l'ensemble des terrains connus dans la zone."
claim-name="Définis le nom du terrain."
claim-restore="Restaure le terrain à son état naturel. À utiliser avec prudence."
claim-setspawn="Définis le point d'apparition pour les joueurs."
claim-spawn="Te téléportes au point d'apparition si disponible."
claim-transfer="Transfert une protection basique ou admin à un autre joueur."
claim-worldedit="Utilise la sélection WordEdit pour créer une protection."
cuboid="Active/Désactive le mode protection cuboid."
claim-spawn="Te téléporte au point d'apparition si disponible."
claim-transfer="Transfert un terrain basique ou admin à un autre joueur."
claim-worldedit="Utilise la sélection WorldEdit pour créer un terrain."
cuboid="Active/Désactive le mode terrain cubique."
debug="Capture l'ensemble des actions GD à des fins de débuggage."
delete-all="Supprime l'ensemble des protections d'un autre joueur."
delete-all-admin="supprime l'ensemble des protections admin."
delete-claim="Supprime la protection dans laquelle tu es, même si elle ne t'appartiens pas."
delete-top="Supprime la protection de plus haut niveau dans laquelle tu es, même si elle ne t'appartiens pas."
flag-claim="Récupère/Définis les flags de la protection dans laquelle tu es."
flag-group="Récupère/Définis les flags de permission pour un groupe dans la protection dans laquelle tu es."
flag-player="Récupère/Définis les flags de permission pour un joueur dans la protection dans laquelle tu es."
flag-reset="Remets par défaut les flags dans une protection."
mode-admin="Bascule l'outil pelle en mode protection admin."
mode-basic="Re-bascule l'outil pelle en mode protection basique."
delete-all="Supprime l'ensemble des terrains d'un autre joueur."
delete-all-admin="Supprime l'ensemble des terrains admin."
delete-claim="Supprime la protection dans laquelle tu es, même s'il ne t'appartiens pas."
delete-top="Supprime le terrain de plus haut niveau dans lequel tu es, même s'il ne t'appartiens pas."
flag-claim="Récupère/Définis les marques du terrain dans lequel tu es."
flag-group="Récupère/Définis les marques de permission pour un groupe dans le terrain dans lequel tu es."
flag-player="Récupère/Définis les marques de permission pour un joueur dans le terrain dans lequel tu es."
flag-reset="Remets par défaut les marques dans le terrain."
mode-admin="Bascule l'outil pelle en mode terrain admin."
mode-basic="Re-bascule l'outil pelle en mode terrain basique."
mode-nature="Bascule l'outil pelle en mode restauration."
mode-subdivision="Bascule l'outil pelle en mode sous-division, utilisé pour sous-diviser les protections."
mode-town="Bascule l'outil pelle en mode protection Village."
option-claim="Récupère/Définis les options dans la protection dans laquelle tu es."
permission-group="Définis une permission sur un groupe avec un contexte de protection."
permission-player="Définis une permission sur un joueur avec un contexte de protection."
player-adjust-bonus-blocks="Mets à jour le nombre total de bloc de protection bonus pour un joueur."
mode-subdivision="Bascule l'outil pelle en mode sous-division, utilisé pour sous-diviser les terrains."
mode-town="Bascule l'outil pelle en mode terrain Village."
option-claim="Récupère/Définis les options dans le terrain dans lequel tu es."
permission-group="Définis une permission sur un groupe avec un contexte de terrain."
permission-player="Définis une permission sur un joueur avec un contexte de terrain."
player-adjust-bonus-blocks="Mets à jour le nombre total de blocs de terrain bonus pour un joueur."
player-info="Affiche les informations concernant un joueur."
player-set-accrued-blocks="Met à jour le nombre total de bloc gagné par un joueur."
player-set-accrued-blocks="Mets à jour le nombre total de blocs gagné par un joueur."
reload="Recharge la configuration des paramètres de GriefDefender."
schematic="Gère les patrons de protection. Utilises '/claimschematic create <nom>' pour créer directement une copie de la protection."
sell-blocks="Vends tes blocs de protection contre de l'argent serveur.\nNote: Nécessite un plug-in d'économie."
sell-claim="Mets en vente ta protection. Utilises /claimsell <montant>.\nNote: Nécessite un plug-in d'économie."
schematic="Gère les patrons de terrain. Utilises '/claimschematic create <nom>' pour créer directement une copie du terrain."
sell-blocks="Vends tes blocs de terrain contre de l'argent serveur.\nNote: Nécessite un plug-in d'économie."
sell-claim="Mets en vente ton terrain. Utilises /claimsell <montant>.\nNote: Nécessite un plug-in d'économie."
town-chat="Active/Désactive le chat du Village."
town-tag="Définis le blason du village."
trust-group="Donne à un groupe accès à ta protection.\nAccessor: Permet d'intéragir avec l'ensemble des blocs sans inventaire.\nContainer: Permet d'intéragir avec l'ensemble des blocs avec inventaire.\nBuilder: Permet la même chose qu'au dessus avec en plus la possibilité de placer et casser des blocs.\nManager: Permet la même chose qu'au dessus avec en plus la possibilité de gérer les paramètres de la protection."
trust-group-all="Donne à un groupe l'accès à l'ENSEMBLE de tes protections.\nAccessor: Permet d'intéragir avec l'ensemble des blocs sans inventaire.\nContainer: Permet d'intéragir avec l'ensemble des blocs avec inventaire.\nBuilder: Permet la même chose qu'au dessus avec en plus la possibilité de placer et casser des blocs.\nManager: Permet la même chose qu'au dessus avec en plus la possibilité de gérer les paramètres de la protection."
trust-player="Donne à un joueur accès à ta protection.\nAccessor: Permet d'intéragir avec l'ensemble des blocs sans inventaire.\nContainer: Permet d'intéragir avec l'ensemble des blocs avec inventaire.\nBuilder: Permet la même chose qu'au dessus avec en plus la possibilité de placer et casser des blocs.\nManager: Permet la même chose qu'au dessus avec en plus la possibilité de gérer les paramètres de la protection."
trust-player-all="Donne à un joueur accès à l'ENSEMBLE de tes protections.\nAccessor: Permet d'intéragir avec l'ensemble des blocs sans inventaire.\nContainer: Permet d'intéragir avec l'ensemble des blocs avec inventaire.\nBuilder: Permet la même chose qu'au dessus avec en plus la possibilité de placer et casser des blocs.\nManager: Permet la même chose qu'au dessus avec en plus la possibilité de gérer les paramètres de la protection."
untrust-group="Supprime les accès d'un groupe à ta protection."
untrust-group-all="Supprime les accès d'un groupe à l'ENSEMBLE de tes protections."
untrust-player="Supprime les accès d'un joueur à ta protection."
untrust-player-all="Supprime les accès d'un joueur à l'ENSEMBLE de tes protections."
trust-group="Donne à un groupe accès à ton terrain.\nAccessor: Permet d'intéragir avec l'ensemble des blocs sans inventaire.\nContainer: Permet d'intéragir avec l'ensemble des blocs avec inventaire.\nBuilder: Permet la même chose qu'au dessus avec en plus la possibilité de placer et casser des blocs.\nManager: Permet la même chose qu'au dessus avec en plus la possibilité de gérer les paramètres de la protection."
trust-group-all="Donne à un groupe l'accès à l'ENSEMBLE de tes terrains.\nAccessor: Permet d'intéragir avec l'ensemble des blocs sans inventaire.\nContainer: Permet d'intéragir avec l'ensemble des blocs avec inventaire.\nBuilder: Permet la même chose qu'au dessus avec en plus la possibilité de placer et casser des blocs.\nManager: Permet la même chose qu'au dessus avec en plus la possibilité de gérer les paramètres de la protection."
trust-player="Donne à un joueur accès à ton terrain.\nAccessor: Permet d'intéragir avec l'ensemble des blocs sans inventaire.\nContainer: Permet d'intéragir avec l'ensemble des blocs avec inventaire.\nBuilder: Permet la même chose qu'au dessus avec en plus la possibilité de placer et casser des blocs.\nManager: Permet la même chose qu'au dessus avec en plus la possibilité de gérer les paramètres de la protection."
trust-player-all="Donne à un joueur accès à l'ENSEMBLE de tes terrains.\nAccessor: Permet d'intéragir avec l'ensemble des blocs sans inventaire.\nContainer: Permet d'intéragir avec l'ensemble des blocs avec inventaire.\nBuilder: Permet la même chose qu'au dessus avec en plus la possibilité de placer et casser des blocs.\nManager: Permet la même chose qu'au dessus avec en plus la possibilité de gérer les paramètres de la protection."
untrust-group="Supprime les accès d'un groupe à ton terrain."
untrust-group-all="Supprime les accès d'un groupe à l'ENSEMBLE de tes terrains."
untrust-player="Supprime les accès d'un joueur à ton terrain."
untrust-player-all="Supprime les accès d'un joueur à l'ENSEMBLE de tes terrains."
version="Affiche les informations sur la version de GriefDefender."
}
messages {
abandon-all-warning="&6Es-tu sûr de vouloir abandonner &cTOUTES&6 tes protections ?"
abandon-claim-delay-warning="&aCette protection a été créée récemment et ne peut pas être abandonnée avec le &6{date}&a."
abandon-claim-failed="&aN'a pas réussi à abandonner la protection. Résultat de la protection était: &f{result}&a."
abandon-claim-missing="&cPas de protection trouvée. Va dans la protection que tu veux abandonner ou envisages &f/abandonall&c."
abandon-other-success="La protection de &6{player}&a a été abandonnée. &6{player}&a dispose de maintenant &6{amount}&a blocs de protection disponibles."
abandon-success="&aProtection abandonnée. Tu as maintenant &6{amount}&a blocs de protection disponibles."
abandon-top-level="&cCette protection ne peut être abandonnée car elle contient une ou plusieurs protection(s) enfant(s). Pour abandonner une protection avec enfant, tu dois utiliser &f/abandontop&c à la place."
abandon-town-children="&cTu n'as pas la permission pour abandonner un village contenant des protections enfants qui ne t'appartiennent pas. Utilises &f/ignoreclaims&c ou fais en sorte que le propriétaire des protections enfant les abandonnent d'abord. Si tu veux abandonner le village sans affecter les protections enfant, utilises &f/abandon&c à la place."
abandon-warning="&6Es-tu sûr de vouloir abandonner cette protection ? Elle ne sera plus protégée contre les dégâts."
adjust-accrued-blocks-success="&aAjustement du nombre de blocs gagnés par &6{player}&a de &6{amount}&a. Nouveau total de blocs gagnés: &6{total}&a."
adjust-bonus-blocks-success="&aAjustement du nombre de blocs bonus &6{player}&a de &6{amount}&a. Nouveau total de blocs bonus: &6{total}&a."
abandon-all-delay-warning="&aCes terrains ont été créés récemment et ne peuvent être abandonnés."
abandon-all-warning="&6Es-tu sûr de vouloir abandonner &cTOUS&6 tes terrains ?"
abandon-claim-delay-warning="&aCe terrain a été créé récemment et ne peut pas être abandonnée avant le &6{date}&a."
abandon-claim-failed="&aN'a pas réussi à abandonner le terrain. Résultat du terrain était: &f{result}&a."
abandon-claim-missing="&cPas de terrain trouvé. Va dans le terrain que tu veux abandonner ou envisages &f/abandonall&c."
abandon-other-success="Le terrain de &6{player}&a a été abandonné. &6{player}&a dispose de maintenant &6{amount}&a blocs de terrain disponibles."
abandon-success="&aTerrain abandonné. Tu as maintenant &6{amount}&a blocs de terrain disponibles."
abandon-top-level="&cCe terrain ne peut être abandonné car il contient un ou plusieurs terrain(s) enfant(s). Pour abandonner un terrain avec enfant, tu dois utiliser &f/abandontop&c à la place."
abandon-town-children="&cTu n'as pas la permission pour abandonner un village contenant des terrains enfants qui ne t'appartiennent pas. Utilises &f/ignoreclaims&c ou fais en sorte que le propriétaire des terrains enfants les abandonne d'abord. Si tu veux abandonner le village sans affecter les terrains enfants, utilises &f/abandon&c à la place."
abandon-warning="&6Es-tu sûr de vouloir abandonner ce terrain ? Il ne sera plus protégé contre les dégâts."
adjust-accrued-blocks-success="&aAjustement du nombre de blocs de terrain gagnés par &6{player}&a de &6{amount}&a. Nouveau total de blocs de terrain gagnés: &6{total}&a."
adjust-bonus-blocks-success="&aAjustement du nombre de blocs de terrain, bonus &6{player}&a de &6{amount}&a. Nouveau total de blocs de terrain bonus: &6{total}&a."
bank-click-view-transactions="Clique ici pour voir les transactions bancaires"
bank-deposit="&aDépôt de &6{amount}&a avec succès dans la banque."
bank-deposit-no-funds="&cTu n'as pas suffisamment de fond pour faire un dépôt en banque."
bank-deposit-no-funds="&cTu n'as pas suffisamment de fonds pour faire un dépôt en banque."
bank-info="&aSolde: &6{balance}&a \nTaxe: &6{tax-amount}&f prélevée au &7{time-remaining}&a \nTaxe due: &6{tax-balance}."
bank-no-permission="&cTu n'as pas la permission de gérer la banque de protection de &6{player}&c."
bank-no-permission="&cTu n'as pas la permission de gérer la banque de terrain de &6{player}&c."
bank-tax-system-disabled="&cLa banque/système de taxe n'est pas activé. Si tu veux l'activer, paramètre 'bank-tax-system' à true dans le fichier de configuration."
bank-title-transactions="Transactions Bancaire"
bank-withdraw="&aRetrait de &6{amount}&a de la banque avec succès."
bank-withdraw-no-funds="&cLa banque de protection a un solde de &a{balance}&c et n'a pas suffisamment de fond pour un retrait de &a{amount}&c."
block-claimed="&aCe bloc a été protégé par &6{player}&a."
block-not-claimed="&cPersonne n'a protégé ce bloc."
block-sale-value="&aChaque bloc de protection vaut &6{amount}&a. Tu as &6{total}&a disponible pour la vente."
claim-above-level="&cImpossible de protéger le bloc car il est au-dessus de niveau maximum limite de &a{limit}&c."
bank-withdraw-no-funds="&cLa banque de terrain a un solde de &a{balance}&c et n'a pas suffisamment de fonds pour un retrait de &a{amount}&c."
block-claimed="&aCe bloc a été réclamé par &6{player}&a."
block-not-claimed="&cPersonne n'a réclamé ce bloc."
block-sale-value="&aChaque bloc de terrain vaut &6{amount}&a. Tu as &6{total}&a disponible pour la vente."
claim-above-level="&cImpossible de réclamer le bloc car il est au-dessus de niveau maximum limite de &a{limit}&c."
claim-action-not-available="&cCette action n'est pas disponible dans {type}&c."
claim-automatic-notification="&cCe coffre et les blocs à proximités sont protégés."
claim-below-level="&cImpossible de protéger le bloc car il est en-dessous du niveau minimum limite de &a{limit}&c."
claim-below-level="&cImpossible de réclamer le bloc car il est en-dessous du niveau minimum limite de &a{limit}&c."
claim-chest-confirmation="&cCe coffre est protégé."
claim-chest-outside-level="&cCe coffre ne peut pas être protégé car sa position est en dehors du niveau limite de protection de &a{min-level}&c et &a{max-level}&c."
claim-children-warning="&6Cette protection contient des protections enfants. Si tu es sûr de vouloir la supprimer, utilises &f/deleteclaim&6 à nouveau."
claim-chest-outside-level="&cCe coffre ne peut pas être protégé car sa position est en dehors du niveau limite de terrain de &a{min-level}&c et &a{max-level}&c."
claim-children-warning="&6Cet terrain contient des terrains enfants. Si tu es sûr de vouloir la supprimer, utilises &f/deleteclaim&6 à nouveau."
claim-context-not-found="&cContexte &f{context}&c non trouvé."
claim-disabled-world="&cLes protections sont désactivées dans ce monde."
claim-expired-inactivity="&cLa protection du joueur &6{player} avec l'id &f{uuid}&c a expiré et a été supprimé pour cause d'inactivité."
claim-farewell="&aDéfini le message de sortie à {farewell}&a."
claim-disabled-world="&cLes terrains sont désactivées dans ce monde."
claim-expired-inactivity="&cLe terrain du joueur &6{player} avec l'id &f{uuid}&c a expiré et a été supprimé pour cause d'inactivité."
claim-farewell="&aDéfinis le message de sortie à {farewell}&a."
claim-farewell-clear="&aLe message de sortie a été supprimé."
claim-farewell-invalid="&cLe flag de protection &f{flag}&c n'est pas valide."
claim-farewell-invalid="&cLa marque de terrain &f{flag}&c n'est pas valide."
claim-greeting="&aDéfinis le message d'accueil sur {greeting}&a."
claim-greeting-clear="&aLe message de d'accueil a été supprimé."
claim-ignore="&aIgnore maintenant les protections."
claim-last-active="&aDernière activité de la protection le &6{date}&a."
claim-name="&aDéfinis le nom de la protection à {name}&a."
claim-no-claims="&cTu n'as aucune protection de zone."
claim-ignore="&aIgnore maintenant les terrains."
claim-last-active="&aDernière activité du terrain le &6{date}&a."
claim-mode-start="coin {type}&a définis ! Clique droit à nouveau dans le coin opposé pour protéger un rectangle de terrain. Pour annuler, écris &f/claim&a pour sortir du terrain."
claim-name="&aDéfinis le nom du terrain à {name}&a."
claim-no-claims="&cTu n'as aucun terrain reclamé."
claim-no-set-home="&cTu dois avoir la confiance pour utiliser /sethome ici."
claim-not-found="&cIl n'y a pas de protection ici."
claim-not-yours="&cCe n'est pas ta protection."
claim-owner-already="&cTu es déjà le propriétaire de cette protection."
claim-owner-only="&cSeulement &6{player}&c peut modifier cette protection."
claim-not-found="&cIl n'y a pas de terrain ici."
claim-not-yours="&cCe n'est pas ton terrain."
claim-owner-already="&cTu es déjà le propriétaire de ce terrain."
claim-owner-only="&cSeulement &6{player}&c peut modifier ce terrain."
claim-protected-entity="&cCela appartient à &6{player}&c."
claim-respecting="&aRespecte maintenant les protections."
claim-restore-success="&aRestauration de la protection avec succès."
claim-show-nearby="&aTrouvé &6{amount}&a protections à proximité."
claim-size-max="&cLa taille de &6{axis}&c sur &a{size}&c de la protection excède la taille maximum de &a{max-size}&c.\nLa zone a besoin d'être un minimum de &a{min-area}&c et de maximum &a{max-area}"
claim-size-min="&cLa taille de &6{axis}&c sur &a{size}&c de la protection est sous la taille minimum de &a{min-size}&c.\nLa zone a besoin d'être un minimum de &a{min-area}&c et de maximum &a{max-area}"
claim-size-need-blocks-2d="&cTu n'as pas suffisamment de blocs pour une protection de cette taille.\nTu as besoin de &a{block-amount}&c blocs supplémentaires."
claim-size-need-blocks-3d="&cTu n'as pas suffisamment de blocs pour une protection de cette taille.\nTu as besoin de &a{chunk-amount}&c chunks supplémentaires. &f({block-amount})"
claim-size-too-small="&cLa taille de la zone de protection sélectionnée de &a{width}&fx&a{length}&c sera trop petite. Une protection doit être à minimum &a{min-width}&fx&a{min-length}&c en taille."
claim-start="{type}&a coin défini ! Utilise la pelle au coin opposé pour protéger un rectangle de terre. Pour annuler, met la pelle de côté."
claim-respecting="&aRespecte maintenant les terrains."
claim-restore-success="&aRestauration du terrain avec succès."
claim-show-nearby="&aTrouvé &6{amount}&a terrain(s) à proximité."
claim-size-max="&cLa taille de &6{axis}&c sur &a{size}&c du terrain excède la taille maximum de &a{max-size}&c.\nLa zone a besoin d'être un minimum de &a{min-area}&c et de maximum &a{max-area}"
claim-size-min="&cLa taille de &6{axis}&c sur &a{size}&c du terrain est sous la taille minimum de &a{min-size}&c.\nLa zone a besoin d'être un minimum de &a{min-area}&c et de maximum &a{max-area}"
claim-size-need-blocks-2d="&cTu n'as pas suffisamment de blocs pour un terrain de cette taille.\nTu as besoin de &a{block-amount}&c blocs supplémentaires."
claim-size-need-blocks-3d="&cTu n'as pas suffisamment de blocs pour un terrain de cette taille.\nTu as besoin de &a{chunk-amount}&c chunks supplémentaires. &f({block-amount})"
claim-size-too-small="&cLa taille de la zone de terrain sélectionnée de &a{width}&fx&a{length}&c sera trop petite. Une protection doit être au minimum de &a{min-width}&fx&a{min-length}&c en taille."
claim-start="{type}&a Coin défini ! Utilise la pelle au coin opposé pour protéger un rectangle de terre. Pour annuler, met la pelle de côté."
claim-too-far="&cC'est trop loin."
claim-transfer-exceeds-limit="&cLa protection ne peut pas être transférée car cela dépassera la limite de création du nouveau propriétaire."
claim-transfer-success="&aProtection transférée."
claim-type-not-found="&cPas de protection {type}&c trouvée."
claim-transfer-exceeds-limit="&cLe terrain ne peut pas être transféré car cela dépassera la limite de création du nouveau propriétaire."
claim-transfer-success="&aTerrain transféré."
claim-type-not-found="&cPas de terrain {type}&c trouvé."
claiminfo-ui-admin-settings="Paramètres Admin"
claiminfo-ui-bank-info="Information Bancaire"
claiminfo-ui-claim-expiration="Expiration de la protection"
claiminfo-ui-claim-expiration="Expiration du terrain"
claiminfo-ui-click-admin="Clique ici pour voir les paramètres admin"
claiminfo-ui-click-bank="Clique ici pour vérifier les informations bancaire"
claiminfo-ui-click-change-claim="Clique ici pour changer la protection à {type}"
claiminfo-ui-click-change-claim="Clique ici pour changer le terrain à {type}"
claiminfo-ui-click-toggle="Clique ici pour basculer la valeur"
claiminfo-ui-deny-messages="Messages de refus"
claiminfo-ui-flag-overrides="Flag outrepassant"
claiminfo-ui-flag-overrides="Marque outrepassant"
claiminfo-ui-for-sale="À Vendre"
claiminfo-ui-inherit-parent="Héritage parent"
claiminfo-ui-last-active="Dernière activité"
claiminfo-ui-north-corners="Coin nord"
claiminfo-ui-pvp-override="Outrepasser PvP"
claiminfo-ui-requires-claim-blocks="Blocs de protection nécessaire"
claiminfo-ui-return-bankinfo="Retour au information bancaire"
claiminfo-ui-return-claiminfo="Retour au information de protection"
claiminfo-ui-return-settings="Retour au information standard"
claiminfo-ui-requires-claim-blocks="Blocs de terrain nécessaires"
claiminfo-ui-return-bankinfo="Retour aux informations bancaires"
claiminfo-ui-return-claiminfo="Retour aux informations de terrain"
claiminfo-ui-return-settings="Retour aux informations standards"
claiminfo-ui-size-restrictions="Restriction de taille"
claiminfo-ui-south-corners="Coin sud"
claiminfo-ui-teleport-direction="Clique ici pour te téléporter au coin {direction}&f de la protection"
claiminfo-ui-teleport-feature="Tu n'as pas la permission pour utiliser la fonction de téléportation dans cette protection"
claiminfo-ui-teleport-spawn="Clique ici pour te téléporter au point d'appartition de la protection"
claiminfo-ui-title-claiminfo="Information de la protection"
claiminfo-ui-teleport-direction="Clique ici pour te téléporter au coin {direction}&f du terrain"
claiminfo-ui-teleport-feature="Tu n'as pas la permission pour utiliser la fonction de téléportation dans ce terrain"
claiminfo-ui-teleport-spawn="Clique ici pour te téléporter au point d'appartition du terrain"
claiminfo-ui-title-claiminfo="Information du terrain"
claiminfo-ui-town-settings="Paramètre de la ville"
claimlist-ui-click-info="Clique ici pour voir plus d'informations"
claimlist-ui-click-purchase="Clique ici pour acheter la protection"
claimlist-ui-click-purchase="Clique ici pour acheter le terrain"
claimlist-ui-click-teleport-target="Clique ici pour te téléporter à {name}&f {target}&f dans &6{world}"
claimlist-ui-click-toggle-value="Clique ici pour basculer la valeur {type}"
claimlist-ui-click-view-children="Clique ici pour lister les protections enfant"
claimlist-ui-click-view-claims="Clique ici pour voir les protections qui t'appartiennent"
claimlist-ui-no-claims-found="Pas de protection trouvé dans ce monde."
claimlist-ui-return-claimlist="Retourne à la liste des protections"
claimlist-ui-title="Liste les protections"
claimlist-ui-title-child-claims="Protections enfant"
command-blocked="&cLa commande &f{command}&c a été bloquée par le propriétaire de la protection &6{player}&c."
claimlist-ui-click-view-children="Clique ici pour lister les terrains enfants"
claimlist-ui-click-view-claims="Clique ici pour voir les terrains qui t'appartiennent"
claimlist-ui-no-claims-found="Pas de terrain trouvé dans ce monde."
claimlist-ui-return-claimlist="Retourne à la liste des terrains"
claimlist-ui-title="Liste les terrains"
claimlist-ui-title-child-claims="Terrains enfants"
command-blocked="&cLa commande &f{command}&c a été bloquée par le propriétaire du terrain &6{player}&c."
command-claimban-success-block="&cBANNISSEMENT&a du bloc avec l'id {id}&a avec succès."
command-claimban-success-entity="&cBANNISSEMENT&a de l'entité avec l'id {id}&a avec succès."
command-claimban-success-item="&cBANNISSEMENT&a de l'objet avec l'id {id}&a avec succès."
command-claimbuy-title="&bProtection à vendre"
command-claimclear-killed="&cTué &6{amount}&a entités de type {type}&f."
command-claimbuy-title="&bTerrain à vendre"
command-claimclear-killed="&c &6{amount}&a entités de type {type}&f ont été tuées."
command-claimclear-no-entities="&cImpossible de localiser une entité de type {type}&c."
command-claimclear-uuid-deny="&cSeulement les admins peuvent nettoyer les protections par UUID."
command-claimflagdebug-disabled="Mode débug de flag de protection &cOFF"
command-claimflagdebug-enabled="Mode débug de flag de protection &aON"
command-claiminfo-not-found="&cPas de joueur valide ou de protection avec cet UUID trouvé."
command-claiminfo-uuid-required="&cUUID de la protection nécessaire si exécuté depuis une source non joueur."
command-claiminherit-disabled="Héritage protection parente &cOFF"
command-claiminherit-enabled="Héritage protection parente &aON"
command-claimclear-uuid-deny="&cSeulement les admins peuvent nettoyer les terrains par UUID."
command-claimflagdebug-disabled="Mode débug de marque de terrain &cOFF"
command-claimflagdebug-enabled="Mode débug de marque de terrain &aON"
command-claiminfo-not-found="&cPas de joueur valide ou de terrain avec cet UUID trouvé."
command-claiminfo-uuid-required="&cUUID du terrain nécessaire si exécuté depuis une source non joueur."
command-claiminherit-disabled="Héritage terrain parent &cOFF"
command-claiminherit-enabled="Héritage terrain parent &aON"
command-claimmode-disabled="Mode terrain &cOFF"
command-claimmode-enabled="Mode terrain &aON&f\n&aClique gauche pour inspecter.\n&aClique droit pour réclamer.&b\nNote&f: &aUtilise &f/claim&a pour sortir du mode."
command-claimspawn-not-found="&aNe peut pas localiser un terrain avec le nom {name}&a."
command-claimunban-success-block="&cDÉBANISSEMENT&a du bloc avec l'id {id}&a avec succès."
command-claimunban-success-entity="&cDÉBANISSEMENT&a de l'entité avec l'id {id}&a avec succès."
command-claimunban-success-item="&cDÉBANISSEMENT&a de l'objet avec l'id {id}&a avec succès."
command-cuboid-disabled="&aProtège maintenant en mode &d2D&a."
command-cuboid-enabled="&aProtège maintenant en mode &d3D&a."
command-cuboid-disabled="&aRéclame maintenant en mode &d2D&a."
command-cuboid-enabled="&aRéclame maintenant en mode &d3D&a."
command-execute-failed="&cÉchec de l'exécution de la commande '{command} {args}'"
command-giveblocks-confirmation="&6Es-tu sûr de vouloir donner à {player}&6 {amount}&6 blocs de protection ?"
command-inherit-only-child="&cCette commande ne peut être utilisée que dans des protections enfant."
command-giveblocks-confirmation="&6Es-tu sûr de vouloir donner à {player}&6 {amount}&6 blocs de terrain ?"
command-giveblocks-confirmed="&aTransfert de bloc de terrain complet."
command-giveblocks-not-enough="&cPas suffisamment de blocs de terrain ! Tu as seulement {amount}&c bloc(s) de terrain disponible pour le transfert.\n&bNote&f: Ce montant n'inclut pas le nombre de blocs de terrain initial. Cela inclut uniquement le nombre de blocs gagnés et bonus."
command-giveblocks-received="&aTu as reçu {amount}&a blocs de terrain du joueur {player}&a."
command-inherit-only-child="&cCette commande ne peut être utilisée que dans des terrains enfants."
command-invalid="&cPas de commande valide entrée."
command-invalid-amount="&cMontant invalide &6{amount}&c entré."
command-invalid-claim="&cCette commande ne peut être utilisée dans les protections de type {type}&c."
command-invalid-claim="&cCette commande ne peut être utilisée dans les terrains de type {type}&c."
command-invalid-group="&cGroupe &6{group}&c n'est pas valide."
command-invalid-player="&cJoueur &6{player}&c n'est pas valide."
command-invalid-player-group="&cPas un joueur ou groupe valide."
@ -189,20 +197,20 @@ GriefDefender {
command-pet-invalid="&cL'animal de type {type} n'est pas actuellement transférable."
command-pet-transfer-cancel="&aTransfert animal annulé."
command-pet-transfer-ready="&aPrêt pour le transfert! Fait un clique droit sur l'animal que tu veux donner, ou annule avec un clique gauche."
command-player-not-found="&cJoueur '&6{player}&c' non trouvable."
command-world-not-found="&cMonde '&6{world}&c' non trouvable."
command-worldedit-missing="&cCette commande a besoin que WorldEdit soi installé sur le serveur."
create-cancel="&cLa création de cette protection a été annulée."
create-cuboid-disabled="&cLa création de protection en mode &d3D&c a été désactivées par un administrateur.\nTu peux uniquement créer une protection en mode &d3D&c en tant qu'Admin ou dans une protection en mode &d2D&c qui t'appartient."
create-failed-claim-limit="&cTu as atteint la limite de &a{limit}&c pour les protections de type {type}&c. Utilises &f/abandon&c pour en supprimer une avant d'en créer une nouvelle."
create-failed-result="&aLa création de la protection a échoué à cause de : &6{reason}&a."
command-player-not-found="&cJoueur '&6{player}&c' introuvable."
command-world-not-found="&cMonde '&6{world}&c' introuvable."
command-worldedit-missing="&cCette commande a besoin que WorldEdit soit installé sur le serveur."
create-cancel="&cLa création de ce terrain a été annulé."
create-cuboid-disabled="&cLa création de terrain en mode &d3D&c a été désactivé par un administrateur.\nTu peux uniquement créer un terrain en mode &d3D&c en tant qu'Admin ou dans un terrain en mode &d2D&c qui t'appartient."
create-failed-claim-limit="&cTu as atteint la limite de &a{limit}&c pour les terrains de type {type}&c. Utilises &f/abandon&c pour en supprimer un avant d'en créer un nouveau."
create-failed-result="&aLa création du terrain a échoué à cause de : &6{reason}&a."
create-insufficient-blocks-2d="&cTu n'as pas suffisamment de blocs pour protéger cette zone.\nTu as besoin de &a{amount}&c blocs supplémentaires."
create-insufficient-blocks-3d="&cTu n'as pas suffisamment de blocs pour protéger cette zone.\nTu as besoin de &a{amount}&c chunks supplémentaires. &f({block-amount})"
create-overlap="&cTu ne peut pas créer une protection ici car elle chevaucherait ton autre protection. Utilises &f/abandonclaim&c pour la supprimer ou utilise la pelle dans un coin pour la redimensionner."
create-overlap-player="&cTu ne peut pas créer une protection ici car elle chevaucherait la protection de &6{player}&c."
create-overlap-short="&cPas de protection existante sur le coin sélectionné. Clique sur un bloc valide à l'intérieur d'une protection parente afin de créer une sous-division."
create-subdivision-fail="&cPAs de protection existante au coin sélectionné. Cliques sur un bloc valide dans une zone à l'intérieur de la protection parente pour créer la sous-division."
create-subdivision-only="&cImpossible de créer la protection. Seulement les sous-divisions peuvent être créée à l'endroit d'un bloc unique."
create-overlap="&cTu ne peut pas créer un terrain ici car il chevaucherait ton autre terrain. Utilises &f/abandonclaim&c pour le supprimer ou utilise la pelle dans un coin pour le redimensionner."
create-overlap-player="&cTu ne peut pas créer un terrain ici car il chevaucherait le terrain de &6{player}&c."
create-overlap-short="&cPas de terrain existant sur le coin sélectionné. Cliques sur un bloc valide à l'intérieur d'un terrain parent afin de créer une sous-division."
create-subdivision-fail="&cPas de terrain existant au coin sélectionné. Cliques sur un bloc valide dans une zone à l'intérieur du terrain parent pour créer la sous-division."
create-subdivision-only="&cImpossible de créer le terrain. Seulement les sous-divisions peuvent être créées à l'endroit d'un bloc unique."
create-success="{type}&a créée ! Utilises &f/trust&a pour la partager avec tes amis."
debug-error-upload="&cErreur d'envoi du contenu {content}&c."
debug-no-records="&cPas d'enregistrement de débug à coller !"
@ -210,88 +218,118 @@ GriefDefender {
debug-record-end="Fin d'enregistrement"
debug-record-start="Démarrage d'enregistrement"
debug-time-elapsed="Temps passé"
delete-all-player-failed="&aNe peut pas supprimer l'ENSEMBLE des protections de &6{player}&a. Résultat de protection était &f{result}&a."
delete-all-player-success="&aSuppression de l'ENSEMBLE des protections de &6{player}&a avec succès."
delete-all-player-warning="&6Es-tu sûr de vouloir supprimer l'ENSEMBLE des protections de &6{player}&6 ?"
delete-all-type-deny="&cImpossible de supprimer l'ensemble des protections de type {type}&c. Un plug-in l'a refusé."
delete-all-type-success="&&cSuppression de l'ensemble des protections {type}&c."
delete-all-type-warning="&6Es-tu sûr de vouloir supprimer l'ENSEMBLE des protections de type {type}&6 ?"
delete-claim-failed="&aNe peut pas supprimer la protection. Le résultat de la protection était : &f{result}&a."
delete-claim-success="&aSuppression des protections de {player}&a."
delete-claim-warning="&6Es-tu sûr de vouloir supprimer les protections de {player}&6 ?"
delete-all-player-failed="&aNe peut pas supprimer l'ENSEMBLE des terrains de &6{player}&a. Résultat de terrain était &f{result}&a."
delete-all-player-success="&aSuppression de l'ENSEMBLE des terrains de &6{player}&a avec succès."
delete-all-player-warning="&6Es-tu sûr de vouloir supprimer l'ENSEMBLE des terrains de &6{player}&6 ?"
delete-all-type-deny="&cImpossible de supprimer l'ensemble des terrains de type {type}&c. Un plug-in l'a refusé."
delete-all-type-success="&&cSuppression de l'ensemble des terrains {type}&c."
delete-all-type-warning="&6Es-tu sûr de vouloir supprimer l'ENSEMBLE des terrains de type {type}&6 ?"
delete-claim-failed="&aNe peut pas supprimer le terrain. Le résultat du terrain était : &f{result}&a."
delete-claim-success="&aSuppression des terrains de {player}&a."
delete-claim-warning="&6Es-tu sûr de vouloir supprimer les terrains de {player}&6 ?"
economy-balance="&aVotre nouveau solde est de &6{balance}&a."
economy-block-available-purchase-2d="&aTu as suffisamment de fonds pour créer une protection jusqu'à &6{block-amount} &ablocs supplémentaires."
economy-block-available-purchase-3d="&aTu as suffisamment de fonds pour créer une protection jusqu'à &6{chunk-amount} &achunks supplémentaires. &f({block-amount})"
economy-block-buy-invalid="&cLe nombre de bloc doit être supérieur à 0."
economy-block-buy-sell-disabled="&cDésolé, l'achat et la vente de blocs de protection est désactivé."
economy-block-cost="&aChaque bloc de protection coût &6{amount}&a."
economy-block-available-purchase-2d="&aTu as suffisamment de fonds pour créer un terrain jusqu'à &6{block-amount} &ablocs supplémentaires."
economy-block-available-purchase-3d="&aTu as suffisamment de fonds pour créer un terrain jusqu'à &6{chunk-amount} &achunks supplémentaires. &f({block-amount})"
economy-block-buy-invalid="&cLe nombre de blocs doit être supérieur à 0."
economy-block-buy-sell-disabled="&cDésolé, l'achat et la vente de blocs de terrain est désactivé."
economy-block-cost="&aChaque bloc de terrain coûte &6{amount}&a."
economy-block-not-available="&cTu n'as pas autant de blocs disponible pour la vente."
economy-block-only-buy="&cLes blocs de protection ne peuvent qu'être achetés, pas vendus."
economy-block-only-sell="&cLes blocs de protection ne peuvent qu'être vendus, pas achetés."
economy-block-purchase-confirmation="&aRetrait de &6{amount}&a depuis ton compte. Tu as maintenant &6{balance}&a blocs de protection disponible."
economy-block-purchase-cost="&aChaque bloc de protection coût &6{amount}&a. Ton solde est de &6{balance}&a."
economy-block-purchase-limit="&cLe nouveau nombre de bloc de protection total de &a{total}&c va dépasser la limite de bloc maximum de &a{limit}&c. La transaction a été annulée."
economy-block-sale-confirmation="&aDéposé &6{deposit}&a sur ton compte. Tu as maintenant &6{amount}&a blocs de protection disponible."
economy-block-only-buy="&cLes blocs de terrain ne peuvent qu'être achetés, pas vendus."
economy-block-only-sell="&cLes blocs de terrain ne peuvent qu'être vendus, pas achetés."
economy-block-purchase-confirmation="&aRetrait de &6{amount}&a depuis ton compte. Tu as maintenant &6{balance}&a blocs de terrain disponibles."
economy-block-purchase-cost="&aChaque bloc de terrain coûte &6{amount}&a. Ton solde est de &6{balance}&a."
economy-block-purchase-limit="&cLe nouveau nombre de bloc de terrain total de &a{total}&c va dépasser la limite de bloc maximum de &a{limit}&c. La transaction a été annulée."
economy-block-sale-confirmation="&aDéposé &6{deposit}&a sur ton compte. Tu as maintenant &6{amount}&a blocs de terrain disponibles."
economy-block-sell-error="&cImpossible de vendre les blocs. Raison: &f{reason}&c."
economy-claim-abandon-success="&aProtection abandonnée. Tu as été remboursé d'un total de '&6{amount}&a'."
economy-claim-buy-cancelled="&cAchat annulé ! Impossible d'acheter la protection de &6{player}&c. Resultat est &a{result}"
economy-claim-buy-confirmation="&6Es-tu sûr de vouloir acheter cette protection pour &a{amount}&6 ? Clique confirm pour procéder."
economy-claim-buy-confirmed="&aTu as acheté la protection avec succès pour un montant de &6{amount}&a."
economy-claim-buy-not-enough-funds="&cTu n'as pas suffisamment de fond pour acheter cette protection pour &a{amount}&c. Tu as actuellement un solde de &a{balance}&c et tu as besoin de &a{amount_required}&c supplémentaire pour l'achat"
economy-claim-buy-transfer-cancelled="&cTransfert de protection annulé ! Ne peut transférer du propriétaire &6{owner}&c à &6{player}&c. Resultat est &a{result}"
economy-claim-not-for-sale="&cCette protection n'est pas à vendre."
economy-claim-sale-cancelled="&aTu as annulé la vente de ta protection."
economy-claim-sale-confirmation="&6Es-tu sûr de vouloir vendre ta protection pour &a{amount}&6 ? Si la protection est vendu, l'ensemble des objets et blocs vont être transféré à l'acheteur. Clique confirm si c'est bon."
economy-claim-sale-confirmed="&aTu as mis en vente ta protection avec succès pour un montant de &6{amount}&a."
economy-claim-abandon-success="&Terrain abandonné. Tu as été remboursé d'un total de '&6{amount}&a'."
economy-claim-buy-cancelled="&cAchat annulé ! Impossible d'acheter le terrain de &6{player}&c. Resultat est &a{result}"
economy-claim-buy-confirmation="&6Es-tu sûr de vouloir acheter ce terrain pour &a{amount}&6 ? Clique confirm pour procéder."
economy-claim-buy-confirmed="&aTu as acheté le terrain avec succès pour un montant de &6{amount}&a."
economy-claim-buy-not-enough-funds="&cTu n'as pas suffisamment de fond pour acheter ce terrain pour &a{amount}&c. Tu as actuellement un solde de &a{balance}&c et tu as besoin de &a{amount_required}&c supplémentaire pour l'achat"
economy-claim-buy-transfer-cancelled="&cTransfert de terrain annulé ! Ne peut transférer du propriétaire &6{owner}&c à &6{player}&c. Resultat est &a{result}"
economy-claim-not-for-sale="&cCe terrain n'est pas à vendre."
economy-claim-sale-cancelled="&aTu as annulé la vente de ton terrain."
economy-claim-sale-confirmation="&6Es-tu sûr de vouloir vendre ton terrain pour &a{amount}&6 ? Si la protection est vendue, l'ensemble des objets et blocs vont être transférés à l'acheteur. Clique confirm pour valider."
economy-claim-sale-confirmed="&aTu as mis en vente ton terrain avec succès pour un montant de &6{amount}&a."
economy-claim-sale-invalid-price="&cLe prix de vente de &a{amount}&c doit être supérieur ou égal à &a0&c."
economy-claim-sold="&aTa protection est vendu ! Le montant de &6{amount}&a a été déposé sur ton compte. Ton solde total est maintenant de &6{balance}&a."
economy-claim-sold="&aTon terrain est vendu ! Un montant de &6{amount}&a a été déposé sur ton compte. Ton solde total est maintenant de &6{balance}&a."
economy-mode-block-sale-confirmation="&aDépôt de &6{deposit}&a sur votre compte. Votre solde total est de &6{balance}&a. Tu as maintenant suffisamment de fonds pour protéger jusqu'à &6{amount}&a blocs supplémentaires."
economy-mode-resize-success-2d="&aProtection redimensionnée. Ton nouveau solde est de &6{balance}&a. Tu as maintenant suffisamment de fonds pour protéger jusqu'à &6{block-amount} &ablocs supplémentaires."
economy-mode-resize-success-3d="&aProtection redimensionnée. Ton nouveau solde est de &6{balance}&a. Tu as maintenant suffisamment de fonds pour protéger jusqu'à &6{chunk-amount} &achunks supplémentaires. &f({block-amount})"
economy-not-enough-funds="&cTu n'as pas suffisamment de fond pour acheter cette zone. Ton solde actuel est '&a{balance}&c' mais tu as besoin de '&a{amount}&c' pour valider l'achat."
economy-mode-resize-success-2d="&Terrain redimensionné. Ton nouveau solde est de &6{balance}&a. Tu as maintenant suffisamment de fonds pour protéger jusqu'à &6{block-amount} &ablocs supplémentaires."
economy-mode-resize-success-3d="&Terrain redimensionné. Ton nouveau solde est de &6{balance}&a. Tu as maintenant suffisamment de fonds pour protéger jusqu'à &6{chunk-amount} &achunks supplémentaires. &f({block-amount})"
economy-not-enough-funds="&cTu n'as pas suffisamment de fonds pour acheter ce terrain. Ton solde actuel est de '&a{balance}&c' mais tu as besoin de '&a{amount}&c' pour valider l'achat."
economy-not-installed="&cPlug-in d'économie non installé !"
economy-player-not-found="&cPas de compte d'économie trouvé pour le joueur &6{player}&c."
economy-remaining-funds="&aTu as &6{amount}&a disponible pour protéger du terrain."
economy-player-not-found="&cPas de compte bancaire trouvé pour le joueur &6{player}&c."
economy-remaining-funds="&aTu as &6{amount}&a de disponible pour protéger du terrain."
economy-virtual-not-supported="&cLe plug-in d'économie ne supporte pas les comptes virtuels, ce qui est nécessaire. Utilises un autre plug-in d'économie ou contact le dev du plug-in pour qu'il supporte les comptes virtuels."
economy-withdraw-error="&cImpossible de retirer des fonds. Raison: &f{reason}&c."
feature-not-available="&cCette fonctionnalité est actuellement en cours de développement et sera disponible dans une version future."
flag-description-block-break="Contrôle si un bloc peut être cassé.\n&dExemple&f : Pour prévenir n'importe quel source de casser un bloc de terre, entre\n&a/cf block-break minecraft:dirt false\n&bNote&f : minecraft représente le modID et dirt représente le blockID.\nNe pas spécifier de modID prendra toujours minecraft par défaut."
flag-description-block-grow="Contrôle si un bloc peut pousser.\n&dExemple&f : Pour prévenir un cactus de pousser, entre\n&a/cf block-grow minecraft:cactus false\n&bNote&f : minecraft représente le modID et cactus représente le blockID.\nNe pas spécifier de modID prendra toujours minecraft par défaut."
flag-description-block-modify="Contrôle si un bloc peut être modifié.\n&dExemple&f : Pour prévenir n'importe quelle source d'allumer un bloc, entre\n&a/cf block-modify minecraft:fire false\n&bNote&f : minecraft représente le modID et fire représente le blockID.\nNe pas spécifier de modID prendra toujours minecraft par défaut."
flag-description-block-place="Contrôle si un bloc peut être placé.\n&dExemple&f : Pour prévenir n'importe quelle source de placer un bloc de terre, entre\n&a/cf block-place minecraft:dirt false\n&bNote&f : minecraft représente le modID et dirt représente le blockID.\nNe pas spécifier de modID prendra toujours minecraft par défaut."
flag-description-block-spread="Contrôle si un bloc peut s'étendre à un autre.\n&dExemple&f : Pour prévenir le feu de s'étendre, entre\n&a/cf block-spread any false context[source=fire]\n&bNote&f : 'any' réprésente n'importe quel bloc cible et fire représente le blockID sourced.\nNe pas spécifier de modID prendra toujours minecraft par défaut."
flag-description-collide-block="Contrôle si une entité peut entrer en collision avec un bloc.\n&dExemple&f : Pour prévenir une entité d'entrer en collision avec une plaque de pression en pierre, entre\n&a/cf collide-block minecraft:stone_pressure_plate false\n&bNote&f : minecraft représente le modID et stone_pressure_plate représente le blockID.\nNe pas spécifier de modID prendra toujours minecraft par défaut."
flag-description-collide-entity="Contrôle si une entité peut entrer en collision avec une entité.\n&dExemple&f : Pour prévenir une entité d'entrer en collision avec un cadre, entre\n&a/cf collide-entity minecraft:item_frame false\n&bNote&f : minecraft représente le modID et item_frame représente le blockID.\nNe pas spécifier de modID prendra toujours minecraft par défaut."
flag-description-command-execute="Contrôle si une commande peut être exécutée.\n&dExemple&f : Pour prévenir la commandes pixelmon '/shop select' d'être exécutée, entre\n&a/cf command-execute pixelmon:shop[select] false\n&bNote&f : &o&6pixelmon&f représente le modID et &o&6shop&f représente la commande de base, et &o&6select&f représente l'argument.\nNe pas spécifier de modID prendra toujours minecraft par défaut."
flag-description-command-execute-pvp="Contrôle si une commande peut être exécutée en état PvP.\n&dExemple&f : Pour prévenir la commandes pixelmon '/shop select' d'être exécutée, entre\n&a/cf command-execute pixelmon:shop[select] false\n&bNote&f : &o&6pixelmon&f représente le modID et &o&6shop&f représente la commande de base, et &o&6select&f représente l'argument.\nNe pas spécifier de modID prendra toujours minecraft par défaut."
flag-description-custom-block-break="Contrôle si un bloc peut être cassé."
flag-description-custom-block-grow="Contrôle si un bloc peut pousser."
flag-description-custom-block-place="Contrôle si un bloc peut être placé."
flag-description-custom-block-spread="Contrôle si un bloc peut s'étendre."
flag-description-custom-build="Contrôle les actions autorisées contre les blocs comme le minage, placement et intéraction."
flag-description-custom-chest-access="Contrôle si un joueur peut accéder à l'inventaire d'un coffre."
flag-description-custom-chorus-fruit-teleport="Contrôle si un joueur peut se téléporter en utilisant un fruit chorus."
flag-description-custom-crop-growth="Contrôle si les pousses peuvent grandir."
flag-description-custom-damage-animals="Contrôle si les animaux peuvent prendre des dégâts."
flag-description-custom-enderman-grief="Contrôle si les enderman peuvent grief."
flag-description-custom-enderpearl="Contrôle si une enderpearl peut être utilisée."
flag-description-custom-enter-player="Contrôle si un joueur peut entrer dans une protection."
flag-description-custom-exit-player="Contrôle si un joueur peut sortir de la protection."
flag-description-custom-exp-drop="Contrôle si les orbes d'expériences peuvent apparaîtres."
flag-description-custom-explosion-block="Contrôle si les explosions affectent les blocs."
flag-description-custom-explosion-creeper="Contrôle si un creeper peut exploser."
flag-description-custom-explosion-entity="Contrôle si les explosions affectent les entités."
flag-description-custom-explosion-tnt="Contrôle si une TnT peut exploser."
flag-description-custom-fall-damage="Contrôle si le joueur peut prendre des dégâts de chute."
flag-description-custom-fire-damage="Contrôle si le feu fait des dégâts."
flag-description-custom-fire-spread="Contrôle si le feu peut se répandre."
flag-description-custom-grass-growth="Contrôle si l'herbe peut pousser."
flag-description-custom-ice-form="Contrôle si la glace peut se former."
flag-description-custom-ice-melt="Contrôle si la glace peut fondre."
flag-description-custom-interact-block="Contrôle si un joueur peut intéragir avec les blocs.\n&bNote&f: Cela n'inclut PAS les blocs avec inventaire comme les coffres."
flag-description-custom-interact-entity="Contrôle si un joueur peut intéragir avec une entité.\n&bNote&f: Cela n'inclut PAS l'accès au coffre des entités comme les chevaux."
flag-description-custom-interact-inventory="Contrôle si un joueur peut intéragir avec un inventaire."
flag-description-custom-invincible="Contrôle si un joueur est invincible contre les dégâts."
flag-description-custom-item-drop="Contrôle si un joueur peut jeter un objet."
flag-description-custom-item-pickup="Contrôle si un joueur peut ramasser un objet."
flag-description-custom-lava-flow="Contrôle si la lave peut couler."
flag-description-custom-leaf-decay="Contrôle si les feuilles peuvent dépérir."
flag-description-custom-lighter="Contrôle si un joueur peut utiliser un briquet."
flag-description-custom-lightning="Contrôle si un éclair peut causer des dégâts."
flag-description-custom-monster-damage="Contrôle si un monstre peut faire des dégâts."
flag-description-custom-mushroom-growth="Contrôle si les champignons peuvent grandir."
flag-description-custom-mycelium-spread="Contrôle si le mycelium peut s'étendre."
flag-description-custom-pistons="Contrôle si un piston peut être utilisé."
flag-description-custom-portal-use="Contrôle si un portail peut être utilisé."
flag-description-custom-pvp="Contrôle si le combat Joueur contre Joueur est autorisé."
flag-description-custom-ride="Contrôle si les véhicules (incluant les animaux) peuvent être montés."
flag-description-custom-sleep="Contrôle si les joueurs peuvent dormir dans les lits."
flag-description-custom-snow-fall="Contrôle si la neige peut tomber."
flag-description-custom-snow-melt="Contrôle si la neige peut fondre."
flag-description-custom-snowman-trail="Contrôle si un bonhomme de neige peut laisser de la neige derrière lui."
flag-description-custom-soil-dry="Contrôle si la terre peut sécher."
flag-description-custom-spawn-ambient="Contrôle si les environnementaux, comme les chauves-souris, peuvent apparaître."
flag-description-custom-spawn-animal="Contrôle si les animaux, comme les vaches ou cochons, peuvent apparaître."
flag-description-custom-spawn-aquatic="Contrôle si les aquatiques, comme les poulpes et gardiens, peuvent apparaître."
flag-description-custom-spawn-monster="Contrôle si les monstres, comme les creepers ou les skeletons, peuvent apparaître."
flag-description-custom-spawn-monster="Contrôle si les monstres, comme les creepers ou les squelettes, peuvent apparaître."
flag-description-custom-teleport-from="Contrôle si les joueurs peuvent se téléporter depuis la protection."
flag-description-custom-teleport-to="Contrôle si les joueur peuvent se téléporter vers la protection."
flag-description-custom-use="Contrôle si les joueurs peuvent utiliser des blocs sans inventaire dans la protection."
flag-description-custom-vehicle-destroy="Contrôle si un vehicule peut être détruit."
flag-description-custom-vehicle-place="Contrôle si un véhicule (bateau, minecart) peut être placé."
flag-description-custom-vine-growth="Contrôle si les vignes (et les algues) peuvent grandir."
flag-description-custom-water-flow="Contrôle si l'eau peut couler."
flag-description-custom-wither-damage="Contrôle si un Withers peut faire des dégâts."
flag-description-block-break="Contrôle si un bloc peut être cassé.\n&dExemple&f : Pour prévenir n'importe quelle source de casser un bloc de terre, entre\n&a/cf block-break minecraft:dirt false\n&bNote&f : minecraft représente le modid et dirt représente l'ID du bloc.\nNe pas spécifier de modid va toujours par défaut sur minecraft."
flag-description-block-grow="Contrôle si un bloc peut pousser.\n&dExemple&f : Pour prévenir un cactus de pousser, entre\n&a/cf block-grow minecraft:cactus false\n&bNote&f : minecraft représente le modid et cactus représente l'ID du bloc.\nNe pas spécifier de modid va toujours par défaut sur minecraft."
flag-description-block-modify="Contrôle si un bloc peut être modifié.\n&dExemple&f : Pour prévenir n'importe quelle source d'allumer un bloc, entre\n&a/cf block-modify minecraft:fire false\n&bNote&f : minecraft représente le modid et fire représente l'ID du bloc.\nNe pas spécifier de modid va toujours par défaut sur minecraft."
flag-description-block-place="Contrôle si un bloc peut être placé.\n&dExemple&f : Pour prévenir n'importe quelle source de placer un bloc de terre, entre\n&a/cf block-place minecraft:dirt false\n&bNote&f : minecraft représente le modid et dirt représente l'ID du bloc.\nNe pas spécifier de modid va toujours par défaut sur minecraft."
flag-description-collide-block="Contrôle si une entité peut rentrer en collision avec un bloc.\n&dExemple&f : Pour prévenir une entité d'entrer en collision avec une plaque de pression en pierre, entre\n&a/cf collide-block minecraft:stone_pressure_plate false\n&bNote&f : minecraft représente le modid et stone_pressure_plate représente l'ID du bloc.\nNe pas spécifier de modid va toujours par défaut sur minecraft."
flag-description-collide-entity="Contrôle si une entité peut rentrer en collision avec une entité.\n&dExample&f : Pour prévenir une entité d'entrer en collision avec un cadre, entre\n&a/cf collide-entity minecraft:item_frame false\n&bNote&f : minecraft représente le modid et item_frame représente l'ID du bloc.\nNe pas spécifier de modid va toujours par défaut sur minecraft."
flag-description-command-execute="Contrôle si une commande peut être exécutée.\n&dExemple&f : Pour prévenir la commande pixelmon'/shop select' d'être lancée, entre\n&a/cf command-execute pixelmon:shop[select] false\n&bNote&f : &o&6pixelmon&f représente le modid et &o&6shop&f représente la commande de base et &o&6select&f représente l'argument.\nNe pas spécifier de modid va toujours par défaut sur minecraft."
flag-description-command-execute-pvp="Contrôle si une commande peut être exécutée en état de PvP.\n&dExemple&f : Pour prévenir la commande pixelmon'/shop select' d'être lancée, entre\n&a/cf command-execute pixelmon:shop[select] false\n&bNote&f : &o&6pixelmon&f représente le modid et &o&6shop&f représente la commande de base et &o&6select&f représente l'argument.\nNe pas spécifier de modid va toujours par défaut sur minecraft."
flag-description-enter-claim="Contrôle si une entité peut rentrer dans une protection.\n&dExemple&f : Pour prévenir les joueurs de rentrer dans une protection, entre\n&a/cf enter-claim player false\n&bNote&f : Si tu veux utiliser ça sur un groupe, utilises la commande /cfg."
flag-description-entity-chunk-spawn="Contrôle si une entité sauvegardée peut apparaître pendant le chargement d'un chunk.\n&dExemple&f : Pour prévenir les chevaux d'apparaître pendant le chargement du chunk, entre\n&a/cf entity-chunk-spawn minecraft:horse false\n&bNote&f : Cela va supprimer l'ENSEMBLE des entités sauvegardées quand le chunk va charger. Si le chunk est déjà chargé, l'effet aura lieu après le rechargement. À utiliser avec une extrême prudence."
flag-description-entity-damage="Contrôle si une entité peut prendre des dégâts.\n&dExemple&f : Pour prévenir les animaux de prendre des dégâts, entre\n&a/cf entity-damage minecraft:animal false."
@ -302,7 +340,6 @@ GriefDefender {
flag-description-exit-claim="Contrôle si une entité peut sortir d'une protection.\n&dExample&f : Pour prévenir les joueurs de sortir d'une protection, entre\n&a/cf exit-claim player false\n&bNote&f : Si tu veux utiliser ça pour les groupes, utilises la commande /cfg."
flag-description-explosion-block="Contrôle si une explosion peut endommager les blocs dans la protection.\n&dExemple&f : Pour prévenir une explosion d'affecter n'importe quel bloc, entre\n&a/cf explosion-block any false"
flag-description-explosion-entity="Contrôle si une explosion peut blesser une entité dans une protection.\n&dExample&f : Pour prévenir une explosion d'affecter n'importe quel entité, entre\n&a/cf explosion-entity any false"
flag-description-fire-spread="Contrôle si le feu peut se propager dans la protection.\n&dExample&f : Pour prévenir le feu de se propager, entre\n&a/cf fire-spread any false\n&bNote&f : Cela n'empêche pas le feu initial d'être placé, seulement la propagation."
flag-description-interact-block-primary="Contrôle si un joueur peut faire un clique-gauche(attaque) un bloc.\n&dExemple&f : Pour prévenir un joueur de faire un clique-gauche sur un coffre, entre\n&a/cf interact-block-primary minecraft:chest false"
flag-description-interact-block-secondary="Contrôle si un joueur peut faire un clique-droit sur un bloc.\n&dExemple&f : Pour prévenir un joueur de faire un clique-droit(ouvrir) sur un coffre, entre\n&a/cf interact-block-secondary minecraft:chest false"
flag-description-interact-entity-primary="Contrôle si un joueur peut faire un clique-gauche(attaque) sur une entité.\n&dExemple&f : Pour prévenir un joueur de faire un clique-gauche sur une vache, entre\n&a/cf interact-entity-primary minecraft:cow false"
@ -316,39 +353,10 @@ GriefDefender {
flag-description-item-spawn="Contrôle si un objet peut apparaître dans une protection.\n&dExemple&f : Pour prévenir les plumes d'apparaître dans la protection, entre\n&a/cf item-spawn minecraft:feather false"
flag-description-item-use="Contrôle si un objet peut être utilisé.\n&dExemple&f : Pour prévenir les pommes d'être mangées dans la protection, entre\n&a/cf item-use minecraft:apple false"
flag-description-leaf-decay="Contrôle si les feuilles peuvent dépérir dans la protection.\n&dExemple&f : Pour prévenir les feuilles de dépérir dans la protection, entre\n&a/cf leaf-decay any false"
flag-description-liquid-flow="Contrôle si un liquide, comme la lave ou l'eau, d'être autorisé à couler dans la protection.\n&dExemple&f : Pour prévenir n'importe quel type de liquide de couler dans la protection, entre\n&a/cf liquid-flow any false"
flag-description-liquid-flow="Contrôle si un liquide, comme la lave ou l'eau, est autorisé à couler dans la protection.\n&dExemple&f : Pour prévenir n'importe quel type de liquide de couler dans la protection, entre\n&a/cf liquid-flow any false"
flag-description-portal-use="Contrôle si un portail peut être utilisé.\n&dExemple&f : Pour prévenir seulement les joueurs d'utiliser un portail sans affecter les non joueurs, entre\n&a/cf portal-use any false context[source=player]"
flag-description-projectile-impact-block="Contrôle si un projectile peut avoir un impact(collision) avec un bloc.\n&dExemple&f : Pour prévenir les pokéballs de pixelmon d'impacter un bloc, entre\n&a/cf projectile-impact-block any false[source=pixelmon:occupiedpokeball]\n&bNote&f : Cela concerne les choses comme les potions, flèches, lançable, pokéball pixelmon, etc."
flag-description-projectile-impact-entity="Contrôle si un projectile peut avoir un impact(collision) avec une entité.\n&dExample&f : Pour prévenir les joueurs de faire un tir de flèche pouvant impacter une entité, entre\n&a/cf projectile-impact-entity minecraft:arrow false[source=player]\n&bNote&f : Cela concerne les choses comme les potions, flèches, lançable, pokéball pixelmon, etc."
flag-description-custom-chest-access="Contrôle si un joueur peut accéder à l'inventaire d'un coffre."
flag-description-custom-chorus-fruit-teleport="Contrôle si un joueur peut se téléporter en utilisant un fruit chorus."
flag-description-custom-crop-growth="Contrôle si les poussent peuvent grandir."
flag-description-custom-damage-animals="Contrôle si les animaux peuvent prendre des dégâts."
flag-description-custom-enderman-grief="Contrôle si les enderman peuvent grief."
flag-description-custom-enter-player="Contrôle si un joueur peut entrer dans une protection."
flag-description-custom-explosion-creeper="Contrôle si un creeper peut exploser."
flag-description-custom-explosion-tnt="Contrôle si une TnT peut exploser."
flag-description-custom-fire-damage="Contrôle si le feu fait des dégâts."
flag-description-custom-fire-spread="Contrôle si le feu peut se répandre."
flag-description-custom-grass-growth="Contrôle si l'herbe peut pousser."
flag-description-custom-ice-form="Contrôle si la glace peut se former."
flag-description-custom-ice-melt="Contrôle si la glace peut fondre."
flag-description-custom-lava-flow="Contrôle si la lave peut couler."
flag-description-custom-leaf-decay="Contrôle si les feuilles peuvent dépérir."
flag-description-custom-lighter="Contrôle si un joueur peut utiliser un briquet."
flag-description-custom-lightning="Contrôle si un éclair peut causer des dégâts."
flag-description-custom-mushroom-growth="Contrôle si les champignons peuvent grandir."
flag-description-custom-mycelium-spread="Contrôle si le mycelium peut s'étendre."
flag-description-custom-pvp="Contrôle si le combat Joueur contre Joueur est autorisé."
flag-description-custom-ride="Contrôle si les véhicules (incluant les animaux) peuvent être montés."
flag-description-custom-sleep="Contrôle si les joueurs peuvent dormir dans les lits."
flag-description-custom-snow-fall="Contrôle si la neige peut tomber."
flag-description-custom-snow-melt="Contrôle si la neige peut fondre."
flag-description-custom-snowman-trail="Contrôle si un bonhomme de neige peut laisser de la neige derrière lui."
flag-description-custom-soil-dry="Contrôle si la terre peut sécher."
flag-description-custom-vehicle-place="Contrôle si un véhicule (bateau, minecraft) peut être placé."
flag-description-custom-vine-growth="Contrôle si les vignes (et les algues) peuvent grandir."
flag-description-custom-water-flow="Contrôle si l'eau peut couler."
flag-invalid-context="&cContexte entré '&f{context}&c' invalide pour le flag de base &f{flag}&c."
flag-invalid-meta="&cCible meta entrée '&f{value}&c' invalide pour le flag de base &f{flag}&c."
flag-invalid-target="&cCible '&f{target}&c' entré invalide pour le flag de base &f{flag}&c."
@ -356,8 +364,8 @@ GriefDefender {
flag-not-set="{flag}&f est actuellement non définis.\nLa valeur par défaut {value}&f de la protection sera active jusqu'à définition."
flag-overridden="&cÉchec de la définition du flag de protection. Le flag &f{flag}&c a été outrepassé par un admin."
flag-override-not-supported="&cLe type de protection {type}&c ne supporte pas les flags outrepassés."
flag-reset-success="&aFlags remit par défaut dans la protection avec succès."
flag-reset-warning="&6Es-tu sûr de vouloir remettre par défaut les paramètres de la protection ?"
flag-reset-success="&aFlags remis par défaut dans la protection avec succès."
flag-reset-warning="&6Es-tu sûr de vouloir remettre par défaut les paramètres de la protection ?"
flag-set-permission-target="&aDéfinis {type}&a permission &b{permission}&a avec contexte &7{contexts}&a à {value}&a sur &6{target}&a."
flag-ui-click-allow="Clique ici pour autoriser ce flag."
flag-ui-click-deny="Clique ici pour interdire ce flag."
@ -416,17 +424,17 @@ GriefDefender {
mode-nature="&aPrêt pour restaurer la protection ! Clique-droit sur un bloc pour restaurer, et utilises &f/modebasic&c pour arrêter."
mode-subdivision="&aMode Sous-divions. Utilises la pelle pour créer une sous-division dans ta protection existante. Utilises &f/modebasic&a pour sortir."
mode-town="&aMode création de Village activé."
option-description-abandon-delay="&aLe nombre de jour avant qu'une nouvelle protection créée puisse être abandonnée."
option-description-abandon-delay="&aLe nombre de jours avant qu'une nouvelle protection créée puisse être abandonnée."
option-description-abandon-return-ratio="&aLa portion de bloc de protection basique rendu au joueur quand une protection est abandonnée."
option-description-blocks-accrued-per-hour="&aBloc gagné par heure.\n&dNote&f: Regarde /playerinfo pour plus d'information."
option-description-chest-expiration="&aNombre de jour d'inactivité avant qune protection de coffre automatique expire.\n&dNote&f: Lors de l'expiration, une protection peut soit être restaurée à son état d'origine ou supprimée. Cela dépend de la configuration du serveur. Contact un administrateur pour plus d'information."
option-description-blocks-accrued-per-hour="&aBlocs gagnés par heure.\n&dNote&f: Regarde /playerinfo pour plus d'informations."
option-description-chest-expiration="&aNombre de jour d'inactivité avant qu'une protection de coffre automatique expire.\n&dNote&f: Lors de l'expiration, une protection peut soit être restaurée à son état d'origine ou supprimée. Cela dépend de la configuration du serveur. Contacte un administrateur pour plus d'informations."
option-description-create-limit="&aNombre maximum de protection par joueur.\n&dNote&f: Mettre une valeur en dessous de 0 donnera illimité."
option-description-create-mode="&aLe mode de création de la protection (Zone = 2D, Volume = 3D).\n&dNote&f: &bZone&a affecte seulement les axes x et y.\n&bVolume&a affecte les axes x, y, et z."
option-description-economy-block-cost="&aLe montant économique chargé par bloc de protection.\n&dNote&f: La formule de calcul du prix est montant * nombre total de blocs de protection."
option-description-economy-block-sell-return="&aLe ratio de retour pour vendre des blocs de protection.\n&dNote&f: La formule de calcul est ratio de retour * nombre total de blocs de protection."
option-description-expiration="&aNombre de jour d'inactivité avant que la protection expire.\n&dNote&f: Lors de l'expiration, une protection peut soit être restaurée à son état d'origine ou supprimée. Cela dépend de la configuration du serveur. Contact un administrateur pour plus d'information."
option-description-expiration="&aNombre de jour d'inactivité avant que la protection expire.\n&dNote&f: Lors de l'expiration, une protection peut soit être restaurée à son état d'origine ou supprimée. Cela dépend de la configuration du serveur. Contacte un administrateur pour plus d'informations."
option-description-initial-blocks="&aLe nombre de blocs de protection qu'a initialement un joueur, par défaut."
option-description-max-accrued-blocks="&aLe limite de bloc accrues (dans le temps).\n&dNote&f: Cela ne limite pas les blocs achetés ou donnés par un admin."
option-description-max-accrued-blocks="&aLa limite de bloc accrues (dans le temps).\n&dNote&f: Cela ne limite pas les blocs achetés ou donnés par un admin."
option-description-max-level="&aLe niveau maximum, sur l'axe y, une protection peut être créée."
option-description-max-size-x="&aLa taille maximum de blocs l'axe x peut être."
option-description-max-size-y="&aLa taille maximum de blocs l'axe y peut être."
@ -435,32 +443,32 @@ GriefDefender {
option-description-min-size-x="&aLa taille minimum de blocs l'axe x peut être."
option-description-min-size-y="&aLa taille minimum de blocs l'axe y peut être."
option-description-min-size-z="&aLa taille minimum de blocs l'axe z peut être."
option-description-player-command="&aUtilisé pour exécuté une commande avec un contexte spécifique."
option-description-player-command="&aUtilisé pour exécuter une commande avec un contexte spécifique."
option-description-player-deny-flight="&aUtilisé pour déterminer si un joueur est incapable de fly dans une protection.\n&dNote&f: Cela ne donne pas l'abilité de fly au joueur, ça supprime juste l'abilité si elle a été donnée. Cela donne la meilleurs compatibilité avec les plugins."
option-description-player-deny-godmode="&aUtilisé pour déterminer si un joueur est incapable de godmode dans une protection.\n&dNote&f: Cela ne donne pas l'abilité de godmode au joueur, ça supprime juste l'abilité si elle a été donnée. Cela donne la meilleurs compatibilité avec les plugins."
option-description-player-deny-hunger="&aUtilisé pour refusé la famine dans un protection.\n&dNote&f: Cela ne donne pas l'abilité de gagner de la famine au joueur, ça supprime l'abilité de cause de la famine si défini. Cela donne la meilleurs compatibilité avec les plugins."
option-description-player-deny-hunger="&aUtilisé pour refuser la famine dans une protection.\n&dNote&f: Cela ne donne pas l'abilité de gagner de la famine au joueur, ça supprime l'abilité de cause de la famine si défini. Cela donne la meilleurs compatibilité avec les plugins."
option-description-player-gamemode="&aUtilisé pour déterminer le gamemode d'un joueur dans un protection."
option-description-player-health-regen="&aUtilisé pour définir le nombre de vie régénéré pour un joueur dans la protection.\n&dNote&f: Si le joueur a la vie au maximum, cela n'aura pas d'effet. \n&dNote&f: Une valeur de&6-1&f désactive cette option."
option-description-player-health-regen="&aUtilisé pour définir le nombre de vies régénérée pour un joueur dans la protection.\n&dNote&f: Si le joueur a la vie au maximum, cela n'aura pas d'effet. \n&dNote&f: Une valeur de&6-1&f désactive cette option."
option-description-player-keep-inventory="&aUtilisé pour déterminer si un joueur à le droit de garder son inventaire après la mort dans une protection."
option-description-player-keep-level="&aUtilisé pour détermine si un joueur à le droit de garder son niveau après la mort dans une protection."
option-description-player-keep-level="&aUtilisé pour déterminer si un joueur à le droit de garder son niveau après la mort dans une protection."
option-description-player-walk-speed="&aUtilisé pour définir la vitesse de marche dans une protection.\n&dNote&f: Une valeur de &6-1&f désactive cette option."
option-description-player-weather="&aUtilisé pour définir la météo d'un joueur dans une protection."
option-description-radius-inspect="&aLe rayon de recherche pour les protections à proximité lors de l'inspection."
option-description-radius-list="&aLe rayon en blocs utilisés pour lister les protections à proximité."
option-description-tax-expiration="&aNombre de jour après ne pas avoir payé les taxes avant que la protection soi mise sous demeure.\n&dNote&f: Une mise sous demeure signifie que tu n'auras plus accès à la construction ou l'intération avec la protection jusqu'au paiement des taxes."
option-description-tax-expiration-days-keep="&aNombre de jour pour garder une protection basique mise sous demeure et avant expiration.\n&dNote&f: Lors de l'expiration, une protection peut soit être restaurée à son état d'origine ou supprimée. Cela dépend de la configuration du serveur. Contact un administrateur pour plus d'information."
option-description-tax-expiration="&aNombre de jour après ne pas avoir payé les taxes avant que la protection soi mise en demeure.\n&dNote&f: Une mise en demeure signifie que tu n'auras plus accès à la construction ou l'intération avec la protection jusqu'au paiement des taxes."
option-description-tax-expiration-days-keep="&aNombre de jour pour garder une protection basique mise en demeure et avant expiration.\n&dNote&f: Lors de l'expiration, une protection peut soit être restaurée à son état d'origine ou supprimée. Cela dépend de la configuration du serveur. Contacte un administrateur pour plus d'informations."
option-description-tax-rate="&aLe taux de taxe de la protection.\n&dNote&f: Le taux de taxe est calculé par le nombre de blocs de protection dans les protections basiques."
option-invalid-context="&cContext '&f{context}&c' invalide entré pour l'option &f{option}&c."
option-invalid-context="&cContexte '&f{context}&c' invalide entré pour l'option &f{option}&c."
option-invalid-target="&cCible '&f{target}&c' invalide entrée pour l'option &f{option}&c."
option-invalid-value="&cValeur '&6{value}&c' invalide entrée pour l'option &f{option}&c.\n&dNote&f: Cette option accepte uniquement les valeurs &f{type}&c."
option-not-found="&cL'option {option}&c n'a pas été trouvée."
option-not-set="{option}&f est actuellement non définit.\n&dNote&f: La valeur par défaut {value}&f de l'option sera active jusqu'à définition."
option-override-not-supported="&cProtection de type {type}&c ne supporte pas les options outrepassantes."
option-player-deny-flight="&cTu n'as pas accès au fly dans cette protection et a été téléporté dans une zone sécurisé au sol."
option-player-deny-flight="&cTu n'as pas accès au fly dans cette protection et a été téléporté dans une zone sécurisée au sol."
option-reset-success="&aOption de la protection remises par défaut avec succès."
option-set-target="&aDéfinis {type}&a de l'option &b{option}&a à {value}&a avec le contexte &7{contexts}&a sur la cible &6{target}&a."
option-ui-click-toggle="Clique ici pour changer la valeur de {option}&f."
option-ui-inherit-parent="Cette option est hérité depuis la protection parente {name}&f et ne peut &nPAS&f être changée."
option-ui-inherit-parent="Cette option est héritée depuis la protection parente {name}&f et ne peut &nPAS&f être changée."
option-ui-overridden="&cÉchec de la définition de l'option. L'option &f{option}&c a été outrepassée par un admin."
option-ui-override-no-permission="Cette option a été outrepassée par un administration et ne peut &n&cPAS&f être changée."
owner-admin="un administrateur"
@ -476,14 +484,14 @@ GriefDefender {
permission-claim-enter="&cTu n'as pas la permission de rentrer dans cette protection."
permission-claim-exit="&cTu n'as pas la permission de sortir de cette protection."
permission-claim-ignore="&cTu n'as pas la permission pour ignorer les protections {type}&c."
permission-claim-list="&cTu n'as pas la permission pour récupérer les informations concernants les protections d'autres joueurs."
permission-claim-list="&cTu n'as pas la permission pour récupérer les informations concernant les protections d'autres joueurs."
permission-claim-manage="&cTu n'as pas la permission pour gérer les protections {type}&c."
permission-claim-reset-flags="&cTu n'as pas la permission de remettre par défaut les flags dabs les protections {type}&c."
permission-claim-reset-flags-self="&cTu n'as pas la permission pour remettre par défaut les flags dans tes protections."
permission-claim-resize="&cTu n'as pas la permission pour redimensionner cette protection."
permission-claim-sale="&cTu n'as pas la permission pour vendre cette protection."
permission-claim-transfer-admin="&cTu n'as pas la permission de transférer les protections admin."
permission-clear="&cNettoyage des permissions de cette protection. Pour le définir pour l'ENSEMBLE des protections, sort de la zone des protections."
permission-clear="&cNettoyage des permissions de cette protection. Pour le définir pour l'ENSEMBLE des protections, sors de la zone des protections."
permission-clear-all="&cSeulement le propriétaire de la protection peut nettoyer l'ensemble des permissions."
permission-command-trust="&cTu n'as pas la permission pour utiliser ce type de confiance."
permission-cuboid="&cTu n'as pas la permission pour créer/redimensionner les protections basiques en mode 3D."
@ -502,7 +510,7 @@ GriefDefender {
permission-interact-item-block="&cTu n'as pas la permission d'utiliser l'objet &d{item}&c sur &b{block}&c."
permission-interact-item-entity="&cTu n'as pas la permission d'utiliser l'objet &d{item}&c sur &b{entity}&c."
permission-inventory-open="&cTu n'as pas la permission de &6{player}&c d'ouvrir &d{block}&c."
permission-item-drop="&cTu n'as pas la permission de &6{player}&c de jeter l'objet &d{item}&c dans cette protection."
permission-item-drop="&cTu n'as pas la permission de &6{player}&c pour jeter l'objet &d{item}&c dans cette protection."
permission-item-use="&cTu ne peut pas utiliser l'objet &d{item}&c dans cette protection."
permission-option-defaults="&cTu n'as pas la permission pour gérer les options par défaut."
permission-option-overrides="&cTu n'as pas la permission pour gérer les options outrepassant."
@ -516,23 +524,23 @@ GriefDefender {
permission-protected-portal="&cTu n'as pas la permission d'utiliser les portails dans les protections appartenant à &6{player}&c."
permission-trust="&cTu n'as pas la permission de &6{player}&c pour gérer les permissions ici."
permission-visual-claims-nearby="&cTu n'as pas la permission pour voir les protections à proximité."
player-accrued-blocks-exceeded="&cLe joueur &6{player}&c a un total de &6{total}&c et vas dépasser le maximum autorisé de bloc de protection gagné s'il est donné un nombre additionnel de &6{amount}&c bloc.\nSoit descend le nombre ou demande un admin de donner à l'utilisateur un outrepassement."
player-accrued-blocks-exceeded="&cLe joueur &6{player}&c a un total de &6{total}&c et vas dépasser le maximum autorisé de blocs de protection gagnés s'il est donné un nombre additionnel de &6{amount}&c bloc.\nDescends le nombre ou demande un admin de donner à l'utilisateur un outrepassement."
player-remaining-blocks-2d="&aTu peut protéger jusqu'à &6{block-amount}&a blocs supplémentaires."
player-remaining-blocks-3d="&aTu peut protéger jusqu'à &6{chunk-amount}&a chunks supplémentaire. &f({block-amount})"
playerinfo-ui-abandon-return-ratio="&eAbandonné, Ratio de retour&f : &a{ratio}"
playerinfo-ui-block-accrued="&eBloc gagné&f : &a{amount}&7(&d{block_amount}&f par heure&7)"
playerinfo-ui-block-bonus="&eBloc bonus&f : &a{amount}"
playerinfo-ui-block-accrued="&eBlocs gagnés&f : &a{amount}&7(&d{block_amount}&f par heure&7)"
playerinfo-ui-block-bonus="&eBlocs bonus&f : &a{amount}"
playerinfo-ui-block-initial="&eBloc Initial&f : &a{amount}"
playerinfo-ui-block-max-accrued="&eMaximum de bloc gagné&f : &a{amount}"
playerinfo-ui-block-remaining="&eBlocs restant&f : &a{amount}"
playerinfo-ui-block-max-accrued="&eMaximum de blocs gagnés&f : &a{amount}"
playerinfo-ui-block-remaining="&eBlocs restants&f : &a{amount}"
playerinfo-ui-block-total="&eTotal de Blocs&f : &a{amount}"
playerinfo-ui-chunk-total="&eTotal Chunk Protectable&f : %a{amount}"
playerinfo-ui-chunk-total="&eTotal Chunks Protectable&f : %a{amount}"
playerinfo-ui-claim-level="&eMin/Niveau de protection max&f : &a{level}"
playerinfo-ui-claim-size-limit="&eLimite de taille de protection&f : &a{limit}"
playerinfo-ui-claim-total="&eProtections Total&f : &a{amount}"
playerinfo-ui-economy-block-available-purchase="&eBlocs restant pour l'achat&f : &a{amount}"
playerinfo-ui-economy-block-cost="&ePrix de bloc de protection&f : &a{amount} par bloc"
playerinfo-ui-economy-block-sell-return="&ePrix de retour de bloc de proteciton vendu&f : &a{amount} par bloc"
playerinfo-ui-economy-block-available-purchase="&eBlocs restants pour l'achat&f : &a{amount}"
playerinfo-ui-economy-block-cost="&ePrix de blocs de protection&f : &a{amount} par bloc"
playerinfo-ui-economy-block-sell-return="&ePrix de retour de blocs de proteciton vendus&f : &a{amount} par bloc"
playerinfo-ui-last-active="&eDernière Activité&f : {date}"
playerinfo-ui-tax-current-rate="&eTaux de taxe actuel de la protection&f : &a{rate}"
playerinfo-ui-tax-global-claim-rate="&eTaux de taxe de la protection Global&f : &a{rate}"
@ -555,8 +563,8 @@ GriefDefender {
resize-overlap-subdivision="&cTu ne peut pas créer une sous-division ici car cela chevaucherait une autre sous-division. Considère &f/abandon&c pour la supprimer ou utilise la pelle sur un coin pour le redimensionner."
resize-same-location="&cTu dois sélectionner un bloc à un endroit différent pour redimensionner une protection."
resize-start="&aRedimensionnement de la protection. Utilise la pelle à nouveau au nouvel endroit pour ce coin."
resize-success-2d="&aProtection redimensionnée. Tu as encore &6{amount} &ablocs restant."
resize-success-3d="&aProtection redimensionnée. Tu as encore &6{amount} &achunks restant. &f({block-amount})"
resize-success-2d="&aProtection redimensionnée. Tu as encore &6{amount} &ablocs restants."
resize-success-3d="&aProtection redimensionnée. Tu as encore &6{amount} &achunks restants. &f({block-amount})"
result-type-change-deny="&cTu ne peut pas changer une protection en {type}."
result-type-change-not-admin="&cTu n'as pas la permission d'un administrateur pour changer le type en {type}&c."
result-type-child-same="Protection {type}&c ne peuvent pas avoir directement des protections enfant de type {type}&c."
@ -564,27 +572,29 @@ GriefDefender {
result-type-no-children="{type}&c ne peut pas contenir de protection enfant."
result-type-only-subdivision="{type}&c peut seulement contenir des sous-division."
result-type-requires-owner="&cImpossible de convertir la protection {type} en {target_type}. Le propriétaire est requis."
schematic-abandon-all-restore-warning="&6Es-tu sûr de vouloir &nabandonner&6 &cTOUTES&6 tes protections ? &cL'ENSEMBLE DES DONNÉES SERA PERDUES&f !&6 Tes protections seront restorées à leur état d'origine lors de la confirmation."
schematic-abandon-restore-warning="&6Es-tu sûr de vouloir &nabandonner&6 cette protection ? &cL'ENSEMBLE DES DONNÉES SERA PERDUES&f !&6 Cette protection sera restorée à son état d'origine lors de la confirmation."
schematic-create="&aCréation d'un sauvegarde du patron..."
schematic-create-complete="&asauvegarde du patron complète."
schematic-abandon-all-restore-warning="&6Es-tu sûr de vouloir &nabandonner&6 &cTOUTES&6 tes protections ? &cL'ENSEMBLE DES DONNÉES SERONT PERDUES&f !&6 Tes protections seront restorées à leur état d'origine lors de la confirmation."
schematic-abandon-restore-warning="&6Es-tu sûr de vouloir &nabandonner&6 cette protection ? &cL'ENSEMBLE DES DONNÉES SERONT PERDUES&f !&6 Cette protection sera restorée à son état d'origine lors de la confirmation."
schematic-create="&aCréation d'une sauvegarde du patron..."
schematic-create-complete="&aSauvegarde du patron complète."
schematic-create-fail="&cLe patron n'a pas pu être créé."
schematic-deleted="&aLe patron {name} a été supprimé."
schematic-none="&aIl n'y a pas de patron de sauvegarde pour cette protection."
schematic-none="&aIl n'y a pas de patron de sauvegardé pour cette protection."
schematic-restore-click="&aCLique ici pour restaurer le patron de la protection.\nNom: {name}\nCréé: {date}"
schematic-restore-confirmation="&6Es-tu sûr de vouloir restaurer ? Clique confirme va restaurer l'&ENSEMBLE&6 des données de la protection avec le patron. Utilisation avec prudence !"
schematic-restore-confirmed="&aTu as restauré la protection depuis le patron sauvegardé &b{name}&a avec succès."
spawn-not-set="&cPas de point d'apparition de la protection définis."
spawn-set-success="&aDéfinition du point d'apparition à &b{location}&a avec succès."
spawn-teleport="&aTéléportation au point d'apparition de la protection à &b{location}&a."
tax-claim-expired="&cCette protection a été mise en demeure à cause de taxe impayés. Le montant actuel du est '&a{amount}&c'.\nIl reste '&a{days}&c' jours pour effectuer le dépôt de paiement à la banque de protection pour lever la mise en demeure.\nL'échec de payer cette dette aura pour conséquence la suppression de la protection.\nNote: Pour déposer des fonds dans la banque de protection, utilises &f/claimbank&c deposit <nombre>."
tax-claim-expired="&cCette protection a été mise en demeure à cause de taxes impayées. Le montant actuel du est de '&a{amount}&c'.\nIl reste '&a{days}&c' jours pour effectuer le dépôt de paiement à la banque de protection pour lever la mise en demeure.\nNe pas payer cette dette aura pour conséquence la suppression de la protection.\nNote: Pour déposer des fonds dans la banque de protection, utilises &f/claimbank&c deposit <nombre>."
tax-claim-paid-balance="&aLa dette de taxe de '&6{amount}&a' a été payée. La mise en demeure a été levée et la protection est disponible pour usage."
tax-claim-paid-partial="&aLa dette de taxe de '&6{amount}&a' a été partiellement payée. Pour lever la mise en demeure de la protection, le reste de la taxe due de '&6{balance}&a' doit être payé."
tax-info="&aTon prélèvement de taxe d'un montant de &6{amount}&a va être prélevé depuis ton compte le &b{date}&a."
tax-past-due="&cTu as actuellement un défaut de paiement passé de taxe de &a{balance}&c qui nécessite d'être payé pour le &b{date}&c. L'échec de paiement de cette taxe entrainera la perte de la propriété."
teleport-combat-cancel="&cTéléportation annulée ! Tu ne peut pas te téléporter en combat. Trouve un endroit sécurisé et réessaye."
teleport-confirm="&aEs-tu sûr de vouloir te téléporter à {pos}? Clique confirme pour procéder."
teleport-delay-notice="&aTu seras téléporté dans {delay} secondes. Clique sur annuler pour arrêter."
teleport-no-safe-location="&cPas de zone sécurisée trouvé dans la protection pour téléporter !\n&aClique confirm pour téléporter malgré tout ou &autilise la commande '&f/claiminfo&a' pour définir une un point d'apparition sécurisé à la place."
teleport-move-cancel="&cTéléportation annulée ! Tu ne peux pas bouger lors d'une tentative de téléportation."
teleport-no-safe-location="&cPas de zone sécurisée trouvée dans la protection pour se téléporter !\n&aClique confirm pour téléporter malgré tout ou &autilise la commande '&f/claiminfo&a' pour définir une un point d'apparition sécurisé à la place."
teleport-success="&aTu as été téléporté à {name}&a."
title-accessor=ACCÉDANT
title-all=TOUS
title-builder=CONSTRUTEUR
@ -598,7 +608,7 @@ GriefDefender {
tool-not-equipped="&cTu n'as pas {tool}&c équipé."
town-chat-disabled="&aChat de Village désactivé."
town-chat-enabled="&aChat de Village activé."
town-create-not-enough-funds="&cTy n'as pas suffisamment de fond pour créer un village pour &a{amount}&c. Tu as actuellement un solde de &a{balance}&c et a besoin de &a{amount-needed}&c supplémentaire pour la création."
town-create-not-enough-funds="&cTy n'as pas suffisamment de fonds pour créer un village pour &a{amount}&c. Tu as actuellement un solde de &a{balance}&c et a besoin de &a{amount-needed}&c supplémentaire pour la création."
town-name="&aDéfinis le nom du village à {name}&a."
town-not-found="&cVillage non trouvé."
town-not-in="&cTu n'es pas dans un Village."

View File

@ -98,6 +98,7 @@ GriefDefender {
claim-greeting-clear="&aПриветствие при входе в регион удалено."
claim-ignore="&aИгнорирование регионов включено."
claim-last-active="&aВ последний раз активность в этой области зарегистрирована &6{date}&a."
claim-mode-start="{type}&a угол выбран! Нажмите ПКМ ещё раз на противоположный угол, чтобы создать прямоугольный регион. Для отмены и выхода из режима наберите &f/claim&a."
claim-name="&aУстановлено имя региона: &6{name}&a."
claim-no-claims="&cУ вас нет регионов."
claim-no-set-home="&cВы должны быть вписаны в регион, чтобы использовать /sethome."