diff --git a/CLAUDE.md b/CLAUDE.md index 8bb5bd9..27ee7c6 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -89,8 +89,100 @@ JaCoCo coverage reports are generated during `mvn verify`. | `locales/` | `src/main/resources/locales/` | Translation strings | | `panels/` | `src/main/resources/panels/` | GUI layout definitions | +**Panel template upgrades:** Files under `panels/` are copied to the addon's data folder (`plugins/BentoBox/addons/Level/panels/`) on first run and are **not** overwritten on upgrade. If a release modifies a panel template (new tabs, buttons, slots, etc.), the release notes/changelog must explicitly instruct users to delete the affected on-disk panel file so it regenerates — otherwise existing servers will silently keep the old layout. + +**Current upgrade-sensitive example:** If `src/main/resources/panels/detail_panel.yml` changes (for example by adding a new `DONATED` tab), existing servers must delete/regenerate `plugins/BentoBox/addons/Level/panels/detail_panel.yml` after upgrading or they will continue using the old panel definition and the new tab will not appear. ## Code Conventions - Null safety via Eclipse JDT annotations (`@NonNull`, `@Nullable`) — honour these on public APIs - BentoBox framework patterns: `CompositeCommand` for commands, `@ConfigEntry`/`@ConfigComment` for config, `@StoreAt` for database objects - Pre- and post-events (`IslandPreLevelEvent`, `IslandLevelCalculatedEvent`) follow BentoBox's cancellable event pattern — fire both when adding new calculation triggers + +## Dependency Source Lookup + +When you need to inspect source code for a dependency (e.g., BentoBox, addons): + +1. **Check local Maven repo first**: `~/.m2/repository/` — sources jars are named `*-sources.jar` +2. **Check the workspace**: Look for sibling directories or Git submodules that may contain the dependency as a local project (e.g., `../bentoBox`, `../addon-*`) +3. **Check Maven local cache for already-extracted sources** before downloading anything +4. Only download a jar or fetch from the internet if the above steps yield nothing useful + +Prefer reading `.java` source files directly from a local Git clone over decompiling or extracting a jar. + +In general, the latest version of BentoBox should be targeted. + +## Project Layout + +Related projects are checked out as siblings under `~/git/`: + +**Core:** +- `bentobox/` — core BentoBox framework + +**Game modes:** +- `addon-acidisland/` — AcidIsland game mode +- `addon-bskyblock/` — BSkyBlock game mode +- `Boxed/` — Boxed game mode (expandable box area) +- `CaveBlock/` — CaveBlock game mode +- `OneBlock/` — AOneBlock game mode +- `SkyGrid/` — SkyGrid game mode +- `RaftMode/` — Raft survival game mode +- `StrangerRealms/` — StrangerRealms game mode +- `Brix/` — plot game mode +- `parkour/` — Parkour game mode +- `poseidon/` — Poseidon game mode +- `gg/` — gg game mode + +**Addons:** +- `addon-level/` — island level calculation +- `addon-challenges/` — challenges system +- `addon-welcomewarpsigns/` — warp signs +- `addon-limits/` — block/entity limits +- `addon-invSwitcher/` / `invSwitcher/` — inventory switcher +- `addon-biomes/` / `Biomes/` — biomes management +- `Bank/` — island bank +- `Border/` — world border for islands +- `Chat/` — island chat +- `CheckMeOut/` — island submission/voting +- `ControlPanel/` — game mode control panel +- `Converter/` — ASkyBlock to BSkyBlock converter +- `DimensionalTrees/` — dimension-specific trees +- `discordwebhook/` — Discord integration +- `Downloads/` — BentoBox downloads site +- `DragonFights/` — per-island ender dragon fights +- `ExtraMobs/` — additional mob spawning rules +- `FarmersDance/` — twerking crop growth +- `GravityFlux/` — gravity addon +- `Greenhouses-addon/` — greenhouse biomes +- `IslandFly/` — island flight permission +- `IslandRankup/` — island rankup system +- `Likes/` — island likes/dislikes +- `Limits/` — block/entity limits +- `lost-sheep/` — lost sheep adventure +- `MagicCobblestoneGenerator/` — custom cobblestone generator +- `PortalStart/` — portal-based island start +- `pp/` — pp addon +- `Regionerator/` — region management +- `Residence/` — residence addon +- `TopBlock/` — top ten for OneBlock +- `TwerkingForTrees/` — twerking tree growth +- `Upgrades/` — island upgrades (Vault) +- `Visit/` — island visiting +- `weblink/` — web link addon +- `CrowdBound/` — CrowdBound addon + +**Data packs:** +- `BoxedDataPack/` — advancement datapack for Boxed + +**Documentation & tools:** +- `docs/` — main documentation site +- `docs-chinese/` — Chinese documentation +- `docs-french/` — French documentation +- `BentoBoxWorld.github.io/` — GitHub Pages site +- `website/` — website +- `translation-tool/` — translation tool + +Check these for source before any network fetch. + +## Key Dependencies (source locations) + +- `world.bentobox:bentobox` → `~/git/bentobox/src/` diff --git a/pom.xml b/pom.xml index f1207c4..86aebeb 100644 --- a/pom.xml +++ b/pom.xml @@ -57,7 +57,7 @@ v1.21-SNAPSHOT 1.21.11-R0.1-SNAPSHOT - 3.10.2 + 3.14.1-SNAPSHOT 1.12.0 @@ -222,7 +222,7 @@ world.bentobox bentobox - 3.10.0 + ${bentobox.version} world.bentobox @@ -378,25 +378,26 @@ org.apache.maven.plugins maven-clean-plugin - 3.4.0 + 3.5.0 org.apache.maven.plugins maven-resources-plugin - 3.3.1 + 3.5.0 org.apache.maven.plugins maven-compiler-plugin - 3.14.1 + 3.15.0 ${java.version} + true org.apache.maven.plugins maven-surefire-plugin - 3.5.4 + 3.5.5 ${argLine} @@ -434,12 +435,12 @@ org.apache.maven.plugins maven-jar-plugin - 3.4.2 + 3.5.0 org.apache.maven.plugins maven-javadoc-plugin - 3.11.1 + 3.12.0 none false @@ -458,7 +459,7 @@ org.apache.maven.plugins maven-source-plugin - 3.3.1 + 3.4.0 attach-sources @@ -471,17 +472,17 @@ org.apache.maven.plugins maven-install-plugin - 3.1.3 + 3.1.4 org.apache.maven.plugins maven-deploy-plugin - 3.1.3 + 3.1.4 org.apache.maven.plugins maven-shade-plugin - 3.6.0 + 3.6.2 true @@ -513,7 +514,7 @@ org.jacoco jacoco-maven-plugin - 0.8.13 + 0.8.14 true diff --git a/src/main/java/world/bentobox/level/Level.java b/src/main/java/world/bentobox/level/Level.java index ae91392..20f2094 100644 --- a/src/main/java/world/bentobox/level/Level.java +++ b/src/main/java/world/bentobox/level/Level.java @@ -7,6 +7,7 @@ import java.util.UUID; import org.bukkit.Bukkit; +import org.bukkit.Material; import org.bukkit.World; import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.configuration.file.YamlConfiguration; @@ -17,8 +18,10 @@ import world.bentobox.bentobox.api.addons.Addon; import world.bentobox.bentobox.api.addons.GameModeAddon; import world.bentobox.bentobox.api.configuration.Config; +import world.bentobox.bentobox.api.flags.Flag; import world.bentobox.bentobox.api.user.User; import world.bentobox.bentobox.database.objects.Island; +import world.bentobox.bentobox.managers.RanksManager; import world.bentobox.bentobox.util.Util; import world.bentobox.level.calculators.Pipeliner; import world.bentobox.level.commands.AdminLevelCommand; @@ -27,6 +30,7 @@ import world.bentobox.level.commands.AdminStatsCommand; import world.bentobox.level.commands.AdminTopCommand; import world.bentobox.level.commands.IslandDetailCommand; +import world.bentobox.level.commands.IslandDonateCommand; import world.bentobox.level.commands.IslandLevelCommand; import world.bentobox.level.commands.IslandTopCommand; import world.bentobox.level.commands.IslandValueCommand; @@ -49,6 +53,17 @@ public class Level extends Addon { // The 10 in top ten public static final int TEN = 10; + /** + * Flag to control who can donate blocks to raise island level. + * Default: OWNER only. Can be extended down to MEMBER rank. + */ + public static final Flag BLOCK_DONATION = new Flag.Builder("ISLAND_BLOCK_DONATION", Material.HOPPER) + .type(Flag.Type.PROTECTION) + .defaultRank(RanksManager.OWNER_RANK) + .minimumRank(RanksManager.MEMBER_RANK) + .mode(Flag.Mode.BASIC) + .build(); + // Settings private ConfigSettings settings; private Config configObject = new Config<>(this, ConfigSettings.class); @@ -114,6 +129,9 @@ public void allLoaded() { hookPlugin("RoseStacker", this::hookRoseStackers); hookPlugin("UltimateStacker", this::hookUltimateStacker); + // Register the block donation flag + getPlugin().getFlagsManager().registerFlag(this, BLOCK_DONATION); + if (this.isEnabled()) { hookExtensions(); } @@ -250,6 +268,7 @@ private void registerCommands(GameModeAddon gm) { new IslandTopCommand(this, playerCmd); new IslandValueCommand(this, playerCmd); new IslandDetailCommand(this, playerCmd); + new IslandDonateCommand(this, playerCmd); }); } diff --git a/src/main/java/world/bentobox/level/LevelsManager.java b/src/main/java/world/bentobox/level/LevelsManager.java index 9b6d612..3816947 100644 --- a/src/main/java/world/bentobox/level/LevelsManager.java +++ b/src/main/java/world/bentobox/level/LevelsManager.java @@ -542,4 +542,54 @@ public void deleteIsland(String uniqueId) { handler.deleteID(uniqueId); } + // ---- Block Donation Methods ---- + + /** + * Record a block donation for an island. Items should already be removed from the player's inventory. + * + * @param island the island receiving the donation + * @param donorUUID UUID of the donating player + * @param material the material name being donated + * @param count how many blocks + * @param points the point value of this donation + */ + public void donateBlocks(@NonNull Island island, @NonNull UUID donorUUID, @NonNull String material, int count, long points) { + IslandLevels ld = getLevelsData(island); + ld.addDonation(donorUUID.toString(), material, count, points); + handler.saveObjectAsync(ld); + } + + /** + * Queue a full level recalculation for the island. Call this after donations + * so that the level/top-ten update immediately. + * + * @param island the island to recalculate + */ + public void recalculateAfterDonation(@NonNull Island island) { + UUID owner = island.getOwner(); + if (owner != null) { + calculateLevel(owner, island); + } + } + + /** + * Get the total donated points for an island. + * + * @param island the island + * @return total donated points + */ + public long getDonatedPoints(@NonNull Island island) { + return getLevelsData(island).getDonatedPoints(); + } + + /** + * Get the donated blocks map for an island. + * + * @param island the island + * @return map of material name to count + */ + public Map getDonatedBlocks(@NonNull Island island) { + return getLevelsData(island).getDonatedBlocks(); + } + } diff --git a/src/main/java/world/bentobox/level/calculators/IslandLevelCalculator.java b/src/main/java/world/bentobox/level/calculators/IslandLevelCalculator.java index a7425eb..d669703 100644 --- a/src/main/java/world/bentobox/level/calculators/IslandLevelCalculator.java +++ b/src/main/java/world/bentobox/level/calculators/IslandLevelCalculator.java @@ -287,6 +287,22 @@ private List getReport() { + " blocks (max " + limit + explain); } reportLines.add(LINE_BREAK); + // Donated blocks section + if (results.donatedPoints.get() > 0) { + reportLines.add("Donated blocks (permanent contributions):"); + reportLines.add("Total donated points = " + String.format("%,d", results.donatedPoints.get())); + Map donatedBlocks = addon.getManager().getDonatedBlocks(island); + donatedBlocks.entrySet().stream() + .sorted(Map.Entry.comparingByValue().reversed()) + .forEach(entry -> { + Integer value = addon.getBlockConfig().getBlockValues().getOrDefault(entry.getKey().toLowerCase(java.util.Locale.ENGLISH), 0); + long totalValue = (long) value * entry.getValue(); + reportLines.add(" " + Util.prettifyText(entry.getKey()) + " x " + + String.format("%,d", entry.getValue()) + + " = " + String.format("%,d", totalValue) + " points"); + }); + reportLines.add(LINE_BREAK); + } return reportLines; } @@ -701,6 +717,11 @@ public void tidyUp() { results.rawBlockCount .addAndGet((long) (results.underWaterBlockCount.get() * addon.getSettings().getUnderWaterMultiplier())); + // Add donated block points (permanent contributions that persist across recalculations) + long donatedPoints = addon.getManager().getDonatedPoints(island); + results.rawBlockCount.addAndGet(donatedPoints); + results.donatedPoints.set(donatedPoints); + // Set the death penalty if (this.addon.getSettings().isSumTeamDeaths()) { for (UUID uuid : this.island.getMemberSet()) { diff --git a/src/main/java/world/bentobox/level/calculators/Results.java b/src/main/java/world/bentobox/level/calculators/Results.java index db8124c..01c0c0a 100644 --- a/src/main/java/world/bentobox/level/calculators/Results.java +++ b/src/main/java/world/bentobox/level/calculators/Results.java @@ -54,6 +54,10 @@ public enum Result { * Total points before any death penalties */ AtomicLong totalPoints = new AtomicLong(0); + /** + * Points contributed via block donation (permanent) + */ + AtomicLong donatedPoints = new AtomicLong(0); final Result state; public Results(Result state) { @@ -179,4 +183,18 @@ public void setInitialCount(Long count) { this.initialCount.set(count); } + /** + * @return the donated points + */ + public long getDonatedPoints() { + return donatedPoints.get(); + } + + /** + * @param points the donated points to set + */ + public void setDonatedPoints(long points) { + this.donatedPoints.set(points); + } + } diff --git a/src/main/java/world/bentobox/level/commands/IslandDonateCommand.java b/src/main/java/world/bentobox/level/commands/IslandDonateCommand.java new file mode 100644 index 0000000..37e1f28 --- /dev/null +++ b/src/main/java/world/bentobox/level/commands/IslandDonateCommand.java @@ -0,0 +1,159 @@ +package world.bentobox.level.commands; + +import java.util.List; +import java.util.Optional; + +import org.bukkit.Material; +import org.bukkit.inventory.ItemStack; + +import world.bentobox.bentobox.api.commands.CompositeCommand; +import world.bentobox.bentobox.api.commands.ConfirmableCommand; +import world.bentobox.bentobox.api.localization.TextVariables; +import world.bentobox.bentobox.api.user.User; +import world.bentobox.bentobox.database.objects.Island; +import world.bentobox.bentobox.util.Util; +import world.bentobox.level.Level; +import world.bentobox.level.panels.DonationPanel; +import world.bentobox.level.util.Utils; + +/** + * Command: /island donate [hand [amount]] + * Opens a donation GUI or donates blocks from hand. + * + * @author tastybento + */ +public class IslandDonateCommand extends ConfirmableCommand { + + private final Level addon; + + public IslandDonateCommand(Level addon, CompositeCommand parent) { + super(parent, "donate"); + this.addon = addon; + } + + @Override + public void setup() { + this.setPermission("island.donate"); + this.setOnlyPlayer(true); + this.setParametersHelp("island.donate.parameters"); + this.setDescription("island.donate.description"); + } + + @Override + public boolean execute(User user, String label, List args) { + // Check the player is on an island they are part of + Island island = addon.getIslands().getIsland(getWorld(), user); + if (island == null) { + user.sendMessage("general.errors.no-island"); + return false; + } + + // Check the player is on their island + if (!island.onIsland(user.getLocation())) { + user.sendMessage("island.donate.must-be-on-island"); + return false; + } + + // Check flag permission + if (!island.isAllowed(user, Level.BLOCK_DONATION)) { + user.sendMessage("island.donate.no-permission"); + return false; + } + + // Handle "hand" subcommand + if (!args.isEmpty() && "hand".equalsIgnoreCase(args.get(0))) { + return handleHandDonation(user, island, args); + } + + // No args - open GUI + DonationPanel.openPanel(addon, getWorld(), user, island); + return true; + } + + /** + * Handle the /island donate hand [amount] subcommand. + */ + private boolean handleHandDonation(User user, Island island, List args) { + ItemStack hand = user.getPlayer().getInventory().getItemInMainHand(); + if (hand.getType().isAir() || !hand.getType().isBlock()) { + user.sendMessage("island.donate.hand.not-block"); + return false; + } + + final Material material = hand.getType(); + final Integer blockValue = addon.getBlockConfig().getValue(getWorld(), material); + if (blockValue == null || blockValue <= 0) { + user.sendMessage("island.donate.no-value"); + return false; + } + + int requested = hand.getAmount(); + if (args.size() > 1) { + if ("help".equalsIgnoreCase(args.get(1))) { + showHelp(this, user); + return true; + } + try { + requested = Integer.parseInt(args.get(1)); + if (requested < 1) { + user.sendMessage("island.donate.invalid-amount"); + return false; + } + } catch (NumberFormatException e) { + user.sendMessage("island.donate.invalid-amount"); + return false; + } + } + + final int previewAmount = Math.min(requested, hand.getAmount()); + final long previewPoints = (long) previewAmount * blockValue; + final int finalRequested = requested; + + String prompt = user.getTranslation("island.donate.hand.confirm-prompt", + TextVariables.NUMBER, String.valueOf(previewAmount), + "[material]", Utils.prettifyObject(material, user), + "[points]", Utils.formatNumber(user, previewPoints)); + + askConfirmation(user, prompt, () -> performHandDonation(user, island, material, blockValue, finalRequested)); + return true; + } + + private void performHandDonation(User user, Island island, Material material, int blockValue, int requested) { + ItemStack currentHand = user.getPlayer().getInventory().getItemInMainHand(); + if (currentHand.getType() != material || currentHand.getAmount() == 0) { + user.sendMessage("island.donate.hand.not-block"); + return; + } + int amount = Math.min(requested, currentHand.getAmount()); + long points = (long) amount * blockValue; + + if (amount >= currentHand.getAmount()) { + user.getPlayer().getInventory().setItemInMainHand(null); + } else { + currentHand.setAmount(currentHand.getAmount() - amount); + } + + addon.getManager().donateBlocks(island, user.getUniqueId(), material.name(), amount, points); + addon.getManager().recalculateAfterDonation(island); + + user.sendMessage("island.donate.hand.success", + TextVariables.NUMBER, String.valueOf(amount), + "[material]", Utils.prettifyObject(material, user), + "[points]", Utils.formatNumber(user, points)); + } + + @Override + public Optional> tabComplete(User user, String alias, List args) { + String lastArg = !args.isEmpty() ? args.get(args.size() - 1) : ""; + if (args.size() <= 1) { + return Optional.of(Util.tabLimit(List.of("hand"), lastArg)); + } + if (args.size() == 2 && "hand".equalsIgnoreCase(args.get(0)) && user.isPlayer()) { + int held = user.getPlayer().getInventory().getItemInMainHand().getAmount(); + if (held > 0) { + return Optional.of(Util.tabLimit(List.of(String.valueOf(held)), lastArg)); + } + } + return Optional.of(List.of()); + } +} diff --git a/src/main/java/world/bentobox/level/commands/IslandLevelCommand.java b/src/main/java/world/bentobox/level/commands/IslandLevelCommand.java index bf471de..240df2e 100644 --- a/src/main/java/world/bentobox/level/commands/IslandLevelCommand.java +++ b/src/main/java/world/bentobox/level/commands/IslandLevelCommand.java @@ -11,6 +11,7 @@ import world.bentobox.level.Level; import world.bentobox.level.calculators.Results; import world.bentobox.level.calculators.Results.Result; +import world.bentobox.level.util.Utils; public class IslandLevelCommand extends CompositeCommand { @@ -112,9 +113,9 @@ private void showResult(User user, UUID playerUUID, Island island, long oldLevel // Send player how many points are required to reach next island level if (results.getPointsToNextLevel() >= 0) { user.sendMessage("island.level.required-points-to-next-level", - "[points]", String.valueOf(results.getPointsToNextLevel()), - "[progress]", String.valueOf(this.addon.getSettings().getLevelCost()-results.getPointsToNextLevel()), - "[levelcost]", String.valueOf(this.addon.getSettings().getLevelCost()) + "[points]", Utils.formatNumber(user, results.getPointsToNextLevel()), + "[progress]", Utils.formatNumber(user, this.addon.getSettings().getLevelCost() - results.getPointsToNextLevel()), + "[levelcost]", Utils.formatNumber(user, this.addon.getSettings().getLevelCost()) ); } // Tell other team members diff --git a/src/main/java/world/bentobox/level/objects/IslandLevels.java b/src/main/java/world/bentobox/level/objects/IslandLevels.java index 3666ea6..b15bb69 100644 --- a/src/main/java/world/bentobox/level/objects/IslandLevels.java +++ b/src/main/java/world/bentobox/level/objects/IslandLevels.java @@ -1,6 +1,8 @@ package world.bentobox.level.objects; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Locale; import java.util.Map; @@ -74,6 +76,28 @@ public class IslandLevels implements DataObject { @Expose private Map mdCount; + /** + * Donated blocks - blocks permanently contributed to island level. + * Key is the material name (String), value is the count donated. + * Null-safe for backwards compatibility with legacy data. + */ + @Expose + private Map donatedBlocks; + + /** + * Total point value of all donated blocks. + * Null-safe for backwards compatibility. + */ + @Expose + private Long donatedPoints; + + /** + * Audit log of all donations made to this island. + * Null-safe for backwards compatibility. + */ + @Expose + private List donationLog; + /** * Constructor for new island * @param islandUUID - island UUID @@ -251,6 +275,83 @@ public void setInitialCount(Long initialCount) { this.initialCount = initialCount; } + // ---- Donation fields (null-safe for backwards compatibility) ---- + + /** + * Record for tracking individual donations for audit purposes. + * @param timestamp when the donation was made (epoch millis) + * @param donorUUID UUID of the player who donated + * @param material the material name that was donated + * @param count how many blocks were donated + * @param points the point value at time of donation + */ + public record DonationRecord(long timestamp, String donorUUID, String material, int count, long points) { + } + + /** + * Get the donated blocks map. + * @return map of material name to count, never null + */ + public Map getDonatedBlocks() { + if (donatedBlocks == null) { + donatedBlocks = new HashMap<>(); + } + return donatedBlocks; + } + + /** + * @param donatedBlocks the donatedBlocks to set + */ + public void setDonatedBlocks(Map donatedBlocks) { + this.donatedBlocks = donatedBlocks; + } + + /** + * Get the total donated points for this island. + * @return donated points, never null + */ + public long getDonatedPoints() { + return donatedPoints == null ? 0L : donatedPoints; + } + + /** + * @param donatedPoints the donatedPoints to set + */ + public void setDonatedPoints(long donatedPoints) { + this.donatedPoints = donatedPoints; + } + + /** + * Get the donation audit log. + * @return list of donation records, never null + */ + public List getDonationLog() { + if (donationLog == null) { + donationLog = new ArrayList<>(); + } + return donationLog; + } + + /** + * @param donationLog the donationLog to set + */ + public void setDonationLog(List donationLog) { + this.donationLog = donationLog; + } + + /** + * Add a donation to this island's records. + * @param donorUUID UUID of the player donating + * @param material the material being donated + * @param count how many blocks + * @param points the point value of this donation + */ + public void addDonation(String donorUUID, String material, int count, long points) { + getDonatedBlocks().merge(material, count, Integer::sum); + this.donatedPoints = getDonatedPoints() + points; + getDonationLog().add(new DonationRecord(System.currentTimeMillis(), donorUUID, material, count, points)); + } + /** * @return the initialLevel * @deprecated only used for backwards compatibility. Use {@link #getInitialCount()} instead diff --git a/src/main/java/world/bentobox/level/panels/DetailsPanel.java b/src/main/java/world/bentobox/level/panels/DetailsPanel.java index 3bcca04..d19769b 100644 --- a/src/main/java/world/bentobox/level/panels/DetailsPanel.java +++ b/src/main/java/world/bentobox/level/panels/DetailsPanel.java @@ -61,7 +61,11 @@ private enum Tab { /** * Spawner Tab. */ - SPAWNER + SPAWNER, + /** + * Donated blocks Tab. + */ + DONATED } /** @@ -210,7 +214,18 @@ private void build() { private void updateFilters() { this.blockCountList.clear(); - if (this.activeTab == Tab.SPAWNER) { + if (this.activeTab == Tab.DONATED) { + // Show donated blocks + Map donated = this.levelsData.getDonatedBlocks(); + for (Map.Entry entry : donated.entrySet()) { + if (entry.getValue() > 0) { + // Try to convert to Material for display + Material mat = Material.matchMaterial(entry.getKey()); + Object key = mat != null ? mat : entry.getKey(); + this.blockCountList.add(new BlockRec(key, entry.getValue(), 0)); + } + } + } else if (this.activeTab == Tab.SPAWNER) { if (this.addon.getBlockConfig().isNotHiddenBlock(Material.SPAWNER)) { Map spawnerCountMap = new EnumMap<>(EntityType.class); diff --git a/src/main/java/world/bentobox/level/panels/DonationPanel.java b/src/main/java/world/bentobox/level/panels/DonationPanel.java new file mode 100644 index 0000000..4dbf373 --- /dev/null +++ b/src/main/java/world/bentobox/level/panels/DonationPanel.java @@ -0,0 +1,446 @@ +package world.bentobox.level.panels; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.HandlerList; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryClickEvent; +import org.bukkit.event.inventory.InventoryCloseEvent; +import org.bukkit.event.inventory.InventoryDragEvent; +import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; + +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.TextDecoration; + +import world.bentobox.bentobox.api.localization.TextVariables; +import world.bentobox.bentobox.api.user.User; +import world.bentobox.bentobox.database.objects.Island; +import world.bentobox.bentobox.util.Util; +import world.bentobox.level.Level; +import world.bentobox.level.util.Utils; + +/** + * Donation GUI panel. Players drag blocks from their inventory into the donation + * slots. A confirm button finalizes the donation; cancel returns items. + * + * @author tastybento + */ +public class DonationPanel implements Listener { + + private static final int SIZE = 36; // 4 rows + private static final String TITLE_REF = "island.donate.gui-title"; + private static final String POINTS_PLACEHOLDER = "[points]"; + + // Slot layout + private static final int INFO_SLOT = 4; + private static final int CANCEL_SLOT = 28; + private static final int PREVIEW_SLOT = 31; + private static final int CONFIRM_SLOT = 34; + + // Donation slots: rows 2 and 3, columns 2-8 (slots 10-16, 19-25) + private static final int[] DONATION_SLOTS = { + 10, 11, 12, 13, 14, 15, 16, + 19, 20, 21, 22, 23, 24, 25 + }; + + // Border slots: everything else + private static final Material BORDER_MATERIAL = Material.BLACK_STAINED_GLASS_PANE; + + private final Level addon; + private final World world; + private final User user; + private final Island island; + private final Inventory inventory; + private boolean confirmed = false; + + private DonationPanel(Level addon, World world, User user, Island island) { + this.addon = addon; + this.world = world; + this.user = user; + this.island = island; + + // Create the inventory + Component title = removeDefaultItalic( + Util.parseMiniMessageOrLegacy(user.getTranslation(TITLE_REF))); + this.inventory = Bukkit.createInventory(null, SIZE, title); + + // Fill borders + ItemStack border = createNamedItem(BORDER_MATERIAL, " "); + for (int i = 0; i < SIZE; i++) { + inventory.setItem(i, border); + } + + // Clear donation slots + for (int slot : DONATION_SLOTS) { + inventory.setItem(slot, null); + } + + // Info pane + long currentDonated = addon.getManager().getDonatedPoints(island); + ItemStack info = createNamedItem(Material.BOOK, + user.getTranslation("island.donate.gui-info", + POINTS_PLACEHOLDER, Utils.formatNumber(user, currentDonated))); + inventory.setItem(INFO_SLOT, info); + + // Cancel button + ItemStack cancel = createNamedItem(Material.RED_STAINED_GLASS_PANE, + user.getTranslation("island.donate.cancel")); + inventory.setItem(CANCEL_SLOT, cancel); + + // Preview pane (starts at 0) + updatePreview(); + + // Confirm button + ItemStack confirm = createNamedItem(Material.LIME_STAINED_GLASS_PANE, + user.getTranslation("island.donate.confirm")); + inventory.setItem(CONFIRM_SLOT, confirm); + + // Register listener + Bukkit.getPluginManager().registerEvents(this, addon.getPlugin()); + } + + private void build() { + user.getPlayer().openInventory(inventory); + } + + /** + * Calculate the total point value of items in the donation slots. + */ + private long calculateDonationValue() { + long total = 0; + for (int slot : DONATION_SLOTS) { + ItemStack item = inventory.getItem(slot); + if (item != null && !item.getType().isAir()) { + Integer value = addon.getBlockConfig().getValue(world, item.getType()); + if (value != null && value > 0) { + total += (long) value * item.getAmount(); + } + } + } + return total; + } + + /** + * Update the preview pane to show current point value. + */ + private void updatePreview() { + long points = calculateDonationValue(); + ItemStack preview = createNamedItem(Material.EXPERIENCE_BOTTLE, + user.getTranslation("island.donate.preview", + POINTS_PLACEHOLDER, Utils.formatNumber(user, points))); + inventory.setItem(PREVIEW_SLOT, preview); + } + + /** + * Check if a slot is a donation slot. + */ + private boolean isDonationSlot(int slot) { + for (int s : DONATION_SLOTS) { + if (s == slot) return true; + } + return false; + } + + /** + * Process the donation - consume items and record them. Items with no + * configured value are returned to the player rather than consumed. + */ + private void processDonation() { + Map donations = new HashMap<>(); + long totalPoints = 0; + Player player = user.getPlayer(); + + for (int slot : DONATION_SLOTS) { + ItemStack item = inventory.getItem(slot); + if (item != null && !item.getType().isAir()) { + Material mat = item.getType(); + Integer value = addon.getBlockConfig().getValue(world, mat); + if (value != null && value > 0) { + int count = item.getAmount(); + long points = (long) value * count; + donations.merge(mat.name(), count, Integer::sum); + totalPoints += points; + // Record each material type as a separate donation log entry + addon.getManager().donateBlocks(island, user.getUniqueId(), mat.name(), count, points); + // Clear the slot - items are consumed + inventory.setItem(slot, null); + } else { + // Return valueless items to the player rather than consuming them + inventory.setItem(slot, null); + Map overflow = player.getInventory().addItem(item); + overflow.values().forEach(drop -> player.getWorld().dropItemNaturally(player.getLocation(), drop)); + } + } + } + + if (donations.isEmpty()) { + user.sendMessage("island.donate.empty"); + } else { + user.sendMessage("island.donate.success", + POINTS_PLACEHOLDER, Utils.formatNumber(user, totalPoints), + TextVariables.NUMBER, String.valueOf(donations.values().stream().mapToInt(Integer::intValue).sum())); + // Queue a full level recalculation so the donation is reflected immediately + addon.getManager().recalculateAfterDonation(island); + } + } + + /** + * Return all items in donation slots to the player. + */ + private void returnItems() { + Player player = user.getPlayer(); + for (int slot : DONATION_SLOTS) { + ItemStack item = inventory.getItem(slot); + if (item != null && !item.getType().isAir()) { + Map overflow = player.getInventory().addItem(item); + // Drop any items that don't fit + overflow.values().forEach(drop -> player.getWorld().dropItemNaturally(player.getLocation(), drop)); + inventory.setItem(slot, null); + } + } + } + + private void cleanup() { + HandlerList.unregisterAll(this); + } + + // ---- Event Handlers ---- + + @EventHandler + public void onInventoryClick(InventoryClickEvent event) { + if (!event.getInventory().equals(inventory)) return; + if (!(event.getWhoClicked() instanceof Player player)) return; + if (!player.getUniqueId().equals(user.getUniqueId())) return; + + int slot = event.getRawSlot(); + + if (slot >= SIZE) { + handlePlayerInventoryClick(event); + return; + } + if (slot == CANCEL_SLOT) { + handleCancel(event, player); + return; + } + if (slot == CONFIRM_SLOT) { + handleConfirm(event, player); + return; + } + if (isDonationSlot(slot)) { + handleDonationSlotClick(slot, player); + return; + } + // Borders, info, preview - cancel + event.setCancelled(true); + } + + /** + * Clicks in the player's own inventory: allow normal pickups, but intercept + * shift-clicks to distribute valid blocks into donation slots. + */ + private void handlePlayerInventoryClick(InventoryClickEvent event) { + if (!event.isShiftClick()) return; + event.setCancelled(true); + + ItemStack clicked = event.getCurrentItem(); + if (!isValidDonationItem(clicked)) { + return; + } + + ItemStack remaining = distributeIntoDonationSlots(clicked.clone()); + event.setCurrentItem(remaining.getAmount() <= 0 ? null : remaining); + updatePreview(); + } + + /** + * Distribute {@code remaining} across the donation slots in order, mutating + * its amount as items are consumed. Returns the same stack for convenience. + */ + private ItemStack distributeIntoDonationSlots(ItemStack remaining) { + int idx = 0; + while (idx < DONATION_SLOTS.length && remaining.getAmount() > 0) { + int ds = DONATION_SLOTS[idx]; + ItemStack existing = inventory.getItem(ds); + if (existing == null || existing.getType().isAir()) { + inventory.setItem(ds, remaining.clone()); + remaining.setAmount(0); + } else if (existing.isSimilar(remaining) && existing.getAmount() < existing.getMaxStackSize()) { + int space = existing.getMaxStackSize() - existing.getAmount(); + int transfer = Math.min(space, remaining.getAmount()); + ItemStack updated = existing.clone(); + updated.setAmount(updated.getAmount() + transfer); + inventory.setItem(ds, updated); + remaining.setAmount(remaining.getAmount() - transfer); + } + idx++; + } + return remaining; + } + + private void handleCancel(InventoryClickEvent event, Player player) { + event.setCancelled(true); + returnItems(); + confirmed = true; // prevent double-return on close + player.closeInventory(); + user.sendMessage("island.donate.cancelled"); + } + + private void handleConfirm(InventoryClickEvent event, Player player) { + event.setCancelled(true); + if (calculateDonationValue() <= 0) { + user.sendMessage("island.donate.empty"); + return; + } + confirmed = true; + processDonation(); + player.closeInventory(); + } + + /** + * Donation slots allow placement. Validate on the next tick and eject any + * item that is not a configured block donation. + */ + private void handleDonationSlotClick(int slot, Player player) { + Bukkit.getScheduler().runTask(addon.getPlugin(), () -> { + ItemStack inSlot = inventory.getItem(slot); + if (inSlot != null && !inSlot.getType().isAir() && !isValidDonationItem(inSlot)) { + inventory.setItem(slot, null); + Map overflow = player.getInventory().addItem(inSlot); + overflow.values().forEach(item -> player.getWorld().dropItemNaturally(player.getLocation(), item)); + user.sendMessage("island.donate.invalid-item"); + } + updatePreview(); + }); + } + + private boolean isValidDonationItem(ItemStack item) { + if (item == null || item.getType().isAir() || !item.getType().isBlock()) { + return false; + } + Integer value = addon.getBlockConfig().getValue(world, item.getType()); + return value != null && value > 0; + } + + @EventHandler + public void onInventoryDrag(InventoryDragEvent event) { + if (!event.getInventory().equals(inventory)) return; + // Only allow drags into donation slots + for (int slot : event.getRawSlots()) { + if (slot < SIZE && !isDonationSlot(slot)) { + event.setCancelled(true); + return; + } + } + // Update preview after drag + Bukkit.getScheduler().runTask(addon.getPlugin(), this::updatePreview); + } + + @EventHandler + public void onInventoryClose(InventoryCloseEvent event) { + if (!event.getInventory().equals(inventory)) return; + if (!(event.getPlayer() instanceof Player player)) return; + if (!player.getUniqueId().equals(user.getUniqueId())) return; + + // Return items if not confirmed + if (!confirmed) { + returnItems(); + } + cleanup(); + } + + // ---- Helper Methods ---- + + /** + * Create a named item. If the text contains '|' characters, the first segment + * becomes the display name and the rest become lore lines. + */ + private static ItemStack createNamedItem(Material material, String text) { + ItemStack item = new ItemStack(material); + ItemMeta meta = item.getItemMeta(); + if (meta != null) { + List parts = splitWithStyleCarryover(text); + meta.displayName(removeDefaultItalic(Util.parseMiniMessageOrLegacy(parts.get(0)))); + if (parts.size() > 1) { + List lore = new ArrayList<>(parts.size() - 1); + for (int i = 1; i < parts.size(); i++) { + lore.add(removeDefaultItalic(Util.parseMiniMessageOrLegacy(parts.get(i)))); + } + meta.lore(lore); + } + item.setItemMeta(meta); + } + return item; + } + + /** + * Splits a legacy-coded string on '|' while carrying the active color and + * formatting codes from the previous segment to the next. Without this, + * a span like "§cWarning|destroyed" would split into "§cWarning" and + * "destroyed" — the second line would lose its red color, since the + * componentToLegacy walker only emits §c once for a contiguous run. + */ + private static List splitWithStyleCarryover(String text) { + List result = new ArrayList<>(); + StringBuilder current = new StringBuilder(); + String activeColor = ""; + StringBuilder activeFormats = new StringBuilder(); + int i = 0; + while (i < text.length()) { + char c = text.charAt(i); + if (c == '|') { + result.add(current.toString()); + current = new StringBuilder(); + current.append(activeColor).append(activeFormats); + i++; + } else if (c == '\u00A7' && i + 1 < text.length()) { + char code = Character.toLowerCase(text.charAt(i + 1)); + String pair = "\u00A7" + code; + current.append(pair); + if ("0123456789abcdef".indexOf(code) >= 0) { + activeColor = pair; + activeFormats.setLength(0); + } else if ("klmno".indexOf(code) >= 0) { + activeFormats.append(pair); + } else if (code == 'r') { + activeColor = ""; + activeFormats.setLength(0); + } + i += 2; + } else { + current.append(c); + i++; + } + } + result.add(current.toString()); + return result; + } + + private static Component removeDefaultItalic(Component component) { + if (component.decoration(TextDecoration.ITALIC) == TextDecoration.State.NOT_SET) { + return component.decoration(TextDecoration.ITALIC, TextDecoration.State.FALSE); + } + return component; + } + + /** + * Open the donation panel for a player. + * + * @param addon Level addon + * @param world world context + * @param user the user opening the panel + * @param island the island to donate to + */ + public static void openPanel(Level addon, World world, User user, Island island) { + new DonationPanel(addon, world, user, island).build(); + } +} diff --git a/src/main/java/world/bentobox/level/util/Utils.java b/src/main/java/world/bentobox/level/util/Utils.java index 5c23c0b..b807cb9 100644 --- a/src/main/java/world/bentobox/level/util/Utils.java +++ b/src/main/java/world/bentobox/level/util/Utils.java @@ -7,6 +7,7 @@ package world.bentobox.level.util; +import java.text.NumberFormat; import java.util.List; import org.bukkit.Material; @@ -22,6 +23,13 @@ public class Utils private Utils() {} // Private constructor as this is a utility class only with static methods + /** + * Formats a number using the user's locale (e.g. 10500 → "10,500" in en-US, "10.500" in de). + */ + public static String formatNumber(User user, long value) { + return NumberFormat.getInstance(user.getLocale()).format(value); + } + /** * This method sends a message to the user with appended "prefix" text before message. * @param user User who receives message. diff --git a/src/main/resources/addon.yml b/src/main/resources/addon.yml index ac03c0b..e99df00 100755 --- a/src/main/resources/addon.yml +++ b/src/main/resources/addon.yml @@ -2,7 +2,7 @@ name: Level main: world.bentobox.level.Level version: ${version}${build.number} icon: DIAMOND -api-version: 2.4.0 +api-version: 3.14.0 authors: tastybento diff --git a/src/main/resources/locales/cs.yml b/src/main/resources/locales/cs.yml index 9eea45e..9e7e836 100644 --- a/src/main/resources/locales/cs.yml +++ b/src/main/resources/locales/cs.yml @@ -9,23 +9,23 @@ admin: např. +10 odstraní 10 úrovní, 30 nastaví handicap na 30, -20 přidá 20 úrovní - changed: '&a Počáteční ostrovní handicap se změnil z [number] na [new_number].' - invalid-level: '&c Neplatný handicap. Použijte celé číslo.' + changed: ' Počáteční ostrovní handicap se změnil z [number] na [new_number].' + invalid-level: ' Neplatný handicap. Použijte celé číslo.' levelstatus: description: Ukažte, kolik ostrovů je ve frontě pro skenování - islands-in-queue: '&a Ostrovy ve frontě: [number]' + islands-in-queue: ' Ostrovy ve frontě: [number]' top: description: ukázat seznam TOP 10 - unknown-world: '&cNeznámý svět!' - display: '&f[rank]. &a[name] &7- &b[level]' + unknown-world: 'Neznámý svět!' + display: '[rank]. [name] - [level]' remove: description: odstranit hráče z TOP 10 parameters: stats: description: Zobrazit statistiky na ostrovech na tomto serveru title: Statistiky serveru - world: '&a [name]' - no-data: '&c Žádná data pro zpracování.' + world: ' [name]' + no-data: ' Žádná data pro zpracování.' average-level: 'Průměrná úroveň ostrova: [number]' median-level: 'Střední úroveň ostrova: [number]' mode-level: 'Úroveň ostrova režimu: [number]' @@ -37,32 +37,60 @@ island: level: parameters: '[player]' description: spočítat úroveň tvého ostrova nebo ostrova hráče [player] - calculating: '&aPočítám úroveň...' - estimated-wait: '&a Odhadované čekání: [number] sekundy' - in-queue: '&a Jste číslo [number] ve frontě' - island-level-is: '&aÚroveň ostrova je &b[level]' - required-points-to-next-level: '&a Pokrok úrovně: &6 [progress]&b /&e [levelcost] &a bodů' - deaths: '&c([number] smrtí)' - cooldown: '&cMusíš čekat &b[time] &csekund, než můžeš příkaz znovu použít' - in-progress: '&6 Probíhá výpočet úrovně ostrova ...' - time-out: '&c Výpočet úrovně trval příliš dlouho. Zkuste to prosím znovu později.' + calculating: 'Počítám úroveň...' + estimated-wait: ' Odhadované čekání: [number] sekundy' + in-queue: ' Jste číslo [number] ve frontě' + island-level-is: 'Úroveň ostrova je [level]' + required-points-to-next-level: ' Pokrok úrovně: [progress] / [levelcost] bodů' + deaths: '([number] smrtí)' + cooldown: 'Musíš čekat [time] sekund, než můžeš příkaz znovu použít' + in-progress: ' Probíhá výpočet úrovně ostrova ...' + time-out: ' Výpočet úrovně trval příliš dlouho. Zkuste to prosím znovu později.' + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." detail: description: "zobrazit podrobnosti o blocích vašeho ostrova" top: description: ukázat TOP 10 - gui-title: '&aTOP 10' - gui-heading: '&6[name]: &B[rank]' - island-level: '&BÚroveň [level]' - warp-to: '&AWarp na ostrov [name]' + gui-title: 'TOP 10' + gui-heading: '[name]: [rank]' + island-level: 'Úroveň [level]' + warp-to: 'Warp na ostrov [name]' level-details: above-sea-level-blocks: Nad bloky hladiny moře spawners: Spawners underwater-blocks: Podvodové bloky all-blocks: Všechny bloky - no-island: '&c Žádný ostrov!' + no-island: ' Žádný ostrov!' names-island: '[name]''s Island' syntax: '[name] x [number]' - hint: '&c Spustit úroveň a zobrazit zprávu bloku' + hint: ' Spustit úroveň a zobrazit zprávu bloku' +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -72,27 +100,27 @@ level: položku v ruce. gui: titles: - top: '&0&l Nejlepší ostrovy' - detail-panel: '&0&l [name]''s Island' - value-panel: '&0&l Blokové hodnoty' + top: ' Nejlepší ostrovy' + detail-panel: ' [name]''s Island' + value-panel: ' Blokové hodnoty' buttons: island: - empty: '&f&l [name]. místo' - name: '&f&l [name]' + empty: ' [name]. místo' + name: ' [name]' description: |- [owner] [members] [place] [level] owners-island: '[player]''s Island' - owner: '&7&l Majitel: &r&b [player]' - members-title: '&7&l Členové:' - member: '&b - [player]' + owner: ' Majitel: [player]' + members-title: ' Členové:' + member: ' - [player]' unknown: neznámý - place: '&7&o [number]. &r&7 místo' - level: '&7 Úroveň:&o [number]' + place: ' [number]. místo' + level: ' Úroveň: [number]' material: - name: '&f&l [number] x [material]' + name: ' [number] x [material]' description: |- [description] [count] @@ -100,97 +128,102 @@ level: [calculated] [limit] [id] - id: '&7 Blok ID: &e [id]' - value: '&7 Hodnota bloku:&e [number]' - limit: '&7 Limit bloku:&e [number]' - count: '&7 Počet bloků:&e [number]' - calculated: '&7 Vypočítaná hodnota:&e [number]' + id: ' Blok ID: [id]' + value: ' Hodnota bloku: [number]' + limit: ' Limit bloku: [number]' + count: ' Počet bloků: [number]' + calculated: ' Vypočítaná hodnota: [number]' value_blocks: - name: '&f&l Všechny bloky s hodnotou' + name: ' Všechny bloky s hodnotou' description: |- - &7 Zobrazit všechny bloky - &7 s hodnotou na ostrově. + Zobrazit všechny bloky + s hodnotou na ostrově. all_blocks: - name: '&f&l Všechny bloky' + name: ' Všechny bloky' description: |- - &7 Zobrazit všechny bloky - &7 na ostrově. + Zobrazit všechny bloky + na ostrově. above_sea_level: - name: '&f&l Bloky nad hladinou moře' + name: ' Bloky nad hladinou moře' description: |- - &7 Zobrazit pouze bloky - &7 které jsou nad mořem - &7 úroveň. + Zobrazit pouze bloky + které jsou nad mořem + úroveň. underwater: - name: '&f&l Blocks Under Sea level' + name: ' Blocks Under Sea level' description: |- - &7 Zobrazit pouze bloky - &7 to je níže moře - &7 úroveň. + Zobrazit pouze bloky + to je níže moře + úroveň. spawner: - name: '&f&l Spawners' - description: '&7 Displej pouze tření.' - block-name: '&b Spawner' + name: ' Spawners' + description: ' Displej pouze tření.' + block-name: ' Spawner' + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: '&f&l Sort by Name' - description: '&7 Sort all blocks by name.' + name: ' Sort by Name' + description: ' Sort all blocks by name.' value: - name: '&f&l Sort by Value' - description: '&7 Sort all blocks by their value.' + name: ' Sort by Value' + description: ' Sort all blocks by their value.' count: - name: '&f&l Sort by Count' - description: '&7 Sort all blocks by their amount.' + name: ' Sort by Count' + description: ' Sort all blocks by their amount.' value: - name: '&f&l [material]' + name: ' [material]' description: |- [description] [value] [underwater] [limit] [id] - id: '&7 Block id: &e [id]' - value: '&7 Hodnota bloku: &e [number]' - underwater: '&7 Hladina moře Bellow: &e [number]' - limit: '&7 Limit bloku: &e [number]' + id: ' Block id: [id]' + value: ' Hodnota bloku: [number]' + underwater: ' Hladina moře Below: [number]' + limit: ' Limit bloku: [number]' previous: name: Předchozí stránka - description: '&7 Přepněte na stránku [number]' + description: ' Přepněte na stránku [number]' next: name: Další stránka - description: '&7 Přepněte na stránku [number]' + description: ' Přepněte na stránku [number]' search: name: Vyhledávání description: |- - &7 Hledejte konkrétní - &7 hodnota. - search: '&b Hodnota: [value]' + Hledejte konkrétní + hodnota. + search: ' Hodnota: [value]' tips: - click-to-view: '&e Kliknutím zobrazíte.' - click-to-previous: '&e Kliknutím zobrazíte předchozí stránku.' - click-to-next: '&e Kliknutím zobrazíte další stránku.' - click-to-select: '&e Kliknutím vyberte.' - left-click-to-cycle-up: '&e Levé kliknutí na cyklus nahoru.' - right-click-to-cycle-down: '&e Kliknutím pravým tlačítkem je cyklujte dolů.' - left-click-to-change: '&e Levý kliknutí upravte.' - right-click-to-clear: '&e Kliknutím pravým tlačítkem vymažte.' - click-to-asc: '&e Kliknutím třídíte v zvyšování pořadí.' - click-to-desc: '&e Kliknutím třídíte v klesajícím pořadí.' - click-to-warp: '&e Klikněte na warp.' - click-to-visit: '&e Kliknutím navštívíte.' - right-click-to-visit: '&e Kliknutím na návštěvu.' + click-to-view: ' Kliknutím zobrazíte.' + click-to-previous: ' Kliknutím zobrazíte předchozí stránku.' + click-to-next: ' Kliknutím zobrazíte další stránku.' + click-to-select: ' Kliknutím vyberte.' + left-click-to-cycle-up: ' Levé kliknutí na cyklus nahoru.' + right-click-to-cycle-down: ' Kliknutím pravým tlačítkem je cyklujte dolů.' + left-click-to-change: ' Levý kliknutí upravte.' + right-click-to-clear: ' Kliknutím pravým tlačítkem vymažte.' + click-to-asc: ' Kliknutím třídíte v zvyšování pořadí.' + click-to-desc: ' Kliknutím třídíte v klesajícím pořadí.' + click-to-warp: ' Klikněte na warp.' + click-to-visit: ' Kliknutím navštívíte.' + right-click-to-visit: ' Kliknutím na návštěvu.' conversations: - prefix: '&l&6 [BentoBox]: &r' - no-data: '&c Spusťte úroveň a zobrazí se zpráva o bloku.' + prefix: ' [BentoBox]: ' + no-data: ' Spusťte úroveň a zobrazí se zpráva o bloku.' cancel-string: zrušit exit-string: zrušit, ukončit, přestat - write-search: '&e Zadejte hodnotu vyhledávání. (Napište „zrušit“ do ukončení)' + write-search: ' Zadejte hodnotu vyhledávání. (Napište „zrušit“ do ukončení)' search-updated: Aktualizována hodnota vyhledávání. - cancelled: '&c Konverzace zrušena!' - no-value: '&c Tato položka nemá žádnou hodnotu.' - unknown-item: '&c „[material]“ ve hře neexistuje.' - value: '&7 Hodnota „[material]“ je: &e [value]' - value-underwater: '&7 Hodnota [material] ''pod hladinou moře: &e [value]' - empty-hand: '&c V ruce nejsou žádné bloky' - you-have: '&7 Máte [number] na posledním počtu.' - you-can-place: '&7 Můžete umístit až [number] a nechat je počítat' + cancelled: ' Konverzace zrušena!' + no-value: ' Tato položka nemá žádnou hodnotu.' + unknown-item: ' „[material]“ ve hře neexistuje.' + value: ' Hodnota „[material]“ je: [value]' + value-underwater: ' Hodnota [material] ''pod hladinou moře: [value]' + empty-hand: ' V ruce nejsou žádné bloky' + you-have: ' Máte [number] na posledním počtu.' + you-can-place: ' Můžete umístit až [number] a nechat je počítat' diff --git a/src/main/resources/locales/de.yml b/src/main/resources/locales/de.yml index accb170..2adfc2f 100644 --- a/src/main/resources/locales/de.yml +++ b/src/main/resources/locales/de.yml @@ -10,23 +10,23 @@ admin: z.B. +10 entfernt 10 Level, 30 setzt Handicap auf 30, -20 fügt 20 Level hinzu - changed: "&a Das anfängliche Insel-Handicap wurde von [number] auf [new_number] geändert." - invalid-level: "&c Ungültiges Handicap. Verwende eine ganze Zahl." + changed: " Das anfängliche Insel-Handicap wurde von [number] auf [new_number] geändert." + invalid-level: " Ungültiges Handicap. Verwende eine ganze Zahl." levelstatus: description: Zeige wie viele Inseln in der Warteschlange für den Scan sind - islands-in-queue: "&a Inseln in der Warteschlange: [number]" + islands-in-queue: " Inseln in der Warteschlange: [number]" top: description: Zeige die Top-10 Liste - unknown-world: "&c Unbekannte Welt!" - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: " Unbekannte Welt!" + display: "[rank]. [name] - [level]" remove: description: entferne Spieler von Top-10 parameters: "" stats: description: "Zeige Statistiken zu Inseln auf diesem Server" title: "Server-Insel-Statistiken" - world: "&a [name]" - no-data: "&c Keine Daten zum Verarbeiten." + world: " [name]" + no-data: " Keine Daten zum Verarbeiten." average-level: "Durchschnittliches Insel-Level: [number]" median-level: "Medianes Insel-Level: [number]" mode-level: "Häufigstes Insel-Level: [number]" @@ -38,32 +38,60 @@ island: level: parameters: "[Spieler]" description: Berechne dein Insel Level oder zeige das Level von [Spieler] - calculating: "&a Berechne Level..." - estimated-wait: "&a Geschätzte Wartezeit: [number] Sekunden" - in-queue: "&a Du bist Nummer [number] in der Warteschlange" - island-level-is: "&a Insel Level: &b[level]" - required-points-to-next-level: "&a Level-Fortschritt: &6 [progress]&b /&e [levelcost] &a Punkte" - deaths: "&c ([number] Tode)" - cooldown: "&c Du musst &b[time] &c Sekunden warten, bevor du das erneut machen kannst." - in-progress: "&6 Insel-Level-Berechnung läuft..." - time-out: "&c Die Level-Berechnung hat zu lange gedauert. Bitte versuche es später erneut." + calculating: " Berechne Level..." + estimated-wait: " Geschätzte Wartezeit: [number] Sekunden" + in-queue: " Du bist Nummer [number] in der Warteschlange" + island-level-is: " Insel Level: [level]" + required-points-to-next-level: " Level-Fortschritt: [progress] / [levelcost] Punkte" + deaths: " ([number] Tode)" + cooldown: " Du musst [time] Sekunden warten, bevor du das erneut machen kannst." + in-progress: " Insel-Level-Berechnung läuft..." + time-out: " Die Level-Berechnung hat zu lange gedauert. Bitte versuche es später erneut." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." detail: description: "zeigt Details der Blöcke deiner Insel" top: description: Zeige die Top-10 - gui-title: "&a Top Zehn" - gui-heading: "&6[name]: &B[rank]" - island-level: "&b Level [level]" - warp-to: "&a Teleportiere zu [name]'s Insel" + gui-title: " Top Zehn" + gui-heading: "[name]: [rank]" + island-level: " Level [level]" + warp-to: " Teleportiere zu [name]'s Insel" level-details: above-sea-level-blocks: Blöcke über dem Meeresspiegel spawners: Spawner underwater-blocks: Unterwasserblöcke all-blocks: Alle Blöcke - no-island: "&c Keine Insel!" + no-island: " Keine Insel!" names-island: "[name]'s Insel" syntax: "[name] x [number]" - hint: "&c Führe level aus, um den Block-Bericht zu sehen" + hint: " Führe level aus, um den Block-Bericht zu sehen" +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -71,27 +99,27 @@ level: description: zeigt den Wert von Blöcken. Füge 'hand' am Ende hinzu, um den Wert des gehaltenen Items anzuzeigen. gui: titles: - top: "&0&l Top Inseln" - detail-panel: "&0&l [name]'s Insel" - value-panel: "&0&l Block Werte" + top: " Top Inseln" + detail-panel: " [name]'s Insel" + value-panel: " Block Werte" buttons: island: - empty: '&f&l [name]. Platz' - name: '&f&l [name]' + empty: ' [name]. Platz' + name: ' [name]' description: |- [owner] [members] [place] [level] owners-island: "[player]'s Insel" - owner: "&7&l Besitzer: &r&b [player]" - members-title: "&7&l Mitglieder:" - member: "&b - [player]" + owner: " Besitzer: [player]" + members-title: " Mitglieder:" + member: " - [player]" unknown: "unbekannt" - place: "&7&o [number]. &r&7 Platz" - level: "&7 Level: &o [number]" + place: " [number]. Platz" + level: " Level: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -99,103 +127,108 @@ level: [calculated] [limit] [id] - id: "&7 Block-ID: &e [id]" - value: "&7 Block-Wert: &e [number]" - limit: "&7 Block-Limit: &e [number]" - count: "&7 Anzahl der Blöcke: &e [number]" - calculated: "&7 Berechneter Wert: &e [number]" + id: " Block-ID: [id]" + value: " Block-Wert: [number]" + limit: " Block-Limit: [number]" + count: " Anzahl der Blöcke: [number]" + calculated: " Berechneter Wert: [number]" value_blocks: - name: "&f&l Alle Blöcke mit Wert" + name: " Alle Blöcke mit Wert" description: |- - &7 Zeige alle Blöcke - &7 mit Wert auf der Insel. + Zeige alle Blöcke + mit Wert auf der Insel. all_blocks: - name: "&f&l Alle Blöcke" + name: " Alle Blöcke" description: |- - &7 Zeige alle Blöcke - &7 auf der Insel. + Zeige alle Blöcke + auf der Insel. above_sea_level: - name: "&f&l Blöcke über dem Meeresspiegel" + name: " Blöcke über dem Meeresspiegel" description: |- - &7 Zeige nur Blöcke - &7 die über dem - &7 Meeresspiegel sind. + Zeige nur Blöcke + die über dem + Meeresspiegel sind. underwater: - name: "&f&l Blöcke unter dem Meeresspiegel" + name: " Blöcke unter dem Meeresspiegel" description: |- - &7 Zeige nur Blöcke - &7 die unter dem - &7 Meeresspiegel sind. + Zeige nur Blöcke + die unter dem + Meeresspiegel sind. spawner: - name: "&f&l Spawner" + name: " Spawner" description: |- - &7 Zeige nur Spawner. - block-name: "&b Spawner" + Zeige nur Spawner. + block-name: " Spawner" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&l Nach Name sortieren" + name: " Nach Name sortieren" description: |- - &7 Alle Blöcke nach Name sortieren. + Alle Blöcke nach Name sortieren. value: - name: "&f&l Nach Wert sortieren" + name: " Nach Wert sortieren" description: |- - &7 Alle Blöcke nach Wert sortieren. + Alle Blöcke nach Wert sortieren. count: - name: "&f&l Nach Anzahl sortieren" + name: " Nach Anzahl sortieren" description: |- - &7 Alle Blöcke nach Anzahl sortieren. + Alle Blöcke nach Anzahl sortieren. value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 Block-ID: &e [id]" - value: "&7 Block-Wert: &e [number]" - underwater: "&7 Unter dem Meeresspiegel: &e [number]" - limit: "&7 Block-Limit: &e [number]" + id: " Block-ID: [id]" + value: " Block-Wert: [number]" + underwater: " Unter dem Meeresspiegel: [number]" + limit: " Block-Limit: [number]" previous: - name: "&f&l Vorherige Seite" + name: " Vorherige Seite" description: |- - &7 Wechsle zu Seite [number] + Wechsle zu Seite [number] next: - name: "&f&l Nächste Seite" + name: " Nächste Seite" description: |- - &7 Wechsle zu Seite [number] + Wechsle zu Seite [number] search: - name: "&f&l Suchen" + name: " Suchen" description: |- - &7 Suche nach einem bestimmten - &7 Wert. - search: "&b Wert: [value]" + Suche nach einem bestimmten + Wert. + search: " Wert: [value]" tips: - click-to-view: "&e Klicken &7 zum Anzeigen." - click-to-previous: "&e Klicken &7 um die vorherige Seite anzuzeigen." - click-to-next: "&e Klicken &7 um die nächste Seite anzuzeigen." - click-to-select: "&e Klicken &7 zum Auswählen." - left-click-to-cycle-up: "&e Linksklick &7 zum Aufwärtsblättern." - right-click-to-cycle-down: "&e Rechtsklick &7 zum Abwärtsblättern." - left-click-to-change: "&e Linksklick &7 zum Bearbeiten." - right-click-to-clear: "&e Rechtsklick &7 zum Löschen." - click-to-asc: "&e Klicken &7 um aufsteigend zu sortieren." - click-to-desc: "&e Klicken &7 um absteigend zu sortieren." - click-to-warp: "&e Klicken &7 zum Teleportieren." - click-to-visit: "&e Klicken &7 zum Besuchen." - right-click-to-visit: "&e Rechtsklick &7 zum Besuchen." + click-to-view: " Klicken zum Anzeigen." + click-to-previous: " Klicken um die vorherige Seite anzuzeigen." + click-to-next: " Klicken um die nächste Seite anzuzeigen." + click-to-select: " Klicken zum Auswählen." + left-click-to-cycle-up: " Linksklick zum Aufwärtsblättern." + right-click-to-cycle-down: " Rechtsklick zum Abwärtsblättern." + left-click-to-change: " Linksklick zum Bearbeiten." + right-click-to-clear: " Rechtsklick zum Löschen." + click-to-asc: " Klicken um aufsteigend zu sortieren." + click-to-desc: " Klicken um absteigend zu sortieren." + click-to-warp: " Klicken zum Teleportieren." + click-to-visit: " Klicken zum Besuchen." + right-click-to-visit: " Rechtsklick zum Besuchen." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Führe level aus, um den Block-Bericht zu sehen." + prefix: " [BentoBox]: " + no-data: " Führe level aus, um den Block-Bericht zu sehen." cancel-string: abbrechen exit-string: abbrechen, beenden, verlassen - write-search: "&e Bitte gib einen Suchwert ein. (Schreibe 'abbrechen' zum Beenden)" - search-updated: "&a Suchwert aktualisiert." - cancelled: "&c Gespräch abgebrochen!" - no-value: "&c Dieses Item hat keinen Wert." - unknown-item: "&c Das '[material]' existiert nicht im Spiel." - value: "&7 Der Wert von '[material]' ist: &e[value]" - value-underwater: "&7 Der Wert von '[material]' unter dem Meeresspiegel: &e[value]" - empty-hand: "&c Du hast keinen Block in der Hand" - you-have: "&7 Du hast [number] beim letzten Zählen." - you-can-place: "&7 Du kannst bis zu [number] platzieren und sie werden gezählt" + write-search: " Bitte gib einen Suchwert ein. (Schreibe 'abbrechen' zum Beenden)" + search-updated: " Suchwert aktualisiert." + cancelled: " Gespräch abgebrochen!" + no-value: " Dieses Item hat keinen Wert." + unknown-item: " Das '[material]' existiert nicht im Spiel." + value: " Der Wert von '[material]' ist: [value]" + value-underwater: " Der Wert von '[material]' unter dem Meeresspiegel: [value]" + empty-hand: " Du hast keinen Block in der Hand" + you-have: " Du hast [number] beim letzten Zählen." + you-can-place: " Du kannst bis zu [number] platzieren und sie werden gezählt" diff --git a/src/main/resources/locales/en-US.yml b/src/main/resources/locales/en-US.yml index b1bc380..08f3835 100755 --- a/src/main/resources/locales/en-US.yml +++ b/src/main/resources/locales/en-US.yml @@ -8,29 +8,29 @@ admin: parameters: "" description: "calculate the island level for player" sethandicap: - parameters: [+/-] + parameters: " [+/-]" description: | set or change the island *handicap* e.g. +10 will remove 10 levels, 30 will set handicap to 30, -20 will add 20 levels - changed: "&a Initial island handicap changed from [number] to [new_number]." - invalid-level: "&c Invalid handicap. Use an integer." + changed: "Initial island handicap changed from [number] to [new_number]." + invalid-level: "Invalid handicap. Use an integer." levelstatus: description: "show how many islands are in the queue for scanning" - islands-in-queue: "&a Islands in queue: [number]" + islands-in-queue: "Islands in queue: [number]" top: description: "show the top ten list" - unknown-world: "&c Unknown world!" - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: "Unknown world!" + display: "[rank]. [name] - [level]" remove: description: "remove player from Top Ten" parameters: "" stats: description: "show stats on islands on this server" title: "Server Island Stats" - world: "&a [name]" - no-data: "&c No data to process." + world: "[name]" + no-data: "No data to process." average-level: "Average Island Level: [number]" median-level: "Median Island Level: [number]" mode-level: "Mode Island Level: [number]" @@ -42,33 +42,62 @@ island: level: parameters: "[player]" description: "calculate your island level or show the level of [player]" - calculating: "&a Calculating level..." - estimated-wait: "&a Estimated wait: [number] seconds" - in-queue: "&a You are number [number] in the queue" - island-level-is: "&a Island level is &b[level]" - required-points-to-next-level: "&a Level progress: &6 [progress]&b /&e [levelcost] &a points" - deaths: "&c ([number] deaths)" - cooldown: "&c You must wait &b[time] &c seconds until you can do that again" - in-progress: "&6 Island level calculation is in progress..." - time-out: "&c The level calculation took too long. Please try again later." + calculating: "Calculating level..." + estimated-wait: "Estimated wait: [number] seconds" + in-queue: "You are number [number] in the queue" + island-level-is: "Island level is [level]" + required-points-to-next-level: "Level progress: [progress]/[levelcost] points" + deaths: "([number] deaths)" + cooldown: "You must wait [time] seconds until you can do that again" + in-progress: "Island level calculation is in progress..." + time-out: "The level calculation took too long. Please try again later." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + invalid-item: "Only blocks with a configured level value can be donated." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." detail: description: "shows detail of your island blocks" top: description: "show the Top Ten" - gui-title: "&a Top Ten" - gui-heading: "&6[name]: &B[rank]" - island-level: "&b Level [level]" - warp-to: "&A Warping to [name]'s island" + gui-title: "Top Ten" + gui-heading: "[name]: [rank]" + island-level: "Level [level]" + warp-to: "Warping to [name]'s island" level-details: above-sea-level-blocks: "Above Sea Level Blocks" spawners: "Spawners" underwater-blocks: "Underwater Blocks" all-blocks: "All Blocks" - no-island: "&c No island!" + no-island: "No island!" names-island: "[name]'s island" syntax: "[name] x [number]" - hint: "&c Run level to see the block report" + hint: "Run level to see the block report" + +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed level: commands: @@ -77,13 +106,13 @@ level: description: "shows the value of blocks. Add 'hand' at the end to display value for item in hand." gui: titles: - top: "&0&l Top Islands" - detail-panel: "&0&l [name]'s island" - value-panel: "&0&l Block Values" + top: "Top Islands" + detail-panel: "[name]'s island" + value-panel: "Block Values" buttons: island: - empty: '&f&l [name]. place' - name: '&f&l [name]' + empty: '[name]. place' + name: '[name]' description: |- [owner] [members] @@ -92,19 +121,19 @@ level: # Text that is replacing [name] if island do not have a name owners-island: "[player]'s Island" # Text for [owner] in description. - owner: "&7&l Owner: &r&b [player]" + owner: "Owner: [player]" # Title before listing members for [members] in description - members-title: "&7&l Members:" + members-title: "Members:" # List each member under the title for [members] in description - member: "&b - [player]" + member: "- [player]" # Name of unknown player. unknown: "unknown" # Section for parsing [place] - place: "&7&o [number]. &r&7 place" + place: "[number]. place" # Section for parsing [level] - level: "&7 Level: &o [number]" + level: "Level: [number]" material: - name: "&f&l [number] x [material]" + name: "[number] x [material]" description: |- [description] [count] @@ -112,117 +141,122 @@ level: [calculated] [limit] [id] - id: "&7 Block id: &e [id]" - value: "&7 Block value: &e [number]" - limit: "&7 Block limit: &e [number]" - count: "&7 Number of blocks: &e [number]" - calculated: "&7 Calculated value: &e [number]" + id: "Block id: [id]" + value: "Block value: [number]" + limit: "Block limit: [number]" + count: "Number of blocks: [number]" + calculated: "Calculated value: [number]" value_blocks: - name: "&f&l All Blocks With Value" + name: "All Blocks With Value" description: |- - &7 Display all blocks - &7 with value on island. + Display all blocks + with value on island. all_blocks: - name: "&f&l All Blocks" + name: "All Blocks" description: |- - &7 Display all blocks - &7 on island. + Display all blocks + on island. above_sea_level: - name: "&f&l Blocks Above Sea Level" + name: "Blocks Above Sea Level" description: |- - &7 Display only blocks - &7 that are above sea - &7 level. + Display only blocks + that are above sea + level. underwater: - name: "&f&l Blocks Under Sea level" + name: "Blocks Under Sea level" description: |- - &7 Display only blocks - &7 that are bellow sea - &7 level. + Display only blocks + that are below sea + level. spawner: - name: "&f&l Spawners" + name: "Spawners" + description: |- + Display only spawners. + block-name: "Spawner" + donated: + name: "Donated Blocks" description: |- - &7 Display only spawners. - block-name: "&b Spawner" + Display blocks permanently + donated to island level. filters: name: - name: "&f&l Sort by Name" + name: "Sort by Name" description: |- - &7 Sort all blocks by name. + Sort all blocks by name. value: - name: "&f&l Sort by Value" + name: "Sort by Value" description: |- - &7 Sort all blocks by their value. + Sort all blocks by their value. count: - name: "&f&l Sort by Count" + name: "Sort by Count" description: |- - &7 Sort all blocks by their amount. + Sort all blocks by their amount. value: - name: "&f&l [material]" + name: "[material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 Block id: &e [id]" - value: "&7 Block value: &e [number]" - underwater: "&7 Bellow sea level: &e [number]" - limit: "&7 Block limit: &e [number]" + id: "Block id: [id]" + value: "Block value: [number]" + underwater: "Below sea level: [number]" + limit: "Block limit: [number]" # Button that is used in multi-page GUIs which allows to return to previous page. previous: - name: "&f&l Previous Page" + name: "Previous Page" description: |- - &7 Switch to [number] page + Switch to [number] page # Button that is used in multi-page GUIs which allows to go to next page. next: - name: "&f&l Next Page" + name: "Next Page" description: |- - &7 Switch to [number] page + Switch to [number] page search: - name: "&f&l Search" + name: "Search" description: |- - &7 Search for a specific - &7 value. - search: "&b Value: [value]" + Search for a specific + value. + search: "Value: [value]" tips: - click-to-view: "&e Click &7 to view." - click-to-previous: "&e Click &7 to view previous page." - click-to-next: "&e Click &7 to view next page." - click-to-select: "&e Click &7 to select." - left-click-to-cycle-up: "&e Left Click &7 to cycle up." - right-click-to-cycle-down: "&e Right Click &7 to cycle down." - left-click-to-change: "&e Left Click &7 to edit." - right-click-to-clear: "&e Right Click &7 to clear." - click-to-asc: "&e Click &7 to sort in increasing order." - click-to-desc: "&e Click &7 to sort in decreasing order." - click-to-warp: "&e Click &7 to warp." - click-to-visit: "&e Click &7 to visit." - right-click-to-visit: "&e Right Click &7 to visit." + click-to-view: "Click to view." + click-to-previous: "Click to view previous page." + click-to-next: "Click to view next page." + click-to-select: "Click to select." + left-click-to-cycle-up: "Left Click to cycle up." + right-click-to-cycle-down: "Right Click to cycle down." + left-click-to-change: "Left Click to edit." + right-click-to-clear: "Right Click to clear." + click-to-asc: "Click to sort in increasing order." + click-to-desc: "Click to sort in decreasing order." + click-to-warp: "Click to warp." + click-to-visit: "Click to visit." + right-click-to-visit: "Right Click to visit." conversations: # Prefix for messages that are send from server. - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Run level to see the block report." + prefix: "[BentoBox]: " + no-data: "Run level to see the block report." # String that allows to cancel conversation. (can be only one) cancel-string: "cancel" # List of strings that allows to exit conversation. (separated with ,) exit-string: "cancel, exit, quit" # Message that asks for search value input. - write-search: "&e Please enter a search value. (Write 'cancel' to exit)" + write-search: "Please enter a search value. (Write 'cancel' to exit)" # Message that appears after updating search value. - search-updated: "&a Search value updated." + search-updated: "Search value updated." # Message that is sent to user when conversation is cancelled. - cancelled: "&c Conversation cancelled!" + cancelled: "Conversation cancelled!" # Message that is sent to user when given material does not have any value. - no-value: "&c That item has no value." + no-value: "That item has no value." # Message that is sent to user when requested material does not exist. - unknown-item: "&c The '[material]' does not exist in game." + unknown-item: "The '[material]' does not exist in game." # Messages that is sent to user when requesting value for a specific material. - value: "&7 The value of '[material]' is: &e[value]" - value-underwater: "&7 The value of '[material]' below sea-level: &e[value]" + value: "The value of '[material]' is: [value]" + value-underwater: "The value of '[material]' below sea-level: [value]" # Message that is sent to user when he does not hold any items in hand. - empty-hand: "&c There are no blocks in your hand" + empty-hand: "There are no blocks in your hand" # Message when showing how many have been placed of a block - you-have: "&7 You have [number] at last count." + you-have: "You have [number] at last count." # Message about the limit - you-can-place: "&7 You can place up to [number] and have them count" + you-can-place: "You can place up to [number] and have them count" diff --git a/src/main/resources/locales/es.yml b/src/main/resources/locales/es.yml index 808840e..47f583c 100644 --- a/src/main/resources/locales/es.yml +++ b/src/main/resources/locales/es.yml @@ -7,23 +7,23 @@ admin: parameters: " " description: Define la desventaja de la isla, usualmente el nivel inicial para nuevas islas - changed: "&aDesventaja inicial de la isla cambiado de [number] a [new_number]." - invalid-level: "&cNúmero no válido. Usa un número entero." + changed: "Desventaja inicial de la isla cambiado de [number] a [new_number]." + invalid-level: "Número no válido. Usa un número entero." levelstatus: description: Muestra cuantas islas hay en la cola para escanear - islands-in-queue: "&aIslas en cola: [number]" + islands-in-queue: "Islas en cola: [number]" top: description: Muestra la lista de las diez primeras islas - unknown-world: "&c¡Mundo desconocido!" - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: "¡Mundo desconocido!" + display: "[rank]. [name] - [level]" remove: description: Elimina a un jugador de los diez primeros parameters: "" stats: description: "mostrar estadísticas de islas en este servidor" title: "Estadísticas de Islas del Servidor" - world: "&a [name]" - no-data: "&c No hay datos para procesar." + world: " [name]" + no-data: " No hay datos para procesar." average-level: "Nivel promedio de isla: [number]" median-level: "Nivel mediano de isla: [number]" mode-level: "Nivel modal de isla: [number]" @@ -35,32 +35,60 @@ island: level: parameters: "[player]" description: Calcula tu nivel de isla o muestra el nivel de [player] - calculating: "&aCalculando nivel..." - estimated-wait: "&aEspera estimada: [number] segundos" - in-queue: "&aEstás en el puesto [number] de la cola" - island-level-is: "&aNivel de isla es de &b[level]" - required-points-to-next-level: "&a Progreso de nivel: &6 [progress]&b /&e [levelcost] &a puntos" - deaths: "&c([number] Muertes)" - cooldown: "&cDebes esperar &b[time] &csegundos para poder volver a hacer esto." - in-progress: "&6El Calculo del nivel de la islas está en progreso..." - time-out: "&cEl calculo del nivel de la isla está tardando. Intente más tarde." + calculating: "Calculando nivel..." + estimated-wait: "Espera estimada: [number] segundos" + in-queue: "Estás en el puesto [number] de la cola" + island-level-is: "Nivel de isla es de [level]" + required-points-to-next-level: " Progreso de nivel: [progress] / [levelcost] puntos" + deaths: "([number] Muertes)" + cooldown: "Debes esperar [time] segundos para poder volver a hacer esto." + in-progress: "El Calculo del nivel de la islas está en progreso..." + time-out: "El calculo del nivel de la isla está tardando. Intente más tarde." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." detail: description: "muestra el detalle de los bloques de tu isla" top: description: Muestra el top de islas - gui-title: "&aTop diez" - gui-heading: "&6[name]: &b[rank]" - island-level: "&bNivel [level]" - warp-to: "&aLlevándote a la isla de [name]" + gui-title: "Top diez" + gui-heading: "[name]: [rank]" + island-level: "Nivel [level]" + warp-to: "Llevándote a la isla de [name]" level-details: above-sea-level-blocks: Bloques sobre el nivel del mar spawners: Spawners underwater-blocks: Bloques debajo del nivel del mar all-blocks: Todos los bloques - no-island: "&c¡Sin isla!" + no-island: "¡Sin isla!" names-island: Isla de [name] syntax: "[name] x [number]" - hint: "&cEscriba /level para ver el recuento de bloques" + hint: "Escriba /level para ver el recuento de bloques" +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -69,27 +97,27 @@ level: el valor del bloque de la mano. gui: titles: - top: "&0&lTop de islas" - detail-panel: "&0&lIsla de [name]" - value-panel: "&0&l Valores de los Bloques" + top: "Top de islas" + detail-panel: "Isla de [name]" + value-panel: " Valores de los Bloques" buttons: island: - empty: "&f&l[name]. lugar" - name: "&f&l[name]" + empty: "[name]. lugar" + name: "[name]" description: |- [owner] [members] [place] [level] owners-island: Isla de [player] - owner: "&7&l Dueño: &r&b[player]" - members-title: "&7&l Miembros:" - member: "&b - [player]" + owner: " Dueño: [player]" + members-title: " Miembros:" + member: " - [player]" unknown: " desconocido" - place: "&7&o [number]. &r&7lugar" - level: "&7 Nivel: &o[number]" + place: " [number]. lugar" + level: " Nivel: [number]" material: - name: "&f&l[number] x [material]" + name: "[number] x [material]" description: |- [description] [count] @@ -97,97 +125,102 @@ level: [calculated] [limit] [id] - id: "&7 ID del bloque: &e[id]" - value: "&7 Valor del bloque: &e[number]" - limit: "&7 Limite de bloques: &e[number]" - count: "&7 Número de bloques: &e[number]" - calculated: "&7 Valor calculado: &e[number]" + id: " ID del bloque: [id]" + value: " Valor del bloque: [number]" + limit: " Limite de bloques: [number]" + count: " Número de bloques: [number]" + calculated: " Valor calculado: [number]" value_blocks: - name: "&f&lTodos los Bloques con Valor" + name: "Todos los Bloques con Valor" description: |- - &7 Mostrar todos los bloques - &7 con valor en la isla. + Mostrar todos los bloques + con valor en la isla. all_blocks: - name: "&f&lTodos los bloques" + name: "Todos los bloques" description: |- - &7 Muestra todos los - &7 bloques en la isla. + Muestra todos los + bloques en la isla. above_sea_level: - name: "&f&lBloques sobre el nivel del mar" + name: "Bloques sobre el nivel del mar" description: |- - &7 Muestra solo bloques - &7 que estén sobre el - &7 nivel del mar. + Muestra solo bloques + que estén sobre el + nivel del mar. underwater: - name: "&f&lBloques debajo del nivel del mar" + name: "Bloques debajo del nivel del mar" description: |- - &7 Muestra solo bloques - &7 que estén debajo del - &7 nivel del mar. + Muestra solo bloques + que estén debajo del + nivel del mar. spawner: - name: "&f&lSpawners" - description: "&7Mostrar solo spawners." - block-name: "&b Spawner" + name: "Spawners" + description: "Mostrar solo spawners." + block-name: " Spawner" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&lOrdenar por nombre" - description: "&7Ordenar todos los bloques por nombre." + name: "Ordenar por nombre" + description: "Ordenar todos los bloques por nombre." value: - name: "&f&lOrdenar por valor" - description: "&7Ordenar todos los bloques por valor." + name: "Ordenar por valor" + description: "Ordenar todos los bloques por valor." count: - name: "&f&lOrdenar por cantidad" - description: "&7Ordenar todos los bloques por cantidad." + name: "Ordenar por cantidad" + description: "Ordenar todos los bloques por cantidad." value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 ID de Bloque: &e [id]" - value: "&7 Valor del Bloque: &e [number]" - underwater: "&7 Por debajo del nivel del mar: &e [number]" - limit: "&7 Límite de bloque: &e [number]" + id: " ID de Bloque: [id]" + value: " Valor del Bloque: [number]" + underwater: " Por debajo del nivel del mar: [number]" + limit: " Límite de bloque: [number]" previous: - name: "&f&lPágina anterior" - description: "&7Cambiar a la página [number]" + name: "Página anterior" + description: "Cambiar a la página [number]" next: - name: "&f&lSiguiente página" - description: "&7Cambiar a la página [number]" + name: "Siguiente página" + description: "Cambiar a la página [number]" search: - name: "&f&l Buscar" + name: " Buscar" description: |- - &7 Buscar un determinado - &7 valor. - search: "&b Valor: [value]" + Buscar un determinado + valor. + search: " Valor: [value]" tips: - click-to-view: "&eClic &7para ver." - click-to-previous: "&eClic &7 para ir a la página anterior." - click-to-next: "&eClic &7 para ir a la siguiente página." - click-to-select: "&eClic &7 para seleccionar." - left-click-to-cycle-up: "&eClic izquierdo &7para ir hacia arriba." - right-click-to-cycle-down: "&eClic derecho &7para ir hacia abajo." - left-click-to-change: "&e Clic Izquierdo &7 para editar." - right-click-to-clear: "&e Clic Derecho &7 para borrar." - click-to-asc: "&e Clic &7 para ordenar de forma creciente." - click-to-desc: "&e Clic &7 para ordenar de forma decreciente." - click-to-warp: "&e Clic &7 para teletransportarse." - click-to-visit: "&e Clic &7 para visitar." - right-click-to-visit: "&e Clic Derecho &7 para visitar." + click-to-view: "Clic para ver." + click-to-previous: "Clic para ir a la página anterior." + click-to-next: "Clic para ir a la siguiente página." + click-to-select: "Clic para seleccionar." + left-click-to-cycle-up: "Clic izquierdo para ir hacia arriba." + right-click-to-cycle-down: "Clic derecho para ir hacia abajo." + left-click-to-change: " Clic Izquierdo para editar." + right-click-to-clear: " Clic Derecho para borrar." + click-to-asc: " Clic para ordenar de forma creciente." + click-to-desc: " Clic para ordenar de forma decreciente." + click-to-warp: " Clic para teletransportarse." + click-to-visit: " Clic para visitar." + right-click-to-visit: " Clic Derecho para visitar." conversations: - prefix: "&l&6[BentoBox]: &r" - no-data: "&cEscriba /level para ver el recuento de bloques." + prefix: "[BentoBox]: " + no-data: "Escriba /level para ver el recuento de bloques." cancel-string: cancelar exit-string: cancelar, salir, abandonar - write-search: "&e Introduce un valor de búsqueda. (Escribe 'cancel' para salir)" - search-updated: "&a Valor de búsqueda actualizado." - cancelled: "&c ¡Conversación cancelada!" - no-value: "&c Ese ítem no tiene valor." - unknown-item: "&c El '[material]' no existe en el juego." - value: "&7 El valor de '[material]' es: &e[value]" - value-underwater: "&7 El valor de '[material]' por debajo del nivel del mar: &e[value]" - empty-hand: "&c No hay bloques en tu mano" - you-have: "&7 Tienes [number] en el último conteo." - you-can-place: "&7 Puedes colocar hasta [number] y que cuenten" + write-search: " Introduce un valor de búsqueda. (Escribe 'cancel' para salir)" + search-updated: " Valor de búsqueda actualizado." + cancelled: " ¡Conversación cancelada!" + no-value: " Ese ítem no tiene valor." + unknown-item: " El '[material]' no existe en el juego." + value: " El valor de '[material]' es: [value]" + value-underwater: " El valor de '[material]' por debajo del nivel del mar: [value]" + empty-hand: " No hay bloques en tu mano" + you-have: " Tienes [number] en el último conteo." + you-can-place: " Puedes colocar hasta [number] y que cuenten" diff --git a/src/main/resources/locales/fr.yml b/src/main/resources/locales/fr.yml index dd9ecb3..27a1bd8 100644 --- a/src/main/resources/locales/fr.yml +++ b/src/main/resources/locales/fr.yml @@ -7,23 +7,23 @@ admin: parameters: " " description: définir le handicap de l'île, généralement le niveau de l'île de départ - changed: "&a le handicap initial de l'île est passé de [number] à [new_number]." - invalid-level: "&c Handicap non valide. Utilisez un nombre entier." + changed: " le handicap initial de l'île est passé de [number] à [new_number]." + invalid-level: " Handicap non valide. Utilisez un nombre entier." levelstatus: description: affiche le nombre d'îles dans la file d'attente pour l'analyse - islands-in-queue: "&a Nombre d'Îles dans la file d'attente: [number]" + islands-in-queue: " Nombre d'Îles dans la file d'attente: [number]" top: description: affiche le top 10 des îles - unknown-world: "&cMonde inconnu." - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: "Monde inconnu." + display: "[rank]. [name] - [level]" remove: description: retire le joueur du top 10 parameters: "" stats: description: "afficher les statistiques des îles sur ce serveur" title: "Statistiques des Îles du Serveur" - world: "&a [name]" - no-data: "&c Aucune donnée à traiter." + world: " [name]" + no-data: " Aucune donnée à traiter." average-level: "Niveau moyen des îles: [number]" median-level: "Niveau médian des îles: [number]" mode-level: "Niveau modal des îles: [number]" @@ -35,23 +35,42 @@ island: level: parameters: "[joueur]" description: calcule le niveau de votre île ou affiche le niveau d'un [joueur] - calculating: "&aCalcul du niveau en cours..." - estimated-wait: "&a Attente estimée: [number] seconds" - in-queue: "&a Vous êtes le numéro [number ] dans la file d'attente" - island-level-is: "&aLe niveau d'île est &b[level]" - required-points-to-next-level: "&a Progression du niveau: &6 [progress]&b /&e [levelcost] &a points" - deaths: "&c([number] morts)" - cooldown: "&cVous devez attendre &b[time] &csecondes avant de pouvoir refaire + calculating: "Calcul du niveau en cours..." + estimated-wait: " Attente estimée: [number] seconds" + in-queue: " Vous êtes le numéro [number ] dans la file d'attente" + island-level-is: "Le niveau d'île est [level]" + required-points-to-next-level: " Progression du niveau: [progress] / [levelcost] points" + deaths: "([number] morts)" + cooldown: "Vous devez attendre [time] secondes avant de pouvoir refaire cette action" - in-progress: "&6 Le calcul du niveau de l'île est en cours ..." - time-out: "&c Le calcul du niveau a pris trop de temps. Veuillez réessayer plus + in-progress: " Le calcul du niveau de l'île est en cours ..." + time-out: " Le calcul du niveau a pris trop de temps. Veuillez réessayer plus tard." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." top: description: affiche le top 10 - gui-title: "&aTop 10" - gui-heading: "&6[name]: &B[rank]" - island-level: "&BNiveau [level]" - warp-to: "&ATéléportation vers l'île de [name]" + gui-title: "Top 10" + gui-heading: "[name]: [rank]" + island-level: "Niveau [level]" + warp-to: "Téléportation vers l'île de [name]" detail: description: "affiche le détail des blocs de votre île" level-details: @@ -59,10 +78,19 @@ island: spawners: Spawners underwater-blocks: Blocs en-dessous du niveau de la mer all-blocks: Total des blocs - no-island: "&c Pas d'île!" + no-island: " Pas d'île!" names-island: île de [name] syntax: "[name] x [number]" - hint: "&c Exécuter level pour voir le rapport des blocs" + hint: " Exécuter level pour voir le rapport des blocs" +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -71,27 +99,27 @@ level: la valeur de l'objet en main. gui: titles: - top: "&0&l Top Islands" - detail-panel: "&0&l [name]'s island" - value-panel: "&0&l Block Values" + top: " Top Islands" + detail-panel: " [name]'s island" + value-panel: " Block Values" buttons: island: - empty: "&f&l [name]. place" - name: "&f&l [name]" + empty: " [name]. place" + name: " [name]" description: |- [owner] [members] [place] [level] owners-island: "[player]'s Island" - owner: "&7&l Propriétaire: &r&b [player]" - members-title: "&7&l Membres:" - member: "&b - [player]" + owner: " Propriétaire: [player]" + members-title: " Membres:" + member: " - [player]" unknown: inconnue - place: "&7&o [number]. &r&7 place" - level: "&7 Level: &o [number]" + place: " [number]. place" + level: " Level: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -99,99 +127,104 @@ level: [calculated] [limit] [id] - id: "&7 Block id: &e [id]" - value: "&7 Block value: &e [number]" - limit: "&7 Block limit: &e [number]" - count: "&7 Nombre de blocs: &e [number]" - calculated: "&7 Valeur calculée: &e [number]" + id: " Block id: [id]" + value: " Block value: [number]" + limit: " Block limit: [number]" + count: " Nombre de blocs: [number]" + calculated: " Valeur calculée: [number]" value_blocks: - name: "&f&l Tous les Blocs avec Valeur" + name: " Tous les Blocs avec Valeur" description: |- - &7 Afficher tous les blocs - &7 avec une valeur sur l'île. + Afficher tous les blocs + avec une valeur sur l'île. all_blocks: - name: "&f&l Tous les blocs" + name: " Tous les blocs" description: |- - &7 Afficher tous les blocs - &7 sur l'île. + Afficher tous les blocs + sur l'île. above_sea_level: - name: "&f&l Blocs au-dessus du niveau de la mer" + name: " Blocs au-dessus du niveau de la mer" description: |- - &7 Afficher uniquement les blocs - &7 qui sont au-dessus du niveau - &7 de la mer. + Afficher uniquement les blocs + qui sont au-dessus du niveau + de la mer. underwater: - name: "&f&l Blocs sous le niveau de la mer" + name: " Blocs sous le niveau de la mer" description: |- - &7 Afficher uniquement les blocs - &7 situés sous le niveau - &7 de la mer. + Afficher uniquement les blocs + situés sous le niveau + de la mer. spawner: - name: "&f&l Spawners" - description: "&7 Afficher uniquement les spawners." - block-name: "&b Spawner" + name: " Spawners" + description: " Afficher uniquement les spawners." + block-name: " Spawner" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&l STrier par nom" - description: "&7 Trier tous les blocs par nom." + name: " STrier par nom" + description: " Trier tous les blocs par nom." value: - name: "&f&l Trier par valeur" - description: "&7 Triez tous les blocs par leur valeur." + name: " Trier par valeur" + description: " Triez tous les blocs par leur valeur." count: - name: "&f&l Trier par nombre" - description: "&7 Trier tous les blocs par leur montant." + name: " Trier par nombre" + description: " Trier tous les blocs par leur montant." value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 Block id: &e [id]" - value: "&7 Block value: &e [number]" - underwater: "&7 Sous le niveau de la mer : &e [number]" - limit: "&7 Block limit: &e [number]" + id: " Block id: [id]" + value: " Block value: [number]" + underwater: " Sous le niveau de la mer : [number]" + limit: " Block limit: [number]" previous: - name: "&f&l Page précédente" - description: "&7 Passer à la page [number]" + name: " Page précédente" + description: " Passer à la page [number]" next: - name: "&f&l Page suivante" - description: "&7 Passer à la page [number]" + name: " Page suivante" + description: " Passer à la page [number]" search: - name: "&f&l Rechercher" - description: "&7 Recherche une valeur \n&7 spécifique." - search: "&b Valeur : [value]" + name: " Rechercher" + description: " Recherche une valeur \n spécifique." + search: " Valeur : [value]" tips: - click-to-view: "&e Cliquez &7 pour afficher." - click-to-previous: "&e Cliquez &7 pour afficher la page précédente." - click-to-next: "&e Cliquez &7 pour afficher la page suivante." - click-to-select: "&e Cliquez &7 pour sélectionner." - left-click-to-cycle-up: "&e Clic gauche &7 pour monter." - right-click-to-cycle-down: "&e Clic droit &7 pour descendre." - left-click-to-change: "&e Clic gauche &7 pour éditer." - right-click-to-clear: "&e Clic droit &7 pour effacer." - click-to-asc: "&e Cliquez &7 pour trier par ordre croissant." - click-to-desc: "&e Cliquez &7 pour trier par ordre décroissant." - click-to-warp: "&e Cliquer &7 to warp." - click-to-visit: "&e Cliquer &7 pour visiter." - right-click-to-visit: "&e Clic droit&7 pour visiter." + click-to-view: " Cliquez pour afficher." + click-to-previous: " Cliquez pour afficher la page précédente." + click-to-next: " Cliquez pour afficher la page suivante." + click-to-select: " Cliquez pour sélectionner." + left-click-to-cycle-up: " Clic gauche pour monter." + right-click-to-cycle-down: " Clic droit pour descendre." + left-click-to-change: " Clic gauche pour éditer." + right-click-to-clear: " Clic droit pour effacer." + click-to-asc: " Cliquez pour trier par ordre croissant." + click-to-desc: " Cliquez pour trier par ordre décroissant." + click-to-warp: " Cliquer to warp." + click-to-visit: " Cliquer pour visiter." + right-click-to-visit: " Clic droit pour visiter." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Niveau d'exécution pour voir le rapport de blocage." + prefix: " [BentoBox]: " + no-data: " Niveau d'exécution pour voir le rapport de blocage." cancel-string: annuler exit-string: annuler, sortir, quitter - write-search: "&e Veuillez entrer une valeur de recherche. (Ecrivez 'cancel' pour + write-search: " Veuillez entrer une valeur de recherche. (Ecrivez 'cancel' pour quitter)" - search-updated: "&a Valeur de recherche mise à jour." - cancelled: "&c Conversation annulée !" - no-value: "&c Cet item n'a aucune valeur." - unknown-item: "&c Le '[material]' n'existe pas dans le jeu." - value: "&7 La valeur de '[material]' est : &e[value]" - value-underwater: "&7 La valeur de '[material]' sous le niveau de la mer : &e[value]" - empty-hand: "&c Il n'y a pas de blocs dans votre main" - you-have: "&7 Vous en avez [number] au dernier décompte." - you-can-place: "&7 Vous pouvez en placer jusqu'à [number] et les faire compter" + search-updated: " Valeur de recherche mise à jour." + cancelled: " Conversation annulée !" + no-value: " Cet item n'a aucune valeur." + unknown-item: " Le '[material]' n'existe pas dans le jeu." + value: " La valeur de '[material]' est : [value]" + value-underwater: " La valeur de '[material]' sous le niveau de la mer : [value]" + empty-hand: " Il n'y a pas de blocs dans votre main" + you-have: " Vous en avez [number] au dernier décompte." + you-can-place: " Vous pouvez en placer jusqu'à [number] et les faire compter" meta: authors: '0': plagoutte diff --git a/src/main/resources/locales/hu.yml b/src/main/resources/locales/hu.yml index 07fc99d..afff3ef 100644 --- a/src/main/resources/locales/hu.yml +++ b/src/main/resources/locales/hu.yml @@ -10,23 +10,23 @@ admin: pl. +10 eltávolít 10 szintet, 30 a hátrányt 30-ra állítja, -20 hozzáad 20 szintet - changed: "&a A kezdeti sziget hátrány változott erről [number] erre [new_number]." - invalid-level: "&c Érvénytelen hátrány. Használj egész számot." + changed: " A kezdeti sziget hátrány változott erről [number] erre [new_number]." + invalid-level: " Érvénytelen hátrány. Használj egész számot." levelstatus: description: megmutatja, hogy hány sziget van a szkennelési sorban - islands-in-queue: "&a Szigetek a sorban: [number]" + islands-in-queue: " Szigetek a sorban: [number]" top: description: Top Tíz lista megtekintése - unknown-world: "&cIsmeretlen világ!" - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: "Ismeretlen világ!" + display: "[rank]. [name] - [level]" remove: description: játékos törlése a Top Tízből parameters: "" stats: description: "sziget statisztikák megjelenítése ezen a szerveren" title: "Szerver Sziget Statisztikák" - world: "&a [name]" - no-data: "&c Nincs adat a feldolgozáshoz." + world: " [name]" + no-data: " Nincs adat a feldolgozáshoz." average-level: "Átlagos sziget szint: [number]" median-level: "Medián sziget szint: [number]" mode-level: "Módusz sziget szint: [number]" @@ -38,32 +38,60 @@ island: level: parameters: "[player]" description: A saját vagy más játékos sziget szintjének kiszámítása - calculating: "&aSziget szint kiszámítása..." - estimated-wait: "&a Becsült várakozás: [number] másodperc" - in-queue: "&a Te vagy a(z) [number] a sorban" - island-level-is: "&aA sziget szint: &b[level]" - required-points-to-next-level: "&a Szint előrehaladás: &6 [progress]&b /&e [levelcost] &a pont" - deaths: "&c([number] halál)" - cooldown: "&cVárnod kell &b[time] &cmásodpercet, hogy újra használhasd." - in-progress: "&6 A sziget szint kiszámítása folyamatban..." - time-out: "&c A szint kiszámítása túl sokáig tartott. Kérjük, próbálja újra később." + calculating: "Sziget szint kiszámítása..." + estimated-wait: " Becsült várakozás: [number] másodperc" + in-queue: " Te vagy a(z) [number] a sorban" + island-level-is: "A sziget szint: [level]" + required-points-to-next-level: " Szint előrehaladás: [progress] / [levelcost] pont" + deaths: "([number] halál)" + cooldown: "Várnod kell [time] másodpercet, hogy újra használhasd." + in-progress: " A sziget szint kiszámítása folyamatban..." + time-out: " A szint kiszámítása túl sokáig tartott. Kérjük, próbálja újra később." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." detail: description: "megmutatja a szigeted blokkjainak részleteit" top: description: Top Tíz lista megtekintése - gui-title: "&aTop Tíz" - gui-heading: "&6[name]: &B[rank]" - island-level: "&BLevel [level]" - warp-to: "&ATeleportálás [name] szigetére." + gui-title: "Top Tíz" + gui-heading: "[name]: [rank]" + island-level: "Level [level]" + warp-to: "Teleportálás [name] szigetére." level-details: above-sea-level-blocks: Tengerszint Feletti Blokkok spawners: Spawner-ek underwater-blocks: Víz Alatti Blokkok all-blocks: Minden Blokk - no-island: "&c Nincs sziget!" + no-island: " Nincs sziget!" names-island: "[name] szigete" syntax: "[name] x [number]" - hint: "&c Futtassa a szintet a blokk jelentés megjelenítéséhez" + hint: " Futtassa a szintet a blokk jelentés megjelenítéséhez" +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -71,27 +99,27 @@ level: description: megmutatja a blokkok értékét. Adja hozzá a 'hand' szót a végéhez a kézben lévő tárgy értékének megjelenítéséhez. gui: titles: - top: "&0&l Top Szigetek" - detail-panel: "&0&l [name] szigete" - value-panel: "&0&l Blokk Értékek" + top: " Top Szigetek" + detail-panel: " [name] szigete" + value-panel: " Blokk Értékek" buttons: island: - empty: '&f&l [name]. hely' - name: '&f&l [name]' + empty: ' [name]. hely' + name: ' [name]' description: |- [owner] [members] [place] [level] owners-island: "[player] szigete" - owner: "&7&l Tulajdonos: &r&b [player]" - members-title: "&7&l Tagok:" - member: "&b - [player]" + owner: " Tulajdonos: [player]" + members-title: " Tagok:" + member: " - [player]" unknown: "ismeretlen" - place: "&7&o [number]. &r&7 hely" - level: "&7 Szint: &o [number]" + place: " [number]. hely" + level: " Szint: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -99,103 +127,108 @@ level: [calculated] [limit] [id] - id: "&7 Blokk azonosító: &e [id]" - value: "&7 Blokk értéke: &e [number]" - limit: "&7 Blokk korlát: &e [number]" - count: "&7 Blokkok száma: &e [number]" - calculated: "&7 Számított érték: &e [number]" + id: " Blokk azonosító: [id]" + value: " Blokk értéke: [number]" + limit: " Blokk korlát: [number]" + count: " Blokkok száma: [number]" + calculated: " Számított érték: [number]" value_blocks: - name: "&f&l Minden Értékes Blokk" + name: " Minden Értékes Blokk" description: |- - &7 Megjelenít minden blokkot - &7 értékkel a szigeten. + Megjelenít minden blokkot + értékkel a szigeten. all_blocks: - name: "&f&l Minden Blokk" + name: " Minden Blokk" description: |- - &7 Megjelenít minden blokkot - &7 a szigeten. + Megjelenít minden blokkot + a szigeten. above_sea_level: - name: "&f&l Tengerszint Feletti Blokkok" + name: " Tengerszint Feletti Blokkok" description: |- - &7 Csak a tengerszint - &7 feletti blokkokat - &7 jeleníti meg. + Csak a tengerszint + feletti blokkokat + jeleníti meg. underwater: - name: "&f&l Tengerszint Alatti Blokkok" + name: " Tengerszint Alatti Blokkok" description: |- - &7 Csak a tengerszint - &7 alatti blokkokat - &7 jeleníti meg. + Csak a tengerszint + alatti blokkokat + jeleníti meg. spawner: - name: "&f&l Spawner-ek" + name: " Spawner-ek" description: |- - &7 Csak spawner-eket jelenít meg. - block-name: "&b Spawner" + Csak spawner-eket jelenít meg. + block-name: " Spawner" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&l Rendezés Név szerint" + name: " Rendezés Név szerint" description: |- - &7 Minden blokkot név szerint rendez. + Minden blokkot név szerint rendez. value: - name: "&f&l Rendezés Érték szerint" + name: " Rendezés Érték szerint" description: |- - &7 Minden blokkot értékük szerint rendez. + Minden blokkot értékük szerint rendez. count: - name: "&f&l Rendezés Mennyiség szerint" + name: " Rendezés Mennyiség szerint" description: |- - &7 Minden blokkot mennyiségük szerint rendez. + Minden blokkot mennyiségük szerint rendez. value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 Blokk azonosító: &e [id]" - value: "&7 Blokk értéke: &e [number]" - underwater: "&7 Tengerszint alatt: &e [number]" - limit: "&7 Blokk korlát: &e [number]" + id: " Blokk azonosító: [id]" + value: " Blokk értéke: [number]" + underwater: " Tengerszint alatt: [number]" + limit: " Blokk korlát: [number]" previous: - name: "&f&l Előző Oldal" + name: " Előző Oldal" description: |- - &7 Váltás [number]. oldalra + Váltás [number]. oldalra next: - name: "&f&l Következő Oldal" + name: " Következő Oldal" description: |- - &7 Váltás [number]. oldalra + Váltás [number]. oldalra search: - name: "&f&l Keresés" + name: " Keresés" description: |- - &7 Keresés egy adott - &7 értékre. - search: "&b Érték: [value]" + Keresés egy adott + értékre. + search: " Érték: [value]" tips: - click-to-view: "&e Kattints &7 a megtekintéshez." - click-to-previous: "&e Kattints &7 az előző oldal megtekintéséhez." - click-to-next: "&e Kattints &7 a következő oldal megtekintéséhez." - click-to-select: "&e Kattints &7 a kiválasztáshoz." - left-click-to-cycle-up: "&e Bal Kattintás &7 a feljebb lépéshez." - right-click-to-cycle-down: "&e Jobb Kattintás &7 a lejjebb lépéshez." - left-click-to-change: "&e Bal Kattintás &7 a szerkesztéshez." - right-click-to-clear: "&e Jobb Kattintás &7 a törléshez." - click-to-asc: "&e Kattints &7 a növekvő sorrendű rendezéshez." - click-to-desc: "&e Kattints &7 a csökkenő sorrendű rendezéshez." - click-to-warp: "&e Kattints &7 a teleportáláshoz." - click-to-visit: "&e Kattints &7 a látogatáshoz." - right-click-to-visit: "&e Jobb Kattintás &7 a látogatáshoz." + click-to-view: " Kattints a megtekintéshez." + click-to-previous: " Kattints az előző oldal megtekintéséhez." + click-to-next: " Kattints a következő oldal megtekintéséhez." + click-to-select: " Kattints a kiválasztáshoz." + left-click-to-cycle-up: " Bal Kattintás a feljebb lépéshez." + right-click-to-cycle-down: " Jobb Kattintás a lejjebb lépéshez." + left-click-to-change: " Bal Kattintás a szerkesztéshez." + right-click-to-clear: " Jobb Kattintás a törléshez." + click-to-asc: " Kattints a növekvő sorrendű rendezéshez." + click-to-desc: " Kattints a csökkenő sorrendű rendezéshez." + click-to-warp: " Kattints a teleportáláshoz." + click-to-visit: " Kattints a látogatáshoz." + right-click-to-visit: " Jobb Kattintás a látogatáshoz." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Futtassa a szintet a blokk jelentés megtekintéséhez." + prefix: " [BentoBox]: " + no-data: " Futtassa a szintet a blokk jelentés megtekintéséhez." cancel-string: mégse exit-string: mégse, kilép, abbahagyja - write-search: "&e Kérjük, adjon meg egy keresési értéket. (Írja be a 'mégse' szót a kilépéshez)" - search-updated: "&a Keresési érték frissítve." - cancelled: "&c Beszélgetés megszakítva!" - no-value: "&c Ennek a tárgynak nincs értéke." - unknown-item: "&c A '[material]' nem létezik a játékban." - value: "&7 A '[material]' értéke: &e[value]" - value-underwater: "&7 A '[material]' értéke tengerszint alatt: &e[value]" - empty-hand: "&c Nincs blokk a kezedben" - you-have: "&7 Az utolsó számláláskor [number] volt nálad." - you-can-place: "&7 Legfeljebb [number] darabot helyezhetsz le és számítanak" + write-search: " Kérjük, adjon meg egy keresési értéket. (Írja be a 'mégse' szót a kilépéshez)" + search-updated: " Keresési érték frissítve." + cancelled: " Beszélgetés megszakítva!" + no-value: " Ennek a tárgynak nincs értéke." + unknown-item: " A '[material]' nem létezik a játékban." + value: " A '[material]' értéke: [value]" + value-underwater: " A '[material]' értéke tengerszint alatt: [value]" + empty-hand: " Nincs blokk a kezedben" + you-have: " Az utolsó számláláskor [number] volt nálad." + you-can-place: " Legfeljebb [number] darabot helyezhetsz le és számítanak" diff --git a/src/main/resources/locales/id.yml b/src/main/resources/locales/id.yml index 2ab4ab5..f0c6574 100644 --- a/src/main/resources/locales/id.yml +++ b/src/main/resources/locales/id.yml @@ -6,23 +6,23 @@ admin: sethandicap: parameters: " " description: mengatur handicap pulau, biasanya level pulau pemula - changed: "&a Handicap pulau awal diubah dari [number] menjadi [new_number]." - invalid-level: "&c Handicap tidak valid. Gunakan angka bulat." + changed: " Handicap pulau awal diubah dari [number] menjadi [new_number]." + invalid-level: " Handicap tidak valid. Gunakan angka bulat." levelstatus: description: menunjukkan berapa banyak pulau dalam antrian untuk pemindaian - islands-in-queue: "&a Pulau di dalam antrian: [number]" + islands-in-queue: " Pulau di dalam antrian: [number]" top: description: menunjukkan daftar sepuluh besar - unknown-world: "&c Dunia tidak ditemukan!" - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: " Dunia tidak ditemukan!" + display: "[rank]. [name] - [level]" remove: description: menghapus pemain dari sepuluh besar parameters: "" stats: description: "tampilkan statistik pulau di server ini" title: "Statistik Pulau Server" - world: "&a [name]" - no-data: "&c Tidak ada data untuk diproses." + world: " [name]" + no-data: " Tidak ada data untuk diproses." average-level: "Rata-rata Level Pulau: [number]" median-level: "Median Level Pulau: [number]" mode-level: "Modus Level Pulau: [number]" @@ -34,22 +34,41 @@ island: level: parameters: "[player]" description: hitung level pulau kamu atau melihat level [player] - calculating: "&a Menghitung level..." - estimated-wait: "&a Perkiraan menunggu: [number] detik" - in-queue: "&a Kamu berada pada antrian nomor [number]" - island-level-is: "&a Level pulau adalah &b[level]" - required-points-to-next-level: "&a Kemajuan level: &6 [progress]&b /&e [levelcost] &a poin" - deaths: "&c([number] kematian)" - cooldown: "&c Kamu harus menunggu &b[time] &c detik sebelum kamu dapat melakukannya + calculating: " Menghitung level..." + estimated-wait: " Perkiraan menunggu: [number] detik" + in-queue: " Kamu berada pada antrian nomor [number]" + island-level-is: " Level pulau adalah [level]" + required-points-to-next-level: " Kemajuan level: [progress] / [levelcost] poin" + deaths: "([number] kematian)" + cooldown: " Kamu harus menunggu [time] detik sebelum kamu dapat melakukannya lagi" - in-progress: "&6 Perhitungan level pulau sedang dijalankan..." - time-out: "&c Perhitungan level pulau terlalu lama. Coba lagi nanti." + in-progress: " Perhitungan level pulau sedang dijalankan..." + time-out: " Perhitungan level pulau terlalu lama. Coba lagi nanti." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." top: description: menunjukkan Sepuluh Besar - gui-title: "&a Sepuluh Besar" - gui-heading: "&6[name]: &B[rank]" - island-level: "&b Level [level]" - warp-to: "&A Warp ke pulau [name]" + gui-title: " Sepuluh Besar" + gui-heading: "[name]: [rank]" + island-level: " Level [level]" + warp-to: " Warp ke pulau [name]" detail: description: "menampilkan detail blok pulau kamu" level-details: @@ -57,10 +76,19 @@ island: spawners: Spawner underwater-blocks: Blok di bawah permukaan laut all-blocks: Semua blok - no-island: "&c Tidak ada pulau!" + no-island: " Tidak ada pulau!" names-island: Pulau [name] syntax: "[name] x [number]" - hint: "&c Jalankan perintah level untuk melihat laporan blok" + hint: " Jalankan perintah level untuk melihat laporan blok" +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -69,27 +97,27 @@ level: nilai item di tangan. gui: titles: - top: "&0&l Pulau Terbaik" - detail-panel: "&0&l Pulau [name]" - value-panel: "&0&l Nilai Blok" + top: " Pulau Terbaik" + detail-panel: " Pulau [name]" + value-panel: " Nilai Blok" buttons: island: - empty: "&f&l [name]. place" - name: "&f&l [name]" + empty: " [name]. place" + name: " [name]" description: |- [owner] [members] [place] [level] owners-island: Pulau [player] - owner: "&7&l Pemilik: &r&b [player]" - members-title: "&7&l Anggota:" - member: "&b - [player]" + owner: " Pemilik: [player]" + members-title: " Anggota:" + member: " - [player]" unknown: tidak diketahui - place: "&r&7Peringkat &7&o [number]." - level: "&7 Level: &o [number]" + place: "Peringkat [number]." + level: " Level: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -97,97 +125,102 @@ level: [calculated] [limit] [id] - id: "&7 Id blok: &e [id]" - value: "&7 Nilai blok: &e [number]" - limit: "&7 Batas blok: &e [number]" - count: "&7 Jumlah blok: &e [number]" - calculated: "&7 Nilai yang dihitung: &e [number]" + id: " Id blok: [id]" + value: " Nilai blok: [number]" + limit: " Batas blok: [number]" + count: " Jumlah blok: [number]" + calculated: " Nilai yang dihitung: [number]" value_blocks: - name: "&f&l Semua Blok Bernilai" + name: " Semua Blok Bernilai" description: |- - &7 Tampilkan semua blok - &7 yang bernilai di pulau. + Tampilkan semua blok + yang bernilai di pulau. all_blocks: - name: "&f&l Semua blok" + name: " Semua blok" description: |- - &7 Tampilkan semua blok - &7 di pulau. + Tampilkan semua blok + di pulau. above_sea_level: - name: "&f&l Blok Diatas Permukaan Laut" + name: " Blok Diatas Permukaan Laut" description: |- - &7 Hanya mengampilkan blok - &7 yang berada di atas - &7 permukaan laut. + Hanya mengampilkan blok + yang berada di atas + permukaan laut. underwater: - name: "&f&l Blok Di bawah Permukaan Laut" + name: " Blok Di bawah Permukaan Laut" description: |- - &7 Hanya menampilkan blok - &7 yang berada di bawah - &7 permukaan laut. + Hanya menampilkan blok + yang berada di bawah + permukaan laut. spawner: - name: "&f&l Spawner" - description: "&7 Hanya tampilkan spawner." - block-name: "&b Spawner" + name: " Spawner" + description: " Hanya tampilkan spawner." + block-name: " Spawner" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&l Urut berdasarkan Nama" - description: "&7 Mengurutkan semua blok berdasarkan nama." + name: " Urut berdasarkan Nama" + description: " Mengurutkan semua blok berdasarkan nama." value: - name: "&f&l Urut berdasarkan Nilai" - description: "&7 Mengurutkan semua blok berdasarkan nilainya." + name: " Urut berdasarkan Nilai" + description: " Mengurutkan semua blok berdasarkan nilainya." count: - name: "&f&l Urut berdasarkan Jumlah" - description: "&7 Mengurutkan semua blok berdasarkan jumlahnya." + name: " Urut berdasarkan Jumlah" + description: " Mengurutkan semua blok berdasarkan jumlahnya." value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 Id blok: &e [id]" - value: "&7 Nilai blok: &e [number]" - underwater: "&7 Dibawah permukaan laut: &e [number]" - limit: "&7 Batas block: &e [number]" + id: " Id blok: [id]" + value: " Nilai blok: [number]" + underwater: " Dibawah permukaan laut: [number]" + limit: " Batas block: [number]" previous: - name: "&f&l Halaman sebelumnya" - description: "&7 Beralih ke halaman [number]" + name: " Halaman sebelumnya" + description: " Beralih ke halaman [number]" next: - name: "&f&l Halaman selanjutnya" - description: "&7 Beralih ke halaman [number]" + name: " Halaman selanjutnya" + description: " Beralih ke halaman [number]" search: - name: "&f&l Cari" + name: " Cari" description: |- - &7 Mencari nilai yang - &7 spesifik. - search: "&b Nilai: [value]" + Mencari nilai yang + spesifik. + search: " Nilai: [value]" tips: - click-to-view: "&e Klik &7 untuk melihat." - click-to-previous: "&e Klik &7 untuk melihat halaman sebelumnya." - click-to-next: "&e Klik &7 untuk melihat halaman selanjutnya." - click-to-select: "&e Klik &7 untuk memilih." - left-click-to-cycle-up: "&e Klik Kiri &7 untuk memutar ke atas." - right-click-to-cycle-down: "&e Klik Kanan &7 memutar ke bawah." - left-click-to-change: "&e Klik Kiri &7 untuk mengubah." - right-click-to-clear: "&e Klik Kanan &7 untuk membersihkan." - click-to-asc: "&e Klik &7 untuk mengurutkan dalam urutan menaik." - click-to-desc: "&e Klik &7 untuk mengurutkan dalam urutan menurun." - click-to-warp: "&e Klik &7 untuk warp." - click-to-visit: "&e Klik &7 untuk mengunjungi." - right-click-to-visit: "&e Klik Kanan &7 untuk mengunjungi." + click-to-view: " Klik untuk melihat." + click-to-previous: " Klik untuk melihat halaman sebelumnya." + click-to-next: " Klik untuk melihat halaman selanjutnya." + click-to-select: " Klik untuk memilih." + left-click-to-cycle-up: " Klik Kiri untuk memutar ke atas." + right-click-to-cycle-down: " Klik Kanan memutar ke bawah." + left-click-to-change: " Klik Kiri untuk mengubah." + right-click-to-clear: " Klik Kanan untuk membersihkan." + click-to-asc: " Klik untuk mengurutkan dalam urutan menaik." + click-to-desc: " Klik untuk mengurutkan dalam urutan menurun." + click-to-warp: " Klik untuk warp." + click-to-visit: " Klik untuk mengunjungi." + right-click-to-visit: " Klik Kanan untuk mengunjungi." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Jalankan perintah level untuk melihat laporan blok" + prefix: " [BentoBox]: " + no-data: " Jalankan perintah level untuk melihat laporan blok" cancel-string: batal exit-string: batal, keluar, berhenti - write-search: "&e Tolong masukkan pencarian nilai. (Ketik 'batal' untuk keluar)" - search-updated: "&a Nilai pencarian diperbarui." - cancelled: "&c Percakapan dibatalkan!" - no-value: "&c Item itu tidak ada nilai." - unknown-item: "&c '[material]' tidak ada di dalam permainan." - value: "&7 Nilai dari '[material]' adalah: &e[value]" - value-underwater: "&7Nilai dari '[material]' di bawah permukaan laut: &e[value]" - empty-hand: "&c Tidak ada blok di tangan mu" - you-have: "&7 Kamu memiliki [number] pada hitungan terakhir." - you-can-place: "&7 Kamu dapat menempatkan hingga [number] dan membuatnya terhitung" + write-search: " Tolong masukkan pencarian nilai. (Ketik 'batal' untuk keluar)" + search-updated: " Nilai pencarian diperbarui." + cancelled: " Percakapan dibatalkan!" + no-value: " Item itu tidak ada nilai." + unknown-item: " '[material]' tidak ada di dalam permainan." + value: " Nilai dari '[material]' adalah: [value]" + value-underwater: "Nilai dari '[material]' di bawah permukaan laut: [value]" + empty-hand: " Tidak ada blok di tangan mu" + you-have: " Kamu memiliki [number] pada hitungan terakhir." + you-can-place: " Kamu dapat menempatkan hingga [number] dan membuatnya terhitung" diff --git a/src/main/resources/locales/ko.yml b/src/main/resources/locales/ko.yml index d29f651..6cbb516 100644 --- a/src/main/resources/locales/ko.yml +++ b/src/main/resources/locales/ko.yml @@ -10,23 +10,23 @@ admin: 예. +10은 레벨 10을 제거하고, 30은 핸디캡을 30으로 설정하고, -20은 레벨 20을 추가합니다 - changed: "&a 초기 섬 핸디캡이 [number]에서 [new_number](으)로 변경되었습니다." - invalid-level: "&c 잘못된 핸디캡입니다. 정수를 사용하세요." + changed: " 초기 섬 핸디캡이 [number]에서 [new_number](으)로 변경되었습니다." + invalid-level: " 잘못된 핸디캡입니다. 정수를 사용하세요." levelstatus: description: 스캔 대기열에 있는 섬 수를 표시합니다 - islands-in-queue: "&a 대기열에 있는 섬: [number]" + islands-in-queue: " 대기열에 있는 섬: [number]" top: description: 상위 10개 목록을 표시합니다 - unknown-world: "&c 알 수 없는 세계입니다!" - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: " 알 수 없는 세계입니다!" + display: "[rank]. [name] - [level]" remove: description: 탑 10에서 플레이어를 제거합니다 parameters: "<플레이어>" stats: description: "이 서버의 섬 통계를 표시합니다" title: "서버 섬 통계" - world: "&a [name]" - no-data: "&c 처리할 데이터가 없습니다." + world: " [name]" + no-data: " 처리할 데이터가 없습니다." average-level: "평균 섬 레벨: [number]" median-level: "중앙값 섬 레벨: [number]" mode-level: "최빈값 섬 레벨: [number]" @@ -38,32 +38,60 @@ island: level: parameters: "[플레이어]" description: 섬 레벨을 계산하거나 [플레이어]의 섬 레벨을 보여줍니다 - calculating: "&a 계산 중..." - estimated-wait: "&a 예상 대기 시간: [number]초" - in-queue: "&a 대기열에서 [number]번째입니다" - island-level-is: "&a 섬 레벨은 &b[level]입니다" - required-points-to-next-level: "&a 레벨 진행: &6 [progress]&b /&e [levelcost] &a 포인트" - deaths: "&c ([number] 사망)" - cooldown: "&c 다시 사용하려면 &b[time]초 &c를 기다려야 합니다." - in-progress: "&6 섬 레벨 계산이 진행 중입니다..." - time-out: "&c 레벨 계산이 너무 오래 걸렸습니다. 나중에 다시 시도해 주세요." + calculating: " 계산 중..." + estimated-wait: " 예상 대기 시간: [number]초" + in-queue: " 대기열에서 [number]번째입니다" + island-level-is: " 섬 레벨은 [level]입니다" + required-points-to-next-level: " 레벨 진행: [progress] / [levelcost] 포인트" + deaths: " ([number] 사망)" + cooldown: " 다시 사용하려면 [time]초 를 기다려야 합니다." + in-progress: " 섬 레벨 계산이 진행 중입니다..." + time-out: " 레벨 계산이 너무 오래 걸렸습니다. 나중에 다시 시도해 주세요." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." detail: description: "섬 블록의 세부 정보를 표시합니다" top: description: 탑 10을 보여줍니다 - gui-title: "&a 탑 10" - gui-heading: "&6 [name]: &B[rank]" - island-level: "&b 레벨 [level]" - warp-to: "&a [name]님의 섬으로 이동 중입니다..." + gui-title: " 탑 10" + gui-heading: " [name]: [rank]" + island-level: " 레벨 [level]" + warp-to: " [name]님의 섬으로 이동 중입니다..." level-details: above-sea-level-blocks: 해발 블록 spawners: 스포너 underwater-blocks: 수중 블록 all-blocks: 모든 블록 - no-island: "&c 섬이 없습니다." + no-island: " 섬이 없습니다." names-island: "[name]의 섬" syntax: "[name] x [number]" - hint: "&c 블록 보고서를 보려면 level을 실행하세요." + hint: " 블록 보고서를 보려면 level을 실행하세요." +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -71,27 +99,27 @@ level: description: 블록의 가치를 표시합니다. 손에 든 아이템의 가치를 표시하려면 끝에 'hand'를 추가하세요. gui: titles: - top: "&0&l 탑 섬" - detail-panel: "&0&l [name]의 섬" - value-panel: "&0&l 블록 가치" + top: " 탑 섬" + detail-panel: " [name]의 섬" + value-panel: " 블록 가치" buttons: island: - empty: '&f&l [name]. 위치' - name: '&f&l [name]' + empty: ' [name]. 위치' + name: ' [name]' description: |- [owner] [members] [place] [level] owners-island: "[player]의 섬" - owner: "&7&l 소유자: &r&b [player]" - members-title: "&7&l 멤버:" - member: "&b - [player]" + owner: " 소유자: [player]" + members-title: " 멤버:" + member: " - [player]" unknown: "알 수 없음" - place: "&7&o [number]. &r&7 위치" - level: "&7 레벨: &o [number]" + place: " [number]. 위치" + level: " 레벨: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -99,101 +127,106 @@ level: [calculated] [limit] [id] - id: "&7 블록 ID: &e [id]" - value: "&7 블록 가치: &e [number]" - limit: "&7 블록 제한: &e [number]" - count: "&7 블록 수: &e [number]" - calculated: "&7 계산된 가치: &e [number]" + id: " 블록 ID: [id]" + value: " 블록 가치: [number]" + limit: " 블록 제한: [number]" + count: " 블록 수: [number]" + calculated: " 계산된 가치: [number]" value_blocks: - name: "&f&l 가치 있는 모든 블록" + name: " 가치 있는 모든 블록" description: |- - &7 섬에서 가치 있는 - &7 모든 블록을 표시합니다. + 섬에서 가치 있는 + 모든 블록을 표시합니다. all_blocks: - name: "&f&l 모든 블록" + name: " 모든 블록" description: |- - &7 섬의 모든 블록을 - &7 표시합니다. + 섬의 모든 블록을 + 표시합니다. above_sea_level: - name: "&f&l 해수면 위의 블록" + name: " 해수면 위의 블록" description: |- - &7 해수면 위에 있는 - &7 블록만 표시합니다. + 해수면 위에 있는 + 블록만 표시합니다. underwater: - name: "&f&l 해수면 아래의 블록" + name: " 해수면 아래의 블록" description: |- - &7 해수면 아래에 있는 - &7 블록만 표시합니다. + 해수면 아래에 있는 + 블록만 표시합니다. spawner: - name: "&f&l 스포너" + name: " 스포너" description: |- - &7 스포너만 표시합니다. - block-name: "&b 스포너" + 스포너만 표시합니다. + block-name: " 스포너" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&l 이름으로 정렬" + name: " 이름으로 정렬" description: |- - &7 모든 블록을 이름으로 정렬합니다. + 모든 블록을 이름으로 정렬합니다. value: - name: "&f&l 가치로 정렬" + name: " 가치로 정렬" description: |- - &7 모든 블록을 가치로 정렬합니다. + 모든 블록을 가치로 정렬합니다. count: - name: "&f&l 개수로 정렬" + name: " 개수로 정렬" description: |- - &7 모든 블록을 개수로 정렬합니다. + 모든 블록을 개수로 정렬합니다. value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 블록 ID: &e [id]" - value: "&7 블록 가치: &e [number]" - underwater: "&7 해수면 아래: &e [number]" - limit: "&7 블록 제한: &e [number]" + id: " 블록 ID: [id]" + value: " 블록 가치: [number]" + underwater: " 해수면 아래: [number]" + limit: " 블록 제한: [number]" previous: - name: "&f&l 이전 페이지" + name: " 이전 페이지" description: |- - &7 [number] 페이지로 이동 + [number] 페이지로 이동 next: - name: "&f&l 다음 페이지" + name: " 다음 페이지" description: |- - &7 [number] 페이지로 이동 + [number] 페이지로 이동 search: - name: "&f&l 검색" + name: " 검색" description: |- - &7 특정 값을 - &7 검색합니다. - search: "&b 값: [value]" + 특정 값을 + 검색합니다. + search: " 값: [value]" tips: - click-to-view: "&e 클릭 &7 하여 보기." - click-to-previous: "&e 클릭 &7 하여 이전 페이지 보기." - click-to-next: "&e 클릭 &7 하여 다음 페이지 보기." - click-to-select: "&e 클릭 &7 하여 선택." - left-click-to-cycle-up: "&e 왼쪽 클릭 &7 하여 위로." - right-click-to-cycle-down: "&e 오른쪽 클릭 &7 하여 아래로." - left-click-to-change: "&e 왼쪽 클릭 &7 하여 편집." - right-click-to-clear: "&e 오른쪽 클릭 &7 하여 지우기." - click-to-asc: "&e 클릭 &7 하여 오름차순 정렬." - click-to-desc: "&e 클릭 &7 하여 내림차순 정렬." - click-to-warp: "&e 클릭 &7 하여 워프." - click-to-visit: "&e 클릭 &7 하여 방문." - right-click-to-visit: "&e 오른쪽 클릭 &7 하여 방문." + click-to-view: " 클릭 하여 보기." + click-to-previous: " 클릭 하여 이전 페이지 보기." + click-to-next: " 클릭 하여 다음 페이지 보기." + click-to-select: " 클릭 하여 선택." + left-click-to-cycle-up: " 왼쪽 클릭 하여 위로." + right-click-to-cycle-down: " 오른쪽 클릭 하여 아래로." + left-click-to-change: " 왼쪽 클릭 하여 편집." + right-click-to-clear: " 오른쪽 클릭 하여 지우기." + click-to-asc: " 클릭 하여 오름차순 정렬." + click-to-desc: " 클릭 하여 내림차순 정렬." + click-to-warp: " 클릭 하여 워프." + click-to-visit: " 클릭 하여 방문." + right-click-to-visit: " 오른쪽 클릭 하여 방문." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c 블록 보고서를 보려면 level을 실행하세요." + prefix: " [BentoBox]: " + no-data: " 블록 보고서를 보려면 level을 실행하세요." cancel-string: 취소 exit-string: 취소, 종료, 나가기 - write-search: "&e 검색 값을 입력하세요. ('취소' 입력으로 종료)" - search-updated: "&a 검색 값이 업데이트되었습니다." - cancelled: "&c 대화가 취소되었습니다!" - no-value: "&c 이 아이템에는 가치가 없습니다." - unknown-item: "&c '[material]'은 게임에 존재하지 않습니다." - value: "&7 '[material]'의 가치는: &e[value]" - value-underwater: "&7 '[material]'의 해수면 아래 가치: &e[value]" - empty-hand: "&c 손에 블록이 없습니다" - you-have: "&7 마지막 계산 시 [number]개 있었습니다." - you-can-place: "&7 최대 [number]개까지 배치하면 계산됩니다" + write-search: " 검색 값을 입력하세요. ('취소' 입력으로 종료)" + search-updated: " 검색 값이 업데이트되었습니다." + cancelled: " 대화가 취소되었습니다!" + no-value: " 이 아이템에는 가치가 없습니다." + unknown-item: " '[material]'은 게임에 존재하지 않습니다." + value: " '[material]'의 가치는: [value]" + value-underwater: " '[material]'의 해수면 아래 가치: [value]" + empty-hand: " 손에 블록이 없습니다" + you-have: " 마지막 계산 시 [number]개 있었습니다." + you-can-place: " 최대 [number]개까지 배치하면 계산됩니다" diff --git a/src/main/resources/locales/lv.yml b/src/main/resources/locales/lv.yml index 69a3b98..5792196 100644 --- a/src/main/resources/locales/lv.yml +++ b/src/main/resources/locales/lv.yml @@ -10,23 +10,23 @@ admin: piem. +10 noņem 10 līmeņus, 30 iestata handicap uz 30, -20 pievieno 20 līmeņus - changed: "&a Sākuma salas handicap mainīts no [number] uz [new_number]." - invalid-level: "&c Nederīgs handicap. Izmanto veselu skaitli." + changed: " Sākuma salas handicap mainīts no [number] uz [new_number]." + invalid-level: " Nederīgs handicap. Izmanto veselu skaitli." levelstatus: description: rāda, cik salu ir skenēšanas rindā - islands-in-queue: "&a Salas rindā: [number]" + islands-in-queue: " Salas rindā: [number]" top: description: rādīt labākās 10 salas - display: "&f[rank]. &a[name] &7- &b[level]" - unknown-world: "&c Nezināma pasaule!" + display: "[rank]. [name] - [level]" + unknown-world: " Nezināma pasaule!" remove: description: noņemt spēlētāju no labāko desmit saraksta parameters: "" stats: description: "rādīt salas statistiku šajā serverī" title: "Servera Salas Statistika" - world: "&a [name]" - no-data: "&c Nav datu apstrādei." + world: " [name]" + no-data: " Nav datu apstrādei." average-level: "Vidējais salas līmenis: [number]" median-level: "Mediānais salas līmenis: [number]" mode-level: "Biežākais salas līmenis: [number]" @@ -36,34 +36,62 @@ admin: islands: "salas" island: level: - calculating: "&a Aprēķina līmeni..." - cooldown: "&c Tev ir jāuzgaida &b[time] &c sekundes, lai vēlreiz aprēķinātu salas līmeni!" - deaths: "&c ([number] nāves)" + calculating: " Aprēķina līmeni..." + cooldown: " Tev ir jāuzgaida [time] sekundes, lai vēlreiz aprēķinātu salas līmeni!" + deaths: " ([number] nāves)" description: aprēķina tavas salas līmeni, vai parāda spēlētāja [player] līmeni - island-level-is: "&a Salas līmenis ir &b[level]" + island-level-is: " Salas līmenis ir [level]" parameters: "[player]" - estimated-wait: "&a Paredzamais gaidīšanas laiks: [number] sekundes" - in-queue: "&a Tu esi numurs [number] rindā" - required-points-to-next-level: "&a Līmeņa progress: &6 [progress]&b /&e [levelcost] &a punkti" - in-progress: "&6 Salas līmeņa aprēķins notiek..." - time-out: "&c Līmeņa aprēķins ilga pārāk ilgi. Lūdzu, mēģini vēlāk." + estimated-wait: " Paredzamais gaidīšanas laiks: [number] sekundes" + in-queue: " Tu esi numurs [number] rindā" + required-points-to-next-level: " Līmeņa progress: [progress] / [levelcost] punkti" + in-progress: " Salas līmeņa aprēķins notiek..." + time-out: " Līmeņa aprēķins ilga pārāk ilgi. Lūdzu, mēģini vēlāk." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." detail: description: "rāda tavas salas bloku detaļas" top: description: rādīt labākos 10 - gui-heading: "&6[name]: &B[rank]" - gui-title: "&a Labākie 10" - island-level: "&b Līmenis [level]" - warp-to: "&a Pārvietojas uz [name] salu." + gui-heading: "[name]: [rank]" + gui-title: " Labākie 10" + island-level: " Līmenis [level]" + warp-to: " Pārvietojas uz [name] salu." level-details: above-sea-level-blocks: Bloki virs jūras līmeņa spawners: Spawners underwater-blocks: Zemūdens bloki all-blocks: Visi bloki - no-island: "&c Nav salas!" + no-island: " Nav salas!" names-island: "[name] sala" syntax: "[name] x [number]" - hint: "&c Palaid level, lai redzētu bloku pārskatu" + hint: " Palaid level, lai redzētu bloku pārskatu" +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -71,27 +99,27 @@ level: description: rāda bloku vērtības. Pievieno 'hand' beigās, lai rādītu rokā esošā priekšmeta vērtību. gui: titles: - top: "&0&l Top Salas" - detail-panel: "&0&l [name] sala" - value-panel: "&0&l Bloku Vērtības" + top: " Top Salas" + detail-panel: " [name] sala" + value-panel: " Bloku Vērtības" buttons: island: - empty: '&f&l [name]. vieta' - name: '&f&l [name]' + empty: ' [name]. vieta' + name: ' [name]' description: |- [owner] [members] [place] [level] owners-island: "[player] sala" - owner: "&7&l Īpašnieks: &r&b [player]" - members-title: "&7&l Dalībnieki:" - member: "&b - [player]" + owner: " Īpašnieks: [player]" + members-title: " Dalībnieki:" + member: " - [player]" unknown: "nezināms" - place: "&7&o [number]. &r&7 vieta" - level: "&7 Līmenis: &o [number]" + place: " [number]. vieta" + level: " Līmenis: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -99,103 +127,108 @@ level: [calculated] [limit] [id] - id: "&7 Bloka ID: &e [id]" - value: "&7 Bloka vērtība: &e [number]" - limit: "&7 Bloka limits: &e [number]" - count: "&7 Bloku skaits: &e [number]" - calculated: "&7 Aprēķinātā vērtība: &e [number]" + id: " Bloka ID: [id]" + value: " Bloka vērtība: [number]" + limit: " Bloka limits: [number]" + count: " Bloku skaits: [number]" + calculated: " Aprēķinātā vērtība: [number]" value_blocks: - name: "&f&l Visi Bloki ar Vērtību" + name: " Visi Bloki ar Vērtību" description: |- - &7 Rādīt visus blokus - &7 ar vērtību salā. + Rādīt visus blokus + ar vērtību salā. all_blocks: - name: "&f&l Visi Bloki" + name: " Visi Bloki" description: |- - &7 Rādīt visus blokus - &7 salā. + Rādīt visus blokus + salā. above_sea_level: - name: "&f&l Bloki virs jūras līmeņa" + name: " Bloki virs jūras līmeņa" description: |- - &7 Rādīt tikai blokus - &7 kas atrodas virs - &7 jūras līmeņa. + Rādīt tikai blokus + kas atrodas virs + jūras līmeņa. underwater: - name: "&f&l Bloki zem jūras līmeņa" + name: " Bloki zem jūras līmeņa" description: |- - &7 Rādīt tikai blokus - &7 kas atrodas zem - &7 jūras līmeņa. + Rādīt tikai blokus + kas atrodas zem + jūras līmeņa. spawner: - name: "&f&l Spawners" + name: " Spawners" description: |- - &7 Rādīt tikai spawnerus. - block-name: "&b Spawner" + Rādīt tikai spawnerus. + block-name: " Spawner" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&l Kārtot pēc Nosaukuma" + name: " Kārtot pēc Nosaukuma" description: |- - &7 Kārtot visus blokus pēc nosaukuma. + Kārtot visus blokus pēc nosaukuma. value: - name: "&f&l Kārtot pēc Vērtības" + name: " Kārtot pēc Vērtības" description: |- - &7 Kārtot visus blokus pēc vērtības. + Kārtot visus blokus pēc vērtības. count: - name: "&f&l Kārtot pēc Skaita" + name: " Kārtot pēc Skaita" description: |- - &7 Kārtot visus blokus pēc skaita. + Kārtot visus blokus pēc skaita. value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 Bloka ID: &e [id]" - value: "&7 Bloka vērtība: &e [number]" - underwater: "&7 Zem jūras līmeņa: &e [number]" - limit: "&7 Bloka limits: &e [number]" + id: " Bloka ID: [id]" + value: " Bloka vērtība: [number]" + underwater: " Zem jūras līmeņa: [number]" + limit: " Bloka limits: [number]" previous: - name: "&f&l Iepriekšējā Lapa" + name: " Iepriekšējā Lapa" description: |- - &7 Pāriet uz lapu [number] + Pāriet uz lapu [number] next: - name: "&f&l Nākamā Lapa" + name: " Nākamā Lapa" description: |- - &7 Pāriet uz lapu [number] + Pāriet uz lapu [number] search: - name: "&f&l Meklēt" + name: " Meklēt" description: |- - &7 Meklēt konkrētu - &7 vērtību. - search: "&b Vērtība: [value]" + Meklēt konkrētu + vērtību. + search: " Vērtība: [value]" tips: - click-to-view: "&e Klikšķini &7 lai skatītu." - click-to-previous: "&e Klikšķini &7 lai skatītu iepriekšējo lapu." - click-to-next: "&e Klikšķini &7 lai skatītu nākamo lapu." - click-to-select: "&e Klikšķini &7 lai izvēlētos." - left-click-to-cycle-up: "&e Kreisais Klikšķis &7 lai celtu." - right-click-to-cycle-down: "&e Labais Klikšķis &7 lai nolaistu." - left-click-to-change: "&e Kreisais Klikšķis &7 lai rediģētu." - right-click-to-clear: "&e Labais Klikšķis &7 lai notīrītu." - click-to-asc: "&e Klikšķini &7 lai kārtotu augošā secībā." - click-to-desc: "&e Klikšķini &7 lai kārtotu dilstošā secībā." - click-to-warp: "&e Klikšķini &7 lai teleportētos." - click-to-visit: "&e Klikšķini &7 lai apmeklētu." - right-click-to-visit: "&e Labais Klikšķis &7 lai apmeklētu." + click-to-view: " Klikšķini lai skatītu." + click-to-previous: " Klikšķini lai skatītu iepriekšējo lapu." + click-to-next: " Klikšķini lai skatītu nākamo lapu." + click-to-select: " Klikšķini lai izvēlētos." + left-click-to-cycle-up: " Kreisais Klikšķis lai celtu." + right-click-to-cycle-down: " Labais Klikšķis lai nolaistu." + left-click-to-change: " Kreisais Klikšķis lai rediģētu." + right-click-to-clear: " Labais Klikšķis lai notīrītu." + click-to-asc: " Klikšķini lai kārtotu augošā secībā." + click-to-desc: " Klikšķini lai kārtotu dilstošā secībā." + click-to-warp: " Klikšķini lai teleportētos." + click-to-visit: " Klikšķini lai apmeklētu." + right-click-to-visit: " Labais Klikšķis lai apmeklētu." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Palaid level, lai redzētu bloku pārskatu." + prefix: " [BentoBox]: " + no-data: " Palaid level, lai redzētu bloku pārskatu." cancel-string: atcelt exit-string: atcelt, iziet, pamest - write-search: "&e Lūdzu ievadi meklēšanas vērtību. (Raksti 'atcelt' lai izietu)" - search-updated: "&a Meklēšanas vērtība atjaunināta." - cancelled: "&c Saruna atcelta!" - no-value: "&c Šim priekšmetam nav vērtības." - unknown-item: "&c '[material]' spēlē nepastāv." - value: "&7 '[material]' vērtība ir: &e[value]" - value-underwater: "&7 '[material]' vērtība zem jūras līmeņa: &e[value]" - empty-hand: "&c Rokās nav bloku" - you-have: "&7 Pēdējā skaitīšanā tev bija [number]." - you-can-place: "&7 Vari novietot līdz [number] un tie tiks skaitīti" + write-search: " Lūdzu ievadi meklēšanas vērtību. (Raksti 'atcelt' lai izietu)" + search-updated: " Meklēšanas vērtība atjaunināta." + cancelled: " Saruna atcelta!" + no-value: " Šim priekšmetam nav vērtības." + unknown-item: " '[material]' spēlē nepastāv." + value: " '[material]' vērtība ir: [value]" + value-underwater: " '[material]' vērtība zem jūras līmeņa: [value]" + empty-hand: " Rokās nav bloku" + you-have: " Pēdējā skaitīšanā tev bija [number]." + you-can-place: " Vari novietot līdz [number] un tie tiks skaitīti" diff --git a/src/main/resources/locales/nl.yml b/src/main/resources/locales/nl.yml index 5b1a22e..6fe42e4 100644 --- a/src/main/resources/locales/nl.yml +++ b/src/main/resources/locales/nl.yml @@ -7,23 +7,23 @@ admin: parameters: " " description: stel handicap in voor het eiland, normaal gesproken het level van het starter eiland. - changed: "&a Initiële handicap is veranderd van [number] naar [new_number]." - invalid-level: "&c Ongeldige handicap. Gebruik een getal." + changed: " Initiële handicap is veranderd van [number] naar [new_number]." + invalid-level: " Ongeldige handicap. Gebruik een getal." levelstatus: description: laat zien hoeveel eilanden er in de wachtrij staan voor het scannen - islands-in-queue: "&a Aantal eilanden in de wachtrij: [number]" + islands-in-queue: " Aantal eilanden in de wachtrij: [number]" top: description: Laat de top tien zien - unknown-world: "&c Ongeldige wereld!" - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: " Ongeldige wereld!" + display: "[rank]. [name] - [level]" remove: description: verwijder speler van de top tien parameters: "" stats: description: "toon statistieken van eilanden op deze server" title: "Server Eiland Statistieken" - world: "&a [name]" - no-data: "&c Geen gegevens om te verwerken." + world: " [name]" + no-data: " Geen gegevens om te verwerken." average-level: "Gemiddeld eilandniveau: [number]" median-level: "Mediaan eilandniveau: [number]" mode-level: "Modus eilandniveau: [number]" @@ -35,21 +35,40 @@ island: level: parameters: "[speler]" description: bereken het eiland level voor [player] - calculating: "&a Level aan het berekenen..." - estimated-wait: "&a Verwachtte wachttijd: [number] seconde" - in-queue: "&a Jij staat op plek [number] in de wachtrij" - island-level-is: "&a Eiland level is &b[level]" - required-points-to-next-level: "&a Voortgang niveau: &6 [progress]&b /&e [levelcost] &a punten" - deaths: "&c([number] doodgegaan)" - cooldown: "&c Je moet nog &b[time] &c seconden wachten tot je dit weer kan doen." - in-progress: "&6 Eiland level wordt berekend..." - time-out: "&c De level berekening duurde te lang. Probeer het later opnieuw." + calculating: " Level aan het berekenen..." + estimated-wait: " Verwachtte wachttijd: [number] seconde" + in-queue: " Jij staat op plek [number] in de wachtrij" + island-level-is: " Eiland level is [level]" + required-points-to-next-level: " Voortgang niveau: [progress] / [levelcost] punten" + deaths: "([number] doodgegaan)" + cooldown: " Je moet nog [time] seconden wachten tot je dit weer kan doen." + in-progress: " Eiland level wordt berekend..." + time-out: " De level berekening duurde te lang. Probeer het later opnieuw." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." top: description: Toon de Top tien - gui-title: "&a Top tien" - gui-heading: "&6[name]: &B[rank]" - island-level: "&b Level [level]" - warp-to: "&A Teleporteren naar [name]'s eiland" + gui-title: " Top tien" + gui-heading: "[name]: [rank]" + island-level: " Level [level]" + warp-to: " Teleporteren naar [name]'s eiland" detail: description: "toont details van de blokken op uw eiland" level-details: @@ -57,10 +76,19 @@ island: spawners: Monsterkooien underwater-blocks: Blokken onder zeeniveau all-blocks: Alle blokken - no-island: "&c Geen eiland!" + no-island: " Geen eiland!" names-island: "[name]'s eiland" syntax: "[name] x [number]" - hint: "&c Gebruik level om het blokkenrapport te zien" + hint: " Gebruik level om het blokkenrapport te zien" +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -69,27 +97,27 @@ level: waarde te laten zien van het item in je hand. gui: titles: - top: "&0&l Top eilanden" - detail-panel: "&0&l [name]'s eiland" - value-panel: "&0&l Blok waardes" + top: " Top eilanden" + detail-panel: " [name]'s eiland" + value-panel: " Blok waardes" buttons: island: - empty: "&f&l [name]. plaats" - name: "&f&l [name]" + empty: " [name]. plaats" + name: " [name]" description: |- [owner] [members] [place] [level] owners-island: "[player]'s Eiland" - owner: "&7&l Eigenaar: &r&b [player]" - members-title: "&7&l Leden:" - member: "&b - [player]" + owner: " Eigenaar: [player]" + members-title: " Leden:" + member: " - [player]" unknown: onbekend - place: "&7&o [number]. &r&7 plaats" - level: "&7 Level: &o [number]" + place: " [number]. plaats" + level: " Level: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -97,91 +125,96 @@ level: [calculated] [limit] [id] - id: "&7 Blok id: &e [id]" - value: "&7 Block waarde: &e [number]" - limit: "&7 Block limiet: &e [number]" - count: "&7 Aantal blokken: &e [number]" - calculated: "&7 Berekende waarde: &e [number]" + id: " Blok id: [id]" + value: " Block waarde: [number]" + limit: " Block limiet: [number]" + count: " Aantal blokken: [number]" + calculated: " Berekende waarde: [number]" value_blocks: - name: "&f&l Alle Blokken met Waarde" + name: " Alle Blokken met Waarde" description: |- - &7 Toon alle blokken - &7 met waarde op het eiland. + Toon alle blokken + met waarde op het eiland. all_blocks: - name: "&f&l Alle Blokken" - description: "&7 Toon alle blokken \n&7 op het eiland." + name: " Alle Blokken" + description: " Toon alle blokken \n op het eiland." above_sea_level: - name: "&f&l Blokken boven zeeniveau" + name: " Blokken boven zeeniveau" description: |- - &7 Toon alleen blokken - &7 die boven zeeniveau zijn + Toon alleen blokken + die boven zeeniveau zijn underwater: - name: "&f&l Blokken onder zeeniveau" + name: " Blokken onder zeeniveau" description: |- - &7 Toon alleen blokken - &7 die onder zeeniveau zijn + Toon alleen blokken + die onder zeeniveau zijn spawner: - name: "&f&l Monsterkooien" - description: "&7 Toon alleen monsterkooien." - block-name: "&b Monsterkooien" + name: " Monsterkooien" + description: " Toon alleen monsterkooien." + block-name: " Monsterkooien" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&l Sorteer aan de hand van naam" - description: "&7 Sorteer alle blokken aan de hand van naam." + name: " Sorteer aan de hand van naam" + description: " Sorteer alle blokken aan de hand van naam." value: - name: "&f&l Sorteer aan de hand van waarde" - description: "&7 Sorteer alle blokken aan de hand van waarde." + name: " Sorteer aan de hand van waarde" + description: " Sorteer alle blokken aan de hand van waarde." count: - name: "&f&l Sorteer aan de hand van aantal" - description: "&7 Sorteer alle blokken aan de hand van aantal." + name: " Sorteer aan de hand van aantal" + description: " Sorteer alle blokken aan de hand van aantal." value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 Blok id: &e [id]" - value: "&7 Block waarrde: &e [number]" - underwater: "&7 Onder zeeniveau: &e [number]" - limit: "&7 Blok limiet: &e [number]" + id: " Blok id: [id]" + value: " Block waarrde: [number]" + underwater: " Onder zeeniveau: [number]" + limit: " Blok limiet: [number]" previous: - name: "&f&l Vorige pagina" - description: "&7 Ga naar pagina [number]" + name: " Vorige pagina" + description: " Ga naar pagina [number]" next: - name: "&f&l Volgende pagina" - description: "&7 Ga naar pagina [number]" + name: " Volgende pagina" + description: " Ga naar pagina [number]" search: - name: "&f&l Zoek" - description: "&7 Zoek voor een \n&7 specifieke waarde." - search: "&b Waarde: [value]" + name: " Zoek" + description: " Zoek voor een \n specifieke waarde." + search: " Waarde: [value]" tips: - click-to-view: "&e Klik &7 om te zien." - click-to-previous: "&e Klik &7 om de vorige pagina te zien." - click-to-next: "&e Klik &7 om de volgende pagina te zien." - click-to-select: "&e Klik &7 om te selecteren." - left-click-to-cycle-up: "&e Linker Klik &7 om door te lopen." - right-click-to-cycle-down: "&e Rechter Klik &7 om terug door te lopen." - left-click-to-change: "&e Linker Klik &7 om bij te werken." - right-click-to-clear: "&e Linker Klik &7 om te verwijderen." - click-to-asc: "&e Klik &7 om te toenemend te sorteren." - click-to-desc: "&e Klik &7 om te afnemenend te sorteren." - click-to-warp: "&e Klik &7 om te teleporteren." - click-to-visit: "&e Klik &7 om te bezoeken." - right-click-to-visit: "&e Rechter Klik &7 om te bezoeken." + click-to-view: " Klik om te zien." + click-to-previous: " Klik om de vorige pagina te zien." + click-to-next: " Klik om de volgende pagina te zien." + click-to-select: " Klik om te selecteren." + left-click-to-cycle-up: " Linker Klik om door te lopen." + right-click-to-cycle-down: " Rechter Klik om terug door te lopen." + left-click-to-change: " Linker Klik om bij te werken." + right-click-to-clear: " Linker Klik om te verwijderen." + click-to-asc: " Klik om te toenemend te sorteren." + click-to-desc: " Klik om te afnemenend te sorteren." + click-to-warp: " Klik om te teleporteren." + click-to-visit: " Klik om te bezoeken." + right-click-to-visit: " Rechter Klik om te bezoeken." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Gebruik level om het blokkenrapport te zien." + prefix: " [BentoBox]: " + no-data: " Gebruik level om het blokkenrapport te zien." cancel-string: stop exit-string: stop - write-search: "&e Schrijf een zoekopdracht. (Schrijf 'stop' om te zoeken)" - search-updated: "&a Zoekopdracht bijgewerkt." - cancelled: "&c Conversatie gestopt!" - no-value: "&c Dit item heeft geen waarde." - unknown-item: "&c '[material]' bestaat niet in het spel." - value: "&7 De waarde van '[material]' is: &e[value]" - value-underwater: "&7 The waarde van '[material]' onder zeeniveau: &e[value]" - empty-hand: "&c Je hebt geen blok vast" - you-have: "&7 Je hebt [number] bij de laatste telling." - you-can-place: "&7 Je kunt tot [number] plaatsen en ze laten meetellen" + write-search: " Schrijf een zoekopdracht. (Schrijf 'stop' om te zoeken)" + search-updated: " Zoekopdracht bijgewerkt." + cancelled: " Conversatie gestopt!" + no-value: " Dit item heeft geen waarde." + unknown-item: " '[material]' bestaat niet in het spel." + value: " De waarde van '[material]' is: [value]" + value-underwater: " The waarde van '[material]' onder zeeniveau: [value]" + empty-hand: " Je hebt geen blok vast" + you-have: " Je hebt [number] bij de laatste telling." + you-can-place: " Je kunt tot [number] plaatsen en ze laten meetellen" diff --git a/src/main/resources/locales/pl.yml b/src/main/resources/locales/pl.yml index 5e1666a..a40d8fc 100644 --- a/src/main/resources/locales/pl.yml +++ b/src/main/resources/locales/pl.yml @@ -6,23 +6,23 @@ admin: sethandicap: parameters: " " description: ustawić 0 poziom wyspy, zwykle poziom wyspy startowej - changed: "&a Początkowy poziom wysp został zmieniony z [number] na [new_number]." - invalid-level: "&c Nieprawidłowy poziom. Użyj liczby całkowitej." + changed: " Początkowy poziom wysp został zmieniony z [number] na [new_number]." + invalid-level: " Nieprawidłowy poziom. Użyj liczby całkowitej." levelstatus: description: pokazuje ile wysp znajduje się w kolejce do skanowania - islands-in-queue: "&a Wyspy w kolejce: [number]" + islands-in-queue: " Wyspy w kolejce: [number]" top: description: pokazuje Top 10 wysp - unknown-world: "&cNieznany świat!" - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: "Nieznany świat!" + display: "[rank]. [name] - [level]" remove: description: usuwa gracza z Top 10 parameters: "" stats: description: "wyświetl statystyki wysp na tym serwerze" title: "Statystyki Wysp Serwera" - world: "&a [name]" - no-data: "&c Brak danych do przetworzenia." + world: " [name]" + no-data: " Brak danych do przetworzenia." average-level: "Średni poziom wyspy: [number]" median-level: "Medianowy poziom wyspy: [number]" mode-level: "Modalny poziom wyspy: [number]" @@ -34,22 +34,41 @@ island: level: parameters: "[player]" description: oblicza poziom wyspy lub pokazać poziom [player] - calculating: "&aObliczanie poziomu wyspy..." - estimated-wait: "&a Szacowany czas: [number] sekund" - in-queue: "&a Jestes numerem [number] w kolejce" - island-level-is: "&aPoziom wyspy wynosi &b[level]" - required-points-to-next-level: "&a Postęp poziomu: &6 [progress]&b /&e [levelcost] &a punktów" - deaths: "&c([number] śmierci)" - cooldown: "&cMusisz zaczekać &b[time] &csekund przed następnym obliczeniem poziomu" - in-progress: "&6 Trwa obliczanie poziomu twojej wyspy..." - time-out: "&c Sprawdzanie poziomu twojej wyspy trwalo zbyt dlugo. Sprobuj ponownie + calculating: "Obliczanie poziomu wyspy..." + estimated-wait: " Szacowany czas: [number] sekund" + in-queue: " Jestes numerem [number] w kolejce" + island-level-is: "Poziom wyspy wynosi [level]" + required-points-to-next-level: " Postęp poziomu: [progress] / [levelcost] punktów" + deaths: "([number] śmierci)" + cooldown: "Musisz zaczekać [time] sekund przed następnym obliczeniem poziomu" + in-progress: " Trwa obliczanie poziomu twojej wyspy..." + time-out: " Sprawdzanie poziomu twojej wyspy trwalo zbyt dlugo. Sprobuj ponownie pozniej!" + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." top: description: pokauje Top 10 wysp - gui-title: "&aTop 10" - gui-heading: "&6[name]: &B[rank]" - island-level: "&BPoziom [level]" - warp-to: "&ATeleportowanie do wyspy [name]" + gui-title: "Top 10" + gui-heading: "[name]: [rank]" + island-level: "Poziom [level]" + warp-to: "Teleportowanie do wyspy [name]" detail: description: "wyświetla szczegóły bloków twojej wyspy" level-details: @@ -57,10 +76,19 @@ island: spawners: Spawnery underwater-blocks: Podwodne bloki all-blocks: Wszystkie bloki - no-island: "&c Brak wyspy!" + no-island: " Brak wyspy!" names-island: Wyspa gracza [name] syntax: "[name] x [number]" - hint: "&c Uruchom poziom, aby wyświetlić raport o blokach" + hint: " Uruchom poziom, aby wyświetlić raport o blokach" +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -69,27 +97,27 @@ level: wartość pozycji w ręku. gui: titles: - top: "&0&l Najlepsze wyspy" - detail-panel: "&0&l Wyspa gracza [name] " - value-panel: "&0&l Wartości bloków" + top: " Najlepsze wyspy" + detail-panel: " Wyspa gracza [name] " + value-panel: " Wartości bloków" buttons: island: - empty: "&f&l [name]. miejsce" - name: "&f&l [name]" + empty: " [name]. miejsce" + name: " [name]" description: |- [owner] [members] [place] [level] owners-island: wyspa gracza [player] - owner: "&7&l Lider: &r&b [player]" - members-title: "&7&l Członkowie:" - member: "&b - [player]" + owner: " Lider: [player]" + members-title: " Członkowie:" + member: " - [player]" unknown: nieznany - place: "&7&o [number]. &r&7 miejsce" - level: "&7 Poziom: &o [number]" + place: " [number]. miejsce" + level: " Poziom: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -97,97 +125,102 @@ level: [calculated] [limit] [id] - id: "&7 Identyfikator bloku: &e [id]" - value: "&7 Wartość bloku: &e [number]" - limit: "&7 Limit bloków: &e [number]" - count: "&7 Numer bloku: &e [number]" - calculated: "&7 Obliczona wartość: &e [number]" + id: " Identyfikator bloku: [id]" + value: " Wartość bloku: [number]" + limit: " Limit bloków: [number]" + count: " Numer bloku: [number]" + calculated: " Obliczona wartość: [number]" value_blocks: - name: "&f&l Wszystkie Bloki z Wartością" + name: " Wszystkie Bloki z Wartością" description: |- - &7 Wyświetl wszystkie bloki - &7 z wartością na wyspie. + Wyświetl wszystkie bloki + z wartością na wyspie. all_blocks: - name: "&f&l Wszystkie bloki" + name: " Wszystkie bloki" description: |- - &7 Wyświetl wszystkie bloki - &7 na wyspie. + Wyświetl wszystkie bloki + na wyspie. above_sea_level: - name: "&f&l Bloki nad poziomem morza" + name: " Bloki nad poziomem morza" description: |- - &7 Wyświetlaj tylko bloki - &7 które są nad poziomem - &7 morza + Wyświetlaj tylko bloki + które są nad poziomem + morza underwater: - name: "&f&l Bloki pod poziomem morza" + name: " Bloki pod poziomem morza" description: |- - &7 Wyświetlaj tylko bloki - &7 ponad poziomem morza + Wyświetlaj tylko bloki + ponad poziomem morza spawner: - name: "&f&l Spawnery" - description: "&7 Wyświetlaj tylko spawnery." - block-name: "&b Spawner" + name: " Spawnery" + description: " Wyświetlaj tylko spawnery." + block-name: " Spawner" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&l Sortuj według nazwy" - description: "&7 Sortuj wszystkie bloki według nazwy." + name: " Sortuj według nazwy" + description: " Sortuj wszystkie bloki według nazwy." value: - name: "&f&l Sortuj według wartości" - description: "&7 Sortuj wszystkie bloki według ich wartości." + name: " Sortuj według wartości" + description: " Sortuj wszystkie bloki według ich wartości." count: - name: "&f&l Sortuj według liczby" - description: "&7 Sortuj wszystkie bloki według ich ilości." + name: " Sortuj według liczby" + description: " Sortuj wszystkie bloki według ich ilości." value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 Identyfikator bloku: &e [id]" - value: "&7 Wartość bloku: &e [number]" - underwater: "&7 Poniżej poziomu morza: &e [number]" - limit: "&7 Limit bloku: &e [number]" + id: " Identyfikator bloku: [id]" + value: " Wartość bloku: [number]" + underwater: " Poniżej poziomu morza: [number]" + limit: " Limit bloku: [number]" previous: - name: "&f&l Poprzednia strona" - description: "&7 Przełącz na stronę [number]" + name: " Poprzednia strona" + description: " Przełącz na stronę [number]" next: - name: "&f&l Następna strona" - description: "&7 Przełącz na stronę [number]" + name: " Następna strona" + description: " Przełącz na stronę [number]" search: - name: "&f&l Szukaj" + name: " Szukaj" description: |- - &7 Wyszukaj konkretną - &7 wartość. - search: "&b Wartość: [value]" + Wyszukaj konkretną + wartość. + search: " Wartość: [value]" tips: - click-to-view: "&e Kliknij &7, aby wyświetlić." - click-to-previous: "&e Kliknij &7, aby wyświetlić poprzednią stronę." - click-to-next: "&e Kliknij &7, aby wyświetlić następną stronę." - click-to-select: "&e Kliknij &7, aby wybrać." - left-click-to-cycle-up: "&e Kliknij lewym przyciskiem &7, aby przejść w górę." - right-click-to-cycle-down: "&e Kliknij prawym przyciskiem &7, aby przejść w + click-to-view: " Kliknij , aby wyświetlić." + click-to-previous: " Kliknij , aby wyświetlić poprzednią stronę." + click-to-next: " Kliknij , aby wyświetlić następną stronę." + click-to-select: " Kliknij , aby wybrać." + left-click-to-cycle-up: " Kliknij lewym przyciskiem , aby przejść w górę." + right-click-to-cycle-down: " Kliknij prawym przyciskiem , aby przejść w dół." - left-click-to-change: "&e Kliknij lewym przyciskiem &7, aby edytować." - right-click-to-clear: "&e Kliknij prawym przyciskiem &7, aby wyczyścić." - click-to-asc: "&e Kliknij &7, aby posortować w porządku rosnącym." - click-to-desc: "&e Kliknij &7, aby posortować w porządku malejącym." - click-to-warp: "&e Kliknij&7, aby przenieść" - click-to-visit: "&e Kliknij&7, aby odwiedzić" - right-click-to-visit: "&e Kliknij prawym przyciskiem &7, aby odwiedzić." + left-click-to-change: " Kliknij lewym przyciskiem , aby edytować." + right-click-to-clear: " Kliknij prawym przyciskiem , aby wyczyścić." + click-to-asc: " Kliknij , aby posortować w porządku rosnącym." + click-to-desc: " Kliknij , aby posortować w porządku malejącym." + click-to-warp: " Kliknij, aby przenieść" + click-to-visit: " Kliknij, aby odwiedzić" + right-click-to-visit: " Kliknij prawym przyciskiem , aby odwiedzić." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Wykonaj sprawdzenie poziomu, przed raportem bloków" + prefix: " [BentoBox]: " + no-data: " Wykonaj sprawdzenie poziomu, przed raportem bloków" cancel-string: anuluj exit-string: cancel, exit, quit, anuluj - write-search: "&e Wprowadź wartość wyszukiwania. (Napisz „anuluj”, aby wyjść)" - search-updated: "&a Zaktualizowano wartość wyszukiwania." - cancelled: "&c Rozmowa została anulowana!" - no-value: "&c Ten element nie ma wartości." - unknown-item: "&c „[material]” nie istnieje w grze." - value: "&7 Wartość '[material]' to: &e[value]" - value-underwater: "&7 Wartość „[material]” poniżej poziomu morza: &e[value]" - empty-hand: "&c W twojej ręce nie ma bloków" - you-have: "&7 Masz [number] przy ostatnim zliczaniu." - you-can-place: "&7 Możesz umieścić do [number] i będą liczone" + write-search: " Wprowadź wartość wyszukiwania. (Napisz „anuluj”, aby wyjść)" + search-updated: " Zaktualizowano wartość wyszukiwania." + cancelled: " Rozmowa została anulowana!" + no-value: " Ten element nie ma wartości." + unknown-item: " „[material]” nie istnieje w grze." + value: " Wartość '[material]' to: [value]" + value-underwater: " Wartość „[material]” poniżej poziomu morza: [value]" + empty-hand: " W twojej ręce nie ma bloków" + you-have: " Masz [number] przy ostatnim zliczaniu." + you-can-place: " Możesz umieścić do [number] i będą liczone" diff --git a/src/main/resources/locales/pt.yml b/src/main/resources/locales/pt.yml index e73d558..844402b 100644 --- a/src/main/resources/locales/pt.yml +++ b/src/main/resources/locales/pt.yml @@ -10,23 +10,23 @@ admin: ex. +10 removerá 10 níveis, 30 definirá o handicap para 30, -20 adicionará 20 níveis - changed: "&a O handicap inicial da ilha foi alterado de [number] para [new_number]." - invalid-level: "&c Handicap inválido. Use um número inteiro." + changed: " O handicap inicial da ilha foi alterado de [number] para [new_number]." + invalid-level: " Handicap inválido. Use um número inteiro." levelstatus: description: mostrar quantas ilhas estão na fila para escaneamento. - islands-in-queue: "&a Ilhas na fila: [number]" + islands-in-queue: " Ilhas na fila: [number]" top: description: Mostra a lista dos dez primeiros - unknown-world: "&c Mundo desconhecido!" - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: " Mundo desconhecido!" + display: "[rank]. [name] - [level]" remove: description: Remover jogador do Top 10 parameters: "" stats: description: "mostrar estatísticas das ilhas neste servidor" title: "Estatísticas das Ilhas do Servidor" - world: "&a [name]" - no-data: "&c Sem dados para processar." + world: " [name]" + no-data: " Sem dados para processar." average-level: "Nível médio das ilhas: [number]" median-level: "Nível mediano das ilhas: [number]" mode-level: "Nível modal das ilhas: [number]" @@ -38,32 +38,60 @@ island: level: parameters: "[player]" description: Calcula o nível da sua ilha ou mostra o nível de [player] - calculating: "&a Calculando level..." - estimated-wait: "&a Espera estimada: [number] segundos." - in-queue: "&a Você é o número [number] na fila." - island-level-is: "&a O nível da ilha é &b[level]" - required-points-to-next-level: "&a Progresso do nível: &6 [progress]&b /&e [levelcost] &a pontos" - deaths: "&c([number] mortes)" - cooldown: "&c Você deve esperar &b[time] &c segundos até que possa fazer isso novamente." - in-progress: "&6 O cálculo do nível da ilha está em andamento..." - time-out: "&c O cálculo do nível demorou muito. Por favor, tente novamente mais tarde." + calculating: " Calculando level..." + estimated-wait: " Espera estimada: [number] segundos." + in-queue: " Você é o número [number] na fila." + island-level-is: " O nível da ilha é [level]" + required-points-to-next-level: " Progresso do nível: [progress] / [levelcost] pontos" + deaths: "([number] mortes)" + cooldown: " Você deve esperar [time] segundos até que possa fazer isso novamente." + in-progress: " O cálculo do nível da ilha está em andamento..." + time-out: " O cálculo do nível demorou muito. Por favor, tente novamente mais tarde." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." detail: description: "mostra os detalhes dos blocos da sua ilha" top: description: Mostra os dez melhores - gui-title: "&a Top 10" - gui-heading: "&6[name]: &B[rank]" - island-level: "&b Level [level]" - warp-to: "&a Teletransportando para a ilha de [name]" + gui-title: " Top 10" + gui-heading: "[name]: [rank]" + island-level: " Level [level]" + warp-to: " Teletransportando para a ilha de [name]" level-details: above-sea-level-blocks: Blocos acima do nível do mar spawners: Spawners underwater-blocks: Blocos Subaquáticos all-blocks: Todos os blocos - no-island: "&c Sem ilha!" + no-island: " Sem ilha!" names-island: Ilha de [name] syntax: "[name] x [number]" - hint: "&c Execute level para ver o relatório de blocos." + hint: " Execute level para ver o relatório de blocos." +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -71,27 +99,27 @@ level: description: mostra o valor dos blocos. Adicione 'hand' no final para exibir o valor do item na mão. gui: titles: - top: "&0&l Top Ilhas" - detail-panel: "&0&l Ilha de [name]" - value-panel: "&0&l Valores dos Blocos" + top: " Top Ilhas" + detail-panel: " Ilha de [name]" + value-panel: " Valores dos Blocos" buttons: island: - empty: '&f&l [name]. lugar' - name: '&f&l [name]' + empty: ' [name]. lugar' + name: ' [name]' description: |- [owner] [members] [place] [level] owners-island: "Ilha de [player]" - owner: "&7&l Dono: &r&b [player]" - members-title: "&7&l Membros:" - member: "&b - [player]" + owner: " Dono: [player]" + members-title: " Membros:" + member: " - [player]" unknown: "desconhecido" - place: "&7&o [number]. &r&7 lugar" - level: "&7 Nível: &o [number]" + place: " [number]. lugar" + level: " Nível: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -99,103 +127,108 @@ level: [calculated] [limit] [id] - id: "&7 ID do bloco: &e [id]" - value: "&7 Valor do bloco: &e [number]" - limit: "&7 Limite do bloco: &e [number]" - count: "&7 Número de blocos: &e [number]" - calculated: "&7 Valor calculado: &e [number]" + id: " ID do bloco: [id]" + value: " Valor do bloco: [number]" + limit: " Limite do bloco: [number]" + count: " Número de blocos: [number]" + calculated: " Valor calculado: [number]" value_blocks: - name: "&f&l Todos os Blocos com Valor" + name: " Todos os Blocos com Valor" description: |- - &7 Exibir todos os blocos - &7 com valor na ilha. + Exibir todos os blocos + com valor na ilha. all_blocks: - name: "&f&l Todos os Blocos" + name: " Todos os Blocos" description: |- - &7 Exibir todos os blocos - &7 na ilha. + Exibir todos os blocos + na ilha. above_sea_level: - name: "&f&l Blocos Acima do Nível do Mar" + name: " Blocos Acima do Nível do Mar" description: |- - &7 Exibir apenas blocos - &7 que estão acima do - &7 nível do mar. + Exibir apenas blocos + que estão acima do + nível do mar. underwater: - name: "&f&l Blocos Abaixo do Nível do Mar" + name: " Blocos Abaixo do Nível do Mar" description: |- - &7 Exibir apenas blocos - &7 que estão abaixo do - &7 nível do mar. + Exibir apenas blocos + que estão abaixo do + nível do mar. spawner: - name: "&f&l Spawners" + name: " Spawners" description: |- - &7 Exibir apenas spawners. - block-name: "&b Spawner" + Exibir apenas spawners. + block-name: " Spawner" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&l Ordenar por Nome" + name: " Ordenar por Nome" description: |- - &7 Ordenar todos os blocos por nome. + Ordenar todos os blocos por nome. value: - name: "&f&l Ordenar por Valor" + name: " Ordenar por Valor" description: |- - &7 Ordenar todos os blocos pelo valor. + Ordenar todos os blocos pelo valor. count: - name: "&f&l Ordenar por Quantidade" + name: " Ordenar por Quantidade" description: |- - &7 Ordenar todos os blocos pela quantidade. + Ordenar todos os blocos pela quantidade. value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 ID do bloco: &e [id]" - value: "&7 Valor do bloco: &e [number]" - underwater: "&7 Abaixo do nível do mar: &e [number]" - limit: "&7 Limite do bloco: &e [number]" + id: " ID do bloco: [id]" + value: " Valor do bloco: [number]" + underwater: " Abaixo do nível do mar: [number]" + limit: " Limite do bloco: [number]" previous: - name: "&f&l Página Anterior" + name: " Página Anterior" description: |- - &7 Ir para a página [number] + Ir para a página [number] next: - name: "&f&l Próxima Página" + name: " Próxima Página" description: |- - &7 Ir para a página [number] + Ir para a página [number] search: - name: "&f&l Pesquisar" + name: " Pesquisar" description: |- - &7 Pesquisar um valor - &7 específico. - search: "&b Valor: [value]" + Pesquisar um valor + específico. + search: " Valor: [value]" tips: - click-to-view: "&e Clique &7 para visualizar." - click-to-previous: "&e Clique &7 para ver a página anterior." - click-to-next: "&e Clique &7 para ver a próxima página." - click-to-select: "&e Clique &7 para selecionar." - left-click-to-cycle-up: "&e Clique Esquerdo &7 para avançar." - right-click-to-cycle-down: "&e Clique Direito &7 para retroceder." - left-click-to-change: "&e Clique Esquerdo &7 para editar." - right-click-to-clear: "&e Clique Direito &7 para limpar." - click-to-asc: "&e Clique &7 para ordenar em ordem crescente." - click-to-desc: "&e Clique &7 para ordenar em ordem decrescente." - click-to-warp: "&e Clique &7 para teletransportar." - click-to-visit: "&e Clique &7 para visitar." - right-click-to-visit: "&e Clique Direito &7 para visitar." + click-to-view: " Clique para visualizar." + click-to-previous: " Clique para ver a página anterior." + click-to-next: " Clique para ver a próxima página." + click-to-select: " Clique para selecionar." + left-click-to-cycle-up: " Clique Esquerdo para avançar." + right-click-to-cycle-down: " Clique Direito para retroceder." + left-click-to-change: " Clique Esquerdo para editar." + right-click-to-clear: " Clique Direito para limpar." + click-to-asc: " Clique para ordenar em ordem crescente." + click-to-desc: " Clique para ordenar em ordem decrescente." + click-to-warp: " Clique para teletransportar." + click-to-visit: " Clique para visitar." + right-click-to-visit: " Clique Direito para visitar." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Execute level para ver o relatório de blocos." + prefix: " [BentoBox]: " + no-data: " Execute level para ver o relatório de blocos." cancel-string: cancelar exit-string: cancelar, sair, encerrar - write-search: "&e Por favor, insira um valor de pesquisa. (Digite 'cancelar' para sair)" - search-updated: "&a Valor de pesquisa atualizado." - cancelled: "&c Conversa cancelada!" - no-value: "&c Esse item não tem valor." - unknown-item: "&c O '[material]' não existe no jogo." - value: "&7 O valor de '[material]' é: &e[value]" - value-underwater: "&7 O valor de '[material]' abaixo do nível do mar: &e[value]" - empty-hand: "&c Não há blocos em sua mão" - you-have: "&7 Você tem [number] no último conteo." - you-can-place: "&7 Você pode colocar até [number] e fazê-los contar" + write-search: " Por favor, insira um valor de pesquisa. (Digite 'cancelar' para sair)" + search-updated: " Valor de pesquisa atualizado." + cancelled: " Conversa cancelada!" + no-value: " Esse item não tem valor." + unknown-item: " O '[material]' não existe no jogo." + value: " O valor de '[material]' é: [value]" + value-underwater: " O valor de '[material]' abaixo do nível do mar: [value]" + empty-hand: " Não há blocos em sua mão" + you-have: " Você tem [number] no último conteo." + you-can-place: " Você pode colocar até [number] e fazê-los contar" diff --git a/src/main/resources/locales/ru.yml b/src/main/resources/locales/ru.yml index 5735c5c..6150490 100644 --- a/src/main/resources/locales/ru.yml +++ b/src/main/resources/locales/ru.yml @@ -47,6 +47,25 @@ island: cooldown: 'Вы должны подождать [time] секунд, прежде чем повторить это.' in-progress: 'Вычисление уровня острова уже выполняется...' time-out: 'Вычисление уровня заняло слишком много времени. Пожалуйста, попробуйте позже.' + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." detail: description: показать информацию о блоках на вашем острове top: @@ -66,6 +85,15 @@ island: syntax: '[name] x [number]' hint: 'Перейдите на уровень, чтобы просмотреть отчёт по блокам.' +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -137,6 +165,11 @@ level: name: 'Спавнера' description: 'Показать только спавнера.' block-name: 'Спавнер' + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: name: 'Сортировать по имени' diff --git a/src/main/resources/locales/tr.yml b/src/main/resources/locales/tr.yml index 894b7c5..1be47bb 100644 --- a/src/main/resources/locales/tr.yml +++ b/src/main/resources/locales/tr.yml @@ -14,23 +14,23 @@ admin: örn. +10 10 seviye kaldırır, 30 handikabı 30'a ayarlar, -20 20 seviye ekler - changed: "&a Ada başlangıç handikabı [number] değerinden [new_number] değerine değiştirildi." - invalid-level: "&c Geçersiz handikap. Tam sayı kullanın." + changed: " Ada başlangıç handikabı [number] değerinden [new_number] değerine değiştirildi." + invalid-level: " Geçersiz handikap. Tam sayı kullanın." levelstatus: description: tarama için kaç adanın kuyrukta olduğunu göster - islands-in-queue: "&a Kuyrukta bulunan adalar: [number]" + islands-in-queue: " Kuyrukta bulunan adalar: [number]" top: description: "İlk 10 adayı sırala" - unknown-world: "&c Bilinmeyen dünya!" - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: " Bilinmeyen dünya!" + display: "[rank]. [name] - [level]" remove: description: oyuncuyu İlk On'dan kaldır parameters: "" stats: description: "bu sunucudaki adaların istatistiklerini göster" title: "Sunucu Ada İstatistikleri" - world: "&a [name]" - no-data: "&c İşlenecek veri yok." + world: " [name]" + no-data: " İşlenecek veri yok." average-level: "Ortalama Ada Seviyesi: [number]" median-level: "Medyan Ada Seviyesi: [number]" mode-level: "Mod Ada Seviyesi: [number]" @@ -42,32 +42,60 @@ island: level: parameters: "[oyuncu]" description: "Kendi ada seviyeni hesapla veya başka oyuncunun ada seviyesini öğren" - calculating: "&a Seviye hesaplanıyor..." - estimated-wait: "&a Tahmini bekleme: [number] saniye" - in-queue: "&a Kuyrukta [number]. sıradasın" - island-level-is: "&a Ada seviyesi &b[level]" - required-points-to-next-level: "&a Seviye ilerlemesi: &6 [progress]&b /&e [levelcost] &a puan" - deaths: "&c ([number] ölüm)" - cooldown: "&c Bunu tekrar yapmak için &b[time] &c saniye beklemelisin" - in-progress: "&6 Ada seviyesi hesaplaması devam ediyor..." - time-out: "&c Seviye hesaplaması çok uzun sürdü. Lütfen daha sonra tekrar deneyin." + calculating: " Seviye hesaplanıyor..." + estimated-wait: " Tahmini bekleme: [number] saniye" + in-queue: " Kuyrukta [number]. sıradasın" + island-level-is: " Ada seviyesi [level]" + required-points-to-next-level: " Seviye ilerlemesi: [progress] / [levelcost] puan" + deaths: " ([number] ölüm)" + cooldown: " Bunu tekrar yapmak için [time] saniye beklemelisin" + in-progress: " Ada seviyesi hesaplaması devam ediyor..." + time-out: " Seviye hesaplaması çok uzun sürdü. Lütfen daha sonra tekrar deneyin." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." detail: description: "adanın blok ayrıntılarını gösterir" top: description: "İlk 10 adayı sırala" - gui-title: "&a İlk 10 Ada" - gui-heading: "&6Sıralama: &3[rank]" - island-level: "&a Seviye: &7[level]" - warp-to: "&a [name] oyuncusunun adasına ışınlanıyor" + gui-title: " İlk 10 Ada" + gui-heading: "Sıralama: [rank]" + island-level: " Seviye: [level]" + warp-to: " [name] oyuncusunun adasına ışınlanıyor" level-details: above-sea-level-blocks: Deniz Seviyesi Üstü Bloklar spawners: Spawner'lar underwater-blocks: Su Altı Bloklar all-blocks: Tüm Bloklar - no-island: "&c Ada yok!" + no-island: " Ada yok!" names-island: "[name]'nin adası" syntax: "[name] x [number]" - hint: "&c Blok raporunu görmek için level komutunu çalıştırın" + hint: " Blok raporunu görmek için level komutunu çalıştırın" +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -75,27 +103,27 @@ level: description: blokların değerini gösterir. Elinizdeki eşyanın değerini görmek için sona 'hand' ekleyin. gui: titles: - top: "&0&l En İyi Adalar" - detail-panel: "&0&l [name]'nin adası" - value-panel: "&0&l Blok Değerleri" + top: " En İyi Adalar" + detail-panel: " [name]'nin adası" + value-panel: " Blok Değerleri" buttons: island: - empty: '&f&l [name]. sıra' - name: '&f&l [name]' + empty: ' [name]. sıra' + name: ' [name]' description: |- [owner] [members] [place] [level] owners-island: "[player]'nin adası" - owner: "&7&l Sahip: &r&b [player]" - members-title: "&7&l Üyeler:" - member: "&b - [player]" + owner: " Sahip: [player]" + members-title: " Üyeler:" + member: " - [player]" unknown: "bilinmiyor" - place: "&7&o [number]. &r&7 sıra" - level: "&7 Seviye: &o [number]" + place: " [number]. sıra" + level: " Seviye: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -103,103 +131,108 @@ level: [calculated] [limit] [id] - id: "&7 Blok ID: &e [id]" - value: "&7 Blok değeri: &e [number]" - limit: "&7 Blok limiti: &e [number]" - count: "&7 Blok sayısı: &e [number]" - calculated: "&7 Hesaplanan değer: &e [number]" + id: " Blok ID: [id]" + value: " Blok değeri: [number]" + limit: " Blok limiti: [number]" + count: " Blok sayısı: [number]" + calculated: " Hesaplanan değer: [number]" value_blocks: - name: "&f&l Değeri Olan Tüm Bloklar" + name: " Değeri Olan Tüm Bloklar" description: |- - &7 Adada değeri olan - &7 tüm blokları göster. + Adada değeri olan + tüm blokları göster. all_blocks: - name: "&f&l Tüm Bloklar" + name: " Tüm Bloklar" description: |- - &7 Adadaki tüm - &7 blokları göster. + Adadaki tüm + blokları göster. above_sea_level: - name: "&f&l Deniz Seviyesi Üstü Bloklar" + name: " Deniz Seviyesi Üstü Bloklar" description: |- - &7 Sadece deniz - &7 seviyesi üstündeki - &7 blokları göster. + Sadece deniz + seviyesi üstündeki + blokları göster. underwater: - name: "&f&l Deniz Seviyesi Altı Bloklar" + name: " Deniz Seviyesi Altı Bloklar" description: |- - &7 Sadece deniz - &7 seviyesi altındaki - &7 blokları göster. + Sadece deniz + seviyesi altındaki + blokları göster. spawner: - name: "&f&l Spawner'lar" + name: " Spawner'lar" + description: |- + Sadece spawner'ları göster. + block-name: " Spawner" + donated: + name: "Donated Blocks" description: |- - &7 Sadece spawner'ları göster. - block-name: "&b Spawner" + Display blocks permanently + donated to island level. filters: name: - name: "&f&l İsme Göre Sırala" + name: " İsme Göre Sırala" description: |- - &7 Tüm blokları isme göre sırala. + Tüm blokları isme göre sırala. value: - name: "&f&l Değere Göre Sırala" + name: " Değere Göre Sırala" description: |- - &7 Tüm blokları değerlerine göre sırala. + Tüm blokları değerlerine göre sırala. count: - name: "&f&l Sayıya Göre Sırala" + name: " Sayıya Göre Sırala" description: |- - &7 Tüm blokları sayılarına göre sırala. + Tüm blokları sayılarına göre sırala. value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 Blok ID: &e [id]" - value: "&7 Blok değeri: &e [number]" - underwater: "&7 Deniz seviyesi altı: &e [number]" - limit: "&7 Blok limiti: &e [number]" + id: " Blok ID: [id]" + value: " Blok değeri: [number]" + underwater: " Deniz seviyesi altı: [number]" + limit: " Blok limiti: [number]" previous: - name: "&f&l Önceki Sayfa" + name: " Önceki Sayfa" description: |- - &7 [number]. sayfaya geç + [number]. sayfaya geç next: - name: "&f&l Sonraki Sayfa" + name: " Sonraki Sayfa" description: |- - &7 [number]. sayfaya geç + [number]. sayfaya geç search: - name: "&f&l Ara" + name: " Ara" description: |- - &7 Belirli bir değer - &7 ara. - search: "&b Değer: [value]" + Belirli bir değer + ara. + search: " Değer: [value]" tips: - click-to-view: "&e Tıkla &7 görüntülemek için." - click-to-previous: "&e Tıkla &7 önceki sayfayı görüntülemek için." - click-to-next: "&e Tıkla &7 sonraki sayfayı görüntülemek için." - click-to-select: "&e Tıkla &7 seçmek için." - left-click-to-cycle-up: "&e Sol Tıkla &7 yukarı almak için." - right-click-to-cycle-down: "&e Sağ Tıkla &7 aşağı almak için." - left-click-to-change: "&e Sol Tıkla &7 düzenlemek için." - right-click-to-clear: "&e Sağ Tıkla &7 temizlemek için." - click-to-asc: "&e Tıkla &7 artan sırada sıralamak için." - click-to-desc: "&e Tıkla &7 azalan sırada sıralamak için." - click-to-warp: "&e Tıkla &7 ışınlanmak için." - click-to-visit: "&e Tıkla &7 ziyaret etmek için." - right-click-to-visit: "&e Sağ Tıkla &7 ziyaret etmek için." + click-to-view: " Tıkla görüntülemek için." + click-to-previous: " Tıkla önceki sayfayı görüntülemek için." + click-to-next: " Tıkla sonraki sayfayı görüntülemek için." + click-to-select: " Tıkla seçmek için." + left-click-to-cycle-up: " Sol Tıkla yukarı almak için." + right-click-to-cycle-down: " Sağ Tıkla aşağı almak için." + left-click-to-change: " Sol Tıkla düzenlemek için." + right-click-to-clear: " Sağ Tıkla temizlemek için." + click-to-asc: " Tıkla artan sırada sıralamak için." + click-to-desc: " Tıkla azalan sırada sıralamak için." + click-to-warp: " Tıkla ışınlanmak için." + click-to-visit: " Tıkla ziyaret etmek için." + right-click-to-visit: " Sağ Tıkla ziyaret etmek için." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Blok raporunu görmek için level komutunu çalıştırın." + prefix: " [BentoBox]: " + no-data: " Blok raporunu görmek için level komutunu çalıştırın." cancel-string: iptal exit-string: iptal, çıkış, bırak - write-search: "&e Lütfen bir arama değeri girin. (Çıkmak için 'iptal' yazın)" - search-updated: "&a Arama değeri güncellendi." - cancelled: "&c Konuşma iptal edildi!" - no-value: "&c Bu eşyanın değeri yok." - unknown-item: "&c '[material]' oyunda mevcut değil." - value: "&7 '[material]' değeri: &e[value]" - value-underwater: "&7 '[material]' deniz seviyesi altı değeri: &e[value]" - empty-hand: "&c Elinde hiç blok yok" - you-have: "&7 Son sayımda [number] tanen vardı." - you-can-place: "&7 [number] adete kadar yerleştirebilirsin ve sayılırlar" + write-search: " Lütfen bir arama değeri girin. (Çıkmak için 'iptal' yazın)" + search-updated: " Arama değeri güncellendi." + cancelled: " Konuşma iptal edildi!" + no-value: " Bu eşyanın değeri yok." + unknown-item: " '[material]' oyunda mevcut değil." + value: " '[material]' değeri: [value]" + value-underwater: " '[material]' deniz seviyesi altı değeri: [value]" + empty-hand: " Elinde hiç blok yok" + you-have: " Son sayımda [number] tanen vardı." + you-can-place: " [number] adete kadar yerleştirebilirsin ve sayılırlar" diff --git a/src/main/resources/locales/uk.yml b/src/main/resources/locales/uk.yml index b23a2d3..8bf009b 100644 --- a/src/main/resources/locales/uk.yml +++ b/src/main/resources/locales/uk.yml @@ -6,23 +6,23 @@ admin: sethandicap: parameters: " " description: встановити гандикап острова, як правило, рівень острова стартера - changed: "&a Початковий гандикап острова змінено з [number] на [new_number]." - invalid-level: "&c Недійсний гандикап. Використовуйте ціле число." + changed: " Початковий гандикап острова змінено з [number] на [new_number]." + invalid-level: " Недійсний гандикап. Використовуйте ціле число." levelstatus: description: показати, скільки островів у черзі на сканування - islands-in-queue: "&a Острови в черзі: [number]" + islands-in-queue: " Острови в черзі: [number]" top: description: показати першу десятку списку - unknown-world: "&c Невідомий світ!" - display: "&f[rank]. &a[name] &7- &b[level]" + unknown-world: " Невідомий світ!" + display: "[rank]. [name] - [level]" remove: description: видалити гравця з першої десятки parameters: "" stats: description: показати статистику островів на цьому сервері title: Статистика острова сервера - world: "&a [name]" - no-data: "&c Немає даних для обробки." + world: " [name]" + no-data: " Немає даних для обробки." average-level: 'Середній рівень острова: [number]' median-level: 'Середній рівень острова: [number]' mode-level: 'Рівень острова режиму: [number]' @@ -34,22 +34,41 @@ island: level: parameters: "[player]" description: обчисліть свій рівень острова або покажіть рівень [player] - calculating: "&a Розрахунок рівня..." - estimated-wait: "&a Приблизне очікування: [number] секунд" - in-queue: "&a Ви номер [number] у черзі" - island-level-is: "&a Рівень острова &b[level]" - required-points-to-next-level: "&a Прогрес рівня: &6 [progress]&b /&e [levelcost] &a балів" - deaths: "&c([number] смерті)" - cooldown: "&c Ви повинні зачекати &b[time] &c секунд, поки ви зможете зробити + calculating: " Розрахунок рівня..." + estimated-wait: " Приблизне очікування: [number] секунд" + in-queue: " Ви номер [number] у черзі" + island-level-is: " Рівень острова [level]" + required-points-to-next-level: " Прогрес рівня: [progress] / [levelcost] балів" + deaths: "([number] смерті)" + cooldown: " Ви повинні зачекати [time] секунд, поки ви зможете зробити це знову" - in-progress: "&6 Розрахунок рівня острова триває..." - time-out: "&c Розрахунок рівня тривав занадто довго. Будь-ласка спробуйте пізніше." + in-progress: " Розрахунок рівня острова триває..." + time-out: " Розрахунок рівня тривав занадто довго. Будь-ласка спробуйте пізніше." + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." top: description: показати першу десятку gui-title: "& Десятка Кращих" - gui-heading: "&6[name]: &B[rank]" - island-level: "&b Рівень [level]" - warp-to: "&A Варп на острів [name]." + gui-heading: "[name]: [rank]" + island-level: " Рівень [level]" + warp-to: " Варп на острів [name]." detail: description: "показує деталі блоків вашого острова" level-details: @@ -57,10 +76,19 @@ island: spawners: Спавера underwater-blocks: Підводні блоки all-blocks: Всі блоки - no-island: "&c Немає острова!" + no-island: " Немає острова!" names-island: острів [name]. syntax: "[name] x [number]" - hint: "&c Запустіть рівень, щоб переглянути звіт про блокування" + hint: " Запустіть рівень, щоб переглянути звіт про блокування" +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -69,27 +97,27 @@ level: значення предмета в руках. gui: titles: - top: "&0&l Топ островів" - detail-panel: "&0&l острів [name]." - value-panel: "&0&l Значення блоку" + top: " Топ островів" + detail-panel: " острів [name]." + value-panel: " Значення блоку" buttons: island: - empty: "&f&l [name]. місце" - name: "&f&l [name]" + empty: " [name]. місце" + name: " [name]" description: |- [owner] [members] [place] [level] owners-island: Острів [player]. - owner: "&7&l Власник: &r&b [player]" - members-title: "&7&l Члени:" - member: "&b - [player]" + owner: " Власник: [player]" + members-title: " Члени:" + member: " - [player]" unknown: невідомий - place: "&7&o [number]. &r&7 місце" - level: "&7 Рівень: &o [number]" + place: " [number]. місце" + level: " Рівень: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -97,98 +125,103 @@ level: [calculated] [limit] [id] - id: "&7 Ідентифікатор блоку: &e [id]" - value: "&7 Значення блоку: &e [number]" - limit: "&7 Обмеження блоку: &e [number]" - count: "&7 Кількість блоків: &e [number]" - calculated: "&7 Розраховане значення: &e [number]" + id: " Ідентифікатор блоку: [id]" + value: " Значення блоку: [number]" + limit: " Обмеження блоку: [number]" + count: " Кількість блоків: [number]" + calculated: " Розраховане значення: [number]" value_blocks: - name: "&f&l Усі Блоки з Цінністю" + name: " Усі Блоки з Цінністю" description: |- - &7 Показати всі блоки - &7 з цінністю на острові. + Показати всі блоки + з цінністю на острові. all_blocks: - name: "&f&l Усі блоки" + name: " Усі блоки" description: |- - &7 Показати всі блоки - &7 на острові. + Показати всі блоки + на острові. above_sea_level: - name: "&f&l Блоки над рівнем моря" + name: " Блоки над рівнем моря" description: |- - &7 Показувати лише блоки - &7, які знаходяться над морем - &7 рівень. + Показувати лише блоки + , які знаходяться над морем + рівень. underwater: - name: "&f&l Блоки під рівнем моря" + name: " Блоки під рівнем моря" description: |- - &7 Показувати лише блоки - &7, які знаходяться нижче моря - &7 рівень. + Показувати лише блоки + , які знаходяться нижче моря + рівень. spawner: - name: "&f&l Спавнери" - description: "&7 Відображати лише спавнери." - block-name: "&b Спавнер" + name: " Спавнери" + description: " Відображати лише спавнери." + block-name: " Спавнер" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&l Сортувати за назвою" - description: "&7 Сортувати всі блоки за назвою." + name: " Сортувати за назвою" + description: " Сортувати всі блоки за назвою." value: - name: "&f&l Сортувати за значенням" - description: "&7 Сортувати всі блоки за їх значенням." + name: " Сортувати за значенням" + description: " Сортувати всі блоки за їх значенням." count: - name: "&f&l Сортувати за кількістю" - description: "&7 Відсортуйте всі блоки за їх кількістю." + name: " Сортувати за кількістю" + description: " Відсортуйте всі блоки за їх кількістю." value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 Ідентифікатор блоку: &e [id]" - value: "&7 Значення блоку: &e [number]" - underwater: "&7 Нижче рівня моря: &e [number]" - limit: "&7 Обмеження блоку: &e [number]" + id: " Ідентифікатор блоку: [id]" + value: " Значення блоку: [number]" + underwater: " Нижче рівня моря: [number]" + limit: " Обмеження блоку: [number]" previous: - name: "&f&l Попередня сторінка" - description: "&7 Перейти на сторінку [number]." + name: " Попередня сторінка" + description: " Перейти на сторінку [number]." next: - name: "&f&l Наступна сторінка" - description: "&7 Перейти на сторінку [number]." + name: " Наступна сторінка" + description: " Перейти на сторінку [number]." search: - name: "&f&l Пошук" + name: " Пошук" description: |- - &7 Пошук конкретного - &7 значення. - search: "&b Значення: [value]" + Пошук конкретного + значення. + search: " Значення: [value]" tips: - click-to-view: "&e Натисніть &7, щоб переглянути." - click-to-previous: "&e Натисніть &7, щоб переглянути попередню сторінку." - click-to-next: "&e Натисніть &7, щоб переглянути наступну сторінку." - click-to-select: "&e Натисніть &7, щоб вибрати." - left-click-to-cycle-up: "&e Клацніть лівою кнопкою миші &7, щоб перейти вгору." - right-click-to-cycle-down: "&e Клацніть правою кнопкою миші &7, щоб перейти + click-to-view: " Натисніть , щоб переглянути." + click-to-previous: " Натисніть , щоб переглянути попередню сторінку." + click-to-next: " Натисніть , щоб переглянути наступну сторінку." + click-to-select: " Натисніть , щоб вибрати." + left-click-to-cycle-up: " Клацніть лівою кнопкою миші , щоб перейти вгору." + right-click-to-cycle-down: " Клацніть правою кнопкою миші , щоб перейти вниз." - left-click-to-change: "&e Клацніть лівою кнопкою миші &7 для редагування." - right-click-to-clear: "&e Клацніть правою кнопкою миші &7, щоб очистити." - click-to-asc: "&e Клацніть &7, щоб відсортувати в порядку збільшення." - click-to-desc: "&e Клацніть &7, щоб відсортувати в порядку зменшення." - click-to-warp: "&e Натисніть &7, щоб деформувати." - click-to-visit: "&e Натисніть &7, щоб відвідати." - right-click-to-visit: "&e Клацніть правою кнопкою миші &7, щоб відвідати." + left-click-to-change: " Клацніть лівою кнопкою миші для редагування." + right-click-to-clear: " Клацніть правою кнопкою миші , щоб очистити." + click-to-asc: " Клацніть , щоб відсортувати в порядку збільшення." + click-to-desc: " Клацніть , щоб відсортувати в порядку зменшення." + click-to-warp: " Натисніть , щоб деформувати." + click-to-visit: " Натисніть , щоб відвідати." + right-click-to-visit: " Клацніть правою кнопкою миші , щоб відвідати." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Запустіть рівень, щоб переглянути звіт про блокування." + prefix: " [BentoBox]: " + no-data: " Запустіть рівень, щоб переглянути звіт про блокування." cancel-string: cancel exit-string: cancel, exit, quit - write-search: "&e Введіть пошукове значення. (Напишіть 'cancel', щоб вийти)" - search-updated: "&a Значення пошуку оновлено." - cancelled: "&c Розмова скасована!" - no-value: "&c Цей предмет не має цінності." - unknown-item: "&c '[material]' не існує в грі." - value: "&7 Значення '[material]' таке: &e[value]" - value-underwater: "&7 Значення '[material]' нижче рівня моря: &e[value]" - empty-hand: "&c У вашій руці немає блоків" - you-have: "&7 У вас є [number] за останнім підрахунком." - you-can-place: "&7 Ви можете розмістити до [number] і вони будуть враховані" + write-search: " Введіть пошукове значення. (Напишіть 'cancel', щоб вийти)" + search-updated: " Значення пошуку оновлено." + cancelled: " Розмова скасована!" + no-value: " Цей предмет не має цінності." + unknown-item: " '[material]' не існує в грі." + value: " Значення '[material]' таке: [value]" + value-underwater: " Значення '[material]' нижче рівня моря: [value]" + empty-hand: " У вашій руці немає блоків" + you-have: " У вас є [number] за останнім підрахунком." + you-can-place: " Ви можете розмістити до [number] і вони будуть враховані" diff --git a/src/main/resources/locales/vi.yml b/src/main/resources/locales/vi.yml index bcdfccb..2c0451e 100644 --- a/src/main/resources/locales/vi.yml +++ b/src/main/resources/locales/vi.yml @@ -13,23 +13,23 @@ admin: ví dụ: +10 sẽ bỏ 10 cấp, 30 sẽ đặt handicap thành 30, -20 sẽ thêm 20 cấp - changed: '&a Handicap ban đầu của đảo đã thay đổi từ [number] thành [new_number].' - invalid-level: '&c Handicap không hợp lệ. Hãy dùng số nguyên.' + changed: ' Handicap ban đầu của đảo đã thay đổi từ [number] thành [new_number].' + invalid-level: ' Handicap không hợp lệ. Hãy dùng số nguyên.' levelstatus: description: xem bao nhiêu đảo đang trong hàng chờ được quét - islands-in-queue: '&a Đảo đang chờ: [number]' + islands-in-queue: ' Đảo đang chờ: [number]' top: description: xem bảng xếp hạng TOP 10 - unknown-world: '&c Thế giới không xác định!' - display: '&f[rank]. &a[name] &7- &b[level]' + unknown-world: ' Thế giới không xác định!' + display: '[rank]. [name] - [level]' remove: description: xoá người khỏi TOP 10 parameters: stats: description: "hiển thị thống kê đảo trên máy chủ này" title: "Thống Kê Đảo Máy Chủ" - world: "&a [name]" - no-data: "&c Không có dữ liệu để xử lý." + world: " [name]" + no-data: " Không có dữ liệu để xử lý." average-level: "Cấp đảo trung bình: [number]" median-level: "Cấp đảo trung vị: [number]" mode-level: "Cấp đảo phổ biến nhất: [number]" @@ -41,32 +41,60 @@ island: level: parameters: '[người chơi]' description: tính toán cấp đảo của bạn hoặc xem cấp đảo của [người chơi] - calculating: '&a Đang tính toán cấp đảo...' - estimated-wait: '&a Thời gian còn lại: [number] giây' - in-queue: '&a Bạn đang ở vị trí [number] trong hàng chờ' - island-level-is: '&a Cấp đảo là &b[level]' - required-points-to-next-level: '&a Tiến độ cấp: &6 [progress]&b /&e [levelcost] &a điểm' - deaths: '&c([number] lần chết)' - cooldown: '&c Bạn phải chờ &b[time] &c giây trước khi có thể làm điều đó' - in-progress: '&6 Đang tính toán cấp đảo...' - time-out: '&c Tính toán cấp đảo quá lâu. Vui lòng thử lại sau.' + calculating: ' Đang tính toán cấp đảo...' + estimated-wait: ' Thời gian còn lại: [number] giây' + in-queue: ' Bạn đang ở vị trí [number] trong hàng chờ' + island-level-is: ' Cấp đảo là [level]' + required-points-to-next-level: ' Tiến độ cấp: [progress] / [levelcost] điểm' + deaths: '([number] lần chết)' + cooldown: ' Bạn phải chờ [time] giây trước khi có thể làm điều đó' + in-progress: ' Đang tính toán cấp đảo...' + time-out: ' Tính toán cấp đảo quá lâu. Vui lòng thử lại sau.' + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." detail: description: "hiển thị chi tiết các khối trên đảo của bạn" top: description: xem TOP 10 - gui-title: '&a TOP 10' - gui-heading: '&6[name]: &B[rank]' - island-level: '&b Cấp [level]' - warp-to: '&A Đang dịch chuyển đến đảo của [name]' + gui-title: ' TOP 10' + gui-heading: '[name]: [rank]' + island-level: ' Cấp [level]' + warp-to: ' Đang dịch chuyển đến đảo của [name]' level-details: above-sea-level-blocks: Khối Trên Mực Nước Biển spawners: Lồng Sinh Quái underwater-blocks: Khối Dưới Nước all-blocks: Toàn Bộ Khối - no-island: '&c Không có đảo!' + no-island: ' Không có đảo!' names-island: 'đảo của [name]' syntax: '[name] x [number]' - hint: '&c Chạy lệnh cấp để xem báo cáo khối' + hint: ' Chạy lệnh cấp để xem báo cáo khối' +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed + level: commands: value: @@ -74,27 +102,27 @@ level: description: hiển thị giá trị của các khối. Thêm 'hand' vào cuối để hiển thị giá trị của vật phẩm đang cầm. gui: titles: - top: "&0&l Top Đảo" - detail-panel: "&0&l Đảo của [name]" - value-panel: "&0&l Giá Trị Khối" + top: " Top Đảo" + detail-panel: " Đảo của [name]" + value-panel: " Giá Trị Khối" buttons: island: - empty: '&f&l Vị trí [name].' - name: '&f&l [name]' + empty: ' Vị trí [name].' + name: ' [name]' description: |- [owner] [members] [place] [level] owners-island: "Đảo của [player]" - owner: "&7&l Chủ: &r&b [player]" - members-title: "&7&l Thành viên:" - member: "&b - [player]" + owner: " Chủ: [player]" + members-title: " Thành viên:" + member: " - [player]" unknown: "không rõ" - place: "&7&o [number]. &r&7 vị trí" - level: "&7 Cấp: &o [number]" + place: " [number]. vị trí" + level: " Cấp: [number]" material: - name: "&f&l [number] x [material]" + name: " [number] x [material]" description: |- [description] [count] @@ -102,103 +130,108 @@ level: [calculated] [limit] [id] - id: "&7 ID khối: &e [id]" - value: "&7 Giá trị khối: &e [number]" - limit: "&7 Giới hạn khối: &e [number]" - count: "&7 Số lượng khối: &e [number]" - calculated: "&7 Giá trị tính toán: &e [number]" + id: " ID khối: [id]" + value: " Giá trị khối: [number]" + limit: " Giới hạn khối: [number]" + count: " Số lượng khối: [number]" + calculated: " Giá trị tính toán: [number]" value_blocks: - name: "&f&l Tất Cả Khối Có Giá Trị" + name: " Tất Cả Khối Có Giá Trị" description: |- - &7 Hiển thị tất cả khối - &7 có giá trị trên đảo. + Hiển thị tất cả khối + có giá trị trên đảo. all_blocks: - name: "&f&l Tất Cả Khối" + name: " Tất Cả Khối" description: |- - &7 Hiển thị tất cả khối - &7 trên đảo. + Hiển thị tất cả khối + trên đảo. above_sea_level: - name: "&f&l Khối Trên Mực Nước Biển" + name: " Khối Trên Mực Nước Biển" description: |- - &7 Chỉ hiển thị khối - &7 ở trên mực - &7 nước biển. + Chỉ hiển thị khối + ở trên mực + nước biển. underwater: - name: "&f&l Khối Dưới Mực Nước Biển" + name: " Khối Dưới Mực Nước Biển" description: |- - &7 Chỉ hiển thị khối - &7 ở dưới mực - &7 nước biển. + Chỉ hiển thị khối + ở dưới mực + nước biển. spawner: - name: "&f&l Lồng Sinh Quái" + name: " Lồng Sinh Quái" description: |- - &7 Chỉ hiển thị lồng sinh quái. - block-name: "&b Lồng Sinh Quái" + Chỉ hiển thị lồng sinh quái. + block-name: " Lồng Sinh Quái" + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: "&f&l Sắp Xếp theo Tên" + name: " Sắp Xếp theo Tên" description: |- - &7 Sắp xếp tất cả khối theo tên. + Sắp xếp tất cả khối theo tên. value: - name: "&f&l Sắp Xếp theo Giá Trị" + name: " Sắp Xếp theo Giá Trị" description: |- - &7 Sắp xếp tất cả khối theo giá trị. + Sắp xếp tất cả khối theo giá trị. count: - name: "&f&l Sắp Xếp theo Số Lượng" + name: " Sắp Xếp theo Số Lượng" description: |- - &7 Sắp xếp tất cả khối theo số lượng. + Sắp xếp tất cả khối theo số lượng. value: - name: "&f&l [material]" + name: " [material]" description: |- [description] [value] [underwater] [limit] [id] - id: "&7 ID khối: &e [id]" - value: "&7 Giá trị khối: &e [number]" - underwater: "&7 Dưới mực nước biển: &e [number]" - limit: "&7 Giới hạn khối: &e [number]" + id: " ID khối: [id]" + value: " Giá trị khối: [number]" + underwater: " Dưới mực nước biển: [number]" + limit: " Giới hạn khối: [number]" previous: - name: "&f&l Trang Trước" + name: " Trang Trước" description: |- - &7 Chuyển đến trang [number] + Chuyển đến trang [number] next: - name: "&f&l Trang Tiếp" + name: " Trang Tiếp" description: |- - &7 Chuyển đến trang [number] + Chuyển đến trang [number] search: - name: "&f&l Tìm Kiếm" + name: " Tìm Kiếm" description: |- - &7 Tìm kiếm một giá trị - &7 cụ thể. - search: "&b Giá trị: [value]" + Tìm kiếm một giá trị + cụ thể. + search: " Giá trị: [value]" tips: - click-to-view: "&e Nhấp &7 để xem." - click-to-previous: "&e Nhấp &7 để xem trang trước." - click-to-next: "&e Nhấp &7 để xem trang tiếp." - click-to-select: "&e Nhấp &7 để chọn." - left-click-to-cycle-up: "&e Nhấp Trái &7 để lên." - right-click-to-cycle-down: "&e Nhấp Phải &7 để xuống." - left-click-to-change: "&e Nhấp Trái &7 để chỉnh sửa." - right-click-to-clear: "&e Nhấp Phải &7 để xóa." - click-to-asc: "&e Nhấp &7 để sắp xếp tăng dần." - click-to-desc: "&e Nhấp &7 để sắp xếp giảm dần." - click-to-warp: "&e Nhấp &7 để dịch chuyển." - click-to-visit: "&e Nhấp &7 để thăm." - right-click-to-visit: "&e Nhấp Phải &7 để thăm." + click-to-view: " Nhấp để xem." + click-to-previous: " Nhấp để xem trang trước." + click-to-next: " Nhấp để xem trang tiếp." + click-to-select: " Nhấp để chọn." + left-click-to-cycle-up: " Nhấp Trái để lên." + right-click-to-cycle-down: " Nhấp Phải để xuống." + left-click-to-change: " Nhấp Trái để chỉnh sửa." + right-click-to-clear: " Nhấp Phải để xóa." + click-to-asc: " Nhấp để sắp xếp tăng dần." + click-to-desc: " Nhấp để sắp xếp giảm dần." + click-to-warp: " Nhấp để dịch chuyển." + click-to-visit: " Nhấp để thăm." + right-click-to-visit: " Nhấp Phải để thăm." conversations: - prefix: "&l&6 [BentoBox]: &r" - no-data: "&c Chạy lệnh cấp để xem báo cáo khối." + prefix: " [BentoBox]: " + no-data: " Chạy lệnh cấp để xem báo cáo khối." cancel-string: hủy exit-string: hủy, thoát, bỏ - write-search: "&e Vui lòng nhập giá trị tìm kiếm. (Nhập 'hủy' để thoát)" - search-updated: "&a Giá trị tìm kiếm đã cập nhật." - cancelled: "&c Cuộc trò chuyện đã bị hủy!" - no-value: "&c Vật phẩm này không có giá trị." - unknown-item: "&c '[material]' không tồn tại trong trò chơi." - value: "&7 Giá trị của '[material]' là: &e[value]" - value-underwater: "&7 Giá trị của '[material]' dưới mực nước biển: &e[value]" - empty-hand: "&c Không có khối nào trên tay bạn" - you-have: "&7 Bạn có [number] lần đếm cuối cùng." - you-can-place: "&7 Bạn có thể đặt tối đa [number] và chúng sẽ được tính" + write-search: " Vui lòng nhập giá trị tìm kiếm. (Nhập 'hủy' để thoát)" + search-updated: " Giá trị tìm kiếm đã cập nhật." + cancelled: " Cuộc trò chuyện đã bị hủy!" + no-value: " Vật phẩm này không có giá trị." + unknown-item: " '[material]' không tồn tại trong trò chơi." + value: " Giá trị của '[material]' là: [value]" + value-underwater: " Giá trị của '[material]' dưới mực nước biển: [value]" + empty-hand: " Không có khối nào trên tay bạn" + you-have: " Bạn có [number] lần đếm cuối cùng." + you-can-place: " Bạn có thể đặt tối đa [number] và chúng sẽ được tính" diff --git a/src/main/resources/locales/zh-CN.yml b/src/main/resources/locales/zh-CN.yml index d4b17fc..522a0ed 100644 --- a/src/main/resources/locales/zh-CN.yml +++ b/src/main/resources/locales/zh-CN.yml @@ -5,23 +5,23 @@ admin: sethandicap: parameters: description: 设置偏差值, 通常用于抵消初始岛屿等级, 来保证岛屿等级从零开始. 实际岛屿等级 - = 最终的岛屿等级 - changed: '&a岛屿的偏差值从[number]更改为[new_number]' - invalid-level: '&c偏差值无效, 请使用整数' + changed: '岛屿的偏差值从[number]更改为[new_number]' + invalid-level: '偏差值无效, 请使用整数' levelstatus: description: 显示等级计算队列中的岛屿 - islands-in-queue: '&a列队中的岛屿: [number]' + islands-in-queue: '列队中的岛屿: [number]' top: description: 显示前十名 - unknown-world: '&c未知的世界!' - display: '&f[rank]. &a[name] &7- &b[level]' + unknown-world: '未知的世界!' + display: '[rank]. [name] - [level]' remove: description: 将玩家移出前十名 parameters: stats: description: 显示该服务器上岛屿的统计数据 title: 服务器岛屿数据 - world: '&a[name]' - no-data: '&c没有数据.' + world: '[name]' + no-data: '没有数据.' average-level: '平均岛屿等级: [number]' median-level: '中位数岛屿等级: [number]' mode-level: '众数岛屿等级: [number]' @@ -33,22 +33,41 @@ island: level: parameters: '[player]' description: 计算你或指定玩家[player]的岛屿等级 - calculating: '&a等级计算中...' - estimated-wait: '&a预计等待时间: [number]秒' - in-queue: '&a你处于队列中第[number]个' - island-level-is: '&a岛屿等级为: &b[level]' - required-points-to-next-level: '&a等级进度: &6 [progress]&b /&e [levelcost] &a点数' - deaths: '&c([number]次死亡)' - cooldown: '&c还需等待&b[time]&c秒才能再次使用该指令' - in-progress: '&6岛屿等级正在计算中...' - time-out: '&c等级计算超时, 请稍后再试' + calculating: '等级计算中...' + estimated-wait: '预计等待时间: [number]秒' + in-queue: '你处于队列中第[number]个' + island-level-is: '岛屿等级为: [level]' + required-points-to-next-level: '等级进度: [progress] / [levelcost] 点数' + deaths: '([number]次死亡)' + cooldown: '还需等待[time]秒才能再次使用该指令' + in-progress: '岛屿等级正在计算中...' + time-out: '等级计算超时, 请稍后再试' + donate: + parameters: "[hand [amount]]" + description: "donate blocks to permanently raise island level" + must-be-on-island: "You must be on your island to donate blocks." + no-permission: "You do not have permission to donate blocks on this island." + no-value: "That block has no level value." + invalid-amount: "Invalid amount. Use a positive number." + empty: "There are no valid blocks to donate." + cancelled: "Donation cancelled. Items returned." + success: "Donated [number] blocks for [points] points! These points are permanent." + confirm: "Confirm - Items will be DESTROYED!" + cancel: "Cancel - Return Items" + gui-title: "Donate Blocks" + gui-info: "Donate blocks to your island|Currently donated: [points] points|Warning: donated items are|destroyed and cannot be returned!" + preview: "Points to add: [points]|These items will be destroyed!" + hand: + success: "Donated [number] x [material] for [points] permanent points!" + not-block: "You must be holding a placeable block to donate." + confirm-prompt: "About to DESTROY [number] x [material] for [points] permanent points." top: description: 显示前十名 - gui-title: '&a前十' - gui-heading: '&6[name]: &B[rank]' - island-level: '&b等级: [level]' - warp-to: '&a正在传送到[name]的岛屿' + gui-title: '前十' + gui-heading: '[name]: [rank]' + island-level: '等级: [level]' + warp-to: '正在传送到[name]的岛屿' detail: description: "显示你的岛屿方块详情" @@ -57,10 +76,19 @@ island: spawners: 刷怪笼 underwater-blocks: 水下的方块 all-blocks: 所有方块 - no-island: '&c没有岛屿!' + no-island: '没有岛屿!' names-island: '[name]的岛屿' syntax: '[name] x [number]' - hint: '&c运行level指令查看方块报告' + hint: '运行level指令查看方块报告' + +protection: + flags: + ISLAND_BLOCK_DONATION: + description: |- + Toggle who can donate + blocks to raise island level. + name: Block Donation + hint: Block donation not allowed level: commands: @@ -69,27 +97,27 @@ level: description: 显示方块的价值. 在末尾添加'hand'可显示手中方块的价值 gui: titles: - top: '&0&l岛屿排行榜' - detail-panel: '&0&l[name]的岛屿' - value-panel: '&0&l方块价值' + top: '岛屿排行榜' + detail-panel: '[name]的岛屿' + value-panel: '方块价值' buttons: island: - empty: '&f&l第[name]名' - name: '&f&l[name]' + empty: '第[name]名' + name: '[name]' description: |- [owner] [members] [place] [level] owners-island: '[player]的岛屿' - owner: '&7&l岛主: &r&b[player]' - members-title: '&7&l成员: ' - member: '&b- [player]' + owner: '岛主: [player]' + members-title: '成员: ' + member: '- [player]' unknown: 未知 - place: '&7第&7&o[number]&r&7名' - level: '&7等级: &o[number]' + place: '[number]名' + level: '等级: [number]' material: - name: '&f&l [number] x [material]' + name: ' [number] x [material]' description: |- [description] [count] @@ -97,87 +125,92 @@ level: [calculated] [limit] [id] - id: '&7方块ID: &e[id]' - value: '&7方块价值: &e[number]' - limit: '&7方块限制: &e[number]' - count: '&7方块数量: &e[number]' - calculated: '&7计算值: &e[number]' + id: '方块ID: [id]' + value: '方块价值: [number]' + limit: '方块限制: [number]' + count: '方块数量: [number]' + calculated: '计算值: [number]' value_blocks: - name: '&f&l所有有价值的方块' + name: '所有有价值的方块' description: |- - &7 显示岛屿上所有 - &7 有价值的方块. + 显示岛屿上所有 + 有价值的方块. all_blocks: - name: '&f&l所有方块' - description: '&7显示岛屿上所有的方块' + name: '所有方块' + description: '显示岛屿上所有的方块' above_sea_level: - name: '&f&l海平面以上的方块' - description: '&7只显示所有海平面以上的方块' + name: '海平面以上的方块' + description: '只显示所有海平面以上的方块' underwater: - name: '&f&l海平面以下的方块' + name: '海平面以下的方块' description: 只显示所有海平面以下的方块 spawner: - name: '&f&l刷怪笼' - description: '&7只显示刷怪笼' - block-name: '&b 刷怪笼' + name: '刷怪笼' + description: '只显示刷怪笼' + block-name: ' 刷怪笼' + donated: + name: "Donated Blocks" + description: |- + Display blocks permanently + donated to island level. filters: name: - name: '&f&l按名称排序' - description: '&7通过名称排序所有的方块' + name: '按名称排序' + description: '通过名称排序所有的方块' value: - name: '&f&l按价值排序' - description: '&7通过价值排序所有的方块' + name: '按价值排序' + description: '通过价值排序所有的方块' count: - name: '&f&l按数量排序' - description: '&7通过数量排序所有方块' + name: '按数量排序' + description: '通过数量排序所有方块' value: - name: '&f&l[material]' + name: '[material]' description: |- [description] [value] [underwater] [limit] [id] - id: '&7方块ID: &e[id]' - value: '&7方块价值: &e[number]' - underwater: '&7海平面以下方块的价值: &e[number]' - limit: '&7方块限制: &e[number]' + id: '方块ID: [id]' + value: '方块价值: [number]' + underwater: '海平面以下方块的价值: [number]' + limit: '方块限制: [number]' previous: - name: '&f&l上一页' - description: '&7切换到第[number]页' + name: '上一页' + description: '切换到第[number]页' next: - name: '&f&l下一页' - description: '&7切换到第[number]页' + name: '下一页' + description: '切换到第[number]页' search: - name: '&f&l搜索' - description: '&7搜索特定的内容' - search: '&b搜索值: [value]' + name: '搜索' + description: '搜索特定的内容' + search: '搜索值: [value]' tips: - click-to-view: '&e点击 &7查看' - click-to-previous: '&e点击 &7查看上一页' - click-to-next: '&e点击 &7查看下一页' - click-to-select: '&e点击 &7选择' - left-click-to-cycle-up: '&e左键 &7向上循环' - right-click-to-cycle-down: '&e右键 &7向下循环' - left-click-to-change: '&e左键 &7编辑' - right-click-to-clear: '&e右键 &7清除' - click-to-asc: '&e点击 &7以升序排序' - click-to-desc: '&e点击 &7以降序排序' - click-to-warp: '&e点击 &7去岛屿传送点' - click-to-visit: '&e点击 &7参观' - right-click-to-visit: '&e右键 &7查看' + click-to-view: '点击 查看' + click-to-previous: '点击 查看上一页' + click-to-next: '点击 查看下一页' + click-to-select: '点击 选择' + left-click-to-cycle-up: '左键 向上循环' + right-click-to-cycle-down: '右键 向下循环' + left-click-to-change: '左键 编辑' + right-click-to-clear: '右键 清除' + click-to-asc: '点击 以升序排序' + click-to-desc: '点击 以降序排序' + click-to-warp: '点击 去岛屿传送点' + click-to-visit: '点击 参观' + right-click-to-visit: '右键 查看' conversations: - prefix: '&l&6[BentoBox]: &r' - no-data: '&c运行level指令查看方块报告' + prefix: '[BentoBox]: ' + no-data: '运行level指令查看方块报告' cancel-string: cancel exit-string: cancel, exit, quit - write-search: '&e请输入要搜索的值. (输入''cancel''退出)' - search-updated: '&a搜索值已更新' - cancelled: '&c对话已取消' - no-value: '&c这件物品一文不值' - unknown-item: '&c物品''[material]''在游戏中不存在' - value: '&7物品''[material]''的价值: &e[value]' - value-underwater: '&7物品''[material]''在海平面以下的价值: &e[value]' - empty-hand: '&c你的手中没有拿着方块' - you-have: '&7 你上次统计时有[number]个.' - you-can-place: '&7 你最多可以放置[number]个并让它们被计算在内' + write-search: '请输入要搜索的值. (输入''cancel''退出)' + search-updated: '搜索值已更新' + cancelled: '对话已取消' + no-value: '这件物品一文不值' + unknown-item: '物品''[material]''在游戏中不存在' + value: '物品''[material]''的价值: [value]' + value-underwater: '物品''[material]''在海平面以下的价值: [value]' + empty-hand: '你的手中没有拿着方块' + you-have: ' 你上次统计时有[number]个.' + you-can-place: ' 你最多可以放置[number]个并让它们被计算在内' diff --git a/src/main/resources/panels/detail_panel.yml b/src/main/resources/panels/detail_panel.yml index 2099847..434bb2f 100644 --- a/src/main/resources/panels/detail_panel.yml +++ b/src/main/resources/panels/detail_panel.yml @@ -100,6 +100,17 @@ detail_panel: view: click-type: unknown tooltip: level.gui.tips.click-to-view + 7: + icon: HOPPER + title: level.gui.buttons.donated.name + description: level.gui.buttons.donated.description + data: + type: TAB + tab: DONATED + actions: + view: + click-type: unknown + tooltip: level.gui.tips.click-to-view 9: # You can create multiple buttons. By default it is one. icon: IRON_TRAPDOOR diff --git a/src/test/java/world/bentobox/level/LevelTest.java b/src/test/java/world/bentobox/level/LevelTest.java index 550509a..c436e27 100644 --- a/src/test/java/world/bentobox/level/LevelTest.java +++ b/src/test/java/world/bentobox/level/LevelTest.java @@ -219,7 +219,7 @@ public void testAllLoaded() { mockedBukkit.when(() -> Bukkit.getWorld("acidisland_world")).thenReturn(null); addon.allLoaded(); verify(plugin).log("[Level] Level hooking into BSkyBlock"); - verify(cmd, times(4)).getAddon(); // 4 commands + verify(cmd, times(5)).getAddon(); // 5 commands verify(adminCmd, times(5)).getAddon(); // Five commands // Placeholders verify(phm).registerPlaceholder(eq(addon), eq("bskyblock_island_level"), any());