diff --git a/pom.xml b/pom.xml
index ed33b8e..5d4fcc5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -67,7 +67,7 @@
-LOCAL
- 1.2.1
+ 1.3.0
BentoBoxWorld_ChunkBlock
bentobox-world
diff --git a/src/main/java/world/bentobox/chunkblock/ChunkBlockPlaceholders.java b/src/main/java/world/bentobox/chunkblock/ChunkBlockPlaceholders.java
index 902c0ec..14ea94d 100644
--- a/src/main/java/world/bentobox/chunkblock/ChunkBlockPlaceholders.java
+++ b/src/main/java/world/bentobox/chunkblock/ChunkBlockPlaceholders.java
@@ -68,6 +68,7 @@ public ChunkBlockPlaceholders(ChunkBlock addon,
placeholdersManager.registerPlaceholder(addon, "island_chunk_credit", this::getIslandChunkCredit);
placeholdersManager.registerPlaceholder(addon, "island_ring", this::getIslandRing);
placeholdersManager.registerPlaceholder(addon, "island_rings_complete", this::getIslandRingsComplete);
+ placeholdersManager.registerPlaceholder(addon, "island_next_ring_remaining", this::getNextRingRemaining);
placeholdersManager.registerPlaceholder(addon, "island_title", this::getIslandTitle);
placeholdersManager.registerPlaceholder(addon, "island_trophies", this::getIslandTrophies);
}
@@ -167,6 +168,24 @@ public String getIslandRingsComplete(User user) {
return getUsersIsland(user).map(i -> String.valueOf(addon.getChunkManager().completedRings(i))).orElse("");
}
+ /**
+ * @param user user
+ * @return how many chunks remain to complete the user's island's next ring, or "0" if
+ * all rings are done
+ */
+ public String getNextRingRemaining(User user) {
+ if (user == null || user.getUniqueId() == null) {
+ return "";
+ }
+ return getUsersIsland(user).map(i -> {
+ int next = addon.getChunkManager().completedRings(i) + 1;
+ if (next > addon.getChunkManager().maxRingRadius(i)) {
+ return "0";
+ }
+ return String.valueOf(addon.getChunkManager().chunksRemainingInRing(i, next));
+ }).orElse("");
+ }
+
/**
* Get the user's owned island. Returns the island owned by the user, not a team
* island they may be visiting as a member. If the user owns more than one island,
diff --git a/src/main/java/world/bentobox/chunkblock/Settings.java b/src/main/java/world/bentobox/chunkblock/Settings.java
index bc5a338..4defcee 100644
--- a/src/main/java/world/bentobox/chunkblock/Settings.java
+++ b/src/main/java/world/bentobox/chunkblock/Settings.java
@@ -314,8 +314,9 @@ public class Settings implements WorldSettings {
@ConfigComment("Admins can change protection sizes for players individually using /chadmin range set ")
@ConfigComment("or set this permission: chunkblock.island.range.")
@ConfigComment("ChunkBlock: this must cover the largest unlockable ring of chunks (see chunkblock.max-chunks).")
+ @ConfigComment("With max-chunks 441 (21x21, ring 10) the minimum needed is 168.")
@ConfigEntry(path = "world.protection-range")
- private int islandProtectionRange = 240;
+ private int islandProtectionRange = 168;
@ConfigComment("Start islands at these coordinates. This is where new islands will start in the")
@ConfigComment("world. These must be a factor of your island distance, but the plugin will auto")
diff --git a/src/main/java/world/bentobox/chunkblock/chunks/ChunkManager.java b/src/main/java/world/bentobox/chunkblock/chunks/ChunkManager.java
index 0fb1b74..f461f73 100644
--- a/src/main/java/world/bentobox/chunkblock/chunks/ChunkManager.java
+++ b/src/main/java/world/bentobox/chunkblock/chunks/ChunkManager.java
@@ -207,6 +207,28 @@ public int completedRings(Island island) {
return ring;
}
+ /**
+ * @param island the island
+ * @param ring the ring radius to check
+ * @return how many chunks in the ring are still locked; 0 means the ring is complete
+ */
+ public int chunksRemainingInRing(Island island, int ring) {
+ if (ring <= 0) {
+ return 0;
+ }
+ OneBlockIslands data = addon.getOneBlocksIsland(island);
+ int missing = 0;
+ for (int d = -ring; d <= ring; d++) {
+ if (!data.isChunkUnlocked(d, -ring)) missing++;
+ if (!data.isChunkUnlocked(d, ring)) missing++;
+ if (d != -ring && d != ring) {
+ if (!data.isChunkUnlocked(-ring, d)) missing++;
+ if (!data.isChunkUnlocked(ring, d)) missing++;
+ }
+ }
+ return missing;
+ }
+
/**
* @param island the island
* @return the island's unlocked chunk offsets in unlock order (x and z are chunk
diff --git a/src/main/java/world/bentobox/chunkblock/commands/island/IslandChunksCommand.java b/src/main/java/world/bentobox/chunkblock/commands/island/IslandChunksCommand.java
index caa2938..89a6685 100644
--- a/src/main/java/world/bentobox/chunkblock/commands/island/IslandChunksCommand.java
+++ b/src/main/java/world/bentobox/chunkblock/commands/island/IslandChunksCommand.java
@@ -80,8 +80,17 @@ public boolean execute(User user, String label, List args) {
user.sendMessage("chunkblock.chunks.info", "[unlocked]", String.valueOf(unlocked), "[max]",
String.valueOf(max), "[credit]", String.valueOf(credit), "[cost]",
String.valueOf(cm.getChunkCost()));
- user.sendMessage("chunkblock.chunks.rings", "[rings]", String.valueOf(cm.completedRings(island)), "[max]",
- String.valueOf(cm.maxRingRadius(island)));
+ int completedRings = cm.completedRings(island);
+ int maxRing = cm.maxRingRadius(island);
+ user.sendMessage("chunkblock.chunks.rings", "[rings]", String.valueOf(completedRings), "[max]",
+ String.valueOf(maxRing));
+ int nextRing = completedRings + 1;
+ if (nextRing <= maxRing) {
+ int remaining = cm.chunksRemainingInRing(island, nextRing);
+ int total = 8 * nextRing;
+ user.sendMessage("chunkblock.chunks.ring-progress", "[ring]", String.valueOf(nextRing),
+ "[remaining]", String.valueOf(remaining), "[total]", String.valueOf(total));
+ }
showMap(user, island, unlocked, max);
return true;
}
diff --git a/src/main/java/world/bentobox/chunkblock/commands/island/IslandLedgerCommand.java b/src/main/java/world/bentobox/chunkblock/commands/island/IslandLedgerCommand.java
new file mode 100644
index 0000000..76a61d7
--- /dev/null
+++ b/src/main/java/world/bentobox/chunkblock/commands/island/IslandLedgerCommand.java
@@ -0,0 +1,127 @@
+package world.bentobox.chunkblock.commands.island;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Optional;
+import java.util.UUID;
+
+import world.bentobox.bentobox.api.commands.CompositeCommand;
+import world.bentobox.bentobox.api.user.User;
+import world.bentobox.bentobox.database.objects.Island;
+import world.bentobox.bentobox.util.Util;
+import world.bentobox.chunkblock.ChunkBlock;
+import world.bentobox.chunkblock.activity.ActivityManager;
+import world.bentobox.chunkblock.activity.CounterType;
+
+/**
+ * /ch ledger — shows each team member's contributions to the island: blocks broken,
+ * chunks claimed, and rings completed. Reads from the activity counters foundation;
+ * the ledger itself adds no persistence.
+ *
+ * @author tastybento
+ */
+public class IslandLedgerCommand extends CompositeCommand {
+
+ private static final String REF = "chunkblock.commands.ledger.";
+
+ private ChunkBlock addon;
+
+ public IslandLedgerCommand(CompositeCommand islandCommand, String label, String[] aliases) {
+ super(islandCommand, label, aliases);
+ }
+
+ @Override
+ public void setup() {
+ setDescription(REF + "description");
+ setParametersHelp(REF + "parameters");
+ setOnlyPlayer(true);
+ setPermission("island.ledger");
+ addon = getAddon();
+ }
+
+ @Override
+ public boolean canExecute(User user, String label, List args) {
+ if (!Util.sameWorld(getWorld(), user.getWorld())) {
+ user.sendMessage("general.errors.wrong-world");
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public boolean execute(User user, String label, List args) {
+ Optional optionalIsland = getIslands().getIslandAt(user.getLocation());
+ if (optionalIsland.isEmpty()) {
+ user.sendMessage("general.errors.not-on-island");
+ return false;
+ }
+ Island island = optionalIsland.get();
+ ActivityManager am = addon.getActivityManager();
+ if (am == null) {
+ return false;
+ }
+
+ int window = parseWindow(args);
+ String windowLabel = window <= 0
+ ? user.getTranslation(REF + "all-time")
+ : user.getTranslation(REF + "last-days", "[days]", String.valueOf(window));
+
+ user.sendMessage(REF + "header", "[window]", windowLabel);
+
+ List rows = buildRows(island, am, window);
+ if (rows.isEmpty()) {
+ user.sendMessage(REF + "no-activity");
+ return true;
+ }
+
+ for (MemberRow row : rows) {
+ user.sendMessage(REF + "row",
+ "[name]", row.name,
+ "[blocks]", String.valueOf(row.blocks),
+ "[chunks]", String.valueOf(row.chunks),
+ "[rings]", String.valueOf(row.rings));
+ }
+
+ long totalBlocks = rows.stream().mapToLong(r -> r.blocks).sum();
+ long totalChunks = rows.stream().mapToLong(r -> r.chunks).sum();
+ long totalRings = rows.stream().mapToLong(r -> r.rings).sum();
+ user.sendMessage(REF + "total",
+ "[blocks]", String.valueOf(totalBlocks),
+ "[chunks]", String.valueOf(totalChunks),
+ "[rings]", String.valueOf(totalRings));
+
+ return true;
+ }
+
+ private int parseWindow(List args) {
+ if (args.isEmpty()) {
+ return 0;
+ }
+ try {
+ return Math.max(0, Integer.parseInt(args.get(0)));
+ } catch (NumberFormatException e) {
+ return 0;
+ }
+ }
+
+ private List buildRows(Island island, ActivityManager am, int window) {
+ List rows = new ArrayList<>();
+ for (UUID uuid : am.getContributors(island)) {
+ long blocks = am.getCount(island, uuid, CounterType.MAGIC_BLOCKS, window);
+ long chunks = am.getCount(island, uuid, CounterType.CHUNKS_CLAIMED, window)
+ + am.getCount(island, uuid, CounterType.CHUNKS_RECLAIMED, window);
+ long rings = am.getCount(island, uuid, CounterType.RINGS_COMPLETED, window);
+ if (blocks > 0 || chunks > 0 || rings > 0) {
+ String name = addon.getPlayers().getName(uuid);
+ rows.add(new MemberRow(name == null || name.isEmpty() ? uuid.toString() : name,
+ blocks, chunks, rings));
+ }
+ }
+ rows.sort(Comparator.comparingLong(MemberRow::blocks).reversed());
+ return rows;
+ }
+
+ private record MemberRow(String name, long blocks, long chunks, long rings) {
+ }
+}
diff --git a/src/main/java/world/bentobox/chunkblock/commands/island/IslandTitleCommand.java b/src/main/java/world/bentobox/chunkblock/commands/island/IslandTitleCommand.java
index 7ea83af..6ac089e 100644
--- a/src/main/java/world/bentobox/chunkblock/commands/island/IslandTitleCommand.java
+++ b/src/main/java/world/bentobox/chunkblock/commands/island/IslandTitleCommand.java
@@ -60,6 +60,9 @@ public boolean execute(User user, String label, List args) {
return false;
}
if (args.isEmpty()) {
+ return toggleTitle(user, island);
+ }
+ if ("list".equalsIgnoreCase(args.get(0))) {
showTitles(user, island);
return true;
}
@@ -105,6 +108,25 @@ private void showTitles(User user, Island island) {
}
}
+ private boolean toggleTitle(User user, Island island) {
+ String active = addon.getTrophyManager().getActiveTitleText(island);
+ if (!active.isEmpty()) {
+ addon.getTrophyManager().setActiveTitle(island, null);
+ user.sendMessage("chunkblock.commands.title.toggled-off", TITLE_VAR, active);
+ return true;
+ }
+ // No active title — try to activate the first earned trophy that carries one
+ Optional first = addon.getTrophyManager().getEarned(island).stream()
+ .filter(t -> t.title() != null).findFirst();
+ if (first.isEmpty()) {
+ user.sendMessage("chunkblock.commands.title.none-earned-yet");
+ return false;
+ }
+ addon.getTrophyManager().setActiveTitle(island, first.get().id());
+ user.sendMessage("chunkblock.commands.title.toggled-on", TITLE_VAR, first.get().title());
+ return true;
+ }
+
@Override
public Optional> tabComplete(User user, String alias, List args) {
Island island = getIslands().getIsland(getWorld(), user);
@@ -112,6 +134,7 @@ public Optional> tabComplete(User user, String alias, List
return Optional.empty();
}
List options = new ArrayList<>();
+ options.add("list");
options.add(CLEAR);
addon.getTrophyManager().getEarned(island).stream().filter(t -> t.title() != null)
.map(Trophy::id).forEach(options::add);
diff --git a/src/main/java/world/bentobox/chunkblock/commands/island/PlayerCommand.java b/src/main/java/world/bentobox/chunkblock/commands/island/PlayerCommand.java
index b99d6db..ffbf840 100644
--- a/src/main/java/world/bentobox/chunkblock/commands/island/PlayerCommand.java
+++ b/src/main/java/world/bentobox/chunkblock/commands/island/PlayerCommand.java
@@ -33,6 +33,8 @@ public void setup() {
settings.getSetCountCommand().split(" "));
// Chunk territory info and map
new IslandChunksCommand(this, "chunks", new String[] {"chunks"});
+ // Contribution ledger
+ new IslandLedgerCommand(this, "ledger", new String[] {"ledger"});
// Trophy titles
new IslandTitleCommand(this, "title", new String[] {"title"});
// Force block respawn
diff --git a/src/main/java/world/bentobox/chunkblock/listeners/BossBarListener.java b/src/main/java/world/bentobox/chunkblock/listeners/BossBarListener.java
index 9610f78..a065544 100644
--- a/src/main/java/world/bentobox/chunkblock/listeners/BossBarListener.java
+++ b/src/main/java/world/bentobox/chunkblock/listeners/BossBarListener.java
@@ -198,10 +198,19 @@ private void tryToShowBossBar(UUID uuid, Island island) {
int numBlocksToGo = addon.getOneBlockManager().getNextPhaseBlocks(obi);
int phaseBlocks = addon.getOneBlockManager().getPhaseBlocks(obi);
int done = phaseBlocks - numBlocksToGo;
+ String titlePrefix = "";
+ if (addon.getTrophyManager() != null) {
+ String activeTitle = addon.getTrophyManager().getActiveTitleText(island);
+ if (!activeTitle.isEmpty()) {
+ titlePrefix = user.getTranslationOrNothing("chunkblock.bossbar.title-prefix",
+ "[title]", activeTitle);
+ }
+ }
String translation = user.getTranslationOrNothing("chunkblock.bossbar.status", "[togo]",
String.valueOf(numBlocksToGo), "[total]", String.valueOf(phaseBlocks), "[done]", String.valueOf(done),
"[phase-name]", obi.getPhaseName(), "[percent-done]",
Math.round(addon.getOneBlockManager().getPercentageDone(obi)) + "%");
+ translation = translation.replace("[island-title]", titlePrefix);
bar.setTitle(translation);
// Add to user if they don't have it already
Player player = Bukkit.getPlayer(uuid);
diff --git a/src/main/java/world/bentobox/chunkblock/listeners/LevelListener.java b/src/main/java/world/bentobox/chunkblock/listeners/LevelListener.java
index a76f81b..fa1d085 100644
--- a/src/main/java/world/bentobox/chunkblock/listeners/LevelListener.java
+++ b/src/main/java/world/bentobox/chunkblock/listeners/LevelListener.java
@@ -27,6 +27,7 @@
import world.bentobox.chunkblock.events.ChunkUnlockEvent;
import world.bentobox.chunkblock.events.RingCompleteEvent;
import world.bentobox.level.events.IslandLevelCalculatedEvent;
+import world.bentobox.level.events.IslandPreLevelEvent;
/**
* Watches island level changes from the Level addon. Levels are chunk currency here:
@@ -44,6 +45,27 @@ public LevelListener(ChunkBlock addon) {
this.addon = addon;
}
+ /**
+ * Shrinks the island's protection range to cover only the unlocked chunks so the
+ * Level addon scans the playable area instead of the entire 240-block default.
+ * The calculator reads the range in the same tick; the original is restored on
+ * the next tick.
+ */
+ @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
+ public void onIslandPreLevel(IslandPreLevelEvent e) {
+ Island island = e.getIsland();
+ if (island == null || !addon.inWorld(island.getWorld())) {
+ return;
+ }
+ int ring = addon.getChunkManager().currentRing(island);
+ int needed = ring * 16 + ChunkManager.CHUNK_CENTER;
+ int stored = island.getProtectionRange();
+ if (needed < stored) {
+ island.setProtectionRange(needed);
+ Bukkit.getScheduler().runTask(addon.getPlugin(), () -> island.setProtectionRange(stored));
+ }
+ }
+
/**
* Fires after every island level calculation, before results are saved. Never
* cancelled here — we only read the level.
@@ -226,6 +248,10 @@ private void rewardRing(Island island, int ring) {
"[chunks]", chunkText));
}
celebrateRing(island, ring);
+ if (addon.getActivityManager() != null) {
+ addon.getActivityManager().recordActivity(island, null,
+ world.bentobox.chunkblock.activity.CounterType.RINGS_COMPLETED, 1);
+ }
List ownerCommands = addon.getSettings().getRingCommands();
if (!ownerCommands.isEmpty()) {
runCommands(ownerCommands, ringText, chunkText, "[owner]", playerName(island.getOwner()));
diff --git a/src/main/resources/locales/cs.yml b/src/main/resources/locales/cs.yml
index 2557fad..6505acf 100644
--- a/src/main/resources/locales/cs.yml
+++ b/src/main/resources/locales/cs.yml
@@ -26,9 +26,17 @@ protection:
Zobrazuje stav
pro každou fázi
v Action Baru.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Uzavřít Kusy
+ description: |-
+ Hodnost, která může utratit
+ úroveň kreditu ostrova
+ aby si nárokovala nové kusy.
+ hint: "Vaše hodnost nemůže nárokovat kusy pro tento ostrov!"
chunkblock:
bossbar:
title: Bloky zbývající
+ title-prefix: "[title] | "
status: 'Fázové bloky & B [done] & d / & b [total]'
color: RED
style: SEGMENTED_20
@@ -36,6 +44,41 @@ chunkblock:
actionbar:
status: "Fáze: [phase-name] | Bloky: [done] / [total] | Postup: [percent-done]"
not-active: "Action Bar není pro tento ostrov aktivní"
+ trophies:
+ awarded: "Trofej získána: [name]!"
+ title-available: "Váš ostrov získal titul [title] — přepínejte jej zapínáním a vypínáním pomocí /ch title."
+ chunks:
+ entry-denied: "Ten kus je zamčený."
+ locked: "Nemůžeš se tam dotknout — kus je zamčený."
+ claim-hint: "Zasáhni hranici, aby ses nárokoval tento kus za [cost] úroveň(í)! Máš [credit] úroveň(í) kreditu."
+ claim-confirm: "Nárokovat si tento kus za [cost] úroveň(í)? To ti zanechá [after] úroveň(í) kreditu. Plíž se a zasáhni hranici znovu během [seconds]s pro potvrzení."
+ no-credit: "Potřebuješ [needed] více úroveň(í) kreditu pro nárok na tento kus."
+ beyond-limit: "Ten kus je za oblastí ochrany tvého ostrova."
+ claimed: "Kus nárokován! Tvůj ostrov má nyní [number] kusů. Zbývající kredit: [credit] úroveň(í)."
+ credit: "Můžeš si nárokovat [count] více kusů! Jdi k své hranici a zasáhni ji kde chceš růst."
+ relocked: "Úroveň tvého ostrova klesla — [count] kus(y) znovu zamčen(y), nejnovější první. Získej úrovně zpět, abys si je znovu nárokoval!"
+ ejected: "Kus, ve kterém si byl, byl znovu zamčen, takže jsi byl přesunut do bezpečí."
+ max-reached: "Tvůj ostrov dosáhl maximální velikosti [number] kusů!"
+ ring-complete: "Kruh [ring] dokončen! Celý kruh kolem tvého ostrova je tvůj — [chunks] kusů celkem."
+ ring-broadcast: "Ostrov [name] uzavřel kruh [ring] — [chunks] kusů a stále roste!"
+ rings: "Dokončené kruhy: [rings] z [max]."
+ ring-progress: "Kruh [ring]: [remaining]/[total] kusů zbývá."
+ sethome-denied: "Nemůžeš nastavit domov v zamčeném kusu."
+ info: "Kusy: [unlocked]/[max]. Kredit: [credit] úroveň(í) — kus stojí [cost]."
+ map:
+ title: "Území tvého ostrova ([unlocked]/[max] kusů):"
+ row: "[row]"
+ legend: "■ tvůj ▣ se dá nárokovat ([cost] úroveň(í) každý) □ zamčený ◎ střed ◆ ty"
+ you-are-here: "Stojíš na označeném kusu."
+ dialog:
+ close: "Zavřít"
+ tooltip:
+ center: "Střední kus — tvůj kouzelný blok je zde."
+ owned: "Kus [x], [z] — tvůj."
+ claimable: "Kus [x], [z] — se dá nárokovat za [cost] úroveň(í). Jdi na tu hranici a zasáhni ji."
+ no-credit: "Kus [x], [z] — stojí [cost] úroveň(í). Potřebuješ [needed] více úroveň(í) kreditu."
+ locked: "Kus [x], [z] — zamčený. Nárokuj si cestu ven k němu."
+ you-are-here: "Stojíš zde."
commands:
admin:
setcount:
@@ -57,6 +100,45 @@ chunkblock:
parameters:
description: zobrazí v konzoli kontrolu pravděpodobnosti fází
see-console: 'Podívejte se do konzoly pro zprávu'
+ bypass:
+ description: "přepnout vynucení zámku kusu sebe"
+ "on": "Teď obchází zámky kusů. Vizuály hranic jsou pro tebe skryté."
+ "off": "Zámky kusů se na tebe znovu aplikují."
+ chunks:
+ parameters: " [reset]"
+ description: "inspekovat odemčené kusy hráče nebo je znovu zamknout na začátek"
+ info: "[name]: [number]/[max] kusů, [spent] úroveň(í) utraceno, [credit] kredit."
+ reset: "Kusy [name] byly znovu zamčeny na pouhý střední kus."
+ phases:
+ description: "otevřít editor pořadí fází"
+ no-index: "Není načten žádný index fází, takže fáze nelze přeuspořádat"
+ saved: "Pořadí fází uloženo a aplikováno"
+ save-failed: "Nelze uložit pořadí fází! Chyby najdete v konzoli"
+ gui:
+ title: "Pořadí Fází"
+ info-title: "Jak používat"
+ instructions: |-
+ Klikni na fázi, aby si jsi ji zvednul,
+ pak klikni kde by měla jít.
+ Pravý klik přepne fázi
+ zapnuto nebo vypnuto.
+ repeat: "Po poslední fázi se počet skočí na [number]"
+ phase-name: "[name]"
+ start: "Začátek: [number]"
+ length: "Délka: [number]"
+ disabled: "Zakázáno"
+ version-locked: "Potřebuje Minecraft [version]+"
+ pick-up: "Klikni pro přesunutí"
+ toggle: "Pravý klik pro přepnutí"
+ set-length: "Shift+levý klik pro nastavení délky"
+ drop-here: "Klikni pro upuštění zde"
+ drop-at-end: "Upustit na konec"
+ held: "Pohybování: [name]"
+ put-back: "Klikni pro vrácení"
+ enter-length: "Zadej novou délku v chatu pro [name] - v současné době je [number] bloků. Zadej cancel pro zachování."
+ invalid-length: "Délka musí být celé číslo vyšší než 0"
+ length-cancelled: "Délka nezměněna"
+ cancel-word: "cancel"
count:
description: zobrazit počet bloků a fázi
info: 'Jste na bloku [number] ve fázi [name]'
@@ -85,6 +167,31 @@ chunkblock:
description: respawnuje magický blok v situacích, kdy zmizí
block-exist: 'Blok existuje, nevyžadoval respawning. Označil jsem to za vás.'
block-respawned: 'Blok byl znovu vytvořen.'
+ chunks:
+ description: "zobrazit tvoje odemčené kusy a mapu tvého území"
+ ledger:
+ description: "zobrazit příspěvky členů týmu"
+ parameters: "[days]"
+ header: "Ledger příspěvků ostrova ([window])"
+ all-time: "celkově"
+ last-days: "poslední [days] dní"
+ row: " - [name]: [blocks] bloků, [chunks] kusů, [rings] kruhů"
+ total: "Celkem: [blocks] bloků, [chunks] kusů, [rings] kruhů"
+ no-activity: "Zatím nebyla zaznamenána žádná aktivita."
+ title:
+ description: "přepínat titul svého ostrova zapínáním/vypínáním, nebo si vybrat jeden"
+ parameters: "[list | trophy-id | none]"
+ header: "Trofeje tvého ostrova:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — titul [title] (/ch title [id])"
+ none-earned-yet: "Tvůj ostrov si zatím nevydělal žádné trofeje."
+ active: "Aktivní titul: [title]"
+ no-active: "Žádný titul není aktivní. Vyber si jeden pomocí /ch title."
+ set: "Titul tvého ostrova je nyní [title]."
+ cleared: "Tvůj ostrov už neukazuje titul."
+ toggled-on: "Titul ostrova [title] se teď zobrazuje."
+ toggled-off: "Titul ostrova [title] se teď skrývá."
+ not-earned: "Tvůj ostrov si nevydělal trofej s tímto titulem."
phase:
insufficient-level: Tvůj ostrov je na příliš nízké úrovni, musí být alespoň [number].
insufficient-funds: Nemáš dostatečné prostředky! Musíš mít alespoň [number].
diff --git a/src/main/resources/locales/de.yml b/src/main/resources/locales/de.yml
index be7880a..532e5fd 100644
--- a/src/main/resources/locales/de.yml
+++ b/src/main/resources/locales/de.yml
@@ -26,9 +26,17 @@ protection:
Zeigt einen Status
für jede Phase
in der Action-Leiste.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Chunks Beanspruchen
+ description: |-
+ Rang, der die Levelguthaben
+ der Insel ausgeben kann,
+ um neue Chunks zu beanspruchen.
+ hint: "Dein Rang kann für diese Insel keine Chunks beanspruchen!"
chunkblock:
bossbar:
title: Verbleibende Blöcke
+ title-prefix: "[title] | "
status: 'Phasenblöcke [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,6 +44,41 @@ chunkblock:
actionbar:
status: "Phase: [phase-name] | Blöcke: [done] / [total] | Fortschritt: [percent-done]"
not-active: "Action Bar ist für diese Insel nicht aktiv"
+ trophies:
+ awarded: "Trophäe verdient: [name]!"
+ title-available: "Ihre Insel hat den Titel [title] verdient — schalten Sie ihn mit /ch title ein und aus."
+ chunks:
+ entry-denied: "Dieser Chunk ist gesperrt."
+ locked: "Du kannst das nicht anfassen — der Chunk ist gesperrt."
+ claim-hint: "Schlag die Grenze, um diesen Chunk für [cost] Level zu beanspruchen! Du hast [credit] Level Guthaben."
+ claim-confirm: "Diesen Chunk für [cost] Level beanspruchen? Das hinterlässt dir [after] Level Guthaben. Schleichen und schlag die Grenze erneut innerhalb von [seconds]s um zu bestätigen."
+ no-credit: "Du brauchst [needed] mehr Level Guthaben, um diesen Chunk zu beanspruchen."
+ beyond-limit: "Dieser Chunk liegt über dem Schutzgebiet deiner Insel hinaus."
+ claimed: "Chunk beansprucht! Deine Insel hat jetzt [number] Chunks. Verbleibendes Guthaben: [credit] Level."
+ credit: "Du kannst [count] weitere Chunk(s) beanspruchen! Geh zu deiner Grenze und schlag sie dort, wo du wachsen möchtest."
+ relocked: "Dein Insellevel ist gesunken — [count] Chunk(s) erneut gesperrt, neueste zuerst. Gewinne die Level zurück, um sie erneut zu beanspruchen!"
+ ejected: "Der Chunk, in dem du warst, wurde erneut gesperrt, daher wurdest du in Sicherheit verlegt."
+ max-reached: "Deine Insel hat die maximale Größe von [number] Chunks erreicht!"
+ ring-complete: "Ring [ring] vollständig! Der ganze Ring um deine Insel gehört dir — [chunks] Chunks insgesamt."
+ ring-broadcast: "Die Insel von [name] hat Ring [ring] geschlossen — [chunks] Chunks und wächst noch immer!"
+ rings: "Vervollständigte Ringe: [rings] von [max]."
+ ring-progress: "Ring [ring]: [remaining]/[total] Chunks bis zum Ende."
+ sethome-denied: "Du kannst keinen Heimatort in einem gesperrten Chunk setzen."
+ info: "Chunks: [unlocked]/[max]. Guthaben: [credit] Level — ein Chunk kostet [cost]."
+ map:
+ title: "Dein Inselsgebiet ([unlocked]/[max] Chunks):"
+ row: "[row]"
+ legend: "■ dein ▣ zu beanspruchen ([cost] Level(s) je) □ gesperrt ◎ Mitte ◆ du"
+ you-are-here: "Du bist auf dem markierten Chunk."
+ dialog:
+ close: "Schließen"
+ tooltip:
+ center: "Der mittlere Chunk — dein Zauberblock ist hier."
+ owned: "Chunk [x], [z] — deiner."
+ claimable: "Chunk [x], [z] — zu beanspruchen für [cost] Level. Geh zu dieser Grenze und schlag sie."
+ no-credit: "Chunk [x], [z] — kostet [cost] Level. Du brauchst [needed] mehr Level Guthaben."
+ locked: "Chunk [x], [z] — gesperrt. Beanspruche deinen Weg dorthin."
+ you-are-here: "Du stehst hier."
commands:
admin:
setcount:
@@ -61,6 +104,45 @@ chunkblock:
Zeigen Sie eine Überprüfung der Phasenwahrscheinlichkeiten in der
Konsole an
see-console: 'Den Bericht finden Sie in der Konsole'
+ bypass:
+ description: "Durchsetzung von Chunk-Locks für dich selbst umschalten"
+ "on": "Du umgehst jetzt Chunk-Locks. Grenzenvisionen sind für dich verborgen."
+ "off": "Chunk-Locks gelten wieder für dich."
+ chunks:
+ parameters: " [reset]"
+ description: "freigeschaltete Chunks eines Spielers inspizieren oder auf den Anfang zurücksetzen"
+ info: "[name]: [number]/[max] Chunks, [spent] Level ausgegeben, [credit] Guthaben."
+ reset: "Chunks von [name] wurden auf nur den mittleren Chunk zurückgesetzt."
+ phases:
+ description: "öffne den Editor für die Reihenfolge der Phasen"
+ no-index: "Kein Phasenindex geladen, daher können Phasen nicht neu geordnet werden"
+ saved: "Phasenreihenfolge gespeichert und angewendet"
+ save-failed: "Phasenreihenfolge konnte nicht gespeichert werden! Fehler in der Konsole"
+ gui:
+ title: "Reihenfolge der Phasen"
+ info-title: "Wie man es benutzt"
+ instructions: |-
+ Klicke auf eine Phase um sie zu nehmen,
+ dann klicke wo sie hin sollte.
+ Rechtsklick schaltet eine Phase
+ ein oder aus.
+ repeat: "Nach der letzten Phase springt die Zählung zu [number]"
+ phase-name: "[name]"
+ start: "Start: [number]"
+ length: "Länge: [number]"
+ disabled: "Deaktiviert"
+ version-locked: "Benötigt Minecraft [version]+"
+ pick-up: "Klick um zu verschieben"
+ toggle: "Rechtsklick zum Umschalten"
+ set-length: "Shift+Linksklick zum Einstellen der Länge"
+ drop-here: "Klick um hier zu fallen"
+ drop-at-end: "Am Ende fallen lassen"
+ held: "Verschieben: [name]"
+ put-back: "Klick zum Zurückgeben"
+ enter-length: "Geben Sie eine neue Länge im Chat für [name] ein - derzeit [number] Blöcke. Geben Sie cancel ein um zu behalten."
+ invalid-length: "Die Länge muss eine ganze Zahl größer als 0 sein"
+ length-cancelled: "Länge nicht geändert"
+ cancel-word: "cancel"
count:
description: Zeige die Blockanzahl und Phase
info: 'Sie befinden sich in der Phase [name] in Block [number]'
@@ -91,6 +173,31 @@ chunkblock:
verschwindet
block-exist: 'in Block existiert, musste nicht neu gestartet werden. Ich habe es für dich markiert.'
block-respawned: 'Block wieder aufgetaucht.'
+ chunks:
+ description: "zeige deine freigeschalteten Chunks und eine Karte deines Gebiets"
+ ledger:
+ description: "zeige die Beiträge der Teammitglieder"
+ parameters: "[days]"
+ header: "Inselkontributionsbuch ([window])"
+ all-time: "die ganze Zeit"
+ last-days: "letzte [days] Tage"
+ row: " - [name]: [blocks] Blöcke, [chunks] Chunks, [rings] Ringe"
+ total: "Gesamt: [blocks] Blöcke, [chunks] Chunks, [rings] Ringe"
+ no-activity: "Bislang keine Aktivität aufgezeichnet."
+ title:
+ description: "den Titel deiner Insel ein/ausschalten oder einen auswählen"
+ parameters: "[list | trophy-id | none]"
+ header: "Trophäen deiner Insel:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — Titel [title] (/ch title [id])"
+ none-earned-yet: "Deine Insel hat noch keine Trophäen verdient."
+ active: "Aktiver Titel: [title]"
+ no-active: "Kein Titel ist aktiv. Wählen Sie einen mit /ch title aus."
+ set: "Der Titel deiner Insel ist jetzt [title]."
+ cleared: "Deine Insel zeigt keinen Titel mehr."
+ toggled-on: "Inseltitel [title] wird jetzt angezeigt."
+ toggled-off: "Inseltitel [title] ist jetzt verborgen."
+ not-earned: "Deine Insel hat eine Trophäe mit diesem Titel nicht verdient."
phase:
insufficient-level: 'Ihr Insellevel ist zu niedrig, um fortzufahren! Es muss [number] sein.'
insufficient-funds: 'Ihr Guthaben ist zu gering, um fortzufahren! Sie müssen [number] sein.'
diff --git a/src/main/resources/locales/en-US.yml b/src/main/resources/locales/en-US.yml
index bb8d7b0..483e52b 100755
--- a/src/main/resources/locales/en-US.yml
+++ b/src/main/resources/locales/en-US.yml
@@ -54,6 +54,7 @@ chunkblock:
ring-complete: "Ring [ring] complete! The whole ring around your island is yours — [chunks] chunks in all."
ring-broadcast: "[name]'s island has closed ring [ring] — [chunks] chunks and still growing!"
rings: "Rings completed: [rings] of [max]."
+ ring-progress: "Ring [ring]: [remaining]/[total] chunks to go."
sethome-denied: "You can't set a home in a locked chunk."
info: "Chunks: [unlocked]/[max]. Credit: [credit] level(s) — a chunk costs [cost]."
map:
@@ -76,7 +77,8 @@ chunkblock:
title: "Blocks remaining"
# status: "&a Phase blocks &b [total]. Blocks left: [todo]"
# status: "&a [phase-name] : [percent-done]"
- status: "Phase blocks [done] / [total]"
+ title-prefix: "[title] | "
+ status: "[island-title]Phase blocks [done] / [total]"
# RED, WHITE, PINK, BLUE, GREEN, YELLOW, or PURPLE
color: RED
# SOLID, SEGMENTED_6, SEGMENTED_10, SEGMENTED_12, SEGMENTED_20
@@ -87,13 +89,22 @@ chunkblock:
not-active: "Action Bar is not active for this island"
trophies:
awarded: "Trophy earned: [name]!"
- title-available: "Your island can now show the title [title] — pick it with /ch title."
+ title-available: "Your island earned the title [title] — toggle it on and off using /ch title."
commands:
chunks:
description: "show your unlocked chunks and a map of your territory"
+ ledger:
+ description: "show team member contributions"
+ parameters: "[days]"
+ header: "Island Contribution Ledger ([window])"
+ all-time: "all time"
+ last-days: "last [days] days"
+ row: " - [name]: [blocks] blocks, [chunks] chunks, [rings] rings"
+ total: "Total: [blocks] blocks, [chunks] chunks, [rings] rings"
+ no-activity: "No activity recorded yet."
title:
- description: "show your island's trophies and choose its title"
- parameters: "[trophy-id | none]"
+ description: "toggle your island's title on/off, or choose one"
+ parameters: "[list | trophy-id | none]"
header: "Your island's trophies:"
trophy-entry: " - [name]"
title-entry: " - [name] — title [title] (/ch title [id])"
@@ -102,6 +113,8 @@ chunkblock:
no-active: "No title is active. Pick one with /ch title."
set: "Your island's title is now [title]."
cleared: "Your island no longer shows a title."
+ toggled-on: "Island title [title] is now showing."
+ toggled-off: "Island title [title] is now hidden."
not-earned: "Your island has not earned a trophy with that title."
admin:
chunks:
diff --git a/src/main/resources/locales/es.yml b/src/main/resources/locales/es.yml
index d9111dc..a3c9d26 100644
--- a/src/main/resources/locales/es.yml
+++ b/src/main/resources/locales/es.yml
@@ -26,9 +26,17 @@ protection:
Muestra un estado
para cada fase
en la Barra de Acción.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Reclamar Bloques
+ description: |-
+ Rango que puede gastar el
+ crédito de nivel de la isla
+ para reclamar nuevos bloques.
+ hint: "¡Tu rango no puede reclamar bloques para esta isla!"
chunkblock:
bossbar:
title: Bloques restantes
+ title-prefix: "[title] | "
status: 'Bloques de fase [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,6 +44,41 @@ chunkblock:
actionbar:
status: "Fase: [phase-name] | Bloques: [done] / [total] | Progreso: [percent-done]"
not-active: "La barra de acción no está activa para esta isla"
+ trophies:
+ awarded: "Trofeo ganado: [name]!"
+ title-available: "Tu isla ganó el título [title] — actívalo y desactívalo con /ch title."
+ chunks:
+ entry-denied: "Este bloque está bloqueado."
+ locked: "No puedes tocar eso — el bloque está bloqueado."
+ claim-hint: "Golpea el borde para reclamar este bloque por [cost] nivel(es)! Tienes [credit] nivel(es) de crédito."
+ claim-confirm: "¿Reclamar este bloque por [cost] nivel(es)? Eso te deja [after] nivel(es) de crédito. Agáchate y golpea el borde de nuevo dentro de [seconds]s para confirmar."
+ no-credit: "Necesitas [needed] más nivel(es) de crédito para reclamar este bloque."
+ beyond-limit: "Este bloque está más allá del área de protección de tu isla."
+ claimed: "¡Bloque reclamado! Tu isla ahora tiene [number] bloques. Crédito restante: [credit] nivel(es)."
+ credit: "¡Puedes reclamar [count] bloque(s) más! Ve a tu borde y golpéalo donde quieras crecer."
+ relocked: "El nivel de tu isla bajó — [count] bloque(s) re-bloqueado(s), el más nuevo primero. ¡Recupera los niveles para reclamarlos de nuevo!"
+ ejected: "El bloque en el que estabas se bloqueó de nuevo, así que fuiste trasladado a un lugar seguro."
+ max-reached: "¡Tu isla ha alcanzado su tamaño máximo de [number] bloques!"
+ ring-complete: "¡Anillo [ring] completado! Todo el anillo alrededor de tu isla es tuyo — [chunks] bloques en total."
+ ring-broadcast: "La isla de [name] ha cerrado el anillo [ring] — [chunks] ¡bloques y sigue creciendo!"
+ rings: "Anillos completados: [rings] de [max]."
+ ring-progress: "Anillo [ring]: [remaining]/[total] bloques restantes."
+ sethome-denied: "No puedes establecer un hogar en un bloque bloqueado."
+ info: "Bloques: [unlocked]/[max]. Crédito: [credit] nivel(es) — un bloque cuesta [cost]."
+ map:
+ title: "Territorio de tu isla ([unlocked]/[max] bloques):"
+ row: "[row]"
+ legend: "■ tuyo ▣ reclamable ([cost] nivel(es) cada uno) □ bloqueado ◎ centro ◆ tú"
+ you-are-here: "Estás en el bloque marcado."
+ dialog:
+ close: "Cerrar"
+ tooltip:
+ center: "El bloque central — tu bloque mágico está aquí."
+ owned: "Bloque [x], [z] — tuyo."
+ claimable: "Bloque [x], [z] — reclamable por [cost] nivel(es). Ve a ese borde y golpéalo."
+ no-credit: "Bloque [x], [z] — cuesta [cost] nivel(es). Necesitas [needed] más nivel(es) de crédito."
+ locked: "Bloque [x], [z] — bloqueado. Reclama tu camino hacia él."
+ you-are-here: "Estás parado aquí."
commands:
admin:
setcount:
@@ -61,6 +104,45 @@ chunkblock:
Muestra una comprobación de las probabilidades de la fase en la
consola
see-console: 'Revisa la consola para ver el informe'
+ bypass:
+ description: "alternar la aplicación de bloqueos de bloques para ti mismo"
+ "on": "Ahora evitas bloqueos de bloques. Los efectos visuales de los bordes se ocultan para ti."
+ "off": "Los bloqueos de bloques se aplican a ti nuevamente."
+ chunks:
+ parameters: " [reset]"
+ description: "inspecciona los bloques desbloqueados de un jugador o reinícialos al inicio"
+ info: "[name]: [number]/[max] bloques, [spent] nivel(es) gastado(s), [credit] crédito."
+ reset: "Los bloques de [name] fueron re-bloqueados solo al bloque central."
+ phases:
+ description: "abre el editor de orden de fases"
+ no-index: "No hay índice de fases cargado, por lo que las fases no se pueden reordenar"
+ saved: "Orden de fases guardado y aplicado"
+ save-failed: "¡No se pudo guardar el orden de fases! Ver consola para errores"
+ gui:
+ title: "Orden de Fases"
+ info-title: "Cómo usar"
+ instructions: |-
+ Haz clic en una fase para levantarla,
+ luego haz clic donde debe ir.
+ Haz clic derecho para alternar una fase
+ encendida o apagada.
+ repeat: "Después de la última fase, el conteo salta a [number]"
+ phase-name: "[name]"
+ start: "Inicio: [number]"
+ length: "Longitud: [number]"
+ disabled: "Deshabilitado"
+ version-locked: "Requiere Minecraft [version]+"
+ pick-up: "Haz clic para mover"
+ toggle: "Haz clic derecho para alternar"
+ set-length: "Shift+clic izquierdo para establecer longitud"
+ drop-here: "Haz clic para soltar aquí"
+ drop-at-end: "Soltar al final"
+ held: "Moviendo: [name]"
+ put-back: "Haz clic para devolver"
+ enter-length: "Ingresa una nueva longitud en el chat para [name] - actualmente es [number] bloques. Escribe cancel para mantenerlo."
+ invalid-length: "La longitud debe ser un número entero mayor que 0"
+ length-cancelled: "Longitud no cambiada"
+ cancel-word: "cancel"
count:
description: Muestra el número de bloques minados y la fase correspondiente
info: 'Tienes [number] bloques minados en la fase [name]'
@@ -89,6 +171,31 @@ chunkblock:
description: reaparece el bloque mágico en situaciones en las que desaparece
block-exist: 'Block existe, no requirió reaparición. Te lo marqué.'
block-respawned: '& un bloque reapareció.'
+ chunks:
+ description: "muestra tus bloques desbloqueados y un mapa de tu territorio"
+ ledger:
+ description: "mostrar las contribuciones de los miembros del equipo"
+ parameters: "[days]"
+ header: "Registro de Contribuciones de la Isla ([window])"
+ all-time: "todo el tiempo"
+ last-days: "últimos [days] días"
+ row: " - [name]: [blocks] bloques, [chunks] fragmentos, [rings] anillos"
+ total: "Total: [blocks] bloques, [chunks] fragmentos, [rings] anillos"
+ no-activity: "Aún no se ha registrado actividad."
+ title:
+ description: "alternar el título de tu isla encendido/apagado, o elegir uno"
+ parameters: "[list | trophy-id | none]"
+ header: "Trofeos de tu isla:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — título [title] (/ch title [id])"
+ none-earned-yet: "Tu isla aún no ha ganado ningún trofeo."
+ active: "Título activo: [title]"
+ no-active: "Ningún título está activo. Elige uno con /ch title."
+ set: "El título de tu isla es ahora [title]."
+ cleared: "Tu isla ya no muestra un título."
+ toggled-on: "El título de la isla [title] ahora se muestra."
+ toggled-off: "El título de la isla [title] ahora está oculto."
+ not-earned: "Tu isla no ha ganado un trofeo con ese título."
phase:
insufficient-level: '¡Tu nivel de isla es demasiado bajo para seguir! Este debe ser de [number].'
insufficient-funds: '¡Tus fondos son insuficientes! Debes tener [number].'
diff --git a/src/main/resources/locales/fr.yml b/src/main/resources/locales/fr.yml
index 6c13716..f10f1fb 100644
--- a/src/main/resources/locales/fr.yml
+++ b/src/main/resources/locales/fr.yml
@@ -26,9 +26,17 @@ protection:
Affiche un statut
pour chaque phase
dans la Barre d'Action.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Réclamer des Blocs
+ description: |-
+ Rang qui peut dépenser le
+ crédit de niveau de l'île
+ pour réclamer de nouveaux blocs.
+ hint: "Votre rang ne peut pas réclamer de blocs pour cette île!"
chunkblock:
bossbar:
title: Blocs restants
+ title-prefix: "[title] | "
status: 'Blocs de phase [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,6 +44,41 @@ chunkblock:
actionbar:
status: "Phase : [phase-name] | Blocs : [done] / [total] | Progression : [percent-done]"
not-active: "La barre d'action n'est pas active pour cette île"
+ trophies:
+ awarded: "Trophée remporté : [name]!"
+ title-available: "Votre île a remporté le titre [title] — activez-le et désactivez-le à l'aide de /ch title."
+ chunks:
+ entry-denied: "Ce bloc est verrouillé."
+ locked: "Tu ne peux pas le toucher — le bloc est verrouillé."
+ claim-hint: "Frappez la bordure pour réclamer ce bloc pour [cost] niveau(x) ! Vous avez [credit] niveau(x) de crédit."
+ claim-confirm: "Réclamer ce bloc pour [cost] niveau(x) ? Cela vous laisse [after] niveau(x) de crédit. Accroupissez-vous et frappez la bordure à nouveau dans [seconds]s pour confirmer."
+ no-credit: "Vous avez besoin de [needed] plus de niveau(x) de crédit pour réclamer ce bloc."
+ beyond-limit: "Ce bloc dépasse la zone de protection de votre île."
+ claimed: "Bloc réclamé! Votre île a maintenant [number] blocs. Crédit restant: [credit] niveau(x)."
+ credit: "Vous pouvez réclamer [count] plus de bloc(s)! Allez à votre bordure et frappez-la où vous voulez grandir."
+ relocked: "Le niveau de votre île a baissé — [count] bloc(s) à nouveau verrouillé(s), le plus récent d'abord. Regagnez les niveaux pour les réclamer!"
+ ejected: "Le bloc dans lequel vous étiez a été à nouveau verrouillé, vous avez donc été transféré en sécurité."
+ max-reached: "Votre île a atteint sa taille maximale de [number] blocs!"
+ ring-complete: "Anneau [ring] complété! L'anneau entier autour de votre île est le vôtre — [chunks] blocs au total."
+ ring-broadcast: "L'île de [name] a fermé l'anneau [ring] — [chunks] blocs et elle grandit encore!"
+ rings: "Anneaux complétés: [rings] sur [max]."
+ ring-progress: "Anneau [ring]: [remaining]/[total] blocs restants."
+ sethome-denied: "Vous ne pouvez pas définir une maison dans un bloc verrouillé."
+ info: "Blocs: [unlocked]/[max]. Crédit: [credit] niveau(x) — un bloc coûte [cost]."
+ map:
+ title: "Territoire de votre île ([unlocked]/[max] blocs):"
+ row: "[row]"
+ legend: "■ le vôtre ▣ réclamable ([cost] niveau(x) chacun) □ verrouillé ◎ centre ◆ vous"
+ you-are-here: "Vous êtes sur le bloc marqué."
+ dialog:
+ close: "Fermer"
+ tooltip:
+ center: "Le bloc central — votre bloc magique est ici."
+ owned: "Bloc [x], [z] — le vôtre."
+ claimable: "Bloc [x], [z] — réclamable pour [cost] niveau(x). Allez à cette bordure et frappez-la."
+ no-credit: "Bloc [x], [z] — coûte [cost] niveau(x). Vous avez besoin de [needed] plus de niveau(x) de crédit."
+ locked: "Bloc [x], [z] — verrouillé. Réclamez votre chemin vers celui-ci."
+ you-are-here: "Vous êtes debout ici."
commands:
admin:
setcount:
@@ -59,6 +102,45 @@ chunkblock:
afficher un contrôle d'intégrité des probabilités de phase dans la
console
see-console: 'Voir la console pour le rapport'
+ bypass:
+ description: "basculer l'application de verrouillage des blocs pour vous-même"
+ "on": "Vous contournez maintenant les verrous de bloc. Les visuels de bordure sont cachés pour vous."
+ "off": "Les verrous de bloc s'appliquent à nouveau à vous."
+ chunks:
+ parameters: " [reset]"
+ description: "inspecter les blocs déverrouillés d'un joueur ou les réinitialiser au début"
+ info: "[name]: [number]/[max] blocs, [spent] niveau(x) dépensé(s), [credit] crédit."
+ reset: "Les blocs de [name] ont été à nouveau verrouillés au seul bloc central."
+ phases:
+ description: "ouvrir l'éditeur d'ordre de phase"
+ no-index: "Aucun index de phase chargé, les phases ne peuvent donc pas être réordonnées"
+ saved: "Ordre de phase enregistré et appliqué"
+ save-failed: "Impossible d'enregistrer l'ordre de phase! Voir la console pour les erreurs"
+ gui:
+ title: "Ordre des Phases"
+ info-title: "Comment utiliser"
+ instructions: |-
+ Cliquez sur une phase pour la ramasser,
+ puis cliquez où elle doit aller.
+ Clic droit pour basculer une phase
+ activée ou désactivée.
+ repeat: "Après la dernière phase, le décompte passe à [number]"
+ phase-name: "[name]"
+ start: "Début: [number]"
+ length: "Longueur: [number]"
+ disabled: "Désactivé"
+ version-locked: "Nécessite Minecraft [version]+"
+ pick-up: "Cliquez pour déplacer"
+ toggle: "Clic droit pour basculer"
+ set-length: "Maj+clic gauche pour définir la longueur"
+ drop-here: "Cliquez pour déposer ici"
+ drop-at-end: "Déposer à la fin"
+ held: "Déplacement: [name]"
+ put-back: "Cliquez pour remettre"
+ enter-length: "Entrez une nouvelle longueur dans le chat pour [name] - actuellement [number] blocs. Tapez cancel pour conserver."
+ invalid-length: "La longueur doit être un nombre entier supérieur à 0"
+ length-cancelled: "Longueur non modifiée"
+ cancel-word: "cancel"
count:
description: afficher le nombre de blocs et la phase
info: 'Vous êtes sur le bloc [number] dans la phase [name]'
@@ -89,6 +171,31 @@ chunkblock:
&un bloc existe, n'a pas nécessité de réapparition. Je l'ai noté pour
toi.
block-respawned: '&un bloc réapparu.'
+ chunks:
+ description: "afficher vos blocs déverrouillés et une carte de votre territoire"
+ ledger:
+ description: "afficher les contributions des membres de l'équipe"
+ parameters: "[days]"
+ header: "Registre de Contribution de l'Île ([window])"
+ all-time: "tout le temps"
+ last-days: "derniers [days] jours"
+ row: " - [name]: [blocks] blocs, [chunks] morceaux, [rings] anneaux"
+ total: "Total: [blocks] blocs, [chunks] morceaux, [rings] anneaux"
+ no-activity: "Aucune activité enregistrée pour l'instant."
+ title:
+ description: "basculer le titre de votre île allumé/éteint, ou en choisir un"
+ parameters: "[list | trophy-id | none]"
+ header: "Trophées de votre île:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — titre [title] (/ch title [id])"
+ none-earned-yet: "Votre île n'a pas encore remporté de trophées."
+ active: "Titre actif: [title]"
+ no-active: "Aucun titre n'est actif. Choisissez-en un avec /ch title."
+ set: "Le titre de votre île est maintenant [title]."
+ cleared: "Votre île n'affiche plus de titre."
+ toggled-on: "Le titre de l'île [title] s'affiche maintenant."
+ toggled-off: "Le titre de l'île [title] est maintenant caché."
+ not-earned: "Votre île n'a pas remporté un trophée avec ce titre."
phase:
insufficient-level: Ton niveau d'île est trop bas ! Il doit être de [number] au minimum.
insufficient-funds: Tu n'as pas les fonds nécessaire ! Tu dois au moins avoir [number].
diff --git a/src/main/resources/locales/hr.yml b/src/main/resources/locales/hr.yml
index 3a0288e..166449c 100644
--- a/src/main/resources/locales/hr.yml
+++ b/src/main/resources/locales/hr.yml
@@ -26,9 +26,17 @@ protection:
Prikazuje status
za svaku fazu
u Traci Akcije.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Zahtjevi Dijelove
+ description: |-
+ Rang koji može trošiti
+ otočnu razinu kredita
+ za zahtijevanje novih dijelova.
+ hint: "Vaš rang ne može zahtijevati dijelove za ovaj otok!"
chunkblock:
bossbar:
title: Preostali blokovi
+ title-prefix: "[title] | "
status: 'Fazni blokovi [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,8 +44,106 @@ chunkblock:
actionbar:
status: "Faza: [phase-name] | Blokovi: [done] / [total] | Napredak: [percent-done]"
not-active: "Akcijska traka nije aktivna za ovaj otok"
+ trophies:
+ awarded: "Trofej osvojen: [name]!"
+ title-available: "Vaš otok je osvojio naslov [title] — aktivirajte i deaktivirajte ga pomoću /ch title."
+ chunks:
+ entry-denied: "Taj dio je zaključan."
+ locked: "Ne možeš to dodirnuti — dio je zaključan."
+ claim-hint: "Udari granicu kako bi zahtijevao ovaj dio za [cost] razina(e)! Imaš [credit] razina(e) kredita."
+ claim-confirm: "Zahtievaj ovaj dio za [cost] razina(e)? Ostaje ti [after] razina(e) kredita. Kradi se i ponovno udari granicu u roku [seconds]s da potvrdis."
+ no-credit: "Trebas [needed] više razina(e) kredita za zahtijevanje ovog dijela."
+ beyond-limit: "Taj dio je izvan zaštitnog područja vašeg otoka."
+ claimed: "Dio zahtjevljen! Vaš otok je sada [number] dijelova. Preostali kredit: [credit] razina(e)."
+ credit: "Možeš zahtijevati [count] više dijela(a)! Idi na svoju granicu i udari je gdje želiš rasti."
+ relocked: "Razina vašeg otoka je pala — [count] dio(a) je ponovno zaključan, najnoviji prvi. Povrati razine da ih ponovno zahtijevaš!"
+ ejected: "Dio u kojem si bio je ponovno zaključan, pa si premješten na sigurno."
+ max-reached: "Vaš otok je dostigao maksimalnu veličinu od [number] dijelova!"
+ ring-complete: "Prsten [ring] kompletan! Cijeli prsten oko vašeg otoka je tvoj — [chunks] dijelova ukupno."
+ ring-broadcast: "[name]'s otok je zatvorio prsten [ring] — [chunks] dijelova i nastavlja rasti!"
+ rings: "Završeni prsteni: [rings] od [max]."
+ ring-progress: "Prsten [ring]: [remaining]/[total] dijelova još."
+ sethome-denied: "Ne možeš postaviti dom u zaključanom dijelu."
+ info: "Dijelovi: [unlocked]/[max]. Kredit: [credit] razina(e) — dio stoji [cost]."
+ map:
+ title: "Vaše otočno područje ([unlocked]/[max] dijelova):"
+ row: "[row]"
+ legend: "■ tvoj ▣ zahtjeviv ([cost] razina(e) svaki) □ zaključan ◎ centar ◆ ti"
+ you-are-here: "Nalazis se na označenom dijelu."
+ dialog:
+ close: "Zatvori"
+ tooltip:
+ center: "Centralni dio — tvoj magični blok je ovdje."
+ owned: "Dio [x], [z] — tvoj."
+ claimable: "Dio [x], [z] — može se zahtijevati za [cost] razina(e). Idi na tu granicu i udari je."
+ no-credit: "Dio [x], [z] — stoji [cost] razina(e). Trebas [needed] više razina(e) kredita."
+ locked: "Dio [x], [z] — zaključan. Zahtjevaj se prema njemu."
+ you-are-here: "Stoji ovdje."
commands:
+ chunks:
+ description: "prikaži svoje otključane dijelove i kartu vašeg teritorija"
+ ledger:
+ description: "prikaži doprinos članova tima"
+ parameters: "[days]"
+ header: "Otočni Knjiga Doprinos ([window])"
+ all-time: "svereme"
+ last-days: "zadnjih [days] dana"
+ row: " - [name]: [blocks] blokova, [chunks] dijelova, [rings] prstena"
+ total: "Ukupno: [blocks] blokova, [chunks] dijelova, [rings] prstena"
+ no-activity: "Nije zabilježena aktivnost."
+ title:
+ description: "aktiviraj/deaktiviraj naslov vašeg otoka, ili odaberi jedan"
+ parameters: "[list | trophy-id | none]"
+ header: "Trofej vašeg otoka:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — naslov [title] (/ch title [id])"
+ none-earned-yet: "Vaš otok nije ainda osvojio nijedan trofej."
+ active: "Aktivni naslov: [title]"
+ no-active: "Nema aktivnog naslova. Odaberi jedan s /ch title."
+ set: "Naslov vašeg otoka je sada [title]."
+ cleared: "Vaš otok više ne prikazuje naslov."
+ toggled-on: "Otočni naslov [title] se sada prikazuje."
+ toggled-off: "Otočni naslov [title] je sada skriven."
+ not-earned: "Vaš otok nije osvojio trofej s tim naslovom."
admin:
+ bypass:
+ description: "aktiviraj/deaktiviraj namjeru zaključavanja dijelova"
+ "on": "Sada zaobilaziš zaključavanja dijelova. Vizualni elementi granice su skriveni za tebe."
+ "off": "Zaključavanja dijelova se na tebe ponovno primjenjuju."
+ chunks:
+ parameters: " [reset]"
+ description: "ispitaj otključane dijelove igrača ili ih ponovno zaključaj na početak"
+ info: "[name]: [number]/[max] dijelova, [spent] razina(e) potrošena, [credit] kredit."
+ reset: "[name]'s dijelovi su ponovno zaključani samo na srednji dio."
+ phases:
+ description: "otvori uređivač reda faza"
+ no-index: "Nema učitanog indeksa faza, pa faze ne mogu biti preuredene"
+ saved: "Red faza je sačuvan i primijenjen"
+ save-failed: "Nije moguće spremiti red faza! Pogledaj konzolu za greške"
+ gui:
+ title: "Red Faza"
+ info-title: "Kako se koristi"
+ instructions: |-
+ Klikni na fazu da je podigneš,
+ zatim klikni gdje bi trebala ići.
+ Desni klik uključuje/isključuje fazu.
+ repeat: "Nakon posljednje faze brojač se premješta u [number]"
+ phase-name: "[name]"
+ start: "Početak: [number]"
+ length: "Dužina: [number]"
+ disabled: "Onemogućeno"
+ version-locked: "Trebam Minecraft [version]+"
+ pick-up: "Klikni za pomicanje"
+ toggle: "Desni klik za prebacivanje"
+ set-length: "Shift-lijevi klik za postavljanje dužine"
+ drop-here: "Klikni za spuštanje ovdje"
+ drop-at-end: "Spusti na kraju"
+ held: "Pomicanje: [name]"
+ put-back: "Klikni za vraćanje"
+ enter-length: "Unesi novu dužinu u chat za [name] - trenutno je [number] blokova. Upiši cancel da ga održiš."
+ invalid-length: "Dužina mora biti cijeli broj veći od 0"
+ length-cancelled: "Dužina nepromijenjena"
+ cancel-word: "cancel"
setcount:
parameters:
description: postavljanje broja blokova igrača
diff --git a/src/main/resources/locales/hu.yml b/src/main/resources/locales/hu.yml
index c94cca2..3343d47 100644
--- a/src/main/resources/locales/hu.yml
+++ b/src/main/resources/locales/hu.yml
@@ -27,9 +27,17 @@ protection:
Állapotot mutat
minden fázishoz
a Műveleti Sávban.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Szövegek Igénylése
+ description: |-
+ Rang, amely az sziget
+ szintje kreditjét költheti
+ új szövegek igényléséhez.
+ hint: "A rangod nem tudja igényelni a szövegeket erre a szigetre!"
chunkblock:
bossbar:
title: Blokkok maradtak
+ title-prefix: "[title] | "
status: 'Fázisblokkok [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -37,8 +45,106 @@ chunkblock:
actionbar:
status: "Fázis: [phase-name] | Blokkok: [done] / [total] | Haladás: [percent-done]"
not-active: "Az akciósáv nem aktív ezen a szigeten"
+ trophies:
+ awarded: "Trófea szerzett: [name]!"
+ title-available: "A szigeted megnyerte a [title] címet — kapcsold ki és be a /ch title paranccsal."
+ chunks:
+ entry-denied: "Ez a szöveg zárolva van."
+ locked: "Nem érintheted azt — a szöveg zárolva van."
+ claim-hint: "Üss a határra ennek a szövegnek az igényléséhez [cost] szint(hez)! Van [credit] szinted kredid."
+ claim-confirm: "Igényelj ezt a szöveget [cost] szint(ért)? Ez azt hagyja neked [after] szint kredid. Lopózz és üss ismét a határra belül [seconds]s hogy megerősítsd."
+ no-credit: "Szükséged van [needed] több szint kreditre ennek a szövegnek az igényléséhez."
+ beyond-limit: "Ez a szöveg a szigeted védelmi területe túl van."
+ claimed: "Szöveg igényelve! A szigeted most [number] szöveg. Megmaradt kredit: [credit] szint."
+ credit: "Igényelhetiels [count] több szöveget! Menj a hatádhoz és ütsd meg ahol szeretnél növekedni."
+ relocked: "A szigeted szintje csökkent — [count] szöveg lett ismét zárolva, legújabb elsőnek. Szerzj meg a szinteket hogy ismét igényelhesd!"
+ ejected: "A szöveg amit benned voltál ismét zárolva lett, így biztonságra kerültél."
+ max-reached: "A szigeted elérte a maximális méretét [number] szöveg!"
+ ring-complete: "Gyűrű [ring] kész! Az egész gyűrű a szigeted körül a tiéd — [chunks] szöveg összesen."
+ ring-broadcast: "[name] szigete lezárta a gyűrűt [ring] — [chunks] szöveg és még növekszik!"
+ rings: "Befejezett gyűrűk: [rings] a [max] közül."
+ ring-progress: "Gyűrű [ring]: [remaining]/[total] szöveg még."
+ sethome-denied: "Nem állíthatod be a házad zárolva szövegben."
+ info: "Szövegek: [unlocked]/[max]. Kredit: [credit] szint — egy szöveg költségei [cost]."
+ map:
+ title: "A szigeted területe ([unlocked]/[max] szövegek):"
+ row: "[row]"
+ legend: "■ tiéd ▣ igényelhető ([cost] szint mindegyik) □ zárolva ◎ közép ◆ te"
+ you-are-here: "A megjelölt szövegen vagy."
+ dialog:
+ close: "Bezárás"
+ tooltip:
+ center: "A közép szöveg — a mágikus blokk itt van."
+ owned: "Szöveg [x], [z] — tied."
+ claimable: "Szöveg [x], [z] — igényelhető [cost] szintért. Menj arra a határra és ütsd meg."
+ no-credit: "Szöveg [x], [z] — költségei [cost] szint. Szükséged van [needed] több szint kreditre."
+ locked: "Szöveg [x], [z] — zárolva. Igényelj ki magad oda."
+ you-are-here: "Itt állsz."
commands:
+ chunks:
+ description: "mutasd meg a feloldott szövegeket és a terület térképét"
+ ledger:
+ description: "mutasd meg a csapat tagjainak hozzájárulásait"
+ parameters: "[days]"
+ header: "Sziget Hozzájárulás Főkönyv ([window])"
+ all-time: "mind ideje"
+ last-days: "utolsó [days] nap"
+ row: " - [name]: [blocks] blokk, [chunks] szöveg, [rings] gyűrűk"
+ total: "Összesen: [blocks] blokk, [chunks] szöveg, [rings] gyűrűk"
+ no-activity: "Nincs feljegyzett tevékenység."
+ title:
+ description: "szerzd ki/szerzd ki a szigeted címét, vagy válassz egyet"
+ parameters: "[list | trophy-id | none]"
+ header: "A szigeted troféái:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — cím [title] (/ch title [id])"
+ none-earned-yet: "A szigeted még nem szerzett meg trófeát."
+ active: "Aktív cím: [title]"
+ no-active: "Nincs aktív cím. Válassz egyet a /ch title paranccsal."
+ set: "A szigeted címe most [title]."
+ cleared: "A szigeted már nem jelenít meg címet."
+ toggled-on: "Sziget cím [title] most megjelenik."
+ toggled-off: "Sziget cím [title] most rejtett."
+ not-earned: "A szigeted nem szerzett trófeát ezzel a címmel."
admin:
+ bypass:
+ description: "szerzd ki/szerzd ki a szöveg zárolási kikényszerítést magadra"
+ "on": "Most megkerülöd a szöveg zárolásokat. Határvizuális elemek rejtve vannak számodra."
+ "off": "A szöveg zárolások ismét vonatkoznak rád."
+ chunks:
+ parameters: " [reset]"
+ description: "vizsgáld meg egy játékos feloldott szövegeit vagy zárd vissza őket az elejére"
+ info: "[name]: [number]/[max] szövegek, [spent] szint(et) költött, [credit] kredit."
+ reset: "[name]'s szövege visszáról csak a közép szövegre lett zárolva."
+ phases:
+ description: "nyitsd meg a fázis sorrendszerkesztőt"
+ no-index: "Nincs betöltött fázisindex, így a fázisokat nem lehet átrendezni"
+ saved: "Fázis sorrend mentve és alkalmazva"
+ save-failed: "Nem sikerült menteni a fázis sorrendet! Lásd a konzolt a hibákért"
+ gui:
+ title: "Fázis Sorrend"
+ info-title: "Hogyan használd"
+ instructions: |-
+ Kattints egy fázisra hogy felemelje,
+ majd kattints ahol kellene legyen.
+ Jobb kattintás egy fázis ki/bekapcsol.
+ repeat: "Az utolsó fázis után a szám ugrálása [number]"
+ phase-name: "[name]"
+ start: "Kezdés: [number]"
+ length: "Hossz: [number]"
+ disabled: "Letiltva"
+ version-locked: "Minecraft [version]+ szükséges"
+ pick-up: "Kattints a mozgatáshoz"
+ toggle: "Jobb kattints a váltáshoz"
+ set-length: "Shift-bal kattints a hossz beállításához"
+ drop-here: "Kattints ide történő eldobáshoz"
+ drop-at-end: "Dobj a végén"
+ held: "Mozgatás: [name]"
+ put-back: "Kattints visszahelyezéshez"
+ enter-length: "Írj be egy új hosszt a csatban a [name] - jelenleg [number] blokk. Írj cancel hogy megtartsad."
+ invalid-length: "A hossz egész szám 0-nál nagyobb kell legyen"
+ length-cancelled: "Hossz nem módosítva"
+ cancel-word: "cancel"
setcount:
parameters:
description: állítsa be a játékos blokkszámát
diff --git a/src/main/resources/locales/id.yml b/src/main/resources/locales/id.yml
index 1e1085f..5769d3f 100644
--- a/src/main/resources/locales/id.yml
+++ b/src/main/resources/locales/id.yml
@@ -26,9 +26,17 @@ protection:
Menampilkan status
untuk setiap fase
di Action Bar.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Klaim Chunk
+ description: |-
+ Pangkat yang dapat menghabiskan
+ kredit tingkat pulau
+ untuk klaim chunk baru.
+ hint: "Pangkatmu tidak dapat mengklaim chunk untuk pulau ini!"
chunkblock:
bossbar:
title: Blok tersisa
+ title-prefix: "[title] | "
status: 'Blok fase [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,8 +44,107 @@ chunkblock:
actionbar:
status: "Fase: [phase-name] | Blok: [done] / [total] | Kemajuan: [percent-done]"
not-active: "Action Bar tidak aktif untuk pulau ini"
+ trophies:
+ awarded: "Trofi diraih: [name]!"
+ title-available: "Pulau mu meraih gelar [title] — aktifkan dan nonaktifkan menggunakan /ch title."
+ chunks:
+ entry-denied: "Chunk itu terkunci."
+ locked: "Anda tidak bisa menyentuh itu — chunk terkunci."
+ claim-hint: "Tekan perbatasan untuk mengklaim chunk ini untuk [cost] level! Anda memiliki [credit] level kredit."
+ claim-confirm: "Klaim chunk ini untuk [cost] level? Itu meninggalkan Anda [after] level kredit. Berselundup dan tekan perbatasan lagi dalam [seconds]s untuk mengkonfirmasi."
+ no-credit: "Anda perlu [needed] lebih banyak level kredit untuk mengklaim chunk ini."
+ beyond-limit: "Chunk itu melampaui area perlindungan pulau Anda."
+ claimed: "Chunk diklaim! Pulau Anda sekarang [number] chunk. Kredit tersisa: [credit] level."
+ credit: "Anda dapat mengklaim [count] chunk lagi! Pergi ke perbatasan Anda dan tekan di mana Anda ingin tumbuh."
+ relocked: "Level pulau Anda turun — [count] chunk terkunci kembali, yang terbaru terlebih dahulu. Dapatkan kembali levelnya untuk mengklaimnya kembali!"
+ ejected: "Chunk tempat Anda berada terkunci kembali, jadi Anda dipindahkan ke tempat aman."
+ max-reached: "Pulau Anda telah mencapai ukuran maksimal [number] chunk!"
+ ring-complete: "Ring [ring] selesai! Seluruh ring di sekitar pulau Anda adalah milik Anda — [chunks] chunk semuanya."
+ ring-broadcast: "Pulau [name] telah menutup ring [ring] — [chunks] chunk dan masih berkembang!"
+ rings: "Ring selesai: [rings] dari [max]."
+ ring-progress: "Ring [ring]: [remaining]/[total] chunk lagi."
+ sethome-denied: "Anda tidak dapat mengatur rumah di chunk terkunci."
+ info: "Chunk: [unlocked]/[max]. Kredit: [credit] level — chunk biaya [cost]."
+ map:
+ title: "Wilayah pulau Anda ([unlocked]/[max] chunk):"
+ row: "[row]"
+ legend: "■ milik Anda ▣ dapat diklaim ([cost] level masing-masing) □ terkunci ◎ pusat ◆ Anda"
+ you-are-here: "Anda berada di chunk yang ditandai."
+ dialog:
+ close: "Tutup"
+ tooltip:
+ center: "Chunk pusat — blok ajaib Anda ada di sini."
+ owned: "Chunk [x], [z] — milik Anda."
+ claimable: "Chunk [x], [z] — dapat diklaim untuk [cost] level. Pergi ke perbatasan itu dan tekan."
+ no-credit: "Chunk [x], [z] — biaya [cost] level. Anda memerlukan [needed] lebih banyak level kredit."
+ locked: "Chunk [x], [z] — terkunci. Klaim jalan Anda ke sana."
+ you-are-here: "Anda berdiri di sini."
commands:
+ chunks:
+ description: "tampilkan chunk yang tidak terkunci dan peta wilayah Anda"
+ ledger:
+ description: "tampilkan kontribusi anggota tim"
+ parameters: "[days]"
+ header: "Buku Besar Kontribusi Pulau ([window])"
+ all-time: "semua waktu"
+ last-days: "[days] hari terakhir"
+ row: " - [name]: [blocks] blok, [chunks] chunk, [rings] ring"
+ total: "Total: [blocks] blok, [chunks] chunk, [rings] ring"
+ no-activity: "Tidak ada aktivitas yang tercatat."
+ title:
+ description: "aktifkan/nonaktifkan gelar pulau Anda, atau pilih satu"
+ parameters: "[list | trophy-id | none]"
+ header: "Trofi pulau Anda:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — gelar [title] (/ch title [id])"
+ none-earned-yet: "Pulau Anda belum meraih trofi apa pun."
+ active: "Gelar aktif: [title]"
+ no-active: "Tidak ada gelar aktif. Pilih satu dengan /ch title."
+ set: "Gelar pulau Anda sekarang [title]."
+ cleared: "Pulau Anda tidak lagi menampilkan gelar."
+ toggled-on: "Gelar pulau [title] sekarang ditampilkan."
+ toggled-off: "Gelar pulau [title] sekarang disembunyikan."
+ not-earned: "Pulau Anda belum meraih trofi dengan gelar itu."
admin:
+ bypass:
+ description: "aktifkan/nonaktifkan penegakan kunci chunk untuk Anda sendiri"
+ "on": "Anda sekarang memotong kunci chunk. Visual perbatasan disembunyikan untuk Anda."
+ "off": "Kunci chunk berlaku untuk Anda lagi."
+ chunks:
+ parameters: " [reset]"
+ description: "inspeksi chunk yang tidak terkunci pemain atau kunci kembali ke awal"
+ info: "[name]: [number]/[max] chunk, [spent] level dihabiskan, [credit] kredit."
+ reset: "Chunk [name] terkunci kembali hanya ke chunk pusat."
+ phases:
+ description: "buka editor urutan fase"
+ no-index: "Tidak ada indeks fase yang dimuat, jadi fase tidak dapat disusun ulang"
+ saved: "Urutan fase disimpan dan diterapkan"
+ save-failed: "Tidak dapat menyimpan urutan fase! Lihat konsol untuk kesalahan"
+ gui:
+ title: "Urutan Fase"
+ info-title: "Cara menggunakan"
+ instructions: |-
+ Klik fase untuk mengambilnya,
+ lalu klik di mana seharusnya.
+ Klik kanan untuk mengalihkan fase
+ on atau off.
+ repeat: "Setelah fase terakhir penghitungan melompat ke [number]"
+ phase-name: "[name]"
+ start: "Mulai: [number]"
+ length: "Panjang: [number]"
+ disabled: "Dinonaktifkan"
+ version-locked: "Memerlukan Minecraft [version]+"
+ pick-up: "Klik untuk memindahkan"
+ toggle: "Klik kanan untuk mengalihkan"
+ set-length: "Shift-klik kiri untuk menetapkan panjang"
+ drop-here: "Klik untuk menjatuhkan di sini"
+ drop-at-end: "Jatuhkan di akhir"
+ held: "Memindahkan: [name]"
+ put-back: "Klik untuk mengembalikan"
+ enter-length: "Masukkan panjang baru di obrolan untuk [name] - saat ini [number] blok. Ketik cancel untuk menyimpannya."
+ invalid-length: "Panjang harus berupa bilangan bulat di atas 0"
+ length-cancelled: "Panjang tidak berubah"
+ cancel-word: "cancel"
setcount:
parameters:
description: atur jumlah blok pemain
diff --git a/src/main/resources/locales/it.yml b/src/main/resources/locales/it.yml
index 8333bdb..15c57f7 100644
--- a/src/main/resources/locales/it.yml
+++ b/src/main/resources/locales/it.yml
@@ -26,9 +26,17 @@ protection:
Mostra uno stato
per ogni fase
nella Action Bar.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Rivendica Blocchi
+ description: |-
+ Grado che può spendere il
+ credito di livello dell'isola
+ per rivendicare nuovi blocchi.
+ hint: "Il tuo grado non può rivendicare blocchi per quest'isola!"
chunkblock:
bossbar:
title: Blocca i restanti
+ title-prefix: "[title] | "
status: 'Blocchi di fase [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,8 +44,107 @@ chunkblock:
actionbar:
status: "Fase: [phase-name] | Blocchi: [done] / [total] | Progresso: [percent-done]"
not-active: "La barra d'azione non è attiva per quest'isola"
+ trophies:
+ awarded: "Trofeo vinto: [name]!"
+ title-available: "La tua isola ha vinto il titolo [title] — attiva e disattiva usando /ch title."
+ chunks:
+ entry-denied: "Quel blocco è bloccato."
+ locked: "Non puoi toccare questo — il blocco è bloccato."
+ claim-hint: "Colpisci il confine per rivendicare questo blocco per [cost] livello! Hai [credit] livello di credito."
+ claim-confirm: "Rivendica questo blocco per [cost] livello? Ti rimangono [after] livello di credito. Striscia e colpisci di nuovo il confine entro [seconds]s per confermare."
+ no-credit: "Hai bisogno di [needed] più livello di credito per rivendicare questo blocco."
+ beyond-limit: "Quel blocco è oltre l'area di protezione della tua isola."
+ claimed: "Blocco rivendicato! La tua isola è ora [number] blocchi. Credito rimanente: [credit] livello."
+ credit: "Puoi rivendicare [count] altri blocchi! Vai al tuo confine e colpiscilo dove vuoi crescere."
+ relocked: "Il livello della tua isola è sceso — [count] blocco(i) è(sono) stato(i) bloccato(i) di nuovo, il più nuovo prima. Recupera i livelli per rivendicarli di nuovo!"
+ ejected: "Il blocco in cui eri è stato ribloccato, quindi sei stato spostato al sicuro."
+ max-reached: "La tua isola ha raggiunto la dimensione massima di [number] blocchi!"
+ ring-complete: "Anello [ring] completato! L'intero anello intorno alla tua isola è tuo — [chunks] blocchi in tutto."
+ ring-broadcast: "L'isola di [name] ha chiuso l'anello [ring] — [chunks] blocchi e ancora in crescita!"
+ rings: "Anelli completati: [rings] di [max]."
+ ring-progress: "Anello [ring]: [remaining]/[total] blocchi rimasti."
+ sethome-denied: "Non puoi impostare una casa in un blocco bloccato."
+ info: "Blocchi: [unlocked]/[max]. Credito: [credit] livello — un blocco costa [cost]."
+ map:
+ title: "Territorio della tua isola ([unlocked]/[max] blocchi):"
+ row: "[row]"
+ legend: "■ il tuo ▣ rivendicabile ([cost] livello ciascuno) □ bloccato ◎ centro ◆ tu"
+ you-are-here: "Sei sul blocco contrassegnato."
+ dialog:
+ close: "Chiudi"
+ tooltip:
+ center: "Il blocco centrale — il tuo blocco magico è qui."
+ owned: "Blocco [x], [z] — tuo."
+ claimable: "Blocco [x], [z] — rivendicabile per [cost] livello. Vai a quel confine e colpiscilo."
+ no-credit: "Blocco [x], [z] — costa [cost] livello. Hai bisogno di [needed] più livello di credito."
+ locked: "Blocco [x], [z] — bloccato. Rivendica il tuo percorso verso di esso."
+ you-are-here: "Stai in piedi qui."
commands:
+ chunks:
+ description: "mostra i tuoi blocchi sbloccati e una mappa del tuo territorio"
+ ledger:
+ description: "mostra i contributi dei membri del team"
+ parameters: "[days]"
+ header: "Libro Mastro dei Contributi dell'Isola ([window])"
+ all-time: "sempre"
+ last-days: "ultimi [days] giorni"
+ row: " - [name]: [blocks] blocchi, [chunks] chunk, [rings] anelli"
+ total: "Totale: [blocks] blocchi, [chunks] chunk, [rings] anelli"
+ no-activity: "Nessuna attività registrata."
+ title:
+ description: "attiva/disattiva il titolo della tua isola, o scegline uno"
+ parameters: "[list | trophy-id | none]"
+ header: "I tuoi trofei dell'isola:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — titolo [title] (/ch title [id])"
+ none-earned-yet: "La tua isola non ha ancora vinto alcun trofeo."
+ active: "Titolo attivo: [title]"
+ no-active: "Nessun titolo attivo. Scegline uno con /ch title."
+ set: "Il titolo della tua isola è ora [title]."
+ cleared: "La tua isola non mostra più un titolo."
+ toggled-on: "Titolo dell'isola [title] è ora visibile."
+ toggled-off: "Titolo dell'isola [title] è ora nascosto."
+ not-earned: "La tua isola non ha vinto un trofeo con quel titolo."
admin:
+ bypass:
+ description: "attiva/disattiva l'applicazione del blocco per te stesso"
+ "on": "Ora ignori i blocchi dei blocchi. Gli elementi visivi del confine sono nascosti per te."
+ "off": "I blocchi di blocco si applicano di nuovo a te."
+ chunks:
+ parameters: " [reset]"
+ description: "ispeziona i blocchi sbloccati di un giocatore o bloccali di nuovo all'inizio"
+ info: "[name]: [number]/[max] blocchi, [spent] livello speso, [credit] credito."
+ reset: "I blocchi di [name] sono stati ribloccati solo al blocco centrale."
+ phases:
+ description: "apri l'editor dell'ordine delle fasi"
+ no-index: "Nessun indice di fase caricato, quindi le fasi non possono essere riordinate"
+ saved: "Ordine delle fasi salvato e applicato"
+ save-failed: "Impossibile salvare l'ordine delle fasi! Vedere la console per gli errori"
+ gui:
+ title: "Ordine Fase"
+ info-title: "Come usare"
+ instructions: |-
+ Fai clic su una fase per sollevarla,
+ quindi fai clic su dove dovrebbe andare.
+ Fai clic con il pulsante destro del mouse per attivare/disattivare una fase
+ attiva o disattiva.
+ repeat: "Dopo l'ultima fase il conteggio salta a [number]"
+ phase-name: "[name]"
+ start: "Inizio: [number]"
+ length: "Lunghezza: [number]"
+ disabled: "Disabilitato"
+ version-locked: "Richiede Minecraft [version]+"
+ pick-up: "Fai clic per spostare"
+ toggle: "Fai clic con il pulsante destro del mouse per attivare/disattivare"
+ set-length: "Maiusc+clic sinistro per impostare la lunghezza"
+ drop-here: "Fai clic per rilasciare qui"
+ drop-at-end: "Rilascia alla fine"
+ held: "Spostamento: [name]"
+ put-back: "Fai clic per rimettere"
+ enter-length: "Immetti una nuova lunghezza in chat per [name] - attualmente [number] blocchi. Digita cancel per mantenerlo."
+ invalid-length: "La lunghezza deve essere un numero intero superiore a 0"
+ length-cancelled: "Lunghezza non modificata"
+ cancel-word: "cancel"
setcount:
parameters:
description: imposta il conteggio dei blocchi del giocatore
diff --git a/src/main/resources/locales/ja.yml b/src/main/resources/locales/ja.yml
index 68e94fc..d98bbc1 100644
--- a/src/main/resources/locales/ja.yml
+++ b/src/main/resources/locales/ja.yml
@@ -26,9 +26,17 @@ protection:
各フェーズの
ステータスを
アクションバーに表示します。
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: チャンク認領
+ description: |-
+ 島のレベル額度を使用して
+ 新しいチャンクを認領できる
+ ランク。
+ hint: "あなたのランクではこの島のチャンクを認領できません!"
chunkblock:
bossbar:
title: 残りのブロック
+ title-prefix: "[title] | "
status: '位相ブロック [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,6 +44,41 @@ chunkblock:
actionbar:
status: "フェーズ: [phase-name] | ブロック数: [done] / [total] | 進行状況: [percent-done]"
not-active: "この島ではアクションバーが有効ではありません"
+ chunks:
+ entry-denied: "そのチャンクはロックされています。"
+ locked: "そこに触れることはできません — チャンクがロックされています。"
+ claim-hint: "ボーダーをヒットしてこのチャンクを [cost] レベルで認領してください!現在 [credit] レベルの額度があります。"
+ claim-confirm: "このチャンクを [cost] レベルで認領しますか?その後 [after] レベルの額度が残ります。潜行してボーダーを再度ヒットしてください [seconds]s 以内に確認してください。"
+ no-credit: "このチャンクを認領するには [needed] レベルの額度が必要です。"
+ beyond-limit: "そのチャンクは島の保護範囲を超えています。"
+ claimed: "チャンク認領完了! あなたの島は今 [number] 個のチャンクです。残りの額度: [credit] レベル。"
+ credit: "さらに [count] 個のチャンクを認領できます!ボーダーに行き、成長させたい場所をヒットしてください。"
+ relocked: "島のレベルが低下しました — [count] 個のチャンクが再ロックされました(新しい順)。レベルを取り戻して再度認領してください!"
+ ejected: "あなたがいたチャンクが再ロックされたため、安全な場所に移動されました。"
+ max-reached: "島が最大サイズ [number] チャンクに達しました!"
+ ring-complete: "リング [ring] 完成! 島の周り全体があなたのものです — [chunks] 個のチャンク全部。"
+ ring-broadcast: "[name] の島がリング [ring] を閉じました — [chunks] 個のチャンク、まだ成長中!"
+ rings: "完成したリング: [rings] / [max]。"
+ ring-progress: "リング [ring]: [remaining]/[total] チャンクまで。"
+ sethome-denied: "ロックされたチャンク内にホームを設定することはできません。"
+ info: "チャンク: [unlocked]/[max]。額度: [credit] レベル — チャンク1個のコストは [cost]。"
+ map:
+ title: "あなたの島の領土([unlocked]/[max] チャンク):"
+ row: "[row]"
+ legend: "■ あなたのもの ▣ 認領可能(各 [cost] レベル) □ ロック済み ◎ 中心 ◆ あなた"
+ you-are-here: "あなたはマークされたチャンク上にいます。"
+ dialog:
+ close: "閉じる"
+ tooltip:
+ center: "中央チャンク — あなたの魔法ブロックはここにあります。"
+ owned: "チャンク [x], [z] — あなたのもの。"
+ claimable: "チャンク [x], [z] — [cost] レベルで認領可能。そのボーダーに行ってヒットしてください。"
+ no-credit: "チャンク [x], [z] — [cost] レベルが必要です。[needed] レベルの額度が不足しています。"
+ locked: "チャンク [x], [z] — ロック済み。認領して到達してください。"
+ you-are-here: "あなたはここに立っています。"
+ trophies:
+ awarded: "トロフィー獲得:[name]!"
+ title-available: "島が称号 [title] を獲得しました — /ch title で切り替えてください。"
commands:
admin:
setcount:
@@ -57,6 +100,70 @@ chunkblock:
parameters: <フェーズ>
description: コンソールに位相確率の健全性チェックを表示する
see-console: &aコンソールでレポートを表示
+ bypass:
+ description: "チャンクロック強制を自分に対して切り替える"
+ 'on': "チャンクロックをバイパスできるようになりました。ボーダービジュアルはあなたに隠されています。"
+ 'off': "チャンクロックが再びあなたに適用されます。"
+ chunks:
+ parameters: "<プレイヤー> [reset]"
+ description: "プレイヤーの解放されたチャンクを調査するか、開始時点に戻す"
+ info: "[name]: [number]/[max] チャンク、[spent] レベル費用、[credit] 額度。"
+ reset: "[name] のチャンクが中央チャンクのみに再ロックされました。"
+ phases:
+ description: "フェーズ順序エディターを開く"
+ no-index: "フェーズインデックスが読み込まれていないため、フェーズを並べ替えることはできません"
+ saved: "フェーズ順序が保存され適用されました"
+ save-failed: "フェーズ順序を保存できませんでした!コンソールをチェックしてください"
+ gui:
+ title: "フェーズ順序"
+ info-title: "使用方法"
+ instructions: |-
+ フェーズをクリックして拾い上げ、
+ その後ドロップする場所をクリックしてください。
+ 右クリックでフェーズのオン/オフを
+ 切り替えます。
+ repeat: "最後のフェーズの後、カウントは [number] にジャンプします"
+ phase-name: "[name]"
+ start: "開始: [number]"
+ length: "長さ: [number]"
+ disabled: "無効"
+ version-locked: "Minecraft [version]+ が必要です"
+ pick-up: "クリックして移動"
+ toggle: "右クリックして切り替え"
+ set-length: "Shift + 左クリックして長さを設定"
+ drop-here: "クリックしてここにドロップ"
+ drop-at-end: "最後にドロップ"
+ held: "移動中:[name]"
+ put-back: "クリックして戻す"
+ enter-length: "チャットで [name] の新しい長さを入力してください — 現在 [number] ブロックです。キープするには cancel と入力してください。"
+ invalid-length: "長さは0より大きい整数である必要があります"
+ length-cancelled: "長さが変更されていません"
+ cancel-word: "cancel"
+ chunks:
+ description: "解放されたチャンクと領土マップを表示"
+ ledger:
+ description: "チームメンバーの貢献度を表示"
+ parameters: "[days]"
+ header: "島の貢献度台帳 ([window])"
+ all-time: "全時間"
+ last-days: "過去 [days] 日"
+ row: " - [name]:[blocks] ブロック、[chunks] チャンク、[rings] リング"
+ total: "合計:[blocks] ブロック、[chunks] チャンク、[rings] リング"
+ no-activity: "記録されたアクティビティはまだありません。"
+ title:
+ description: "島の称号を切り替えるか選択する"
+ parameters: "[list | trophy-id | none]"
+ header: "島のトロフィー:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — 称号 [title] (/ch title [id])"
+ none-earned-yet: "島はまだトロフィーを獲得していません。"
+ active: "アクティブな称号: [title]"
+ no-active: "アクティブな称号がありません。/ch title で選んでください。"
+ set: "島の称号が [title] に設定されました。"
+ cleared: "島は称号を表示しなくなりました。"
+ toggled-on: "島の称号 [title] が表示されるようになりました。"
+ toggled-off: "島の称号 [title] が非表示になりました。"
+ not-earned: "島はその称号のトロフィーを獲得していません。"
count:
description: ブロック数とフェーズを表示する
info: '[name]フェーズのブロック[number]にいます'
diff --git a/src/main/resources/locales/pl.yml b/src/main/resources/locales/pl.yml
index 05585f1..95a0a91 100644
--- a/src/main/resources/locales/pl.yml
+++ b/src/main/resources/locales/pl.yml
@@ -26,9 +26,17 @@ protection:
Pokazuje status
dla każdej fazy
na Pasku Akcji.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Rościj Kawałki
+ description: |-
+ Ranga, która może wydać
+ kredyt poziomu wyspy
+ do roszczenia nowych kawałków.
+ hint: "Twoja ranga nie może rościć kawałków dla tej wyspy!"
chunkblock:
bossbar:
title: Pozostałe bloki
+ title-prefix: "[title] | "
status: 'Bloki fazowe [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,6 +44,41 @@ chunkblock:
actionbar:
status: "Faza: [phase-name] | Bloki: [done] / [total] | Postęp: [percent-done]"
not-active: "Pasek akcji nie jest aktywny dla tej wyspy"
+ chunks:
+ entry-denied: "Ten kawałek jest zablokowany."
+ locked: "Nie możesz go dotknąć — kawałek jest zablokowany."
+ claim-hint: "Uderz w granicę, aby rościć ten kawałek za [cost] poziomu! Masz [credit] poziomów kredytu."
+ claim-confirm: "Rościć ten kawałek za [cost] poziomu? Zostawia Ci [after] poziomów kredytu. Ukradkiem i uderz w granicę ponownie w ciągu [seconds]s aby potwierdzić."
+ no-credit: "Potrzebujesz [needed] więcej poziomów kredytu, aby rościć ten kawałek."
+ beyond-limit: "Ten kawałek jest poza obszarem ochrony Twojej wyspy."
+ claimed: "Kawałek roścignięty! Twoja wyspa ma teraz [number] kawałków. Pozostały kredyt: [credit] poziomów."
+ credit: "Możesz rościć [count] więcej kawałków! Idź do swojej granicy i uderz tam, gdzie chcesz rosnąć."
+ relocked: "Poziom Twojej wyspy spadł — [count] kawałków ponownie zablokowanych, najnowsze najpierw. Odzyskaj poziomy, aby je odblokować!"
+ ejected: "Kawałek, w którym byłeś, ponownie się zablokował, więc zostałeś przeniesiony w bezpieczne miejsce."
+ max-reached: "Wyspa osiągnęła maksymalny rozmiar [number] kawałków!"
+ ring-complete: "Pierścień [ring] ukończony! Cały pierścień wokół Twojej wyspy jest Twój — [chunks] kawałków w sumie."
+ ring-broadcast: "Wyspa [name] zamknęła pierścień [ring] — [chunks] kawałków i wciąż rośnie!"
+ rings: "Pierścienie ukończone: [rings] z [max]."
+ ring-progress: "Pierścień [ring]: [remaining]/[total] kawałków zostało."
+ sethome-denied: "Nie możesz ustawić domu w zablokowanym kawałku."
+ info: "Kawałki: [unlocked]/[max]. Kredyt: [credit] poziomów — kawałek kosztuje [cost]."
+ map:
+ title: "Terytorium Twojej wyspy ([unlocked]/[max] kawałków):"
+ row: "[row]"
+ legend: "■ Twój ▣ Możliwy do roszczenia ([cost] poziomu każdy) □ Zablokowany ◎ Centrum ◆ Ty"
+ you-are-here: "Jesteś na zaznaczonym kawałku."
+ dialog:
+ close: "Zamknij"
+ tooltip:
+ center: "Kawałek centralny — Twój magiczny blok jest tutaj."
+ owned: "Kawałek [x], [z] — Twój."
+ claimable: "Kawałek [x], [z] — możliwy do roszczenia za [cost] poziomów. Idź do tej granicy i uderz ją."
+ no-credit: "Kawałek [x], [z] — kosztuje [cost] poziomów. Potrzebujesz [needed] więcej poziomów kredytu."
+ locked: "Kawałek [x], [z] — zablokowany. Rość swoją ścieżkę do niego."
+ you-are-here: "Stoisz tutaj."
+ trophies:
+ awarded: "Trofeum uzyskane: [name]!"
+ title-available: "Twoja wyspa uzyskała tytuł [title] — przełączaj go w /ch title."
commands:
admin:
setcount:
@@ -57,6 +100,70 @@ chunkblock:
parameters:
description: wyświetlać kontrolę poprawności prawdopodobieństwa fazy w konsoli
see-console: 'Zobacz raport w konsoli'
+ bypass:
+ description: "przełącz egzekwowanie blokady kawałków na siebie"
+ 'on': "Teraz omijasz blokady kawałków. Wizualne granice są ukryte dla Ciebie."
+ 'off': "Blokady kawałków ponownie się do Ciebie stosują."
+ chunks:
+ parameters: " [reset]"
+ description: "zbadaj odblokowane kawałki gracza lub zablokuj je z powrotem do początku"
+ info: "[name]: [number]/[max] kawałków, [spent] wydanych poziomów, [credit] kredytu."
+ reset: "Kawałki [name] zostały ponownie zablokowane do tylko kawałka centralnego."
+ phases:
+ description: "otwórz edytor kolejności faz"
+ no-index: "Indeks fazy nie jest załadowany, więc nie można zmienić kolejności faz"
+ saved: "Kolejność faz została zapisana i zastosowana"
+ save-failed: "Nie udało się zapisać kolejności faz! Sprawdź błędy w konsoli"
+ gui:
+ title: "Kolejność Faz"
+ info-title: "Jak używać"
+ instructions: |-
+ Kliknij fazę, aby ją podnieść,
+ a następnie kliknij miejsce, gdzie powinna być.
+ Prawy przycisk myszy przełącza fazę
+ w tę/tamtą stronę.
+ repeat: "Po ostatniej fazie liczba przechodzi do [number]"
+ phase-name: "[name]"
+ start: "Start: [number]"
+ length: "Długość: [number]"
+ disabled: "Wyłączone"
+ version-locked: "Wymaga Minecraft [version]+"
+ pick-up: "Kliknij, aby przenieść"
+ toggle: "Prawy klik, aby przełączyć"
+ set-length: "Shift + lewy klik, aby ustawić długość"
+ drop-here: "Kliknij, aby upuścić tutaj"
+ drop-at-end: "Upuść na koniec"
+ held: "Przenoszenie: [name]"
+ put-back: "Kliknij, aby odłożyć"
+ enter-length: "Wprowadź nową długość na czacie dla [name] - aktualnie [number] bloków. Wpisz cancel aby zachować."
+ invalid-length: "Długość musi być liczbą całkowitą większą od 0"
+ length-cancelled: "Długość nie zmieniona"
+ cancel-word: "cancel"
+ chunks:
+ description: "pokaż swoje odblokowane kawałki i mapę swojego terytorium"
+ ledger:
+ description: "pokaż wkład członków zespołu"
+ parameters: "[days]"
+ header: "Rejestr Wkład Wyspy ([window])"
+ all-time: "cały czas"
+ last-days: "ostatnie [days] dni"
+ row: " - [name]: [blocks] bloków, [chunks] kawałków, [rings] pierścieni"
+ total: "Razem: [blocks] bloków, [chunks] kawałków, [rings] pierścieni"
+ no-activity: "Nie zarejestowano jeszcze żadnej aktywności."
+ title:
+ description: "przełącz tytuł wyspy lub wybierz jeden"
+ parameters: "[list | trophy-id | none]"
+ header: "Trofea Twojej wyspy:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — tytuł [title] (/ch title [id])"
+ none-earned-yet: "Twoja wyspa nie uzyskała jeszcze żadnych trofeów."
+ active: "Aktywny tytuł: [title]"
+ no-active: "Brak aktywnego tytułu. Wybierz jeden za pomocą /ch title."
+ set: "Tytuł Twojej wyspy to teraz [title]."
+ cleared: "Twoja wyspa nie wyświetla już tytułu."
+ toggled-on: "Tytuł wyspy [title] jest teraz widoczny."
+ toggled-off: "Tytuł wyspy [title] jest teraz ukryty."
+ not-earned: "Twoja wyspa nie uzyskała trofeum z tym tytułem."
count:
description: pokaż liczbę bloków i fazę
info: 'Jesteś na bloku [number] w fazie [name]'
diff --git a/src/main/resources/locales/pt.yml b/src/main/resources/locales/pt.yml
index 592e045..f062865 100644
--- a/src/main/resources/locales/pt.yml
+++ b/src/main/resources/locales/pt.yml
@@ -26,9 +26,17 @@ protection:
Mostra um status
para cada fase
na Action Bar.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Reivindicar Blocos
+ description: |-
+ Rank que pode gastar o
+ crédito de nível da ilha
+ para reivindicar novos blocos.
+ hint: "Seu rank não pode reivindicar blocos para esta ilha!"
chunkblock:
bossbar:
title: Bloqueia o restante
+ title-prefix: "[title] | "
status: 'Blocos de fase [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,6 +44,41 @@ chunkblock:
actionbar:
status: "Fase: [phase-name] | Blocos: [done] / [total] | Progresso: [percent-done]"
not-active: "A barra de ação não está ativa para esta ilha"
+ chunks:
+ entry-denied: "Aquele bloco está travado."
+ locked: "Você não pode tocar nisso — o bloco está travado."
+ claim-hint: "Acerte a borda para reivindicar este bloco por [cost] nível(ns)! Você tem [credit] nível(ns) de crédito."
+ claim-confirm: "Reivindicar este bloco por [cost] nível(ns)? Isso deixa você [after] nível(ns) de crédito. Esgueirar-se e acertar a borda novamente dentro de [seconds]s para confirmar."
+ no-credit: "Você precisa [needed] de mais nível(ns) de crédito para reivindicar este bloco."
+ beyond-limit: "Aquele bloco está além da área de proteção da sua ilha."
+ claimed: "Bloco reivindicado! Sua ilha tem agora [number] blocos. Crédito restante: [credit] nível(ns)."
+ credit: "Você pode reivindicar [count] bloco(s) a mais! Vá para sua borda e acerte onde quer crescer."
+ relocked: "O nível da sua ilha caiu — [count] bloco(s) travado(s) novamente, mais recentes primeiro. Reganha os níveis para reivindicá-los de volta!"
+ ejected: "O bloco em que você estava se trancou, então você foi movido para um local seguro."
+ max-reached: "Sua ilha atingiu o tamanho máximo de [number] blocos!"
+ ring-complete: "Anel [ring] completo! Todo o anel ao redor da sua ilha é seu — [chunks] blocos ao todo."
+ ring-broadcast: "A ilha de [name] fechou o anel [ring] — [chunks] blocos e ainda crescendo!"
+ rings: "Anéis concluídos: [rings] de [max]."
+ ring-progress: "Anel [ring]: [remaining]/[total] blocos a partir."
+ sethome-denied: "Você não pode definir uma home em um bloco travado."
+ info: "Blocos: [unlocked]/[max]. Crédito: [credit] nível(ns) — um bloco custa [cost]."
+ map:
+ title: "Seu território de ilha ([unlocked]/[max] blocos):"
+ row: "[row]"
+ legend: "■ seu ▣ reivindicável ([cost] nível(ns) cada) □ travado ◎ centro ◆ você"
+ you-are-here: "Você está no bloco marcado."
+ dialog:
+ close: "Fechar"
+ tooltip:
+ center: "O bloco do centro — seu bloco mágico está aqui."
+ owned: "Bloco [x], [z] — seu."
+ claimable: "Bloco [x], [z] — reivindicável por [cost] nível(ns). Vá para aquela borda e acerte."
+ no-credit: "Bloco [x], [z] — custos [cost] nível(ns). Você precisa de [needed] mais nível(ns) de crédito."
+ locked: "Bloco [x], [z] — travado. Reivindique seu caminho para fora para isso."
+ you-are-here: "Você está em pé aqui."
+ trophies:
+ awarded: "Troféu conquistado: [name]!"
+ title-available: "Sua ilha ganhou o título [title] — alterne-o em /ch title."
commands:
admin:
setcount:
@@ -59,6 +102,70 @@ chunkblock:
exibir uma verificação de sanidade das probabilidades de fase no
console
see-console: 'Veja o console para o relatório'
+ bypass:
+ description: "ativar/desativar a aplicação de bloqueio de blocos para você"
+ 'on': "Você agora desvia dos bloqueios de blocos. Visuais de borda estão ocultos para você."
+ 'off': "Os bloqueios de blocos se aplicam a você novamente."
+ chunks:
+ parameters: " [reset]"
+ description: "inspecionar os blocos desbloqueados de um jogador ou reconectá-los ao início"
+ info: "[name]: [number]/[max] blocos, [spent] níveis gastos, [credit] crédito."
+ reset: "Os blocos de [name] foram retravados de volta ao bloco do centro."
+ phases:
+ description: "abrir o editor de ordem de fases"
+ no-index: "Nenhum índice de fase está carregado, portanto as fases não podem ser reordenadas"
+ saved: "Ordem de fase salva e aplicada"
+ save-failed: "Não foi possível salvar a ordem de fase! Veja o console para erros"
+ gui:
+ title: "Ordem de Fase"
+ info-title: "Como usar"
+ instructions: |-
+ Clique em uma fase para pegá-la,
+ depois clique onde ela deve ir.
+ Clique com o botão direito para alternar uma fase
+ ligada ou desligada.
+ repeat: "Após a última fase, a contagem salta para [number]"
+ phase-name: "[name]"
+ start: "Início: [number]"
+ length: "Comprimento: [number]"
+ disabled: "Desativado"
+ version-locked: "Precisa de Minecraft [version]+"
+ pick-up: "Clique para mover"
+ toggle: "Clique com o botão direito para alternar"
+ set-length: "Shift-clique esquerdo para definir comprimento"
+ drop-here: "Clique para soltar aqui"
+ drop-at-end: "Soltar no final"
+ held: "Movendo: [name]"
+ put-back: "Clique para colocar de volta"
+ enter-length: "Digite um novo comprimento no bate-papo para [name] - atualmente é [number] blocos. Digite cancel para mantê-lo."
+ invalid-length: "O comprimento deve ser um número inteiro acima de 0"
+ length-cancelled: "Comprimento não alterado"
+ cancel-word: "cancel"
+ chunks:
+ description: "mostrar seus blocos desbloqueados e um mapa de seu território"
+ ledger:
+ description: "mostrar contribuições de membros da equipe"
+ parameters: "[days]"
+ header: "Razão de Contribuição da Ilha ([window])"
+ all-time: "a todo o tempo"
+ last-days: "últimos [days] dias"
+ row: " - [name]: [blocks] blocos, [chunks] blocos, [rings] anéis"
+ total: "Total: [blocks] blocos, [chunks] blocos, [rings] anéis"
+ no-activity: "Nenhuma atividade registrada ainda."
+ title:
+ description: "alterne o título da sua ilha ou escolha um"
+ parameters: "[list | trophy-id | none]"
+ header: "Troféus da sua ilha:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — título [title] (/ch title [id])"
+ none-earned-yet: "Sua ilha não ganhou nenhum troféu ainda."
+ active: "Título ativo: [title]"
+ no-active: "Nenhum título ativo. Escolha um com /ch title."
+ set: "O título da sua ilha é agora [title]."
+ cleared: "Sua ilha não mostra mais um título."
+ toggled-on: "Título da ilha [title] agora está mostrando."
+ toggled-off: "Título da ilha [title] agora está oculto."
+ not-earned: "Sua ilha não ganhou um troféu com esse título."
count:
description: mostra a contagem de blocos e a fase
info: 'Você está no bloco [number] no [name] fase'
diff --git a/src/main/resources/locales/ru.yml b/src/main/resources/locales/ru.yml
index 97032f7..4fe19ba 100644
--- a/src/main/resources/locales/ru.yml
+++ b/src/main/resources/locales/ru.yml
@@ -24,9 +24,17 @@ protection:
CHUNKBLOCK_ACTIONBAR:
name: Панель действий
description: Показывает статус фазы в панели действий
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Захват Чанков
+ description: |-
+ Ранг, который может потратить
+ кредит уровня острова
+ для захвата новых чанков.
+ hint: "Ваш ранг не может захватывать чанки для этого острова!"
chunkblock:
bossbar:
title: Осталось блоков
+ title-prefix: "[title] | "
# статус: "Статус фазы [total]. Осталось: [todo]"
# статус: "[phase-name] : [percent-done]"
status: Статус фазы [done] / [total]
@@ -38,6 +46,41 @@ chunkblock:
actionbar:
status: 'Фаза: [phase-name] | Блоков: [done] / [total] | Прогресс: [percent-done]'
not-active: Панель действий отключена на этом острове.
+ chunks:
+ entry-denied: "Этот чанк заблокирован."
+ locked: "Вы не можете это трогать — чанк заблокирован."
+ claim-hint: "Ударьте границу, чтобы захватить этот чанк за [cost] уровень(ей)! У вас есть [credit] уровень(ей) кредита."
+ claim-confirm: "Захватить этот чанк за [cost] уровень(ей)? Это оставит вас [after] уровень(ей) кредита. Встаньте на корточки и ударьте границу еще раз в течение [seconds]s для подтверждения."
+ no-credit: "Вам нужно [needed] больше уровень(ей) кредита, чтобы захватить этот чанк."
+ beyond-limit: "Этот чанк находится за пределами области защиты вашего острова."
+ claimed: "Чанк захвачен! Ваш остров теперь [number] чанков. Остаток кредита: [credit] уровень(ей)."
+ credit: "Вы можете захватить еще [count] чанк(ов)! Идите на границу и ударьте там, где хотите расти."
+ relocked: "Уровень вашего острова упал — [count] чанк(ов) повторно заблокирован, новые первыми. Вернитесь к уровням, чтобы повторно их захватить!"
+ ejected: "Чанк, в котором вы были, повторно заблокировался, поэтому вас переместили в безопасное место."
+ max-reached: "Ваш остров достиг максимального размера [number] чанков!"
+ ring-complete: "Кольцо [ring] завершено! Все кольцо вокруг вашего острова принадлежит вам — [chunks] чанков всего."
+ ring-broadcast: "Остров [name] закрыл кольцо [ring] — [chunks] чанков и продолжает расти!"
+ rings: "Завершенные кольца: [rings] из [max]."
+ ring-progress: "Кольцо [ring]: [remaining]/[total] чанков осталось."
+ sethome-denied: "Вы не можете установить дом в заблокированном чанке."
+ info: "Чанки: [unlocked]/[max]. Кредит: [credit] уровень(ей) — чанк стоит [cost]."
+ map:
+ title: "Территория вашего острова ([unlocked]/[max] чанков):"
+ row: "[row]"
+ legend: "■ ваш ▣ доступный для захвата ([cost] уровень(ей) каждый) □ заблокирован ◎ центр ◆ вы"
+ you-are-here: "Вы находитесь на отмеченном чанке."
+ dialog:
+ close: "Закрыть"
+ tooltip:
+ center: "Центральный чанк — ваш магический блок здесь."
+ owned: "Чанк [x], [z] — ваш."
+ claimable: "Чанк [x], [z] — доступен для захвата за [cost] уровень(ей). Идите на эту границу и ударьте."
+ no-credit: "Чанк [x], [z] — стоит [cost] уровень(ей). Вам нужно [needed] больше уровень(ей) кредита."
+ locked: "Чанк [x], [z] — заблокирован. Захватите себе путь к нему."
+ you-are-here: "Вы стоите здесь."
+ trophies:
+ awarded: "Трофей заработан: [name]!"
+ title-available: "Ваш остров заработал звание [title] — переключайте его с помощью /ch title."
commands:
admin:
setcount:
@@ -59,6 +102,70 @@ chunkblock:
parameters: <фаза>
description: вывести в консоль проверку вероятностей фазы
see-console: Смотрите отчёт в консоли.
+ bypass:
+ description: "переключать принудительное применение блокировки чанков для себя"
+ 'on': "Вы теперь обходите блокировки чанков. Визуальные границы скрыты от вас."
+ 'off': "Блокировки чанков снова применяются к вам."
+ chunks:
+ parameters: "<игрок> [reset]"
+ description: "проверить разблокированные чанки игрока или заблокировать их обратно в начало"
+ info: "[name]: [number]/[max] чанков, [spent] потраченных уровней, [credit] кредита."
+ reset: "Чанки [name] были повторно заблокированы только для центрального чанка."
+ phases:
+ description: "открыть редактор порядка фаз"
+ no-index: "Индекс фаз не загружен, поэтому фазы не могут быть переупорядочены"
+ saved: "Порядок фаз сохранен и применен"
+ save-failed: "Не удалось сохранить порядок фаз! Проверьте консоль на наличие ошибок"
+ gui:
+ title: "Порядок Фаз"
+ info-title: "Как использовать"
+ instructions: |-
+ Нажмите на фазу, чтобы поднять ее,
+ затем нажмите, где она должна быть.
+ Щелкните правой кнопкой мыши, чтобы переключить фазу
+ включении или отключении.
+ repeat: "После последней фазы счетчик переходит на [number]"
+ phase-name: "[name]"
+ start: "Начало: [number]"
+ length: "Длина: [number]"
+ disabled: "Отключено"
+ version-locked: "Требуется Minecraft [version]+"
+ pick-up: "Нажмите, чтобы переместить"
+ toggle: "Щелкните правой кнопкой мыши, чтобы переключить"
+ set-length: "Shift + левый клик, чтобы установить длину"
+ drop-here: "Нажмите, чтобы поместить здесь"
+ drop-at-end: "Поместить в конец"
+ held: "Перемещение: [name]"
+ put-back: "Нажмите, чтобы положить обратно"
+ enter-length: "Введите новую длину в чат для [name] - в настоящее время [number] блоков. Введите cancel чтобы сохранить."
+ invalid-length: "Длина должна быть целым числом больше 0"
+ length-cancelled: "Длина не изменена"
+ cancel-word: "cancel"
+ chunks:
+ description: "показать ваши разблокированные чанки и карту вашей территории"
+ ledger:
+ description: "показать взносы членов команды"
+ parameters: "[days]"
+ header: "Реестр вклада острова ([window])"
+ all-time: "за все время"
+ last-days: "последние [days] дней"
+ row: " - [name]: [blocks] блоков, [chunks] чанков, [rings] колец"
+ total: "Итого: [blocks] блоков, [chunks] чанков, [rings] колец"
+ no-activity: "Пока нет записей об активности."
+ title:
+ description: "переключать звание острова или выбрать один"
+ parameters: "[list | trophy-id | none]"
+ header: "Трофеи вашего острова:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — звание [title] (/ch title [id])"
+ none-earned-yet: "Ваш остров еще не заработал ни одного трофея."
+ active: "Активное звание: [title]"
+ no-active: "Нет активного звания. Выберите один с помощью /ch title."
+ set: "Звание вашего острова теперь [title]."
+ cleared: "Ваш остров больше не показывает звание."
+ toggled-on: "Звание острова [title] теперь отображается."
+ toggled-off: "Звание острова [title] теперь скрыто."
+ not-earned: "Ваш остров не заработал трофей с этим званием."
count:
description: показать количество вскопано блоков и фазу
info: Вскопано [number] блоков на фазе [name]
diff --git a/src/main/resources/locales/tr.yml b/src/main/resources/locales/tr.yml
index 9aa4cec..a466ed3 100644
--- a/src/main/resources/locales/tr.yml
+++ b/src/main/resources/locales/tr.yml
@@ -26,9 +26,17 @@ protection:
Her aşama için bir
durumu Eylem Çubuğunda
gösterir.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Kısımları Talep Et
+ description: |-
+ Adanın seviye kredisini
+ harcayarak yeni kısımları talep
+ edebilecek rütbe.
+ hint: "Rütbeniz bu ada için kısımları talep edemez!"
chunkblock:
bossbar:
title: Kalan bloklar
+ title-prefix: "[title] | "
status: 'Faz blokları [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,7 +44,67 @@ chunkblock:
actionbar:
status: "Aşama: [phase-name] | Bloklar: [done] / [total] | İlerleme: [percent-done]"
not-active: "Bu ada için eylem çubuğu aktif değil"
+ trophies:
+ awarded: "Ödül kazanıldı: [name]!"
+ title-available: "Adanız şu başlığı kazandı [title] — /ch title kullanarak açıp kapatın."
+ chunks:
+ entry-denied: "Bu kısım kilitli."
+ locked: "Buna dokunmayabilirsin — kısım kilitli."
+ claim-hint: "Bu kısımı talep etmek için sınırı vur [cost] seviye(si) için! Var [credit] seviye(si) kredi."
+ claim-confirm: "Bu kısımı [cost] seviye(si) için talep etmek istiyor musun? Sana [after] seviye(si) kredi bırakacak. Gizli tuş ve sınırı yeniden vur içinde [seconds]s onaylamak için."
+ no-credit: "Bu kısımı talep etmek için [needed] daha fazla seviye(si) krediye ihtiyacın var."
+ beyond-limit: "Bu kısım adanın koruma alanının ötesinde."
+ claimed: "Kısım talep edildi! Adanız şimdi [number] kısım. Kalan kredi: [credit] seviye(si)."
+ credit: "Daha [count] kısım talep edebilirsin! Sınırına git ve büyütmek istediğin yeri vur."
+ relocked: "Ada seviyeniz düştü — [count] kısım yeniden kilitlendi, en yenisi önce. Seviyelerinizi geri kazanarak talep edin!"
+ ejected: "İçinde bulunduğun kısım yeniden kilitlendi, bu yüzden seni güvenli alana taşındım."
+ max-reached: "Adanız maksimum boyutu [number] kısma ulaştı!"
+ ring-complete: "Halka [ring] tamamlandı! Adanın etrafındaki tüm halka sinin — [chunks] kısım toplamı."
+ ring-broadcast: "[name]'nin adası halka [ring] kapattı — [chunks] kısım ve hala büyüyor!"
+ rings: "Tamamlanan halkalar: [rings] / [max]."
+ ring-progress: "Halka [ring]: [remaining]/[total] kısım gitmek için."
+ sethome-denied: "Kilitli bir kısımda ev ayarlayamazsın."
+ info: "Kısımlar: [unlocked]/[max]. Kredi: [credit] seviye(si) — bir kısım maliyeti [cost]."
+ map:
+ title: "Adanızın bölgesi ([unlocked]/[max] kısım):"
+ row: "[row]"
+ legend: "■ senin ▣ talep edilebilir ([cost] seviye(si) her biri) □ kilitli ◎ merkez ◆ sen"
+ you-are-here: "İşaretlenmiş kısımda varsın."
+ dialog:
+ close: "Kapat"
+ tooltip:
+ center: "Merkez kısım — sihirli bloğun burada."
+ owned: "Kısım [x], [z] — senin."
+ claimable: "Kısım [x], [z] — talep edilebilir [cost] seviye(si) için. O sınırına git ve vur."
+ no-credit: "Kısım [x], [z] — maliyetler [cost] seviye(si). [needed] daha fazla seviye(si) krediye ihtiyacın var."
+ locked: "Kısım [x], [z] — kilitli. Talep ederek çık."
+ you-are-here: "Burada duruyorsun."
commands:
+ chunks:
+ description: "talep edilen kısımlarınızı ve bölgenizin haritasını göster"
+ ledger:
+ description: "takım üyesi katkılarını göster"
+ parameters: "[gün]"
+ header: "Ada Katkı Defteri ([window])"
+ all-time: "tüm zaman"
+ last-days: "son [days] gün"
+ row: " - [name]: [blocks] blok, [chunks] kısım, [rings] halka"
+ total: "Toplam: [blocks] blok, [chunks] kısım, [rings] halka"
+ no-activity: "Henüz hiçbir etkinlik kaydedilmedi."
+ title:
+ description: "adanızın başlığını aç/kapat veya birini seç"
+ parameters: "[liste | ödül-id | yok]"
+ header: "Adanızın ödülleri:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — başlık [title] (/ch title [id])"
+ none-earned-yet: "Adanız henüz hiçbir ödül kazanmadı."
+ active: "Etkin başlık: [title]"
+ no-active: "Etkin başlık yok. Birini seç /ch title."
+ set: "Adanızın başlığı şimdi [title]."
+ cleared: "Adanız artık başlık göstermiyor."
+ toggled-on: "Ada başlığı [title] şimdi gösteriliyor."
+ toggled-off: "Ada başlığı [title] şimdi gizli."
+ not-earned: "Adanız bu başlığa sahip bir ödül kazanmadı."
admin:
setcount:
parameters: [lifetime]
@@ -57,6 +125,45 @@ chunkblock:
parameters:
description: konsoldaki faz olasılıklarının akıl sağlığını kontrol etmek
see-console: 'Rapor için konsola bakın'
+ bypass:
+ description: "kendiniz için kısım kilit uygulamasını değiştir"
+ "on": "Kısım kilitlerini atlayıyorsunuz. Sınır görselleri sizin için gizli."
+ "off": "Kısım kilitleri yeniden uygulanıyor."
+ chunks:
+ parameters: " [sıfırla]"
+ description: "oyuncunun talep edilen kısımlarını kontrol et veya başlangıca kilitle"
+ info: "[name]: [number]/[max] kısım, [spent] seviye(si) harcanmış, [credit] kredi."
+ reset: "[name]'nin kısımları yalnızca merkez kısma kadar yeniden kilitlendi."
+ phases:
+ description: "faz sırası editörünü aç"
+ no-index: "Hiçbir faz dizini yüklenmedi, bu yüzden fazlar yeniden sıralanamaz"
+ saved: "Faz sırası kaydedildi ve uygulandı"
+ save-failed: "Faz sırası kaydedilemedi! Hatalar için konsola bakın"
+ gui:
+ title: "Faz Sırası"
+ info-title: "Nasıl Kullanılır"
+ instructions: |-
+ Bir fazı almak için tıkla,
+ sonra nereye gitmesi gerektiğini tıkla.
+ Sağ tıkla bir fazı
+ açıp kapatmak için.
+ repeat: "Son fazdan sonra sayı [number] ye atlar"
+ phase-name: "[name]"
+ start: "Başlangıç: [number]"
+ length: "Uzunluk: [number]"
+ disabled: "Devre Dışı"
+ version-locked: "Minecraft [version]+ Gerekli"
+ pick-up: "Taşımak için tıkla"
+ toggle: "Değiştirmek için sağ tıkla"
+ set-length: "Uzunluğu ayarlamak için Shift+Sol tıkla"
+ drop-here: "Buraya düşürmek için tıkla"
+ drop-at-end: "Sona düşür"
+ held: "Taşınıyor: [name]"
+ put-back: "Geri koymak için tıkla"
+ enter-length: "Sohbete [name] için yeni bir uzunluk gir - şu anda [number] blok. Yazı cancel onu tutmak için."
+ invalid-length: "Uzunluk 0'dan büyük bir tam sayı olmalı"
+ length-cancelled: "Uzunluk değiştirilmedi"
+ cancel-word: "cancel"
count:
description: blok sayısını ve aşamayı göster
info: '[name] aşamasında blok [number] üzerindesiniz'
diff --git a/src/main/resources/locales/uk.yml b/src/main/resources/locales/uk.yml
index 2ee5b22..ad76b90 100644
--- a/src/main/resources/locales/uk.yml
+++ b/src/main/resources/locales/uk.yml
@@ -26,9 +26,17 @@ protection:
Показує статус
для кожної фази
в Action Bar.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Заявити Чанки
+ description: |-
+ Ранг, який може витратити
+ кредит рівня острова на
+ заяву нових чанків.
+ hint: "Ваш ранг не може заявити чанки для цього острова!"
chunkblock:
bossbar:
title: Блоки, що залишилися
+ title-prefix: "[title] | "
status: 'Фазові блоки [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,7 +44,67 @@ chunkblock:
actionbar:
status: "Фаза: [phase-name] | Блоки: [done] / [total] | Прогрес: [percent-done]"
not-active: "Панель дій не активна для цього острова"
+ trophies:
+ awarded: "Трофей отримано: [name]!"
+ title-available: "Ваш остріїв отримав назву [title] — перемикайте її вкл/вимк, використовуючи /ch title."
+ chunks:
+ entry-denied: "Цей чанк заблокований."
+ locked: "Ти не можеш це торкатись — чанк заблокований."
+ claim-hint: "Ударьте кордон, щоб заявити цей чанк за [cost] рівень(я)! У вас є [credit] рівень(я) кредиту."
+ claim-confirm: "Заявити цей чанк за [cost] рівень(я)? Це залишить вас [after] рівень(я) кредиту. Присядьте та ударьте кордон ще раз протягом [seconds]s для підтвердження."
+ no-credit: "Вам потрібно [needed] більше рівнів кредиту для заяви цього чанку."
+ beyond-limit: "Цей чанк знаходиться за межами зони захисту вашого острова."
+ claimed: "Чанк заявлено! Ваш остріїв тепер [number] чанків. Залишилось кредиту: [credit] рівень(я)."
+ credit: "Ви можете заявити [count] більше чанків! Йдіть до свого кордону й ударьте туди, де хочете розростатися."
+ relocked: "Рівень вашого острова впав — [count] чанків перезаблоковано, найновіші першими. Повернення рівнів для повторного заявлення!"
+ ejected: "Чанк, в якому ви були, перезаблокований, тому вас переведено в безпеку."
+ max-reached: "Ваш остріїв досяг максимального розміру [number] чанків!"
+ ring-complete: "Кільце [ring] завершено! Все кільце навколо вашого острова - ваше — [chunks] чанків всього."
+ ring-broadcast: "Остріїв [name] закрив кільце [ring] — [chunks] чанків та все ще зростає!"
+ rings: "Завершених кілець: [rings] / [max]."
+ ring-progress: "Кільце [ring]: [remaining]/[total] чанків залишилось."
+ sethome-denied: "Ви не можете встановити домівку в заблокованому чанку."
+ info: "Чанки: [unlocked]/[max]. Кредит: [credit] рівень(я) — чанк коштує [cost]."
+ map:
+ title: "Територія вашого острова ([unlocked]/[max] чанків):"
+ row: "[row]"
+ legend: "■ ваш ▣ можна заявити ([cost] рівень(я) кожен) □ заблокований ◎ центр ◆ ви"
+ you-are-here: "Ви на позначеному чанку."
+ dialog:
+ close: "Закрити"
+ tooltip:
+ center: "Центральний чанк — ваш магічний блок тут."
+ owned: "Чанк [x], [z] — ваш."
+ claimable: "Чанк [x], [z] — можна заявити за [cost] рівень(я). Йдіть до того кордону та ударьте."
+ no-credit: "Чанк [x], [z] — коштує [cost] рівень(я). Вам потрібно [needed] більше рівнів кредиту."
+ locked: "Чанк [x], [z] — заблокований. Заявіть свій шлях до нього."
+ you-are-here: "Ви тут стоїте."
commands:
+ chunks:
+ description: "показати ваші розблоковані чанки та карту вашої території"
+ ledger:
+ description: "показати внески членів команди"
+ parameters: "[дні]"
+ header: "Реєстр внесків острова ([window])"
+ all-time: "весь час"
+ last-days: "останні [days] днів"
+ row: " - [name]: [blocks] блоків, [chunks] чанків, [rings] кілець"
+ total: "Всього: [blocks] блоків, [chunks] чанків, [rings] кілець"
+ no-activity: "Ще не записано ніякої діяльності."
+ title:
+ description: "перемикати назву острова вкл/вимк або виберіть одну"
+ parameters: "[список | id-трофею | немає]"
+ header: "Трофеї вашого острова:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — назва [title] (/ch title [id])"
+ none-earned-yet: "Ваш остріїв ще не отримав жодних трофеїв."
+ active: "Активна назва: [title]"
+ no-active: "Немає активної назви. Виберіть одну за допомогою /ch title."
+ set: "Назва вашого острова тепер [title]."
+ cleared: "Ваш остріїв більше не показує назву."
+ toggled-on: "Назва острова [title] тепер видима."
+ toggled-off: "Назва острова [title] тепер прихована."
+ not-earned: "Ваш остріїв не отримав трофей з такою назвою."
admin:
setcount:
parameters: [lifetime]
@@ -57,6 +125,45 @@ chunkblock:
parameters:
description: відобразити перевірку працездатності ймовірностей фази на консолі
see-console: 'Дивіться консоль для звіту'
+ bypass:
+ description: "перемикати застосування блокування чанків для себе"
+ "on": "Ви тепер обходите блокування чанків. Візуалізація кордону для вас прихована."
+ "off": "Блокування чанків знову застосовується."
+ chunks:
+ parameters: "<гравець> [скинути]"
+ description: "перевірити розблоковані чанки гравця або перезаблокувати їх на початок"
+ info: "[name]: [number]/[max] чанків, [spent] рівнів витрачено, [credit] кредиту."
+ reset: "Чанки [name] перезаблоковані назад до лише центрального чанку."
+ phases:
+ description: "відкрити редактор порядку фаз"
+ no-index: "Жодна фаза не завантажена, тому фази не можна переупорядкувати"
+ saved: "Порядок фаз збережено та застосовано"
+ save-failed: "Не вдалося зберегти порядок фаз! Див. консоль для помилок"
+ gui:
+ title: "Порядок Фаз"
+ info-title: "Як Користуватись"
+ instructions: |-
+ Клацніть на фазу, щоб взяти,
+ потім клацніть, де вона повинна піти.
+ Щоб перемикнути фазу
+ вкл/вимк, клацніть правою кнопкою.
+ repeat: "Після останньої фази лічильник переходить до [number]"
+ phase-name: "[name]"
+ start: "Початок: [number]"
+ length: "Довжина: [number]"
+ disabled: "Вимкнено"
+ version-locked: "Потребує Minecraft [version]+"
+ pick-up: "Клацніть для переміщення"
+ toggle: "Щоб перемикнути, клацніть правою кнопкою"
+ set-length: "Shift+ліва кнопка миші для встановлення довжини"
+ drop-here: "Клацніть для розміщення тут"
+ drop-at-end: "Розмістити в кінці"
+ held: "Переміщення: [name]"
+ put-back: "Клацніть для повернення"
+ enter-length: "Введіть нову довжину в чат для [name] - зараз це [number] блоків. Введіть cancel щоб залишити як є."
+ invalid-length: "Довжина повинна бути цілим числом більшим за 0"
+ length-cancelled: "Довжина не змінена"
+ cancel-word: "cancel"
count:
description: показати кількість блоків і фазу
info: 'Ви знаходитесь у блоці [number] у фазі [name].'
diff --git a/src/main/resources/locales/vi.yml b/src/main/resources/locales/vi.yml
index 43d8415..d042708 100644
--- a/src/main/resources/locales/vi.yml
+++ b/src/main/resources/locales/vi.yml
@@ -26,9 +26,17 @@ protection:
Hiển thị trạng thái
cho mỗi giai đoạn
trên Thanh Hành Động.
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: Yêu Cầu Khối
+ description: |-
+ Cấp bậc có thể sử dụng
+ tín dụng cấp độ đảo để
+ yêu cầu những khối mới.
+ hint: "Cấp bậc của bạn không thể yêu cầu khối cho hòn đảo này!"
chunkblock:
bossbar:
title: Khối còn lại
+ title-prefix: "[title] | "
status: 'Khối pha [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -36,7 +44,67 @@ chunkblock:
actionbar:
status: "Giai đoạn: [phase-name] | Khối: [done] / [total] | Tiến độ: [percent-done]"
not-active: "Thanh hành động không hoạt động cho hòn đảo này"
+ trophies:
+ awarded: "Chiến thắng được trao: [name]!"
+ title-available: "Hòn đảo của bạn đã kiếm được tiêu đề [title] — bật/tắt nó bằng cách sử dụng /ch title."
+ chunks:
+ entry-denied: "Khối đó bị khóa."
+ locked: "Bạn không thể chạm vào đó — khối bị khóa."
+ claim-hint: "Đánh vào biên giới để yêu cầu khối này cho [cost] cấp độ! Bạn có [credit] cấp độ tín dụng."
+ claim-confirm: "Yêu cầu khối này cho [cost] cấp độ? Điều đó để lại cho bạn [after] cấp độ tín dụng. Ngồi xổm và đánh vào biên giới lần nữa trong [seconds]s để xác nhận."
+ no-credit: "Bạn cần [needed] cấp độ tín dụng hơn để yêu cầu khối này."
+ beyond-limit: "Khối đó vượt quá khu vực bảo vệ của hòn đảo bạn."
+ claimed: "Khối được yêu cầu! Hòn đảo của bạn bây giờ [number] khối. Tín dụng còn lại: [credit] cấp độ."
+ credit: "Bạn có thể yêu cầu [count] khối nữa! Đi đến biên giới của bạn và đánh nó nơi bạn muốn phát triển."
+ relocked: "Cấp độ hòn đảo của bạn đã giảm — [count] khối được khóa lại, những cái mới nhất trước. Lấy lại các cấp độ để yêu cầu lại!"
+ ejected: "Khối bạn đang ở bị khóa lại, nên bạn được di chuyển đến an toàn."
+ max-reached: "Hòn đảo của bạn đã đạt kích thước tối đa [number] khối!"
+ ring-complete: "Vòng [ring] hoàn thành! Toàn bộ vòng quanh hòn đảo của bạn là của bạn — [chunks] khối tính cả."
+ ring-broadcast: "Hòn đảo [name] đã đóng vòng [ring] — [chunks] khối và vẫn đang phát triển!"
+ rings: "Vòng hoàn thành: [rings] / [max]."
+ ring-progress: "Vòng [ring]: [remaining]/[total] khối để đi."
+ sethome-denied: "Bạn không thể đặt nhà ở khối bị khóa."
+ info: "Khối: [unlocked]/[max]. Tín dụng: [credit] cấp độ — một khối chi phí [cost]."
+ map:
+ title: "Lãnh thổ hòn đảo của bạn ([unlocked]/[max] khối):"
+ row: "[row]"
+ legend: "■ của bạn ▣ có thể yêu cầu ([cost] cấp độ mỗi cái) □ khóa ◎ trung tâm ◆ bạn"
+ you-are-here: "Bạn ở trên khối được đánh dấu."
+ dialog:
+ close: "Đóng"
+ tooltip:
+ center: "Khối trung tâm — khối ma thuật của bạn ở đây."
+ owned: "Khối [x], [z] — của bạn."
+ claimable: "Khối [x], [z] — có thể yêu cầu cho [cost] cấp độ. Đi đến biên giới đó và đánh nó."
+ no-credit: "Khối [x], [z] — chi phí [cost] cấp độ. Bạn cần [needed] cấp độ tín dụng hơn."
+ locked: "Khối [x], [z] — khóa. Yêu cầu đường đi đến nó."
+ you-are-here: "Bạn đang đứng ở đây."
commands:
+ chunks:
+ description: "hiển thị các khối đã mở khóa và bản đồ lãnh thổ của bạn"
+ ledger:
+ description: "hiển thị đóng góp thành viên nhóm"
+ parameters: "[ngày]"
+ header: "Sổ Cái Đóng Góp Hòn Đảo ([window])"
+ all-time: "tất cả thời gian"
+ last-days: "[days] ngày trước"
+ row: " - [name]: [blocks] khối, [chunks] khối, [rings] vòng"
+ total: "Tổng cộng: [blocks] khối, [chunks] khối, [rings] vòng"
+ no-activity: "Chưa có hoạt động nào được ghi lại."
+ title:
+ description: "bật/tắt tiêu đề hòn đảo của bạn, hoặc chọn một"
+ parameters: "[danh sách | id-chiến thắng | không]"
+ header: "Chiến thắng hòn đảo của bạn:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — tiêu đề [title] (/ch title [id])"
+ none-earned-yet: "Hòn đảo của bạn chưa kiếm được chiến thắng nào."
+ active: "Tiêu đề hoạt động: [title]"
+ no-active: "Không có tiêu đề hoạt động. Chọn một với /ch title."
+ set: "Tiêu đề hòn đảo của bạn bây giờ [title]."
+ cleared: "Hòn đảo của bạn không còn hiển thị tiêu đề."
+ toggled-on: "Tiêu đề hòn đảo [title] bây giờ đang hiển thị."
+ toggled-off: "Tiêu đề hòn đảo [title] bây giờ bị ẩn."
+ not-earned: "Hòn đảo của bạn chưa kiếm được chiến thắng với tiêu đề đó."
admin:
setcount:
parameters:
@@ -59,6 +127,45 @@ chunkblock:
hiển thị kiểm tra sự đúng đắn của xác suất giao đoạn lên bảng điều
khiển
see-console: 'Xem bảng điều khiển cho báo cáo'
+ bypass:
+ description: "bật/tắt thực thi khóa khối cho chính bạn"
+ "on": "Bạn bây giờ bỏ qua khóa khối. Hình ảnh biên giới bị ẩn với bạn."
+ "off": "Khóa khối áp dụng lại cho bạn."
+ chunks:
+ parameters: " [đặt lại]"
+ description: "kiểm tra các khối đã mở khóa của người chơi hoặc khóa lại chúng trở về lúc bắt đầu"
+ info: "[name]: [number]/[max] khối, [spent] cấp độ đã sử dụng, [credit] tín dụng."
+ reset: "Các khối của [name] được khóa lại quay trở về chỉ khối trung tâm."
+ phases:
+ description: "mở trình chỉnh sửa thứ tự giai đoạn"
+ no-index: "Không có chỉ mục giai đoạn được tải, vì vậy không thể sắp xếp lại các giai đoạn"
+ saved: "Thứ tự giai đoạn được lưu và áp dụng"
+ save-failed: "Không thể lưu thứ tự giai đoạn! Xem bảng điều khiển để biết lỗi"
+ gui:
+ title: "Thứ Tự Giai Đoạn"
+ info-title: "Cách Sử Dụng"
+ instructions: |-
+ Nhấp vào một giai đoạn để nhặt nó,
+ sau đó nhấp nơi nó sẽ đi.
+ Nhấp chuột phải để bật/tắt giai đoạn
+ bật hoặc tắt.
+ repeat: "Sau giai đoạn cuối cùng bộ đếm nhảy tới [number]"
+ phase-name: "[name]"
+ start: "Bắt đầu: [number]"
+ length: "Độ dài: [number]"
+ disabled: "Vô Hiệu Hóa"
+ version-locked: "Cần Minecraft [version]+"
+ pick-up: "Nhấp để di chuyển"
+ toggle: "Nhấp chuột phải để bật/tắt"
+ set-length: "Shift+nhấp chuột trái để đặt độ dài"
+ drop-here: "Nhấp để thả ở đây"
+ drop-at-end: "Thả ở cuối"
+ held: "Di chuyển: [name]"
+ put-back: "Nhấp để đặt lại"
+ enter-length: "Nhập độ dài mới trong trò chuyện cho [name] - hiện tại là [number] khối. Nhập cancel để giữ nó."
+ invalid-length: "Độ dài phải là một số nguyên lớn hơn 0"
+ length-cancelled: "Độ dài không thay đổi"
+ cancel-word: "cancel"
count:
description: hiển thị số khối và giai đoạn
info: 'Bạn đang ở trên khối [number] trong giai đoạn [name]'
diff --git a/src/main/resources/locales/zh-CN.yml b/src/main/resources/locales/zh-CN.yml
index 863c135..37a9d9d 100644
--- a/src/main/resources/locales/zh-CN.yml
+++ b/src/main/resources/locales/zh-CN.yml
@@ -25,9 +25,17 @@ protection:
在动作栏中
显示每个阶段
的状态。
+ CHUNKBLOCK_CLAIM_CHUNKS:
+ name: 领地块
+ description: |-
+ 可以消耗岛屿的等级
+ 信用来领地新块的
+ 等级。
+ hint: "您的等级无法为此岛屿领地块!"
chunkblock:
bossbar:
title: 剩余的块
+ title-prefix: "[title] | "
status: '相位块 [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -35,7 +43,67 @@ chunkblock:
actionbar:
status: "阶段: [phase-name] | 方块数: [done] / [total] | 进度: [percent-done]"
not-active: "该岛屿的动作栏未激活"
+ trophies:
+ awarded: "奖杯获得: [name]!"
+ title-available: "您的岛屿获得了头衔 [title] — 使用 /ch title 来开/关。"
+ chunks:
+ entry-denied: "这个块被锁定了。"
+ locked: "您无法碰触这个 — 块被锁定了。"
+ claim-hint: "击中边界来领地此块 [cost] 级(别)! 您有 [credit] 级(别)的信用。"
+ claim-confirm: "领地此块 [cost] 级(别)? 这样您将剩下 [after] 级(别)的信用。 潜行并再次击中边界 在 [seconds]s 内以确认。"
+ no-credit: "您需要更多 [needed] 级(别)的信用来领地此块。"
+ beyond-limit: "这个块超出了您岛屿的保护区。"
+ claimed: "块已领地! 您的岛屿现在有 [number] 块。剩余信用: [credit] 级(别)。"
+ credit: "您还可以领地 [count] 块! 去您的边界并击中您想要扩展的地方。"
+ relocked: "您岛屿的等级下降 — [count] 块被重新锁定,最新的优先。重新获得等级来领地它们!"
+ ejected: "您所在的块被重新锁定,所以您被传送到安全地点。"
+ max-reached: "您的岛屿已达到最大大小 [number] 块!"
+ ring-complete: "环 [ring] 完成! 您岛屿周围的整个环都是您的 — [chunks] 块共计。"
+ ring-broadcast: "[name] 的岛屿已关闭环 [ring] — [chunks] 块并继续增长!"
+ rings: "完成的环: [rings] / [max]。"
+ ring-progress: "环 [ring]: [remaining]/[total] 块待完成。"
+ sethome-denied: "您无法在锁定的块中设置家。"
+ info: "块: [unlocked]/[max]。信用: [credit] 级(别) — 领地一个块花费 [cost]。"
+ map:
+ title: "您的岛屿领地 ([unlocked]/[max] 块):"
+ row: "[row]"
+ legend: "■ 您的 ▣ 可领地 ([cost] 级(别)每个) □ 锁定 ◎ 中心 ◆ 您"
+ you-are-here: "您在标记的块上。"
+ dialog:
+ close: "关闭"
+ tooltip:
+ center: "中心块 — 您的魔法块在这里。"
+ owned: "块 [x], [z] — 您的。"
+ claimable: "块 [x], [z] — 可以 [cost] 级(别)领地。去那个边界并击中它。"
+ no-credit: "块 [x], [z] — 花费 [cost] 级(别)。您需要 [needed] 更多级(别)的信用。"
+ locked: "块 [x], [z] — 锁定。领地您的方式到它。"
+ you-are-here: "您正站在这里。"
commands:
+ chunks:
+ description: "显示您已领地的块和您领地的地图"
+ ledger:
+ description: "显示团队成员的贡献"
+ parameters: "[天]"
+ header: "岛屿贡献分类账 ([window])"
+ all-time: "所有时间"
+ last-days: "最后 [days] 天"
+ row: " - [name]: [blocks] 块, [chunks] 块, [rings] 环"
+ total: "总计: [blocks] 块, [chunks] 块, [rings] 环"
+ no-activity: "还没有记录任何活动。"
+ title:
+ description: "开/关您岛屿的头衔,或选择一个"
+ parameters: "[列表 | 奖杯-id | 无]"
+ header: "您岛屿的奖杯:"
+ trophy-entry: " - [name]"
+ title-entry: " - [name] — 头衔 [title] (/ch title [id])"
+ none-earned-yet: "您的岛屿还没有获得任何奖杯。"
+ active: "活跃头衔: [title]"
+ no-active: "没有活跃的头衔。用 /ch title 选择一个。"
+ set: "您岛屿的头衔现在是 [title]。"
+ cleared: "您的岛屿不再显示头衔。"
+ toggled-on: "岛屿头衔 [title] 现在显示。"
+ toggled-off: "岛屿头衔 [title] 现在隐藏。"
+ not-earned: "您的岛屿还没有获得这个头衔的奖杯。"
admin:
setcount:
parameters: <玩家名称> <数量>
@@ -56,6 +124,45 @@ chunkblock:
parameters: <阶段>
description: 在后台生成一份关于各阶段所占百分比的完整报告
see-console: '报告已在后台生成'
+ bypass:
+ description: "切换对自己是否应用块锁定执行"
+ "on": "您现在绕过块锁定。边界视觉效果对您隐藏。"
+ "off": "块锁定重新应用到您。"
+ chunks:
+ parameters: "<玩家> [重置]"
+ description: "检查玩家的已领地块或将其重新锁定回开始"
+ info: "[name]: [number]/[max] 块, [spent] 等级已花费, [credit] 信用。"
+ reset: "[name] 的块已重新锁定回仅中心块。"
+ phases:
+ description: "打开阶段顺序编辑器"
+ no-index: "没有加载阶段索引,所以无法重新排序阶段"
+ saved: "阶段顺序已保存并应用"
+ save-failed: "无法保存阶段顺序! 查看控制台以获取错误"
+ gui:
+ title: "阶段顺序"
+ info-title: "如何使用"
+ instructions: |-
+ 单击一个阶段以拿起它,
+ 然后单击应该放置的位置。
+ 右键单击以切换阶段
+ 打开或关闭。
+ repeat: "最后一个阶段后计数跳转到 [number]"
+ phase-name: "[name]"
+ start: "开始: [number]"
+ length: "长度: [number]"
+ disabled: "禁用"
+ version-locked: "需要 Minecraft [version]+"
+ pick-up: "单击以移动"
+ toggle: "右键单击以切换"
+ set-length: "Shift+左键单击以设置长度"
+ drop-here: "单击以放在这里"
+ drop-at-end: "放在最后"
+ held: "移动: [name]"
+ put-back: "单击以放回"
+ enter-length: "在聊天中为 [name] 输入新长度 - 当前为 [number] 块。输入 cancel 以保持原样。"
+ invalid-length: "长度必须是大于 0 的整数"
+ length-cancelled: "长度未更改"
+ cancel-word: "cancel"
count:
description: 显示方块数量和阶段
info: '您当前挖掘的方块数量是 [number], 为 [name] 阶段'
diff --git a/src/main/resources/locales/zh-TW.yml b/src/main/resources/locales/zh-TW.yml
index e442ca9..f2187d1 100644
--- a/src/main/resources/locales/zh-TW.yml
+++ b/src/main/resources/locales/zh-TW.yml
@@ -43,6 +43,7 @@ protection:
chunkblock:
bossbar:
title: 剩餘的塊
+ title-prefix: "[title] | "
status: '階段方塊 [done] / [total]'
color: RED
style: SEGMENTED_20
@@ -50,7 +51,33 @@ chunkblock:
actionbar:
status: '階段: [phase-name] | 方塊數: [done] / [total] | 進度: [percent-done]'
not-active: '該島嶼的動作欄未啟用'
+ trophies:
+ awarded: '獲得獎杯: [name]!'
+ title-available: '你的島嶼獲得了頭銜 [title] — 使用 /ch title 來開啟或關閉。'
commands:
+ ledger:
+ description: "顯示團隊成員的貢獻"
+ parameters: "[天]"
+ header: '島嶼貢獻帳簿 ([window])'
+ all-time: "全部時間"
+ last-days: "最後 [days] 天"
+ row: ' - [name]: [blocks] 個方塊, [chunks] 個區塊, [rings] 圈'
+ total: '總計: [blocks] 個方塊, [chunks] 個區塊, [rings] 圈'
+ no-activity: '尚未記錄任何活動。'
+ title:
+ description: "開啟或關閉你島嶼的頭銜,或選擇一個"
+ parameters: "[列表 | 獎杯-id | 無]"
+ header: '你島嶼的獎杯:'
+ trophy-entry: ' - [name]'
+ title-entry: ' - [name] — 頭銜 [title] (/ch title [id])'
+ none-earned-yet: '你的島嶼還沒有獲得任何獎杯。'
+ active: '活躍的頭銜: [title]'
+ no-active: '沒有活躍的頭銜。用 /ch title 選擇一個。'
+ set: '你的島嶼的頭銜現在是 [title]。'
+ cleared: '你的島嶼不再顯示頭銜。'
+ toggled-on: '島嶼頭銜 [title] 現在顯示。'
+ toggled-off: '島嶼頭銜 [title] 現在隱藏。'
+ not-earned: '你的島嶼還沒有獲得這個頭銜的獎杯。'
admin:
setcount:
parameters: <名稱> <計數>
@@ -215,4 +242,5 @@ chunkblock:
ring-broadcast: '[name] 的島嶼已完成第 [ring] 圈 — [chunks] 個區塊,而且還在成長!'
ring-complete: '第 [ring] 圈完成!島嶼周圍的整圈都是你的了 — 總共 [chunks] 個區塊。'
rings: '已完成圈數: [rings] / [max]。'
+ ring-progress: '圈 [ring]: [remaining]/[total] 個區塊待完成。'
sethome-denied: '你不能在已鎖定的區塊內設定重生點。'
diff --git a/src/main/resources/trophies.yml b/src/main/resources/trophies.yml
index 1df9d47..ca087df 100644
--- a/src/main/resources/trophies.yml
+++ b/src/main/resources/trophies.yml
@@ -39,10 +39,26 @@ trophies:
name: "First Ring"
description: "Complete the first ring of chunks around your magic block."
icon: GOLD_INGOT
- title: "Ring Bearer"
+ title: "The Outpost"
criteria:
type: RING
ring: 1
+ second-ring:
+ name: "Second Ring"
+ description: "Complete the second ring of chunks."
+ icon: GOLD_BLOCK
+ title: "The Stronghold"
+ criteria:
+ type: RING
+ ring: 2
+ third-ring:
+ name: "Third Ring"
+ description: "Complete the third ring of chunks."
+ icon: DIAMOND
+ title: "The Citadel"
+ criteria:
+ type: RING
+ ring: 3
homesteader:
name: "Homesteader"
description: "Claim ten different chunks for your island."
@@ -56,7 +72,7 @@ trophies:
name: "Ten Thousand Blocks"
description: "Break ten thousand magic blocks as an island."
icon: DIAMOND_PICKAXE
- title: "Block Breaker"
+ title: "The Forge"
criteria:
type: COUNTER
counter: MAGIC_BLOCKS
diff --git a/src/test/java/world/bentobox/chunkblock/SettingsTest.java b/src/test/java/world/bentobox/chunkblock/SettingsTest.java
index 30cf8f1..ede1583 100644
--- a/src/test/java/world/bentobox/chunkblock/SettingsTest.java
+++ b/src/test/java/world/bentobox/chunkblock/SettingsTest.java
@@ -80,7 +80,7 @@ void testGetIslandDistance() {
*/
@Test
void testGetIslandProtectionRange() {
- assertEquals(240, s.getIslandProtectionRange());
+ assertEquals(168, s.getIslandProtectionRange());
}
/**
diff --git a/src/test/java/world/bentobox/chunkblock/chunks/ChunkManagerTest.java b/src/test/java/world/bentobox/chunkblock/chunks/ChunkManagerTest.java
index c31659e..8a6680c 100644
--- a/src/test/java/world/bentobox/chunkblock/chunks/ChunkManagerTest.java
+++ b/src/test/java/world/bentobox/chunkblock/chunks/ChunkManagerTest.java
@@ -280,6 +280,37 @@ private void claimRingOne() {
}
}
+ @Test
+ void testChunksRemainingInRingZero() {
+ assertEquals(0, cm.chunksRemainingInRing(island, 0));
+ }
+
+ @Test
+ void testChunksRemainingInRingOneFresh() {
+ assertEquals(8, cm.chunksRemainingInRing(island, 1));
+ }
+
+ @Test
+ void testChunksRemainingInRingOnePartial() {
+ level = 3;
+ cm.claim(island, 1, 0);
+ cm.claim(island, 0, 1);
+ cm.claim(island, -1, 0);
+ assertEquals(5, cm.chunksRemainingInRing(island, 1));
+ }
+
+ @Test
+ void testChunksRemainingInRingOneComplete() {
+ level = 8;
+ claimRingOne();
+ assertEquals(0, cm.chunksRemainingInRing(island, 1));
+ }
+
+ @Test
+ void testChunksRemainingInRingTwo() {
+ assertEquals(16, cm.chunksRemainingInRing(island, 2));
+ }
+
@Test
void testGetUnlockedOffsets() {
level = 2;
diff --git a/src/test/java/world/bentobox/chunkblock/commands/island/IslandLedgerCommandTest.java b/src/test/java/world/bentobox/chunkblock/commands/island/IslandLedgerCommandTest.java
new file mode 100644
index 0000000..97c2f5d
--- /dev/null
+++ b/src/test/java/world/bentobox/chunkblock/commands/island/IslandLedgerCommandTest.java
@@ -0,0 +1,147 @@
+package world.bentobox.chunkblock.commands.island;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Optional;
+import java.util.Set;
+import java.util.UUID;
+
+import org.bukkit.Location;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mock;
+
+import world.bentobox.bentobox.api.commands.CompositeCommand;
+import world.bentobox.bentobox.api.user.User;
+import world.bentobox.bentobox.managers.PlayersManager;
+import world.bentobox.chunkblock.ChunkBlock;
+import world.bentobox.chunkblock.CommonTestSetup;
+import world.bentobox.chunkblock.Settings;
+import world.bentobox.chunkblock.activity.ActivityManager;
+import world.bentobox.chunkblock.activity.CounterType;
+import world.bentobox.chunkblock.chunks.ChunkManager;
+import world.bentobox.chunkblock.dataobjects.OneBlockIslands;
+import world.bentobox.chunkblock.listeners.BlockListener;
+
+class IslandLedgerCommandTest extends CommonTestSetup {
+
+ @Mock
+ private CompositeCommand ac;
+ @Mock
+ private User user;
+ @Mock
+ private ChunkBlock addon;
+ @Mock
+ private ActivityManager activityManager;
+ @Mock
+ private Location playerLocation;
+ @Mock
+ private PlayersManager playersManager;
+
+ private IslandLedgerCommand command;
+ private UUID member1;
+ private UUID member2;
+
+ @Override
+ @BeforeEach
+ public void setUp() throws Exception {
+ super.setUp();
+ when(ac.getAddon()).thenReturn(addon);
+ Settings settings = new Settings();
+ when(addon.getSettings()).thenReturn(settings);
+ OneBlockIslands data = new OneBlockIslands("test");
+ when(addon.getOneBlocksIsland(island)).thenReturn(data);
+ when(addon.getBlockListener()).thenReturn(mock(BlockListener.class));
+ when(addon.getActivityManager()).thenReturn(activityManager);
+ when(addon.getPlayers()).thenReturn(playersManager);
+ ChunkManager cm = new ChunkManager(addon);
+ when(addon.getChunkManager()).thenReturn(cm);
+
+ when(island.getCenter()).thenReturn(location);
+ when(island.getWorld()).thenReturn(world);
+ when(world.getName()).thenReturn("chunkblock_world");
+ when(location.getBlockX()).thenReturn(8);
+ when(location.getBlockZ()).thenReturn(8);
+ when(island.getProtectionRange()).thenReturn(240);
+
+ when(playerLocation.getWorld()).thenReturn(world);
+ when(user.getLocation()).thenReturn(playerLocation);
+ when(user.getWorld()).thenReturn(world);
+ when(user.getTranslation(anyString(), any(String[].class))).thenAnswer(inv -> inv.getArgument(0, String.class));
+ when(im.getIslandAt(playerLocation)).thenReturn(Optional.of(island));
+
+ member1 = UUID.randomUUID();
+ member2 = UUID.randomUUID();
+ when(playersManager.getName(member1)).thenReturn("Alice");
+ when(playersManager.getName(member2)).thenReturn("Bob");
+
+ command = new IslandLedgerCommand(ac, "ledger", new String[] { "ledger" });
+ }
+
+ @Test
+ void testSetup() {
+ assertEquals("island.ledger", command.getPermission());
+ assertEquals("chunkblock.commands.ledger.description", command.getDescription());
+ assertTrue(command.isOnlyPlayer());
+ }
+
+ @Test
+ void testExecuteNoIsland() {
+ when(im.getIslandAt(any())).thenReturn(Optional.empty());
+ assertFalse(command.execute(user, "ledger", Collections.emptyList()));
+ verify(user).sendMessage("general.errors.not-on-island");
+ }
+
+ @Test
+ void testExecuteNoActivity() {
+ when(activityManager.getContributors(island)).thenReturn(Collections.emptySet());
+ assertTrue(command.execute(user, "ledger", Collections.emptyList()));
+ verify(user).sendMessage(eq("chunkblock.commands.ledger.header"), anyString(), anyString());
+ verify(user).sendMessage("chunkblock.commands.ledger.no-activity");
+ }
+
+ @Test
+ void testExecuteWithContributors() {
+ when(activityManager.getContributors(island)).thenReturn(Set.of(member1, member2));
+ when(activityManager.getCount(island, member1, CounterType.MAGIC_BLOCKS, 0)).thenReturn(100L);
+ when(activityManager.getCount(island, member1, CounterType.CHUNKS_CLAIMED, 0)).thenReturn(3L);
+ when(activityManager.getCount(island, member1, CounterType.CHUNKS_RECLAIMED, 0)).thenReturn(1L);
+ when(activityManager.getCount(island, member1, CounterType.RINGS_COMPLETED, 0)).thenReturn(1L);
+ when(activityManager.getCount(island, member2, CounterType.MAGIC_BLOCKS, 0)).thenReturn(50L);
+ when(activityManager.getCount(island, member2, CounterType.CHUNKS_CLAIMED, 0)).thenReturn(0L);
+ when(activityManager.getCount(island, member2, CounterType.CHUNKS_RECLAIMED, 0)).thenReturn(0L);
+ when(activityManager.getCount(island, member2, CounterType.RINGS_COMPLETED, 0)).thenReturn(0L);
+
+ assertTrue(command.execute(user, "ledger", Collections.emptyList()));
+ verify(user).sendMessage(eq("chunkblock.commands.ledger.header"), anyString(), anyString());
+ verify(user, never()).sendMessage("chunkblock.commands.ledger.no-activity");
+ verify(user).sendMessage(eq("chunkblock.commands.ledger.total"),
+ eq("[blocks]"), eq("150"),
+ eq("[chunks]"), eq("4"),
+ eq("[rings]"), eq("1"));
+ }
+
+ @Test
+ void testExecuteWithWindowDays() {
+ when(activityManager.getContributors(island)).thenReturn(Set.of(member1));
+ when(activityManager.getCount(island, member1, CounterType.MAGIC_BLOCKS, 7)).thenReturn(20L);
+ when(activityManager.getCount(island, member1, CounterType.CHUNKS_CLAIMED, 7)).thenReturn(1L);
+ when(activityManager.getCount(island, member1, CounterType.CHUNKS_RECLAIMED, 7)).thenReturn(0L);
+ when(activityManager.getCount(island, member1, CounterType.RINGS_COMPLETED, 7)).thenReturn(0L);
+
+ assertTrue(command.execute(user, "ledger", List.of("7")));
+ verify(user).sendMessage(eq("chunkblock.commands.ledger.header"), anyString(), anyString());
+ }
+}
diff --git a/src/test/java/world/bentobox/chunkblock/commands/island/IslandTitleCommandTest.java b/src/test/java/world/bentobox/chunkblock/commands/island/IslandTitleCommandTest.java
index e0652fd..d1a159f 100644
--- a/src/test/java/world/bentobox/chunkblock/commands/island/IslandTitleCommandTest.java
+++ b/src/test/java/world/bentobox/chunkblock/commands/island/IslandTitleCommandTest.java
@@ -69,17 +69,35 @@ void testSetup() {
}
@Test
- void testListWithNothingEarned() {
+ void testToggleOnWhenNothingEarned() {
+ when(tm.getActiveTitleText(island)).thenReturn("");
when(tm.getEarned(island)).thenReturn(List.of());
- assertTrue(command.execute(user, "title", List.of()));
+ assertFalse(command.execute(user, "title", List.of()));
verify(user).sendMessage("chunkblock.commands.title.none-earned-yet");
}
+ @Test
+ void testToggleOffWhenActive() {
+ when(tm.getActiveTitleText(island)).thenReturn("The Outpost");
+ assertTrue(command.execute(user, "title", List.of()));
+ verify(tm).setActiveTitle(island, null);
+ verify(user).sendMessage("chunkblock.commands.title.toggled-off", "[title]", "The Outpost");
+ }
+
+ @Test
+ void testToggleOnWhenInactive() {
+ when(tm.getActiveTitleText(island)).thenReturn("");
+ when(tm.getEarned(island)).thenReturn(List.of(TITLED, UNTITLED));
+ when(tm.setActiveTitle(island, "first-ring")).thenReturn(true);
+ assertTrue(command.execute(user, "title", List.of()));
+ verify(user).sendMessage("chunkblock.commands.title.toggled-on", "[title]", "Ring Bearer");
+ }
+
@Test
void testListShowsTrophiesTitlesAndActiveTitle() {
when(tm.getEarned(island)).thenReturn(List.of(TITLED, UNTITLED));
when(tm.getActiveTitleText(island)).thenReturn("Ring Bearer");
- assertTrue(command.execute(user, "title", List.of()));
+ assertTrue(command.execute(user, "title", List.of("list")));
verify(user).sendMessage("chunkblock.commands.title.header");
verify(user).sendMessage("chunkblock.commands.title.title-entry", "[name]", "First Ring",
"[title]", "Ring Bearer", "[id]", "first-ring");
@@ -91,7 +109,7 @@ void testListShowsTrophiesTitlesAndActiveTitle() {
void testListMentionsWhenNoTitleIsActive() {
when(tm.getEarned(island)).thenReturn(List.of(UNTITLED));
when(tm.getActiveTitleText(island)).thenReturn("");
- assertTrue(command.execute(user, "title", List.of()));
+ assertTrue(command.execute(user, "title", List.of("list")));
verify(user).sendMessage("chunkblock.commands.title.no-active");
}
@@ -122,6 +140,7 @@ void testTabCompleteOffersNoneAndTitledTrophies() {
when(tm.getEarned(island)).thenReturn(List.of(TITLED, UNTITLED));
Optional> options = command.tabComplete(user, "title", List.of(""));
assertTrue(options.isPresent());
+ assertTrue(options.get().contains("list"));
assertTrue(options.get().contains("none"));
assertTrue(options.get().contains("first-ring"));
// A trophy with no title is not offered
diff --git a/src/test/java/world/bentobox/chunkblock/listeners/LevelListenerTest.java b/src/test/java/world/bentobox/chunkblock/listeners/LevelListenerTest.java
index 334ed61..aaab902 100644
--- a/src/test/java/world/bentobox/chunkblock/listeners/LevelListenerTest.java
+++ b/src/test/java/world/bentobox/chunkblock/listeners/LevelListenerTest.java
@@ -3,6 +3,7 @@
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
@@ -28,6 +29,7 @@
import world.bentobox.chunkblock.events.ChunkRelockEvent;
import world.bentobox.chunkblock.events.ChunkUnlockEvent;
import world.bentobox.chunkblock.events.RingCompleteEvent;
+import world.bentobox.level.events.IslandPreLevelEvent;
/**
* Tests the credit-announcement and LIFO re-lock flows in {@link LevelListener} and the
@@ -216,6 +218,45 @@ void testIslandResetClearsRingRewards() {
assertEquals(1, data.getUnlockedChunkCount());
}
+ @Test
+ void testPreLevelShrinksProtectionRangeToUnlockedArea() {
+ when(island.getProtectionRange()).thenReturn(240);
+ // Only center chunk is unlocked → ring 0 → needed = 8
+ IslandPreLevelEvent pre = new IslandPreLevelEvent(uuid, island);
+ listener.onIslandPreLevel(pre);
+ verify(island).setProtectionRange(ChunkManager.CHUNK_CENTER);
+ // Restore scheduled for next tick
+ verify(sch).runTask(any(), any(Runnable.class));
+ }
+
+ @Test
+ void testPreLevelRangeMatchesCurrentRing() {
+ when(island.getProtectionRange()).thenReturn(240);
+ level = 8;
+ claimRingOne();
+ // Ring 1 unlocked → needed = 1 * 16 + 8 = 24
+ IslandPreLevelEvent pre = new IslandPreLevelEvent(uuid, island);
+ listener.onIslandPreLevel(pre);
+ verify(island).setProtectionRange(24);
+ }
+
+ @Test
+ void testPreLevelSkipsWhenRangeAlreadySmallEnough() {
+ when(island.getProtectionRange()).thenReturn(8);
+ IslandPreLevelEvent pre = new IslandPreLevelEvent(uuid, island);
+ listener.onIslandPreLevel(pre);
+ verify(island, never()).setProtectionRange(anyInt());
+ }
+
+ @Test
+ void testPreLevelIgnoresOtherWorlds() {
+ when(addon.inWorld(world)).thenReturn(false);
+ when(island.getProtectionRange()).thenReturn(240);
+ IslandPreLevelEvent pre = new IslandPreLevelEvent(uuid, island);
+ listener.onIslandPreLevel(pre);
+ verify(island, never()).setProtectionRange(anyInt());
+ }
+
/** Claims and celebrates all eight chunks of ring 1, closing it with the last one */
private void claimRingOne() {
for (int[] offset : new int[][] { { 1, 0 }, { 0, 1 }, { -1, 0 }, { 0, -1 }, { 1, 1 }, { -1, 1 },